2020-08-16 09:31:02 -04:00
|
|
|
( INT handler. Set RST 38 jump ) PC ORG @ 0x39 + !
|
|
|
|
AF PUSH, BEGIN,
|
|
|
|
SIO_ACTL INAi, ( RR0 ) 0x01 ANDi, ( is recv buf full? )
|
|
|
|
IFZ, ( nope, exit ) A 0x20 ( CMD 4 ) LDri, SIO_ACTL OUTiA,
|
|
|
|
AF POP, EI, RETI, THEN,
|
|
|
|
HL PUSH,
|
|
|
|
HL SIOW> LDdi, A (HL) LDrr,
|
|
|
|
HL DECd, (HL) CPr, ( W> == R> ? )
|
|
|
|
IFNZ, ( buffer not full )
|
|
|
|
( get wr ptr ) HL SIO( LDd(i),
|
|
|
|
L ADDr, IFC, H INCr, THEN, L A LDrr,
|
|
|
|
( fetch/write ) SIO_ADATA INAi, (HL) A LDrr,
|
|
|
|
( advance W> ) SIOW> LDA(i), A INCr,
|
|
|
|
SIO_BUFSZ 1- ANDi, SIOW> LD(i)A,
|
|
|
|
THEN, HL POP, JR, AGAIN,
|