From 29136ee0f80d23ebcee988a2314752a26af3228e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Tue, 7 May 2019 17:39:35 +0200 Subject: [PATCH] Kernel 0.93 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/SH.S.CMD.txt | 12 ++---- SYS/KERNEL.S.STDIO.txt | 78 ++++++++++++++++++++++++++------------- 3 files changed, 56 insertions(+), 34 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index cf81ad0e7104c0e90015df00cee2e24892b79128..1e3ac78f8eb1323274a34c15695fe1a1a715efb4 100644 GIT binary patch delta 249202 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 z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< d0uX=z1Rwwb2tWV=5P$##{{IrV-VyiS{{z!|+_C@w diff --git a/BIN/SH.S.CMD.txt b/BIN/SH.S.CMD.txt index c16e1518..0c823f2d 100644 --- a/BIN/SH.S.CMD.txt +++ b/BIN/SH.S.CMD.txt @@ -1236,7 +1236,7 @@ CMD.NEXT.EXEC lda (pData),y Y = StkPtr jsr CMD.NEXT.LINE bcs .9 - bpl .1 + bpl .1 end of file/pipe lda (pData) sec @@ -1279,16 +1279,12 @@ CMD.NEXT.LINE lda (pData) phy >SYSCALL GetMemPtr hVARNAME >STYA ZPVarNamePtr - ply - - dey - lda (pData),y hPIPE - pha >PUSHWI 256 >PUSHW ZPCLBuf - pla - + ply + dey + lda (pData),y hFILE/hPIPE >SYSCALL fgets bcs .8 diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index a67b9427..0a5d625e 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -811,55 +811,81 @@ PrintF.COut phy K.FGetS jsr PFT.CheckNodeA bcs .9 - lda (pStack) - sta ZPPtr2 - ldy #1 +* lda (pFD) +* bne .10 +* jmp IO.READ.REG wont block +.10 lda (pStack) + sta ZPPtr2 s + + ldy #1 lda (pStack),y sta ZPPtr2+1 s iny - lda (pStack),y - sec - sbc #2 + + lda (pStack),y n +* clc + sbc #1 eor #$ff - sta ZPPtr1 !n + sta ZPPtr1 !(n-2) iny - lda (pStack),y + + lda (pStack),y n sbc #0 eor #$ff - sta ZPPtr1+1 !n + sta ZPPtr1+1 !(n-2) + + jsr K.GetC.I + bcs .4 -.10 jsr K.GetC.I - bcc .1 - tay - bne .9 I/O ERROR - rts BLOCKING I/O - .1 cmp #C.LF Discard any leading LF - beq .10 + beq .3 .2 cmp #C.CR beq .8 jsr MEM.PutCharPtr2 - jsr MEM.NextCharPtr1 - beq .8 + inc ZPPtr1 + bne .3 + inc ZPPtr1+1 + beq .8 Buffer full - jsr K.GetC.I +.3 jsr K.GetC.I bcc .2 another char... - tay BLOCKING... - bne .8 + +.4 tay + bne .9 I/O error + + lda ZPPtr2 + sta (pStack) s + + lda ZPPtr2+1 + ldy #1 + sta (pStack),y s + + lda ZPPtr1 + eor #$ff +* sec + adc #1 + iny + sta (pStack),y !(n+2) - jsr .9 Cancel GetC blocking + lda ZPPtr1+1 + eor #$ff + adc #0 + iny + sta (pStack),y !(n+2) -.8 clc + lda #0 BLOCKING I/O + sec + rts - lda #0 +.8 lda #0 sta (ZPPtr2) terminate string - + clc .9 >RET 4 */-------------------------------------- * # getchar (BLOCKING) @@ -897,7 +923,7 @@ K.GetC.I >PUSHWI 1 jsr IO.READ.I bcc .8 tay - bne K.GetC.RTS + bne K.GetC.RTS I/O error >RET 4 BLOCKING I/O