\r
\r
\r
- ; CONOUT\r
- ; Console Output. Send character in <C>\r
- ; to all selected devices\r
-\r
-conout:\r
+ ; LIST\r
+ ; List Output. Send character in <C>\r
+ ; to all selected devices.\r
\r
- ld hl,(@covec) ; fetch console output bit vector\r
+list:\r
+ ld hl,(@lovec) ; fetch list output bit vector\r
jr out$scan\r
\r
\r
jr out$scan\r
\r
\r
- ; LIST\r
- ; List Output. Send character in <C>\r
- ; to all selected devices.\r
+ ; CONOUT\r
+ ; Console Output. Send character in <C>\r
+ ; to all selected devices\r
\r
-list:\r
- ld hl,(@lovec) ; fetch list output bit vector\r
+conout:\r
+\r
+ ld hl,(@covec) ; fetch console output bit vector\r
\r
out$scan:\r
ld b,0 ; start with device 0\r
ret\r
\r
\r
- ; CONOST\r
- ; Console Output Status. Return true if\r
- ; all selected console output devices\r
+ ; LISTST\r
+ ; List Output Status. Return true if\r
+ ; all selected list output devices\r
; are ready.\r
\r
-conost:\r
- ld hl,(@covec) ; get console output bit vector\r
+listst:\r
+ ld hl,(@lovec) ; get list output bit vector\r
jr ost$scan\r
\r
\r
jr ost$scan\r
\r
\r
- ; LISTST\r
- ; List Output Status. Return true if\r
- ; all selected list output devices\r
+ ; CONOST\r
+ ; Console Output Status. Return true if\r
+ ; all selected console output devices\r
; are ready.\r
\r
-listst:\r
- ld hl,(@lovec) ; get list output bit vector\r
+conost:\r
+ ld hl,(@covec) ; get console output bit vector\r
\r
ost$scan:\r
ld b,0 ; start with device 0\r
ret\r
\r
\r
- ; CONST\r
- ; Console Input Status. Return true if\r
- ; any selected console input device\r
- ; has an available character.\r
-\r
-const:\r
- ld hl,(@civec) ; get console input bit vector\r
- jr ist$scan\r
-\r
-\r
; AUXIST\r
; Auxiliary Input Status. Return true if\r
; any selected auxiliary input device\r
\r
auxist:\r
ld hl,(@aivec) ; get aux input bit vector\r
+ jr ist$scan\r
+\r
+\r
+ ; CONST\r
+ ; Console Input Status. Return true if\r
+ ; any selected console input device\r
+ ; has an available character.\r
+\r
+const:\r
+ ld hl,(@civec) ; get console input bit vector\r
\r
ist$scan:\r
ld b,0 ; start with device 0\r
ret\r
\r
\r
- ; CONIN\r
- ; Console Input. Return character from first\r
- ; ready console input device.\r
-\r
-conin:\r
- ld hl,(@civec)\r
- jr in$scan\r
-\r
-\r
; AUXIN\r
; Auxiliary Input. Return character from first\r
; ready auxiliary input device.\r
\r
auxin:\r
ld hl,(@aivec)\r
+ jr in$scan\r
+\r
+\r
+ ; CONIN\r
+ ; Console Input. Return character from first\r
+ ; ready console input device.\r
+\r
+conin:\r
+ ld hl,(@civec)\r
\r
in$scan:\r
push hl ; save bit vector\r
\r
max$devices equ 3\r
\r
- cseg\r
\r
;--------------------------------------------------------------\r
; Init character device\r
; c: device\r
\r
+ cseg\r
?cinit: ; init devices\r
b0call _cinit\r
ret\r
dw as1init\r
dw rret\r
\r
- cseg\r
\r
;--------------------------------------------------------------\r
; Character input\r
; return:\r
; a: input char\r
\r
+ cseg\r
?ci: ; character input\r
+ b0call _ci\r
+ ret\r
+\r
+ dseg\r
+_ci:\r
call vector$io\r
dw ff.in\r
dw as0inp\r
; return:\r
; a: 0ffh if char available, else 0\r
\r
-?cist: ; character input status\r
+ cseg\r
+?cist: ; character input\r
+ b0call _cist\r
+ ret\r
+\r
+ dseg\r
+_cist: ; character input status\r
call vector$io\r
dw ff.ist\r
dw as0ista\r
; return:\r
; a: output char\r
\r
-?co: ; character output\r
+ cseg\r
+?co: ; character input\r
+ b0call _co\r
+ ret\r
+\r
+ dseg\r
+_co: ; character output\r
call vector$io\r
dw ff.out\r
dw as0out\r
; a: 0ffh if device ready for next output char, else 0\r
\r
\r
-?cost: ; character output status\r
+ cseg\r
+?cost: ; character input\r
+ b0call _cost\r
+ ret\r
+\r
+ dseg\r
+_cost: ; character output status\r
call vector$io\r
dw ff.ost\r
dw as0osta\r
\r
;--------------------------------------------------------------\r
\r
+ dseg\r
vector$io:\r
pop hl\r
push de\r
\r
;--------------------------------------------------------------\r
\r
+ cseg\r
@ctbl:\r
db 'AVRCON' ; device 0\r
db mb$in$out\r