ivagor, я попытался обновить zx0 чтобы он мог распаковывать в квазидиск, но что-то пошло не так и он портит данные. Совсем чуть чуть. Не могу понять в чем беда. Помоги найти баг пожалуйста.
Код:
; unpack to the ram-disk $8000-$FFFF
; in:
; de - compressed data addr
; bc - uncompressed data addr
; a - ram-disk activation command
dzx0RD:
		sta @ramDiskCmd1+1
		sta @ramDiskCmd2+1

		lxi h, $ffff
		push h
		inx h
		mvi a,$80
@literals:
		call   @Elias
		call   @ldir
		jc   @newOffset
		call   @Elias
@copy:
		xchg	
		xthl
		push h
		dad b
		xchg
		call   @ldirUnpacked
		xchg
		pop h
		xthl
		xchg
		jnc @literals
   @newOffset:
		call   @Elias
		mov h, a
		pop psw
		xra a
		sub l
		rz
		push h
		rar			
        mov h, a
		ldax d
		rar
        mov l, a
		inx d
		xthl
		mov a, h
		lxi h, 1
		cnc   @EliasBacktrack
		inx h
		jmp @copy
        
   @Elias:
		inr l	
   @EliasLoop:
		add a
		jnz   @EliasSkip
		ldax d
		inx d
		ral
   @EliasSkip:
		rc
   @EliasBacktrack:
		dad h
		add a
		jnc   @EliasLoop
		jmp   @Elias

   @ldir:
		push psw
   @ldirLoop:
		ldax d
		push psw
		; turn on the ram-disk
@ramDiskCmd1:
		mvi a, TEMP_BYTE
		out $10
		pop psw
		stax b
		; turn off the ram-disk
		xra a
		out $10
        
		inx d			
		inx b
		dcx h
		mov a, h
		ora l
		jnz   @ldirLoop
		pop psw
		add a
		ret

   @ldirUnpacked:
		push psw
		; turn on the ram-disk
@ramDiskCmd2:		
		mvi a, TEMP_BYTE
		out $10		
   @ldirUnpackedLoop:
		ldax d
		stax b
		inx d			
		inx b
		dcx h
		mov a, h
		ora l
		jnz   @ldirUnpackedLoop

		; turn off the ram-disk
		xra a
		out $10

		pop psw
		add a
		ret