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