Work In Progress (ASM)

This commit is contained in:
Rémy GIBERT 2015-12-04 17:33:33 +01:00
parent c72c202579
commit 5b2af25a9e
6 changed files with 434 additions and 146 deletions

View File

@ -5,6 +5,17 @@ INC 1
AUTO 6
.LIST OFF
*---------------------------------------
DIR.Init lda #$00
ldy #ASM.LI.CON
sta (pData),y
ldy #ASM.LI.XON
sta (pData),y
lda #$80
ldy #ASM.LI.ON
sta (pData),y
rts
*---------------------------------------
DIR.AC clc
rts
*---------------------------------------
@ -17,14 +28,105 @@ DIR.AT clc
DIR.AZ clc
rts
*---------------------------------------
DIR.BS clc
DIR.BS jsr EXP.Eval
bcs .9
lda SRC.ACC+3
ora SRC.ACC+2
bne .99
lda SRC.ACC
sta DIR.Counter
lda SRC.ACC+1
bmi .99
sta DIR.Counter+1
stz DIR.Byte
jsr SRC.GetChar
beq .1
cmp #' '
beq .1
cmp #','
bne .98
jsr EXP.Eval
bcs .9
lda SRC.ACC+3
ora SRC.ACC+2
ora SRC.ACC+1
bne .99
lda SRC.ACC
sta DIR.Byte
.1 ldy #ASM.PC
lda (pData),y
clc
adc DIR.Counter
sta (pData),y
iny
lda (pData),y
adc DIR.Counter+1
sta (pData),y
.2 lda DIR.Counter
bne .3
lda DIR.Counter+1
beq .8
dec DIR.Counter+1
.3 dec DIR.Counter
lda DIR.Byte
jsr FIO.EmitByte
bcc .2
rts
.8 clc
.9 rts
.99 lda #ERR.RANGE
sec
rts
.98 lda #ERR.SYNTAX.ERROR
sec
rts
*---------------------------------------
DIR.DA clc
rts
*---------------------------------------
DIR.DO clc
DIR.DO ldy #ASM.DO.Count
lda (pData),y
inc
cmp #SRC.DO.MAXDEPTH
bcs .98
jsr EXP.Eval
bcs .99
ldy #ASM.DO.Count
lda (pData),y
inc
sta (pData),y
* clc ok from bcs .99
adc #ASM.DOELSE.Flag-1
tay
lda SRC.ACC
ora SRC.ACC+1
ora SRC.ACC+2
ora SRC.ACC+3 if
sta (pData),y
lda #$FF
ldy #ASM.DO.ON
sta (pData),y
clc
rts
.98 lda #ERR.TOO.MANY.DO
sec
.99 rts
*---------------------------------------
DIR.DU clc
rts
@ -42,7 +144,35 @@ DIR.EM lda #ERR.INVALID.MACRO.DEF
DIR.EN clc
rts
*---------------------------------------
DIR.EP clc
DIR.EP ldy #ASM.PH.ON
lda (pData),y
bpl .9
lda #0
sta (pData),y
ldy #ASM.PC.PH+3
ldx #3
.1 lda (pData),y
pha
dey
dex
bpl .1
ldy #ASM.PC
ldx #3
.2 pla
sta (pData),y
iny
dex
bpl .2
clc
rts
.9 lda #ERR.INVALID.DIRECTIVE
sec
rts
*---------------------------------------
DIR.EQ jsr EXP.Eval
@ -57,7 +187,22 @@ DIR.EQ jsr EXP.Eval
clc
.9 rts
*---------------------------------------
DIR.FI clc
DIR.FI ldy #ASM.DO.Count
lda (pData),y
beq .99
dec
sta (pData),y
bne .1
lda #$0
ldy #ASM.DO.ON
sta (pData),y
.1 clc
rts
.99 lda #ERR.INVALID.DIRECTIVE
sec
rts
*---------------------------------------
DIR.HS clc
@ -117,9 +262,6 @@ DIR.LI.OFF ldy #ASM.LI.ON
clc
DIR.LI.APPLY lsr
lda #$80
sta (pData),y
rts
*---------------------------------------
@ -190,7 +332,7 @@ DIR.OP jsr SRC.GetArg
dex
bne .1
jmp LOAD.ASM.T
jmp FIO.LOAD.ASM.T
.9 lda #ERR.SYNTAX.ERROR
sec
@ -214,7 +356,35 @@ DIR.OR jsr EXP.Eval
DIR.PG clc
rts
*---------------------------------------
DIR.PH clc
DIR.PH ldy #ASM.PH.ON
lda (pData),y
bmi .9
lda #$80
sta (pData),y
ldy #ASM.PC+3
ldx #3
.1 lda (pData),y
pha
dey
dex
bpl .1
ldy #ASM.PC.PH
ldx #3
.2 pla
sta (pData),y
iny
dex
bpl .2
jmp DIR.OR
.9 lda #ERR.INVALID.DIRECTIVE
sec
rts
*---------------------------------------
DIR.SE clc

