mirror of
https://github.com/A2osX/A2osX.git
synced 2024-07-13 13:29:04 +00:00
Work In Progress (ASM)
This commit is contained in:
parent
3537472fa1
commit
49ba85b7da
@ -16,8 +16,22 @@ AUTO 6
|
|||||||
EXP.Eval stz EXP.Operator
|
EXP.Eval stz EXP.Operator
|
||||||
|
|
||||||
jsr SRC.GetCharNB
|
jsr SRC.GetCharNB
|
||||||
beq .98
|
bne .13
|
||||||
cmp #'*'
|
|
||||||
|
lda #ERR.MISSING.EXP
|
||||||
|
sec
|
||||||
|
.14 rts
|
||||||
|
|
||||||
|
.13 cmp #'.' Local Label?
|
||||||
|
bne .12
|
||||||
|
|
||||||
|
jsr EXP.GetLocal
|
||||||
|
bcs .14
|
||||||
|
|
||||||
|
jmp EXP.EvalOperator
|
||||||
|
|
||||||
|
|
||||||
|
.12 cmp #'*'
|
||||||
bne .10
|
bne .10
|
||||||
|
|
||||||
ldy #ASM.PC+3
|
ldy #ASM.PC+3
|
||||||
@ -30,7 +44,7 @@ EXP.Eval stz EXP.Operator
|
|||||||
bpl .11
|
bpl .11
|
||||||
|
|
||||||
jsr SRC.GetCharNB
|
jsr SRC.GetCharNB
|
||||||
bne .97
|
bne EXP.EvalExitSYN
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@ -39,79 +53,154 @@ EXP.Eval stz EXP.Operator
|
|||||||
|
|
||||||
dec SRC.BufPtr
|
dec SRC.BufPtr
|
||||||
jsr SRC.GetDecimal
|
jsr SRC.GetDecimal
|
||||||
bcs .97
|
|
||||||
bra .8
|
bcs EXP.EvalExitSYN
|
||||||
|
bra EXP.EvalOperator
|
||||||
|
|
||||||
.1 cmp #'$' Hex?
|
.1 cmp #'$' Hex?
|
||||||
bne .2
|
bne .2
|
||||||
jsr SRC.GetHex
|
jsr SRC.GetHex
|
||||||
bcs .97
|
|
||||||
bra .8
|
bcs EXP.EvalExitSYN
|
||||||
|
bra EXP.EvalOperator
|
||||||
|
|
||||||
|
|
||||||
.2 cmp #'%' binary?
|
.2 cmp #'%' binary?
|
||||||
bne .3
|
bne .3
|
||||||
jsr SRC.GetBinary
|
jsr SRC.GetBinary
|
||||||
bcs .97
|
|
||||||
|
|
||||||
bra .8
|
bcs EXP.EvalExitSYN
|
||||||
|
bra EXP.EvalOperator
|
||||||
|
|
||||||
|
|
||||||
.3 cmp #'&' octal?
|
.3 cmp #'&' octal?
|
||||||
bne .4
|
bne .4
|
||||||
jsr SRC.GetOctal
|
jsr SRC.GetOctal
|
||||||
bcs .97
|
|
||||||
|
|
||||||
bra .8
|
bcs EXP.EvalExitSYN
|
||||||
|
bra EXP.EvalOperator
|
||||||
|
|
||||||
.4 jsr SRC.IsLetter Symbol ?
|
.4 cmp #'''
|
||||||
bcs .97
|
bne .43
|
||||||
|
jsr SRC.GetChar
|
||||||
|
beq EXP.EvalExitSYN
|
||||||
|
jsr EXP.SetAccA
|
||||||
|
jsr SRC.GetChar
|
||||||
|
beq EXP.EvalOperator
|
||||||
|
cmp #'''
|
||||||
|
bne EXP.EvalExitSYN
|
||||||
|
bra EXP.EvalOperator
|
||||||
|
|
||||||
|
.43 cmp '"'
|
||||||
|
bne .42
|
||||||
|
jsr SRC.GetChar
|
||||||
|
beq EXP.EvalExitSYN
|
||||||
|
ora #$80
|
||||||
|
jsr EXP.SetAccA
|
||||||
|
jsr SRC.GetChar
|
||||||
|
beq EXP.EvalOperator
|
||||||
|
cmp #'"'
|
||||||
|
bne EXP.EvalExitSYN
|
||||||
|
bra EXP.EvalOperator
|
||||||
|
|
||||||
|
.42 jsr SRC.IsLetter Symbol ?
|
||||||
|
bcs EXP.EvalExitSYN
|
||||||
dec SRC.BufPtr
|
dec SRC.BufPtr
|
||||||
>LDYA L.SRC.ELabel.Len
|
jsr EXP.GetSymbol
|
||||||
jsr SRC.GetLabel
|
bcs EXP.EvalExitRTS
|
||||||
bcs .97
|
bra EXP.EvalOperator
|
||||||
jsr SYM.FindGlobal
|
|
||||||
bcc .41
|
|
||||||
|
|
||||||
ldy #ASM.PASS
|
|
||||||
lda (pData),y pass#2?
|
|
||||||
bne .96 yes, undefined symbol
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bra *
|
EXP.EvalExitOK dec SRC.BufPtr Back One Char
|
||||||
|
EXP.EvalExitOK1 clc
|
||||||
|
EXP.EvalExitRTS rts
|
||||||
|
|
||||||
|
EXP.EvalExitSYN lda #ERR.SYNTAX.ERROR
|
||||||
|
|
||||||
|
|
||||||
.41 ldx #3
|
|
||||||
.5 lda SRC.FLabel.Value,x
|
|
||||||
sta SRC.ACC,x
|
|
||||||
dex
|
|
||||||
bpl .5
|
|
||||||
|
|
||||||
.8 clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.97 lda #ERR.SYNTAX.ERROR
|
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.98 lda #ERR.MISSING.EXP
|
|
||||||
sec
|
|
||||||
.99 rts
|
|
||||||
|
|
||||||
.96 lda #ERR.UNDEF.SYMBOL
|
EXP.EvalExitUND lda #ERR.UNDEF.SYMBOL
|
||||||
sec
|
sec
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
EXP.EvalOperator lda EXP.Operator
|
||||||
|
beq .7
|
||||||
|
|
||||||
|
jsr EXP.Compute
|
||||||
|
bcs EXP.EvalExitRTS
|
||||||
|
|
||||||
|
.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
|
||||||
|
|
||||||
|
ldx #3
|
||||||
|
.8 lda SRC.ACC,x
|
||||||
|
sta SRC.ARG,x
|
||||||
|
dex
|
||||||
|
bpl .8
|
||||||
|
|
||||||
|
jmp EXP.Eval
|
||||||
|
|
||||||
|
clc
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
stz SRC.ACC
|
EXP.GetLocal jsr SRC.GetDecimal
|
||||||
|
bcs EXP.EvalExitSYN
|
||||||
|
lda SRC.ACC+1
|
||||||
|
ora SRC.ACC+2
|
||||||
|
ora SRC.ACC+3
|
||||||
|
bne EXP.EvalExitSYN Max .255
|
||||||
|
lda SRC.ACC
|
||||||
|
beq EXP.EvalExitSYN .0 is not allowed
|
||||||
|
jsr SYM.FindLocal
|
||||||
|
bcs EXP.EvalExitUND
|
||||||
|
rts
|
||||||
|
*---------------------------------------
|
||||||
|
EXP.SetAccA sta SRC.ACC
|
||||||
stz SRC.ACC+1
|
stz SRC.ACC+1
|
||||||
stz SRC.ACC+2
|
stz SRC.ACC+2
|
||||||
stz SRC.ACC+3
|
stz SRC.ACC+3
|
||||||
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
|
EXP.GetSymbol >LDYA L.SRC.ELabel.Len
|
||||||
|
jsr SRC.GetLabel
|
||||||
|
bcs EXP.EvalExitSYN
|
||||||
|
jsr SYM.FindGlobal
|
||||||
|
bcc .1
|
||||||
|
|
||||||
|
ldy #ASM.PASS
|
||||||
|
lda (pData),y pass#2?
|
||||||
|
bne EXP.EvalExitUND yes, undefined symbol
|
||||||
|
|
||||||
|
lda #$C0 Valid+Pending
|
||||||
|
sta SRC.ELabel.Flags
|
||||||
|
>LDYA L.SRC.ELabel.Flags
|
||||||
|
jsr SYM.AddGToGBlockYA
|
||||||
|
rts
|
||||||
|
|
||||||
*---------------------------------------
|
.1 ldx #3
|
||||||
|
.2 lda SRC.FLabel.Value,x
|
||||||
|
sta SRC.ACC,x
|
||||||
|
dex
|
||||||
|
bpl .2
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*---------------------------------------
|
||||||
|
EXP.Compute
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*---------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE BIN/ASM.S.EXP
|
SAVE BIN/ASM.S.EXP
|
||||||
LOAD BIN/ASM.S
|
LOAD BIN/ASM.S
|
||||||
|
@ -49,20 +49,32 @@ SRC.ParseLine ldx TmpBuffer256
|
|||||||
|
|
||||||
|
|
||||||
SRC.ParseLine.Ok lda SRC.GLabel.New
|
SRC.ParseLine.Ok lda SRC.GLabel.New
|
||||||
bpl .1
|
bpl .8
|
||||||
|
|
||||||
lda SRC.GLabel.Flags
|
jsr SYM.FindGlobal
|
||||||
lsr .SE ?
|
bcs .1 if CS, not found, add
|
||||||
|
|
||||||
|
lda SRC.FLabel.Flags
|
||||||
|
and SRC.GLabel.Flags
|
||||||
|
lsr both are .SE ?
|
||||||
bcs .1 yes, update during pass 1 & 2
|
bcs .1 yes, update during pass 1 & 2
|
||||||
|
|
||||||
ldy #ASM.PASS
|
lda SRC.FLabel.Flags
|
||||||
|
and #$40 found symbol pending ?
|
||||||
|
bne .10
|
||||||
|
|
||||||
|
lda SRC.GLabel.Flags
|
||||||
|
and #$40 new is pending ? (if yes, no need to update)
|
||||||
|
bne .8
|
||||||
|
|
||||||
|
.10 ldy #ASM.PASS
|
||||||
lda (pData),y pass#2?
|
lda (pData),y pass#2?
|
||||||
bne .8 yes, skip to avoid redefinition error
|
bne .8 yes, skip to avoid redefinition error
|
||||||
|
|
||||||
jsr SYM.FindGlobal
|
bra SRC.ParseLine.Redef
|
||||||
bcs SRC.ParseLine.Redef
|
|
||||||
|
|
||||||
.1 jsr SYM.AddGToGBlock
|
.1 >LDYA L.SRC.GLabel.Flags
|
||||||
|
jsr SYM.AddGToGBlockYA
|
||||||
bcs SRC.ParseLine.Err
|
bcs SRC.ParseLine.Err
|
||||||
|
|
||||||
|
|
||||||
@ -225,6 +237,19 @@ SRC.ParseLine.OpCode
|
|||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
jsr SRC.ParseLine.AM
|
jsr SRC.ParseLine.AM
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
bcs *
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
ldy #ASM.PC
|
ldy #ASM.PC
|
||||||
@ -278,6 +303,9 @@ SRC.ParseLine.AM stz SRC.AM.ID
|
|||||||
.2 jsr SRC.IsLetter Any register?
|
.2 jsr SRC.IsLetter Any register?
|
||||||
bcs .70 no, try something else
|
bcs .70 no, try something else
|
||||||
|
|
||||||
|
lda SRC.BufPtr
|
||||||
|
sta SRC.BufPtrSave
|
||||||
|
|
||||||
stz SRC.AM.tmpBuf
|
stz SRC.AM.tmpBuf
|
||||||
sta SRC.AM.tmpBuf+1
|
sta SRC.AM.tmpBuf+1
|
||||||
inc SRC.AM.tmpBuf
|
inc SRC.AM.tmpBuf
|
||||||
@ -332,10 +360,13 @@ SRC.ParseLine.AM stz SRC.AM.ID
|
|||||||
tay
|
tay
|
||||||
bra .5
|
bra .5
|
||||||
|
|
||||||
|
.71 lda SRC.BufPtrSave Does not match a register,restore Ptr
|
||||||
|
sta SRC.BufPtr
|
||||||
|
|
||||||
.70 dec SRC.BufPtr back one char
|
.70 dec SRC.BufPtr back one char
|
||||||
|
|
||||||
|
jsr EXP.Eval
|
||||||
.71 jsr EXP.Eval
|
bcs *
|
||||||
bcs .99
|
bcs .99
|
||||||
.72 jmp .1
|
.72 jmp .1
|
||||||
clc
|
clc
|
||||||
@ -382,6 +413,10 @@ SRC.GetDecimal stz SRC.ACC+1
|
|||||||
beq .8
|
beq .8
|
||||||
cmp #' '
|
cmp #' '
|
||||||
beq .8
|
beq .8
|
||||||
|
jsr SRC.IsEXPReserved
|
||||||
|
bcc .88
|
||||||
|
jsr SRC.IsAMReserved
|
||||||
|
bcc .88
|
||||||
jsr SRC.IsDigit10
|
jsr SRC.IsDigit10
|
||||||
bcs .99
|
bcs .99
|
||||||
and #$0F
|
and #$0F
|
||||||
@ -405,7 +440,8 @@ SRC.GetDecimal stz SRC.ACC+1
|
|||||||
.9 lda #ERR.VAL.TOO.BIG
|
.9 lda #ERR.VAL.TOO.BIG
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
.88 dec SRC.BufPtr Back One Char
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@ -428,6 +464,10 @@ SRC.GetHex stz SRC.ACC+1
|
|||||||
beq .8
|
beq .8
|
||||||
cmp #' '
|
cmp #' '
|
||||||
beq .8
|
beq .8
|
||||||
|
jsr SRC.IsEXPReserved
|
||||||
|
bcc .88
|
||||||
|
jsr SRC.IsAMReserved
|
||||||
|
bcc .88
|
||||||
jsr SRC.IsDigit16
|
jsr SRC.IsDigit16
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
@ -443,6 +483,7 @@ SRC.GetHex stz SRC.ACC+1
|
|||||||
sta SRC.ACC
|
sta SRC.ACC
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
|
.88 dec SRC.BufPtr Back One Char
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@ -469,6 +510,10 @@ SRC.GetOctal stz SRC.ACC+1
|
|||||||
beq .8
|
beq .8
|
||||||
cmp #' '
|
cmp #' '
|
||||||
beq .8
|
beq .8
|
||||||
|
jsr SRC.IsEXPReserved
|
||||||
|
bcc .88
|
||||||
|
jsr SRC.IsAMReserved
|
||||||
|
bcc .88
|
||||||
jsr SRC.IsDigit8
|
jsr SRC.IsDigit8
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
@ -489,6 +534,7 @@ SRC.GetOctal stz SRC.ACC+1
|
|||||||
bne .2
|
bne .2
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
|
.88 dec SRC.BufPtr Back One Char
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@ -515,6 +561,12 @@ SRC.GetBinary stz SRC.ACC+1
|
|||||||
|
|
||||||
.1 jsr SRC.GetChar
|
.1 jsr SRC.GetChar
|
||||||
beq .8
|
beq .8
|
||||||
|
cmp #' '
|
||||||
|
beq .8
|
||||||
|
jsr SRC.IsEXPReserved
|
||||||
|
bcc .88
|
||||||
|
jsr SRC.IsAMReserved
|
||||||
|
bcc .88
|
||||||
cmp #'1'
|
cmp #'1'
|
||||||
beq .11
|
beq .11
|
||||||
cmp #'0'
|
cmp #'0'
|
||||||
@ -529,6 +581,7 @@ SRC.GetBinary stz SRC.ACC+1
|
|||||||
bcs .9
|
bcs .9
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
|
.88 dec SRC.BufPtr Back One Char
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@ -563,9 +616,12 @@ SRC.GetLabel >STYA ZPPtr1
|
|||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
jsr SRC.IsEXPReserved
|
jsr SRC.IsEXPReserved
|
||||||
bcc .8
|
bcc .88
|
||||||
|
jsr SRC.IsAMReserved
|
||||||
|
bcc .88
|
||||||
jsr SRC.IsLetterOrDigit
|
jsr SRC.IsLetterOrDigit
|
||||||
bcs .9
|
bcs *
|
||||||
|
* bcs .9
|
||||||
|
|
||||||
.2 iny
|
.2 iny
|
||||||
sta (ZPPtr1),y
|
sta (ZPPtr1),y
|
||||||
@ -575,7 +631,8 @@ SRC.GetLabel >STYA ZPPtr1
|
|||||||
.9 lda #ERR.SYNTAX.ERROR
|
.9 lda #ERR.SYNTAX.ERROR
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
.88 dec SRC.BufPtr Back One Char
|
||||||
.8 tya
|
.8 tya
|
||||||
sta (ZPPtr1)
|
sta (ZPPtr1)
|
||||||
clc
|
clc
|
||||||
@ -621,35 +678,6 @@ SRC.GetKeyword >STYA ZPPtr1
|
|||||||
inc SRC.Keyword.ID
|
inc SRC.Keyword.ID
|
||||||
bra .3
|
bra .3
|
||||||
|
|
||||||
.9 sec
|
|
||||||
rts
|
|
||||||
*---------------------------------------
|
|
||||||
SRC.GetExp.DELETE stz SRC.Exp
|
|
||||||
jsr SRC.GetCharUC
|
|
||||||
beq .9
|
|
||||||
|
|
||||||
ldy #0
|
|
||||||
jsr SRC.IsAMReserved
|
|
||||||
bcc .8
|
|
||||||
|
|
||||||
iny
|
|
||||||
sta SRC.Exp+1
|
|
||||||
|
|
||||||
.1 jsr SRC.GetCharUC
|
|
||||||
beq .89
|
|
||||||
cmp #' '
|
|
||||||
beq .89
|
|
||||||
jsr SRC.IsAMReserved
|
|
||||||
bcc .8
|
|
||||||
iny
|
|
||||||
sta SRC.Exp,y
|
|
||||||
bra .1
|
|
||||||
|
|
||||||
.8 dec SRC.BufPtr
|
|
||||||
.89 sty SRC.Exp
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.9 sec
|
.9 sec
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
|
@ -151,6 +151,12 @@ SYM.LookupMacro
|
|||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
SYM.UpdateGlobal
|
SYM.UpdateGlobal
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*---------------------------------------
|
||||||
|
SYM.FindLocal
|
||||||
|
clc
|
||||||
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
SYM.FindGlobal jsr SYM.ResetGBlock
|
SYM.FindGlobal jsr SYM.ResetGBlock
|
||||||
|
|
||||||
@ -205,7 +211,8 @@ SYM.AddLToGBlock jsr SYM.GetLastGBlock
|
|||||||
jmp SYM.AddByteGBlock
|
jmp SYM.AddByteGBlock
|
||||||
.9 rts
|
.9 rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
SYM.AddGToGBlock jsr SYM.GetLastGBlock
|
SYM.AddGToGBlockYA >STYA ZPSymbolPtr
|
||||||
|
jsr SYM.GetLastGBlock
|
||||||
|
|
||||||
ldy #SYM.hCurGBlock 1st Gblock to add?
|
ldy #SYM.hCurGBlock 1st Gblock to add?
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
@ -213,25 +220,29 @@ SYM.AddGToGBlock jsr SYM.GetLastGBlock
|
|||||||
ora (pData),y
|
ora (pData),y
|
||||||
beq .10 yes, skip closing previous one
|
beq .10 yes, skip closing previous one
|
||||||
|
|
||||||
lda #0 Close Pending Global/Local
|
lda #0 Close Pending Global/Local
|
||||||
jsr SYM.AddByteGBlock
|
jsr SYM.AddByteGBlock
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.10 ldx #0
|
.10 ldy #0
|
||||||
.1 lda SRC.GLabel.Flags,x
|
|
||||||
|
.1 lda (ZPSymbolPtr),y
|
||||||
jsr SYM.AddByteGBlock
|
jsr SYM.AddByteGBlock
|
||||||
bcs .9
|
bcs .9
|
||||||
inx
|
iny
|
||||||
cpx #6
|
cpy #5
|
||||||
bne .1
|
bne .1 moved Flags & Value to GBlock....
|
||||||
|
|
||||||
ldx #0
|
lda (ZPSymbolPtr),y Get Len
|
||||||
|
tax
|
||||||
.2 lda SRC.GLabel.Name,x
|
|
||||||
jsr SYM.AddByteGBlock
|
jsr SYM.AddByteGBlock
|
||||||
bcs .9
|
bcs .9
|
||||||
inx
|
|
||||||
cpx SRC.GLabel.Len
|
.2 lda (ZPSymbolPtr),y
|
||||||
|
jsr SYM.AddByteGBlock
|
||||||
|
bcs .9
|
||||||
|
iny
|
||||||
|
dex
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
clc
|
clc
|
||||||
@ -282,7 +293,9 @@ SYM.GetGBlockA clc
|
|||||||
plx
|
plx
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
SYM.AddByteGBlock pha
|
SYM.AddByteGBlock phx
|
||||||
|
phy
|
||||||
|
pha
|
||||||
ldy #SYM.iCurGBlock
|
ldy #SYM.iCurGBlock
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
tay
|
tay
|
||||||
@ -292,15 +305,18 @@ SYM.AddByteGBlock pha
|
|||||||
|
|
||||||
tya
|
tya
|
||||||
inc
|
inc
|
||||||
beq SYM.NewGBlock
|
beq SYM.NewGBlock2
|
||||||
|
|
||||||
ldy #SYM.iCurGBlock
|
ldy #SYM.iCurGBlock
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
ply
|
||||||
|
plx
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
SYM.NewGBlock phx
|
SYM.NewGBlock phx
|
||||||
>PUSHWI 256
|
phy
|
||||||
|
SYM.NewGBlock2 >PUSHWI 256
|
||||||
>PUSHBI S.MEM.F.INIT0
|
>PUSHBI S.MEM.F.INIT0
|
||||||
>SYSCALL SYS.GetMem
|
>SYSCALL SYS.GetMem
|
||||||
|
|
||||||
@ -324,7 +340,8 @@ SYM.NewGBlock phx
|
|||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
clc
|
clc
|
||||||
.9 plx
|
.9 ply
|
||||||
|
plx
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
MAN
|
MAN
|
||||||
|
@ -16,6 +16,7 @@ ZPPtr1 .EQ ZPBIN
|
|||||||
ZPPtr2 .EQ ZPBIN+2
|
ZPPtr2 .EQ ZPBIN+2
|
||||||
ZPPtr3 .EQ ZPBIN+4
|
ZPPtr3 .EQ ZPBIN+4
|
||||||
ZPBlockPtr .EQ ZPBIN+6
|
ZPBlockPtr .EQ ZPBIN+6
|
||||||
|
ZPSymbolPtr .EQ ZPBIN+8
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
ASM.T.AM .EQ 0
|
ASM.T.AM .EQ 0
|
||||||
ASM.T.R .EQ 2
|
ASM.T.R .EQ 2
|
||||||
@ -83,7 +84,9 @@ L.MSG.SRC.FILE .DA MSG.SRC.FILE
|
|||||||
L.MSG.OBJ.FILE .DA MSG.OBJ.FILE
|
L.MSG.OBJ.FILE .DA MSG.OBJ.FILE
|
||||||
L.MSG.T.FILE .DA MSG.T.FILE
|
L.MSG.T.FILE .DA MSG.T.FILE
|
||||||
L.SRC.AM.StrBuf .DA SRC.AM.StrBuf
|
L.SRC.AM.StrBuf .DA SRC.AM.StrBuf
|
||||||
|
L.SRC.GLabel.Flags .DA SRC.GLabel.Flags
|
||||||
L.SRC.GLabel.Len .DA SRC.GLabel.Len
|
L.SRC.GLabel.Len .DA SRC.GLabel.Len
|
||||||
|
L.SRC.ELabel.Flags .DA SRC.ELabel.Flags
|
||||||
L.SRC.ELabel.Len .DA SRC.ELabel.Len
|
L.SRC.ELabel.Len .DA SRC.ELabel.Len
|
||||||
L.SRC.BUFFER .DA SRC.BUFFER
|
L.SRC.BUFFER .DA SRC.BUFFER
|
||||||
L.ASM.T.FILENAME .DA ASM.T.FILENAME
|
L.ASM.T.FILENAME .DA ASM.T.FILENAME
|
||||||
@ -264,10 +267,10 @@ CS.RUN ldy #bCANCEL
|
|||||||
.99 sec
|
.99 sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.2 jsr SRC.ParseLine
|
.2 jsr SRC.PrintLine with CC, conditional
|
||||||
bcs .9
|
|
||||||
|
|
||||||
jsr SRC.PrintLine with CC, conditional
|
jsr SRC.ParseLine
|
||||||
|
bcs .9
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
@ -477,6 +480,7 @@ SRC.Directive.ID .BS 1
|
|||||||
SRC.Keyword.ID .BS 1
|
SRC.Keyword.ID .BS 1
|
||||||
SRC.ACC .BS 4
|
SRC.ACC .BS 4
|
||||||
SRC.ACCTMP .BS 4
|
SRC.ACCTMP .BS 4
|
||||||
|
SRC.ARG .BS 4
|
||||||
SRC.AM.ID .BS 1
|
SRC.AM.ID .BS 1
|
||||||
SRC.AM.StrBuf .BS 32
|
SRC.AM.StrBuf .BS 32
|
||||||
SRC.AM.tmpBuf .BS 32
|
SRC.AM.tmpBuf .BS 32
|
||||||
|
Loading…
Reference in New Issue
Block a user