From b057d6e2f55e10fb1cbfdb9be1991ab55ffe0990 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Tue, 5 Sep 2017 17:17:10 +0200 Subject: [PATCH] Kernel 0.9.1 : Code reorganization & move to CSTR (SHELL) --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes BIN/EDIT.S.SCRN.txt | 12 ++- BIN/EDIT.S.txt | 4 +- INC/A2osX.I.txt | 2 +- INC/MACROS.I.txt | 52 ++++++---- LIB/LIBBLKDEV.S.txt | 6 +- SBIN/SHELL.S.CMD.txt | 31 +++--- SBIN/SHELL.S.txt | 217 +++++++-------------------------------- SYS/KERNEL.S.JMP.txt | 2 +- SYS/KERNEL.S.MEM.txt | 63 +++++++++--- 11 files changed, 147 insertions(+), 242 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 086735099fd5306a90398da832a8b6196d9bf9dd..1befd328acb43bc11d755cbbb4a6c221fef7b08e 100644 GIT binary patch delta 10351 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 delta 10281 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 X;S&R&Soo;n69=F8eX2tVm*4(hsno7( diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index 4cb71211b01869a30d2344c9d0a80920ceb2f114..5b19bc1fd48bcedec13e30ed93b632a6fe2c1297 100644 GIT binary patch delta 31658 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 AQvd(} delta 31910 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 diff --git a/BIN/EDIT.S.SCRN.txt b/BIN/EDIT.S.SCRN.txt index 54f8b9f7..aaff8faa 100644 --- a/BIN/EDIT.S.SCRN.txt +++ b/BIN/EDIT.S.SCRN.txt @@ -226,15 +226,17 @@ SCRN.UpdateStatusBar lda (pData),y bne .2 - ldy #FileY+1 + ldy #FileY lda (pData),y tax - dey + iny lda (pData),y - inc - bne .1 inx -.1 >PUSHAX + bne .1 + inc +.1 >PUSHA + txa + >PUSHA ldy #FileX lda (pData),y diff --git a/BIN/EDIT.S.txt b/BIN/EDIT.S.txt index 1ee6b816..3f453299 100644 --- a/BIN/EDIT.S.txt +++ b/BIN/EDIT.S.txt @@ -137,7 +137,7 @@ CS.RUN >LDYA L.SEQ.DETECT bcs .9 .1 >SYSCALL Sleep - >SYSCALL GetC + >SYSCALL GetChar bcs .1 jsr CharIn @@ -154,7 +154,7 @@ CS.RUN >LDYA L.SEQ.DETECT bne .99 >SYSCALL Sleep - >SYSCALL GetC + >SYSCALL GetChar bcs .2 diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index 2eb3b2c4..3ef48209 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -277,7 +277,7 @@ SYS.GetMemByID.A .EQ $C6 SYS.GetMem.YA .EQ $C8 SYS.GetMem0.YA .EQ $CA * .EQ $CC -* .EQ $CE +SYS.NewStr.YA .EQ $CE SYS.SetLoMem .EQ $D0 SYS.GetMemStat.YA .EQ $D2 diff --git a/INC/MACROS.I.txt b/INC/MACROS.I.txt index 27321882..175899c5 100644 --- a/INC/MACROS.I.txt +++ b/INC/MACROS.I.txt @@ -113,7 +113,37 @@ AUTO 6 jsr A2osX.MLICALL .EM *-------------------------------------- -* D.STACK PUSH/PULL Macros +* Global DATA Segment Access +*-------------------------------------- + .MA GETG.A + ldy #]1 + lda (pData),y + .EM +*-------------------------------------- + .MA SETG.A + ldy #]1 + sta (pData),y + .EM +*-------------------------------------- + .MA GETG.YA + ldy #]1 + lda (pData),y + pha + iny + lda (pData),y + ply + .EM +*-------------------------------------- + .MA SETG.YA + phy + ldy #]1+1 + sta (pData),y + dey + pla + sta (pData),y + .EM +*-------------------------------------- +* STACK PUSH/PULL *-------------------------------------- .MA PUSHA dec pStack @@ -140,26 +170,6 @@ AUTO 6 lda (pStack) inc pStack .EM -*-------------------------------------- - .MA PUSHAX - pha - txa - dec pStack - sta (pStack) - pla - dec pStack - sta (pStack) - .EM -*-------------------------------------- - .MA PULLAX - lda (pStack) - inc pStack - pha - lda (pStack) - inc pStack - tax - pla - .EM *-------------------------------------- .MA PUSHBI dec pStack diff --git a/LIB/LIBBLKDEV.S.txt b/LIB/LIBBLKDEV.S.txt index 068ff67c..8e842314 100644 --- a/LIB/LIBBLKDEV.S.txt +++ b/LIB/LIBBLKDEV.S.txt @@ -84,7 +84,11 @@ L.ProDOS.Boot .DA ProDOS.Boot * Y,A=BufSize (max $4400) *\-------------------------------------- GetProDOSCatSize - >PULLAX A=DevSizeLo + >PULLA + pha + >PULLA + tax + pla A=DevSizeLo GetProDOSCatSizeAX clc for now, no partial bitmap blk to add diff --git a/SBIN/SHELL.S.CMD.txt b/SBIN/SHELL.S.CMD.txt index 3951919a..f24dcc58 100644 --- a/SBIN/SHELL.S.CMD.txt +++ b/SBIN/SHELL.S.CMD.txt @@ -7,14 +7,12 @@ AUTO 6 *-------------------------------------- * Remove extra SPACE & comment *-------------------------------------- -Cmd.Normalize >LDYA pData +Cmd.Normalize >LDYA ZPBufBase >STYA ZPPtr1 - lda (pData) empty line...quit + lda (ZPBufBase) empty line...quit beq .9 - tax Char count - ldy #0 .1 jsr Cmd.Normalize.Next @@ -26,8 +24,8 @@ Cmd.Normalize >LDYA pData cmp #'#' Comment ? beq .8 ignore remaining chars -.3 iny add char to buffer - sta (pData),y +.3 sta (ZPBufBase),y add char to buffer + iny jsr Cmd.Normalize.Next beq .8 @@ -35,28 +33,28 @@ Cmd.Normalize >LDYA pData cmp #' ' bne .3 - iny add One SPACE to buffer - sta (pData),y + sta (ZPBufBase),y add One SPACE to buffer + iny .5 jsr Cmd.Normalize.Next beq .8 + cmp #' ' beq .5 skip additional spaces bne .3 no more space, add next word... -.8 tya - sta (pData) +.8 lda #0 + sta (ZPBufBase),y .9 rts Cmd.Normalize.Next - txa + lda (ZPPtr1) beq .8 - dex + inc ZPPtr1 - bne .1 - inc ZPPtr1+1 -.1 lda (ZPPtr1) + bne .8 + inc ZPPtr1+1 never Z .8 rts *-------------------------------------- * Y,A -> Command line (formatted & not empty) @@ -152,8 +150,9 @@ Cmd.Exec.EXT ldy #1 lda (ZPPtr1),y cmp #'/' Command line is already full path, no search bne .10 + jmp .3 - >LDYA L.ENV.PATH push ENVNAME=PATH for search +.10 >LDYA L.ENV.PATH push ENVNAME=PATH for search >SYSCALL GetEnv.YA get value for ENV=PATH bcs .1 No PATH, try in CD diff --git a/SBIN/SHELL.S.txt b/SBIN/SHELL.S.txt index c4283935..2164f168 100644 --- a/SBIN/SHELL.S.txt +++ b/SBIN/SHELL.S.txt @@ -1,6 +1,6 @@ PR#3 PREFIX /A2OSX.BUILD -NEW +LOMEM $A00 INC 1 AUTO 6 .LIST OFF @@ -14,158 +14,6 @@ AUTO 6 *-------------------------------------- UsrBuf256 .EQ $200 *-------------------------------------- -Stack .EQ $80 -Stack.B .EQ $fe -Stack.P .EQ $ff Initial value=$fd -*-------------------------------------- - .MA STACK.BACKUP - - ldy #0 - - ldx Stack.P At least eq $fd - inx - -:1 lda Stack,x - sta (pStack),y - iny - inx - bne :1 - - tsx - inx - inx Skip 2 bytes Return address to Kernel - - txa - eor #$ff compute byte count on stack.... - inx - beq :9 - - sta :8+1 save count for later - - -:2 pla - sta (pStack),y - iny - inx - bne :2 - -:8 lda #$ff -:9 sta (pStack),y - - tya - ldy #S.PS.SP - sta (pPs),y - - .EM -*-------------------------------------- - .MA STACK.RESTORE - ldy #S.PS.SP get PS stack top.... - lda (pPs),y - tay - - lda (pStack),y get 6502 stack bytes to restore - dey - tax - beq :2 - -:1 lda (pStack),y - dey - pha - dex - bne :1 - - ldx #$ff - -:2 tya - beq :8 - - lda (pStack),y - sta Stack,x - dex - dey - -:8 - .EM -*-------------------------------------- - .MA ADDLOCAL - lda Stack.P - sec - sbc #]1 - sta Stack.P - sta Stack.B - .EM -*-------------------------------------- - .MA GETL.A - ldx Stack.B - lda Stack+]1,x - .EM -*-------------------------------------- - .MA GETL.YA - ldx Stack.B - ldy Stack+]1,x - lda Stack+1+]1,x - .EM -*-------------------------------------- - .MA SETL.A - ldx Stack.B - sta Stack+]1,x - .EM -*-------------------------------------- - .MA SETL.YA - ldx Stack.B - sty Stack+]1,x - sta Stack+1+]1,x - .EM -*-------------------------------------- - .MA PUSHLW - ldx Stack.P - .DO ]#=2 - lda ]1+1,]2 - sta Stack,x - dex - lda ]1,]2 - sta Stack,x - dex - stx Stack.P - .ELSE - lda ]1+1 - sta Stack,x - dex - lda ]1 - sta Stack,x - dex - stx Stack.P - .FIN - .EM -*-------------------------------------- - .MA GETG.A - ldy #]1 - lda (pData),y - .EM -*-------------------------------------- - .MA SETG.A - ldy #]1 - sta (pData),y - .EM -*-------------------------------------- - .MA GETG.YA - ldy #]1 - lda (pData),y - pha - iny - lda (pData),y - ply - .EM -*-------------------------------------- - .MA SETG.YA - phy - ldy #]1+1 - sta (pData),y - dey - pla - sta (pData),y - .EM -*-------------------------------------- ZPPTR1 .EQ ZPBIN ZPPTR2 .EQ ZPBIN+2 ZPPTR3 .EQ ZPBIN+4 @@ -309,8 +157,7 @@ CS.RUN >GETG.A bReadMode READ Command ? jsr IO.PrintErrMsg bcs CS.RUN.EXIT.RTS -.11 ldy #bPause - lda (pData),y +.11 >GETG.A bPause bpl .13 >SYSCALL GetChar @@ -324,11 +171,16 @@ CS.RUN >GETG.A bReadMode READ Command ? jmp CS.RUN.BATCH -.10 lda #0 - sta (pData) +* Interactive Mode + +.10 >GETG.A hCmdBuf Get the buffer + >SYSCALL GetMemPtr.A + >STYA ZPBufBase - ldy #bSecureRead - sta (pData),y + lda #0 reset it + sta (ZPBufBase) + + >SETG.A bSecureRead Clear password mode .12 jsr PrintPrompt bcs CS.RUN.EXIT.RTS @@ -339,14 +191,12 @@ CS.RUN >GETG.A bReadMode READ Command ? jsr CS.CHARIN - lda (pData) + >GETG.A bCmdBufexec Something to execute ? bpl .1 - - and #$7F - sta (pData) jsr Cmd.Normalize - lda (pData) + + >GETG.A CmdBuflen beq .12 Empty line jsr HIS.Add @@ -368,8 +218,12 @@ CS.RUN.EXIT lda #0 CS.RUN.EXIT.ERR sec CS.RUN.EXIT.RTS rts *-------------------------------------- -CS.RUN.READ lda #0 - sta (pData) +CS.RUN.READ >GETG.A hCmdBuf Get the buffer + >SYSCALL GetMemPtr.A + >STYA ZPBufBase + + lda #0 reset it + sta (ZPBufBase) .1 >SYSCALL Sleep >SYSCALL GetChar @@ -377,10 +231,10 @@ CS.RUN.READ lda #0 jsr CS.CHARIN - >GETG.A bCmdBuf.exec + >GETG.A bCmdBufexec bpl .1 - >PUSHW pData + >PUSHW ZPBufBase lda #VarBuffer clc @@ -484,13 +338,8 @@ CS.DOEVENT lda (pEvent) .9 sec rts *-------------------------------------- -CS.CHARIN >ADDLOCAL 2 room for bCmdBuf - >GETG.A hCmdBuf - >SYSCALL GetMemPtr.A - >SETL.YA 0 - - tax Save Char - >GETG.A CSH.hBuf Batch mode ? +CS.CHARIN tax Save Char + >GETG.A CSH.hBuf Batch mode ? beq .10 * Batch Mode cpx #3 test Ctrl-c @@ -510,14 +359,18 @@ CS.CHARIN >ADDLOCAL 2 room for bCmdBuf rts * interactive mode -.10 >GETG.A bEscMode +.10 >GETG.A hCmdBuf + >SYSCALL GetMemPtr.A + >STYA ZPBufBase + + >GETG.A bEscMode beq .13 cpx #'[' beq .8 lda #0 - sta (pData),y + sta (pData),y Y=bEscMode txa @@ -572,7 +425,7 @@ CS.CHARIN.CTRL cpx #13 CR >SYSCALL PutChar.A lda #$ff - >SETG.A bCmdBuf.exec + >SETG.A bCmdBufexec clc rts @@ -754,8 +607,8 @@ CSH.ARG .BS 5 .OR 0 DS.START hCmdBuf .BS 1 -CmdBuf.len .BS 1 -bCmdBuf.exec .BS 1 +CmdBuflen .BS 1 +bCmdBufexec .BS 1 bReadMode .BS 1 @@ -766,12 +619,16 @@ bEcho .BS 1 bSecureRead .BS 1 bExitOnEOF .BS 1 Sleep .BS 4 +VarBuffer .BS 16 + HIS.hBuf .BS 1 HIS.BufIndex .BS 1 HIS.BufEnd .BS 1 + IO.hIn .BS 1 IO.hOut .BS 1 IO.hErr .BS 1 + CSH.hBuf .BS 1 CSH.BufPtr .BS 2 CSH.BufLen .BS 2 diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index f04b8635..e9ec622b 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -127,7 +127,7 @@ K.SYSCALL.JMP .DA 0 $00 .DA K.GetMem.YA .DA K.GetMem0.YA .DA 0 - .DA 0 + .DA K.NewStr.YA *-------------------------------------- .DA K.SetLoMem $D0 .DA K.GetMemStat.YA diff --git a/SYS/KERNEL.S.MEM.txt b/SYS/KERNEL.S.MEM.txt index af17d536..ad690859 100644 --- a/SYS/KERNEL.S.MEM.txt +++ b/SYS/KERNEL.S.MEM.txt @@ -33,28 +33,32 @@ MemMgr.ReqFlags .EQ ZPMEMMGR+6 store requested Flags * A = EC *\-------------------------------------- K.GetMem >PULLB MemMgr.ReqFlags store requested flags + + clc + >PULLA get requested size LO + bit #$0F 16 bytes aligned ? + beq .1 yes, request it + + and #$F0 align on 16 bytes + adc #$10 + +.1 sta MemMgr.ReqSize + + >PULLA get requested size HI + adc #0 + sta MemMgr.ReqSize+1 + + bit MemMgr.ReqFlags S.MEM.F.AUX ? + bpl K.GetMem.I + and #S.MEM.F.AUX beq .1 sta SETREADAUX Aux Mem requested,switch to AUX sta SETWRITEAUX -.1 >PULLAX get requested size - bit #$0F 16 bytes aligned ? - beq .2 yes, request it - - and #$F0 align on 16 bytes - clc - adc #$10 - bcc .2 - inx - -.2 >STAX MemMgr.ReqSize jsr K.GetMem.I - bit MemMgr.ReqFlags S.MEM.F.AUX ? - bpl .9 - sta CLRREADAUX sta CLRWRITEAUX @@ -436,6 +440,35 @@ K.GetMemByID.A sta ZPMemMgrSPtr * sty ZPMemMgrSPtr * sta ZPMemMgrSPtr+1 * rts +*/-------------------------------------- +* # NewStr.YA +* Create a new copy of this C-String +* ## In: +* Y,A = Ptr to source C-String +* ## Out: +* CC : success +* Y,A = PTR to String +* X = hMem (PSTR) +* CS : error +* A = SYS error code +*\-------------------------------------- +K.NewStr.YA >STYA .1+1 + >STYA . + +.1 lda $ffff, + + + + + stz MemMgr.ReqFlags + jsr K.GemMem.YA + bcs .9 + + + + + + *-------------------------------------- K.LoadStkObj.YA *-------------------------------------- @@ -449,7 +482,7 @@ K.SetLoMem */-------------------------------------- * # GetMemStat.YA * ## In: -* Y,A = 24 bytes buffer +* Y,A = Ptr to 24 bytes buffer * ## Out: * Buffer filled with memory stats *\--------------------------------------