diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index bc84bcd5..609f67dd 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/ASM.S.DIR.txt b/BIN/ASM.S.DIR.txt index 0b73012d..e051159d 100644 --- a/BIN/ASM.S.DIR.txt +++ b/BIN/ASM.S.DIR.txt @@ -287,7 +287,9 @@ DIR.EP >LDA.G ASM.PH.ON DIR.SE sec .HS 90 BCC *--------------------------------------- -DIR.EQ >LDA.G SYM.bNewGlobal +DIR.EQ clc + + >LDA.G SYM.bNewGlobal bpl .99 jsr SRC.GetNextCharNB @@ -296,6 +298,9 @@ DIR.EQ >LDA.G SYM.bNewGlobal jsr EXP.Eval bcs .9 + lda #$ff + >STA.G OUT.bEquate + jsr SYM.Acc2Global jmp SYM.StoreGlobal @@ -559,17 +564,20 @@ DIR.TI clc DIR.US clc rts *--------------------------------------- -DIR.SavePC ldx #3 - phy +DIR.SavePC phy + plx + ldy #ASM.PC+3 .1 lda (pData),y pha dey - dex - bpl .1 + cpy #ASM.PC-1 + bne .1 + phx ply + ldx #3 .2 pla diff --git a/BIN/ASM.S.EXP.txt b/BIN/ASM.S.EXP.txt index 804ff254..b4225263 100644 --- a/BIN/ASM.S.EXP.txt +++ b/BIN/ASM.S.EXP.txt @@ -37,7 +37,8 @@ EXP.Eval >STZ.G EXP.Modifier EXP.Eval.Next0 jsr SRC.GetNextChar -EXP.Eval.Next lda #2 +EXP.Eval.Next stz SRC.ACC.F + lda #2 sta SRC.ACC.SIZE Default To WORD (2 bytes) stz SRC.ACC @@ -204,7 +205,7 @@ EXP.GetSymL jsr SRC.GetNextChar bne EXP.EvalExitUND lda #SYMG.F.FWREF Mark ACC as pending - sta SRC.ACC.F + tsb SRC.ACC.F stz SRC.ACC.SIZE clc @@ -278,7 +279,10 @@ EXP.Compute ldx SRC.ACC.SIZE sec rts -.8 clc +.8 lda #SYMG.F.FWREF Mark ACC as pending + tsb SRC.ACC.F + stz SRC.ACC.SIZE + clc rts *--------------------------------------- EXP.OP.EOR ldx #3 diff --git a/BIN/ASM.S.OUT.txt b/BIN/ASM.S.OUT.txt index d35bfc23..7bc0c9a6 100644 --- a/BIN/ASM.S.OUT.txt +++ b/BIN/ASM.S.OUT.txt @@ -149,11 +149,12 @@ OUT.PrintLineOutBuf lda L.MSG.OUT0+1,x >SYSCALL printf rts - +*--------------------------------------- OUT.PrintLineAcc - ldx SRC.ACC.SIZE + lda SRC.ACC.SIZE beq .2 + tax ldy #0 .1 >PUSHB SRC.ACC,y @@ -162,11 +163,15 @@ OUT.PrintLineAcc bne .1 lda SRC.ACC.SIZE - >PUSHA Byte Count + +.2 >PUSHA Byte Count asl tax -.2 ldy L.MSG.EQU0,x + cpx #9 + bcs * + + ldy L.MSG.EQU0,x lda L.MSG.EQU0+1,x >SYSCALL printf rts diff --git a/BIN/ASM.S.SYM.txt b/BIN/ASM.S.SYM.txt index 18680c81..0f2a829d 100644 --- a/BIN/ASM.S.SYM.txt +++ b/BIN/ASM.S.SYM.txt @@ -96,6 +96,7 @@ SYM.Dump >LDA.G ASM.LI.ON >PUSHW ZPGlobalBuf >PUSHW ZPPtr1 KeyID >LDA.G SYM.hGlobalList + >SYSCALL SListGetData bcs SYM.Quit.RTS @@ -123,12 +124,12 @@ SYM.Dump >LDA.G ASM.LI.ON lda L.MSG.EQU0+1,x >SYSCALL printf - >PUSHW ZPNameBuf Label - >PUSHBI 2 - >LDYA L.MSG.LABEL + >PUSHBI 0 + >LDYA ZPNameBuf Label >SYSCALL printf lda (ZPGlobalBuf) + bit #SYMG.F.LOCALS beq .7 @@ -137,9 +138,7 @@ SYM.Dump >LDA.G ASM.LI.ON .4 lda (ZPGlobalBuf),y beq .7 End Local Symbol - iny - lda (ZPGlobalBuf),y Get ID - pha + pha Save ID ldx #4 @@ -190,6 +189,10 @@ SYM.NewGlobal jsr SYM.StoreGlobal lda #SYMG >STA.G SYM.GlobalPtr + tay + + lda #0 + sta (ZPGlobalBuf),y lda #$ff >STA.G SYM.bNewGlobal @@ -268,8 +271,9 @@ SYM.StoreGlobal >LDA.G ASM.PASS cpy #SYMG beq .1 - lda #SYMG.F.LOCALS - tsb SRC.ACC.F + lda (ZPGlobalBuf) + ora #SYMG.F.LOCALS + sta (ZPGlobalBuf) lda #0 sta (ZPGlobalBuf),y @@ -302,16 +306,17 @@ SYM.PC2Acc ldy #ASM.PC+3 lda #2 sta SRC.ACC.SIZE + stz SRC.ACC.F + rts *--------------------------------------- -SYM.Acc2Global ldy #0 +SYM.Acc2Global ldy #SYMG-1 .2 lda SRC.ACC.F,y sta (ZPGlobalBuf),y - iny - cpy #SYMG - bne .2 + dey + bpl .2 rts *--------------------------------------- SYM.Lookup2Acc ldy #SYMG.F+4 @@ -336,11 +341,11 @@ SYM.Lookup2Acc ldy #SYMG.F+4 *--------------------------------------- SYM.NewOrGetLocalA tax Save ID - >DEBUG + >LDA.G SYM.bNewGlobal not in a global label bpl .91 - >LDA.G ASM.PASS + >LDA.G ASM.PASS Pass #2: should be already defined... bne SYM.GetLocalX jsr SYM.GetLocalX Pass #1; try to add @@ -348,7 +353,6 @@ SYM.NewOrGetLocalA >LDA.G SYM.GlobalPtr tay - inc beq .90 ldy #ASM.PC+4 @@ -359,9 +363,8 @@ SYM.NewOrGetLocalA cpy #ASM.PC bne .1 - lda (ZPGlobalBuf) + >LDA.G SYM.GlobalPtr tay - iny txa Get Back ID sta (ZPGlobalBuf),y @@ -392,13 +395,14 @@ SYM.NewOrGetLocalA sec rts *--------------------------------------- -SYM.GetLocalX >LDA.G SYM.GlobalPtr Pass #2: should be already defined... +SYM.GetLocalX >LDA.G SYM.GlobalPtr - beq .9 - tay -.1 txa +.1 lda (ZPGlobalBuf),y + beq .9 + + txa cmp (ZPGlobalBuf),y bne .3 @@ -418,7 +422,6 @@ SYM.GetLocalX >LDA.G SYM.GlobalPtr Pass #2: should be already defined... clc adc #SYML tay - inc bne .1 .9 lda #ERR.UNDEF.SYMBOL diff --git a/BIN/ASM.S.txt b/BIN/ASM.S.txt index e3ec2570..0c5211df 100644 --- a/BIN/ASM.S.txt +++ b/BIN/ASM.S.txt @@ -124,7 +124,6 @@ L.MSG.LSYMBOL .DA MSG.LSYMBOL L.MSG.SRCLINE .DA MSG.SRCLINE L.MSG.ERROR .DA MSG.ERROR L.MSG.SYMBOLS .DA MSG.SYMBOLS -L.MSG.LABEL .DA MSG.LABEL L.MSG.CRLF .DA MSG.CRLF L.MSG.SUMMARY .DA MSG.SUMMARY L.MSG.PASS .DA MSG.PASS @@ -459,11 +458,10 @@ MSG.EQU1 .AZ " [ %h]" MSG.EQU2 .AZ " [ %h%h]" MSG.EQU3 .AZ " [ %h%h%h]" MSG.EQU4 .AZ " [%h%h%h%h]" -MSG.LSYMBOL .AZ ", .%d=%h%h%h%h" +MSG.LSYMBOL .AZ " .%d=%h%h%h%h" MSG.SRCLINE .AZ " %05D %s\r\n" -MSG.ERROR .AZ "*** Fatal Error $%h " +MSG.ERROR .AZ "*** Fatal Error $%h" MSG.SYMBOLS .AZ "Symbol Table:" -MSG.LABEL .AZ " %s " MSG.CRLF .AZ " \r\n" MSG.SUMMARY .AZ "\r\nSymbol Table Size : %5D Bytes.\r\nEnd Of Assembly.\r\n" SRC.MOD.RESERVED >PSTR "#/^<>" diff --git a/BIN/CAT.S.txt b/BIN/CAT.S.txt index 9eb5f0b1..8fff780e 100644 --- a/BIN/CAT.S.txt +++ b/BIN/CAT.S.txt @@ -44,7 +44,6 @@ L.MSG.CRLF .DA MSG.CRLF L.MSG.LINENUM .DA MSG.LINENUM L.MSG.CTRLCHAR .DA MSG.CTRLCHAR L.ASCII .DA ASCII -L.MSG.STACK .DA MSG.STACK .DA 0 *-------------------------------------- CS.INIT clc @@ -284,15 +283,8 @@ CS.RUN.CLOSE >LDA.G hFILE CS.DOEVENT sec rts *-------------------------------------- -PrintStack >PUSHW pStack - >PUSHBI 2 - >LDYA L.MSG.STACK - >SYSCALL printf - rts -*-------------------------------------- CS.END *-------------------------------------- -MSG.STACK .AZ ">%H:" OptionList >PSTR "ANSans" OptionVars .DA #bPrintAll,#bLineNum,#bSuppressBlankLine,#bPrintAll,#bLineNum,#bSuppressBlankLine *-------------------------------------- diff --git a/BIN/MD5.S.txt b/BIN/MD5.S.txt index 8b5c425d..88a675cb 100644 --- a/BIN/MD5.S.txt +++ b/BIN/MD5.S.txt @@ -13,8 +13,12 @@ AUTO 4,1 *-------------------------------------- FILEBUF.SIZE .EQ 4096 *-------------------------------------- -ZPPtr1 .EQ ZPBIN -ZPDataBufPtr .EQ ZPBIN+2 + .DUMMY + .OR ZPBIN +ZS.START +ZPPtr1 .BS 2 +ZPDataBufPtr .BS 2 +ZS.END .ED *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -26,7 +30,7 @@ CS.START cld .DA CS.END-CS.START CS .DA DS.END-DS.START DS .DA #16 SS - .DA #4 ZP + .DA #ZS.END-ZS.START ZP .DA 0 *-------------------------------------- * Relocation Table