From 50763e0f7aab9ba1a0ecd94bc484436f6adf8f42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Thu, 26 Oct 2017 08:41:57 +0200 Subject: [PATCH] Kernel 0.9.1 : KERNEL API, bugfix in Dec 2 Hex conversion --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes SBIN/SHELL.S.CL.txt | 16 ++++++ SBIN/SHELL.S.CMD.txt | 2 +- SBIN/SHELL.S.CSH.txt | 118 +++++++++++++++++++++------------------ SBIN/SHELL.S.IO.txt | 2 +- SBIN/SHELL.S.txt | 42 +++++++------- SYS/KERNEL.S.STDLIB.txt | 8 ++- 8 files changed, 108 insertions(+), 80 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index f974d1fbbda033cfbc85aad664d40e4f870e670d..d44145619e2e6f344f824b26a264b18df1d262d3 100644 GIT binary patch delta 2031 zcmah}e{2)i9lv|_#ZKA_4us$w3w-?}7ymr}2uTc?L$;CCp-#yLn?@nX)fyJG3`m0* zf}}BN!-CaHHf21tuF{i5GHfN}9HyeJFr{lU?68UJ#;Sq5K~*WMwu)XQ*22;$duOC| ze@vQA-*@l(zMt>s``+h$@8a=bJRX#LIQ_G>YU69qaW?&KTl3n>w_^<#$FY4caw zm=73cw+(90Yb@%XHMUUaDDKm|Cawx{-WO%Yzfxc zzU}wyw|Du7xQxq`w2qwHPVS z2}(cVX`F)|pBy7xPB0nLA`QyVz@$~_B!_bXO+IFU1smM4%Hi}q8Z03;$`2rKAv&7! zcY-MF&#-JOO>V)04?3{Ui9|M!T~6c;k2{lV3sKb_fd#3L@Tr;zG3JDdzE~;0l4j1@ zRReU`Wt3sGxH*<#Lb2Iu(`uN+XPu~n8*fy(#Yq=JR?|asEK!ji^20qy?zlIi=%O8^ z%7qm*ETjZ8Ip;x}*_ZGZ`l>Y8%=A{_9Y1Vy!N>Td2OZJBWs5H0M;`QX-4?rQEr9x2 z!KMl+dmgC2x&X?9(j0RVdWlu>X$fsGs*YJG_!JNB_M>Y2j)cTjH|mp>RK%L}JQW3Q z;D-`&md)5ROnMe~`A{ux_aP2(B7Vw;9NK%photfud-?*!M`!RwAKHV~IWXr(XX&Mx zqcrzsh>o*X_0!A>sY(eGwhPuV%gYeW<6rnuFFS)b29U)xV;@ghwOIOBkEyx?NYc;P zqi^HU0D76i3_YK4@QX83nOL`L>V^7DmZD1?<- z=#}JZ__bSJ4HvvJ593mywZxPe3B}-`n=m<1cyJ+R*SAo?+t^85A$e=;A1&CqpTLo>bmO`=?#oK`WI^Zl=m4y>Q(l z`?SqA6k1h*O0-b}2-+FeQi-%Qo=Q{>y|}pvc`CZ3xIw#i*oym`P-x_r9x_VVDM6P; zTB*rxfI+X^7Jo9n1+GeR6Kwa$ehuL+IMoO(vklHj@`mYez*INDm|I>$M(Ounl_)V? z_fTl^vUcbMIZZ_#eOHiCJgs4%%_A>q;j{6(=2+Il%yFjWS50%+-i%Ie>XJg_=zt(c z53q8C9Lot2GDL+A4ZqSTw~(XMhc4-O%8{ps(#BB<2)^BnBx9G9odvZ$flVz4*aQx= zpj!Lfk|lmM6w^3U0?a;E}lPd@CfYc9Xt|l zX=&w4fgMjnfamx3AA0Txba#durNE{@)8=4vQ!D=;K#=c0bntu784d(m;fv))p6?8I zx&!}(+(b+42S=w9PVfMw0$0AC*Tvb%MIEZ!dyv^+Mbe delta 1884 zcmZuxeQZ+a9pzj9x4 zzw1`qzCc@mVc?V%F7fiZys5U*aH>`^;e>9-Ye(i!f%9beQp(L@?@)@CUwh_#KQk0#6%U#LkY< zh>Lig`(3G3g^212!>AaSjOp62WXN$<@mMLp8Z+}YwE~lV<|6m7gY-2Q`KIFsO{#v* z^e=O4xN5x52lJ5HF+ZT_B7EtZ!jc-|(wtcua}z?X0@=iN&_{8rzGgLJLm=Y=-VN{5 zvjXWUdy$WvrE9$8i#oGSwH84As=%vU+BOTQ-(3J@v2>;mksM<`ps$Lg9=AD>w5`ZC zq^hOLTy16sD~BxQ8i}hsY0EO1Jne2I_f{O$?4LH!u14Y{xSwt$Vr9~n8AW>}N#`2L zUh<`bI(+0O*aUL~b3Y8?nzyPqvrAGfWZ`@sQD!VlND8l0?qN%;$QtsDG zTMLJkP4G)^YPF^Xq{BIG9P)12neB%wUfB}Mu+SmOwHT(mo>;_c)nU~zr~DnQ=9u=l zzNa8^#T%BM&T*I_9V%^cG?gL@NXw8N7kXyi;JNO}CS#Y50y;c4{#^91`XF3*UzGQGop(d8KqT$0;?#C5%x4LsD;P zwGB%zAe%=ob23TDS`6@lyr8)=i9f?jqI?A$g8X}Pj2)-jH;^B$7sR0S>>*B$bg^<+ zdM?L>r9Nad*x%hGZVM_jnl478OJZnhBdK5c{~T{^B=&pJk!7U*8g6z@`S-Z`c@RJTu+*F5&a@KC zSdf%cODnNA91>GEM`98)i&LqGfs&^6Xa(#LQ&rl;=wSyv&`Mm!+rH8tj|K!U(M&6u zTJsznhl%ImxJ6=Amb zo%El1Pgi&RLGs#zI`&9Y*TEjx+4)RQi_vJ@f1tag2cqqvCegp%-@GZXp}EC)p!?tx z&>r%)fYI0v9ht0qPxm(+YIP^d6dg(#iXNpLr2@r(Qi)PE LS*CpB&M*E02U^2X diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index 56cfffb425562a2539c1668c1cb3e6e2b0f12176..ad1aabed550141b26e6742018e5f5f3c1027dce6 100644 GIT binary patch delta 21460 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 BzU}}3 delta 21187 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 L.ENV.PS1 + >SYSCALL GetEnv.YA + >SYSCALL ExpandStr.YA + phx + >SYSCALL PrintF.YA + >LDYA L.MSG.PROMPT + >SYSCALL PrintF.YA + plx + php + pha + txa + >SYSCALL FreeMem.A + pla + plp + rts +*-------------------------------------- CmdLine.CLR ldy #0 .1 lda (ZPCMDBuf),y diff --git a/SBIN/SHELL.S.CMD.txt b/SBIN/SHELL.S.CMD.txt index c348a28f..795bb62c 100644 --- a/SBIN/SHELL.S.CMD.txt +++ b/SBIN/SHELL.S.CMD.txt @@ -1,6 +1,6 @@ PR#3 PREFIX /A2OSX.BUILD -NEW +LOMEM $A00 INC 1 AUTO 6 .LIST OFF diff --git a/SBIN/SHELL.S.CSH.txt b/SBIN/SHELL.S.CSH.txt index 5af4d99d..2ec6dfed 100644 --- a/SBIN/SHELL.S.CSH.txt +++ b/SBIN/SHELL.S.CSH.txt @@ -1,6 +1,6 @@ PR#3 PREFIX /A2OSX.BUILD -NEW +LOMEM $A00 INC 1 AUTO 6 .LIST OFF @@ -57,7 +57,6 @@ CSH.Init lda #$FF *-------------------------------------- CSH.Run lda #0 >STA.G CmdBuflen Reset Cmdline - jsr CSH.GetCharNB bcs .9 @@ -74,7 +73,7 @@ CSH.Run lda #0 .1 cmp #$0D bne .2 - jmp CSH.GetNextCharNB Skip CR + jmp CSH.GetNextCharNB Skip CR and exit .2 pha jsr CSH.SavePtr Save Ptr, in case of while,for.... @@ -109,13 +108,13 @@ CSH.Run lda #0 jsr CSH.GetNextCharNB Skip = bcs .99 - phy jsr CSH.ExpEval - ply bcs .9 jsr CSH.StoreACCToVar bcs .9 + + jsr CSH.GetChar cmp #';' bne .99 @@ -142,23 +141,23 @@ CSH.Run lda #0 bne .6 bra .99 Line Too long !!! -.7 tya +.7 lda #0 + sta (ZPCMDBuf),y + + tya clc adc ZPCSHBufPtr sta ZPCSHBufPtr bcc .8 inc ZPCSHBufPtr+1 -.8 lda #0 - sta (ZPCMDBuf),y - - tya +.8 tya >STA.G CmdBuflen lda #$ff >STA.G bCmdBufexec >LDA.G bEcho - beq .80 +* beq .80 >PUSHW ZPCMDBuf >LDYA L.MSG.ECHO @@ -294,7 +293,7 @@ CSH.LONG lda #CSH.TYPE.LONG CSH.FLOAT lda #CSH.TYPE.FLOAT CSH.TYPE >STA.G CSH.ACCT - + jsr CSH.GetChar bcs .9 cmp #' ' @@ -323,10 +322,8 @@ CSH.TYPE >STA.G CSH.ACCT jsr CSH.GetNextCharNB bcs .9 - phy Save Ptr To Value jsr CSH.ExpEval - ply - + bcs .9 jsr CSH.StoreACCToVar Update value to this var @@ -362,7 +359,7 @@ CSH.LookupID >STYA ZPPtr1 CSH.LookupOP >STYA ZPPtr1 jsr CSH.GetOPLen - + CSH.Lookup phy Y = len ldx #0 @@ -416,24 +413,33 @@ CSH.ExpEval jsr CSH.ZeroACC jsr CSH.GetCharNB bcs .9 + +.10 jsr CSH.IsLetter Fnc or Var ? + bcs .2 + + jsr CSH.GetVar + bcs .1 + + jsr CSH.LoadACCFromVar + bcs .9 + bra .11 + +.1 bra .9 TO DO : Functions + +.2 jsr CSH.IsDigit10 number ? + bcs .9 + + jsr CSH.GetNumInACC + bcs .9 + +.11 jsr CSH.GetCharNB + bcs .9 + cmp #')' beq .8 cmp #';' beq .8 -.10 jsr CSH.IsLetter Fnc or Var ? - bcs .5 - - jsr CSH.GetVar - - bcs .4 - - >DEBUG - jsr CSH.LoadACCFromVar - bcs .9 - - jsr CSH.GetCharNB - bcs .9 jsr CSH.IsOPChar bcs .9 @@ -442,7 +448,7 @@ CSH.ExpEval jsr CSH.ZeroACC bcs .9 >LDA.G CSH.EXPBOP1 previous OP... - bne .2 go check precedence + bne .5 go check precedence txa >STA.G CSH.EXPBOP1 @@ -454,7 +460,7 @@ CSH.ExpEval jsr CSH.ZeroACC sec .99 rts -.2 txa +.5 txa >STA.G CSH.EXPBOP2 >CMP.G CSH.EXPBOP1 bcs .3 @@ -471,28 +477,18 @@ CSH.ExpEval jsr CSH.ZeroACC bcs .9 jsr CSH.GetCharNB bcc .10 - -.4 - bra .9 - -.5 jsr CSH.IsDigit10 number ? - bcs .9 - - jsr CSH.GetNumInACC - - bcs .9 - - .8 clc rts *-------------------------------------- CSA.Compute tax - jmp (J.CSH.BOBS,x) + >DEBUG + jmp (J.CSH.BOPS,x) *-------------------------------------- CSH.GetNumInACC >LDA.G CSH.ACCT cmp #CSH.TYPE.FLOAT bcc .1 + >PUSHWI ZPCSHBufPtr >PUSHW ZPCSHBufPtr >PUSHEA.G CSH.ACC @@ -592,13 +588,12 @@ CSH.GetVar >LDYA ZPCSHSymbols >STYA ZPPtr1 jsr CSH.GetIDLen - pha + tax Save len .1 lda (ZPPtr1) beq .9 - pla - pha + txa Get back len cmp (ZPPtr1) bne .3 @@ -623,7 +618,7 @@ CSH.GetVar >LDYA ZPCSHSymbols adc ZPCSHData+1 sta ZPCSHValue+1 - pla + txa Get back len clc adc ZPCSHBufPtr @@ -646,8 +641,7 @@ CSH.GetVar >LDYA ZPCSHSymbols inc ZPPtr1+1 bra .1 -.9 pla - sec +.9 sec rts *-------------------------------------- CSH.LoadACCFromVar @@ -662,7 +656,7 @@ CSH.LoadACCFromVar >LEA.G CSH.ACC >STYA ZPPtr1 - ldy #0 + ldy #1 .1 lda (ZPCSHValue),y sta (ZPPtr1) @@ -693,7 +687,7 @@ CSH.StoreACCToVar >LEA.G CSH.ACC >STYA ZPPtr1 - ldy #0 + ldy #1 do not trash TYPE byte .1 lda (ZPPtr1) inc ZPPtr1 @@ -738,7 +732,25 @@ CSH.IsACC0 >LDA.G CSH.ACCT .9 sec rts *-------------------------------------- -CSH.BOPS.PLUS +CSH.BOPS.ADD +CSH.BOPS.SUB +CSH.BOPS.MUL +CSH.BOPS.DIV +CSH.BOPS.MOD +CSH.BOPS.SHL +CSH.BOPS.SHR +CSH.BOPS.L +CSH.BOPS.G +CSH.BOPS.LE +CSH.BOPS.GE +CSH.BOPS.EQ +CSH.BOPS.NE +CSH.BOPS.AND +CSH.BOPS.OR +CSH.BOPS.EOR +CSH.BOPS.LAND +CSH.BOPS.LOR + clc rts diff --git a/SBIN/SHELL.S.IO.txt b/SBIN/SHELL.S.IO.txt index 313a3029..4eb57699 100644 --- a/SBIN/SHELL.S.IO.txt +++ b/SBIN/SHELL.S.IO.txt @@ -1,6 +1,6 @@ PR#3 PREFIX /A2OSX.BUILD -NEW +LOMEM $A00 INC 1 AUTO 6 .LIST OFF diff --git a/SBIN/SHELL.S.txt b/SBIN/SHELL.S.txt index db04f191..a2d818a0 100644 --- a/SBIN/SHELL.S.txt +++ b/SBIN/SHELL.S.txt @@ -25,9 +25,6 @@ CmdLine.MAX .EQ 255 VarLen.MAX .EQ 15 History.MAX .EQ 256 -CSH.Stack.MAX .EQ 15 -CSH.Name.MAX .EQ 15 - CSH.E.SYNTAX .EQ $7F CSH.E.SOVERFLW .EQ $7E CSH.E.NOVERFLW .EQ $7D @@ -85,7 +82,24 @@ J.INTCMDS .DA Cmd.Exec.CD .DA Cmd.Exec.STARTPROC .DA Cmd.Exec.TIME L.CSH.BOPS .DA CSH.BOPS -J.CSH.BOBS .DA CSH.BOPS.PLUS +J.CSH.BOPS .DA CSH.BOPS.ADD + .DA CSH.BOPS.SUB + .DA CSH.BOPS.MUL + .DA CSH.BOPS.DIV + .DA CSH.BOPS.MOD + .DA CSH.BOPS.SHL + .DA CSH.BOPS.SHR + .DA CSH.BOPS.L + .DA CSH.BOPS.G + .DA CSH.BOPS.LE + .DA CSH.BOPS.GE + .DA CSH.BOPS.EQ + .DA CSH.BOPS.NE + .DA CSH.BOPS.AND + .DA CSH.BOPS.OR + .DA CSH.BOPS.EOR + .DA CSH.BOPS.LAND + .DA CSH.BOPS.LOR L.CSH.KEYWORDS .DA CSH.KEYWORDS J.CSH.KEYWORDS .DA CSH.IF .DA CSH.WHILE @@ -440,22 +454,6 @@ SetPWD ldy #S.PS.hPREFIX >PUSHW L.ENV.PWD >SYSCALL SetEnv rts -*-------------------------------------- -PrintPrompt >LDYA L.ENV.PS1 - >SYSCALL GetEnv.YA - >SYSCALL ExpandStr.YA - phx - >SYSCALL PrintF.YA - >LDYA L.MSG.PROMPT - >SYSCALL PrintF.YA - plx - php - pha - txa - >SYSCALL FreeMem.A - pla - plp - rts *-------------------------------------- .INB /A2OSX.SRC/SBIN/SHELL.S.CL .INB /A2OSX.SRC/SBIN/SHELL.S.CMD @@ -530,15 +528,13 @@ CSH.BOPS >PSTR "+" >PSTR ">>" >PSTR "<" >PSTR ">" - >PSTR ">=" - >PSTR "<" + >PSTR "<=" >PSTR ">=" >PSTR "==" >PSTR "!=" >PSTR "&" >PSTR "|" >PSTR "^" - >PSTR "~" >PSTR "&&" >PSTR "||" .HS 00 diff --git a/SYS/KERNEL.S.STDLIB.txt b/SYS/KERNEL.S.STDLIB.txt index 461baac2..b932d591 100644 --- a/SYS/KERNEL.S.STDLIB.txt +++ b/SYS/KERNEL.S.STDLIB.txt @@ -134,7 +134,12 @@ STDLIB.Dec2Hex jsr STDLIB.32.Clear jsr STDIO.IsDigit bcs .8 + phy Save Y, pointing to next char + jsr STDLIB.32.T10 + + ply + bcs .9 lda (ZPPtr2),y @@ -169,7 +174,6 @@ STDLIB.32.T10 ldx #3 bcs .9 overflow!!! ldx #0 - phy ldy #4 * clc @@ -180,7 +184,6 @@ STDLIB.32.T10 ldx #3 inx dey bne .2 - ply bcs .99 overflow!!! @@ -191,6 +194,7 @@ STDLIB.32.T10 ldx #3 pla pla pla + .99 rts *-------------------------------------- STDLIB.32.ROL asl STDLIB.32