View File

@ -15,7 +15,7 @@ AUTO 6
*---------------------------------------
EXP.Eval stz EXP.Operator
jsr SRC.GetCharNB
EXP.Eval.Next jsr SRC.GetCharNB
bne .13
lda #ERR.MISSING.EXP
@ -43,10 +43,7 @@ EXP.Eval stz EXP.Operator
dex
bpl .11
jsr SRC.GetCharNB
bne EXP.EvalExitSYN
clc
rts
bra EXP.EvalOperator
.10 jsr SRC.IsDigit10 Decimal constant ?
bcs .1
@ -133,16 +130,17 @@ EXP.EvalOperator lda EXP.Operator
.7 jsr SRC.GetChar
beq EXP.EvalExitOK1
cmp #' '
beq EXP.EvalExitOK1
jsr SRC.IsAMReserved
bcc EXP.EvalExitOK
jsr SRC.IsEXPReserved
bcs *
bcs EXP.EvalExitSYN
sta EXP.Operator
stx EXP.Operator
ldx #3
.8 lda SRC.ACC,x
@ -150,7 +148,7 @@ EXP.EvalOperator lda EXP.Operator
dex
bpl .8
jmp EXP.Eval
jmp EXP.Eval.Next
clc
rts
@ -163,7 +161,7 @@ EXP.GetLocal jsr SRC.GetDecimal
bne EXP.EvalExitSYN Max .255
lda SRC.ACC
beq EXP.EvalExitSYN .0 is not allowed
jsr SYM.FindLocal
jsr SYM.SearchLocal
bcs EXP.EvalExitUND
rts
*---------------------------------------
@ -176,7 +174,9 @@ EXP.SetAccA sta SRC.ACC
EXP.GetSymbol >LDYA L.SRC.ELabel.Len
jsr SRC.GetLabel
bcs EXP.EvalExitSYN
jsr SYM.FindGlobal
>LDYA L.SRC.ELabel.Flags
jsr SYM.SearchGlobal
bcc .1
ldy #ASM.PASS
@ -197,7 +197,66 @@ EXP.GetSymbol >LDYA L.SRC.ELabel.Len
clc
rts
*---------------------------------------
EXP.Compute
EXP.Compute dec
asl
tax
jmp (J.EXP.OP,x)
*---------------------------------------
EXP.Compute.EOR
*---------------------------------------
EXP.Compute.ORA
*---------------------------------------
EXP.Compute.AND
*---------------------------------------
EXP.Compute.LOW
*---------------------------------------
EXP.Compute.EQU
*---------------------------------------
EXP.Compute.GRT
clc
rts
*---------------------------------------
EXP.Compute.ADD ldx #0 ARG-ACC->ACC
ldy #4
clc
.1 lda SRC.ARG,x
adc SRC.ACC,x
sta SRC.ACC,x
inx
dey
bne .1
bcc .8
lda #ERR.VAL.TOO.BIG
.8 rts
*---------------------------------------
EXP.Compute.SUB ldx #0 ARG-ACC->ACC
ldy #4
sec
.1 lda SRC.ARG,x
sbc SRC.ACC,x
sta SRC.ACC,x
inx
dey
bne .1
bcs .8
lda #ERR.VAL.TOO.BIG
sec
rts
.8 clc
rts
*---------------------------------------
EXP.Compute.MUL
*---------------------------------------
EXP.Compute.DIV
clc
rts
*---------------------------------------

