]> cloudbase.mooo.com Git - z180-stamp.git/blob - z180/chario.180
command printenv: new option -s: Print env variables in setenv commands.
[z180-stamp.git] / z180 / chario.180
1 page 255
2 .z80
3
4
5 ; CP/M 3 compatible character i/o
6
7 public ?cinit,?ci,?co,?cist,?cost
8 public @ctbl
9
10 extrn ff.init,ff.i.st,ff.in,ff.o.st,ff.out
11 extrn as0init,as0ista,as0inp,as0osta,as0out
12 extrn as1init,as1ista,as1inp,as1osta,as1out
13
14 include config.inc
15 include z180reg.inc
16 include modebaud.inc ; define mode bits and baud eqautes
17
18
19 max$device equ 3
20
21 cseg
22
23 ; c = device
24
25 ?cinit: ; init devices
26 ld b,c
27 call vector$io
28 dw ff.init
29 dw as0init
30 dw as1init
31 dw rret
32
33 ; b = device, c = output char, a = input char
34
35 ?ci: ; character input
36 call vector$io
37 dw ff.in
38 dw as0inp
39 dw as1inp
40 dw null$input
41
42 ?cist: ; character input status
43 call vector$io
44 dw ff.i.st
45 dw as0ista
46 dw as1ista
47 dw null$status
48
49 ?co: ; character output
50 call vector$io
51 dw ff.out
52 dw as0out
53 dw as1out
54 dw rret
55
56 ?cost: ; character output status
57 call vector$io
58 dw ff.o.st
59 dw as0osta
60 dw as1osta
61 dw ret$true
62
63 vector$io:
64 ld a,max$device
65 ld e,b
66 vector:
67 pop hl
68 ld d,0
69 cp e
70 jr nc,exist
71 ld e,a ; use null device if a >= max$device
72 exist: add hl,de
73 add hl,de
74 ld a,(hl)
75 inc hl
76 ld h,(hl)
77 ld l,a
78 jp (hl)
79
80
81 null$input:
82 ld a,1Ah
83 rret:
84 ret
85 ret$true:
86 or 0FFh
87 ret
88
89 null$status:
90 xor a
91 ret
92
93 ;--------------------------------------------------------------
94
95
96 @ctbl:
97 db 'HOST ' ; device 0
98 db mb$in$out
99 db baud$none
100
101 db 'ASCI0 ' ; device 1
102 db mb$in$out+mb$serial+mb$soft$baud
103 ser0$baud:
104 db baud$19200
105
106 db 'ASCI1 ' ; device 2
107 db mb$in$out+mb$serial+mb$soft$baud
108 ser1$baud:
109 db baud$19200
110
111 db 0 ; table terminator
112
113 end