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