View File

@ -5,6 +5,35 @@ INC 1
AUTO 6
.LIST OFF
*---------------------------------------
FIO.Init ldy #S.PS.hCMD
lda (pPS),y
>SYSCALL SYS.GetMemPtrA
bcs .99
>STYA ZPPtr1
lda (ZPPtr1)
tay
adc #3 len of ".T."
sta ASM.T.FILENAMELEN
adc #4 len of "6502"
sta ASM.T.FILENAME
tax
.2 lda (ZPPtr1),y
sta ASM.T.FILENAME,y
dey
bne .2
ldy #6
.3 lda ASM.T.DEFAULT,y
sta ASM.T.FILENAME,x
dex
dey
bpl .3
jmp FIO.LOAD.ASM.T
.99 rts
*---------------------------------------
FIO.OpenFileA sta FIO.hFileName
>SYSCALL SYS.GetMemPtrA
>STYA ZPPtr1
@ -252,7 +281,7 @@ FIO.FileClose ldy #SRC.COUNT
.8 clc
rts
*---------------------------------------
LOAD.ASM.T ldy #ASM.T.hMem
FIO.LOAD.ASM.T ldy #ASM.T.hMem
lda (pData),y
beq .1
>SYSCALL SYS.FreeMemA
@ -274,6 +303,9 @@ LOAD.ASM.T ldy #ASM.T.hMem
.9 rts
*---------------------------------------
FIO.EmitByte clc
rts
*---------------------------------------
MAN
SAVE BIN/ASM.S.FIO
LOAD BIN/ASM.S

View File

@ -6,12 +6,16 @@ AUTO 6
.LIST OFF
*---------------------------------------
SRC.ParseLine ldx TmpBuffer256
beq SRC.ParseLine.Skip
beq .1
cpx #'*' Comment?
beq SRC.ParseLine.Skip
beq .1
cpx #';' Comment?
beq SRC.ParseLine.Skip
beq .1
ldy #ASM.DO.ON
lda (pData),y
bne .1
stz SRC.GLabel.New
@ -23,6 +27,10 @@ SRC.ParseLine ldx TmpBuffer256
jsr SRC.ParseLine.SymL
bra .3
.1 clc
rts
.2 jsr SRC.ParseLine.SymG
.3 bcs SRC.ParseLine.Err
@ -51,7 +59,8 @@ SRC.ParseLine ldx TmpBuffer256
SRC.ParseLine.Ok lda SRC.GLabel.New
bpl .8
jsr SYM.FindGlobal
>LDYA L.SRC.GLabel.Flags
jsr SYM.SearchGlobal
bcs .1 if CS, not found, add
lda SRC.FLabel.Flags
@ -69,23 +78,24 @@ SRC.ParseLine.Ok lda SRC.GLabel.New
.10 ldy #ASM.PASS
lda (pData),y pass#2?
bne .8 yes, skip to avoid redefinition error
beq .1 yes, skip to avoid redefinition error
bra SRC.ParseLine.Redef
lda SRC.FLabel.Flags
and #$40
beq SRC.ParseLine.Redef
.1 >LDYA L.SRC.GLabel.Flags
jsr SYM.AddGToGBlockYA
bcs SRC.ParseLine.Err
.8
SRC.ParseLine.skip clc
.8 clc
rts
SRC.ParseLine.Err1 lda #ERR.INVALID.LABEL
SRC.ParseLine.Err sec
rts
SRC.ParseLine.Redef lda #ERR.SYMBOL.REDEFINE
sec
rts
@ -379,6 +389,7 @@ SRC.ParseLine.AM stz SRC.AM.ID
.99 rts
*---------------------------------------
SRC.PrintLine bcs .8 if CS, unconditional
ldy #ASM.MACRO.ON
lda (pData),y
bpl .1
@ -394,6 +405,10 @@ SRC.PrintLine bcs .8 if CS, unconditional
.8 >PUSHWI TmpBuffer256
>PUSHW SRC.LINENUM
ldy #ASM.PC+1
>PUSHB (pData),y
dey
>PUSHB (pData),y
>PUSHW L.MSG.SRCLINE
>LIBCALL hLIBSTR,LIBSTR.PRINTF
.9 rts

