]> cloudbase.mooo.com Git - z180-stamp-cpm3.git/blob - cbios/conbuf.180
ascii.180 interrupt driver for ASCI 0/1
[z180-stamp-cpm3.git] / cbios / conbuf.180
1 page 255
2 .z80
3
4 ;
5 ; FIFO channels for communication with avr
6 ;
7 global ff.init,ff.in,ff.ist,ff.out,ff.ost
8
9 extrn ff_empty,ff_get,ff_full,ff_put
10 extrn bufinit,fifolst
11
12 include config.inc
13 if CPU_Z180
14 include z180reg.inc
15 endif
16
17 dseg
18 mkbuf ci.fifo_id, ci.fifo, ci.fifo_len
19 mkbuf co.fifo_id, co.fifo, co.fifo_len
20
21 ici equ ci.fifo_id * 2
22 ico equ co.fifo_id * 2
23
24
25 ;--------------------------------------------------------------
26
27 ; Init Serial I/O for console input and output
28 ;
29 dseg
30 ff.init:
31 ld a,(INIDONE)
32 cp INIDONEVAL
33 ret z
34
35 ld ix,ci.fifo
36 call bufinit
37 ld ix,co.fifo
38 jp bufinit
39
40 ;--------------------------------------------------------------
41 ; Input status
42
43 dseg
44 ff.ist:
45 push ix
46 ld ix,(fifolst+ici) ;
47 call ff_empty
48 pop ix
49 ret
50
51 ;--------------------------------------------------------------
52 ; Get an input character
53
54 ff.in:
55 push ix
56 ld ix,(fifolst+ici) ;
57 call ff_get
58 pop ix
59 ret
60
61 ;--------------------------------------------------------------
62 ; Output status
63
64 ff.ost:
65 push ix
66 ld ix,(fifolst+ico) ;
67 call ff_full
68 pop ix
69 ret
70
71
72 ;--------------------------------------------------------------
73 ; put character in c in buffer
74 ; destroys hl, bc
75 ; returns output char in a
76
77 ff.out:
78 push ix ;
79 ld ix,(fifolst+ico) ;
80 call ff_put
81 out (AVRINT6),a ; tell monitor
82 pop ix ;
83 ret
84
85 end
86