From 3334085260607a84fb887236459e941f3c4c2403 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Thu, 21 Feb 2019 22:03:08 +0000 Subject: [PATCH] Kernel 0.92+ --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/SH.S.EXP.txt | 8 +++- INC/A2osX.I.txt | 8 ++-- SYS/KERNEL.S.IO.txt | 78 ++++++++++++++++++++++++--------------- SYS/KERNEL.S.STAT.txt | 7 ++++ 5 files changed, 67 insertions(+), 34 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 34df4d18db87b016efd0083240aa8f722e7a212f..c346bcb271b7a643c186e30e8c7e76d35d7f2bee 100644 GIT binary patch delta 5115 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 delta 4861 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 diff --git a/BIN/SH.S.EXP.txt b/BIN/SH.S.EXP.txt index 8418be94..88687ea2 100644 --- a/BIN/SH.S.EXP.txt +++ b/BIN/SH.S.EXP.txt @@ -202,12 +202,16 @@ EXP.TEST.BINARY >LDA.G CORE.Operator lda #$80 >STA.G CORE.Operator -.1 jsr CORE.ArgV.Next +.1 >LDYA ZPArgVBufPrev + >STYA ZPPtr1 + + jsr CORE.ArgV.Next beq .9 - >PUSHW ZPArgVBufPrev + >PUSHW ZPPtr1 >LDYA ZPArgVBufPtr >SYSCALL strcmp + ror CS if != and #$80 eor #$80 diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index 201148f4..6d408d55 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -4,7 +4,7 @@ AUTO 4,1 *-------------------------------------- K.VER .EQ $5C00 92.0 K.ENV.SIZE .EQ 256 -K.PIPE.SIZE .EQ 256 +K.PIPE.SIZE .EQ 512 *-------------------------------------- K.MEM.ALIGN .EQ 16 K.MEM.nALIGNm1 .EQ $F0 @@ -474,9 +474,11 @@ S.FD.PIPE.S .EQ 2 S.FD.PIPE.S.Opened .EQ %10000000 S.FD.PIPE.hMem .EQ 3 S.FD.PIPE.Tail .EQ 4 -S.FD.PIPE.Head .EQ 5 +S.FD.PIPE.Head .EQ 6 +S.FD.PIPE.Free .EQ 8 +S.FD.PIPE.Used .EQ 10 * -S.FD.PIPE .EQ 6 +S.FD.PIPE .EQ 12 *-------------------------------------- * PS STRUCT *-------------------------------------- diff --git a/SYS/KERNEL.S.IO.txt b/SYS/KERNEL.S.IO.txt index 63d70c07..9de7b98b 100644 --- a/SYS/KERNEL.S.IO.txt +++ b/SYS/KERNEL.S.IO.txt @@ -445,41 +445,61 @@ IO.READ.PIPE >PULLW .3+1 S.IOCTL.BUFPTR * (pStack)+0 buf * (pStack)+2 count *-------------------------------------- -IO.WRITE.PIPE >PULLW .2+1 S.IOCTL.BUFPTR - >PULLA S.IOCTL.BYTECNT.LO - eor #$ff - sta IO.Counter - >PULLA S.IOCTL.BYTECNT.HI - eor #$ff - sta IO.Counter+1 - - ldy #S.FD.PIPE.S +IO.WRITE.PIPE ldy #S.FD.PIPE.S lda (pFD),y beq .99 Remote PS closed the Pipe + sec + ldy #S.FD.PIPE.Free + lda (pFD),y + ldy #2 + sbc (pStack),y + tax + ldy #S.FD.PIPE.Free+1 + lda (pFD),y + ldy #3 + sbc (pStack),y + + bcc .9 not enough room in PIPE + + ldy #S.FD.PIPE.Free+1 + sta (pFD),y + dey + txa + sta (pFD),y store new Free + + clc + ldy #2 + lda (pStack),y + pha + eor #$ff + sta IO.Counter + pla + ldy #S.FD.PIPE.Used + adc (pFD),y + sta (pFD),y + ldy #3 + lda (pStack),y + pha + eor #$ff + sta IO.Counter+1 + pla + ldy #S.FD.PIPE.Used+1 + adc (pFD),y + sta (pFD),y + + lda (pStack) + sta .2+1 + ldy #1 + lda (pStack),y + sta .2+2 + ldy #S.FD.PIPE.hMem lda (pFD),y jsr K.GetMemPtr >STYA .3+1 ldx #0 - -.1 inc IO.Counter - bne .11 - inc IO.Counter+1 - beq .8 - -.11 ldy #S.FD.PIPE.Head - lda (pFD),y - inc - dey #S.FD.PIPE.Tail - cmp (pFD),y - beq .9 PIPE is full - - iny #S.FD.PIPE.Head - sta (pFD),y - dec - tay .2 lda $ffff,x SELF MODIFIED .3 sta $ffff,y SELF MODIFIED @@ -491,15 +511,15 @@ IO.WRITE.PIPE >PULLW .2+1 S.IOCTL.BUFPTR tay lda #0 Y,A = bytes written clc - rts + >RET 4 -.9 lda #MLI.E.VOLFULL +.9 lda #0 BLOCKING I/O sec rts .99 lda #MLI.E.EOF sec - rts + >RET 4 */-------------------------------------- * # IOCTL * ## C diff --git a/SYS/KERNEL.S.STAT.txt b/SYS/KERNEL.S.STAT.txt index 78cf2ac0..66a0966f 100644 --- a/SYS/KERNEL.S.STAT.txt +++ b/SYS/KERNEL.S.STAT.txt @@ -302,6 +302,13 @@ K.Pipe >LDYAI K.PIPE.SIZE lda #S.FD.PIPE.S.Opened sta (pFD),y + ldy #S.FD.PIPE.Free + lda #K.PIPE.SIZE + sta (pFD),y + iny + lda /K.PIPE.SIZE + sta (pFD),y + iny S.FD.PIPE.hMem .1 lda #$ff Self Modified sta (pFD),y