From 4ec9387e3981b861d77ce98df775bca5c26fcd91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 29 Mar 2019 16:21:30 +0000 Subject: [PATCH] Kernel 0.93 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/ASM.S.DIR.txt | 18 +++--- BIN/ASM.S.EXP.txt | 27 +++++---- BIN/ASM.S.FIO.txt | 5 +- BIN/ASM.S.MAC.txt | 77 +++++++++++++++--------- BIN/ASM.S.OUT.txt | 4 +- BIN/ASM.S.SRC.txt | 37 +++++++----- BIN/ASM.S.SYM.txt | 123 +++++++++++++++++---------------------- BIN/ASM.S.txt | 52 +++++++++-------- SYS/KERNEL.S.SLIST.txt | 3 +- SYS/KERNEL.S.STDIO.txt | 2 +- 11 files changed, 182 insertions(+), 166 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 95e64c1e967677ab3337ddde8a9daf4029749876..83db7765ba96bb85b91791fce8faa3a012c700b7 100644 GIT binary patch delta 448925 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 zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK QfB^#r3>YwAz`(^oGpvb+b^rhX delta 448698 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 z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* Y1`HT5V8DO@0|pEjFkrwy-@s+|0kaF|asU7T diff --git a/BIN/ASM.S.DIR.txt b/BIN/ASM.S.DIR.txt index a851d848..8217b0e8 100644 --- a/BIN/ASM.S.DIR.txt +++ b/BIN/ASM.S.DIR.txt @@ -84,7 +84,7 @@ DIR.AZ jsr DIR.AS jmp OUT.EmitByte .9 rts *--------------------------------------- -DIR.BS jsr SRC.GetNextCharNB +DIR.BS jsr SRC.GetNextCharNB bcs .98 jsr EXP.Eval @@ -140,7 +140,7 @@ DIR.BS jsr SRC.GetNextCharNB sec rts *--------------------------------------- -DIR.DA jsr SRC.GetNextCharNB +DIR.DA jsr SRC.GetNextCharNB bcs .98 .1 jsr EXP.Eval @@ -307,7 +307,7 @@ DIR.EQ clc jsr SYM.Acc2Global jmp SYM.StoreGlobal -.2 lda (ZPGlobalBuf) PASS#2 +.2 lda (ZPSymbolBuf) PASS#2 and #SYMG.F.FWREF beq .3 @@ -318,7 +318,7 @@ DIR.EQ clc .3 ldy #SYMG-1 copy back value for OUT.Print -.4 lda (ZPGlobalBuf),y +.4 lda (ZPSymbolBuf),y sta SRC.ACC.F,y dey bpl .4 @@ -348,7 +348,7 @@ DIR.FI ldy #ASM.DO.StackPtr sec rts *--------------------------------------- -DIR.HS jsr SRC.GetNextCharNB +DIR.HS jsr SRC.GetNextCharNB bcs .99 jsr SRC.IsDigit16 @@ -416,7 +416,7 @@ DIR.HS jsr SRC.GetNextCharNB .8 clc rts *--------------------------------------- -DIR.IN jsr SRC.GetNextCharNB +DIR.IN jsr SRC.GetNextCharNB bcs .9 >LDYA ZPLinePtr @@ -440,7 +440,7 @@ DIR.IN jsr SRC.GetNextCharNB sec rts *--------------------------------------- -DIR.LI jsr SRC.GetNextChar +DIR.LI jsr SRC.GetNextChar bcs .9 >LDYA L.T.LI @@ -513,10 +513,10 @@ DIR.MA >LDA.G ASM.MA.ON beq DIR.OP.SYNERR >PUSHW ZPLinePtr - >LDA.G MAC.hMacroList + >LDA.G MAC.hList >SYSCALL SListNewKey bcs .99 - >STYA.G MAC.MacroID + >STYA.G MAC.ID .8 lda #$ff >STA.G ASM.MA.ON diff --git a/BIN/ASM.S.EXP.txt b/BIN/ASM.S.EXP.txt index cf1ad261..061f07a7 100644 --- a/BIN/ASM.S.EXP.txt +++ b/BIN/ASM.S.EXP.txt @@ -79,7 +79,7 @@ EXP.Eval.Next stz SRC.ACC.F jsr SRC.GetDecimal bcs EXP.EvalExitRTS - bra EXP.EvalOperator + jmp EXP.EvalOperator .1 cmp #'$' Hex? bne .2 @@ -115,8 +115,12 @@ EXP.Eval.Next stz SRC.ACC.F jsr SRC.GetNextChar bcs EXP.EvalOperator cmp #''' + beq .44 + cmp #',' bne EXP.EvalExitSYN - jsr SRC.GetNextChar + bra EXP.EvalOperator + +.44 jsr SRC.GetNextChar bra EXP.EvalOperator .43 cmp #'"' @@ -128,8 +132,12 @@ EXP.Eval.Next stz SRC.ACC.F jsr SRC.GetNextChar bcs EXP.EvalOperator cmp #'"' + beq .45 + cmp #',' bne EXP.EvalExitSYN - jsr SRC.GetNextChar + bra EXP.EvalOperator + +.45 jsr SRC.GetNextChar bra EXP.EvalOperator .42 jsr SRC.IsLetter Symbol ? @@ -205,7 +213,7 @@ EXP.GetLocal jsr SRC.GetNextChar bne EXP.EvalExitUND lda #SYMG.F.FWREF Mark ACC as pending - tsb SRC.ACC.F + sta SRC.ACC.F stz SRC.ACC.SIZE clc @@ -216,13 +224,13 @@ EXP.GetLocal jsr SRC.GetNextChar .8 rts *--------------------------------------- EXP.GetGlobal jsr SYM.LookupGlobal - bcc .2 + bcc .8 >LDA.G ASM.PASS pass#2? bne EXP.EvalExitUND yes, undefined symbol lda #SYMG.F.FWREF - tsb SRC.ACC.F Mark ACC as pending + sta SRC.ACC.F Mark ACC as pending stz SRC.ACC.SIZE .1 jsr SRC.GetNextChar @@ -235,13 +243,8 @@ EXP.GetGlobal jsr SYM.LookupGlobal cmp #'_' beq .1 - clc - rts - -.2 - .8 clc - rts + rts *--------------------------------------- EXP.MOD.8.3 lda SRC.ACC+2 bra EXP.MOD.8 diff --git a/BIN/ASM.S.FIO.txt b/BIN/ASM.S.FIO.txt index 69e5c323..4b05fe7d 100644 --- a/BIN/ASM.S.FIO.txt +++ b/BIN/ASM.S.FIO.txt @@ -181,10 +181,7 @@ FIO.OpenFile >STYA ZPPtr1 sec .99 rts *--------------------------------------- -FIO.ReadLine >LDYA ZPLineBuf - >STYA ZPLinePtr - - ldy #SRC.COUNT +FIO.ReadLine ldy #SRC.COUNT lda (pData),y clc adc #SRC.hFILETYPES-1 diff --git a/BIN/ASM.S.MAC.txt b/BIN/ASM.S.MAC.txt index ce74ac39..6e204bc7 100644 --- a/BIN/ASM.S.MAC.txt +++ b/BIN/ASM.S.MAC.txt @@ -5,7 +5,7 @@ AUTO 4,1 MAC.Init >SYSCALL SListNew bcs .9 - >STA.G MAC.hMacroList + >STA.G MAC.hList >LDYAI 256 >SYSCALL getmem @@ -13,43 +13,32 @@ MAC.Init >SYSCALL SListNew >STYA ZPMacroBuf txa - >STA.G MAC.hMacroBuf + >STA.G MAC.hBuf - >SYSCALL SListNew - bcs .9 - - >STA.G MAC.hCtxList - >LDYAI 256 >SYSCALL getmem bcs .9 - >STYA ZPCtxBuf + >STYA ZPMacroStk txa - >STA.G MAC.hCtxBuf + >STA.G MAC.hStk .9 rts *--------------------------------------- -MAC.Reset >STZ.G MAC.CtxID - iny - sta (pData),y +MAC.Reset >STZ.G MAC.StkPtr rts *--------------------------------------- -MAC.Quit >LDA.G MAC.hCtxBuf +MAC.Quit >LDA.G MAC.hStk beq .1 >SYSCALL FreeMem -.1 >LDA.G MAC.hCtxList - beq .2 - >SYSCALL SListFree - -.2 >LDA.G MAC.hMacroBuf +.1 >LDA.G MAC.hBuf beq .3 >SYSCALL FreeMem -.3 >LDA.G MAC.hMacroList +.3 >LDA.G MAC.hList beq .8 >SYSCALL SListFree @@ -77,8 +66,8 @@ MAC.AddChar tax >PUSHYA >PUSHW ZPMacroBuf - >PUSHW.G MAC.MacroID - >LDA.G MAC.hMacroList + >PUSHW.G MAC.ID + >LDA.G MAC.hList >SYSCALL SListAddData rts @@ -86,25 +75,55 @@ MAC.AddChar tax rts *--------------------------------------- MAC.Lookup >PUSHW ZPLinePtr - >LDA.G MAC.hMacroList + >LDA.G MAC.hList >SYSCALL SListLookup bcs .9 + + pha txa adc ZPLinePtr sta ZPLinePtr bcc .8 inc ZPLinePtr+1 - clc -.8 rts + clc +.8 pla Y,A = MAC.ID + +.9 rts +*--------------------------------------- +MAC.ReadLine >LDA.G MAC.StkPtr -.9 >DEBUG + tay + dey + dey + dey + + lda (ZPMacroStk),y + + >PUSHA offset + dey + lda (ZPMacroStk),y + >PUSHA + + lda #0 + >PUSHA len = 0 (string mode) + >PUSHA + + >PUSHW ZPLineBuf + >LDA.G MAC.StkPtr + + tay + dey + lda (ZPMacroStk),y + >PUSHA + dey + lda (ZPMacroStk),y + >PUSHA + + >LDA.G MAC.hList + >SYSCALL SListGetData rts *--------------------------------------- -MAC.NewOrGetCtx sec - rts -*--------------------------------------- -*--------------------------------------- MAN SAVE USR/SRC/BIN/ASM.S.MAC LOAD USR/SRC/BIN/ASM.S diff --git a/BIN/ASM.S.OUT.txt b/BIN/ASM.S.OUT.txt index 3c3a3878..659312ac 100644 --- a/BIN/ASM.S.OUT.txt +++ b/BIN/ASM.S.OUT.txt @@ -32,8 +32,8 @@ OUT.Reset ldx #4 rts *--------------------------------------- OUT.PrintLineOn - clc - rts +* clc +* rts >LDA.G ASM.LI.ON bpl .9 diff --git a/BIN/ASM.S.SRC.txt b/BIN/ASM.S.SRC.txt index 9c62b062..38c3216a 100644 --- a/BIN/ASM.S.SRC.txt +++ b/BIN/ASM.S.SRC.txt @@ -205,22 +205,32 @@ SRC.ParseLine.ExecMacro jsr MAC.Lookup bcs .90 - - - - - - - >LDA.G ASM.MA.StackPtr - cmp #MA.MAXDEPTH + >STYA ZPPtr1 MAC.ID + >LDA.G MAC.StkPtr + cmp #MA.MAXDEPTH*4 beq .91 - clc - adc #ASM.MA.StackPtr + tay + lda #0 + sta (ZPMacroStk),y + iny + sta (ZPMacroStk),y + iny -* >INC.G ASM.MA.StackPtr + lda ZPPtr1 + sta (ZPMacroStk),y + iny + + lda ZPPtr1+1 + sta (ZPMacroStk),y + iny + + tya + >STA.G MAC.StkPtr + + clc rts @@ -342,7 +352,7 @@ SRC.ParseLine.AM dex bne .4 - bra .7 + bra .74 .6 jsr EXP.Eval bcs .99 @@ -369,7 +379,8 @@ SRC.ParseLine.AM .71 jsr SRC.AddToBuf dex bne .71 - jsr SRC.GetChar + +.74 jsr SRC.GetChar bcs .8 cmp #C.SPACE diff --git a/BIN/ASM.S.SYM.txt b/BIN/ASM.S.SYM.txt index 8ddaccb9..1544c15b 100644 --- a/BIN/ASM.S.SYM.txt +++ b/BIN/ASM.S.SYM.txt @@ -18,13 +18,13 @@ AUTO 4,1 SYM.Init >SYSCALL SListNew bcs .9 - >STA.G SYM.hGlobalList + >STA.G SYM.hList >LDYAI 256 >SYSCALL getmem bcs .9 - >STYA ZPGlobalBuf + >STYA ZPSymbolBuf txa >STA.G SYM.hGlobalBuf @@ -38,7 +38,7 @@ SYM.Quit >LDA.G SYM.hGlobalBuf >SYSCALL FreeMem -.3 >LDA.G SYM.hGlobalList +.3 >LDA.G SYM.hList beq SYM.Quit.8 >SYSCALL SListFree @@ -65,7 +65,7 @@ SYM.Dump >LDA.G ASM.LI.ON >PUSHW ZPTmpBuf >PUSHW ZPPtr1 - >LDA.G SYM.hGlobalList + >LDA.G SYM.hList >SYSCALL SListGetByID bcs SYM.Dump.End @@ -73,15 +73,15 @@ SYM.Dump >LDA.G ASM.LI.ON >PUSHWI 0 Start >PUSHWI $ffff End - >PUSHW ZPGlobalBuf + >PUSHW ZPSymbolBuf >PUSHW ZPPtr1 KeyID - >LDA.G SYM.hGlobalList + >LDA.G SYM.hList >SYSCALL SListGetData bcs SYM.Dump.RTS ldy #SYMG.SIZE Get Symbol Size - lda (ZPGlobalBuf),y + lda (ZPSymbolBuf),y tax beq .3 @@ -89,7 +89,7 @@ SYM.Dump >LDA.G ASM.LI.ON phx .2 iny - lda (ZPGlobalBuf),y + lda (ZPSymbolBuf),y >PUSHA dex bne .2 @@ -108,22 +108,24 @@ SYM.Dump >LDA.G ASM.LI.ON >LDYA ZPTmpBuf Label >SYSCALL printf - lda (ZPGlobalBuf) + lda (ZPSymbolBuf) bit #SYMG.F.LOCALS beq .7 - + ldy #SYMG -.4 lda (ZPGlobalBuf),y +.4 lda (ZPSymbolBuf),y beq .7 End Local Symbol pha Save ID ldx #4 -.5 iny - lda (ZPGlobalBuf),y + iny Skip Macro ID + +.5 iny + lda (ZPSymbolBuf),y >PUSHA dex bne .5 @@ -135,7 +137,8 @@ SYM.Dump >LDA.G ASM.LI.ON >LDYA L.MSG.LSYMBOL >SYSCALL printf ply - bne .4 + iny + bra .4 .7 >PUSHBI 0 >LDYA L.MSG.CRLF @@ -150,7 +153,7 @@ SYM.NewGlobal jsr SYM.StoreGlobal bcs .99 >PUSHW ZPLinePtr Pass #1; try to add global... - >LDA.G SYM.hGlobalList + >LDA.G SYM.hList >SYSCALL SListNewKey bcs .9 Already Defined >STYA.G SYM.GlobalID @@ -172,7 +175,7 @@ SYM.NewGlobal jsr SYM.StoreGlobal tay lda #0 - sta (ZPGlobalBuf),y + sta (ZPSymbolBuf),y lda #$ff >STA.G SYM.bInGlobal @@ -189,7 +192,7 @@ SYM.NewGlobal jsr SYM.StoreGlobal .99 rts *--------------------------------------- SYM.GetGlobal >PUSHW ZPLinePtr Pass #2: should be already defined... - >LDA.G SYM.hGlobalList + >LDA.G SYM.hList >SYSCALL SListLookup bcs .9 >STYA.G SYM.GlobalID @@ -203,9 +206,9 @@ SYM.GetGlobal >PUSHW ZPLinePtr Pass #2: should be already defined... .1 >PUSHWI 0 Start >PUSHWI $ffff End - >PUSHW ZPGlobalBuf + >PUSHW ZPSymbolBuf >PUSHW.G SYM.GlobalID - >LDA.G SYM.hGlobalList + >LDA.G SYM.hList >SYSCALL SListGetData bcs .99 @@ -220,7 +223,7 @@ SYM.GetGlobal >PUSHW ZPLinePtr Pass #2: should be already defined... *--------------------------------------- SYM.LookupGlobal >PUSHW ZPLinePtr - >LDA.G SYM.hGlobalList + >LDA.G SYM.hList >SYSCALL SListLookup bcs .9 @@ -243,7 +246,7 @@ SYM.LookupGlobal ldy #SYMG-1 -.2 lda (ZPGlobalBuf),y +.2 lda (ZPSymbolBuf),y sta SRC.ACC.F,y dey bpl .2 @@ -255,7 +258,7 @@ SYM.LookupGlobal >PUSHWI SYMG Get only Global value >PUSHW L.SRC.ACC.F >PUSHW ZPPtr1 - >LDA.G SYM.hGlobalList + >LDA.G SYM.hList >SYSCALL SListGetData rts @@ -275,31 +278,21 @@ SYM.StoreGlobal >LDA.G ASM.PASS cpy #SYMG beq .1 - lda (ZPGlobalBuf) + lda (ZPSymbolBuf) ora #SYMG.F.LOCALS - sta (ZPGlobalBuf) + sta (ZPSymbolBuf) lda #0 - sta (ZPGlobalBuf),y + sta (ZPSymbolBuf),y iny bne .1 inc -* phy -* pha -* >PUSHYA -* >PUSHBI 2 -* >LDYA L.MSG.WORD -* >SYSCALL printf -* pla -* ply - .1 >PUSHYA -.2 >PUSHW ZPGlobalBuf + >PUSHW ZPSymbolBuf >PUSHW.G SYM.GlobalID - >LDA.G SYM.hGlobalList -* >DEBUG + >LDA.G SYM.hList >SYSCALL SListAddData bcs .9 @@ -315,7 +308,7 @@ SYM.UpdateGlobal >PUSHWI SYMG >PUSHW L.SRC.ACC.F >PUSHW.G SYM.GlobalID - >LDA.G SYM.hGlobalList + >LDA.G SYM.hList >SYSCALL SListSetData rts *--------------------------------------- @@ -337,7 +330,7 @@ SYM.PC2Acc ldy #ASM.PC+3 SYM.Acc2Global ldy #SYMG-1 .2 lda SRC.ACC.F,y - sta (ZPGlobalBuf),y + sta (ZPSymbolBuf),y dey bpl .2 @@ -345,7 +338,7 @@ SYM.Acc2Global ldy #SYMG-1 *--------------------------------------- * Local Symbol Record: (6 bytes) * 0 : Local ID (1->255) -* 1 : Macro Context ID +* 1 : Macro ID * 2-5 : 32 bits Value (PC) *--------------------------------------- SYM.NewOrGetLocalA @@ -361,7 +354,7 @@ SYM.NewOrGetLocalA bcc .9 Already Defined >LDA.G SYM.GlobalPtr - tay + cmp #252 6*42 beq .90 ldy #ASM.PC+4 @@ -372,30 +365,32 @@ SYM.NewOrGetLocalA cpy #ASM.PC bne .1 + >LDA.G MAC.StkPtr Get Macro Context ID + pha + >LDA.G SYM.GlobalPtr tay txa Get Back ID - sta (ZPGlobalBuf),y - - ldx #4 + sta (ZPSymbolBuf),y + + ldx #5 MAC ID + PC (4) .2 pla iny - sta (ZPGlobalBuf),y + sta (ZPSymbolBuf),y dex bne .2 - - tya + iny lda #0 - sta (ZPGlobalBuf),y + sta (ZPSymbolBuf),y tya >STA.G SYM.GlobalPtr - lda (ZPGlobalBuf) + lda (ZPSymbolBuf) ora #SYMG.F.LOCALS - sta (ZPGlobalBuf) + sta (ZPSymbolBuf) .8 clc rts @@ -412,23 +407,25 @@ SYM.NewOrGetLocalA sec rts *--------------------------------------- -SYM.GetLocalX lda (ZPGlobalBuf) +SYM.GetLocalX lda (ZPSymbolBuf) and #SYMG.F.LOCALS beq .9 ldy #SYMG -.1 lda (ZPGlobalBuf),y +.1 lda (ZPSymbolBuf),y beq .9 txa - cmp (ZPGlobalBuf),y + cmp (ZPSymbolBuf),y bne .3 ldx #0 + + iny Macro ID .2 iny - lda (ZPGlobalBuf),y + lda (ZPSymbolBuf),y sta SRC.ACC,x inx cpx #4 @@ -444,28 +441,12 @@ SYM.GetLocalX lda (ZPGlobalBuf) clc adc #SYML tay - bne .1 + bra .1 .9 lda #E.UNDEF.SYMBOL sec rts *--------------------------------------- -* Private Symbol Record: (9 bytes) -* 0 : Len (8) -* 1 : Flags: -* b7=0=pending,1=resolved -* 2-5 : 32 bits Value (PC) -* 6,7 : MCID (Macro Context ID) -* 8 : Private ID (0->255) -*--------------------------------------- -SYM.AddPrivate - clc - rts -*--------------------------------------- -SYM.LookupPrivate - clc - rts -*--------------------------------------- MAN SAVE USR/SRC/BIN/ASM.S.SYM LOAD USR/SRC/BIN/ASM.S diff --git a/BIN/ASM.S.txt b/BIN/ASM.S.txt index 7eaf9139..203023df 100644 --- a/BIN/ASM.S.txt +++ b/BIN/ASM.S.txt @@ -21,10 +21,10 @@ ZPPtr2 .BS 2 ZPTmpBuf .BS 2 ZPLineBuf .BS 2 ZPLinePtr .BS 2 -ZPGlobalBuf .BS 2 +ZPSymbolBuf .BS 2 ZPMacroBuf .BS 2 -ZPCtxBuf .BS 2 +ZPMacroStk .BS 2 ZPAMPtr .BS 2 ZPRPtr .BS 2 @@ -45,21 +45,17 @@ SYMG.V .EQ 2 SYMG .EQ 6 DWORD *--------------------------------------- SYML.ID .EQ 0 1..255 -SYML.V .EQ 1 DWORD +SYML.MacroID .EQ 1 +SYML.V .EQ 2 DWORD * -SYML .EQ 5 -*--------------------------------------- -MCTX.LEN .EQ 0 -MCTX.PTR .EQ 1 -MCTX.ID .EQ 2 -MCTX.ARGS .EQ 4 +SYML .EQ 6 *--------------------------------------- ASM.T.AM .EQ 0 ASM.T.R .EQ 2 ASM.T.O .EQ 4 *--------------------------------------- DO.MAXDEPTH .EQ 8 -IN.MAXDEPTH .EQ 7 +IN.MAXDEPTH .EQ 4 MA.MAXDEPTH .EQ 8 *--------------------------------------- E.SYNTAX.ERROR .EQ $A0 @@ -309,7 +305,18 @@ CS.RUN ldy #S.PS.hStdIn jsr SYM.Reset jsr MAC.Reset -.10 jsr FIO.ReadLine +.10 >LDYA ZPLineBuf + >STYA ZPLinePtr + + >LDA.G MAC.StkPtr + beq .20 + + jsr MAC.ReadLine + bcc .2 + tax + bne .9 + +.20 jsr FIO.ReadLine bcc .2 cmp #MLI.E.EOF End Of File? bne .9 @@ -454,10 +461,10 @@ MSG.PASS .AZ "**** Pass:#%d ****" MSG.SRC.FILE .AZ "**** Reading SRC File:%s" MSG.OBJ.FILE .AZ "**** Writing OBJ File:%s, Type=%02x" MSG.T.FILE .AZ "**** Loading CPU File:%s" -MSG.OUT0 .AZ "%H%H- " -MSG.OUT1 .AZ "%H%H-%h " -MSG.OUT2 .AZ "%H%H-%h %h " -MSG.OUT3 .AZ "%H%H-%h %h %h" +MSG.OUT0 .AZ "%H- " +MSG.OUT1 .AZ "%H-%h " +MSG.OUT2 .AZ "%H-%h %h " +MSG.OUT3 .AZ "%H-%h %h %h" MSG.EQU0 .AZ " [ ?] " MSG.EQU1 .AZ " [ %h] " MSG.EQU2 .AZ " [ %h%h] " @@ -536,14 +543,12 @@ ASM.LI.MON .BS 1 ASM.LI.XON .BS 1 ASM.MA.ON .BS 1 -ASM.MA.StackPtr .BS 1 -ASM.MA.Stack .BS MA.MAXDEPTH ASM.PC .BS 4 ASM.PC.PH .BS 4 ASM.PC.DU .BS 4 -SYM.hGlobalList .BS 1 +SYM.hList .BS 1 SYM.bInGlobal .BS 1 SYM.GlobalID .BS 2 SYM.hGlobalBuf .BS 1 @@ -551,13 +556,12 @@ SYM.GlobalPtr .BS 1 SYM.LookupID .BS 2 -MAC.hMacroList .BS 1 -MAC.hMacroBuf .BS 1 -MAC.hCtxList .BS 1 -MAC.hCtxBuf .BS 1 -MAC.MacroID .BS 2 +MAC.hList .BS 1 +MAC.hBuf .BS 1 MAC.BufPtr .BS 1 -MAC.CtxID .BS 2 +MAC.hStk .BS 1 +MAC.StkPtr .BS 1 +MAC.ID .BS 2 OUT.PC .BS 4 OUT.Buf .BS 4 diff --git a/SYS/KERNEL.S.SLIST.txt b/SYS/KERNEL.S.SLIST.txt index a920112c..6157eb3b 100644 --- a/SYS/KERNEL.S.SLIST.txt +++ b/SYS/KERNEL.S.SLIST.txt @@ -254,7 +254,8 @@ SLIST.NewKey jsr SLIST.Search clc rts -.99 lda #E.DUPKEY +.99 >DEBUG + lda #E.DUPKEY sec .9 rts *-------------------------------------- diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index dfbe1cb5..aea5e872 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -402,7 +402,7 @@ K.PrintF.CheckTBL1 .8 clc rts *-------------------------------------- -PrintF.ESC jmp (.1,x) +PrintF.ESC jmp (.1,x) .1 .DA PrintF.B,PrintF.BB .DA PrintF.D,PrintF.DD,PrintF.U .DA PrintF.E,PrintF.F