|
- ( 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,
|