]> cloudbase.mooo.com Git - z180-stamp-cpm3.git/blame - cbios/ascip.180
ascii.180 interrupt driver for ASCI 0/1
[z180-stamp-cpm3.git] / cbios / ascip.180
CommitLineData
ea5293bb
L
1 page 200\r
2\r
3; Simple polling drivers for ASCI0 and ASCI1\r
4\r
ea5293bb
L
5\r
6 global as0init\r
7 global as0ista,as0inp\r
8 global as0osta,as0out\r
9 global as1init\r
10 global as1ista,as1inp\r
11 global as1osta,as1out\r
12\r
d6829fd3 13 extrn as_init\r
f80331a6 14\r
f80331a6 15\r
ea5293bb
L
16 include config.inc\r
17 include z180reg.inc\r
18\r
d6829fd3 19 dseg\r
ea5293bb
L
20\r
21;--------------------------------------------------------------\r
d6829fd3 22; Init Serial I/O for input and output (ASCI 0/1)\r
ea5293bb 23;\r
d6829fd3 24; b: device number\r
f80331a6 25;\r
ea5293bb 26\r
50f3b8f0 27\r
ea5293bb 28as0init:\r
d6829fd3
L
29 ld c,0 ;asci channel number\r
30 jp as_init\r
31\r
ea5293bb 32as1init:\r
d6829fd3
L
33 ld c,1 ;asci channel number\r
34 jp as_init\r
ea5293bb
L
35\r
36\r
37;--------------------------------------------------------------\r
38\r
39as0ista:\r
40 in0 a,(stat0)\r
41 and M_RDRF\r
42 ret z\r
43 or 0ffh\r
44 ret\r
45\r
46as1ista:\r
47 in0 a,(stat1)\r
48 and M_RDRF\r
49 ret z\r
50 or 0ffh\r
51 ret\r
52\r
53\r
54as0inp:\r
55 in0 a,(stat0)\r
f80331a6
L
56 bit RDRF,a\r
57 jr z,as0inp\r
58\r
59 in0 c,(rdr0)\r
60 and a,M_OVRN+M_PERR+M_FE\r
61 jr z,as0in_ex\r
62\r
63 in0 a,(cntla0)\r
64 res EFR,a\r
65 out0 (cntla0),a\r
66as0in_ex:\r
67 ld a,c\r
ea5293bb
L
68 ret\r
69\r
70as1inp:\r
f80331a6
L
71 in0 a,(stat1)\r
72 bit RDRF,a\r
73 jr z,as1inp\r
74\r
75 in0 c,(rdr1)\r
76 and a,M_OVRN+M_PERR+M_FE\r
77 jr z,as1in_ex\r
78\r
79 in0 a,(cntla1)\r
80 res EFR,a\r
81 out0 (cntla1),a\r
82as1in_ex:\r
83 ld a,c\r
84 ret\r
85\r
86 if 0\r
ea5293bb
L
87 in0 a,(stat1)\r
88 rlca\r
89 jr nc,as1inp\r
90 in0 a,rdr1\r
91 ret\r
f80331a6 92 endif\r
ea5293bb
L
93\r
94\r
95as0osta:\r
96 in0 a,(stat0)\r
97 and M_TDRE\r
98 ret z\r
99 or 0ffh\r
100 ret\r
101\r
102as1osta:\r
103 in0 a,(stat1)\r
104 and M_TDRE\r
105 ret z\r
106 or 0ffh\r
107 ret\r
108\r
109\r
110as0out:\r
111 in0 a,(stat0)\r
112 and M_TDRE\r
113 jr z,as0out\r
114 out0 (tdr0),c\r
115 ld a,c\r
116 ret\r
117\r
118as1out:\r
119 in0 a,(stat1)\r
120 and M_TDRE\r
121 jr z,as1out\r
122 out0 (tdr1),c\r
123 ld a,c\r
124 ret\r
125\r
126 end\r