summaryrefslogtreecommitdiff
path: root/z180/chario.180
diff options
context:
space:
mode:
Diffstat (limited to 'z180/chario.180')
-rw-r--r--z180/chario.18034
1 files changed, 22 insertions, 12 deletions
diff --git a/z180/chario.180 b/z180/chario.180
index 6632690..4d37b89 100644
--- a/z180/chario.180
+++ b/z180/chario.180
@@ -2,20 +2,21 @@
.z80
-; CP/M 3 compatible character i/o
+; CP/M 3 compatible character i/o
public ?cinit,?ci,?co,?cist,?cost
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 'ASCI0 ' ; 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
@@ -100,4 +111,3 @@ ser1$baud:
db 0 ; table terminator
end
-