; To be assembled, 3 passes are needed
org 0x100
ld hl, crunched_data
ld de, 0x200
assert crunched_data_size == 5 ; the value obtained here at the last pass; has to be correct and is only obtained with 3 pass
; pass 1 => 0 because unknown
; pass 2 => 0 because it is really 0 as it was not possible to do the defs
; pass 3 => 5 because it has been properly computed in pass 2
ld bc, crunched_data_size ; known at the end of pass 2 (so 3 passes are needed)
ldir ; // should be the a call to uncrunch
crunched_data
lzapu
defs amount, value ; unknown at pass1
lzclose
crunched_data_end
crunched_data_size equ crunched_data_end-crunched_data
amount equ 10
value equ 2
assert crunched_data_size == 5 ; the value obtained at the very end