]> cloudbase.mooo.com Git - z180-stamp-cpm3.git/blobdiff - cbios/chario.180
AVRCON --> USB0
[z180-stamp-cpm3.git] / cbios / chario.180
index 3b02c8d69aceade6f7ea1027b6432b687f375ab1..c4c5be67c4d3186aade0c65789fb789aecfad7f0 100644 (file)
@@ -11,7 +11,7 @@
        extrn   ff.init,ff.ist,ff.in,ff.ost,ff.out\r
        extrn   as0init,as0ista,as0inp,as0osta,as0out\r
        extrn   as1init,as1ista,as1inp,as1osta,as1out\r
-\r
+       extrn   _b0call\r
 \r
        include config.inc\r
        include z180reg.inc\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
+\r
+       dseg\r
+_cinit:\r
        ld      b,c\r
        call    vector$io\r
        dw      ff.init\r
@@ -34,13 +39,20 @@ max$devices equ     3
        dw      as1init\r
        dw      rret\r
 \r
+\r
 ;--------------------------------------------------------------\r
 ; Character input\r
 ;     b: device\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
@@ -53,7 +65,13 @@ max$devices equ      3
 ;    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
@@ -67,7 +85,13 @@ max$devices equ      3
 ;    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
@@ -82,7 +106,13 @@ max$devices equ     3
 ;     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
@@ -91,21 +121,24 @@ max$devices equ    3
 \r
 ;--------------------------------------------------------------\r
 \r
+       dseg\r
 vector$io:\r
-       ld      a,max$devices\r
-       ld      e,b\r
-vector:\r
        pop     hl\r
-       ld      d,0\r
-       cp      e\r
+       push    de\r
+       ld      de,max$devices  ; default if\r
+       ld      a,b             ;\r
+       cp      e               ;    b > max$devices\r
        jr      nc,exist\r
-       ld      e,a             ; use null device if a >= max$devices\r
-exist: add     hl,de\r
+       ld      e,a\r
+exist:\r
+       add     hl,de\r
        add     hl,de\r
-       ld      a,(hl)\r
+\r
+       ld      e,(hl)\r
        inc     hl\r
-       ld      h,(hl)\r
-       ld      l,a\r
+       ld      d,(hl)\r
+       ex      de,hl\r
+       pop     de\r
        jp      (hl)\r
 \r
 \r
@@ -123,27 +156,21 @@ null$status:
 \r
 ;--------------------------------------------------------------\r
 \r
+       cseg\r
 @ctbl:\r
-       db      'AVRCON'        ; device 0\r
+       db      'USB0  '                ; device 0\r
        db      mb$in$out\r
        db      baud$none\r
 \r
-       db      'ASCI0 '        ; device 1\r
+       db      'ASCI0 '                ; device 1\r
        db      mb$in$out+mb$serial+mb$soft$baud\r
-ser0$baud:\r
        db      baud$19200\r
 \r
-       db      'ASCI1 '        ; device 2\r
+       db      'ASCI1 '                ; device 2\r
        db      mb$in$out+mb$serial+mb$soft$baud\r
-ser1$baud:\r
        db      baud$19200\r
 \r
-       db      0               ; table terminator\r
-\r
-;--------------------------------------------------------------\r
-\r
-\r
-\r
+       db      0                               ; table terminator\r
 \r
 \r
        end\r