From e8db11ec59aef8722dfb967581df4a436e97bc62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Tue, 30 Jan 2018 16:24:45 +0000 Subject: [PATCH] Kernel 0.9.1 : ASM rewrite....Macros & bugfix --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes BIN/ASM.S.MAC.txt | 19 ++++++++++++++++-- BIN/ASM.S.SRC.txt | 37 ++++++++++++++++++++++------------- BIN/ASM.S.txt | 9 ++++++--- SYS/KERNEL.S.MEM.txt | 41 +++++++++++++++++---------------------- SYS/KERNEL.S.SLIST.txt | 23 ++++------------------ 7 files changed, 69 insertions(+), 60 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index a660e498fed57a4c686fbdfd5a5b750e6b3d9fe5..9c0b71513924b2f8ccee3b03a1aa522f6dacceb9 100644 GIT binary patch delta 15864 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

Za zFvf{;80aT4CVBNp1w3T35({Z=_zi#?ru;K_GG9S10B+Pxa**7t;1w>s^Bhi(I#{&vp*KzHu&grGYmo)82{DOmj$JBKqlhWM62FdI&`7nU<@ zg%gW1u7EG0jX@whp4-|YMmUlM$HNM46L6zi<>1(?;2x22nk~u-vX!2GQ%I=Z<{oGF zT^4GakP!G78w&SP6M3U)JM5CO73uti&p;YV7vmcefr8$D2hR>GEpu*auB@mg!sCGX zwXs(d6o_&2JpM8dnjOM6C)}rZ_2Q=_F|L5%9{1Vlj5kj(FmhDi^3I4A*t&oom zClnKK40#nj3V6+FhV$%j63~!SwEB!-n)$knWGT`xW3>N(3?)q80JYCQdFQ3hX(im= zl*28yhxVL7iKLefo)JP5&M3}LC7QRCp?Vu2HiXGU^Ntd-?@BW0+iwX`^wzgfm3fag zz9odwq_>4UKK>m2@+~2*@>3S1tU$qRVvye~;$l)Nv?eFz<(jc*I)iYt)7#t!#eUpiNbMeN?l_bVp`msa06Q8=GyuR0OL z|63T2qhJ4F4P zG7v{j=S6Cd1Ys9U3S{IN+}X0vTeewI|JA(3jgaz^u(xU2yF#c1M+0QL`GskjMa>O0 zHO-5c-ATOP#g#Qa5h0p?v81)T`4ax`R#l3r%JpG7eD%BASO0bTN^-C1kH7AsA93E^ zF;{cStsX{)cfuuCn^Y<~^tKSJSL1q3D=62GEyU!dqN5!`u+IqP-cF;U(;PU|d%Nxj z{d}B~n1Nci245$9mUM6Er(kf^Ia0dn^zw(UXdQjkfl6Wkh_O8A^z6>ic^*S}1?WB@5np-Rg6bVVwUj3Thuqg|X=K=kuf*aBQh2aMG$fXtdoqQA+5 z7#PFN9uTkts9)$Q0QHJRjf#X@Jm_&%WVqD>!X#klzs*xZ3enuI2)M(890w6Yi3fxU zK%!8}23$%MgvD@<*0+pFT*>OoVdZq!6(Mv{g(T5=4q|pM@r1yRJ3S!~ywoLFvrHu) zd+w6QomC2#LsxVq)qja#u7bz0$FWhx8Jl@lSM6ac(bsr(6aK9IGZVAxZVxsFsq)CBKu(cpL;|vn>qm> zO;Enjt1MiYfO{UzL?RV&wUclgB<0KacmQzIWD-wj%oKtWG-=9B>=dBArsC=k z9|%Ag3s_5X3O*1}I0F1;xWLG((q*tAcP4oPvy$n|lqLFP;W}6TDq@y=NgFVmuqD3; zA2?NPVe645TUM&ckqLww!7t1q^ywtc;dRAc>xxILE7q(l_Fh-)v#waXr`R{){{hP) BFBkv- delta 15826 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 Z0*r~e)j13?tBd&yn3aR4_nOEb{|~QBSrY&N delta 9716 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 diff --git a/BIN/ASM.S.MAC.txt b/BIN/ASM.S.MAC.txt index 0224ec2e..4ddd7324 100644 --- a/BIN/ASM.S.MAC.txt +++ b/BIN/ASM.S.MAC.txt @@ -40,8 +40,8 @@ MAC.Clear lda #0 *--------------------------------------- MAC.AddChar tax lda (ZPMacroBuf) - cmp #254 - beq .9 CS if EQ +* cmp #254 +* beq .9 CS if EQ inc sta (ZPMacroBuf) @@ -50,6 +50,21 @@ MAC.AddChar tax txa sta (ZPMacroBuf),y + + tax + beq .1 + +* >SYSCALL PutChar.A + clc + rts + +.1 +* lda #13 +* >SYSCALL PutChar.A +* lda #10 +* >SYSCALL PutChar.A + + clc .9 rts *--------------------------------------- diff --git a/BIN/ASM.S.SRC.txt b/BIN/ASM.S.SRC.txt index 3bcc13ed..e5ea6975 100644 --- a/BIN/ASM.S.SRC.txt +++ b/BIN/ASM.S.SRC.txt @@ -2,16 +2,16 @@ NEW PREFIX /A2OSX.BUILD AUTO 4,1 *--------------------------------------- -SRC.PrintLine >LDA.G ASM.MACRO.ON +SRC.PrintLine >LDA.G ASM.LI.ON + bpl .9 + >LDA.G MAC.bAdd bpl .1 - >LDA.G ASM.LI.CON + >LDA.G ASM.LI.MON bpl .9 bmi .8 -.1 >LDA.G ASM.LI.ON - bpl .9 - +.1 .8 >PUSHW ZPLineBuf >PUSHW.G SRC.LINENUM ldy #ASM.PC+1 @@ -81,7 +81,7 @@ SRC.ParseLine.Macro >LDA.G ASM.PASS If Pass#2, ignore lda #' ' Store ONE blank jsr MAC.AddChar - bcs .99 + bcs .90 lda (ZPLinePtr) get back non blank char bra .2 @@ -90,15 +90,15 @@ SRC.ParseLine.Macro >LDA.G ASM.PASS If Pass#2, ignore bcs .99 jsr SRC.GetNextChar - bcs .8 + bcs .80 cmp #' ' bne .1 jsr MAC.AddChar - bcs .99 +.90 bcs .99 jsr SRC.GetNextCharNB - bcs .8 + bcs .80 .2 cmp #'.' Directive ? bne .4 @@ -128,31 +128,42 @@ SRC.ParseLine.Macro >LDA.G ASM.PASS If Pass#2, ignore .8 clc rts +.80 lda #0 + jmp MAC.AddChar + .3 lda (ZPLinePtr) .4 jsr MAC.AddChar bcs .99 jsr SRC.GetNextChar - bcs .8 + bcs .80 cmp #' ' bne .4 jsr SRC.GetNextChar bcs .8 cmp #' ' - beq .8 Comments... + beq .80 Comments... + + pha + + lda #' ' + jsr MAC.AddChar + + pla + bcs .99 .5 jsr MAC.AddChar Store ARG.... bcs .99 jsr SRC.GetNextChar - bcs .8 + bcs .80 cmp #' ' bne .5 lda #0 - jsr MAC.AddChar End of Line + jmp MAC.AddChar End of Line clc rts diff --git a/BIN/ASM.S.txt b/BIN/ASM.S.txt index 5382e217..8a73ceed 100644 --- a/BIN/ASM.S.txt +++ b/BIN/ASM.S.txt @@ -214,9 +214,12 @@ CS.RUN >SYSCALL GetChar lda (pData),y eor #$ff sta (pData),y - bne .8 -.11 ldy #SRC.COUNT root file is already opened? +.11 ldy #bPause + lda (pData),y + bne .8 + + ldy #SRC.COUNT root file is already opened? lda (pData),y bne .10 @@ -427,13 +430,13 @@ DIR.Counter .BS 2 DIR.Byte .BS 1 ASM.PASS .BS 1 -ASM.MACRO.ON .BS 1 ASM.DO.Count .BS 1 ASM.DOELSE.Flag .BS SRC.DO.MAXDEPTH ASM.DO.ON .BS 1 ASM.PH.ON .BS 1 ASM.LI.ON .BS 1 ASM.LI.CON .BS 1 +ASM.LI.MON .BS 1 ASM.LI.XON .BS 1 ASM.PC .BS 4 ASM.PC.PH .BS 4 diff --git a/SYS/KERNEL.S.MEM.txt b/SYS/KERNEL.S.MEM.txt index 78234848..a1fbb52f 100644 --- a/SYS/KERNEL.S.MEM.txt +++ b/SYS/KERNEL.S.MEM.txt @@ -27,36 +27,31 @@ ZPSListData .EQ ZPMEMMGR+14 *\-------------------------------------- K.GetMemStat.YA >STYA ZPMemMgrTmp1 + >LDYAI Mem.Table + >STYA .2+1 + ldy #6 - -.1 lda Mem.Table,y - sta (ZPMemMgrTmp1),y - dey - bpl .1 - - - ldx #6 - ldy #14 + jsr .1 sta SETREADAUX -.2 lda Mem.Table,x + ldy #14 + jsr .1 + + sta CLRREADAUX + + >LDYAI DevMgr.Stat + >STYA .2+1 + + ldy #22 + +.1 ldx #6 + +.2 lda $FFFF,x SELF MODIFIED sta (ZPMemMgrTmp1),y dey dex bpl .2 - - sta CLRREADAUX - - ldx #6 - ldy #22 - -.3 lda DevMgr.Stat,x - sta (ZPMemMgrTmp1),y - dey - dex - bpl .3 - rts */-------------------------------------- * # GetMem0.YA @@ -550,7 +545,7 @@ K.SListNew *\-------------------------------------- K.SListFree.A *-------------------------------------- -MEM.SLIST.JMP sta SETREADAUX + sta SETREADAUX sta SETWRITEAUX jsr X.SLIST sta CLRREADAUX diff --git a/SYS/KERNEL.S.SLIST.txt b/SYS/KERNEL.S.SLIST.txt index ae822775..36db9857 100644 --- a/SYS/KERNEL.S.SLIST.txt +++ b/SYS/KERNEL.S.SLIST.txt @@ -195,8 +195,7 @@ SLIST.Select jsr K.GetMemPtr.A ldy ZPSListKey+1 sty SLIST.IndexOfs - lda (ZPSListIndex),y - beq * + lda (ZPSListIndex),y jsr K.GetMemPtr.A >STYA ZPSListBlock @@ -210,8 +209,7 @@ SLIST.Search jsr K.GetMemPtr.A stz SLIST.IndexOfs stz SLIST.ID+1 - lda (ZPSListIndex) - beq * + lda (ZPSListIndex) jsr K.GetMemPtr.A >STYA ZPSListBlock @@ -223,10 +221,6 @@ SLIST.Search jsr K.GetMemPtr.A beq .9 .1 ldy #0 - - cmp #30 - bcs * - .2 jsr MEM.GetKeyCharY bcs .40 @@ -257,9 +251,6 @@ SLIST.Search jsr K.GetMemPtr.A dex bne .4 - cmp #30 - bcs * - .41 tax A=get Data Len .5 jsr SLIST.GetNextBlockByte skip data bytes @@ -293,7 +284,7 @@ SLIST.GetNextBlockByte .1 ldy SLIST.IndexOfs iny lda (ZPSListIndex),y - beq .9 + beq .9 Exit with A=0 sty SLIST.IndexOfs @@ -302,12 +293,7 @@ SLIST.GetNextBlockByte stz SLIST.BlockOfs lda (ZPSListBlock) - ply - rts - -.9 >DEBUG - lda #0 - ply +.9 ply rts SLIST.GetBlockByte @@ -365,7 +351,6 @@ SLIST.SetBlockByte * stz SLIST.BlockOfs .8 ply - clc rts *-------------------------------------- SLIST.IndexOfs .BS 1