char.her.s 487 B

123456789101112131415161718192021222324252627282930313233343536
  1. .define getchar, putchar
  2. .sect .text
  3. .sect .rom
  4. .sect .data
  5. .sect .bss
  6. .sect .text
  7. ! These getchar and putchar routines can be used for HERMAC computer
  8. ! Read a character from HERMAC-monitor
  9. ! Character is returned in a-reg
  10. getchar:
  11. in a,0xF1
  12. and 1
  13. jp z,getchar
  14. in a,0xF0
  15. cp 0x0D
  16. jp nz,1f
  17. ld a,0x0A
  18. 1: ret
  19. ! Write character on HERMAC monitor
  20. ! Assumes character in a-reg
  21. putchar:
  22. cp 0x0A
  23. jp nz,1f
  24. ld a,0x1F
  25. 1: push af
  26. 2: in a,0xF1
  27. and 4
  28. jp z,2b
  29. pop af
  30. out 0xF0,a
  31. ret