basm 0.5.0

z80 assembler relying on cpclib-asm
; 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