From d8bd97c7cb0b4d593d4d835dd8da0698520bb423 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 22 Sep 2017 08:38:22 +0200 Subject: [PATCH] Kernel 0.9.1 : Code reorganization & move to CSTR : SHELL, bug fix, EDIT --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes BIN/EDIT.S.CTRL.txt | 2 +- BIN/EDIT.S.txt | 7 ++++--- BIN/MD.S.txt | 20 +++++++++++++------- BIN/MEM.S.txt | 7 ++++--- BIN/MEMDUMP.S.txt | 7 ++++--- README.md | 2 +- SBIN/KCONFIG.S.txt | 6 +++--- SBIN/SHELL.S.CMD.txt | 5 +++++ SBIN/SHELL.S.txt | 5 ++--- 11 files changed, 37 insertions(+), 24 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 20bb5a7d06394fa4630513c7a7109bcada851c5f..002b3c6422b4cb0942fce12de4369ce119dce5e4 100644 GIT binary patch delta 4781 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 H{?&g2lu!Nh delta 4723 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 diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index 9802c919ac060c07f77aa56b3e0085fdf41d1898..506179187cb1f161bfaef83e6d32172779f56dca 100644 GIT binary patch delta 20501 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 diff --git a/BIN/EDIT.S.CTRL.txt b/BIN/EDIT.S.CTRL.txt index 5b49ae91..6980d0cd 100644 --- a/BIN/EDIT.S.CTRL.txt +++ b/BIN/EDIT.S.CTRL.txt @@ -627,7 +627,7 @@ Prompt.Save cmp #3 >SYSCALL FreeMem.A .11 >LDYA pData - >SYSCALL NewPStrYA + >SYSCALL NewStr.YA txa ldy #hFileName diff --git a/BIN/EDIT.S.txt b/BIN/EDIT.S.txt index 3f453299..baad78ba 100644 --- a/BIN/EDIT.S.txt +++ b/BIN/EDIT.S.txt @@ -30,9 +30,10 @@ CS.START cld .DA #$61 6502,Level 1 (65c02) .DA #1 BIN Layout Version 1 .DA 0 - .DA CS.END-CS.START Code Length To Relocate - .DA DS.END-DS.START Data Segment to Allocate - .DA 0 + .DA CS.END-CS.START CS + .DA DS.END-DS.START DS + .DA #16 SS + .DA #10 ZP .DA 0 *-------------------------------------- * Relocation Table diff --git a/BIN/MD.S.txt b/BIN/MD.S.txt index 0241f1b7..a096d4a5 100644 --- a/BIN/MD.S.txt +++ b/BIN/MD.S.txt @@ -11,8 +11,6 @@ AUTO 6 .INB /A2OSX.BUILD/INC/MACROS.I .INB /A2OSX.BUILD/INC/A2OSX.I *-------------------------------------- -ZPPTR1 .EQ ZPBIN -*-------------------------------------- * File Header (16 Bytes) *-------------------------------------- CS.START cld @@ -20,9 +18,10 @@ CS.START cld .DA #$61 6502,Level 1 (65c02) .DA #1 BIN Layout Version 1 .DA 0 - .DA CS.END-CS.START Code Length To Relocate - .DA 0 - .DA 0 + .DA CS.END-CS.START CS + .DA DS.END-DS.START DS + .DA #16 SS + .DA 0 ZP .DA 0 *-------------------------------------- * Relocation Table @@ -45,7 +44,8 @@ CS.RUN >SYSCALL GetArgC >SYSCALL GetFullPath.YA bcs .9 - stx hFullPath + txa + >STA.G hFullPath >SYSCALL MKDir.YA bcs .9 @@ -60,7 +60,7 @@ CS.RUN >SYSCALL GetArgC CS.DOEVENT sec rts *-------------------------------------- -CS.QUIT lda hFullPath +CS.QUIT >LDA.G hFullPath beq .8 >SYSCALL FreeMem.A @@ -68,7 +68,13 @@ CS.QUIT lda hFullPath rts *-------------------------------------- CS.END +*-------------------------------------- + .DUMMY + .OR 0 +DS.START hFullPath .BS 1 +DS.END + .ED *-------------------------------------- MAN SAVE /A2OSX.SRC/BIN/MD.S diff --git a/BIN/MEM.S.txt b/BIN/MEM.S.txt index 177a55ca..ddca8572 100644 --- a/BIN/MEM.S.txt +++ b/BIN/MEM.S.txt @@ -24,9 +24,10 @@ CS.START cld .DA #$61 6502,Level 1 (65c02) .DA #1 BIN Layout Version 1 .DA 0 - .DA CS.END-CS.START Code Length To Relocate - .DA DS.END-DS.START Data Segment to Allocate - .DA 0 + .DA CS.END-CS.START CS + .DA DS.END-DS.START DS + .DA #16 SS + .DA #4 ZP .DA 0 *-------------------------------------- * Relocation Table diff --git a/BIN/MEMDUMP.S.txt b/BIN/MEMDUMP.S.txt index 3af9a40d..5dabfac1 100644 --- a/BIN/MEMDUMP.S.txt +++ b/BIN/MEMDUMP.S.txt @@ -24,9 +24,10 @@ CS.START cld .DA #$61 6502,Level 1 (65c02) .DA #1 BIN Layout Version 1 .DA 0 - .DA CS.END-CS.START Code Length To Relocate - .DA DS.END-DS.START Data Segment to Allocate - .DA 0 + .DA CS.END-CS.START CS + .DA DS.END-DS.START DS + .DA #16 SS + .DA #4 ZP .DA 0 *-------------------------------------- * Relocation Table diff --git a/README.md b/README.md index 19d777f2..ad4a9b05 100644 --- a/README.md +++ b/README.md @@ -164,7 +164,7 @@ note : '$VAR' does NOT expand Variable | MEM | Working | Old dump behavior is now MEMDUMP. New MEM command displays MEMSTAT (Main, Aux & Kernel Memory) | 0.9.1 | | LSDEV | Working | | 0.9.1 | | PS | Working | | 0.9.1 | -| MD | Working | | 0.9 | +| MD | Working | | 0.9.1 | | LS | Working | -A : Do Not Print . & .. | 0.9 | | | | -L : long listing with size/date... | | | | | -R : Recurse subdirectories | | diff --git a/SBIN/KCONFIG.S.txt b/SBIN/KCONFIG.S.txt index 3f83bc97..8158cba2 100644 --- a/SBIN/KCONFIG.S.txt +++ b/SBIN/KCONFIG.S.txt @@ -179,8 +179,8 @@ CS.RUN.ToggleSlotA rts *-------------------------------------- CS.RUN.Load >LEA.G StatBuf - ldy #hFileName - lda (pData),y + >PUSHYA + >LDA.G hFileName >SYSCALL GetMemPtr.A >PUSHYA >SYSCALL Stat @@ -346,7 +346,7 @@ MSG.TOPBAR.OK >CSTR "KCONFIG File Successfully Loaded. \e[0m" MSG.TOPBAR.KO >CSTR "Invalid/missing KCONFIG File. \e[0m" MSG.STATUSBAR >CSTR "\e[7m\e[24;1HCtrl-Q:Quit,Ctrl-S:Save,Ctrl-T:Toggle Time,Ctrl-C:Toggle CHRoot,1-7:En/Dis Slot \e[0m" MSG.KCONF >CSTR "\e[2;1H------ Actual Kernel Configuration ------\r\n" -MSG.FCONF >CSTR "\e[13;1H------ KCONFIG File Configuration ------\r\n" +MSG.FCONF >CSTR "\e[13;1H------ KCONFIG File Configuration -------\r\n" MSG.HZ >CSTR " Machine Timing : %d0 Hz\r\n" MSG.CHROOT >CSTR " CHRoot to /RAMx : %s\r\n" MSG.ENABLED >CSTR "Enabled " diff --git a/SBIN/SHELL.S.CMD.txt b/SBIN/SHELL.S.CMD.txt index 174138aa..f9cf802e 100644 --- a/SBIN/SHELL.S.CMD.txt +++ b/SBIN/SHELL.S.CMD.txt @@ -13,6 +13,11 @@ CMD.Init >LDYAI CmdLine.MAX+1 >STA.G hCmdBuf .9 rts *-------------------------------------- +CMD.Quit >LDA.G hCmdBuf + beq .9 + >SYSCALL FreeMem.A +.9 rts +*-------------------------------------- * ZPCMDBuf : Remove extra SPACE & comment *-------------------------------------- Cmd.Parse >LDYA ZPCMDBuf diff --git a/SBIN/SHELL.S.txt b/SBIN/SHELL.S.txt index 7a85a53d..0ae7bd61 100644 --- a/SBIN/SHELL.S.txt +++ b/SBIN/SHELL.S.txt @@ -425,9 +425,8 @@ CS.CHARIN.CTRL cpx #13 CR rts *-------------------------------------- CS.QUIT jsr HIS.Quit - jsr CSH.Quit - + jsr CMD.Quit clc rts *-------------------------------------- @@ -489,7 +488,7 @@ CmdLine.DEL >LDA.G CmdBuflen tay lda #0 - sta (pData),y + sta (ZPCMDBuf),y lda #8 >SYSCALL PutChar.A