summaryrefslogtreecommitdiff
path: root/z180/chario.180
diff options
context:
space:
mode:
authorLeo C2015-05-01 20:43:26 +0200
committerLeo C2015-05-01 20:43:26 +0200
commit2fe441224da6410ec112322abf78524589b15498 (patch)
tree883a34a019fe85155f20a4eea1bbd435461f708c /z180/chario.180
parent23f85294a1f0ba1900bd3210965201cf73c04d6c (diff)
downloadz180-stamp-2fe441224da6410ec112322abf78524589b15498.zip
Add polling driver for ASCI0/1
Diffstat (limited to 'z180/chario.180')
-rw-r--r--z180/chario.18029
1 files changed, 20 insertions, 9 deletions
diff --git a/z180/chario.180 b/z180/chario.180
index 6632690..8313658 100644
--- a/z180/chario.180
+++ b/z180/chario.180
@@ -8,14 +8,15 @@
public @ctbl
extrn ff.init,ff.i.st,ff.in,ff.o.st,ff.out
- extrn ser.init,ser.ist,ser.in,ser.ost,ser.out
+ extrn as0init,as0ista,as0inp,as0osta,as0out
+ extrn as1init,as1ista,as1inp,as1osta,as1out
include config.inc
include z180reg.inc
include modebaud.inc ; define mode bits and baud eqautes
-max$device equ 2
+max$device equ 3
cseg
@@ -25,7 +26,8 @@ max$device equ 2
ld b,c
call vector$io
dw ff.init
- dw ser.init
+ dw as0init
+ dw as1init
dw rret
; b = device, c = output char, a = input char
@@ -33,25 +35,29 @@ max$device equ 2
?ci: ; character input
call vector$io
dw ff.in
- dw ser.in
+ dw as0inp
+ dw as1inp
dw null$input
?cist: ; character input status
call vector$io
dw ff.i.st
- dw ser.ist
+ dw as0ista
+ dw as1ista
dw null$status
?co: ; character output
call vector$io
dw ff.out
- dw ser.out
+ dw as0out
+ dw as1out
dw rret
?cost: ; character output status
call vector$io
dw ff.o.st
- dw ser.ost
+ dw as0osta
+ dw as1osta
dw ret$true
vector$io:
@@ -89,10 +95,15 @@ null$status:
@ctbl:
db 'HOST ' ; device 0
- db mb$output
+ db mb$in$out
db baud$none
- db 'ASCI1 ' ; device 0
+ db 'ASCI1 ' ; device 1
+ db mb$in$out+mb$serial+mb$soft$baud
+ser0$baud:
+ db baud$19200
+
+ db 'ASCI1 ' ; device 2
db mb$in$out+mb$serial+mb$soft$baud
ser1$baud:
db baud$19200