Mirror of CollapseOS
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

17 lines
572B

  1. ( ACIA INT handler, read into ACIAW> )
  2. ( Set RST 38 jump ) PC ORG @ 0x39 + !
  3. AF PUSH,
  4. ACIA_CTL INAi, 0x01 ANDi, ( is ACIA rcv buf full? )
  5. IFZ, ( no, abort ) AF POP, EI, RETI, THEN,
  6. HL PUSH,
  7. HL ACIAW> LDdi, A (HL) LDrr,
  8. HL DECd, (HL) CPr, ( W> == R> ? )
  9. IFNZ, ( buffer not full )
  10. ( get wr ptr ) HL ACIA( LDd(i),
  11. L ADDr, IFC, H INCr, THEN, L A LDrr,
  12. ( fetch/write ) ACIA_IO INAi, (HL) A LDrr,
  13. ( advance W> ) ACIAW> LDA(i), A INCr,
  14. ACIA_BUFSZ 1- ANDi, ACIAW> LD(i)A,
  15. THEN,
  16. HL POP, AF POP, EI, RETI,