From 17a4222ff703047c3d0451f11ef38052a179bd21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 1 Sep 2017 17:40:26 +0200 Subject: [PATCH] Kernel 0.9.1 : Code reorganization & move to CSTR, Stack Management --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes SBIN/SHELL.S.CMD.txt | 2 - SBIN/SHELL.S.CSH.txt | 28 ++--- SBIN/SHELL.S.txt | 226 ++++++++++++++++++++++++++++++++------- 5 files changed, 203 insertions(+), 53 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 93a31c8d32beaa4f54a07f5abe6b4211a799002f..086735099fd5306a90398da832a8b6196d9bf9dd 100644 GIT binary patch delta 2741 zcmZ`5e{37o`Eqemr(GK7g&AWCygNIIoyPfLw~fgvw$Tk-DX3xvG0G4(v1ra{|Clvx zQr7KGT}&fOnS5T^Wwd`hj=K1QFS;|6s`2Rqnc>n6D*)oPDTsloQV{1klojf zI-~-XzTfhaJS~P&9%LWhk7m2Kegf$*gX(n%uo3REU*C^uKJ)hqv6XLsDFV~eeeTm=gkt|ZjogEguv8=B#N{f#hTD*Qs7 z2aZsMuMyh=`LyQ?I9K5Hui^4I&i2lPRi+ZQk9>$Nu4Llc_w((wpBwB^d^2qMW~~i; zG;FXMLz_qHT3s!MlbLWfoPWRGD^@7-;Bb z)39seR06|npLn~>jr-1Q>G&tZlo>|DzjL%S$?f3$30TuJaeH7V`>5;Chy%7Wp;C6j zXw2Z1#E4fVm{FF7*?YR~Xh&sbn7wcO4&n~8G)Rc%E@qU(2>Zit-Vu6}7aou{diBLb zt;>3dx}!3b((|!X6k6{z>5zlUCnGF(+`DyIoDRnJw~IKL!CAh@O)*($I{N^$eaI<0 z?|d6Ap!ec(*u4UVugE7ed=?i&AjK)iM%g3&?aVjFp_E2h{6f6n|)Lja_` zuz%RyCtZ+mK^%a38r*kcqEpuxl^&wy3GPgm(jRC0_o5;SOiADrOg?bxdvUh61u19Z z?6*W*>$3k9Ea1{oCNAT(Ox*fg1>3g*0#z2(eoF_Y#!U7!H(^sT)HBp}i!ia$*O*`h zI*VYEG4PJupvPl5@`jAy=9S>tpwud*ayg>O5lUWYChy6SHy!4(j0F7X0L~21A*7s2 zus;*gHPPOUUytQ&sTIE*gULaD1M~9U9RukBT;Ata1Dv4mOq+8_$eY`!wvE2gKpkdh zTxR=c`pD}h3QYFREyb!Pn(Uu@FGgMy9a1*pP_j{hfUqmDe`bJyQg;)Z8KlPC&G5{S zaDu#MqPZdia&woMX}Z^oFy28wDAO+iI@zC%!hwDqm%ro8JeXy?J@~;QV+BfoSY(`O zw$B}BywyHytxX367-CMh@%fMHA?3dZ*t1@QpNtU|-h#PKb^lu3t+4nohxIo>p=i zc$cmwR3^3bPC_26uBOMW^?6!MYVf^`p}lai?lpcwRg=E=m>c4f0-00)%K2q6Xp<5#4Sd9 z?|3PFbI5X7p}~JT#*X%)pp2|`$UMO5dITPjXfbkh)7o8(!q=lsB!x;ud4G(J(1&pG zNBCuY_RBH$@|R<+o--mxn48#ct6uB2zR*vCv-&BVpesjSb-MaI^!f$pZ1O6E@Qm9cG)osul+2*~1Fqh!p+m&Ys>#dP+L)(8(x(e> z7iEVzl_OiK(g7!lY@MqhsF{pseH*TNc!NQ$-AB&D7v~zrG-jcc{4q8<$@!be`rOeZ zC0v;eSLQQ%WUoE4Eku=^pkmWB0+4H+cszt34^eul;ev_bpM!5>;$(;hc=qtsR#+Zb XZLr#5?Skcn)d6ew<-=F^T)+N5ORY(k delta 2660 zcmZ`5e{369`Et$=rzMHAU);QozC1f=>^1HA?8HtQva!PEN|~xLCZKHEp%LM*_75xs zQYiRT;x)1qcoK!s#35s^em^R6 zNc|QtibOK8^#bWK!*(0`c*uB;$R_r6r~_2X6XTlPk< z7$^i`$AzFKaZ|Wd3`{dSp}hqH-XxJUM#iZ@5j`I=A{(jpq}598C5d_? zXoAK$7bvw5%eRM<|=*~cR{3f7pJzG_#dFWdeiz(LR@qr_pf@aJ(QUg zWXy@HcU#{evL;cS~Q5~d<7)&<~* zR)iX{TOptJLV?c}1pNpqkD=`FY)oY;G5hFyywz7S`Pz5$?X{m8>@l zMx3VN=?*#C-t}QOyD8yPpqH^=VL_a-6=vKu0&5 zhEo%#!X0J@ls|_&z0WWWxqmTCnPD{aD@U@4w>cd3M_@ru3wHQU_K52Q?|_}?mCInJ zXIH~1tB2Y9JwQ}eLY{l^ZTsNh=V^)Z?DxO2E1Df6YAY>8zrGZ$^;r7}qcJK&DR+P1 z+5Lrztfbw{k0;WNb^~t7@20W&_{Mm>HUo5{CYns2i+bvd_^IV z7P5RX3Oo_zc!WKA-|ZW6r`Jj;!lLJz%0HO*0Y}`;&Ikah8_uKdIpKn+3j_e_X>itw zfR0TgBJHQS_U|%sKwuAa<09s!C2$I67dZ8d!1lLb<&407HN)3>?0@?Ud}%o?$ozU* zu>M}*?OU8km4&od=*ZKUsX%iVHKkrXLv6Q+ldA*UBd9=!35+5J9)g?nb38}hkTG1H z63l%{tx{@Vj%e~AB`-FU_vXlDhq)|c5j`44=`ful%Bd*(lMKF=vG<_Yhw`@MK`#!$ z)h92(!29AI6Xiiv-se^WoS-j7o73gw@(!x)pl@uW4zn}wvhmpw^16w+sge2Rp{j|e z;`470k=HT~DVuO8*-?>zuq$w6c8q{h_weP}acayxJUlxgo*=K8c)rMh-25eGhMx5z z%xBOK%JfTsPQ|mM@IikHmA{VY(1Kwk*azQTVl1xonNBi7)Bv|cp*7^)5!W444 zO~}7rk1C(V*t1@Yo*W`74DNtGZ&wJ_-PNcYlO|w9% z)g#g$=}TD#FH-VE)$Ujz&=K%p|2!d5s_h*EC(H?;WEzZi_gE>lGGRHa(BMCgvyp!6 zm$B6jnFlyiPrwT>T1*_j6~8xBtp)UxA(+dDZFa^U&)T zptH%V5W+Xz7NJ?XVB$m?=O1+SHbxA|Y*kITme%G16_WnC2zOC-n3FluP?h4GB(n8L z1w+kbe$Kb)s)t7u)Y=2&JnSg9ZA@bpONk%yMi)81f~}7oO;XgA*>q(-qMz*bi5(%T z*z=gRoi Iz1Oe*4{otV82|tP diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index e6c6392f9be75d3c068ca73066ba9f81d6f072e0..4cb71211b01869a30d2344c9d0a80920ceb2f114 100644 GIT binary patch delta 9954 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 diff --git a/SBIN/SHELL.S.CMD.txt b/SBIN/SHELL.S.CMD.txt index 04fa91db..3951919a 100644 --- a/SBIN/SHELL.S.CMD.txt +++ b/SBIN/SHELL.S.CMD.txt @@ -153,8 +153,6 @@ Cmd.Exec.EXT ldy #1 cmp #'/' Command line is already full path, no search bne .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.CSH.txt b/SBIN/SHELL.S.CSH.txt index 2e6250ec..c89c9367 100644 --- a/SBIN/SHELL.S.CSH.txt +++ b/SBIN/SHELL.S.CSH.txt @@ -116,7 +116,7 @@ CSH.Run jsr CSH.GetBuf jmp CSH.GetNextCharNB Skip ; -.99 lda #CSHERR.SYNTAX +.99 lda #CSH.E.SYNTAX sec .9 rts @@ -365,7 +365,7 @@ CSH.IF jsr CSH.GetCharNB clc rts -.9 lda #CSHERR.SYNTAX +.9 lda #CSH.E.SYNTAX sec .99 rts *-------------------------------------- @@ -386,7 +386,7 @@ CSH.BREAK *-------------------------------------- CSH.CONTINUE - lda #CSHERR.SYNTAX + lda #CSH.E.SYNTAX sec rts *-------------------------------------- @@ -440,12 +440,12 @@ CSH.TYPE sta CSH.ACCT clc rts -.9 lda #CSHERR.SYNTAX +.9 lda #CSH.E.SYNTAX sec .99 rts *-------------------------------------- - lda #CSHERR.SYNTAX + lda #CSH.E.SYNTAX sec rts *-------------------------------------- @@ -475,7 +475,7 @@ CSH.ExpEval jsr CSH.ZeroACC .8 clc rts -.9 lda #CSHERR.SYNTAX +.9 lda #CSH.E.SYNTAX sec .99 rts *-------------------------------------- @@ -491,7 +491,7 @@ CSH.GetName ldy #0 cpy #CSH.Name.MAX bcc .1 - lda #CSHERR.TOOLONG + lda #CSH.E.TOOLONG sec rts @@ -499,7 +499,7 @@ CSH.GetName ldy #0 clc rts -.9 lda #CSHERR.SYNTAX +.9 lda #CSH.E.SYNTAX sec rts *-------------------------------------- @@ -523,7 +523,7 @@ CSH.GetNumInACC ldy #0 bcs .9 rts -.9 lda #CSHERR.SYNTAX +.9 lda #CSH.E.SYNTAX sec rts *-------------------------------------- @@ -606,12 +606,12 @@ CSH.AddVar jsr CSH.FindVar clc rts -.97 lda #CSHERR.DUP +.97 lda #CSH.E.DUP sec rts .98 pla -.99 lda #CSHERR.OOM +.99 lda #CSH.E.OOM sec rts *-------------------------------------- @@ -693,7 +693,7 @@ CSH.Push pha clc rts -.9 lda #CSHERR.SOVERFLW +.9 lda #CSH.E.SOVERFLW sec rts *-------------------------------------- @@ -707,7 +707,7 @@ CSH.Pop ldy #CSH.StackPtr clc rts -.9 lda #CSHERR.SYNTAX +.9 lda #CSH.E.SYNTAX sec rts *-------------------------------------- @@ -728,7 +728,7 @@ CSH.CheckStack pha clc rts -.9 lda #CSHERR.SYNTAX +.9 lda #CSH.E.SYNTAX sec rts *-------------------------------------- diff --git a/SBIN/SHELL.S.txt b/SBIN/SHELL.S.txt index 34d4ec98..c4283935 100644 --- a/SBIN/SHELL.S.txt +++ b/SBIN/SHELL.S.txt @@ -12,6 +12,160 @@ AUTO 6 .INB /A2OSX.BUILD/INC/A2OSX.I .INB /A2OSX.BUILD/INC/MLI.ERR.I *-------------------------------------- +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 @@ -23,15 +177,16 @@ ZPCSHStack .EQ ZPBIN+14 *-------------------------------------- CmdLine.MAX .EQ 127 VarLen.MAX .EQ 15 + CSH.Stack.MAX .EQ 15 CSH.Name.MAX .EQ 15 -CSHERR.SYNTAX .EQ $7F -CSHERR.SOVERFLW .EQ $7E -CSHERR.NOVERFLW .EQ $7D -CSHERR.OOM .EQ $7C -CSHERR.DUP .EQ $7B -CSHERR.UNDEF .EQ $7A -CSHERR.TOOLONG .EQ $79 +CSH.E.SYNTAX .EQ $7F +CSH.E.SOVERFLW .EQ $7E +CSH.E.NOVERFLW .EQ $7D +CSH.E.OOM .EQ $7C +CSH.E.DUP .EQ $7B +CSH.E.UNDEF .EQ $7A +CSH.E.TOOLONG .EQ $79 *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -42,7 +197,7 @@ CS.START cld .DA 0 .DA CS.END-CS.START Code Length To Relocate .DA DS.END-DS.START Data Segment to Allocate - .DA 64 SS + .DA 0 .DA 0 *-------------------------------------- * Relocation Table @@ -103,8 +258,8 @@ CS.INIT jsr SetPWD ora #S.PS.F.EVENT Now accept events sta (pPs) - >SYSCALL GetArgC - cmp #1 + ldy #S.PS.ARGC + lda (pPs),y beq .1 no arg, continue starting interactive @@ -144,8 +299,7 @@ CS.INIT jsr SetPWD * clc .9 rts *-------------------------------------- -CS.RUN ldy #VarBuffer READ Command ? - lda (pData),y +CS.RUN >GETG.A bReadMode READ Command ? bne CS.RUN.READ ldy #S.PS.RC @@ -165,8 +319,7 @@ CS.RUN ldy #VarBuffer READ Command ? .13 jsr CheckSleep bne .8 - ldy #CSH.hBuf batch mode ? - lda (pData),y + >GETG.A CSH.hBuf batch mode ? beq .10 jmp CS.RUN.BATCH @@ -224,12 +377,9 @@ CS.RUN.READ lda #0 jsr CS.CHARIN - lda (pData) + >GETG.A bCmdBuf.exec bpl .1 - and #$7F - sta (pData) - >PUSHW pData lda #VarBuffer @@ -317,7 +467,6 @@ CS.RUN.BATCH jsr CSH.Run CS.DOEVENT lda (pEvent) bpl .9 - jsr CheckSleep beq .9 @@ -335,32 +484,33 @@ CS.DOEVENT lda (pEvent) .9 sec rts *-------------------------------------- -CS.CHARIN tax - ldy #CSH.hBuf Batch mode ? - lda (pData),y +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 ? beq .10 * Batch Mode cpx #3 test Ctrl-c bne .12 - ldy #bExitOnEOF - lda (pData),y - ldy #bExit - sta (pData),y + >GETG.A bExitOnEOF + >SETG.A bExit clc rts .12 cpx #19 test Ctrl-s bne .8 - ldy #bPause + lda #$80 - sta (pData),y + >SETG.A bPause clc rts * interactive mode -.10 ldy #bEscMode - lda (pData),y +.10 >GETG.A bEscMode beq .13 cpx #'[' @@ -421,18 +571,16 @@ CS.CHARIN.CTRL cpx #13 CR lda #10 >SYSCALL PutChar.A - lda (pData) CmdBuffer - ora #$80 - sta (pData) + lda #$ff + >SETG.A bCmdBuf.exec clc rts .10 cpx #$1B esc bne .11 - ldy #bEscMode lda #$ff - sta (pData),y + >SETG.A bEscMode clc rts @@ -605,8 +753,12 @@ CSH.ARG .BS 5 .DUMMY .OR 0 DS.START -CmdBuffer .BS CmdLine.MAX+1 (pData) -VarBuffer .BS VarLen.MAX+1 +hCmdBuf .BS 1 +CmdBuf.len .BS 1 +bCmdBuf.exec .BS 1 + +bReadMode .BS 1 + bEscMode .BS 1 bPause .BS 1 bExit .BS 1