Pristine Ack-5.5
[Ack-5.5.git] / mach / i80 / libmon / char.nas.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 NASCOM computer.
9
10 ! Read character from NASCOM-monitor
11 ! Character is returned in a-reg
12
13 getchar:
14         call 0x69
15         jnc getchar
16         cpi 0x1F
17         jz CR
18         cpi 0x1D
19         jz BS
20         ret
21
22 CR:     mvi a,0x0A
23         ret
24
25 BS:     mvi a,0x08
26         ret
27
28 ! Write charcacter on NASCOM-monitor
29 ! Assumes character in a-reg
30
31 putchar:
32         push h
33         push b
34         lxi h,tab
35         mvi b,5
36 1:      cmp m
37         jz fetch
38         inx h
39         inx h
40         dcr b
41         jnz 1b
42 2:      call 0x013B
43         pop b
44         pop h
45         ret
46 fetch:  inx h
47         mov a,m
48         jmp 2b
49 ! conversion table for NASCOM characters
50 tab:    .data1 0x0D,0x00
51         .data1 0x1B,0x1E
52         .data1 0x08,0x1D
53         .data1 0x0A,0x1F
54         .data1 0x7F,0x00
55