]> cloudbase.mooo.com Git - z180-stamp-cpm3.git/blobdiff - cbios/bioskrnl.180
Update IXON flag from character device table (@ctbl)
[z180-stamp-cpm3.git] / cbios / bioskrnl.180
index 339a7599989c7fbe97ecda7d194d3f4c2a18952a..0610b31207fde06760d2fa050d131d547d475e3d 100644 (file)
@@ -2,8 +2,8 @@
 \r
        ; version 1.0 15 Sept 82\r
 \r
-       include config.inc\r
-       include z180reg.inc\r
+       maclib z180reg.inc\r
+       maclib config.inc\r
 \r
 \r
 ;                Copyright (C), 1982\r
@@ -78,7 +78,8 @@ ccp   equ     0100h           ; Console Command Processor gets loaded
        public ?conos,?auxis,?auxos,?dvtbl,?devin,?drtbl\r
        public ?mltio,?flush,?mov,?tim,?bnksl,?stbnk,?xmov\r
 \r
-       public bs$stack\r
+       extrn bs$stack\r
+       extrn _b0call\r
 \r
 \r
     ; BIOS Jump vector.\r
@@ -130,6 +131,12 @@ ccp        equ     0100h           ; Console Command Processor gets loaded
 ?ioctl jp      ioctl           ;\r
 \r
 \r
+       rept    48\r
+        db     '|'\r
+       endm\r
+boot$stack:\r
+\r
+\r
        ; BOOT\r
        ;       Initial entry point for system startup.\r
 \r
@@ -140,7 +147,7 @@ boot:
        out0    (cbr),a\r
        ld      a,USR$CBAR\r
        out0    (cbar),a\r
-       ld      sp,bs$stack\r
+       ld      sp,boot$stack\r
 \r
        call    hwinit          ; first time hardware initialisation\r
 \r
@@ -193,7 +200,7 @@ boot$1:
        ;       Entry for system restarts.\r
 \r
 wboot:\r
-       ld      sp,bs$stack\r
+       ld      sp,boot$stack\r
        call    set$jumps       ; initialize page zero\r
        call    ?rlccp          ; reload CCP\r
        jp      ccp             ; then reset jmp vectors and exit to ccp\r
@@ -216,9 +223,6 @@ set$jumps:
        ret\r
 \r
 \r
-       ds bs$stack$size\r
-bs$stack       equ $\r
-\r
 \r
        ; DEVTBL\r
        ;       Return address of character device table\r
@@ -480,7 +484,10 @@ seldsk:
        inc     hl\r
        ld      h,(hl)\r
        ld      l,a\r
+       ld      (bs$stack),sp\r
+       ld      sp,bs$stack\r
        call    ijphl           ; call LOGIN\r
+       ld      sp,(bs$stack)\r
 notfirst:\r
        ld      hl,(@xdph)      ; recover DPH pointer\r
        ret\r
@@ -558,13 +565,16 @@ sectrn:
        ;               extended disk parameter header (XDPH).\r
 \r
 read:\r
+       ld      (bs$stack),sp\r
+       ld      sp,bs$stack\r
        ld      a,1\r
        ld      (@op),a\r
        ld      ix,(@xdph)      ; get drive descriptor pointer\r
        ld      l,(ix-8)        ; get read routine entry\r
        ld      h,(ix-7)\r
-       jp      (hl)\r
-\r
+       call    ijphl           ; call LOGIN\r
+       ld      sp,(bs$stack)\r
+       ret\r
 \r
        ; WRITE\r
        ;       Write physical sector from currently selected drive.\r
@@ -572,12 +582,16 @@ read:
        ;               extended disk parameter header (XDPH).\r
 \r
 write:\r
+       ld      (bs$stack),sp\r
+       ld      sp,bs$stack\r
        ld      a,2\r
        ld      (@op),a\r
        ld      ix,(@xdph)      ; get drive descriptor pointer\r
        ld      l,(ix-10)       ; get write routine entry\r
        ld      h,(ix- 9)\r
-       jp      (hl)\r
+       call    ijphl           ; call LOGIN\r
+       ld      sp,(bs$stack)\r
+       ret\r
 \r
 \r
 \r
@@ -616,5 +630,4 @@ flush:
 \r
 @cbnk: db      0               ; bank for processor operations\r
 \r
-\r
        end\r