17 lines
572 B
Plaintext
17 lines
572 B
Plaintext
( ACIA INT handler, read into ACIAW> )
|
|
( Set RST 38 jump ) PC ORG @ 0x39 + !
|
|
AF PUSH,
|
|
ACIA_CTL INAi, 0x01 ANDi, ( is ACIA rcv buf full? )
|
|
IFZ, ( no, abort ) AF POP, EI, RETI, THEN,
|
|
HL PUSH,
|
|
HL ACIAW> LDdi, A (HL) LDrr,
|
|
HL DECd, (HL) CPr, ( W> == R> ? )
|
|
IFNZ, ( buffer not full )
|
|
( get wr ptr ) HL ACIA( LDd(i),
|
|
L ADDr, IFC, H INCr, THEN, L A LDrr,
|
|
( fetch/write ) ACIA_IO INAi, (HL) A LDrr,
|
|
( advance W> ) ACIAW> LDA(i), A INCr,
|
|
ACIA_BUFSZ 1- ANDi, ACIAW> LD(i)A,
|
|
THEN,
|
|
HL POP, AF POP, EI, RETI,
|