From ce0894c9c6e0a86856c31176007e36d1117c7708 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Thu, 25 Jan 2018 16:13:28 +0000 Subject: [PATCH] Kernel 0.9.1 : ASM rewrite, SLIST Debugging --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes BIN/ASM.S.SRC.txt | 2 +- BIN/ASM.S.SYM.txt | 4 +- BIN/ASM.S.txt | 1 - INC/A2osX.I.txt | 4 +- SYS/KERNEL.S.SLIST.txt | 92 +++++++++++++++++++++++++-------------- 7 files changed, 65 insertions(+), 38 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 87f830d76a610e4d0a519b0c44eb316ee13d9c73..8f72caaf0a38da9eb2613fa3e7c421dd358f173d 100644 GIT binary patch delta 5523 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 NplK$sXC|og{{d*|kHP=| delta 5424 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 diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index 2165e872a465a1a53b5e4f74221a733dba039e18..3eda8987c0973b33298d4916839893f8bdca240e 100644 GIT binary patch delta 2086 zcmaJ?U2qds6h61j_TFaGLP?vXsilUNQd(G>^vAXc*pe1ve>DXu3N=krT1Z3NL`lYn zcE?hc;mw)e*#}1*huRr^aE2LpQt?H7b9~U@MTG$@{ve`)|Khp3n?S>i4|isF&$-_@ z=R4oAbTfELmEsn%ACbleSS}dxhi_pE+qeUbxN%yNaQqN|r0(@_WO=0Bb|n@f0|>iQ6f4o#CT9h-^zAA&Y&~QO35LkUI=Wwv*JJuigrdM+yIInA$z8 z-300|fU>=8Y9{*5#K=m~> zLrH*WN8&STw}LhFMkec(p>~iT!@J?QpxxQ6v$-@tEgM)5(GtlJxccsmnC^lKu6|zL zPo3@o(WJX{XS(Tng1`0_bIeLXk4?r^P59oLGFEx?E{hRN z)HTM-2dOjfuy`KV%iTC(3`u&rGUZy27{gl&j-%#iMg^G;GO6>>F2zLY$1HJy@@x4^Dh7NLS%ikiG#8+$;QzVd|Q-T{CP-Bg(+HfXkMG!tX$zaiyWotAg}B zx>x*=m2O`od5+!0_#^!^aJzZ*Vzdz6w==6j9BZd&m+6dAO#9}{zh7t(! zP0(g_gAb&i(ct>U2-4fxD;BmplG-&Mni&GmuV#)dCpu%J>aj5uP3JAjWGE3HKX37X zbW5ao`+rlk{e~bjAPMZbgZZ9tU9EWp_nT4N=|C^&~KU8C>UW!T8Y6|q@xG185a z3~9nf<)O(<3IA{fo5b+Nn@^Oc)!?gopvI3*OsS(G)TR*>>Nqf~8C5p7ya^;50#y_k zqL`WPRWKkGqK|WpSo@^8JnPfD3HG%@{nFn9{yHx>i}=(Mb41szwt!?u99E2?DyFo= z%mKM~;CHK22%iu-<}&r5)X)RB+gx}YfYphyGE?gwApD_=w8UL5L=AtV>kTDR5W51g zOCQw#KtoQC$SD0g&4?b`U@C2;5m>6iJMN9dTpfdzbipdHY9mVNri>6SEVG5>{Do!f I(z1NvKNO#O3jhEB delta 2210 zcmZ`)T~HHO6h4>Ba@PbY7)b&|6j4OLl|)cLZ5u>|%AXC6#%V{FWR;(QKvqe#71r8d z9cTLB4BMUQOxu}?Ja)zz?NjSh+o#U74^E$2sfyOtTH8u%|IhwJ5{nP_VbA&Qx!?Wv zobQg0`^Lw8A8h0@>sICDU25PqGvYZCq76mjz^^7+C=vp`jA$cr6!vj`Tov8Yj0F;j2sE|udPBrm72SU zImgx!t$R>XggW2^JjlJCXuX3WCD7Uu=n`56!&0o{P*ee~8k5g>iS}%3Q_$a{_-Z#o zzK>{q(Gg{ruv3!Tq=9N7=m+}-EEtL^LOr-@5FY3X`jynffv+W+923F4k!X>zaQuH~ z6>Li9Y_QNdyX#5CTT%JAwZpgzvIDLG$=Nm&p-weK+G2^c)fCD091-fx%=1`T3c(`3 zkvWa}HCh60Bj%L@lBrQ+T$X@uveevesJXgeM>?~4HFwU-Hr2^8QMc$c1RMNt;gq>ZTJE#}}*24{!*<{p;6rE@`f-MgP6(u=xC0ZSzHY zXl_)tDqX?O?WY6*qlZ(XZ5>T!)YC)N2MJnO)=Mjt(o&`4sN4XqK7lHT?!2dEmJpex1(snvA#z#X9)c!nspeGJ>W(tA1}9+Q+d ze@na4gIx+MhpE+;eqXDZY~9|j$kM>jkr8nu5(jPsOSq!c>h5-FG$8kPboUwkEhmqH zoTJG@Saqcrgkw~-ouO6hM{)P!7{&i68U(-@PnI$VrBfae{J3_XisXPlNi{hx0zXEL`OhAwnivjU-p6b_`pn#<$ZRSlS#y`W z*~e>gi`zi(s`_l2O|5?U1`{aootMutQmAIW&+g|Iho8V?U0}^Qo<1;cZS6a7f$hjG z9tOdeTJ1wbW_w2GkyBHwA)`xB^RBZ`a*NMAQTXn4R+h8=+&sKXxKc91UZ#xu6f|&t zrtW^oma6aEWY;peYoMuPx7Z0U_ciADZ$Oj97}&3a)-4U|uENd01T6kmKSLjs(rVyt zAhPhL`rZLnu|K?jYFnT`HM&DV8$x%kHXg&oa;2 z@3D|>j5WahpfkA#8k!;4f3)I0;O=AG{gXN~%UtAv`e>G|@c*n=|K;h`vwy|yBiI); zUf>=g*f$4gTPeTl;B8h~_Zwzhzk~j-6G5DUT~a(b1pFf~te^V>F`NDbp(b_r=eJpT z@Gpz%-}6`a2f>B^BG@~LdM5l^4@9rn>! zSl`u+_K43<1~EmUmc`Wqmx-l3ocS`CU6fV`xGV&?m~L}1t38wM0}fvI*T>-|oGRC% zR3!S5dVh*%9$PvPI6GG5v+-pSV`~1ey|jeSGo9VF#PY0k8ZL+a{^jp4T53`^sp5PZ zmS?y>m#^1!T2Fv$A=d`C`zd~1VEVNU{hBMpI?f`)v_;RtroC)o({>aSO=u1%{`%K- nH|ZT10OxY+K51O}6&B4BLDYA L.MSG.SYMBOLS stz ZPLinePtr stz ZPLinePtr+1 - + >DEBUG .1 >PUSHB.G SYM.hGlobals >PUSHW ZPLinePtr >PUSHW ZPTmpBuf @@ -70,7 +70,7 @@ SYM.Dump >LDYA L.MSG.SYMBOLS >LDYA L.MSG.GSYMBOL >SYSCALL PrintF.YA - >DEBUG + bcc .1 rts diff --git a/BIN/ASM.S.txt b/BIN/ASM.S.txt index f4e89cda..5b4eafdc 100644 --- a/BIN/ASM.S.txt +++ b/BIN/ASM.S.txt @@ -268,7 +268,6 @@ CS.RUN >SYSCALL GetChar .9 pha jsr SRC.PrintLineErr - >DEBUG jsr SYM.Dump pla pha diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index aa43d12d..53a7a160 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -384,9 +384,9 @@ S.PS.PC .EQ 14 S.PS.ARGC .EQ 16 S.PS.hARGS .EQ 17 -S.PS.ZP .EQ 24 24 Bytes +S.PS.ZP .EQ 24 8+32 Bytes * -S.PS .EQ 48 +S.PS .EQ 64 *-------------------------------------- * LIB Function Indexes *-------------------------------------- diff --git a/SYS/KERNEL.S.SLIST.txt b/SYS/KERNEL.S.SLIST.txt index 3c620376..9ceb86ac 100644 --- a/SYS/KERNEL.S.SLIST.txt +++ b/SYS/KERNEL.S.SLIST.txt @@ -74,7 +74,7 @@ SLIST.Lookup jsr SLIST.Search tax jsr MEM.SetDataByteY -.1 jsr SLIST.NextBlockByte +.1 jsr SLIST.GetNextBlockByte iny jsr MEM.SetDataByteY dex @@ -97,26 +97,26 @@ SLIST.GetByID jsr SLIST.Select jsr MEM.SetDataByteY -.1 jsr SLIST.NextBlockByte +.1 jsr SLIST.GetNextBlockByte iny jsr MEM.SetDataByteY dex bne .1 - jsr SLIST.NextBlockByte + jsr SLIST.GetNextBlockByte tax iny jsr MEM.SetDataByteY -.2 jsr SLIST.NextBlockByte +.2 jsr SLIST.GetNextBlockByte iny jsr MEM.SetDataByteY dex bne .2 - jsr SLIST.NextBlockByte + jsr SLIST.GetNextBlockByte lda SLIST.IndexOfs ldy SLIST.BlockOfs @@ -133,11 +133,11 @@ SLIST.UpdateByID jsr SLIST.GetBlockByte tax -.1 jsr SLIST.NextBlockByte +.1 jsr SLIST.GetNextBlockByte dex bne .1 - jsr SLIST.NextBlockByte set pos at DATALEN + jsr SLIST.GetNextBlockByte set pos at DATALEN ldy #0 @@ -196,7 +196,7 @@ SLIST.Select jsr K.GetMemPtr.A sty SLIST.IndexOfs lda (ZPSListIndex),y - + beq * jsr K.GetMemPtr.A >STYA ZPSListBlock @@ -211,7 +211,7 @@ SLIST.Search jsr K.GetMemPtr.A stz SLIST.ID+1 lda (ZPSListIndex) - + beq * jsr K.GetMemPtr.A >STYA ZPSListBlock @@ -219,18 +219,21 @@ SLIST.Search jsr K.GetMemPtr.A stz SLIST.ID jsr SLIST.GetBlockByte - tax beq .9 - + .1 ldy #0 + + cmp #30 + bcs * + .2 jsr MEM.GetKeyCharY - bcs .4 + bcs .40 iny sta .3+1 - jsr SLIST.NextBlockByte + jsr SLIST.GetNextBlockByte .3 cmp #$ff SELF MODIFIED bne .4 @@ -240,25 +243,30 @@ SLIST.Search jsr K.GetMemPtr.A jsr MEM.GetKeyCharY bcs .8 End of Key....match!!!! - jsr SLIST.NextBlockByte + jsr SLIST.GetNextBlockByte bra .41 -.8 jsr SLIST.NextBlockByte Advance to DATA LEN +.8 jsr SLIST.GetNextBlockByte Advance to DATA LEN clc Y = Key Length rts -.4 jsr SLIST.NextBlockByte skip remaining key chars +.40 inx + +.4 jsr SLIST.GetNextBlockByte skip remaining key chars dex bne .4 + cmp #30 + bcs * + .41 tax A=get Data Len -.5 jsr SLIST.NextBlockByte skip data bytes +.5 jsr SLIST.GetNextBlockByte skip data bytes dex bne .5 - jsr SLIST.NextBlockByte + jsr SLIST.GetNextBlockByte ldx SLIST.IndexOfs stx SLIST.ID+1 @@ -271,26 +279,42 @@ SLIST.Search jsr K.GetMemPtr.A .9 sec rts *-------------------------------------- -SLIST.NextBlockByte - inc SLIST.BlockOfs - bne SLIST.GetBlockByte - +SLIST.GetNextBlockByte phy - inc SLIST.IndexOfs - ldy SLIST.IndexOfs + ldy SLIST.BlockOfs + iny + beq .1 + + lda (ZPSListBlock),y + sty SLIST.BlockOfs + ply + rts + +.1 ldy SLIST.IndexOfs + iny lda (ZPSListIndex),y + beq .9 + + sty SLIST.IndexOfs jsr K.GetMemPtr.A >STYA ZPSListBlock -* stz SLIST.BlockOfs - .HS A9 lda imm + stz SLIST.BlockOfs + + lda (ZPSListBlock) + ply + rts + +.9 >DEBUG + lda #0 + ply + rts + SLIST.GetBlockByte phy ldy SLIST.BlockOfs lda (ZPSListBlock),y - ply - clc rts *-------------------------------------- SLIST.AddBlockByte @@ -300,23 +324,27 @@ SLIST.AddBlockByte inc SLIST.BlockOfs bne .8 - inc SLIST.IndexOfs - + phx >LDYAI 256 jsr K.GetMem0.YA bcs .9 >STYA ZPSListBlock txa + + inc SLIST.IndexOfs ldy SLIST.IndexOfs sta (ZPSListIndex),y * stz SLIST.BlockOfs + plx + .8 ply clc rts -.9 ply +.9 plx + ply sec rts *-------------------------------------- @@ -331,7 +359,7 @@ SLIST.SetBlockByte ldy SLIST.IndexOfs lda (ZPSListIndex),y - + beq * jsr K.GetMemPtr.A >STYA ZPSListBlock * stz SLIST.BlockOfs