440ea43a88
Initially, I used the same letters as those used in the z80 ref docs, but it makes the different assemblers harder to use than they should. Having consistent "argtype" rules across assemblers should help.
16 lines
505 B
Plaintext
16 lines
505 B
Plaintext
BEGIN,
|
|
A 0xff LDri, (HL) A LDrr, ( default mask )
|
|
L1 BSET ( loop2 ) @GET, @PUT,
|
|
0x20 CPi, JRZ, L4 FWR ( escapechar )
|
|
( not an escape char, just apply the mask and write )
|
|
(HL) ANDr, (HL) A LDrr,
|
|
HL INCd,
|
|
JR, AGAIN,
|
|
L4 FSET ( escapechar, adjust by setting (hl) to 0x7f )
|
|
7 (HL) RES, JR, L1 BWR ( loop2 )
|
|
L2 FSET ( maybeerror, was it an error? )
|
|
A ORr, JRZ, L1 BWR ( loop2, not an error )
|
|
L3 FSET ( error )
|
|
C A LDrr, ( error code from @GET/@PUT )
|
|
A 0x1a LDri, ( @ERROR ) 0x28 RST, RET,
|