]> cloudbase.mooo.com Git - z180-stamp.git/blame_incremental - z180/chario.180
Get common_base from cpm3.sys file. Update default environment (BOOTCMD)
[z180-stamp.git] / z180 / chario.180
... / ...
CommitLineData
1 page 255\r
2 .z80\r
3\r
4\r
5; CP/M 3 compatible character i/o\r
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
11 extrn as0init,as0ista,as0inp,as0osta,as0out\r
12 extrn as1init,as1ista,as1inp,as1osta,as1out\r
13\r
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
19max$device equ 3\r
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
29 dw as0init\r
30 dw as1init\r
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
38 dw as0inp\r
39 dw as1inp\r
40 dw null$input\r
41\r
42?cist: ; character input status\r
43 call vector$io\r
44 dw ff.i.st\r
45 dw as0ista\r
46 dw as1ista\r
47 dw null$status\r
48\r
49?co: ; character output\r
50 call vector$io\r
51 dw ff.out\r
52 dw as0out\r
53 dw as1out\r
54 dw rret\r
55\r
56?cost: ; character output status\r
57 call vector$io\r
58 dw ff.o.st\r
59 dw as0osta\r
60 dw as1osta\r
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
98 db mb$in$out\r
99 db baud$none\r
100\r
101 db 'ASCI0 ' ; device 1\r
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
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