View File

@ -32,10 +32,10 @@ AUTO 6
* Macro Record: ( bytes)
*---------------------------------------
SYM.Init lda #0
ldy #SYM.iCurGBlock
ldy #SYM.iLastGBlock
sta (pData),y
dec
ldy #SYM.hCurGBlock
ldy #SYM.pLastGBlock
sta (pData),y
jsr SYM.NewGBlock
@ -44,7 +44,7 @@ SYM.Init lda #0
clc
.9 rts
*---------------------------------------
SYM.Quit ldy #SYM.LastGBlock
SYM.Quit ldy #SYM.pLastGBlock
lda (pData),y
bmi .8
@ -53,7 +53,7 @@ SYM.Quit ldy #SYM.LastGBlock
tay
lda (pData),y
>SYSCALL SYS.FreeMemA
ldy #SYM.LastGBlock
ldy #SYM.pLastGBlock
lda (pData),y
dec
sta (pData),y
@ -69,7 +69,7 @@ SYM.Dump >PUSHW L.MSG.SYMBOLS
lda #20
sta (pData),y
jsr SYM.ResetGBlock
jsr SYM.ResetGBlockPtr
.1 jsr SYM.GetByteGBlock Get Flags
sta SRC.GLabel.Flags
@ -81,11 +81,8 @@ SYM.Dump >PUSHW L.MSG.SYMBOLS
.2 jsr SYM.GetByteGBlock
sta SRC.GLabel.Value,x
inx
cpx #4
bne .2
jsr SYM.GetByteGBlock
sta SRC.GLabel.Len
cpx #5
bne .2 Get Value+Len
ldx #0
.3 jsr SYM.GetByteGBlock
@ -107,6 +104,7 @@ SYM.Dump >PUSHW L.MSG.SYMBOLS
>PUSHW L.MSG.GSYMBOL
>LIBCALL hLIBSTR,LIBSTR.PRINTF
bcs .9
.4 jsr SYM.GetByteGBlock
@ -120,6 +118,7 @@ SYM.Dump >PUSHW L.MSG.SYMBOLS
>PUSHW L.MSG.LSYMBOL
>LIBCALL hLIBSTR,LIBSTR.PRINTF
bcc .4
rts
.5 lda #13
>SYSCALL SYS.CoutA
@ -128,12 +127,39 @@ SYM.Dump >PUSHW L.MSG.SYMBOLS
lda (pData),y
dec
bne .6
>DEBUG
lda #20
.6 sta (pData),y
jmp .1
.9 rts
*---------------------------------------
SYM.DumpGSymbol.DELETE >SYSCALL SYS.CoutA
lda ZPSymbolPtr
clc
adc #5
tay
lda ZPSymbolPtr+1
adc #0
>PUSHYA
ldy #2
lda (ZPSymbolPtr),y
>PUSHA
dey
lda (ZPSymbolPtr),y
>PUSHA
ldy #4
lda (ZPSymbolPtr),y
>PUSHA
dey
lda (ZPSymbolPtr),y
>PUSHA
>PUSHW L.MSG.GSYMBOL
>LIBCALL hLIBSTR,LIBSTR.PRINTF
rts
*---------------------------------------
SYM.AddPrivate
clc
rts
@ -154,11 +180,13 @@ SYM.UpdateGlobal
clc
rts
*---------------------------------------
SYM.FindLocal
SYM.SearchLocal
clc
rts
*---------------------------------------
SYM.FindGlobal jsr SYM.ResetGBlock
SYM.SearchGlobal >STYA ZPSymbolPtr
jsr SYM.ResetGBlockPtr
.1 jsr SYM.GetByteGBlock Get Flags
beq .9
@ -169,12 +197,9 @@ SYM.FindGlobal jsr SYM.ResetGBlock
.2 jsr SYM.GetByteGBlock
sta SRC.FLabel.Value,x
inx
cpx #4
bne .2
jsr SYM.GetByteGBlock
sta SRC.FLabel.Len
cpx #5
bne .2 Get Value+Len
ldx #0
.3 jsr SYM.GetByteGBlock
sta SRC.FLabel.Name,x
@ -182,18 +207,24 @@ SYM.FindGlobal jsr SYM.ResetGBlock
cpx SRC.FLabel.Len
bne .3
cpx SRC.ELabel.Len
txa
ldy #5
cmp (ZPSymbolPtr),y
bne .5
.4 lda SRC.FLabel.Name-1,x
cmp SRC.ELabel.Name-1,x
ldx #0
.4 inx
iny
lda SRC.FLabel.Name-1,x
cmp (ZPSymbolPtr),y
bne .5
dex
cpx SRC.FLabel.Len
bne .4
clc
rts
.5 jsr SYM.GetByteGBlock
.5 jsr SYM.GetByteGBlock skip Locals
beq .1
jsr SYM.GetByteGBlock
bra .5
@ -201,22 +232,13 @@ SYM.FindGlobal jsr SYM.ResetGBlock
.9 sec
rts
*---------------------------------------
SYM.AddLToGBlock jsr SYM.GetLastGBlock
lda SRC.LLabel.ID
jsr SYM.AddByteGBlock
bcs .9
lda SRC.LLabel.Offset
jmp SYM.AddByteGBlock
.9 rts
*---------------------------------------
SYM.AddGToGBlockYA >STYA ZPSymbolPtr
jsr SYM.GetLastGBlock
jsr SYM.SetGBlockPtr
ldy #SYM.hCurGBlock 1st Gblock to add?
ldy #SYM.pLastGBlock 1st Gblock to add?
lda (pData),y
ldy #SYM.iCurGBlock
ldy #SYM.iLastGBlock
ora (pData),y
beq .10 yes, skip closing previous one
@ -238,22 +260,31 @@ SYM.AddGToGBlockYA >STYA ZPSymbolPtr
jsr SYM.AddByteGBlock
bcs .9
.2 lda (ZPSymbolPtr),y
.2 iny
lda (ZPSymbolPtr),y
jsr SYM.AddByteGBlock
bcs .9
iny
dex
bne .2
clc
.9 rts
*---------------------------------------
SYM.ResetGBlock ldy #SYM.hGBlocks
lda (pData),y
>SYSCALL SYS.GetMemPtrA
>STYA ZPBlockPtr
SYM.AddLToGBlock jsr SYM.SetGBlockPtr
lda SRC.LLabel.ID
jsr SYM.AddByteGBlock
bcs .9
lda SRC.LLabel.Offset
jmp SYM.AddByteGBlock
.9 rts
*---------------------------------------
SYM.ResetGBlockPtr lda #0
jsr SYM.GetGBlockA
lda #0
ldy #SYM.hCurGBlock
ldy #SYM.pCurGBlock
sta (pData),y
ldy #SYM.iCurGBlock
sta (pData),y
@ -271,7 +302,7 @@ SYM.GetByteGBlock ldy #SYM.iCurGBlock
sta (pData),y
bne .1
ldy #SYM.hCurGBlock
ldy #SYM.pCurGBlock
lda (pData),y
inc
sta (pData),y
@ -281,8 +312,9 @@ SYM.GetByteGBlock ldy #SYM.iCurGBlock
clc
rts
*---------------------------------------
SYM.GetLastGBlock ldy #SYM.LastGBlock
SYM.SetGBlockPtr ldy #SYM.pLastGBlock
lda (pData),y
SYM.GetGBlockA clc
adc #SYM.hGBlocks
tay
@ -296,7 +328,7 @@ SYM.GetGBlockA clc
SYM.AddByteGBlock phx
phy
pha
ldy #SYM.iCurGBlock
ldy #SYM.iLastGBlock
lda (pData),y
tay
@ -307,7 +339,7 @@ SYM.AddByteGBlock phx
inc
beq SYM.NewGBlock2
ldy #SYM.iCurGBlock
ldy #SYM.iLastGBlock
sta (pData),y
ply
plx
@ -323,7 +355,7 @@ SYM.NewGBlock2 >PUSHWI 256
bcs .9
>STYA ZPBlockPtr
ldy #SYM.LastGBlock
ldy #SYM.pLastGBlock
lda (pData),y
inc
sta (pData),y
@ -336,7 +368,7 @@ SYM.NewGBlock2 >PUSHWI 256
sta (pData),y
lda #0
ldy #SYM.iCurGBlock
ldy #SYM.iLastGBlock
sta (pData),y
clc

