From 2baa185d8853c10b6f40c4e45b86ca3723b4dac0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 29 Sep 2017 16:57:20 +0200 Subject: [PATCH] Kernel 0.9.1 : Code reorganization & move to CSTR, new RealPath.YA API for SHELL CD command --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes BIN/X.FILEENUM.S.txt | 16 ++++++++-------- SBIN/SHELL.S.txt | 13 +++++++++---- SYS/KERNEL.S.JMP.txt | 13 ------------- SYS/KERNEL.S.STDIO.txt | 14 +++++++++----- SYS/KERNEL.S.STDLIB.txt | 37 +++++++++++++++---------------------- 7 files changed, 41 insertions(+), 52 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 4780d48f3f33fbddcc62f8feee56c4eee31dba30..de708bd93fa767330336464a655c4fe3af06e664 100644 GIT binary patch delta 4821 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 delta 4878 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 S?UbT+D!Xwr7+8 diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index b2f991f5c541ed8b940ddf051160cf69582d2747..3e9d027936aa027857b55a44f73c4138eadf30da 100644 GIT binary patch delta 18259 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 Obw@XZziXe@+V_91_e*gA delta 17064 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 diff --git a/BIN/X.FILEENUM.S.txt b/BIN/X.FILEENUM.S.txt index 1f67ab8c..83b3983f 100644 --- a/BIN/X.FILEENUM.S.txt +++ b/BIN/X.FILEENUM.S.txt @@ -23,14 +23,14 @@ InitSrcDirYA >SYSCALL GetFullPath.YA txa >STA.G hFullPath - >LDYA ZPPtr1 - >SYSCALL PrintF.YA - lda #'|' - >SYSCALL PutChar.A - lda #13 - >SYSCALL PutChar.A - lda #10 - >SYSCALL PutChar.A +* >LDYA ZPPtr1 +* >SYSCALL PrintF.YA +* lda #'|' +* >SYSCALL PutChar.A +* lda #13 +* >SYSCALL PutChar.A +* lda #10 +* >SYSCALL PutChar.A ldy #1 lda (ZPPtr1),y diff --git a/SBIN/SHELL.S.txt b/SBIN/SHELL.S.txt index 40fec7fb..c89921e1 100644 --- a/SBIN/SHELL.S.txt +++ b/SBIN/SHELL.S.txt @@ -352,6 +352,7 @@ CS.CHARIN tax Save Char clc Len-1-Ptr !!!!! >SBC.G CmdBufPtr beq .30 + phx tax >LDA.G CmdBuflen @@ -374,12 +375,16 @@ CS.CHARIN tax Save Char >INC.G CmdBufPtr >CMP.G CmdBuflen - beq .8 + bne .8 - jmp CmdLine.PRINTPTR + tay + lda #0 + sta (ZPCMDBuf),y -.8 clc - rts + clc + rts + +.8 jmp CmdLine.PRINTPTR *-------------------------------------- CS.CHARIN.CTRL cpx #13 CR diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index b5e452a0..61f8ba47 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -397,19 +397,6 @@ PullPtr1Ptr2 clc >PULLW ZPPtr3 .9 rts *-------------------------------------- -K.DEBUG >SYSCALL PrintF.YA - lda #'@' - >SYSCALL PutChar.A - lda #13 - >SYSCALL PutChar.A - lda #10 - >SYSCALL PutChar.A - - >DEBUG - rts -*-------------------------------------- - - MAN SAVE /A2OSX.SRC/SYS/KERNEL.S.JMP LOAD /A2OSX.SRC/SYS/KERNEL.S diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index c01388b7..848c6fb7 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -115,9 +115,7 @@ K.PutChar.A.FIFO rts .9 lda #MLI.ERR.VOLFULL - sec - rts - + .HS 2C bit abs .99 lda #MLI.ERR.EOF sec rts @@ -736,7 +734,7 @@ K.SScanF.IsDigit * %2f : '3.14' *\-------------------------------------- K.SPrintF.YA >STYA ZPPtr1 - >PULLW Printf.Cout.Ptr+1 +* >PULLW Printf.Cout.Ptr+1 K.FPrintF.YA >STYA ZPPtr1 @@ -1087,7 +1085,7 @@ PrintF.SS ldy #$00 PSTR *-------------------------------------- Printf.Cout jmp K.PutChar.A -Printf.Cout.Ptr sta $ffff Self modified +*Printf.Cout.Ptr sta $ffff Self modified *-------------------------------------- STDIO.PullMLIPath >PULLYA @@ -1130,6 +1128,12 @@ STDIO.IOERR lda #MLI.ERR.IO sec rts *-------------------------------------- +TYPES .AS "-dbclssp" +ACCESS .AS "rwxrwxrwx" +SIGN .BS 1 +PADLEN .BS 1 +PADCHAR .BS 1 +*-------------------------------------- MAN SAVE /A2OSX.SRC/SYS/KERNEL.S.STDIO LOAD /A2OSX.SRC/SYS/KERNEL.S diff --git a/SYS/KERNEL.S.STDLIB.txt b/SYS/KERNEL.S.STDLIB.txt index 496c3198..23f4b483 100644 --- a/SYS/KERNEL.S.STDLIB.txt +++ b/SYS/KERNEL.S.STDLIB.txt @@ -26,7 +26,7 @@ K.AToI.YA * Convert String to 32 bits int * ## In: * PUSHW PTR to target buffer DWORD -* PUSHW Source String (PSTR) +* PUSHW Source String (C-Sring) * ## Out: *\-------------------------------------- K.AToL jsr PullPtr1Ptr2 PSTR in Ptr1,buffer in Ptr2 @@ -38,25 +38,23 @@ K.AToL jsr PullPtr1Ptr2 PSTR in Ptr1,buffer in Ptr2 lda (ZPPtr1) beq .2 - ldy #0 + ldy #$ff .1 iny lda (ZPPtr1),y + beq .2 cmp #'0' bcc .2 cmp #'9'+1 bcs .2 - inx sta ASCBUF,x + inx cpx #10 - beq .2 - tya - cmp (ZPPtr1) bne .1 -.2 stx ASCBUF +.2 stz ASCBUF,x jsr DEC2HEX ldy #3 @@ -69,12 +67,6 @@ K.AToL jsr PullPtr1Ptr2 PSTR in Ptr1,buffer in Ptr2 clc rts *-------------------------------------- -TYPES .AS "-dbclssp" -ACCESS .AS "rwxrwxrwx" -SIGN .BS 1 -PADLEN .BS 1 -PADCHAR .BS 1 -*-------------------------------------- * Convert HEXBUF to ASCBUF decimal padded with 0 *-------------------------------------- HEX2DEC ldx #4 @@ -213,7 +205,6 @@ ASCBUF .BS 12 LEN + sign + 10 digits ($FFFFFFFF=4.294.967.295) * CS : A = Error Code *\-------------------------------------- K.RealPath.YA >STYA ZPPtr1 - ldx #$ff lda (ZPPtr1) @@ -243,9 +234,11 @@ K.RealPath.YA >STYA ZPPtr1 inx lda (ZPPtr1),y sta K.Buf256,x - bne .3 X=LEN, K.Buf256 = /dir1..../file(/) /x0 + bne .3 *-------------------------------------- -.4 dex +* X=LEN, K.Buf256 = /dir1../file(/) /x0 + + dex beq .89 we have '/'....nothing to do... lda K.Buf256,x Skip any / at the end of string.... @@ -267,7 +260,10 @@ K.RealPath.YA >STYA ZPPtr1 .HS 2C BIT ABS, skip "LDY #0" .7 ldy #0 not a dot....reset dot counter - bra .80 always, should end with a '/' + txa + beq .89 + dex + bra .6 always, should end with a '/' .8 tya beq .80 Y was 0....nothing to do... @@ -286,9 +282,9 @@ K.RealPath.YA >STYA ZPPtr1 jsr K.RealPath.RemoveAtX remove "/.." - dex skip actual "/" +.11 dex -.11 lda K.Buf256,x go to "/dir" + lda K.Buf256,x go to "/dir" cmp #'/' bne .11 @@ -300,9 +296,6 @@ K.RealPath.YA >STYA ZPPtr1 bra .5 .89 >LDYAI K.Buf256 - jsr K.DEBUG - - >LDYAI K.Buf256 jmp K.NewStr.YA .90 lda #SYSMGR.ERRSYN