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.

16 lines
535B

  1. ( INT handler. Set RST 38 jump ) PC ORG @ 0x39 + !
  2. AF PUSH, BEGIN,
  3. SIO_ACTL INAi, ( RR0 ) 0x01 ANDi, ( is recv buf full? )
  4. IFZ, ( nope, exit ) A 0x20 ( CMD 4 ) LDri, SIO_ACTL OUTiA,
  5. AF POP, EI, RETI, THEN,
  6. HL PUSH,
  7. HL SIOW> LDdi, A (HL) LDrr,
  8. HL DECd, (HL) CPr, ( W> == R> ? )
  9. IFNZ, ( buffer not full )
  10. ( get wr ptr ) HL SIO( LDd(i),
  11. L ADDr, IFC, H INCr, THEN, L A LDrr,
  12. ( fetch/write ) SIO_ADATA INAi, (HL) A LDrr,
  13. ( advance W> ) SIOW> LDA(i), A INCr,
  14. SIO_BUFSZ 1- ANDi, SIOW> LD(i)A,
  15. THEN, HL POP, JR, AGAIN,