View File

@ -22,6 +22,7 @@ ASM.T.AM .EQ 0
ASM.T.R .EQ 2
ASM.T.O .EQ 4
*---------------------------------------
SRC.DO.MAXDEPTH .EQ 8
SRC.IN.MAXDEPTH .EQ 7
SRC.GLABEL.MAXLEN .EQ 32
*---------------------------------------
@ -47,6 +48,7 @@ ERR.INVALID.AM.4.OC .EQ $A8
ERR.RANGE .EQ $A9
ERR.UNDEF.SYMBOL .EQ $AA
ERR.SYMBOL.REDEFINE .EQ $AB
ERR.TOO.MANY.DO .EQ $AC
ERR.MISSING.EXP .EQ $B0
ERR.EXP.SYN.ERROR .EQ $B1
ERR.INVALID.MACRO.DEF .EQ $E0
@ -74,7 +76,6 @@ L.MSG.HELP1 .DA MSG.HELP1
L.MSG.HELP2 .DA MSG.HELP2
L.MSG.SRCLINE .DA MSG.SRCLINE
L.MSG.ERROR .DA MSG.ERROR
L.MSG.DEBUG .DA MSG.DEBUG
L.MSG.SYMBOLS .DA MSG.SYMBOLS
L.MSG.GSYMBOL .DA MSG.GSYMBOL
L.MSG.LSYMBOL .DA MSG.LSYMBOL
@ -138,6 +139,17 @@ J.LI .DA DIR.LI.CON
.DA DIR.LI.XOFF
.DA DIR.LI.ON
.DA DIR.LI.OFF
J.EXP.OP .DA EXP.Compute.EOR ^!|&<=>+-*/
.DA EXP.Compute.ORA
.DA EXP.Compute.ORA
.DA EXP.Compute.AND
.DA EXP.Compute.LOW
.DA EXP.Compute.EQU
.DA EXP.Compute.GRT
.DA EXP.Compute.ADD
.DA EXP.Compute.SUB
.DA EXP.Compute.MUL
.DA EXP.Compute.DIV
.DA 0
*---------------------------------------
CS.INIT >LDYA L.LIBSTR
@ -146,73 +158,35 @@ CS.INIT >LDYA L.LIBSTR
ldy #S.PS.hARGS
lda (pPs),y
bne .1
beq .99
>PUSHW L.MSG.HELP1
>LIBCALL hLIBSTR,LIBSTR.PRINTF
>PUSHW L.MSG.HELP2
>LIBCALL hLIBSTR,LIBSTR.PRINTF
lda #ERR.INV.ARGS
sec
rts
.1 >SYSCALL SYS.PStrCpyA
>SYSCALL SYS.PStrCpyA
ldy #SRC.hFILENAME
sta (pData),y Store filename
sta (pData),y
ldy #S.PS.hCMD
lda (pPS),y
>SYSCALL SYS.GetMemPtrA
bcs .99
>STYA ZPPtr1
lda (ZPPtr1)
tay
adc #3 len of ".T."
sta ASM.T.FILENAMELEN
adc #4 len of "6502"
sta ASM.T.FILENAME
tax
.2 lda (ZPPtr1),y
sta ASM.T.FILENAME,y
dey
bne .2
ldy #6
.3 lda ASM.T.DEFAULT,y
sta ASM.T.FILENAME,x
dex
dey
bpl .3
jsr LOAD.ASM.T
bcs .99
jsr FIO.Init
bcs .9
jsr SYM.Init
bcs .99
bcs .9
lda #$80
ldy #ASM.LI.ON
sta (pData),y
lda #$00
ldy #ASM.LI.CON
sta (pData),y
ldy #ASM.LI.XON
sta (pData),y
jsr DIR.Init
lda (pPs)
ora #S.PS.F.EVENT Now accept events
ora #S.PS.F.EVENT
sta (pPs)
clc
rts
.98 lda #ERR.INV.ARGS
.99 >PUSHW L.MSG.HELP1
>LIBCALL hLIBSTR,LIBSTR.PRINTF
>PUSHW L.MSG.HELP2
>LIBCALL hLIBSTR,LIBSTR.PRINTF
lda #ERR.INV.ARGS
sec
.99 rts
.9 rts
*--------------------------------------
CS.RUN ldy #bCANCEL
lda (pData),y
@ -455,9 +429,8 @@ MSG.PASS >CSTRING "Pass:#%d\n"
MSG.SRC.FILE >CSTRING "Reading SRC File:%S\n"
MSG.OBJ.FILE >CSTRING "Writing OBJ File:%S, Type=%02x\n"
MSG.T.FILE >CSTRING "Loading CPU File:%S\n"
MSG.SRCLINE >CSTRING "%05D-%s\n"
MSG.SRCLINE >CSTRING "%H: %05D-%s\n"
MSG.ERROR >CSTRING "%05D-Error:$%h\n"
MSG.DEBUG >CSTRING "DEBUG:%h:%S:%s\n"
MSG.SYMBOLS >CSTRING "Symbol Table:\n"
MSG.GSYMBOL >CSTRING "$%H%H:%S"
MSG.LSYMBOL >CSTRING " .%d:+$%h"
@ -514,25 +487,26 @@ bCANCEL .BS 1
SRC.hFILENAME .BS 1
SRC.COUNT .BS 1
SRC.hREFNUMS .BS SRC.IN.MAXDEPTH Store ref_num of opened files (Main, .INs & .INBs)
SRC.hBUFFERS .BS SRC.IN.MAXDEPTH Store hMem to allocated buffers
SRC.hFILETYPES .BS SRC.IN.MAXDEPTH Store file type of opened SRC files
SRC.hREFNUMS .BS SRC.IN.MAXDEPTH
SRC.hBUFFERS .BS SRC.IN.MAXDEPTH
SRC.hFILETYPES .BS SRC.IN.MAXDEPTH
DST.hFILENAME .BS 1
DST.hREFNUM .BS 1
DST.hBUFFER .BS 1
DST.hFILETYPE .BS 1
ASM.T.hMem .BS 1 handle to ASM.T.xxxxx
ASM.T.hMem .BS 1
SYM.hCurSBlock .BS 1
SYM.iCurSBlock .BS 1
SYM.LastSBlock .BS 1
SYM.hSBlocks .BS SYM.SBLOCK.MAX
SYM.hCurGBlock .BS 1
SYM.pCurGBlock .BS 1
SYM.iCurGBlock .BS 1
SYM.LastGBlock .BS 1
SYM.pLastGBlock .BS 1
SYM.iLastGBlock .BS 1
SYM.hGBlocks .BS SYM.GBLOCK.MAX
SYM.hCurPBlock .BS 1
@ -547,15 +521,21 @@ SYM.hMBlocks .BS SYM.MBLOCK.MAX
SYM.DumpCount .BS 1
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.XON .BS 1
ASM.PC .BS 4 32Bits PC
ASM.PC.PH .BS 4 32Bits PC saved for PH directive
ASM.PC.GLABEL .BS 4 32Bits PC for last Label (for local labels)
ASM.PC .BS 4
ASM.PC.PH .BS 4
ASM.PC.GLABEL .BS 4
ASM.LOCAL.OFFSET .BS 1 Store local offset from last Global Symbol for local (.xx)
ASM.LOCAL.INVALID .BS 1 If not in global or offset out of range this flag is set
ASM.SYM.ID .BS 2 For reference when a local label is parsed