diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index b9262626..2030bd41 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/CAT.S.txt b/BIN/CAT.S.txt index b6a7135a..3ff2fd0c 100644 --- a/BIN/CAT.S.txt +++ b/BIN/CAT.S.txt @@ -152,7 +152,7 @@ CS.RUN.LOOP ldy #S.PS.hStdIn sta hFILE -.2 >PUSHWI 256 +.2 >PUSHWI 254 Leave room for CRLF >PUSHW ZPBufPtr lda hFILE @@ -211,7 +211,20 @@ CS.RUN.PRINT inc LineNum lda bPrintAll bmi .3 - >LDYA ZPBufPtr + ldy #$ff + +.20 iny + lda (ZPBufPtr),y + beq .21 + + cmp #C.SPACE + bcs .20 + + lda #C.SPACE + sta (ZPBufPtr),y + bra .20 + +.21 >LDYA ZPBufPtr >SYSCALL puts rts diff --git a/SBIN/GETTY.S.txt b/SBIN/GETTY.S.txt index b7ff0a7d..885c1b59 100644 --- a/SBIN/GETTY.S.txt +++ b/SBIN/GETTY.S.txt @@ -316,10 +316,10 @@ CkeckOption lda (ZPPtr1) .3 ldy OptionVars-1,x eor #$80 toggle option - sta (pData),y + sta $0,y lda #0 exit with 0 -.8 clc !0 if bot an option +.8 clc !0 if not an option rts *-------------------------------------- CS.END diff --git a/SYS/KERNEL.S.DEF.txt b/SYS/KERNEL.S.DEF.txt index da28d92c..6be68643 100644 --- a/SYS/KERNEL.S.DEF.txt +++ b/SYS/KERNEL.S.DEF.txt @@ -1,6 +1,8 @@ NEW AUTO 3,1 *-------------------------------------- +AUXPIPE .EQ 0 +*-------------------------------------- ZPKERNEL .EQ $0 *-------------------------------------- ZPPtr1 .EQ ZPKERNEL diff --git a/SYS/KERNEL.S.IO.txt b/SYS/KERNEL.S.IO.txt index ee01f905..93577346 100644 --- a/SYS/KERNEL.S.IO.txt +++ b/SYS/KERNEL.S.IO.txt @@ -465,67 +465,6 @@ 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 - adc (pFD),y - sta .2+2 - - dey S.FD.PIPE.Tail - lda (pFD),y - tay - - ldx #0 - -.1 inc IO.Counter - bne .2 - inc IO.Counter+1 - beq .8 - -.2 lda $ffff,y SELF MODIFIED -.3 sta $ffff,x SELF MODIFIED - - inx - bne .4 - - inc .3+2 - -.4 iny - bne .1 - - ldy #S.FD.PIPE.Tail+1 - lda (pFD),y - inc -.5 cmp #$ff SELF MODIFIED - beq .6 - - sta (pFD),y - inc .2+2 - ldy #0 - bra .1 - -.6 lda #0 - sta (pFD),y - -.7 lda #$ff SELF MODIFIED - sta .2+2 Restore Pipe Buf base - ldy #0 - bra .1 - -.8 tya - ldy #S.FD.PIPE.Tail - sta (pFD),y - ldy #S.FD.PIPE.Free clc @@ -552,6 +491,84 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1 sbc .81+1 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 + .DO AUXPIPE=1 + sta SETREADAUX + .FIN + jsr K.GetMemPtr + .DO AUXPIPE=1 + sta CLRREADAUX + .FIN + + sty .2+1 + sta .7+1 Pipe Buffer Base + + ldy #S.FD.PIPE.Tail+1 + clc + adc (pFD),y + sta .2+2 + + dey S.FD.PIPE.Tail + lda (pFD),y + tay + + ldx #0 + +.13 .DO AUXPIPE=1 + sta SETREADAUX + .FIN + +.1 inc IO.Counter + bne .2 + inc IO.Counter+1 + beq .8 + +.2 lda $ffff,y SELF MODIFIED +.3 sta $ffff,x SELF MODIFIED + + inx + bne .4 + + inc .3+2 + +.4 iny + bne .1 + + .DO AUXPIPE=1 + sta CLRREADAUX + .FIN + + ldy #S.FD.PIPE.Tail+1 + lda (pFD),y + inc +.5 cmp #$ff SELF MODIFIED + beq .6 + + sta (pFD),y + inc .2+2 + ldy #0 + bra .13 + +.6 lda #0 + sta (pFD),y + +.7 lda #$ff SELF MODIFIED + sta .2+2 Restore Pipe Buf base + ldy #0 + bra .13 + +.8 .DO AUXPIPE=1 + sta CLRREADAUX + .FIN + tya + ldy #S.FD.PIPE.Tail + sta (pFD),y + .80 ldy #$ff SELF MODIFIED .81 lda #$ff Y,A = bytes read @@ -594,7 +611,7 @@ IO.WRITE.PIPE ldy #S.FD.PIPE.S txa sta (pFD),y store new Free - >PULLW .2+1 get buf + >PULLW .2+1 get dst buf >PULLA get cnt lo sta .80+1 @@ -623,7 +640,14 @@ IO.WRITE.PIPE ldy #S.FD.PIPE.S ldy #S.FD.PIPE.hMem lda (pFD),y - jsr K.GetMemPtr + + .DO AUXPIPE=1 + sta SETREADAUX + .FIN + jsr K.GetMemPtr get src buf + .DO AUXPIPE=1 + sta CLRREADAUX + .FIN sty .3+1 sta .7+1 Pipe Buffer Base @@ -633,11 +657,15 @@ IO.WRITE.PIPE ldy #S.FD.PIPE.S adc (pFD),y sta .3+2 - ldx #0 - dey lda (pFD),y tay S.FD.PIPE.Head + + ldx #0 + +.10 .DO AUXPIPE=1 + sta SETWRITEAUX + .FIN .1 inc IO.Counter bne .2 @@ -655,6 +683,10 @@ IO.WRITE.PIPE ldy #S.FD.PIPE.S .4 iny bne .1 + .DO AUXPIPE=1 + sta CLRWRITEAUX + .FIN + ldy #S.FD.PIPE.Head+1 lda (pFD),y inc @@ -664,7 +696,7 @@ IO.WRITE.PIPE ldy #S.FD.PIPE.S sta (pFD),y inc .3+2 ldy #0 - bra .1 + bra .10 .6 lda #0 sta (pFD),y @@ -672,9 +704,13 @@ IO.WRITE.PIPE ldy #S.FD.PIPE.S .7 lda #$ff SELF MODIFIED sta .3+2 ldy #0 - bra .1 + bra .10 -.8 tya +.8 .DO AUXPIPE=1 + sta CLRWRITEAUX + .FIN + + tya ldy #S.FD.PIPE.Head sta (pFD),y diff --git a/SYS/KERNEL.S.MEM.txt b/SYS/KERNEL.S.MEM.txt index ecc3019b..c41f1a7e 100644 --- a/SYS/KERNEL.S.MEM.txt +++ b/SYS/KERNEL.S.MEM.txt @@ -606,7 +606,6 @@ K.GetStkObjData sta SETREADAUX lda (ZPMemMgrTmp1),y ply - sta CLRREADAUX rts *-------------------------------------- diff --git a/SYS/KERNEL.S.STAT.txt b/SYS/KERNEL.S.STAT.txt index b5bec783..57f2f998 100644 --- a/SYS/KERNEL.S.STAT.txt +++ b/SYS/KERNEL.S.STAT.txt @@ -383,8 +383,11 @@ K.MKFIFO * A = hFD *\-------------------------------------- K.Pipe >STYA ZPPtr1 -* jsr K.NewStkObj Buffer in AUX mem + .DO AUXPIPE=1 + jsr K.NewStkObj Buffer in AUX mem + .ELSE jsr K.GetMem + .FIN bcs .99 stx .1+1 save PIPE buffer @@ -423,7 +426,11 @@ K.Pipe >STYA ZPPtr1 .9 pha save error code lda .1+1 get back PIPE buffer + .DO AUXPIPE=1 + jsr K.FreeStkObj + .ELSE jsr K.FreeMem + .FIB pla sec