diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 733db0f1..3cb0c01a 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/SH.S.IO.txt b/BIN/SH.S.IO.txt index d7187045..89209916 100644 --- a/BIN/SH.S.IO.txt +++ b/BIN/SH.S.IO.txt @@ -59,7 +59,7 @@ IO.Reset.In >LDA.G IO.hIn .8 clc IO.Reset.In.RTS rts *-------------------------------------- -IO.Pipe.Out >LDYAI 256 +IO.Pipe.Out >LDYAI 512 >SYSCALL pipe bcs IO.Reset.In.RTS >STA.G IO.hPipe diff --git a/SYS/KERNEL.S.IO.txt b/SYS/KERNEL.S.IO.txt index ed3557fe..ee01f905 100644 --- a/SYS/KERNEL.S.IO.txt +++ b/SYS/KERNEL.S.IO.txt @@ -465,11 +465,16 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1 eor #$ff sta IO.Counter+1 + ldy #S.FD.PIPE.Size+1 + lda (pFD),y + sta .5+1 Page Count + ldy #S.FD.PIPE.hMem lda (pFD),y jsr K.GetMemPtr sty .2+1 + sta .7+1 Pipe Buffer Base ldy #S.FD.PIPE.Tail+1 clc @@ -501,24 +506,19 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1 ldy #S.FD.PIPE.Tail+1 lda (pFD),y inc - ldy #S.FD.PIPE.Size+1 - cmp (pFD),y - beq .5 +.5 cmp #$ff SELF MODIFIED + beq .6 - ldy #S.FD.PIPE.Tail+1 sta (pFD),y inc .2+2 ldy #0 bra .1 -.5 lda #0 - ldy #S.FD.PIPE.Tail+1 +.6 lda #0 sta (pFD),y - ldy #S.FD.PIPE.hMem - lda (pFD),y - jsr K.GetMemPtr - sta .2+2 +.7 lda #$ff SELF MODIFIED + sta .2+2 Restore Pipe Buf base ldy #0 bra .1 @@ -617,11 +617,16 @@ IO.WRITE.PIPE ldy #S.FD.PIPE.S adc (pFD),y sta (pFD),y + ldy #S.FD.PIPE.Size+1 + lda (pFD),y + sta .5+1 Page Count + ldy #S.FD.PIPE.hMem lda (pFD),y jsr K.GetMemPtr sty .3+1 + sta .7+1 Pipe Buffer Base ldy #S.FD.PIPE.Head+1 clc @@ -653,23 +658,18 @@ IO.WRITE.PIPE ldy #S.FD.PIPE.S ldy #S.FD.PIPE.Head+1 lda (pFD),y inc - ldy #S.FD.PIPE.Size+1 - cmp (pFD),y - beq .5 +.5 cmp #$ff SELF MODIFIED + beq .6 - ldy #S.FD.PIPE.Head+1 sta (pFD),y inc .3+2 ldy #0 bra .1 -.5 lda #0 - ldy #S.FD.PIPE.Head+1 +.6 lda #0 sta (pFD),y - ldy #S.FD.PIPE.hMem - lda (pFD),y - jsr K.GetMemPtr +.7 lda #$ff SELF MODIFIED sta .3+2 ldy #0 bra .1 diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index bbbe2d3c..11dd2f47 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -64,7 +64,7 @@ K.FPutC jsr PFT.CheckNodeA bpl K.PutChar.RET1 inc 0 = BLOCKING - sec +* sec rts */-------------------------------------- * # puts (BLOCKING) @@ -116,6 +116,8 @@ K.PutS >STYA ZPPtr2 bpl .99 inc 0 = BLOCKING + inc pStack pop K.IOBuf + inc pStack * sec .99 rts */-------------------------------------- @@ -161,13 +163,13 @@ K.FPutS jsr PFT.CheckNodeA set IO.hFD >PUSHW ZPPtr2 jsr IO.Write.I - bcc .8 + bcc .9 tay - bpl .9 + bpl .9 IO Erorr inc 0 = BLOCKING -.8 rts + rts .9 >RET 2 pop str */-------------------------------------- @@ -392,7 +394,7 @@ K.PrintF.1 stz PrintF.Cnt adc (pLocal) ... ByteCnt sta pStack CC pla - beq * + sec rts *-------------------------------------- @@ -884,7 +886,7 @@ K.FGetS jsr PFT.CheckNodeA jsr IO.READ.I bcc .2 another char... -.4 tay + tay bpl .9 I/O error lda ZPPtr2 @@ -1218,14 +1220,9 @@ K.FRead jsr PFT.CheckNodeA bcs K.FOpen.RET4 jsr IO.Read.I - bcc .9 + bcs K.FWrite.9 - tay - bpl .9 - - inc 0 = BLOCKING - -.9 rts + rts */-------------------------------------- * # FWrite (BLOCKING) * Write bytes to file @@ -1244,14 +1241,18 @@ K.FWrite jsr PFT.CheckNodeA bcs K.FOpen.RET4 jsr IO.Write.I - bcc .9 + bcc K.FWrite.RTS - tay - bpl .9 +K.FWrite.9 tay + bpl K.FWrite.RTS + dec pStack FF = NODATA + dec pStack + dec pStack + dec pStack keep ptr & count on stack inc 0 = BLOCKING -.9 rts +K.FWrite.RTS rts */-------------------------------------- * # FFlush * ## C