mirror of
https://github.com/A2osX/A2osX.git
synced 2024-08-12 14:29:33 +00:00
Kernel 0.9.1 : ASM rewrite....
This commit is contained in:
parent
b3acfa3030
commit
45474d544c
Binary file not shown.
@ -39,7 +39,7 @@ DIR.BS jsr EXP.Eval
|
|||||||
|
|
||||||
stz DIR.Byte
|
stz DIR.Byte
|
||||||
|
|
||||||
jsr SRC.GetChar
|
jsr SRC.GetNextChar
|
||||||
beq .1
|
beq .1
|
||||||
cmp #' '
|
cmp #' '
|
||||||
beq .1
|
beq .1
|
||||||
@ -134,7 +134,7 @@ DIR.ED clc
|
|||||||
DIR.EL clc
|
DIR.EL clc
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
DIR.EM lda #ERR.INVALID.MACRO.DEF
|
DIR.EM lda #ERR.INV.MACRO.DEF
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
@ -168,7 +168,7 @@ DIR.EP ldy #ASM.PH.ON
|
|||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 lda #ERR.INVALID.DIRECTIVE
|
.9 lda #ERR.INV.DIRECTIVE
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
@ -198,22 +198,22 @@ DIR.FI ldy #ASM.DO.Count
|
|||||||
.1 clc
|
.1 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.99 lda #ERR.INVALID.DIRECTIVE
|
.99 lda #ERR.INV.DIRECTIVE
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
DIR.HS clc
|
DIR.HS clc
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
DIR.IN jsr SRC.GetArg
|
DIR.IN jsr SRC.CheckBlank
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDYA L.SRC.BUFFER
|
>LDYA ZPLinePtr
|
||||||
>SYSCALL NewStr.YA
|
>SYSCALL RealPath.YA
|
||||||
|
|
||||||
phx
|
phx
|
||||||
|
|
||||||
jsr FIO.OpenFileA
|
jsr FIO.OpenFile
|
||||||
plx
|
plx
|
||||||
php
|
php
|
||||||
pha
|
pha
|
||||||
@ -230,15 +230,14 @@ DIR.IN jsr SRC.GetArg
|
|||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
DIR.LI >LDYA L.T.LI
|
DIR.LI jsr SRC.GetNextCharNB
|
||||||
|
beq DIR.LI.9
|
||||||
|
|
||||||
|
>LDYA L.T.LI
|
||||||
jsr SRC.GetKeyword
|
jsr SRC.GetKeyword
|
||||||
bcc .1
|
bcs DIR.LI.9
|
||||||
|
|
||||||
lda #ERR.SYNTAX.ERROR
|
jmp (J.LI,x)
|
||||||
sec
|
|
||||||
rts
|
|
||||||
|
|
||||||
.1 jmp (J.LI,x)
|
|
||||||
|
|
||||||
DIR.LI.CON ldy #ASM.LI.CON
|
DIR.LI.CON ldy #ASM.LI.CON
|
||||||
sec
|
sec
|
||||||
@ -261,14 +260,18 @@ DIR.LI.APPLY lsr
|
|||||||
|
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
DIR.LI.9 lda #ERR.SYNTAX.ERROR
|
||||||
|
sec
|
||||||
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
DIR.MA jsr SRC.GetArg
|
DIR.MA jsr SRC.CheckBlank Get Macro Name
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.1 jsr FIO.ReadLine
|
.1 jsr FIO.ReadLine
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
lda UsrBuf256
|
lda (ZPLineBuf)
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
cmp #'*' Comment?
|
cmp #'*' Comment?
|
||||||
@ -279,21 +282,21 @@ DIR.MA jsr SRC.GetArg
|
|||||||
cmp #' ' no label...go scan dir/opcode
|
cmp #' ' no label...go scan dir/opcode
|
||||||
beq .3
|
beq .3
|
||||||
|
|
||||||
.2 jsr SRC.GetChar skip label
|
.2 jsr SRC.GetNextChar skip label
|
||||||
beq .8
|
beq .8
|
||||||
cmp #' '
|
cmp #' '
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
.3 jsr SRC.GetCharNB Scan for an Opcode...
|
.3 jsr SRC.GetNextCharNB Scan for an Opcode...
|
||||||
beq .8
|
beq .8
|
||||||
cmp #'.'
|
cmp #'.'
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
jsr SRC.GetChar
|
jsr SRC.GetNextChar
|
||||||
beq .8
|
beq .8
|
||||||
cmp #'E'
|
cmp #'E'
|
||||||
bne .8
|
bne .8
|
||||||
jsr SRC.GetChar
|
jsr SRC.GetNextChar
|
||||||
beq .8
|
beq .8
|
||||||
cmp #'M'
|
cmp #'M'
|
||||||
bne .8
|
bne .8
|
||||||
@ -310,32 +313,25 @@ DIR.MA jsr SRC.GetArg
|
|||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 lda #ERR.INVALID.MACRO.DEF
|
.9 lda #ERR.INV.MACRO.DEF
|
||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
DIR.OP jsr SRC.GetArg
|
DIR.OP jsr SRC.GetNextCharNB
|
||||||
bcs .9
|
beq DIR.OP.SYNERR
|
||||||
|
|
||||||
ldx SRC.Buffer
|
>LDYA ZPLinePtr
|
||||||
lda ASM.T.FILENAMELEN
|
|
||||||
adc SRC.Buffer
|
|
||||||
sta ASM.T.FILENAME
|
|
||||||
tay
|
|
||||||
|
|
||||||
.1 lda SRC.Buffer,x
|
|
||||||
sta ASM.T.FILENAME,y
|
|
||||||
dey
|
|
||||||
dex
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
jmp FIO.LOAD.ASM.T
|
jmp FIO.LOAD.ASM.T
|
||||||
|
|
||||||
.9 lda #ERR.SYNTAX.ERROR
|
DIR.OP.SYNERR lda #ERR.SYNTAX.ERROR
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
DIR.OR jsr EXP.Eval
|
DIR.OR jsr SRC.GetNextCharNB
|
||||||
|
beq DIR.OP.SYNERR
|
||||||
|
|
||||||
|
jsr EXP.Eval
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldy #ASM.PC
|
ldy #ASM.PC
|
||||||
@ -380,7 +376,7 @@ DIR.PH ldy #ASM.PH.ON
|
|||||||
|
|
||||||
jmp DIR.OR
|
jmp DIR.OR
|
||||||
|
|
||||||
.9 lda #ERR.INVALID.DIRECTIVE
|
.9 lda #ERR.INV.DIRECTIVE
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
|
@ -14,7 +14,7 @@ EXP.Eval stz EXP.Operator
|
|||||||
|
|
||||||
stz EXP.Modifier
|
stz EXP.Modifier
|
||||||
|
|
||||||
jsr SRC.GetCharNB
|
lda (ZPLinePtr)
|
||||||
beq EXP.Eval.Missing
|
beq EXP.Eval.Missing
|
||||||
|
|
||||||
jsr SRC.IsMODReserved
|
jsr SRC.IsMODReserved
|
||||||
@ -27,7 +27,7 @@ EXP.Eval.Missing lda #ERR.MISSING.EXP
|
|||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
EXP.Eval.Next jsr SRC.GetCharUC
|
EXP.Eval.Next jsr SRC.GetNextCharUC
|
||||||
beq EXP.Eval.Missing
|
beq EXP.Eval.Missing
|
||||||
|
|
||||||
EXP.Eval.Next1 cmp #'.' Local Label?
|
EXP.Eval.Next1 cmp #'.' Local Label?
|
||||||
@ -56,7 +56,6 @@ EXP.Eval.Next1 cmp #'.' Local Label?
|
|||||||
.10 jsr SRC.IsDigit10 Decimal constant ?
|
.10 jsr SRC.IsDigit10 Decimal constant ?
|
||||||
bcs .1
|
bcs .1
|
||||||
|
|
||||||
dec SRC.BufPtr
|
|
||||||
jsr SRC.GetDecimal
|
jsr SRC.GetDecimal
|
||||||
|
|
||||||
bcs EXP.EvalExitSYN
|
bcs EXP.EvalExitSYN
|
||||||
@ -64,6 +63,10 @@ EXP.Eval.Next1 cmp #'.' Local Label?
|
|||||||
|
|
||||||
.1 cmp #'$' Hex?
|
.1 cmp #'$' Hex?
|
||||||
bne .2
|
bne .2
|
||||||
|
>DEBUG
|
||||||
|
|
||||||
|
jsr SRC.GetNextChar
|
||||||
|
beq EXP.EvalExitSYN
|
||||||
jsr SRC.GetHex
|
jsr SRC.GetHex
|
||||||
|
|
||||||
bcs EXP.EvalExitSYN
|
bcs EXP.EvalExitSYN
|
||||||
@ -87,10 +90,10 @@ EXP.Eval.Next1 cmp #'.' Local Label?
|
|||||||
|
|
||||||
.4 cmp #'''
|
.4 cmp #'''
|
||||||
bne .43
|
bne .43
|
||||||
jsr SRC.GetChar
|
jsr SRC.GetNextChar
|
||||||
beq EXP.EvalExitSYN
|
beq EXP.EvalExitSYN
|
||||||
jsr EXP.SetAccA
|
jsr EXP.SetAccA
|
||||||
jsr SRC.GetChar
|
jsr SRC.GetNextChar
|
||||||
beq EXP.EvalOperator
|
beq EXP.EvalOperator
|
||||||
cmp #'''
|
cmp #'''
|
||||||
bne EXP.EvalExitSYN
|
bne EXP.EvalExitSYN
|
||||||
@ -98,11 +101,11 @@ EXP.Eval.Next1 cmp #'.' Local Label?
|
|||||||
|
|
||||||
.43 cmp '"'
|
.43 cmp '"'
|
||||||
bne .42
|
bne .42
|
||||||
jsr SRC.GetChar
|
jsr SRC.GetNextChar
|
||||||
beq EXP.EvalExitSYN
|
beq EXP.EvalExitSYN
|
||||||
ora #$80
|
ora #$80
|
||||||
jsr EXP.SetAccA
|
jsr EXP.SetAccA
|
||||||
jsr SRC.GetChar
|
jsr SRC.GetNextChar
|
||||||
beq EXP.EvalOperator
|
beq EXP.EvalOperator
|
||||||
cmp #'"'
|
cmp #'"'
|
||||||
bne EXP.EvalExitSYN
|
bne EXP.EvalExitSYN
|
||||||
@ -110,15 +113,12 @@ EXP.Eval.Next1 cmp #'.' Local Label?
|
|||||||
|
|
||||||
.42 jsr SRC.IsLetter Symbol ?
|
.42 jsr SRC.IsLetter Symbol ?
|
||||||
bcs EXP.EvalExitSYN
|
bcs EXP.EvalExitSYN
|
||||||
dec SRC.BufPtr
|
|
||||||
jsr EXP.GetSymbol
|
jsr EXP.GetSymbol
|
||||||
bcs EXP.EvalExitRTS
|
bcs EXP.EvalExitRTS
|
||||||
bra EXP.EvalOperator
|
bra EXP.EvalOperator
|
||||||
|
|
||||||
|
EXP.EvalExitOK clc
|
||||||
|
|
||||||
EXP.EvalExitOK dec SRC.BufPtr Back One Char
|
|
||||||
EXP.EvalExitOK1 clc
|
|
||||||
EXP.EvalExitRTS rts
|
EXP.EvalExitRTS rts
|
||||||
|
|
||||||
EXP.EvalExitSYN lda #ERR.SYNTAX.ERROR
|
EXP.EvalExitSYN lda #ERR.SYNTAX.ERROR
|
||||||
@ -136,8 +136,8 @@ EXP.EvalOperator lda EXP.Operator
|
|||||||
jsr EXP.Compute
|
jsr EXP.Compute
|
||||||
bcs EXP.EvalExitRTS
|
bcs EXP.EvalExitRTS
|
||||||
|
|
||||||
.7 jsr SRC.GetChar
|
.7 jsr SRC.GetNextChar
|
||||||
beq EXP.EvalExitOK1
|
beq EXP.EvalExitOK
|
||||||
|
|
||||||
cmp #' '
|
cmp #' '
|
||||||
beq EXP.EvalExitOK
|
beq EXP.EvalExitOK
|
||||||
|
@ -2,37 +2,55 @@ NEW
|
|||||||
PREFIX /A2OSX.BUILD
|
PREFIX /A2OSX.BUILD
|
||||||
AUTO 4,1
|
AUTO 4,1
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
FIO.Init ldy #S.PS.hARGS
|
FIO.Init >LDYA L.ASM.6502
|
||||||
|
FIO.LOAD.ASM.T >STYA ZPPtr2
|
||||||
|
|
||||||
|
ldy #S.PS.hARGS
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
>SYSCALL GetMemPtr.A
|
>SYSCALL GetMemPtr.A
|
||||||
|
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
|
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
|
ldx #$ff
|
||||||
|
|
||||||
.2 iny
|
.1 iny
|
||||||
lda (ZPPtr1),y
|
|
||||||
sta ASM.T.FILENAME,y
|
|
||||||
bne .2
|
|
||||||
|
|
||||||
ldx #0
|
|
||||||
|
|
||||||
.3 lda ASM.T.DEFAULT,x
|
|
||||||
sta ASM.T.FILENAME,y
|
|
||||||
beq FIO.LOAD.ASM.T
|
|
||||||
inx
|
inx
|
||||||
iny
|
lda (ZPPtr1),y
|
||||||
bra .3
|
sta ASM.T.FILENAME,x
|
||||||
*---------------------------------------
|
bne .1
|
||||||
FIO.LOAD.ASM.T ldy #ASM.T.hMem
|
|
||||||
|
lda #'.'
|
||||||
|
sta ASM.T.FILENAME,x
|
||||||
|
|
||||||
|
inx
|
||||||
|
|
||||||
|
lda #'T'
|
||||||
|
sta ASM.T.FILENAME,x
|
||||||
|
|
||||||
|
inx
|
||||||
|
|
||||||
|
lda #'.'
|
||||||
|
sta ASM.T.FILENAME,x
|
||||||
|
|
||||||
|
ldy #$ff
|
||||||
|
|
||||||
|
.3 iny
|
||||||
|
inx
|
||||||
|
lda (ZPPtr2),y
|
||||||
|
sta ASM.T.FILENAME,x
|
||||||
|
bne .3
|
||||||
|
|
||||||
|
ldy #ASM.T.hMem
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
beq .1
|
beq .4
|
||||||
|
|
||||||
>SYSCALL FreeMem.A
|
>SYSCALL FreeMem.A
|
||||||
ldy #ASM.T.hMem
|
ldy #ASM.T.hMem
|
||||||
lda #0
|
lda #0
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
.1 >PUSHW L.ASM.T.FILENAME
|
.4 >PUSHW L.ASM.T.FILENAME
|
||||||
>LDYA L.MSG.T.FILE
|
>LDYA L.MSG.T.FILE
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
|
|
||||||
@ -49,8 +67,7 @@ FIO.LOAD.ASM.T ldy #ASM.T.hMem
|
|||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
FIO.OpenFileA >SYSCALL GetMemPtr.A
|
FIO.OpenFile >STYA ZPPtr1
|
||||||
>STYA ZPPtr1
|
|
||||||
|
|
||||||
>PUSHW ZPPtr1
|
>PUSHW ZPPtr1
|
||||||
>LDYA L.MSG.SRC.FILE
|
>LDYA L.MSG.SRC.FILE
|
||||||
@ -121,7 +138,8 @@ FIO.OpenFileA >SYSCALL GetMemPtr.A
|
|||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
FIO.ReadLine stz SRC.BufPtr
|
FIO.ReadLine >LDYA ZPLineBuf
|
||||||
|
>STYA ZPLinePtr
|
||||||
|
|
||||||
ldy #SRC.COUNT
|
ldy #SRC.COUNT
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
@ -131,81 +149,94 @@ FIO.ReadLine stz SRC.BufPtr
|
|||||||
lda (pData),y
|
lda (pData),y
|
||||||
bmi .10
|
bmi .10
|
||||||
|
|
||||||
|
>PUSHW ZPLineBuf
|
||||||
>PUSHWI 256
|
>PUSHWI 256
|
||||||
>PUSHWI UsrBuf256
|
|
||||||
jsr FIO.ReadFromFile
|
jsr FIO.ReadFromFile
|
||||||
bcs .19
|
bcs .19
|
||||||
|
|
||||||
lda #0 replace ending $0D with $00
|
lda #0 replace ending $0D with $00
|
||||||
sta UsrBuf256,y
|
sta (ZPLineBuf),y
|
||||||
.19 rts
|
.19 rts
|
||||||
|
*---------------------------------------
|
||||||
.10 >PUSHWI 3
|
.10 >PUSHW ZPTmpBuf
|
||||||
>PUSHW L.SRC.Buffer
|
>PUSHWI 3
|
||||||
jsr FIO.ReadFromFile
|
jsr FIO.ReadFromFile
|
||||||
bcs .9
|
bcs .19
|
||||||
|
|
||||||
lda SRC.Buffer+1
|
ldy #1
|
||||||
|
lda (ZPTmpBuf),y
|
||||||
sta SRC.LINENUM
|
sta SRC.LINENUM
|
||||||
lda SRC.Buffer+2
|
iny
|
||||||
|
lda (ZPTmpBuf),y
|
||||||
sta SRC.LINENUM+1
|
sta SRC.LINENUM+1
|
||||||
|
|
||||||
lda SRC.Buffer LEN
|
lda (ZPTmpBuf) LEN
|
||||||
sec
|
sec
|
||||||
sbc #3
|
sbc #3
|
||||||
bcc .9 LEN should be at least 3
|
bcc .9 LEN should be at least 3
|
||||||
|
|
||||||
tay
|
tay
|
||||||
|
>PUSHW ZPTmpBuf
|
||||||
lda #0
|
lda #0
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>PUSHW L.SRC.BUFFER
|
|
||||||
jsr FIO.ReadFromFile
|
jsr FIO.ReadFromFile
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
>LDYA ZPTmpBuf
|
||||||
|
>STYA ZPPtr1
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
ldx #0
|
|
||||||
|
|
||||||
.1 lda SRC.Buffer,y
|
.1 lda (ZPPtr1)
|
||||||
|
inc ZPPtr1
|
||||||
|
bne .11
|
||||||
|
inc ZPPtr1+1
|
||||||
|
|
||||||
|
.11 tax
|
||||||
bmi .2
|
bmi .2
|
||||||
|
|
||||||
sta UsrBuf256,x
|
sta (ZPLineBuf),y
|
||||||
beq .8 Ending 00
|
beq .8 Ending 00
|
||||||
inx
|
|
||||||
beq .99
|
|
||||||
iny
|
iny
|
||||||
bne .1
|
bne .1
|
||||||
bra .99
|
bra .99
|
||||||
|
|
||||||
.2 cmp #$C0 REPEAT char?
|
.2 cmp #$C0 REPEAT char?
|
||||||
bne .5
|
bne .5
|
||||||
iny
|
|
||||||
beq .99
|
lda (ZPPtr1) Get Repeat Count
|
||||||
lda SRC.Buffer,y
|
inc ZPPtr1
|
||||||
iny
|
|
||||||
beq .99
|
|
||||||
.3 pha
|
|
||||||
lda SRC.Buffer,y
|
|
||||||
sta UsrBuf256,x
|
|
||||||
pla
|
|
||||||
inx
|
|
||||||
beq .99
|
|
||||||
dec
|
|
||||||
bne .3
|
bne .3
|
||||||
|
inc ZPPtr1+1
|
||||||
|
|
||||||
|
.3 tax
|
||||||
|
|
||||||
|
lda (ZPPtr1) Get Repeat Char
|
||||||
|
inc ZPPtr1
|
||||||
|
bne .3
|
||||||
|
inc ZPPtr1+1
|
||||||
|
|
||||||
|
.4 sta (ZPLineBuf),y
|
||||||
|
|
||||||
iny
|
iny
|
||||||
bne .1
|
beq .99
|
||||||
|
dex
|
||||||
|
bne .4
|
||||||
|
|
||||||
bra .99
|
bra .99
|
||||||
|
|
||||||
.5 and #$3F Compute blank count
|
.5 and #$3F Compute blank count
|
||||||
.6 pha
|
tax
|
||||||
lda #$20
|
lda #$20
|
||||||
sta UsrBuf256,x
|
|
||||||
pla
|
.6 sta (ZPLineBuf),y
|
||||||
inx
|
|
||||||
beq .99
|
|
||||||
dec
|
|
||||||
bne .6
|
|
||||||
iny
|
iny
|
||||||
bne .1
|
beq .99
|
||||||
bra .99
|
|
||||||
|
dex
|
||||||
|
bne .6
|
||||||
|
bra .1
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
.9 rts
|
.9 rts
|
||||||
@ -223,8 +254,10 @@ FIO.ReadFromFile ldy #SRC.COUNT
|
|||||||
>PUSHA
|
>PUSHA
|
||||||
>SYSCALL FRead
|
>SYSCALL FRead
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
tax $100 byte transfered ?
|
tax $100 byte transfered ?
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
lda #ERR.LINE.TOO.LONG
|
lda #ERR.LINE.TOO.LONG
|
||||||
sec
|
sec
|
||||||
.9 rts
|
.9 rts
|
||||||
|
@ -2,20 +2,17 @@ NEW
|
|||||||
PREFIX /A2OSX.BUILD
|
PREFIX /A2OSX.BUILD
|
||||||
AUTO 4,1
|
AUTO 4,1
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
SRC.PrintLine ldy #ASM.MACRO.ON
|
SRC.PrintLine >LDA.G ASM.MACRO.ON
|
||||||
lda (pData),y
|
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
ldy #ASM.LI.CON
|
>LDA.G ASM.LI.CON
|
||||||
lda (pData),y
|
|
||||||
bpl .9
|
bpl .9
|
||||||
bmi .8
|
bmi .8
|
||||||
|
|
||||||
.1 ldy #ASM.LI.ON
|
.1 >LDA.G ASM.LI.ON
|
||||||
lda (pData),y
|
* bpl .9
|
||||||
bpl .9
|
|
||||||
|
|
||||||
.8 >PUSHWI UsrBuf256
|
.8 >PUSHW ZPLineBuf
|
||||||
>PUSHW SRC.LINENUM
|
>PUSHW SRC.LINENUM
|
||||||
ldy #ASM.PC+1
|
ldy #ASM.PC+1
|
||||||
>PUSHB (pData),y
|
>PUSHB (pData),y
|
||||||
@ -25,49 +22,52 @@ SRC.PrintLine ldy #ASM.MACRO.ON
|
|||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
.9 rts
|
.9 rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
SRC.PrintLineErr ldx #0
|
SRC.PrintLineErr >LDYA ZPLineBuf
|
||||||
.1 lda UsrBuf256,x
|
>SYSCALL PrintF.YA
|
||||||
beq .2
|
bcs .9
|
||||||
phx
|
|
||||||
>SYSCALL PutChar.A
|
|
||||||
plx
|
|
||||||
inx
|
|
||||||
bcc .1
|
|
||||||
rts
|
|
||||||
|
|
||||||
.2 lda #13
|
lda #13
|
||||||
>SYSCALL PutChar.A
|
>SYSCALL PutChar.A
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldx #0
|
lda #10
|
||||||
.3 lda UsrBuf256,x
|
>SYSCALL PutChar.A
|
||||||
beq .5
|
bcs .9
|
||||||
inx
|
|
||||||
cpx SRC.BufPtr
|
lda ZPLinePtr
|
||||||
|
sec
|
||||||
|
sbc ZPLineBuf
|
||||||
|
tax
|
||||||
beq .4
|
beq .4
|
||||||
phx
|
|
||||||
|
.3 phx
|
||||||
lda #'-'
|
lda #'-'
|
||||||
>SYSCALL PutChar.A
|
>SYSCALL PutChar.A
|
||||||
plx
|
plx
|
||||||
bcs .9
|
bcs .9
|
||||||
bra .3
|
dex
|
||||||
|
bne .3
|
||||||
|
|
||||||
.4 lda #'^'
|
.4 lda #'^'
|
||||||
phx
|
phy
|
||||||
>SYSCALL PutChar.A
|
>SYSCALL PutChar.A
|
||||||
plx
|
ply
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.5 lda #13
|
.5 lda #13
|
||||||
>SYSCALL PutChar.A
|
>SYSCALL PutChar.A
|
||||||
|
lda #10
|
||||||
|
>SYSCALL PutChar.A
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
SRC.ParseLine ldx UsrBuf256
|
SRC.ParseLine lda (ZPLineBuf)
|
||||||
|
tax
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
cpx #'*' Comment?
|
cmp #'*' Comment?
|
||||||
beq .1
|
beq .1
|
||||||
cpx #';' Comment?
|
cmp #';' Comment?
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
ldy #ASM.DO.ON
|
ldy #ASM.DO.ON
|
||||||
@ -91,12 +91,14 @@ SRC.ParseLine ldx UsrBuf256
|
|||||||
.2 jsr SRC.ParseLine.SymG
|
.2 jsr SRC.ParseLine.SymG
|
||||||
.3 bcs SRC.ParseLine.Err
|
.3 bcs SRC.ParseLine.Err
|
||||||
|
|
||||||
.4 jsr SRC.GetCharNB Scan for an Opcode...
|
.4 jsr SRC.GetNextCharNB Scan for an Opcode...
|
||||||
beq SRC.ParseLine.Ok
|
beq SRC.ParseLine.Ok
|
||||||
|
|
||||||
cmp #'.'
|
cmp #'.'
|
||||||
bne .5
|
bne .5
|
||||||
|
|
||||||
|
jsr SRC.GetNextChar Skip .
|
||||||
|
|
||||||
jsr SRC.ParseLine.Dir
|
jsr SRC.ParseLine.Dir
|
||||||
bcs SRC.ParseLine.Err
|
bcs SRC.ParseLine.Err
|
||||||
bra SRC.ParseLine.Ok
|
bra SRC.ParseLine.Ok
|
||||||
@ -108,11 +110,9 @@ SRC.ParseLine ldx UsrBuf256
|
|||||||
bcs SRC.ParseLine.Err
|
bcs SRC.ParseLine.Err
|
||||||
bra SRC.ParseLine.Ok
|
bra SRC.ParseLine.Ok
|
||||||
|
|
||||||
.6 dec SRC.BufPtr Back one char...
|
.6 jsr SRC.ParseLine.OpCode
|
||||||
jsr SRC.ParseLine.OpCode
|
|
||||||
bcs SRC.ParseLine.Err
|
bcs SRC.ParseLine.Err
|
||||||
|
|
||||||
|
|
||||||
SRC.ParseLine.Ok lda SRC.GLabel.New
|
SRC.ParseLine.Ok lda SRC.GLabel.New
|
||||||
bpl .8
|
bpl .8
|
||||||
|
|
||||||
@ -146,7 +146,7 @@ SRC.ParseLine.Ok lda SRC.GLabel.New
|
|||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
SRC.ParseLine.Inv lda #ERR.INVALID.LABEL
|
SRC.ParseLine.Inv lda #ERR.INV.LABEL
|
||||||
SRC.ParseLine.Err sec
|
SRC.ParseLine.Err sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@ -154,13 +154,13 @@ SRC.ParseLine.Redef lda #ERR.SYMBOL.REDEFINE
|
|||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
SRC.ParseLine.SymP jsr SRC.GetChar
|
SRC.ParseLine.SymP jsr SRC.GetNextChar
|
||||||
beq SRC.ParseLine.SymE
|
beq SRC.ParseLine.SymE
|
||||||
jsr SRC.GetDecimal
|
jsr SRC.GetDecimal
|
||||||
bcs SRC.ParseLine.SymE
|
bcs SRC.ParseLine.SymE
|
||||||
jmp SYM.AddPrivate
|
jmp SYM.AddPrivate
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
SRC.ParseLine.SymL jsr SRC.GetChar
|
SRC.ParseLine.SymL jsr SRC.GetNextChar
|
||||||
beq SRC.ParseLine.SymE
|
beq SRC.ParseLine.SymE
|
||||||
jsr SRC.GetDecimal
|
jsr SRC.GetDecimal
|
||||||
bcs SRC.ParseLine.SymE
|
bcs SRC.ParseLine.SymE
|
||||||
@ -199,7 +199,7 @@ SRC.ParseLine.SymL jsr SRC.GetChar
|
|||||||
bcc SRC.ParseLine.SymR
|
bcc SRC.ParseLine.SymR
|
||||||
jmp SYM.AddLToGBlock
|
jmp SYM.AddLToGBlock
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
SRC.ParseLine.SymE lda #ERR.INVALID.LABEL
|
SRC.ParseLine.SymE lda #ERR.INV.LABEL
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@ -238,11 +238,12 @@ SRC.ParseLine.SymG >LDYA L.SRC.GLabel.Len
|
|||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
SRC.ParseLine.Dir >LDYA L.T.DIRECTIVES
|
SRC.ParseLine.Dir >LDYA L.T.DIRECTIVES
|
||||||
jsr SRC.GetKeyword
|
jsr SRC.GetKeyword
|
||||||
|
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jmp (J.DIRECTIVES,x)
|
jmp (J.DIRECTIVES,x)
|
||||||
|
|
||||||
.9 lda #ERR.INVALID.DIRECTIVE
|
.9 lda #ERR.INV.DIRECTIVE
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
@ -255,7 +256,7 @@ SRC.ParseLine.Add.Macro
|
|||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
SRC.ParseLine.OpCode
|
SRC.ParseLine.OpCode
|
||||||
jsr SRC.GetArg
|
jsr SRC.CheckBlank
|
||||||
bcc .11
|
bcc .11
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@ -264,7 +265,7 @@ SRC.ParseLine.OpCode
|
|||||||
>SYSCALL GetMemPtr.A
|
>SYSCALL GetMemPtr.A
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
|
|
||||||
ldy #ASM.T.O setup Ptr to Opcodes
|
ldy #ASM.T.O setup Ptr2 to Opcodes
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
clc
|
clc
|
||||||
adc ZPPtr1
|
adc ZPPtr1
|
||||||
@ -274,7 +275,7 @@ SRC.ParseLine.OpCode
|
|||||||
adc ZPPtr1+1
|
adc ZPPtr1+1
|
||||||
sta ZPPtr2+1
|
sta ZPPtr2+1
|
||||||
|
|
||||||
ldy #ASM.T.R setup Ptr to Registers
|
ldy #ASM.T.R setup Ptr3 to Registers
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
clc
|
clc
|
||||||
adc ZPPtr1
|
adc ZPPtr1
|
||||||
@ -285,20 +286,20 @@ SRC.ParseLine.OpCode
|
|||||||
sta ZPPtr3+1
|
sta ZPPtr3+1
|
||||||
|
|
||||||
|
|
||||||
.10 lda (ZPPtr2)
|
.10 lda (ZPPtr2) End Of OpCode List
|
||||||
ldy #1
|
|
||||||
ora (ZPPtr2),y
|
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
ldx #$FF
|
lda (ZPPtr2) Opcode Len
|
||||||
|
tax
|
||||||
|
|
||||||
.1 inx
|
ldy #0
|
||||||
lda SRC.Buffer,x
|
|
||||||
|
.1 lda (ZPLinePtr),y
|
||||||
iny
|
iny
|
||||||
cmp (ZPPtr2),y
|
cmp (ZPPtr2),y
|
||||||
bne .7
|
bne .7
|
||||||
|
|
||||||
cpx SRC.Buffer
|
dex
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
jsr SRC.ParseLine.AM
|
jsr SRC.ParseLine.AM
|
||||||
@ -355,14 +356,14 @@ SRC.ParseLine.OpCode
|
|||||||
sta ZPPtr2+1
|
sta ZPPtr2+1
|
||||||
bra .10
|
bra .10
|
||||||
|
|
||||||
.9 lda #ERR.INVALID.OPCODE
|
.9 lda #ERR.INV.OPCODE
|
||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
SRC.ParseLine.AM stz SRC.AM.ID
|
SRC.ParseLine.AM stz SRC.AM.ID
|
||||||
stz SRC.AM.StrBuf
|
stz SRC.AM.StrBuf
|
||||||
|
|
||||||
.1 jsr SRC.GetCharUC any arg immediately after ' '?
|
.1 jsr SRC.GetNextCharUC any arg immediately after ' '?
|
||||||
beq .8 no, AM.ID=0 (implied)
|
beq .8 no, AM.ID=0 (implied)
|
||||||
|
|
||||||
cmp #' ' another space ?
|
cmp #' ' another space ?
|
||||||
@ -390,15 +391,17 @@ SRC.ParseLine.AM stz SRC.AM.ID
|
|||||||
.21 jsr SRC.IsLetter Any register?
|
.21 jsr SRC.IsLetter Any register?
|
||||||
bcs .70 no, try something else
|
bcs .70 no, try something else
|
||||||
|
|
||||||
ldx SRC.BufPtr
|
ldx ZPLinePtr
|
||||||
stx SRC.BufPtrSave
|
stx SRC.LinePtrSave
|
||||||
|
ldx ZPLinePtr+1
|
||||||
|
stx SRC.LinePtrSave+1
|
||||||
|
|
||||||
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
|
||||||
|
|
||||||
.3 jsr SRC.GetCharUC
|
.3 jsr SRC.GetNextCharUC
|
||||||
beq .41
|
beq .4
|
||||||
jsr SRC.IsLetterOrDigit
|
jsr SRC.IsLetterOrDigit
|
||||||
bcs .4
|
bcs .4
|
||||||
inc SRC.AM.tmpBuf
|
inc SRC.AM.tmpBuf
|
||||||
@ -406,9 +409,7 @@ SRC.ParseLine.AM stz SRC.AM.ID
|
|||||||
sta SRC.AM.tmpBuf,x
|
sta SRC.AM.tmpBuf,x
|
||||||
bra .3
|
bra .3
|
||||||
|
|
||||||
.4 dec SRC.BufPtr back one char
|
.4 ldy #0
|
||||||
|
|
||||||
.41 ldy #0
|
|
||||||
|
|
||||||
.5 lda (ZPPtr3),y
|
.5 lda (ZPPtr3),y
|
||||||
beq .71 last register ?
|
beq .71 last register ?
|
||||||
@ -447,12 +448,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
|
.71 ldx SRC.LinePtrSave Does not match a register,restore Ptr
|
||||||
sta SRC.BufPtr
|
stx ZPLinePtr
|
||||||
|
stx SRC.LinePtrSave+1
|
||||||
|
stx ZPLinePtr+1
|
||||||
|
|
||||||
.70 dec SRC.BufPtr back one char
|
|
||||||
|
|
||||||
jsr EXP.Eval
|
.70 jsr EXP.Eval
|
||||||
|
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
@ -475,7 +477,7 @@ SRC.ParseLine.AM stz SRC.AM.ID
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
.9 lda #ERR.INVALID.AM.SYN
|
.9 lda #ERR.INV.AM.SYN
|
||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
@ -483,23 +485,30 @@ SRC.GetDecimal stz SRC.ACC+1
|
|||||||
stz SRC.ACC+2
|
stz SRC.ACC+2
|
||||||
stz SRC.ACC+3
|
stz SRC.ACC+3
|
||||||
|
|
||||||
jsr SRC.GetChar
|
lda (ZPLinePtr)
|
||||||
beq .99
|
beq .99
|
||||||
|
|
||||||
jsr SRC.IsDigit10
|
jsr SRC.IsDigit10
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
and #$0F
|
and #$0F
|
||||||
sta SRC.ACC
|
sta SRC.ACC
|
||||||
|
|
||||||
.1 jsr SRC.GetChar
|
.1 jsr SRC.GetNextChar
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
cmp #' '
|
cmp #' '
|
||||||
beq .88
|
beq .8
|
||||||
|
|
||||||
jsr SRC.IsEXPReserved
|
jsr SRC.IsEXPReserved
|
||||||
bcc .88
|
bcc .8
|
||||||
|
|
||||||
jsr SRC.IsAMReserved
|
jsr SRC.IsAMReserved
|
||||||
bcc .88
|
bcc .8
|
||||||
|
|
||||||
jsr SRC.IsDigit10
|
jsr SRC.IsDigit10
|
||||||
bcs .99
|
bcs .9
|
||||||
|
|
||||||
and #$0F
|
and #$0F
|
||||||
|
|
||||||
pha
|
pha
|
||||||
@ -522,7 +531,6 @@ SRC.GetDecimal stz SRC.ACC+1
|
|||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.88 dec SRC.BufPtr Back One Char
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@ -534,21 +542,21 @@ SRC.GetHex stz SRC.ACC+1
|
|||||||
stz SRC.ACC+2
|
stz SRC.ACC+2
|
||||||
stz SRC.ACC+3
|
stz SRC.ACC+3
|
||||||
|
|
||||||
jsr SRC.GetChar
|
lda (ZPLinePtr)
|
||||||
beq .99
|
beq .99
|
||||||
jsr SRC.IsDigit16
|
jsr SRC.IsDigit16
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
sta SRC.ACC
|
sta SRC.ACC
|
||||||
|
|
||||||
.1 jsr SRC.GetChar
|
.1 jsr SRC.GetNextChar
|
||||||
beq .8
|
beq .8
|
||||||
cmp #' '
|
cmp #' '
|
||||||
beq .88
|
beq .8
|
||||||
jsr SRC.IsEXPReserved
|
jsr SRC.IsEXPReserved
|
||||||
bcc .88
|
bcc .8
|
||||||
jsr SRC.IsAMReserved
|
jsr SRC.IsAMReserved
|
||||||
bcc .88
|
bcc .8
|
||||||
jsr SRC.IsDigit16
|
jsr SRC.IsDigit16
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
@ -564,7 +572,6 @@ 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
|
||||||
|
|
||||||
@ -580,23 +587,29 @@ SRC.GetOctal stz SRC.ACC+1
|
|||||||
stz SRC.ACC+2
|
stz SRC.ACC+2
|
||||||
stz SRC.ACC+3
|
stz SRC.ACC+3
|
||||||
|
|
||||||
jsr SRC.GetChar
|
lda (ZPLinePtr)
|
||||||
beq .99
|
beq .99
|
||||||
|
|
||||||
jsr SRC.IsDigit8
|
jsr SRC.IsDigit8
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
and #$0F
|
and #$0F
|
||||||
sta SRC.ACC
|
sta SRC.ACC
|
||||||
|
|
||||||
.1 jsr SRC.GetChar
|
.1 jsr SRC.GetNextChar
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
cmp #' '
|
cmp #' '
|
||||||
beq .88
|
beq .8
|
||||||
|
|
||||||
jsr SRC.IsEXPReserved
|
jsr SRC.IsEXPReserved
|
||||||
bcc .88
|
bcc .8
|
||||||
|
|
||||||
jsr SRC.IsAMReserved
|
jsr SRC.IsAMReserved
|
||||||
bcc .88
|
bcc .8
|
||||||
|
|
||||||
jsr SRC.IsDigit8
|
jsr SRC.IsDigit8
|
||||||
bcs .99
|
bcs .9
|
||||||
|
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
@ -615,7 +628,6 @@ 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
|
||||||
|
|
||||||
@ -631,25 +643,33 @@ SRC.GetBinary stz SRC.ACC+1
|
|||||||
stz SRC.ACC+2
|
stz SRC.ACC+2
|
||||||
stz SRC.ACC+3
|
stz SRC.ACC+3
|
||||||
|
|
||||||
jsr SRC.GetChar
|
lda (ZPLinePtr)
|
||||||
beq .99
|
beq .99
|
||||||
|
|
||||||
cmp #'1'
|
cmp #'1'
|
||||||
beq .10
|
beq .10
|
||||||
|
|
||||||
cmp #'0'
|
cmp #'0'
|
||||||
bne .99
|
bne .99
|
||||||
|
|
||||||
.10 and #$01
|
.10 and #$01
|
||||||
sta SRC.ACC
|
sta SRC.ACC
|
||||||
|
|
||||||
.1 jsr SRC.GetChar
|
.1 jsr SRC.GetNextChar
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
cmp #' '
|
cmp #' '
|
||||||
beq .88
|
beq .8
|
||||||
|
|
||||||
jsr SRC.IsEXPReserved
|
jsr SRC.IsEXPReserved
|
||||||
bcc .88
|
bcc .8
|
||||||
|
|
||||||
jsr SRC.IsAMReserved
|
jsr SRC.IsAMReserved
|
||||||
bcc .88
|
bcc .8
|
||||||
|
|
||||||
cmp #'1'
|
cmp #'1'
|
||||||
beq .11
|
beq .11
|
||||||
|
|
||||||
cmp #'0'
|
cmp #'0'
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
@ -662,7 +682,6 @@ 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
|
||||||
|
|
||||||
@ -676,7 +695,7 @@ SRC.GetBinary stz SRC.ACC+1
|
|||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
SRC.GetLabel >STYA ZPPtr1
|
SRC.GetLabel >STYA ZPPtr1
|
||||||
|
|
||||||
jsr SRC.GetCharUC
|
lda (ZPLinePtr)
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
jsr SRC.IsLetter
|
jsr SRC.IsLetter
|
||||||
@ -685,7 +704,7 @@ SRC.GetLabel >STYA ZPPtr1
|
|||||||
ldy #1
|
ldy #1
|
||||||
sta (ZPPtr1),y
|
sta (ZPPtr1),y
|
||||||
|
|
||||||
.1 jsr SRC.GetCharUC
|
.1 jsr SRC.GetNextCharUC
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
jsr SRC.IsLetterOrDigit
|
jsr SRC.IsLetterOrDigit
|
||||||
@ -697,11 +716,11 @@ SRC.GetLabel >STYA ZPPtr1
|
|||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
cmp #' '
|
cmp #' '
|
||||||
beq .88
|
beq .8
|
||||||
jsr SRC.IsEXPReserved
|
jsr SRC.IsEXPReserved
|
||||||
bcc .88
|
bcc .8
|
||||||
jsr SRC.IsAMReserved
|
jsr SRC.IsAMReserved
|
||||||
bcc .88
|
bcc .8
|
||||||
|
|
||||||
.9 lda #ERR.SYNTAX.ERROR
|
.9 lda #ERR.SYNTAX.ERROR
|
||||||
sec
|
sec
|
||||||
@ -712,73 +731,62 @@ SRC.GetLabel >STYA ZPPtr1
|
|||||||
cpy #SRC.GLABEL.MAXLEN
|
cpy #SRC.GLABEL.MAXLEN
|
||||||
bcc .1 if equ Carry is set
|
bcc .1 if equ Carry is set
|
||||||
|
|
||||||
.88 dec SRC.BufPtr Back One Char
|
|
||||||
.8 tya
|
.8 tya
|
||||||
sta (ZPPtr1)
|
sta (ZPPtr1)
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
SRC.GetKeyword >STYA ZPPtr1
|
SRC.GetKeyword >STYA ZPPtr1 KeyWord table
|
||||||
|
|
||||||
jsr SRC.GetArg
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
stz SRC.Keyword.ID
|
stz SRC.Keyword.ID
|
||||||
|
|
||||||
ldy #0
|
.1 lda (ZPPtr1)
|
||||||
|
beq .9 End Of table
|
||||||
|
|
||||||
.3 lda (ZPPtr1),y
|
tax KW len
|
||||||
beq .9
|
|
||||||
cmp SRC.Buffer
|
|
||||||
bne .6
|
|
||||||
phy
|
|
||||||
|
|
||||||
ldx #0
|
.2 ldy #0
|
||||||
.4 iny
|
|
||||||
inx
|
|
||||||
lda (ZPPtr1),y
|
|
||||||
cmp SRC.Buffer,x
|
|
||||||
bne .5
|
|
||||||
cpx SRC.Buffer
|
|
||||||
bne .4
|
|
||||||
|
|
||||||
ply
|
.3 lda (ZPLinePtr),y
|
||||||
|
beq .5
|
||||||
|
jsr SRC.IsLetter
|
||||||
|
bcs .5
|
||||||
|
|
||||||
ldx SRC.Keyword.ID
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.5 ply
|
|
||||||
|
|
||||||
.6 tya
|
|
||||||
sec Add keyword Len+1
|
|
||||||
adc (ZPPtr1),y
|
|
||||||
tay
|
|
||||||
inc SRC.Keyword.ID
|
|
||||||
inc SRC.Keyword.ID
|
|
||||||
bra .3
|
|
||||||
|
|
||||||
.9 sec
|
|
||||||
rts
|
|
||||||
*---------------------------------------
|
|
||||||
SRC.GetArg jsr SRC.GetCharUC
|
|
||||||
beq .9
|
|
||||||
|
|
||||||
sta SRC.Buffer+1
|
|
||||||
ldy #1
|
|
||||||
|
|
||||||
.1 jsr SRC.GetCharUC
|
|
||||||
beq .2
|
|
||||||
cmp #' '
|
|
||||||
beq .2
|
|
||||||
iny
|
iny
|
||||||
sta SRC.Buffer,y
|
cmp (ZPPtr1),y
|
||||||
bra .1
|
bne .5
|
||||||
|
|
||||||
.2 sty SRC.Buffer
|
dex
|
||||||
|
bne .3
|
||||||
|
|
||||||
|
lda (ZPLinePtr),y All chars match...
|
||||||
|
beq .4 End of Line ?
|
||||||
|
|
||||||
|
jsr SRC.IsLetter
|
||||||
|
bcc .5 Additional letters...
|
||||||
|
|
||||||
|
.4 lda ZPLinePtr
|
||||||
|
clc
|
||||||
|
adc (ZPPtr1)
|
||||||
|
sta ZPLinePtr
|
||||||
|
bcc .41
|
||||||
|
inc ZPLinePtr+1
|
||||||
|
.41 ldx SRC.Keyword.ID
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
.5 lda (ZPPtr1)
|
||||||
|
sec Add keyword Len+1
|
||||||
|
adc ZPPtr1
|
||||||
|
sta ZPPtr1
|
||||||
|
bcc .6
|
||||||
|
|
||||||
|
inc ZPPtr1+1
|
||||||
|
|
||||||
|
.6 inc SRC.Keyword.ID
|
||||||
|
inc SRC.Keyword.ID
|
||||||
|
bra .1
|
||||||
|
|
||||||
.9 sec
|
.9 sec
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
@ -860,13 +868,29 @@ SRC.IsDigit8 cmp #'0'
|
|||||||
.9 sec
|
.9 sec
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
SRC.GetCharNB jsr SRC.GetCharUC
|
SRC.CheckBlank lda (ZPLinePtr)
|
||||||
beq .9
|
beq .9
|
||||||
cmp #' '
|
cmp #' '
|
||||||
beq SRC.GetCharNB
|
bne .9
|
||||||
|
|
||||||
|
.1 jsr SRC.GetNextChar
|
||||||
|
beq .9
|
||||||
|
|
||||||
|
cmp #' '
|
||||||
|
beq .1
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.9 sec
|
||||||
|
rts
|
||||||
|
*---------------------------------------
|
||||||
|
SRC.GetNextCharNB jsr SRC.GetNextCharUC
|
||||||
|
beq .9
|
||||||
|
cmp #' '
|
||||||
|
beq SRC.GetNextCharNB
|
||||||
.9 rts
|
.9 rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
SRC.GetCharUC jsr SRC.GetChar
|
SRC.GetNextCharUC jsr SRC.GetNextChar
|
||||||
beq .9
|
beq .9
|
||||||
cmp #'a'
|
cmp #'a'
|
||||||
bcc .9
|
bcc .9
|
||||||
@ -875,10 +899,24 @@ SRC.GetCharUC jsr SRC.GetChar
|
|||||||
eor #$20 to Uppercase
|
eor #$20 to Uppercase
|
||||||
.9 rts
|
.9 rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
SRC.GetChar ldx SRC.BufPtr
|
SRC.GetCharUC lda (ZPLinePtr)
|
||||||
lda UsrBuf256,x
|
|
||||||
beq .9
|
beq .9
|
||||||
inc SRC.BufPtr if 255, will make Z
|
cmp #'a'
|
||||||
|
bcc .9
|
||||||
|
cmp #'z'+1
|
||||||
|
bcs .9
|
||||||
|
eor #$20 to Uppercase
|
||||||
|
.9 rts
|
||||||
|
*---------------------------------------
|
||||||
|
SRC.GetNextChar lda (ZPLinePtr)
|
||||||
|
beq .9
|
||||||
|
|
||||||
|
inc ZPLinePtr
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
inc ZPLinePtr+1
|
||||||
|
|
||||||
|
.1 lda (ZPLinePtr)
|
||||||
.9 rts
|
.9 rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
SRC.ACC10 lda SRC.ACC ACC*2-> ACC & ACCTMP
|
SRC.ACC10 lda SRC.ACC ACC*2-> ACC & ACCTMP
|
||||||
@ -922,7 +960,6 @@ SRC.ACC10 lda SRC.ACC ACC*2-> ACC & ACCTMP
|
|||||||
sta SRC.ACC+3 CS if overflow
|
sta SRC.ACC+3 CS if overflow
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.BUILD/BIN/DEV/ASM.S.SRC
|
SAVE /A2OSX.BUILD/BIN/DEV/ASM.S.SRC
|
||||||
|
216
BIN/ASM.S.txt
216
BIN/ASM.S.txt
@ -12,8 +12,11 @@ AUTO 4,1
|
|||||||
ZPPtr1 .EQ ZPBIN
|
ZPPtr1 .EQ ZPBIN
|
||||||
ZPPtr2 .EQ ZPBIN+2
|
ZPPtr2 .EQ ZPBIN+2
|
||||||
ZPPtr3 .EQ ZPBIN+4
|
ZPPtr3 .EQ ZPBIN+4
|
||||||
ZPBlockPtr .EQ ZPBIN+6
|
ZPLineBuf .EQ ZPBIN+6
|
||||||
ZPSymbolPtr .EQ ZPBIN+8
|
ZPLinePtr .EQ ZPBIN+8
|
||||||
|
ZPBlockPtr .EQ ZPBIN+10
|
||||||
|
ZPSymbolPtr .EQ ZPBIN+12
|
||||||
|
ZPTmpBuf .EQ ZPBIN+14
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
ASM.T.AM .EQ 0
|
ASM.T.AM .EQ 0
|
||||||
ASM.T.R .EQ 2
|
ASM.T.R .EQ 2
|
||||||
@ -37,18 +40,18 @@ ERR.SYNTAX.ERROR .EQ $A0
|
|||||||
ERR.SYM.TOO.LONG .EQ $A1
|
ERR.SYM.TOO.LONG .EQ $A1
|
||||||
ERR.VAL.TOO.BIG .EQ $A2
|
ERR.VAL.TOO.BIG .EQ $A2
|
||||||
ERR.LINE.TOO.LONG .EQ $A3
|
ERR.LINE.TOO.LONG .EQ $A3
|
||||||
ERR.INVALID.LABEL .EQ $A4
|
ERR.INV.LABEL .EQ $A4
|
||||||
ERR.INVALID.DIRECTIVE .EQ $A5
|
ERR.INV.DIRECTIVE .EQ $A5
|
||||||
ERR.INVALID.OPCODE .EQ $A6
|
ERR.INV.OPCODE .EQ $A6
|
||||||
ERR.INVALID.AM.SYN .EQ $A7
|
ERR.INV.AM.SYN .EQ $A7
|
||||||
ERR.INVALID.AM.4.OC .EQ $A8
|
ERR.INV.AM.4.OC .EQ $A8
|
||||||
ERR.RANGE .EQ $A9
|
ERR.RANGE .EQ $A9
|
||||||
ERR.UNDEF.SYMBOL .EQ $AA
|
ERR.UNDEF.SYMBOL .EQ $AA
|
||||||
ERR.SYMBOL.REDEFINE .EQ $AB
|
ERR.SYMBOL.REDEFINE .EQ $AB
|
||||||
ERR.TOO.MANY.DO .EQ $AC
|
ERR.TOO.MANY.DO .EQ $AC
|
||||||
ERR.MISSING.EXP .EQ $B0
|
ERR.MISSING.EXP .EQ $B0
|
||||||
ERR.EXP.SYN.ERROR .EQ $B1
|
ERR.EXP.SYN.ERROR .EQ $B1
|
||||||
ERR.INVALID.MACRO.DEF .EQ $E0
|
ERR.INV.MACRO.DEF .EQ $E0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -59,8 +62,8 @@ CS.START cld
|
|||||||
.DA 0
|
.DA 0
|
||||||
.DA CS.END-CS.START CS
|
.DA CS.END-CS.START CS
|
||||||
.DA DS.END-DS.START DS
|
.DA DS.END-DS.START DS
|
||||||
.DA #128 SS
|
.DA #0 SS
|
||||||
.DA #10 ZP
|
.DA #16 ZP
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Relocation Table
|
* Relocation Table
|
||||||
@ -85,7 +88,7 @@ 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.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.ASM.6502 .DA ASM.6502
|
||||||
L.ASM.T.FILENAME .DA ASM.T.FILENAME
|
L.ASM.T.FILENAME .DA ASM.T.FILENAME
|
||||||
L.FIO.Stat .DA FIO.Stat
|
L.FIO.Stat .DA FIO.Stat
|
||||||
L.T.DIRECTIVES .DA T.DIRECTIVES
|
L.T.DIRECTIVES .DA T.DIRECTIVES
|
||||||
@ -161,7 +164,6 @@ CS.INIT ldy #S.PS.ARGC
|
|||||||
ldy #SRC.hFILENAME
|
ldy #SRC.hFILENAME
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
|
|
||||||
jsr FIO.Init
|
jsr FIO.Init
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
@ -170,6 +172,20 @@ CS.INIT ldy #S.PS.ARGC
|
|||||||
|
|
||||||
jsr DIR.Init
|
jsr DIR.Init
|
||||||
|
|
||||||
|
>LDYAI 256
|
||||||
|
>SYSCALL GetMem.YA
|
||||||
|
bcs .9
|
||||||
|
>STYA ZPLineBuf
|
||||||
|
txa
|
||||||
|
>STA.G SRC.hLineBuf
|
||||||
|
|
||||||
|
>LDYAI 256
|
||||||
|
>SYSCALL GetMem.YA
|
||||||
|
bcs .9
|
||||||
|
>STYA ZPTmpBuf
|
||||||
|
txa
|
||||||
|
>STA.G SRC.hTmpBuf
|
||||||
|
|
||||||
* lda (pPs)
|
* lda (pPs)
|
||||||
* ora #S.PS.F.EVENT
|
* ora #S.PS.F.EVENT
|
||||||
* sta (pPs)
|
* sta (pPs)
|
||||||
@ -211,12 +227,12 @@ CS.RUN >SYSCALL GetChar
|
|||||||
ldy #SRC.hFILENAME
|
ldy #SRC.hFILENAME
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
|
|
||||||
jsr FIO.OpenFileA
|
>SYSCALL GetMemPtr.A
|
||||||
|
|
||||||
|
jsr FIO.OpenFile
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
.10 stz UsrBuf256
|
.10 jsr FIO.ReadLine
|
||||||
>DEBUG
|
|
||||||
jsr FIO.ReadLine
|
|
||||||
bcc .2
|
bcc .2
|
||||||
cmp #$4C End Of File?
|
cmp #$4C End Of File?
|
||||||
bne .9
|
bne .9
|
||||||
@ -273,13 +289,22 @@ CS.QUIT jsr FIO.FileClose
|
|||||||
|
|
||||||
jsr SYM.Quit
|
jsr SYM.Quit
|
||||||
|
|
||||||
ldy #ASM.T.hMem
|
>LDA.G ASM.T.hMem
|
||||||
lda (pData),y
|
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
>SYSCALL FreeMem.A
|
>SYSCALL FreeMem.A
|
||||||
|
|
||||||
.1 ldy #SRC.hFILENAME
|
.1 >LDA.G SRC.hFILENAME
|
||||||
lda (pData),y
|
beq .2
|
||||||
|
|
||||||
|
>SYSCALL FreeMem.A
|
||||||
|
|
||||||
|
.2 >LDA.G SRC.hLineBuf
|
||||||
|
beq .3
|
||||||
|
|
||||||
|
>SYSCALL FreeMem.A
|
||||||
|
|
||||||
|
.3 >LDA.G SRC.hTmpBuf
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
>SYSCALL FreeMem.A
|
>SYSCALL FreeMem.A
|
||||||
@ -294,101 +319,54 @@ CS.QUIT jsr FIO.FileClose
|
|||||||
.INB /A2OSX.BUILD/BIN/DEV/ASM.S.SYM
|
.INB /A2OSX.BUILD/BIN/DEV/ASM.S.SYM
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
SRC.DIR.MAXLEN .EQ 5
|
T.DIRECTIVES >PSTR "AC"
|
||||||
T.DIRECTIVES .HS 02
|
>PSTR "AS"
|
||||||
.AS "AC"
|
>PSTR "AT"
|
||||||
.HS 02
|
>PSTR "AZ"
|
||||||
.AS "AS"
|
>PSTR "BS"
|
||||||
.HS 02
|
>PSTR "DA"
|
||||||
.AS "AT"
|
>PSTR "DO"
|
||||||
.HS 02
|
>PSTR "DU"
|
||||||
.AS "AZ"
|
>PSTR "DUMMY"
|
||||||
.HS 02
|
>PSTR "ED"
|
||||||
.AS "BS"
|
>PSTR "ELSE"
|
||||||
.HS 02
|
>PSTR "EM"
|
||||||
.AS "DA"
|
>PSTR "EN"
|
||||||
.HS 02
|
>PSTR "EP"
|
||||||
.AS "DO"
|
>PSTR "EQ"
|
||||||
.HS 02
|
>PSTR "FIN"
|
||||||
.AS "DU"
|
>PSTR "HS"
|
||||||
.HS 05
|
>PSTR "IN"
|
||||||
.AS "DUMMY"
|
>PSTR "INB"
|
||||||
.HS 02
|
>PSTR "INB1"
|
||||||
.AS "ED"
|
>PSTR "INB2"
|
||||||
.HS 04
|
>PSTR "INB3"
|
||||||
.AS "ELSE"
|
>PSTR "INB4"
|
||||||
.HS 02
|
>PSTR "INB5"
|
||||||
.AS "EM"
|
>PSTR "INB6"
|
||||||
.HS 02
|
>PSTR "INB7"
|
||||||
.AS "EN"
|
>PSTR "INB8"
|
||||||
.HS 02
|
>PSTR "INB9"
|
||||||
.AS "EP"
|
>PSTR "LI"
|
||||||
.HS 02
|
>PSTR "LIST"
|
||||||
.AS "EQ"
|
>PSTR "MA"
|
||||||
.HS 03
|
>PSTR "OP"
|
||||||
.AS "FIN"
|
>PSTR "OR"
|
||||||
.HS 02
|
>PSTR "PG"
|
||||||
.AS "HS"
|
>PSTR "PH"
|
||||||
.HS 02
|
>PSTR "SE"
|
||||||
.AS "IN"
|
>PSTR "TA"
|
||||||
.HS 03
|
>PSTR "TF"
|
||||||
.AS "INB"
|
>PSTR "TI"
|
||||||
.HS 04
|
>PSTR "US"
|
||||||
.AS "INB1"
|
|
||||||
.HS 04
|
|
||||||
.AS "INB2"
|
|
||||||
.HS 04
|
|
||||||
.AS "INB3"
|
|
||||||
.HS 04
|
|
||||||
.AS "INB4"
|
|
||||||
.HS 04
|
|
||||||
.AS "INB5"
|
|
||||||
.HS 04
|
|
||||||
.AS "INB6"
|
|
||||||
.HS 04
|
|
||||||
.AS "INB7"
|
|
||||||
.HS 04
|
|
||||||
.AS "INB8"
|
|
||||||
.HS 04
|
|
||||||
.AS "INB9"
|
|
||||||
.HS 02
|
|
||||||
.AS "LI"
|
|
||||||
.HS 04
|
|
||||||
.AS "LIST"
|
|
||||||
.HS 02
|
|
||||||
.AS "MA"
|
|
||||||
.HS 02
|
|
||||||
.AS "OP"
|
|
||||||
.HS 02
|
|
||||||
.AS "OR"
|
|
||||||
.HS 02
|
|
||||||
.AS "PG"
|
|
||||||
.HS 02
|
|
||||||
.AS "PH"
|
|
||||||
.HS 02
|
|
||||||
.AS "SE"
|
|
||||||
.HS 02
|
|
||||||
.AS "TA"
|
|
||||||
.HS 02
|
|
||||||
.AS "TF"
|
|
||||||
.HS 02
|
|
||||||
.AS "TI"
|
|
||||||
.HS 02
|
|
||||||
.AS "US"
|
|
||||||
.HS 00
|
.HS 00
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
T.LI .HS 03
|
T.LI >PSTR "CON"
|
||||||
.AS "CON"
|
>PSTR "COFF"
|
||||||
.HS 04
|
>PSTR "XON"
|
||||||
.AS "COFF"
|
>PSTR "XOFF"
|
||||||
.HS 03
|
>PSTR "ON"
|
||||||
.AS "XON"
|
>PSTR "OFF"
|
||||||
.HS 04
|
|
||||||
.AS "XOFF"
|
|
||||||
.HS 02
|
|
||||||
.AS "ON"
|
|
||||||
.HS 03
|
|
||||||
.AS "OFF"
|
|
||||||
.HS 00
|
.HS 00
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
MSG.HELP >CSTR "A2osX-Macro Assembler (S-C MASM 3.0 Based)\r\nUsage : ASM <src file> [type TXT ($04) or S-C/BAS ($FA)]\r\n"
|
MSG.HELP >CSTR "A2osX-Macro Assembler (S-C MASM 3.0 Based)\r\nUsage : ASM <src file> [type TXT ($04) or S-C/BAS ($FA)]\r\n"
|
||||||
@ -405,8 +383,8 @@ MSG.SUMMARY >CSTR "\r\nEnd Of Assembly.\r\n"
|
|||||||
SRC.AM.RESERVED >PSTR "[](),"
|
SRC.AM.RESERVED >PSTR "[](),"
|
||||||
SRC.MOD.RESERVED >PSTR "#/<>"
|
SRC.MOD.RESERVED >PSTR "#/<>"
|
||||||
SRC.EXP.RESERVED >PSTR "^!|&<=>+-*/"
|
SRC.EXP.RESERVED >PSTR "^!|&<=>+-*/"
|
||||||
ASM.T.DEFAULT >CSTR ".T.6502"
|
ASM.6502 >CSTR "6502"
|
||||||
ASM.T.FILENAMELEN .BS 1
|
*---------------------------------------
|
||||||
ASM.T.FILENAME .BS 65
|
ASM.T.FILENAME .BS 65
|
||||||
|
|
||||||
FIO.Stat .BS S.STAT
|
FIO.Stat .BS S.STAT
|
||||||
@ -418,6 +396,7 @@ SYM.iCurGBlock.Save .BS 1
|
|||||||
SYM.pCurGBlock.Save .BS 1
|
SYM.pCurGBlock.Save .BS 1
|
||||||
|
|
||||||
SRC.LINENUM .BS 2
|
SRC.LINENUM .BS 2
|
||||||
|
SRC.LinePtrSave .BS 2
|
||||||
SRC.Directive.ID .BS 1
|
SRC.Directive.ID .BS 1
|
||||||
SRC.Keyword.ID .BS 1
|
SRC.Keyword.ID .BS 1
|
||||||
SRC.ACC .BS 4
|
SRC.ACC .BS 4
|
||||||
@ -426,10 +405,6 @@ 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
|
||||||
SRC.Exp .BS 128
|
|
||||||
SRC.BufPtr .BS 1
|
|
||||||
SRC.BufPtrSave .BS 1
|
|
||||||
SRC.Buffer .BS 256
|
|
||||||
SRC.GLabel.New .BS 1
|
SRC.GLabel.New .BS 1
|
||||||
SRC.GLabel.Flags .BS 1
|
SRC.GLabel.Flags .BS 1
|
||||||
SRC.GLabel.Value .BS 4
|
SRC.GLabel.Value .BS 4
|
||||||
@ -445,7 +420,6 @@ SRC.FLabel.Flags .BS 1
|
|||||||
SRC.FLabel.Value .BS 4
|
SRC.FLabel.Value .BS 4
|
||||||
SRC.FLabel.Len .BS 1
|
SRC.FLabel.Len .BS 1
|
||||||
SRC.FLabel.Name .BS SRC.GLABEL.MAXLEN
|
SRC.FLabel.Name .BS SRC.GLABEL.MAXLEN
|
||||||
UsrBuf256 .BS 256
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
@ -453,6 +427,8 @@ DS.START
|
|||||||
bPause .BS 1
|
bPause .BS 1
|
||||||
|
|
||||||
SRC.hFILENAME .BS 1
|
SRC.hFILENAME .BS 1
|
||||||
|
SRC.hLineBuf .BS 1
|
||||||
|
SRC.hTmpBuf .BS 1
|
||||||
|
|
||||||
SRC.COUNT .BS 1
|
SRC.COUNT .BS 1
|
||||||
SRC.hFILES .BS SRC.IN.MAXDEPTH
|
SRC.hFILES .BS SRC.IN.MAXDEPTH
|
||||||
|
10
TEST.S.txt
10
TEST.S.txt
@ -1,12 +1,10 @@
|
|||||||
PR#3
|
|
||||||
PREFIX /A2OSX.BUILD
|
|
||||||
NEW
|
NEW
|
||||||
INC 1
|
PREFIX /A2OSX.BUILD
|
||||||
AUTO 6
|
AUTO 4,1
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
.OP 65C02
|
.OP 65C02
|
||||||
.OR $2000
|
.OR $2000
|
||||||
.TF /A2OSX.BUILD/TEST
|
.TF /A2OSX.BUILD/ROOT/TEST
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB /A2OSX.BUILD/INC/MACROS.I
|
.INB /A2OSX.BUILD/INC/MACROS.I
|
||||||
.INB /A2OSX.BUILD/INC/A2OSX.I
|
.INB /A2OSX.BUILD/INC/A2OSX.I
|
||||||
@ -139,5 +137,5 @@ DS.END
|
|||||||
.ED
|
.ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.BUILD/TEST.S
|
SAVE /A2OSX.BUILD/ROOT/TEST.S
|
||||||
ASM
|
ASM
|
||||||
|
Loading…
Reference in New Issue
Block a user