From 98632f7a49462c4bebc250e31820d269597f7a24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Wed, 27 Sep 2017 17:40:31 +0200 Subject: [PATCH] Kernel 0.9.1 : SHELL : History & CL Editing OK --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes BIN/LS.S.txt | 4 ++ DRV/CONSOLE.DRV.S.txt | 30 ++++++--- DRV/SSC.DRV.S.txt | 6 +- DRV/SSC.I.DRV.S.txt | 6 +- README.md | 6 +- SBIN/SHELL.S.CL.txt | 131 +++++++++++++++++++++++++++++++++++++++ SBIN/SHELL.S.CMD.txt | 20 +++++- SBIN/SHELL.S.HIS.txt | 4 ++ SBIN/SHELL.S.txt | 126 +++++++++---------------------------- 11 files changed, 218 insertions(+), 115 deletions(-) create mode 100644 SBIN/SHELL.S.CL.txt diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 6734e8f92a90951a5d0c41834271c635c42bd82d..228f53be6661f1c535fdc7696f59654b6ab4f45e 100644 GIT binary patch delta 3940 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 HDeAuf!+_fa delta 4156 zcmZu!3v?6LnI2s|EE^li#+Zo=;c7-#wrt6k%uBYy+gnWP1UG?%lBQAC7z~7_C7T5B zL)tDj9Ezw7sfXmq-KiEkmZO1@(?HXMjYt}5nH)3pw1*^Jid#-ucT4EBp&$a(`(KHq z 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 KC8uARCjTEnIayx- diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index a6f91073443d8b27ae8534aabe5f5f16fb24265a..f82cc21e5053e6acf5f211f6d3e1775fa9a871fc 100644 GIT binary patch delta 26147 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 diff --git a/BIN/LS.S.txt b/BIN/LS.S.txt index 04ed2574..fedccdbc 100644 --- a/BIN/LS.S.txt +++ b/BIN/LS.S.txt @@ -60,6 +60,10 @@ CS.INIT ldy #S.PS.ARGC .1 >SYSCALL GetArg.A >STYA ZPPtr1 + >SYSCALL PrintF.YA + lda #'|' + >SYSCALL PutChar.A + lda (ZPPtr1) cmp #'-' bne .4 diff --git a/DRV/CONSOLE.DRV.S.txt b/DRV/CONSOLE.DRV.S.txt index e07d09e5..302057ff 100644 --- a/DRV/CONSOLE.DRV.S.txt +++ b/DRV/CONSOLE.DRV.S.txt @@ -186,6 +186,8 @@ WRITE bit bEscMode .1 pha jsr CUROFF pla + cmp #$7f + beq DEL cmp #32 bcc COUT.Ctrl @@ -202,6 +204,27 @@ FS ldx CH .8 clc rts *-------------------------------------- +DEL ldx CH + beq .1 + dec CH + bra .3 + +.1 ldy CV + beq .8 + + lda #79 + sta CH + dec CV + +.3 lda #$20 + ora INVFLG + ldx CH + ldy CV + jmp SetCharAtXY + +.8 clc + rts +*-------------------------------------- COUT.Ctrl ldx #CtrlChars.Cnt-1 .1 cmp CtrlChars,x @@ -383,13 +406,6 @@ BS ldx CH .3 clc rts - - - lda #$20 - ora INVFLG - ldx CH - ldy CV - jmp SetCharAtXY *-------------------------------------- ClrScr stz CH stz CV diff --git a/DRV/SSC.DRV.S.txt b/DRV/SSC.DRV.S.txt index 5977112c..c7a7d116 100644 --- a/DRV/SSC.DRV.S.txt +++ b/DRV/SSC.DRV.S.txt @@ -79,7 +79,7 @@ Dev.Detect >STYA ARGS sta A2osX.SLOTS,y pla ora #$30 - sta DEV.HEADER.NAME+4 + sta DEV.HEADER.NAME+3 asl asl asl @@ -97,7 +97,7 @@ DEVSIG.Offset .HS 05070B0C DEVSIG.Value .HS 38180131 DEVSIG.Length .EQ DEVSIG.Value-DEVSIG.Offset MSG.DETECT >CSTR "Apple SSC (Super Serial Card,//c Serial Port) Driver.\r\n" -MSG.DETECT.OK >CSTR "SSC Installed As Device : %S\r\n" +MSG.DETECT.OK >CSTR "SSC Installed As Device : %s\r\n" MSG.DETECT.KO >CSTR "No SSC Found.\r\n" ARGS .BS 2 *-------------------------------------- @@ -107,7 +107,7 @@ DEV.HEADER cld jmp (DRV.CS.START,x) .DA #S.DEV.S.WRITE+S.DEV.S.READ .BS 6 -DEV.HEADER.NAME >PSTR "COM1" NAME +DEV.HEADER.NAME >CSTR "COM1" NAME *-------------------------------------- * Driver Code *-------------------------------------- diff --git a/DRV/SSC.I.DRV.S.txt b/DRV/SSC.I.DRV.S.txt index 3a9b1bc0..2a21d49e 100644 --- a/DRV/SSC.I.DRV.S.txt +++ b/DRV/SSC.I.DRV.S.txt @@ -82,7 +82,7 @@ Dev.Detect >STYA ARGS sta A2osX.SLOTS,y pla ora #$30 - sta DEV.HEADER.NAME+4 + sta DEV.HEADER.NAME+3 asl asl asl @@ -100,7 +100,7 @@ DEVSIG.Offset .HS 05070B0C DEVSIG.Value .HS 38180131 DEVSIG.Length .EQ DEVSIG.Value-DEVSIG.Offset MSG.DETECT >CSTR "Apple SSC (Super Serial Card,//c Serial Port) Driver (IRQ Enabled).\r\n" -MSG.DETECT.OK >CSTR "SSC Installed As Device : %S\r\n" +MSG.DETECT.OK >CSTR "SSC Installed As Device : %s\r\n" MSG.DETECT.KO >CSTR "No SSC Found.\r\n" ARGS .BS 2 *-------------------------------------- @@ -110,7 +110,7 @@ DEV.HEADER cld jmp (DRV.CS.START,x) .DA #S.DEV.S.WRITE+S.DEV.S.READ+S.DEV.S.IRQ .BS 6 -DEV.HEADER.NAME >PSTR "COM1" NAME +DEV.HEADER.NAME >CSTR "COM1" NAME *-------------------------------------- * Driver Code *-------------------------------------- diff --git a/README.md b/README.md index ae69da30..68522a33 100644 --- a/README.md +++ b/README.md @@ -164,8 +164,8 @@ note : '$VAR' does NOT expand Variable | Name | Status | Comment | K.Ver | | ---- | ------ | ------- | ----- | | Console.DRV | Working | ANSI support in Progress. | 0.9.1 | -| SSC.DRV | Working | Apple "Super Serial Card" Driver | 0.9 | -| SSC.I.DRV | Working | Apple "Super Serial Card" Driver (IRQ enabled) | 0.9 | +| SSC.DRV | Working | Apple "Super Serial Card" Driver | 0.9.1 | +| SSC.I.DRV | Working | Apple "Super Serial Card" Driver (IRQ enabled) | 0.9.1 | | PIC.DRV | In Progress | Apple "Parallel Interface Card" Driver, renamed from PPIC.DRV | 0.9 | | Mouse.DRV | Working | Apple Mouse Card,//c Mouse Port | 0.9 | | DHGR.DRV | In Progress | except bitblt... | 0.9 | @@ -182,7 +182,7 @@ note : '$VAR' does NOT expand Variable | LSDEV | Working | | 0.9.1 | | PS | Working | | 0.9.1 | | MD | Working | | 0.9.1 | -| LS | Working | -A : Do Not Print . & .. | 0.9 | +| LS | Working | -A : Do Not Print . & .. | 0.9.1 | | | | -L : long listing with size/date... | | | | | -R : Recurse subdirectories | | | RM | Working | -C : Continue On Error | 0.9 | diff --git a/SBIN/SHELL.S.CL.txt b/SBIN/SHELL.S.CL.txt new file mode 100644 index 00000000..7e50ffb5 --- /dev/null +++ b/SBIN/SHELL.S.CL.txt @@ -0,0 +1,131 @@ +PR#3 +PREFIX /A2OSX.BUILD +NEW +INC 1 +AUTO 6 + .LIST OFF +*-------------------------------------- +*-------------------------------------- +CmdLine.CLR ldy #0 + +.1 lda (ZPCMDBuf),y + beq .9 + +.2 lda #$7F + + sta (ZPCMDBuf),y + iny + lda (ZPCMDBuf),y + bne .2 + + jsr CmdLine.PRINT + + jmp CmdLine.RESET + +.9 rts +*-------------------------------------- +CmdLine.BS >LDA.G CmdBufPtr + beq .9 + + dec + sta (pData),y + + lda #8 + >SYSCALL PutChar.A +.9 rts +*-------------------------------------- +CmdLine.NAK >LDA.G CmdBufPtr + >CMP.G CmdBuflen + beq .9 + + inc + >STA.G CmdBufPtr + + lda #21 + >SYSCALL PutChar.A +.9 rts +*-------------------------------------- +CmdLine.DEL >LDA.G CmdBuflen + beq .8 + sec + >SBC.G CmdBufPtr + tax Keep in x char count to \0 + bne .1 + + >DEC.G CmdBuflen + >STA.G CmdBufPtr + + tay + lda #0 + sta (ZPCMDBuf),y + + lda #$7f + >SYSCALL PutChar.A + rts + +.8 clc + rts + +.1 >LDA.G CmdBufPtr + tay + +.2 iny + lda (ZPCMDBuf),y + dey + sta (ZPCMDBuf),y + iny + dex + bne .2 + + >DEC.G CmdBuflen +*-------------------------------------- +CmdLine.PRINTPTR + >LDA.G CmdBufPtr + tay + +.1 lda (ZPCMDBuf),y + beq .2 + + phy + >SYSCALL PutChar.A + ply + iny + bra .1 + +.2 lda #' ' + >SYSCALL PutChar.A + lda #8 + >SYSCALL PutChar.A + + >LDA.G CmdBufPtr + tay + +.3 lda (ZPCMDBuf),y + beq .8 + + phy + lda #8 + >SYSCALL PutChar.A + ply + iny + bra .3 + +.8 clc + rts +*-------------------------------------- +CmdLine.PRINT >LDYA ZPCMDBuf + >SYSCALL PrintF.YA + rts +*-------------------------------------- +CmdLine.RESET lda #0 + sta (ZPCMDBuf) + >STA.G bCmdBufexec + >STA.G CmdBufPtr + >STA.G CmdBuflen + >STA.G bSecureRead Clear password mode + rts +*-------------------------------------- +MAN +SAVE /A2OSX.SRC/SBIN/SHELL.S.CL +LOAD /A2OSX.SRC/SBIN/SHELL.S +ASM diff --git a/SBIN/SHELL.S.CMD.txt b/SBIN/SHELL.S.CMD.txt index 4201c4e8..694a9063 100644 --- a/SBIN/SHELL.S.CMD.txt +++ b/SBIN/SHELL.S.CMD.txt @@ -205,12 +205,21 @@ Cmd.Exec.EXT.TXT >SYSCALL StrCpy jsr Cmd.Exec.EXT.SEP Add a space.... - + >LDA.G CMD.hFullpath >SYSCALL GetMemPtr.A >PUSHYA >PUSHW ZPCMDBuf >SYSCALL StrCat + + >LDYA ZPCMDBuf + >SYSCALL PrintF.YA + lda #'!' + >SYSCALL PutChar.A + lda #13 + >SYSCALL PutChar.A + lda #10 + >SYSCALL PutChar.A *-------------------------------------- * BIN : Launch "/PATH/CMD ARGS" *-------------------------------------- @@ -224,6 +233,15 @@ Cmd.Exec.EXT.BIN >PUSHW ZPCMDBuf >SYSCALL StrCat + >LDYA ZPCMDBuf + >SYSCALL PrintF.YA + lda #'!' + >SYSCALL PutChar.A + lda #13 + >SYSCALL PutChar.A + lda #10 + >SYSCALL PutChar.A + .1 >LDA.G CMD.bStartProc asl >LDYA ZPCMDBuf diff --git a/SBIN/SHELL.S.HIS.txt b/SBIN/SHELL.S.HIS.txt index 7b4eadd3..bafa83a0 100644 --- a/SBIN/SHELL.S.HIS.txt +++ b/SBIN/SHELL.S.HIS.txt @@ -143,6 +143,10 @@ HIS.SetA jsr HIS.GetA sta (ZPCMDBuf),y bne .2 + tya + >STA.G CmdBufPtr + >STA.G CmdBuflen + jmp CmdLine.PRINT *-------------------------------------- HIS.GetA ldy #0 diff --git a/SBIN/SHELL.S.txt b/SBIN/SHELL.S.txt index d79e6ec7..89f145a3 100644 --- a/SBIN/SHELL.S.txt +++ b/SBIN/SHELL.S.txt @@ -66,7 +66,6 @@ L.ENV.PWD .DA ENV.PWD L.ENV.PS1 .DA ENV.PS1 L.FMT.DATE .DA FMT.DATE L.FMT.TIME .DA FMT.TIME -L.MSG.HEXBYTE .DA MSG.HEXBYTE J.ESC .DA CmdLine.BS left arrow .DA HIS.GetNext .DA HIS.GetPrev @@ -353,57 +352,45 @@ CS.CHARIN tax Save Char jmp CmdLine.DEL .2 >LDA.G CmdBuflen - cmp #CmdLine.MAX beq .8 Buffer full, discard... inc sta (pData),y - + + clc Len-1-Ptr !!!!! + >SBC.G CmdBufPtr + beq .30 + phx + tax + >LDA.G CmdBuflen tay - lda #0 + +.3 lda (ZPCMDBuf),y Move from Ptr To end of buffer forward... + iny sta (ZPCMDBuf),y - - >LDA.G CmdBufPtr - tay - -*.3 lda (ZPCMDBuf),y Move from Ptr To end of buffer forward... -* iny -* sta (ZPCMDBuf),y -* ora #0 -* bne .3 ...until ending 0 - - - >LDA.G CmdBufPtr Insert char at Ptr + dey + dey + dex + bne .3 + plx + +.30 >LDA.G CmdBufPtr Insert char at Ptr tay txa sta (ZPCMDBuf),y + >SYSCALL PutChar.A >INC.G CmdBufPtr >CMP.G CmdBuflen - bne .4 + beq .8 + jmp CmdLine.PRINTPTR - - - -.4 >LDA.G bSecureRead - bne .8 - - txa - >SYSCALL PutChar.A - .8 clc rts *-------------------------------------- CS.CHARIN.CTRL -* phx -* txa -* >PUSHA -* >LDYA L.MSG.HEXBYTE -* >SYSCALL PrintF.YA -* plx - cpx #13 CR bne .10 @@ -412,6 +399,13 @@ CS.CHARIN.CTRL lda #10 >SYSCALL PutChar.A + >LDA.G CmdBufPtr + tay + lda #0 + sta (ZPCMDBuf),y + tya + >STA.G CmdBuflen + lda #$ff >STA.G bCmdBufexec clc @@ -475,70 +469,7 @@ PrintPrompt >LDYA L.ENV.PS1 plp rts *-------------------------------------- -CmdLine.CLR ldy #0 - -.1 lda (ZPCMDBuf),y - beq .9 - -.2 lda #8 - - sta (ZPCMDBuf),y - iny - lda (ZPCMDBuf),y - bne .2 - - jsr CmdLine.PRINT - - jmp CmdLine.RESET - -.9 rts -*-------------------------------------- -CmdLine.BS >LDA.G CmdBufPtr - beq .9 - - dec - sta (pData),y - - lda #8 - >SYSCALL PutChar.A -.9 rts -*-------------------------------------- -CmdLine.NAK >LDA.G CmdBufPtr - >CMP.G CmdBuflen - beq .9 - - inc - >STA.G CmdBufPtr - - lda #21 - >SYSCALL PutChar.A -.9 rts -*-------------------------------------- -CmdLine.DEL >LDA.G CmdBuflen - beq .9 - dec - sta (pData),y - - tay - lda #0 - sta (ZPCMDBuf),y - - lda #8 - >SYSCALL PutChar.A -.9 rts -*-------------------------------------- -CmdLine.PRINT >LDYA ZPCMDBuf - >SYSCALL PrintF.YA - rts -*-------------------------------------- -CmdLine.RESET lda #0 - sta (ZPCMDBuf) - >STA.G bCmdBufexec - >STA.G CmdBufPtr - >STA.G CmdBuflen - >STA.G bSecureRead Clear password mode - rts -*-------------------------------------- + .INB /A2OSX.SRC/SBIN/SHELL.S.CL .INB /A2OSX.SRC/SBIN/SHELL.S.CMD .INB /A2OSX.SRC/SBIN/SHELL.S.CSH .INB /A2OSX.SRC/SBIN/SHELL.S.IO @@ -580,7 +511,6 @@ MSG.PRINTENV >CSTR "%s=%s\r\n" MSG.CSHERR >CSTR "Pos %D:" FMT.DATE >CSTR "%A, %B %d %Y" FMT.TIME >CSTR "%H:%M:%S (%I:%M:%S%p)" -MSG.HEXBYTE >CSTR "[%h]" *-------------------------------------- .INB /A2OSX.SRC/X.ERRORS.S *--------------------------------------