Kernel 0.9.1 : ASM rewrite....Addressing Modes

This commit is contained in:
Rémy GIBERT 2018-03-28 16:23:32 +01:00
parent 6d248041ae
commit 56ba5ecc08
29 changed files with 6613 additions and 8298 deletions

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -15,364 +15,372 @@ AUTO 4,1
* & = octal
* * = PC
*---------------------------------------
EXP.Eval.Missing lda #ERR.MISSING.EXP
sec
rts
EXP.Eval.Missing
lda #ERR.MISSING.EXP
sec
rts
EXP.Eval >STZ.G EXP.Modifier
>STZ.G EXP.Prefix
>STZ.G EXP.Operator
jsr SRC.GetChar
bcs EXP.Eval.Missing
jsr SRC.IsMODReserved
bcs EXP.Eval.Next
txa
>STA.G EXP.Modifier
lda #'#'
>STA.G EXP.Prefix
EXP.Eval.Next0 jsr SRC.GetNextChar
EXP.Eval.Next lda #2
sta SRC.ACC.SIZE Default To WORD (2 bytes)
stz SRC.ACC
stz SRC.ACC+1
stz SRC.ACC+2
stz SRC.ACC+3
jsr SRC.GetChar
bcs EXP.Eval.Missing
cmp #'.' Local Label?
bne .12
jsr EXP.GetLSymIDInAcc
bcs .14
jmp EXP.EvalOperator
.14 rts
EXP.Eval >STZ.G EXP.Modifier
>STZ.G EXP.Prefix
>STZ.G EXP.Operator
.12 cmp #'*'
bne .10
jsr SRC.GetChar
bcs EXP.Eval.Missing
jsr SRC.IsMODReserved
bcs EXP.Eval.Next
txa
>STA.G EXP.Modifier
lda #'#'
>STA.G EXP.Prefix
EXP.Eval.Next0 jsr SRC.GetNextChar
EXP.Eval.Next lda #2
sta SRC.ACC.SIZE Default To WORD (2 bytes)
ldy #ASM.PC+3
ldx #3
.11 lda (pData),y
sta SRC.ACC,x
dey
dex
bpl .11
stz SRC.ACC
stz SRC.ACC+1
stz SRC.ACC+2
stz SRC.ACC+3
jsr SRC.GetChar
bcs EXP.Eval.Missing
cmp #'.' Local Label?
bne .12
jsr SRC.GetNextChar
jmp EXP.EvalOperator
.10 jsr SRC.IsDigit10 Decimal constant ?
bcs .1
jsr SRC.GetDecimal
bcs EXP.EvalExitSYN
bra EXP.EvalOperator
.1 cmp #'$' Hex?
bne .2
jsr SRC.GetHex
bcs EXP.EvalExitSYN
bra EXP.EvalOperator
.2 cmp #'%' binary?
bne .3
jsr EXP.GetLSymIDInAcc
bcs .14
jmp EXP.EvalOperator
.14 rts
.12 cmp #'*'
bne .10
jsr SRC.GetBinary
bcs EXP.EvalExitSYN
bra EXP.EvalOperator
.3 cmp #'&' octal?
bne .4
jsr SRC.GetOctal
bcs EXP.EvalExitSYN
bra EXP.EvalOperator
.4 cmp #'''
bne .43
jsr SRC.GetNextChar
bcs EXP.EvalExitSYN
jsr EXP.SetAccA
jsr SRC.GetNextChar
bcs EXP.EvalOperator
cmp #'''
bne EXP.EvalExitSYN
jsr SRC.GetNextChar
bra EXP.EvalOperator
.43 cmp #'"'
bne .42
jsr SRC.GetNextChar
bcs EXP.EvalExitSYN
ora #$80
jsr EXP.SetAccA
jsr SRC.GetNextChar
bcs EXP.EvalOperator
cmp #'"'
bne EXP.EvalExitSYN
jsr SRC.GetNextChar
bra EXP.EvalOperator
.42 jsr SRC.IsLetter Symbol ?
bcs EXP.EvalExitSYN
ldy #ASM.PC+3
ldx #3
.11 lda (pData),y
sta SRC.ACC,x
dey
dex
bpl .11
jsr EXP.GetGSymValueInAcc
bcs EXP.EvalExitUND
bra EXP.EvalOperator
EXP.EvalExitOK >LDA.G EXP.Modifier
beq .8
asl
tax
jmp (J.EXP.MOD-2,x)
.8 clc
EXP.EvalExitRTS rts
EXP.EvalExitSYN lda #ERR.SYNTAX.ERROR
sec
rts
jsr SRC.GetNextChar
jmp EXP.EvalOperator
.10 jsr SRC.IsDigit10 Decimal constant ?
bcs .1
jsr SRC.GetDecimal
bcs EXP.EvalExitRTS
bra EXP.EvalOperator
.1 cmp #'$' Hex?
bne .2
jsr SRC.GetHex
bcs EXP.EvalExitRTS
bra EXP.EvalOperator
.2 cmp #'%' binary?
bne .3
EXP.EvalExitUND lda #ERR.UNDEF.SYMBOL
sec
rts
EXP.EvalOperator >LDA.G EXP.Operator
beq .7
jsr EXP.Compute
bcs EXP.EvalExitRTS
.7 jsr SRC.GetChar
bcs EXP.EvalExitOK
jsr SRC.GetBinary
bcs EXP.EvalExitRTS
bra EXP.EvalOperator
.3 cmp #'&' octal?
bne .4
jsr SRC.GetOctal
bcs EXP.EvalExitRTS
bra EXP.EvalOperator
.4 cmp #'''
bne .43
jsr SRC.GetNextChar
bcs EXP.EvalExitSYN
jsr EXP.SetAccA
jsr SRC.GetNextChar
bcs EXP.EvalOperator
cmp #'''
bne EXP.EvalExitSYN
jsr SRC.GetNextChar
bra EXP.EvalOperator
.43 cmp #'"'
bne .42
jsr SRC.GetNextChar
bcs EXP.EvalExitSYN
ora #$80
jsr EXP.SetAccA
jsr SRC.GetNextChar
bcs EXP.EvalOperator
cmp #'"'
bne EXP.EvalExitSYN
jsr SRC.GetNextChar
bra EXP.EvalOperator
.42 jsr SRC.IsLetter Symbol ?
bcs EXP.EvalExitSYN
cmp #' '
beq EXP.EvalExitOK
jsr EXP.GetSymG
bcs EXP.EvalExitUND
bra EXP.EvalOperator
EXP.EvalExitOK >LDA.G EXP.Modifier
beq .8
asl
tax
jmp (J.EXP.MOD-2,x)
.8 clc
EXP.EvalExitRTS rts
EXP.EvalExitSYN lda #ERR.SYNTAX.ERROR
sec
rts
jsr SRC.IsAMReserved
bcc EXP.EvalExitOK
jsr SRC.IsEXPReserved
bcs EXP.EvalExitSYN
txa
>STA.G EXP.Operator
ldx #4
.8 lda SRC.ACC.SIZE,x
sta SRC.ARG.SIZE,x
dex
bpl .8
jmp EXP.Eval.Next0
*---------------------------------------
EXP.GetLSymIDInAcc jsr SRC.GetNextChar
bcs .9
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.LookupLocal
bcs EXP.EvalExitUND
rts
.9 lda #ERR.SYNTAX.ERROR
sec
rts
EXP.EvalExitUND lda #ERR.UNDEF.SYMBOL
sec
rts
*---------------------------------------
EXP.GetGSymValueInAcc
jsr SYM.LookupGlobal
bcs .2
ldy #SYM.Lookup+5
ldx #3
.1 lda (pData),y
sta SRC.ACC,x
dey
dex
bpl .1
lda (pData),y
and #SYMG.F.SIZE
sta SRC.ACC.SIZE
* clc
rts
.2 >LDA.G ASM.PASS pass#2?
bne .99 yes, undefined symbol
lda #0 Mark ACC as pending
sta SRC.ACC.SIZE
.3 jsr SRC.GetNextChar
bcs .8
jsr SRC.IsLetterOrDigit
bcc .3
cmp #'.'
beq .3
cmp #'_'
beq .3
.8 clc
rts
EXP.EvalOperator
>LDA.G EXP.Operator
beq .7
jsr EXP.Compute
bcs EXP.EvalExitRTS
.7 jsr SRC.GetChar
bcs EXP.EvalExitOK
.99 lda #ERR.UNDEF.SYMBOL
sec
.9 rts
*---------------------------------------
EXP.SetAccA sta SRC.ACC
stz SRC.ACC+1
stz SRC.ACC+2
stz SRC.ACC+3
lda #1
sta SRC.ACC.SIZE
rts
*---------------------------------------
EXP.Compute asl
tax
jmp (J.EXP.OP-2,x)
*---------------------------------------
EXP.MOD.8.3 lda SRC.ACC+2
bra EXP.MOD.8
EXP.MOD.8.2 lda SRC.ACC+1
EXP.MOD.8 sta SRC.ACC
EXP.MOD.8.1 lda #1
sta SRC.ACC.SIZE
clc
rts
EXP.MOD.24 lda #3
sta SRC.ACC.SIZE
clc
rts
EXP.MOD.32 lda #4
sta SRC.ACC.SIZE
clc
rts
*---------------------------------------
EXP.OP.EOR ldx #3
cmp #' '
beq EXP.EvalExitOK
.1 lda SRC.ARG,x
eor SRC.ACC,x
sta SRC.ACC,x
dex
bpl .1
rts
*---------------------------------------
EXP.OP.ORA ldx #3
jsr SRC.IsAMReserved
bcc EXP.EvalExitOK
.1 lda SRC.ARG,x
ora SRC.ACC,x
sta SRC.ACC,x
dex
bpl .1
rts
jsr SRC.IsEXPReserved
bcs EXP.EvalExitSYN
txa
>STA.G EXP.Operator
ldx #5
.8 lda SRC.ACC.F,x
sta SRC.ARG.F,x
dex
bpl .8
jmp EXP.Eval.Next0
*---------------------------------------
EXP.OP.AND ldx #3
EXP.GetLSymIDInAcc
jsr SRC.GetNextChar
bcs .9
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.LookupLocal
bcs EXP.EvalExitUND
rts
.9 lda #ERR.SYNTAX.ERROR
sec
rts
*---------------------------------------
EXP.GetSymG jsr SYM.LookupGlobal
bcs .2
jsr SYM.Lookup2Acc
clc
rts
.2 >LDA.G ASM.PASS pass#2?
bne .99 yes, undefined symbol
lda #0 Mark ACC as pending
sta SRC.ACC.SIZE
.3 jsr SRC.GetNextChar
bcs .8
jsr SRC.IsLetterOrDigit
bcc .3
cmp #'.'
beq .3
cmp #'_'
beq .3
.8 clc
rts
.1 lda SRC.ARG,x
and SRC.ACC,x
sta SRC.ACC,x
dex
bpl .1
rts
.99 lda #ERR.UNDEF.SYMBOL
sec
.9 rts
*---------------------------------------
EXP.OP.LOW clc
rts
EXP.SetAccA sta SRC.ACC
stz SRC.ACC+1
stz SRC.ACC+2
stz SRC.ACC+3
lda #1
sta SRC.ACC.SIZE
rts
*---------------------------------------
EXP.OP.EQU ldx #0 ARG-ACC->ACC
ldy #4
clc il not Equals, return 0
.1 lda SRC.ARG,x
eor SRC.ACC,x
bne .2
inx
dey
bne .1
EXP.Compute lda SRC.ACC.F
and SRC.ARG.F
and #SYMG.F.RESOLVED
beq .1
asl
tax
jmp (J.EXP.OP-2,x)
.1 >LDA.G ASM.PASS
beq .8
lda #ERR.UNDEF.SYMBOL
sec
rts
.8 clc
rts
*---------------------------------------
EXP.MOD.8.3 lda SRC.ACC+2
bra EXP.MOD.8
EXP.MOD.8.2 lda SRC.ACC+1
EXP.MOD.8 sta SRC.ACC
EXP.MOD.8.1 lda #1
sta SRC.ACC.SIZE
clc
rts
EXP.MOD.24 lda #3
sta SRC.ACC.SIZE
clc
rts
EXP.MOD.32 lda #4
sta SRC.ACC.SIZE
clc
rts
*---------------------------------------
EXP.OP.EOR ldx #3
sec equals, return 1
.2 lda #0
rol
sta SRC.ACC
.1 lda SRC.ARG,x
eor SRC.ACC,x
sta SRC.ACC,x
dex
bpl .1
rts
*---------------------------------------
EXP.OP.ORA ldx #3
lda #1
sta SRC.ACC.SIZE
.9 rts
.1 lda SRC.ARG,x
ora SRC.ACC,x
sta SRC.ACC,x
dex
bpl .1
rts
*---------------------------------------
EXP.OP.AND ldx #3
.1 lda SRC.ARG,x
and SRC.ACC,x
sta SRC.ACC,x
dex
bpl .1
rts
*---------------------------------------
EXP.OP.LOW clc
rts
*---------------------------------------
EXP.OP.EQU ldx #0 ARG-ACC->ACC
ldy #4
clc il not Equals, return 0
.1 lda SRC.ARG,x
eor SRC.ACC,x
bne .2
inx
dey
bne .1
sec equals, return 1
.2 lda #0
rol
sta SRC.ACC
lda #1
sta SRC.ACC.SIZE
.9 rts
*---------------------------------------
EXP.OP.GRT
clc
rts
clc
rts
*---------------------------------------
EXP.OP.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.OP.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.OP.SUB ldx #0 ARG-ACC->ACC
ldy #4
sec
EXP.OP.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
.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.OP.MUL
*---------------------------------------
EXP.OP.DIV
clc
rts
clc
rts
*---------------------------------------
MAN
SAVE /A2OSX.BUILD/BIN/DEV/ASM.S.EXP

View File

@ -2,336 +2,337 @@ NEW
PREFIX /A2OSX.BUILD
AUTO 4,1
*---------------------------------------
FIO.Init >LDYA L.ASM.6502
FIO.LOAD.ASM.T >STYA ZPPtr2
FIO.Init >LDYA L.ASM.6502
FIO.LOAD.ASM.T >STYA ZPPtr2
ldy #S.PS.hARGS
lda (pPS),y
>SYSCALL GetMemPtr.A
ldy #S.PS.hARGS
lda (pPS),y
>SYSCALL GetMemPtr.A
>STYA ZPPtr1
ldy #$ff
ldx #$ff
>STYA ZPPtr1
ldy #$ff
ldx #$ff
.1 iny
inx
lda (ZPPtr1),y
sta ASM.T.FILENAME,x
bne .1
lda #'.'
sta ASM.T.FILENAME,x
inx
lda (ZPPtr1),y
sta ASM.T.FILENAME,x
bne .1
lda #'.'
sta ASM.T.FILENAME,x
inx
inx
lda #'T'
sta ASM.T.FILENAME,x
lda #'T'
sta ASM.T.FILENAME,x
inx
inx
lda #'.'
sta ASM.T.FILENAME,x
ldy #$ff
lda #'.'
sta ASM.T.FILENAME,x
ldy #$ff
.2 iny
inx
lda (ZPPtr2),y
jsr SRC.IsLetterOrDigit
bcs .3
sta ASM.T.FILENAME,x
bra .2
.3 stz ASM.T.FILENAME,x
ldy #ASM.T.hMem
lda (pData),y
beq .4
>SYSCALL FreeMem.A
ldy #ASM.T.hMem
lda #0
sta (pData),y
.4 >PUSHW L.ASM.T.FILENAME
>LDYA L.MSG.T.FILE
jsr OUT.Print
>PUSHWI 0 Aux type
>PUSHBI 6 S.FI.T.BIN
>PUSHBI SYS.FOpen.R
>PUSHW L.ASM.T.FILENAME
>SYSCALL LoadFile
bcs .9
txa
ldy #ASM.T.hMem
sta (pData),y
>SYSCALL GetMemPtr.A
>STYA ZPPtr1
.2 iny
inx
lda (ZPPtr2),y
jsr SRC.IsLetterOrDigit
bcs .3
sta ASM.T.FILENAME,x
bra .2
.3 stz ASM.T.FILENAME,x
ldy #ASM.T.hMem
lda (pData),y
beq .4
>SYSCALL FreeMem.A
ldy #ASM.T.hMem
lda #0
sta (pData),y
.4 >PUSHW L.ASM.T.FILENAME
>LDYA L.MSG.T.FILE
jsr OUT.Print
>PUSHWI 0 Aux type
>PUSHBI 6 S.FI.T.BIN
>PUSHBI SYS.FOpen.R
>PUSHW L.ASM.T.FILENAME
>SYSCALL LoadFile
bcs .9
txa
ldy #ASM.T.hMem
sta (pData),y
>SYSCALL GetMemPtr.A
>STYA ZPPtr1
ldy #ASM.T.AM
lda (ZPPtr1),y
clc
adc ZPPtr1
sta ZPAMPtr
iny
lda (ZPPtr1),y
adc ZPPtr1+1
sta ZPAMPtr+1
iny
lda (ZPPtr1),y
clc
adc ZPPtr1
sta ZPRPtr
iny
lda (ZPPtr1),y
adc ZPPtr1+1
sta ZPRPtr+1
iny
lda (ZPPtr1),y
clc
adc ZPPtr1
sta ZPOpsPtr
iny
lda (ZPPtr1),y
adc ZPPtr1+1
sta ZPOpsPtr+1
.9 rts
ldy #ASM.T.AM
lda (ZPPtr1),y
clc
adc ZPPtr1
sta ZPAMPtr
iny
lda (ZPPtr1),y
adc ZPPtr1+1
sta ZPAMPtr+1
iny
lda (ZPPtr1),y
clc
adc ZPPtr1
sta ZPRPtr
iny
lda (ZPPtr1),y
adc ZPPtr1+1
sta ZPRPtr+1
iny
lda (ZPPtr1),y
clc
adc ZPPtr1
sta ZPOpsPtr
iny
lda (ZPPtr1),y
adc ZPPtr1+1
sta ZPOpsPtr+1
.9 rts
*---------------------------------------
FIO.OpenFile >STYA ZPPtr1
>PUSHW ZPPtr1
>LDYA L.MSG.SRC.FILE
jsr OUT.Print
ldy #SRC.COUNT
lda (pData),y
cmp #SRC.IN.MAXDEPTH
bne .1
lda #ERR.SRC.TOO.MANY.IN
sec
rts
.1 >PUSHW L.FIO.Stat
>PUSHW ZPPtr1
>SYSCALL Stat
bcs .99
lda FIO.Stat+S.STAT.P.TYPE
cmp #$04 TXT ?
bne .2
FIO.OpenFile >STYA ZPPtr1
>PUSHW ZPPtr1
>LDYA L.MSG.SRC.FILE
jsr OUT.Print
ldy #SRC.COUNT
lda (pData),y
cmp #SRC.IN.MAXDEPTH
bne .1
lda #ERR.SRC.TOO.MANY.IN
sec
rts
.1 >PUSHW L.FIO.Stat
>PUSHW ZPPtr1
>SYSCALL Stat
bcs .99
lda FIO.Stat+S.STAT.P.TYPE
cmp #$04 TXT ?
bne .2
>PUSHWI 0
>PUSHBI 4
>PUSHBI SYS.FOpen.R+SYS.FOpen.T
bra .3
.2 cmp #$FA S-C/BAS?
bne .98
>PUSHWI 0
>PUSHBI $FA
>PUSHBI SYS.FOpen.R
.3 >PUSHW ZPPtr1
>SYSCALL FOpen
bcs .99
pha
ldy #SRC.COUNT
lda (pData),y
clc
adc #SRC.hFILES
tay
pla
sta (pData),y
ldy #SRC.COUNT
lda (pData),y
clc
adc #SRC.hFILETYPES
tay
>PUSHWI 0
>PUSHBI 4
>PUSHBI SYS.FOpen.R+SYS.FOpen.T
bra .3
.2 cmp #$FA S-C/BAS?
bne .98
>PUSHWI 0
>PUSHBI $FA
>PUSHBI SYS.FOpen.R
.3 >PUSHW ZPPtr1
>SYSCALL FOpen
bcs .99
pha
ldy #SRC.COUNT
lda (pData),y
clc
adc #SRC.hFILES
tay
pla
sta (pData),y
ldy #SRC.COUNT
lda (pData),y
clc
adc #SRC.hFILETYPES
tay
lda FIO.Stat+S.STAT.P.TYPE
sta (pData),y
lda FIO.Stat+S.STAT.P.TYPE
sta (pData),y
ldy #SRC.COUNT
lda (pData),y
inc
sta (pData),y
lda #0
>STA.G SRC.LINENUM
iny
sta (pData),y
clc
rts
.98 lda #ERR.SRC.INV.TYPE
sec
.99 rts
ldy #SRC.COUNT
lda (pData),y
inc
sta (pData),y
lda #0
>STA.G SRC.LINENUM
iny
sta (pData),y
clc
rts
.98 lda #ERR.SRC.INV.TYPE
sec
.99 rts
*---------------------------------------
FIO.ReadLine >LDYA ZPLineBuf
>STYA ZPLinePtr
ldy #SRC.COUNT
lda (pData),y
clc
adc #SRC.hFILETYPES-1
tay
lda (pData),y
bmi .10
FIO.ReadLine >LDYA ZPLineBuf
>STYA ZPLinePtr
ldy #SRC.COUNT
lda (pData),y
clc
adc #SRC.hFILETYPES-1
tay
lda (pData),y
bmi .10
>PUSHW ZPLineBuf
>PUSHWI 256
>PUSHW ZPLineBuf
>PUSHWI 256
jsr FIO.ReadFromFile
bcs .19
tya
beq .13
jsr FIO.ReadFromFile
bcs .19
tya
beq .13
dey
lda #0 replace ending $0D with $00
.13 sta (ZPLineBuf),y
dey
>INC.G SRC.LINENUM
bne .19
>INC.G SRC.LINENUM+1
.19 rts
lda #0 replace ending $0D with $00
.13 sta (ZPLineBuf),y
>INC.G SRC.LINENUM
bne .19
>INC.G SRC.LINENUM+1
.19 rts
*---------------------------------------
.10 >PUSHW ZPTmpBuf
>PUSHWI 3
jsr FIO.ReadFromFile
bcs .19
.10 >PUSHW ZPTmpBuf
>PUSHWI 3
jsr FIO.ReadFromFile
bcs .19
ldy #1
lda (ZPTmpBuf),y
pha
iny
lda (ZPTmpBuf),y
>STA.G SRC.LINENUM+1
pla
>STA.G SRC.LINENUM
lda (ZPTmpBuf) LEN
sec
sbc #3
bcc .9 LEN should be at least 3
ldy #1
lda (ZPTmpBuf),y
pha
iny
lda (ZPTmpBuf),y
>STA.G SRC.LINENUM+1
pla
>STA.G SRC.LINENUM
lda (ZPTmpBuf) LEN
sec
sbc #3
bcc .9 LEN should be at least 3
tay
>PUSHW ZPTmpBuf
lda #0
>PUSHYA
jsr FIO.ReadFromFile
bcs .9
>LDYA ZPTmpBuf
>STYA ZPPtr1
ldy #0
.1 lda (ZPPtr1)
inc ZPPtr1
bne .11
inc ZPPtr1+1
.11 tax
bmi .2
sta (ZPLineBuf),y
beq .8 Ending 00
tay
>PUSHW ZPTmpBuf
lda #0
>PUSHYA
jsr FIO.ReadFromFile
bcs .9
>LDYA ZPTmpBuf
>STYA ZPPtr1
ldy #0
.1 lda (ZPPtr1)
inc ZPPtr1
bne .11
inc ZPPtr1+1
.11 tax
bmi .2
sta (ZPLineBuf),y
beq .8 Ending 00
iny
bne .1
bra .99
.2 cmp #$C0 REPEAT char?
bne .5
iny
bne .1
bra .99
.2 cmp #$C0 REPEAT char?
bne .5
lda (ZPPtr1) Get Repeat Count
inc ZPPtr1
bne .3
inc ZPPtr1+1
.3 tax
lda (ZPPtr1) Get Repeat Count
inc ZPPtr1
bne .3
inc ZPPtr1+1
.3 tax
lda (ZPPtr1) Get Repeat Char
inc ZPPtr1
bne .4
inc ZPPtr1+1
.4 sta (ZPLineBuf),y
iny
beq .99
dex
bne .4
lda (ZPPtr1) Get Repeat Char
inc ZPPtr1
bne .4
inc ZPPtr1+1
.4 sta (ZPLineBuf),y
iny
beq .99
dex
bne .4
bra .1
.5 and #$3F Compute blank count
tax
lda #$20
.6 sta (ZPLineBuf),y
iny
beq .99
dex
bne .6
bra .1
.8 clc
.9 rts
bra .1
.5 and #$3F Compute blank count
tax
lda #$20
.6 sta (ZPLineBuf),y
iny
beq .99
dex
bne .6
bra .1
.8 clc
.9 rts
.99 lda #ERR.LINE.TOO.LONG
sec
rts
.99 lda #ERR.LINE.TOO.LONG
sec
rts
*--------------------------------------
FIO.ReadFromFile ldy #SRC.COUNT
lda (pData),y
clc
adc #SRC.hFILES-1
tay
lda (pData),y
>PUSHA
>SYSCALL FRead
bcs .9
tax $100 byte transfered ?
beq .9
lda #ERR.LINE.TOO.LONG
sec
.9 rts
FIO.ReadFromFile
ldy #SRC.COUNT
lda (pData),y
clc
adc #SRC.hFILES-1
tay
lda (pData),y
>PUSHA
>SYSCALL FRead
bcs .9
tax $100 byte transfered ?
beq .9
lda #ERR.LINE.TOO.LONG
sec
.9 rts
*---------------------------------------
FIO.FileClose ldy #SRC.COUNT
lda (pData),y
beq .8
clc
adc #SRC.hFILES-1
tay
lda (pData),y
>SYSCALL FClose.A
ldy #SRC.COUNT
lda (pData),y
dec
sta (pData),y
.8 clc
rts
FIO.FileClose ldy #SRC.COUNT
lda (pData),y
beq .8
clc
adc #SRC.hFILES-1
tay
lda (pData),y
>SYSCALL FClose.A
ldy #SRC.COUNT
lda (pData),y
dec
sta (pData),y
.8 clc
rts
*---------------------------------------
MAN
SAVE /A2OSX.BUILD/BIN/DEV/ASM.S.FIO

View File

@ -2,83 +2,83 @@ NEW
PREFIX /A2OSX.BUILD
AUTO 4,1
*---------------------------------------
MAC.Init >SYSCALL SListNew
bcs .9
MAC.Init >SYSCALL SListNew
bcs .9
>STA.G MAC.hMacros
>LDYAI 256
>SYSCALL GetMem.YA
bcs .9
>STYA ZPMacroBuf
txa
>STA.G MAC.hBuf
.9 rts
*---------------------------------------
MAC.Quit >LDA.G MAC.hBuf
beq .1
>SYSCALL FreeMem.A
.1 >LDA.G MAC.hMacros
beq .8
>SYSCALL SListFree.A
.8 clc
rts
*---------------------------------------
MAC.New lda #0
tay
.1 sta (ZPMacroBuf),y
iny
bne .1
rts
*---------------------------------------
MAC.AddChar >LDA.G ASM.PASS If Pass#2, ignore
bne .8
tax
lda (ZPMacroBuf)
* cmp #254
* beq .9 CS if EQ
inc
sta (ZPMacroBuf)
tay
txa
sta (ZPMacroBuf),y
tax
beq .1
* >SYSCALL PutChar.A
.8 clc
rts
.1
* lda #13
* >SYSCALL PutChar.A
* lda #10
* >SYSCALL PutChar.A
>STA.G MAC.hMacros
clc
.9 rts
>LDYAI 256
>SYSCALL GetMem.YA
bcs .9
>STYA ZPMacroBuf
txa
>STA.G MAC.hBuf
.9 rts
*---------------------------------------
MAC.Store >LDA.G ASM.PASS If Pass#2, ignore
bne .8
MAC.Quit >LDA.G MAC.hBuf
beq .1
.8 clc
rts
>SYSCALL FreeMem.A
.1 >LDA.G MAC.hMacros
beq .8
>SYSCALL SListFree.A
.8 clc
rts
*---------------------------------------
MAC.New lda #0
tay
.1 sta (ZPMacroBuf),y
iny
bne .1
rts
*---------------------------------------
MAC.AddChar >LDA.G ASM.PASS If Pass#2, ignore
bne .8
tax
lda (ZPMacroBuf)
* cmp #254
* beq .9 CS if EQ
inc
sta (ZPMacroBuf)
tay
txa
sta (ZPMacroBuf),y
tax
beq .1
* >SYSCALL PutChar.A
.8 clc
rts
.1
* lda #13
* >SYSCALL PutChar.A
* lda #10
* >SYSCALL PutChar.A
clc
.9 rts
*---------------------------------------
MAC.Store >LDA.G ASM.PASS If Pass#2, ignore
bne .8
.8 clc
rts
*---------------------------------------
MAN
SAVE /A2OSX.BUILD/BIN/DEV/ASM.S.MAC
LOAD /A2OSX.BUILD/BIN/DEV/ASM.S

View File

@ -2,225 +2,228 @@ NEW
PREFIX /A2OSX.BUILD
AUTO 4,1
*---------------------------------------
OUT.Init lda #20
>STA.G OUT.LineCnt
rts
OUT.Init lda #20
>STA.G OUT.LineCnt
rts
*---------------------------------------
OUT.Reset ldx #4
ldy #ASM.PC
.1 lda (pData),y
pha
iny
dex
bne .1
ldx #4
ldy #OUT.PC+3
.2 pla
sta (pData),y
dey
dex
bne .2
OUT.Reset ldx #4
ldy #ASM.PC
.1 lda (pData),y
pha
iny
dex
bne .1
ldx #4
ldy #OUT.PC+3
.2 pla
sta (pData),y
dey
dex
bne .2
>STZ.G OUT.Buf
>STA.G OUT.bEquate
rts
>STZ.G OUT.Buf
>STA.G OUT.bEquate
rts
*---------------------------------------
OUT.PrintLineErr >STA.G DIR.Byte Save Error code
OUT.PrintLineErr
>STA.G DIR.Byte Save Error code
jsr OUT.PrintLine.1
bcs .9
.1 >PUSHB.G DIR.Byte
>LDYA L.MSG.ERROR
>SYSCALL PrintF.YA
ldx ZPLinePtr
cpx ZPLineBuf
beq .4
.3 phx
lda #'-'
>SYSCALL PutChar.A
plx
bcs .9
dex
cpx ZPLineBuf
bne .3
.4 lda #'^'
phy
>SYSCALL PutChar.A
ply
bcs .9
jsr OUT.PrintLine.1
bcs .9
.1 >PUSHB.G DIR.Byte
>LDYA L.MSG.ERROR
>SYSCALL PrintF.YA
ldx ZPLinePtr
cpx ZPLineBuf
beq .4
.3 phx
lda #'-'
>SYSCALL PutChar.A
plx
bcs .9
dex
cpx ZPLineBuf
bne .3
.4 lda #'^'
phy
>SYSCALL PutChar.A
ply
bcs .9
.5 lda #13
>SYSCALL PutChar.A
lda #10
>SYSCALL PutChar.A
.9 rts
.5 lda #13
>SYSCALL PutChar.A
lda #10
>SYSCALL PutChar.A
.9 rts
*---------------------------------------
OUT.PrintLine jsr OUT.PrintLineOn
bcs OUT.PrintLine.9
OUT.PrintLine.1 jsr OUT.PrintLineOutBuf
bcs OUT.PrintLine.9
>PUSHW ZPLineBuf
>PUSHW.G SRC.LINENUM
>LDYA L.MSG.SRCLINE
jmp OUT.Print
OUT.PrintLine.9 rts
OUT.PrintLine jsr OUT.PrintLineOn
bcs OUT.PrintLine.9
OUT.PrintLine.1 jsr OUT.PrintLineOutBuf
bcs OUT.PrintLine.9
>PUSHW ZPLineBuf
>PUSHW.G SRC.LINENUM
>LDYA L.MSG.SRCLINE
jmp OUT.Print
OUT.PrintLine.9 rts
*---------------------------------------
OUT.PrintLineOn clc
rts
>LDA.G ASM.LI.ON
bpl .9
>LDA.G MAC.bAdd MACRO Mode ?
bpl .1
>LDA.G ASM.LI.MON
bpl .9
bmi .8
.1 >LDA.G ASM.DO.StackPtr within a DO/ELSE ?
beq .2
clc
adc #ASM.DO.Stack-1
tay
lda (pData),y TRUE ?
bne .8 yes, print always
>LDA.G ASM.LI.CON FALSE, check CON flag...
bpl .9
bmi .8
OUT.PrintLineOn clc
rts
>LDA.G ASM.LI.ON
bpl .9
>LDA.G MAC.bAdd MACRO Mode ?
bpl .1
>LDA.G ASM.LI.MON
bpl .9
bmi .8
.1 >LDA.G ASM.DO.StackPtr within a DO/ELSE ?
beq .2
clc
adc #ASM.DO.Stack-1
tay
lda (pData),y TRUE ?
bne .8 yes, print always
>LDA.G ASM.LI.CON FALSE, check CON flag...
bpl .9
bmi .8
.2
.8 clc
rts
.9 sec
rts
.8 clc
rts
.9 sec
rts
*---------------------------------------
OUT.PrintLineOutBuf >LDA.G OUT.bEquate
bne OUT.PrintLineAcc
>LDA.G OUT.Buf
beq .2
tax
clc
adc #OUT.Buf
tay
.1 >PUSHB (pData),y
dey
dex
bne .1
.2 ldy #OUT.PC+1
>PUSHB (pData),y
dey
>PUSHB (pData),y
>LDA.G OUT.Buf
asl
tax
ldy L.MSG.OUT0,x
lda L.MSG.OUT0+1,x
>SYSCALL PrintF.YA
rts
OUT.PrintLineOutBuf
>LDA.G OUT.bEquate
bne OUT.PrintLineAcc
>LDA.G OUT.Buf
beq .2
tax
clc
adc #OUT.Buf
tay
.1 >PUSHB (pData),y
dey
dex
bne .1
.2 ldy #OUT.PC+1
>PUSHB (pData),y
dey
>PUSHB (pData),y
>LDA.G OUT.Buf
asl
tax
ldy L.MSG.OUT0,x
lda L.MSG.OUT0+1,x
>SYSCALL PrintF.YA
rts
OUT.PrintLineAcc ldx SRC.ACC.SIZE
beq .2
ldy #0
.1 >PUSHB SRC.ACC,y
iny
dex
bne .1
lda SRC.ACC.SIZE
asl
tax
.2 ldy L.MSG.EQU0,x
lda L.MSG.EQU0+1,x
>SYSCALL PrintF.YA
rts
OUT.PrintLineAcc
ldx SRC.ACC.SIZE
beq .2
ldy #0
.1 >PUSHB SRC.ACC,y
iny
dex
bne .1
lda SRC.ACC.SIZE
asl
tax
.2 ldy L.MSG.EQU0,x
lda L.MSG.EQU0+1,x
>SYSCALL PrintF.YA
rts
*---------------------------------------
OUT.Print >SYSCALL PrintF.YA
bra OUT.Print1
OUT.PrintCR lda #13
>SYSCALL PutChar.A
lda #10
>SYSCALL PutChar.A
OUT.Print >SYSCALL PrintF.YA
bra OUT.Print1
OUT.PrintCR lda #13
>SYSCALL PutChar.A
lda #10
>SYSCALL PutChar.A
OUT.Print1 >DEC.G OUT.LineCnt
bne .8
lda #20
sta (pData),y
>DEBUG
OUT.Print1 >DEC.G OUT.LineCnt
bne .8
lda #20
sta (pData),y
>DEBUG
.8 rts
.8 rts
*---------------------------------------
OUT.EmitByte phy
phx
pha
OUT.EmitByte phy
phx
pha
>LDA.G OUT.Buf
cmp #3
bne .2
>LDA.G OUT.Buf
cmp #3
bne .2
jsr OUT.PrintLineOn
bcs .1
jsr OUT.PrintLineOn
bcs .1
>LDA.G ASM.LI.XON
bpl .1
jsr OUT.PrintLineOutBuf
jsr OUT.PrintCR
.1 jsr OUT.Reset
lda #0
ldy #OUT.Buf
>LDA.G ASM.LI.XON
bpl .1
.2 inc
sta (pData),y
clc
adc #OUT.Buf
tay
jsr OUT.PrintLineOutBuf
jsr OUT.PrintCR
pla
sta (pData),y
.1 jsr OUT.Reset
lda #0
ldy #OUT.Buf
.8 >INC.G ASM.PC
bne .80
>INC.G ASM.PC+1
bne .80
>INC.G ASM.PC+2
bne .80
>INC.G ASM.PC+3
.2 inc
sta (pData),y
clc
adc #OUT.Buf
tay
pla
sta (pData),y
.8 >INC.G ASM.PC
bne .80
>INC.G ASM.PC+1
bne .80
>INC.G ASM.PC+2
bne .80
>INC.G ASM.PC+3
.80 plx
ply
clc
rts
.80 plx
ply
clc
rts
*---------------------------------------
MAN
SAVE /A2OSX.BUILD/BIN/DEV/ASM.S.OUT

File diff suppressed because it is too large Load Diff

View File

@ -11,12 +11,387 @@ AUTO 4,1
* 2-5 : 32 bits Value
* 6+ : Local Symbols.....
*---------------------------------------
SYM.Init >SYSCALL SListNew
bcs .9
>STA.G SYM.hGlobalList
>LDYAI 256
>SYSCALL GetMem.YA
bcs .9
>STYA ZPNameBuf
txa
>STA.G SYM.hNameBuf
>LDYAI 256
>SYSCALL GetMem.YA
bcs .9
>STYA ZPGlobalBuf
txa
>STA.G SYM.hGlobalBuf
>LDYAI 256
>SYSCALL GetMem.YA
bcs .9
>STYA ZPLookupBuf
txa
>STA.G SYM.hLookupBuf
.9 rts
*---------------------------------------
SYM.Reset lda #0
sta (ZPGlobalBuf)
rts
*---------------------------------------
SYM.Quit >LDA.G SYM.hLookupBuf
beq .1
>SYSCALL FreeMem.A
.1 >LDA.G SYM.hNameBuf
beq .2
>SYSCALL FreeMem.A
.2 >LDA.G SYM.hGlobalBuf
beq .3
>SYSCALL FreeMem.A
.3 >LDA.G SYM.hGlobalList
beq .8
>SYSCALL SListFree.A
.8 clc
rts
*---------------------------------------
SYM.Dump stz ZPLinePtr
stz ZPLinePtr+1
>LDA.G ASM.LI.ON
bpl .1
>LDYA L.MSG.SYMBOLS
>SYSCALL PrintF.YA
.1 >PUSHB.G SYM.hGlobalList
>PUSHW ZPLinePtr
>PUSHW ZPGlobalBuf
>SYSCALL SListGetByID
bcs .8
stx ZPLinePtr Save Next ID
sty ZPLinePtr+1
>LDA.G ASM.LI.ON
bpl .1
lda (ZPGlobalBuf)
sec
adc ZPGlobalBuf
sta ZPPtr1
lda ZPGlobalBuf+1
adc #0
sta ZPPtr1+1
ldy #SYMG.F Get Symbol Size
lda (ZPPtr1),y
and #SYMG.F.SIZE
beq .3
pha
tax
iny SYMG.V
.2 lda (ZPPtr1),y
>PUSHA
iny
dex
bne .2
pla
asl
.3 tax
ldy L.MSG.EQU0,x
lda L.MSG.EQU0+1,x
>SYSCALL PrintF.YA
>PUSHW ZPGlobalBuf Label (PString)
>LDYA L.MSG.PSTRCRLF
>SYSCALL PrintF.YA
bcs .9
jmp .1
rts
.8 clc
.9 rts
*---------------------------------------
SYM.NewOrGetGlobal
>LDA.G ASM.PASS
bne SYM.GetGlobal Pass #2: should be already defined...
SYM.NewGlobal jsr SYM.LookupGlobal Pass #1; try to add global...
bcc .9 Already Defined
jsr SYM.GetName
bcs .99
jsr SYM.PC2Global A=PC Size
lda #SYMG.SIZE-1
sta (ZPGlobalBuf)
clc
rts
.9 lda #ERR.SYMBOL.REDEF
sec
.99 rts
*---------------------------------------
SYM.GetGlobal >PUSHB.G SYM.hGlobalList
>PUSHW ZPLinePtr
>PUSHW ZPGlobalBuf
>SYSCALL SListLookup
bcs .9
adc ZPLinePtr
sta ZPLinePtr
bcc .1
inc ZPLinePtr+1
clc
.1 tya
>STA.G SYM.GlobalID+1
txa
>STA.G SYM.GlobalID
rts
.9 lda #ERR.UNDEF.SYMBOL
sec
rts
*---------------------------------------
SYM.LookupGlobal
>PUSHB.G SYM.hGlobalList
>PUSHW ZPLinePtr
>PUSHW ZPLookupBuf
>SYSCALL SListLookup
bcs .9
adc ZPLinePtr
sta ZPLinePtr
bcc .8
inc ZPLinePtr+1
clc
.8
.9 rts
*---------------------------------------
SYM.FlushGlobal lda (ZPGlobalBuf)
beq .8
>PUSHB.G SYM.hGlobalList
>LDA.G ASM.PASS
bne .2
>PUSHW ZPNameBuf
>PUSHW ZPGlobalBuf
>SYSCALL SListAdd
rts
.2 >PUSHW.G SYM.GlobalID
>PUSHW ZPGlobalBuf
>SYSCALL SListUpdateByID
rts
.8 clc
rts
*---------------------------------------
SYM.GetName jsr SRC.GetChar
bcs .9
ldy #0
.1 jsr SRC.IsLetterOrDigit
bcc .2
cmp #'.'
beq .2
cmp #'_'
bne .8
.2 sta (ZPNameBuf),y
iny
jsr SRC.GetNextChar
bcc .1
.8 lda #0
sta (ZPNameBuf),y
clc
rts
.9 lda #ERR.SYNTAX.ERROR
sec
rts
*---------------------------------------
SYM.PC2Global ldx #4
ldy #ASM.PC
.1 lda (pData),y
pha
iny
dex
bne .1
ldx #4
ldy #SYMG.V+3
.2 pla
sta (ZPGlobalBuf),y
dey
dex
bne .2
ldx #4
ldy #ASM.PC+3
.3 lda (ZPGlobalBuf),y
bne .4
dex
dey
bne .3
.4 txa
ora #SYMG.F.RESOLVED
ldy #SYMG.F
sta (ZPGlobalBuf),y
txa A=PC Size
rts
*---------------------------------------
SYM.Acc2Global ldx #3
ldy #SYMG.V+3
.1 lda SRC.ACC,x
sta (ZPGlobalBuf),y
dey
dex
bpl .1
lda SRC.ACC.SIZE
ora SRC.ACC.F
sta (ZPGlobalBuf),y
clc
rts
*---------------------------------------
SYM.Lookup2Acc ldy #SYMG.V+3
ldx #3
.1 lda (ZPLookupBuf),y
sta SRC.ACC,x
dey
dex
bpl .1
lda (ZPLookupBuf),y
and #SYMG.F.SIZE
sta SRC.ACC.SIZE
lda (ZPLookupBuf),y
and #SYMG.F.SIZE^$ff
sta SRC.ACC.F
clc
rts
*---------------------------------------
* Local Symbol Record: (6 bytes)
* 0 : Local ID (1->255)
* 1 : Flags:
* b7=0=pending,1=resolved
* 2-5 : 32 bits Value (PC)
*---------------------------------------
SYM.NewOrGetLocalA
tax Save ID
>LDA.G ASM.PASS
bne SYM.GetLocal Pass #2: should be already defined...
clc
rts
*---------------------------------------
SYM.AddLocal lda (ZPGlobalBuf)
tay
clc
adc #SYML.SIZE
bcs .9
txa Get Back ID
sta (ZPGlobalBuf),y
iny
phy
ldx #4
ldy #ASM.PC+3
.1 lda (pData),y
pha
dey
dex
bne .1
ldx #4
ply
.2 pla
sta (ZPGlobalBuf),y
iny
dex
bne .2
lda #0
sta (ZPGlobalBuf),y
tya
sta (ZPGlobalBuf)
* clc
rts
.9 lda #ERR.TOO.MANY.LOCAL
* sec
rts
*---------------------------------------
SYM.GetLocal
*---------------------------------------
SYM.LookupLocal lda #2
sta SRC.ACC.SIZE
lda #$FF
sta SRC.ACC
sta SRC.ACC+1
clc
rts
*---------------------------------------
* Private Symbol Record: (9 bytes)
* 0 : Len (8)
* 1 : Flags:
@ -25,322 +400,21 @@ AUTO 4,1
* 6,7 : MCID (Macro Context ID)
* 8 : Private ID (0->255)
*---------------------------------------
SYM.Init >SYSCALL SListNew
bcs .9
>STA.G SYM.hGlobals
>LDYAI 256
>SYSCALL GetMem.YA
bcs .9
>STYA ZPGlobalBuf
txa
>STA.G SYM.hGlobalBuf
>LDYAI 256
>SYSCALL GetMem.YA
bcs .9
>STYA ZPLookupBuf
txa
>STA.G SYM.hLookupBuf
.9 rts
*---------------------------------------
SYM.Reset lda #0
sta (ZPGlobalBuf)
rts
*---------------------------------------
SYM.Quit >LDA.G SYM.hLookpBuf
beq .1
>SYSCALL FreeMem.A
.1 >LDA.G SYM.hGlobalBuf
beq .2
>SYSCALL FreeMem.A
.2 >LDA.G SYM.hGlobals
beq .8
>SYSCALL SListFree.A
.8 clc
rts
*---------------------------------------
SYM.Dump stz ZPLinePtr
stz ZPLinePtr+1
>LDA.G ASM.LI.ON
bpl .1
>LDYA L.MSG.SYMBOLS
>SYSCALL PrintF.YA
.1 >PUSHB.G SYM.hGlobals
>PUSHW ZPLinePtr
>PUSHW ZPTmpBuf
>SYSCALL SListGetByID
bcs .8
stx ZPLinePtr Save Next ID
sty ZPLinePtr+1
>LDA.G ASM.LI.ON
bpl .1
lda (ZPTmpBuf)
sec
adc ZPTmpBuf
sta ZPPtr1
lda ZPTmpBuf+1
adc #0
sta ZPPtr1+1
ldy #SYMG.F Get Symbol Size
lda (ZPPtr1),y
and #SYMG.F.SIZE
beq .3
pha
tax
iny SYMG.V
.2 lda (ZPPtr1),y
>PUSHA
iny
dex
bne .2
pla
asl
.3 tax
ldy L.MSG.EQU0,x
lda L.MSG.EQU0+1,x
>SYSCALL PrintF.YA
>PUSHW ZPTmpBuf Label (PString)
>LDYA L.MSG.PSTRCRLF
>SYSCALL PrintF.YA
bcc .1
rts
.8 clc
rts
*---------------------------------------
SYM.NewGlobal >LDYA ZPLinePtr
>STYA SYM.GlobalPtr
jsr SYM.PC2Global A=PC Size
ora #SYMG.F.RESOLVED PC is always known
ldy #SYMG.F
sta (ZPGlobalBuf),y
lda #SYMG.SIZE-1
* ldy #SYMG.LEN
sta (ZPGlobalBuf)
clc
rts
*---------------------------------------
SYM.GetGlobal >PUSHB.G SYM.hGlobals
>PUSHW ZPLinePtr
>PUSHW ZPGlobalBuf
>SYSCALL SListLookup
bcs .9
adc ZPLinePtr
sta ZPLinePtr
bcc .1
inc ZPLinePtr+1
clc
.1 tya
>STA.G SYM.GlobalID+1
txa
>STA.G SYM.GlobalID
.9 rts
*---------------------------------------
SYM.AddGlobal >PUSHB.G SYM.hGlobals
>PUSHW ZPLinePtr
>PUSHW ZPGlobalBuf
>SYSCALL SListAdd
bcs .9
adc ZPLinePtr
sta ZPLinePtr
bcc .1
inc ZPLinePtr+1
.1 clc
.HS B0 BCS
.9 sec
tya
>STA.G SYM.GlobalID+1
dey
txa
sta (pData),y
rts
*---------------------------------------
SYM.LookupGlobal >PUSHB.G SYM.hGlobals
>PUSHW ZPLinePtr
>PUSHW ZPLookupBuf
>SYSCALL SListLookup
bcs .9
adc ZPLinePtr
sta ZPLinePtr
bcc .8
inc ZPLinePtr+1
clc
.8
.9 rts
*---------------------------------------
SYM.UpdateGlobalAcc ldx #3
ldy #SYM.Global+SYMG.V+3
.1 lda SRC.ACC,x
sta (pData),y
dey
dex
bpl .1
lda SRC.ACC.SIZE
*---------------------------------------
SYM.UpdateGlobal ora #SYMG.F.RESOLVED
>STA.G SYM.Global+SYMG.F
lda #SYMG.SIZE-1 F+V+LSID
>STA.G SYM.Global+SYMG.LEN
>PUSHB.G SYM.hGlobals
>PUSHW.G SYM.GlobalID
>PUSHEA.G SYM.Global
>SYSCALL SListUpdateByID
rts
*---------------------------------------
SYMG.FlushGlobal clc
rts
*---------------------------------------
SYM.PC2Global ldx #4
ldy #ASM.PC
.1 lda (pData),y
pha
iny
dex
bne .1
ldx #4
ldy #SYMG.V+3
.2 pla
sta (ZPGlobalBuf),y
dey
dex
bne .2
ldx #4
ldy #ASM.PC+3
.3 lda (ZPGlobalBuf),y
bne .4
dex
dey
bne .3
.4 txa
ora #SYMG.F.RESOLVED
ldy #SYMG.F
sta (ZPGlobalBuf),y
txa A=PC Size
rts
*---------------------------------------
SYM.AddLocal tax Save ID
lda (ZPGlobalBuf)
tay
clc
adc #SYML.SIZE
bcs .9
txa Get Back ID
sta (ZPGlobalBuf),y
iny
phy
ldx #4
ldy #ASM.PC+3
.1 lda (pData),y
pha
dey
dex
bne .1
ldx #4
ply
.2 pla
sta (ZPGlobalBuf),y
iny
dex
bne .2
lda #0
sta (ZPGlobalBuf),y
tya
sta (ZPGlobalBuf)
* clc
rts
.9 lda #ERR.TOO.MANY.LOCAL
* sec
rts
*---------------------------------------
SYM.LookupLocal lda #2
sta SRC.ACC.SIZE
lda #$FF
sta SRC.ACC
sta SRC.ACC+1
clc
rts
*---------------------------------------
SYM.AddPrivate
clc
rts
clc
rts
*---------------------------------------
SYM.LookupPrivate
clc
rts
clc
rts
*---------------------------------------
SYM.AddMacro
clc
rts
clc
rts
*---------------------------------------
SYM.LookupMacro
clc
rts
clc
rts
*---------------------------------------
MAN
SAVE /A2OSX.BUILD/BIN/DEV/ASM.S.SYM

View File

@ -1,49 +1,51 @@
NEW
PREFIX /A2OSX.BUILD
AUTO 4,1
.LIST OFF
.OP 65C02
.OR $2000
.TF /A2OSX.BUILD/BIN/DEV/ASM
.LIST OFF
.OP 65C02
.OR $2000
.TF /A2OSX.BUILD/BIN/DEV/ASM
*---------------------------------------
.INB /A2OSX.BUILD/INC/MACROS.I
.INB /A2OSX.BUILD/INC/A2OSX.I
.INB /A2OSX.BUILD/INC/MACROS.I
.INB /A2OSX.BUILD/INC/A2OSX.I
*---------------------------------------
ZPPtr1 .EQ ZPBIN
ZPPtr2 .EQ ZPBIN+2
ZPPtr3 .EQ ZPBIN+4
ZPLineBuf .EQ ZPBIN+6
ZPLinePtr .EQ ZPBIN+8
ZPGlobalBuf .EQ ZPBIN+10
ZPLookupBuf .EQ ZPBIN+12
ZPMacroBuf .EQ ZPBIN+14
ZPTmpBuf .EQ ZPBIN+16
ZPAMPtr .EQ ZPBIN+18
ZPRPtr .EQ ZPBIN+20
ZPOpsPtr .EQ ZPBIN+22
ZPOpDefPtr .EQ ZPBIN+24
ZPPtr1 .EQ ZPBIN
ZPPtr2 .EQ ZPBIN+2
ZPLineBuf .EQ ZPBIN+4
ZPLinePtr .EQ ZPBIN+6
ZPNameBuf .EQ ZPBIN+8
ZPGlobalBuf .EQ ZPBIN+10
ZPLookupBuf .EQ ZPBIN+12
ZPMacroBuf .EQ ZPBIN+14
ZPTmpBuf .EQ ZPBIN+16
ZPAMPtr .EQ ZPBIN+18
ZPRPtr .EQ ZPBIN+20
ZPOpsPtr .EQ ZPBIN+22
ZPOpDefPtr .EQ ZPBIN+24
*---------------------------------------
SYMG.LEN .EQ 0
SYMG.F .EQ 1
SYMG.F.RESOLVED .EQ %10000000
SYMG.F.RW .EQ %01000000
SYMG.F.EQU .EQ %00100000
SYMG.F.SIZE .EQ %00000111
SYMG.V .EQ 2
SYMG.LEN .EQ 0
SYMG.F .EQ 1
SYMG.F.RESOLVED .EQ %10000000
SYMG.F.RW .EQ %01000000
SYMG.F.SIZE .EQ %00000111
SYMG.V .EQ 2
*
SYMG.SIZE .EQ 6
SYMG.SIZE .EQ 6
*---------------------------------------
SYML.ID .EQ 0
SYML.V .EQ 1
SYML.ID .EQ 0
SYML.V .EQ 1
*
SYML.SIZE .EQ 5
SYML.SIZE .EQ 5
*---------------------------------------
ASM.T.AM .EQ 0
ASM.T.R .EQ 2
ASM.T.O .EQ 4
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.DO.MAXDEPTH .EQ 8
SRC.IN.MAXDEPTH .EQ 7
*---------------------------------------
ERR.INV.ARGS .EQ $80
ERR.SRC.INV.TYPE .EQ $90
@ -72,438 +74,446 @@ ERR.MACRO.TOO.BIG .EQ $E1
*--------------------------------------
* File Header (16 Bytes)
*--------------------------------------
CS.START cld
jmp (.1,x)
.DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1
.DA 0
.DA CS.END-CS.START CS
.DA DS.END-DS.START DS
.DA #0 SS
.DA #32 ZP
.DA 0
CS.START cld
jmp (.1,x)
.DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1
.DA 0
.DA CS.END-CS.START CS
.DA DS.END-DS.START DS
.DA #0 SS
.DA #32 ZP
.DA 0
*--------------------------------------
* Relocation Table
*--------------------------------------
.1 .DA CS.INIT
.DA CS.RUN
.DA CS.DOEVENT
.DA CS.QUIT
L.MSG.HELP .DA MSG.HELP
L.MSG.OUT0 .DA MSG.OUT0
.DA MSG.OUT1
.DA MSG.OUT2
.DA MSG.OUT3
L.MSG.EQU0 .DA MSG.EQU0
.DA MSG.EQU1
.DA MSG.EQU2
.DA MSG.EQU3
.DA MSG.EQU4
L.MSG.SRCLINE .DA MSG.SRCLINE
L.MSG.ERROR .DA MSG.ERROR
L.MSG.SYMBOLS .DA MSG.SYMBOLS
L.MSG.PSTRCRLF .DA MSG.PSTRCRLF
L.MSG.SUMMARY .DA MSG.SUMMARY
L.MSG.PASS .DA MSG.PASS
L.MSG.SRC.FILE .DA MSG.SRC.FILE
L.MSG.OBJ.FILE .DA MSG.OBJ.FILE
L.MSG.T.FILE .DA MSG.T.FILE
L.SRC.AM.StrBuf .DA SRC.AM.StrBuf
L.ASM.6502 .DA ASM.6502
.1 .DA CS.INIT
.DA CS.RUN
.DA CS.DOEVENT
.DA CS.QUIT
L.MSG.HELP .DA MSG.HELP
L.MSG.OUT0 .DA MSG.OUT0
.DA MSG.OUT1
.DA MSG.OUT2
.DA MSG.OUT3
L.MSG.EQU0 .DA MSG.EQU0
.DA MSG.EQU1
.DA MSG.EQU2
.DA MSG.EQU3
.DA MSG.EQU4
L.MSG.SRCLINE .DA MSG.SRCLINE
L.MSG.ERROR .DA MSG.ERROR
L.MSG.SYMBOLS .DA MSG.SYMBOLS
L.MSG.PSTRCRLF .DA MSG.PSTRCRLF
L.MSG.SUMMARY .DA MSG.SUMMARY
L.MSG.PASS .DA MSG.PASS
L.MSG.SRC.FILE .DA MSG.SRC.FILE
L.MSG.OBJ.FILE .DA MSG.OBJ.FILE
L.MSG.T.FILE .DA MSG.T.FILE
L.SRC.AM.StrBuf .DA SRC.AM.StrBuf
L.ASM.6502 .DA ASM.6502
L.ASM.T.FILENAME .DA ASM.T.FILENAME
L.FIO.Stat .DA FIO.Stat
L.T.DIRECTIVES .DA T.DIRECTIVES
J.DIRECTIVES .DA DIR.AC
.DA DIR.AS
.DA DIR.AT
.DA DIR.AZ
.DA DIR.BS
.DA DIR.DA
.DA DIR.DO
.DA DIR.DU
.DA DIR.DU
.DA DIR.ED
.DA DIR.EL
.DA DIR.EM
.DA DIR.EN
.DA DIR.EP
.DA DIR.EQ
.DA DIR.FI
.DA DIR.HS
.DA DIR.IN
.DA DIR.IN
.DA DIR.IN
.DA DIR.IN
.DA DIR.IN
.DA DIR.IN
.DA DIR.IN
.DA DIR.IN
.DA DIR.IN
.DA DIR.IN
.DA DIR.IN
.DA DIR.LI
.DA DIR.LI
.DA DIR.MA
.DA DIR.OP
.DA DIR.OR
.DA DIR.PG
.DA DIR.PH
.DA DIR.SE
.DA DIR.TA
.DA DIR.TF
.DA DIR.TI
.DA DIR.US
L.T.LI .DA T.LI
J.LI .DA DIR.LI.ON
.DA DIR.LI.OFF
.DA DIR.LI.CON
.DA DIR.LI.COFF
.DA DIR.LI.MON
.DA DIR.LI.MOFF
.DA DIR.LI.XON
.DA DIR.LI.XOFF
J.EXP.MOD .DA EXP.MOD.8.1 #/^<>
.DA EXP.MOD.8.2
.DA EXP.MOD.8.3
.DA EXP.MOD.24
.DA EXP.MOD.32
J.EXP.OP .DA EXP.OP.EOR ^!|&<=>+-*/
.DA EXP.OP.ORA
.DA EXP.OP.ORA
.DA EXP.OP.AND
.DA EXP.OP.LOW
.DA EXP.OP.EQU
.DA EXP.OP.GRT
.DA EXP.OP.ADD
.DA EXP.OP.SUB
.DA EXP.OP.MUL
.DA EXP.OP.DIV
.DA 0
L.FIO.Stat .DA FIO.Stat
L.T.DIRECTIVES .DA T.DIRECTIVES
J.DIRECTIVES .DA DIR.AC
.DA DIR.AS
.DA DIR.AT
.DA DIR.AZ
.DA DIR.BS
.DA DIR.DA
.DA DIR.DO
.DA DIR.DU
.DA DIR.DU
.DA DIR.ED
.DA DIR.EL
.DA DIR.EM
.DA DIR.EN
.DA DIR.EP
.DA DIR.EQ
.DA DIR.FI
.DA DIR.HS
.DA DIR.IN
.DA DIR.IN
.DA DIR.IN
.DA DIR.IN
.DA DIR.IN
.DA DIR.IN
.DA DIR.IN
.DA DIR.IN
.DA DIR.IN
.DA DIR.IN
.DA DIR.IN
.DA DIR.LI
.DA DIR.LI
.DA DIR.MA
.DA DIR.OP
.DA DIR.OR
.DA DIR.PG
.DA DIR.PH
.DA DIR.SE
.DA DIR.TA
.DA DIR.TF
.DA DIR.TI
.DA DIR.US
L.T.LI .DA T.LI
J.LI .DA DIR.LI.ON
.DA DIR.LI.OFF
.DA DIR.LI.CON
.DA DIR.LI.COFF
.DA DIR.LI.MON
.DA DIR.LI.MOFF
.DA DIR.LI.XON
.DA DIR.LI.XOFF
J.EXP.MOD .DA EXP.MOD.8.1 #/^<>
.DA EXP.MOD.8.2
.DA EXP.MOD.8.3
.DA EXP.MOD.24
.DA EXP.MOD.32
J.EXP.OP .DA EXP.OP.EOR ^!|&<=>+-*/
.DA EXP.OP.ORA
.DA EXP.OP.ORA
.DA EXP.OP.AND
.DA EXP.OP.LOW
.DA EXP.OP.EQU
.DA EXP.OP.GRT
.DA EXP.OP.ADD
.DA EXP.OP.SUB
.DA EXP.OP.MUL
.DA EXP.OP.DIV
.DA 0
*---------------------------------------
CS.INIT ldy #S.PS.ARGC
lda (pPs),y
beq .99
lda #1
>SYSCALL GetArg.A
>SYSCALL RealPath.YA
txa
ldy #SRC.hFILENAME
sta (pData),y
jsr FIO.Init
bcs .9
CS.INIT ldy #S.PS.ARGC
lda (pPs),y
beq .99
lda #1
>SYSCALL GetArg.A
>SYSCALL RealPath.YA
txa
ldy #SRC.hFILENAME
sta (pData),y
jsr FIO.Init
bcs .9
jsr SYM.Init
bcs .9
jsr SYM.Init
bcs .9
jsr MAC.Init
bcs .9
jsr OUT.Init
jsr MAC.Init
bcs .9
jsr OUT.Init
>LDYAI 256
>SYSCALL GetMem.YA
bcs .9
>STYA ZPLineBuf
txa
>STA.G SRC.hLineBuf
>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)
* ora #S.PS.F.EVENT
* sta (pPs)
clc
rts
.99 >LDYA L.MSG.HELP
>SYSCALL PrintF.YA
lda #ERR.INV.ARGS
sec
>LDYAI 256
>SYSCALL GetMem.YA
bcs .9
>STYA ZPTmpBuf
txa
>STA.G SRC.hTmpBuf
* lda (pPs)
* ora #S.PS.F.EVENT
* sta (pPs)
clc
rts
.99 >LDYA L.MSG.HELP
>SYSCALL PrintF.YA
lda #ERR.INV.ARGS
sec
.9 rts
*--------------------------------------
CS.RUN >SYSCALL GetChar
bcs .11 no char
cmp #$03 Ctrl-C
beq .99 Abort....beq=CS
cmp #$13 Ctrl-S
bne .11
CS.RUN >SYSCALL GetChar
bcs .11 no char
cmp #$03 Ctrl-C
beq .99 Abort....beq=CS
cmp #$13 Ctrl-S
bne .11
ldy #bPause
lda (pData),y
eor #$ff
sta (pData),y
ldy #bPause
lda (pData),y
eor #$ff
sta (pData),y
.11 ldy #bPause
lda (pData),y
bne .8
.11 ldy #bPause
lda (pData),y
bne .8
ldy #SRC.COUNT root file is already opened?
lda (pData),y
bne .10
>LDA.G ASM.PASS
inc
>PUSHA
>LDYA L.MSG.PASS
jsr OUT.Print
ldy #SRC.COUNT root file is already opened?
lda (pData),y
bne .10
>LDA.G ASM.PASS
inc
>PUSHA
>LDYA L.MSG.PASS
jsr OUT.Print
ldy #SRC.hFILENAME
lda (pData),y
>SYSCALL GetMemPtr.A
jsr FIO.OpenFile
bcs .99
jsr DIR.Reset
jsr SYM.Reset
.10 jsr FIO.ReadLine
bcc .2
cmp #$4C End Of File?
bne .9
jsr FIO.FileClose
ldy #SRC.COUNT end of root file ?
lda (pData),y
bne .8 no continue back to previous file
>LDA.G ASM.PASS End of pass #2 ??
bne .1
inc
sta (pData),y
clc
.99 rts
.1 jsr SYM.Dump
>PUSHW ZPLinePtr
>LDYA L.MSG.SUMMARY
jsr OUT.Print
lda #0 End of assembly, exit with no error
sec
rts
.2 jsr SRC.ParseLine
bcs .9
jsr OUT.PrintLine
.8 clc
rts
ldy #SRC.hFILENAME
lda (pData),y
>SYSCALL GetMemPtr.A
jsr FIO.OpenFile
bcs .99
jsr DIR.Reset
jsr SYM.Reset
.10 jsr FIO.ReadLine
bcc .2
cmp #$4C End Of File?
bne .9
jsr FIO.FileClose
ldy #SRC.COUNT end of root file ?
lda (pData),y
bne .8 no continue back to previous file
jsr SYM.FlushGlobal Store last Symbol, if any....
bcs .9
>LDA.G ASM.PASS End of pass #2 ??
bne .1
inc
sta (pData),y
clc
.99 rts
.1 jsr SYM.Dump
>PUSHW ZPLinePtr
>LDYA L.MSG.SUMMARY
jsr OUT.Print
lda #0 End of assembly, exit with no error
sec
rts
.2 jsr SRC.ParseLine
bcs .9
jsr OUT.PrintLine
.8 clc
rts
.9 pha
jsr OUT.PrintLineErr
pla
sec
rts
.9 pha
jsr OUT.PrintLineErr
jsr SYM.Dump
pla
sec
rts
*--------------------------------------
CS.DOEVENT sec
rts
CS.DOEVENT sec
rts
*--------------------------------------
CS.QUIT jsr FIO.FileClose
bne CS.QUIT
CS.QUIT jsr FIO.FileClose
bne CS.QUIT
jsr MAC.Quit
jsr SYM.Quit
>LDA.G ASM.T.hMem
beq .1
>SYSCALL FreeMem.A
.1 >LDA.G SRC.hFILENAME
beq .2
>SYSCALL FreeMem.A
.2 >LDA.G SRC.hLineBuf
beq .3
>SYSCALL FreeMem.A
.3 >LDA.G SRC.hTmpBuf
beq .8
>SYSCALL FreeMem.A
.8 clc
rts
jsr MAC.Quit
jsr SYM.Quit
>LDA.G ASM.T.hMem
beq .1
>SYSCALL FreeMem.A
.1 >LDA.G SRC.hFILENAME
beq .2
>SYSCALL FreeMem.A
.2 >LDA.G SRC.hLineBuf
beq .3
>SYSCALL FreeMem.A
.3 >LDA.G SRC.hTmpBuf
beq .8
>SYSCALL FreeMem.A
.8 clc
rts
*---------------------------------------
.INB /A2OSX.BUILD/BIN/DEV/ASM.S.DIR
.INB /A2OSX.BUILD/BIN/DEV/ASM.S.EXP
.INB /A2OSX.BUILD/BIN/DEV/ASM.S.FIO
.INB /A2OSX.BUILD/BIN/DEV/ASM.S.MAC
.INB /A2OSX.BUILD/BIN/DEV/ASM.S.OUT
.INB /A2OSX.BUILD/BIN/DEV/ASM.S.SRC
.INB /A2OSX.BUILD/BIN/DEV/ASM.S.SYM
.INB /A2OSX.BUILD/BIN/DEV/ASM.S.DIR
.INB /A2OSX.BUILD/BIN/DEV/ASM.S.EXP
.INB /A2OSX.BUILD/BIN/DEV/ASM.S.FIO
.INB /A2OSX.BUILD/BIN/DEV/ASM.S.MAC
.INB /A2OSX.BUILD/BIN/DEV/ASM.S.OUT
.INB /A2OSX.BUILD/BIN/DEV/ASM.S.SRC
.INB /A2OSX.BUILD/BIN/DEV/ASM.S.SYM
*---------------------------------------
CS.END
T.DIRECTIVES >PSTR "AC"
>PSTR "AS"
>PSTR "AT"
>PSTR "AZ"
>PSTR "BS"
>PSTR "DA"
>PSTR "DO"
>PSTR "DU"
>PSTR "DUMMY"
>PSTR "ED"
>PSTR "ELSE"
>PSTR "EM"
>PSTR "EN"
>PSTR "EP"
>PSTR "EQ"
>PSTR "FIN"
>PSTR "HS"
>PSTR "IN"
>PSTR "INB"
>PSTR "INB1"
>PSTR "INB2"
>PSTR "INB3"
>PSTR "INB4"
>PSTR "INB5"
>PSTR "INB6"
>PSTR "INB7"
>PSTR "INB8"
>PSTR "INB9"
>PSTR "LI"
>PSTR "LIST"
>PSTR "MA"
>PSTR "OP"
>PSTR "OR"
>PSTR "PG"
>PSTR "PH"
>PSTR "SE"
>PSTR "TA"
>PSTR "TF"
>PSTR "TI"
>PSTR "US"
.HS 00
T.DIRECTIVES >PSTR "AC"
>PSTR "AS"
>PSTR "AT"
>PSTR "AZ"
>PSTR "BS"
>PSTR "DA"
>PSTR "DO"
>PSTR "DU"
>PSTR "DUMMY"
>PSTR "ED"
>PSTR "ELSE"
>PSTR "EM"
>PSTR "EN"
>PSTR "EP"
>PSTR "EQ"
>PSTR "FIN"
>PSTR "HS"
>PSTR "IN"
>PSTR "INB"
>PSTR "INB1"
>PSTR "INB2"
>PSTR "INB3"
>PSTR "INB4"
>PSTR "INB5"
>PSTR "INB6"
>PSTR "INB7"
>PSTR "INB8"
>PSTR "INB9"
>PSTR "LI"
>PSTR "LIST"
>PSTR "MA"
>PSTR "OP"
>PSTR "OR"
>PSTR "PG"
>PSTR "PH"
>PSTR "SE"
>PSTR "TA"
>PSTR "TF"
>PSTR "TI"
>PSTR "US"
.HS 00
*---------------------------------------
T.LI >PSTR "ON"
>PSTR "OFF"
>PSTR "CON"
>PSTR "COFF"
>PSTR "MON"
>PSTR "MOFF"
>PSTR "XON"
>PSTR "XOFF"
.HS 00
T.LI >PSTR "ON"
>PSTR "OFF"
>PSTR "CON"
>PSTR "COFF"
>PSTR "MON"
>PSTR "MOFF"
>PSTR "XON"
>PSTR "XOFF"
.HS 00
*---------------------------------------
ASM.6502 .AZ "6502"
MSG.HELP .AZ "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.PASS .AZ "Pass:#%d\r\n"
MSG.SRC.FILE .AZ "Reading SRC File:%s\r\n"
MSG.OBJ.FILE .AZ "Writing OBJ File:%s, Type=%02x\r\n"
MSG.T.FILE .AZ "Loading CPU File:%s\r\n"
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]"
MSG.EQU3 .AZ " [ %h%h%h]"
MSG.EQU4 .AZ " [%h%h%h%h]"
MSG.SRCLINE .AZ " %05D %s\r\n"
MSG.ERROR .AZ "*** Fatal Error $%h "
MSG.SYMBOLS .AZ "Symbol Table:\r\n"
MSG.PSTRCRLF .AZ " %S\r\n"
MSG.SUMMARY .AZ "\r\nSymbol Table Size : %5D Bytes.\r\nEnd Of Assembly.\r\n"
ASM..T. .AZ ".T."
ASM.6502 .AZ "6502"
MSG.HELP .AZ "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.PASS .AZ "Pass:#%d\r\n"
MSG.SRC.FILE .AZ "*** Reading SRC File:%s\r\n"
MSG.OBJ.FILE .AZ "*** Writing OBJ File:%s, Type=%02x\r\n"
MSG.T.FILE .AZ "*** Loading CPU File:%s\r\n"
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]"
MSG.EQU3 .AZ " [ %h%h%h]"
MSG.EQU4 .AZ " [%h%h%h%h]"
MSG.SRCLINE .AZ " %05D %s\r\n"
MSG.ERROR .AZ "*** Fatal Error $%h "
MSG.SYMBOLS .AZ "Symbol Table:\r\n"
MSG.PSTRCRLF .AZ " %S\r\n"
MSG.SUMMARY .AZ "\r\nSymbol Table Size : %5D Bytes.\r\nEnd Of Assembly.\r\n"
SRC.MOD.RESERVED >PSTR "#/^<>"
SRC.EXP.RESERVED >PSTR "^!|&<=>+-*/"
SRC.AM.RESERVED >PSTR "[](),"
*---------------------------------------
ASM.T.FILENAME .BS 65
ASM.T.FILENAME .BS 65
FIO.Stat .BS S.STAT
FIO.Stat .BS S.STAT
SRC.ACC.SIZE .BS 1
SRC.ACC .BS 4
SRC.ARG.SIZE .BS 1
SRC.ARG .BS 4
SRC.ACCTMP .BS 4
SRC.AM.StrBuf .BS 32
SRC.ACC.F .BS 1
SRC.ACC.SIZE .BS 1
SRC.ACC .BS 4
SRC.ARG.F .BS 1
SRC.ARG.SIZE .BS 1
SRC.ARG .BS 4
SRC.ACCTMP .BS 4
SRC.AM.StrBuf .BS 32
*--------------------------------------
.DUMMY
.OR 0
DS.START
bPause .BS 1
.DUMMY
.OR 0
DS.START
bPause .BS 1
SRC.hFILENAME .BS 1
SRC.hLineBuf .BS 1
SRC.hTmpBuf .BS 1
SRC.hFILENAME .BS 1
SRC.hLineBuf .BS 1
SRC.hTmpBuf .BS 1
SRC.COUNT .BS 1
SRC.hFILES .BS SRC.IN.MAXDEPTH
SRC.hFILETYPES .BS SRC.IN.MAXDEPTH
SRC.COUNT .BS 1
SRC.hFILES .BS SRC.IN.MAXDEPTH
SRC.hFILETYPES .BS SRC.IN.MAXDEPTH
SRC.LINENUM .BS 2
SRC.AMID .BS 1
SRC.LINENUM .BS 2
SRC.AMID .BS 1
DST.hFILENAME .BS 1
DST.hREFNUM .BS 1
DST.hBUFFER .BS 1
DST.hFILETYPE .BS 1
DST.hFILENAME .BS 1
DST.hREFNUM .BS 1
DST.hBUFFER .BS 1
DST.hFILETYPE .BS 1
DIR.Word .BS 2
DIR.Byte .BS 1
DIR.Word .BS 2
DIR.Byte .BS 1
EXP.Modifier .BS 1
EXP.Prefix .BS 1
EXP.Operator .BS 1
EXP.Modifier .BS 1
EXP.Prefix .BS 1
EXP.Operator .BS 1
ASM.T.hMem .BS 1
ASM.T.hMem .BS 1
ASM.PASS .BS 1
ASM.DO.StackPtr .BS 1
ASM.DO.Stack .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.MON .BS 1
ASM.LI.XON .BS 1
ASM.PC .BS 4
ASM.PC.PH .BS 4
ASM.PASS .BS 1
ASM.DO.StackPtr .BS 1
ASM.DO.Stack .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.MON .BS 1
ASM.LI.XON .BS 1
ASM.PC .BS 4
ASM.PC.PH .BS 4
SYM.hGlobals .BS 1
SYM.hGlobalList .BS 1
SYM.hNameBuf .BS 1
SYM.hGlobalBuf .BS 1
SYM.GlobalID .BS 2
SYM.GlobalPtr .BS 2
SYM.hGlobalBuf .BS 1
SYM.GlobalID .BS 2
SYM.hLookupBuf .BS 1
SYM.hLookupBuf .BS 1
SYM.LocalID .BS 2
SYM.LocalID .BS 2
MAC.hMacros .BS 1
MAC.hBuf .BS 1
MAC.bAdd .BS 1
MAC.hMacros .BS 1
MAC.hBuf .BS 1
MAC.bAdd .BS 1
OUT.PC .BS 4
OUT.Buf .BS 4
OUT.bEquate .BS 1
OUT.LineCnt .BS 1
OUT.PC .BS 4
OUT.Buf .BS 4
OUT.bEquate .BS 1
OUT.LineCnt .BS 1
DS.END .ED
DS.END .ED
*---------------------------------------
.DO DS.END-DS.START>$FF
ERROR:DS too big
.FIN
.DO DS.END-DS.START>$FF
ERROR:DS too big
.FIN
*---------------------------------------
MAN
SAVE /A2OSX.BUILD/BIN/DEV/ASM.S

View File

@ -3,21 +3,21 @@ PREFIX /A2OSX.BUILD
AUTO 4,1
*---------------------------------------
T.ADDR.MODES .EQ *
>PSTR "#a"
>PSTR "(a),Y"
>PSTR "(a,X)"
>PSTR "a"
>PSTR "a,X"
>PSTR "aa"
>PSTR "aa,X"
>PSTR "aa,Y"
>PSTR "(aa)"
>PSTR "a,Y"
.DA #2,$$"#a"
.DA #5,$$"(a),Y"
.DA #5,$$"(a,X)"
.DA #1,$$"a"
.DA #3,$$"a,X"
.DA #2,$$"aa"
.DA #4,$$"aa,X"
.DA #4,$$"aa,Y"
.DA #4,$$"(aa)"
.DA #3,$$"a,Y"
.HS 00
*---------------------------------------
T.REGISTERS .EQ *
>PSTR "Y"
>PSTR "X"
.DA #1,$$"Y"
.DA #1,$$"X"
.HS 00
*---------------------------------------
MAN

View File

@ -3,475 +3,324 @@ PREFIX /A2OSX.BUILD
AUTO 4,1
*---------------------------------------
T.OPCODES .EQ *
ADC .DA ADC.E+1-*
>PSTR "ADC"
.HS 01
>PSTR "69a"
.HS 02
>PSTR "71a"
.HS 03
>PSTR "61a"
.HS 04
>PSTR "65a"
.HS 05
>PSTR "75a"
.HS 06
>PSTR "6Daa"
.HS 07
>PSTR "7Daa"
.HS 08
>PSTR "79aa"
ADC.E .HS 00
AND .DA AND.E+1-*
>PSTR "AND"
.HS 01
>PSTR "29a"
.HS 02
>PSTR "31a"
.HS 03
>PSTR "21a"
.HS 04
>PSTR "25a"
.HS 05
>PSTR "35a"
.HS 06
>PSTR "2Daa"
.HS 07
>PSTR "3Daa"
.HS 08
>PSTR "39aa"
AND.E .HS 00
ASL .DA ASL.E+1-*
>PSTR "ASL"
.HS 04
>PSTR "06a"
.HS 05
>PSTR "16a"
.HS 06
>PSTR "0Eaa"
.HS 07
>PSTR "1Eaa"
.HS FF
>PSTR "0A"
ASL.E .HS 00
BCC .DA BCC.E+1-*
>PSTR "BCC"
.HS 06
>PSTR "90r"
BCC.E .HS 00
BCS .DA BCS.E+1-*
>PSTR "BCS"
.HS 06
>PSTR "B0r"
BCS.E .HS 00
BEQ .DA BEQ.E+1-*
>PSTR "BEQ"
.HS 06
>PSTR "F0r"
BEQ.E .HS 00
BIT .DA BIT.E+1-*
>PSTR "BIT"
.HS 04
>PSTR "24a"
.HS 06
>PSTR "2Caa"
BIT.E .HS 00
BMI .DA BMI.E+1-*
>PSTR "BMI"
.HS 06
>PSTR "30r"
BMI.E .HS 00
BNE .DA BNE.E+1-*
>PSTR "BNE"
.HS 06
>PSTR "D0r"
BNE.E .HS 00
BPL .DA BPL.E+1-*
>PSTR "BPL"
.HS 06
>PSTR "10r"
BPL.E .HS 00
BRK .DA BRK.E+1-*
>PSTR "BRK"
.HS FF
>PSTR "00"
BRK.E .HS 00
BVC .DA BVC.E+1-*
>PSTR "BVC"
.HS 06
>PSTR "50r"
BVC.E .HS 00
BVS .DA BVS.E+1-*
>PSTR "BVS"
.HS 06
>PSTR "70r"
BVS.E .HS 00
CLC .DA CLC.E+1-*
>PSTR "CLC"
.HS FF
>PSTR "18"
CLC.E .HS 00
CLD .DA CLD.E+1-*
>PSTR "CLD"
.HS FF
>PSTR "D8"
CLD.E .HS 00
CLI .DA CLI.E+1-*
>PSTR "CLI"
.HS FF
>PSTR "58"
CLI.E .HS 00
CLV .DA CLV.E+1-*
>PSTR "CLV"
.HS FF
>PSTR "B8"
CLV.E .HS 00
CMP .DA CMP.E+1-*
>PSTR "CMP"
.HS 01
>PSTR "C9a"
.HS 02
>PSTR "D1a"
.HS 03
>PSTR "C1a"
.HS 04
>PSTR "C5a"
.HS 05
>PSTR "D5a"
.HS 06
>PSTR "CDaa"
.HS 07
>PSTR "DDaa"
.HS 08
>PSTR "D9aa"
CMP.E .HS 00
CPX .DA CPX.E+1-*
>PSTR "CPX"
.HS 01
>PSTR "E0a"
.HS 04
>PSTR "E4a"
.HS 06
>PSTR "Ecaa"
CPX.E .HS 00
CPY .DA CPY.E+1-*
>PSTR "CPY"
.HS 01
>PSTR "C0a"
.HS 04
>PSTR "C4a"
.HS 06
>PSTR "Ccaa"
CPY.E .HS 00
DEC .DA DEC.E+1-*
>PSTR "DEC"
.HS 04
>PSTR "C6a"
.HS 05
>PSTR "D6a"
.HS 06
>PSTR "Ceaa"
.HS 07
>PSTR "Deaa"
DEC.E .HS 00
DEX .DA DEX.E+1-*
>PSTR "DEX"
.HS FF
>PSTR "CA"
DEX.E .HS 00
DEY .DA DEY.E+1-*
>PSTR "DEY"
.HS FF
>PSTR "88"
DEY.E .HS 00
EOR .DA EOR.E+1-*
>PSTR "EOR"
.HS 01
>PSTR "49a"
.HS 02
>PSTR "51a"
.HS 03
>PSTR "41a"
.HS 04
>PSTR "45a"
.HS 05
>PSTR "55a"
.HS 06
>PSTR "4Daa"
.HS 07
>PSTR "5Daa"
.HS 08
>PSTR "59aa"
EOR.E .HS 00
INC .DA INC.E+1-*
>PSTR "INC"
.HS 04
>PSTR "E6a"
.HS 05
>PSTR "F6a"
.HS 06
>PSTR "Eeaa"
.HS 07
>PSTR "Feaa"
INC.E .HS 00
INX .DA INX.E+1-*
>PSTR "INX"
.HS FF
>PSTR "E8"
INX.E .HS 00
INY .DA INY.E+1-*
>PSTR "INY"
.HS FF
>PSTR "C8"
INY.E .HS 00
JMP .DA JMP.E+1-*
>PSTR "JMP"
.HS 09
>PSTR "6Caa"
.HS 06
>PSTR "4Caa"
JMP.E .HS 00
JSR .DA JSR.E+1-*
>PSTR "JSR"
.HS 06
>PSTR "20aa"
JSR.E .HS 00
LDA .DA LDA.E+1-*
>PSTR "LDA"
.HS 01
>PSTR "A9a"
.HS 02
>PSTR "B1a"
.HS 03
>PSTR "A1a"
.HS 04
>PSTR "A5a"
.HS 05
>PSTR "B5a"
.HS 06
>PSTR "Adaa"
.HS 07
>PSTR "Bdaa"
.HS 08
>PSTR "B9aa"
LDA.E .HS 00
LDX .DA LDX.E+1-*
>PSTR "LDX"
.HS 01
>PSTR "A2a"
.HS 04
>PSTR "A6a"
.HS 0A
>PSTR "B6a"
.HS 06
>PSTR "Aeaa"
.HS 08
>PSTR "Beaa"
LDX.E .HS 00
LDY .DA LDY.E+1-*
>PSTR "LDY"
.HS 01
>PSTR "A0a"
.HS 04
>PSTR "A4a"
.HS 05
>PSTR "B4a"
.HS 06
>PSTR "Acaa"
.HS 07
>PSTR "Bcaa"
LDY.E .HS 00
LSR .DA LSR.E+1-*
>PSTR "LSR"
.HS 04
>PSTR "46a"
.HS 05
>PSTR "56a"
.HS 06
>PSTR "4Eaa"
.HS 07
>PSTR "5Eaa"
.HS FF
>PSTR "4A"
LSR.E .HS 00
NOP .DA NOP.E+1-*
>PSTR "NOP"
.HS FF
>PSTR "EA"
NOP.E .HS 00
ORA .DA ORA.E+1-*
>PSTR "ORA"
.HS 01
>PSTR "09a"
.HS 02
>PSTR "11a"
.HS 03
>PSTR "01a"
.HS 04
>PSTR "05a"
.HS 05
>PSTR "15a"
.HS 06
>PSTR "0Daa"
.HS 07
>PSTR "1Daa"
.HS 08
>PSTR "19aa"
ORA.E .HS 00
PHA .DA PHA.E+1-*
>PSTR "PHA"
.HS FF
>PSTR "48"
PHA.E .HS 00
PHP .DA PHP.E+1-*
>PSTR "PHP"
.HS FF
>PSTR "08"
PHP.E .HS 00
PLA .DA PLA.E+1-*
>PSTR "PLA"
.HS FF
>PSTR "68"
PLA.E .HS 00
PLP .DA PLP.E+1-*
>PSTR "PLP"
.HS FF
>PSTR "28"
PLP.E .HS 00
ROL .DA ROL.E+1-*
>PSTR "ROL"
.HS 04
>PSTR "26a"
.HS 05
>PSTR "36a"
.HS 06
>PSTR "2Eaa"
.HS 07
>PSTR "3Eaa"
.HS FF
>PSTR "2A"
ROL.E .HS 00
ROR .DA ROR.E+1-*
>PSTR "ROR"
.HS 04
>PSTR "66a"
.HS 05
>PSTR "76a"
.HS 06
>PSTR "6Eaa"
.HS 07
>PSTR "7Eaa"
.HS FF
>PSTR "6A"
ROR.E .HS 00
RTI .DA RTI.E+1-*
>PSTR "RTI"
.HS FF
>PSTR "40"
RTI.E .HS 00
RTS .DA RTS.E+1-*
>PSTR "RTS"
.HS FF
>PSTR "60"
RTS.E .HS 00
SBC .DA SBC.E+1-*
>PSTR "SBC"
.HS 01
>PSTR "E9a"
.HS 02
>PSTR "F1a"
.HS 03
>PSTR "E1a"
.HS 04
>PSTR "E5a"
.HS 05
>PSTR "F5a"
.HS 06
>PSTR "Edaa"
.HS 07
>PSTR "Fdaa"
.HS 08
>PSTR "F9aa"
SBC.E .HS 00
SEC .DA SEC.E+1-*
>PSTR "SEC"
.HS FF
>PSTR "38"
SEC.E .HS 00
SED .DA SED.E+1-*
>PSTR "SED"
.HS FF
>PSTR "F8"
SED.E .HS 00
SEI .DA SEI.E+1-*
>PSTR "SEI"
.HS FF
>PSTR "78"
SEI.E .HS 00
STA .DA STA.E+1-*
>PSTR "STA"
.HS 02
>PSTR "91a"
.HS 03
>PSTR "81a"
.HS 04
>PSTR "85a"
.HS 05
>PSTR "95a"
.HS 06
>PSTR "8Daa"
.HS 07
>PSTR "9Daa"
.HS 08
>PSTR "99aa"
STA.E .HS 00
STX .DA STX.E+1-*
>PSTR "STX"
.HS 04
>PSTR "86a"
.HS 0A
>PSTR "96a"
.HS 06
>PSTR "8Eaa"
STX.E .HS 00
STY .DA STY.E+1-*
>PSTR "STY"
.HS 04
>PSTR "84a"
.HS 05
>PSTR "94a"
.HS 06
>PSTR "8Caa"
STY.E .HS 00
TAX .DA TAX.E+1-*
>PSTR "TAX"
.HS FF
>PSTR "AA"
TAX.E .HS 00
TAY .DA TAY.E+1-*
>PSTR "TAY"
.HS FF
>PSTR "A8"
TAY.E .HS 00
TSX .DA TSX.E+1-*
>PSTR "TSX"
.HS FF
>PSTR "BA"
TSX.E .HS 00
TXA .DA TXA.E+1-*
>PSTR "TXA"
.HS FF
>PSTR "8A"
TXA.E .HS 00
TXS .DA TXS.E+1-*
>PSTR "TXS"
.HS FF
>PSTR "9A"
TXS.E .HS 00
TYA .DA TYA.E+1-*
>PSTR "TYA"
.HS FF
>PSTR "98"
ADC .DA ADC.E+1-*
.DA #3,$$"ADC"
.DA #1,#3,$$"69a"
.DA #2,#3,$$"71a"
.DA #3,#3,$$"61a"
.DA #4,#3,$$"65a"
.DA #5,#3,$$"75a"
.DA #6,#4,$$"6Daa"
.DA #7,#4,$$"7Daa"
.DA #8,#4,$$"79aa"
ADC.E .HS 00
AND .DA AND.E+1-*
.DA #3,$$"AND"
.DA #1,#3,$$"29a"
.DA #2,#3,$$"31a"
.DA #3,#3,$$"21a"
.DA #4,#3,$$"25a"
.DA #5,#3,$$"35a"
.DA #6,#4,$$"2Daa"
.DA #7,#4,$$"3Daa"
.DA #8,#4,$$"39aa"
AND.E .HS 00
ASL .DA ASL.E+1-*
.DA #3,$$"ASL"
.DA #4,#3,$$"06a"
.DA #5,#3,$$"16a"
.DA #6,#4,$$"0Eaa"
.DA #7,#4,$$"1Eaa"
.DA #255,#2,$$"0A"
ASL.E .HS 00
BCC .DA BCC.E+1-*
.DA #3,$$"BCC"
.DA #6,#3,$$"90r"
BCC.E .HS 00
BCS .DA BCS.E+1-*
.DA #3,$$"BCS"
.DA #6,#3,$$"B0r"
BCS.E .HS 00
BEQ .DA BEQ.E+1-*
.DA #3,$$"BEQ"
.DA #6,#3,$$"F0r"
BEQ.E .HS 00
BIT .DA BIT.E+1-*
.DA #3,$$"BIT"
.DA #4,#3,$$"24a"
.DA #6,#4,$$"2Caa"
BIT.E .HS 00
BMI .DA BMI.E+1-*
.DA #3,$$"BMI"
.DA #6,#3,$$"30r"
BMI.E .HS 00
BNE .DA BNE.E+1-*
.DA #3,$$"BNE"
.DA #6,#3,$$"D0r"
BNE.E .HS 00
BPL .DA BPL.E+1-*
.DA #3,$$"BPL"
.DA #6,#3,$$"10r"
BPL.E .HS 00
BRK .DA BRK.E+1-*
.DA #3,$$"BRK"
.DA #255,#2,$$"00"
BRK.E .HS 00
BVC .DA BVC.E+1-*
.DA #3,$$"BVC"
.DA #6,#3,$$"50r"
BVC.E .HS 00
BVS .DA BVS.E+1-*
.DA #3,$$"BVS"
.DA #6,#3,$$"70r"
BVS.E .HS 00
CLC .DA CLC.E+1-*
.DA #3,$$"CLC"
.DA #255,#2,$$"18"
CLC.E .HS 00
CLD .DA CLD.E+1-*
.DA #3,$$"CLD"
.DA #255,#2,$$"D8"
CLD.E .HS 00
CLI .DA CLI.E+1-*
.DA #3,$$"CLI"
.DA #255,#2,$$"58"
CLI.E .HS 00
CLV .DA CLV.E+1-*
.DA #3,$$"CLV"
.DA #255,#2,$$"B8"
CLV.E .HS 00
CMP .DA CMP.E+1-*
.DA #3,$$"CMP"
.DA #1,#3,$$"C9a"
.DA #2,#3,$$"D1a"
.DA #3,#3,$$"C1a"
.DA #4,#3,$$"C5a"
.DA #5,#3,$$"D5a"
.DA #6,#4,$$"CDaa"
.DA #7,#4,$$"DDaa"
.DA #8,#4,$$"D9aa"
CMP.E .HS 00
CPX .DA CPX.E+1-*
.DA #3,$$"CPX"
.DA #1,#3,$$"E0a"
.DA #4,#3,$$"E4a"
.DA #6,#4,$$"Ecaa"
CPX.E .HS 00
CPY .DA CPY.E+1-*
.DA #3,$$"CPY"
.DA #1,#3,$$"C0a"
.DA #4,#3,$$"C4a"
.DA #6,#4,$$"Ccaa"
CPY.E .HS 00
DEC .DA DEC.E+1-*
.DA #3,$$"DEC"
.DA #4,#3,$$"C6a"
.DA #5,#3,$$"D6a"
.DA #6,#4,$$"Ceaa"
.DA #7,#4,$$"Deaa"
DEC.E .HS 00
DEX .DA DEX.E+1-*
.DA #3,$$"DEX"
.DA #255,#2,$$"CA"
DEX.E .HS 00
DEY .DA DEY.E+1-*
.DA #3,$$"DEY"
.DA #255,#2,$$"88"
DEY.E .HS 00
EOR .DA EOR.E+1-*
.DA #3,$$"EOR"
.DA #1,#3,$$"49a"
.DA #2,#3,$$"51a"
.DA #3,#3,$$"41a"
.DA #4,#3,$$"45a"
.DA #5,#3,$$"55a"
.DA #6,#4,$$"4Daa"
.DA #7,#4,$$"5Daa"
.DA #8,#4,$$"59aa"
EOR.E .HS 00
INC .DA INC.E+1-*
.DA #3,$$"INC"
.DA #4,#3,$$"E6a"
.DA #5,#3,$$"F6a"
.DA #6,#4,$$"EEaa"
.DA #7,#4,$$"FEaa"
INC.E .HS 00
INX .DA INX.E+1-*
.DA #3,$$"INX"
.DA #255,#2,$$"E8"
INX.E .HS 00
INY .DA INY.E+1-*
.DA #3,$$"INY"
.DA #255,#2,$$"C8"
INY.E .HS 00
JMP .DA JMP.E+1-*
.DA #3,$$"JMP"
.DA #9,#4,$$"6Caa"
.DA #6,#4,$$"4Caa"
JMP.E .HS 00
JSR .DA JSR.E+1-*
.DA #3,$$"JSR"
.DA #6,#4,$$"20aa"
JSR.E .HS 00
LDA .DA LDA.E+1-*
.DA #3,$$"LDA"
.DA #1,#3,$$"A9a"
.DA #2,#3,$$"B1a"
.DA #3,#3,$$"A1a"
.DA #4,#3,$$"A5a"
.DA #5,#3,$$"B5a"
.DA #6,#4,$$"ADaa"
.DA #7,#4,$$"BDaa"
.DA #8,#4,$$"B9aa"
LDA.E .HS 00
LDX .DA LDX.E+1-*
.DA #3,$$"LDX"
.DA #1,#3,$$"A2a"
.DA #4,#3,$$"A6a"
.DA #10,#3,$$"B6a"
.DA #6,#4,$$"AEaa"
.DA #8,#4,$$"BEaa"
LDX.E .HS 00
LDY .DA LDY.E+1-*
.DA #3,$$"LDY"
.DA #1,#3,$$"A0a"
.DA #4,#3,$$"A4a"
.DA #5,#3,$$"B4a"
.DA #6,#4,$$"ACaa"
.DA #7,#4,$$"BCaa"
LDY.E .HS 00
LSR .DA LSR.E+1-*
.DA #3,$$"LSR"
.DA #4,#3,$$"46a"
.DA #5,#3,$$"56a"
.DA #6,#4,$$"4Eaa"
.DA #7,#4,$$"5Eaa"
.DA #255,#2,$$"4A"
LSR.E .HS 00
NOP .DA NOP.E+1-*
.DA #3,$$"NOP"
.DA #255,#2,$$"EA"
NOP.E .HS 00
ORA .DA ORA.E+1-*
.DA #3,$$"ORA"
.DA #1,#3,$$"09a"
.DA #2,#3,$$"11a"
.DA #3,#3,$$"01a"
.DA #4,#3,$$"05a"
.DA #5,#3,$$"15a"
.DA #6,#4,$$"0Daa"
.DA #7,#4,$$"1Daa"
.DA #8,#4,$$"19aa"
ORA.E .HS 00
PHA .DA PHA.E+1-*
.DA #3,$$"PHA"
.DA #255,#2,$$"48"
PHA.E .HS 00
PHP .DA PHP.E+1-*
.DA #3,$$"PHP"
.DA #255,#2,$$"08"
PHP.E .HS 00
PLA .DA PLA.E+1-*
.DA #3,$$"PLA"
.DA #255,#2,$$"68"
PLA.E .HS 00
PLP .DA PLP.E+1-*
.DA #3,$$"PLP"
.DA #255,#2,$$"28"
PLP.E .HS 00
ROL .DA ROL.E+1-*
.DA #3,$$"ROL"
.DA #4,#3,$$"26a"
.DA #5,#3,$$"36a"
.DA #6,#4,$$"2Eaa"
.DA #7,#4,$$"3Eaa"
.DA #255,#2,$$"2A"
ROL.E .HS 00
ROR .DA ROR.E+1-*
.DA #3,$$"ROR"
.DA #4,#3,$$"66a"
.DA #5,#3,$$"76a"
.DA #6,#4,$$"6Eaa"
.DA #7,#4,$$"7Eaa"
.DA #255,#2,$$"6A"
ROR.E .HS 00
RTI .DA RTI.E+1-*
.DA #3,$$"RTI"
.DA #255,#2,$$"40"
RTI.E .HS 00
RTS .DA RTS.E+1-*
.DA #3,$$"RTS"
.DA #255,#2,$$"60"
RTS.E .HS 00
SBC .DA SBC.E+1-*
.DA #3,$$"SBC"
.DA #1,#3,$$"E9a"
.DA #2,#3,$$"F1a"
.DA #3,#3,$$"E1a"
.DA #4,#3,$$"E5a"
.DA #5,#3,$$"F5a"
.DA #6,#4,$$"EDaa"
.DA #7,#4,$$"FDaa"
.DA #8,#4,$$"F9aa"
SBC.E .HS 00
SEC .DA SEC.E+1-*
.DA #3,$$"SEC"
.DA #255,#2,$$"38"
SEC.E .HS 00
SED .DA SED.E+1-*
.DA #3,$$"SED"
.DA #255,#2,$$"F8"
SED.E .HS 00
SEI .DA SEI.E+1-*
.DA #3,$$"SEI"
.DA #255,#2,$$"78"
SEI.E .HS 00
STA .DA STA.E+1-*
.DA #3,$$"STA"
.DA #2,#3,$$"91a"
.DA #3,#3,$$"81a"
.DA #4,#3,$$"85a"
.DA #5,#3,$$"95a"
.DA #6,#4,$$"8Daa"
.DA #7,#4,$$"9Daa"
.DA #8,#4,$$"99aa"
STA.E .HS 00
STX .DA STX.E+1-*
.DA #3,$$"STX"
.DA #4,#3,$$"86a"
.DA #10,#3,$$"96a"
.DA #6,#4,$$"8Eaa"
STX.E .HS 00
STY .DA STY.E+1-*
.DA #3,$$"STY"
.DA #4,#3,$$"84a"
.DA #5,#3,$$"94a"
.DA #6,#4,$$"8Caa"
STY.E .HS 00
TAX .DA TAX.E+1-*
.DA #3,$$"TAX"
.DA #255,#2,$$"AA"
TAX.E .HS 00
TAY .DA TAY.E+1-*
.DA #3,$$"TAY"
.DA #255,#2,$$"A8"
TAY.E .HS 00
TSX .DA TSX.E+1-*
.DA #3,$$"TSX"
.DA #255,#2,$$"BA"
TSX.E .HS 00
TXA .DA TXA.E+1-*
.DA #3,$$"TXA"
.DA #255,#2,$$"8A"
TXA.E .HS 00
TXS .DA TXS.E+1-*
.DA #3,$$"TXS"
.DA #255,#2,$$"9A"
TXS.E .HS 00
TYA .DA TYA.E+1-*
.DA #3,$$"TYA"
.DA #255,#2,$$"98"
TYA.E .HS 00
.HS 0000
*---------------------------------------

View File

@ -4,12 +4,6 @@ AUTO 4,1
.LIST OFF
.OR $0
.TF /A2OSX.BUILD/BIN/DEV/ASM.T.6502
*---------------------------------------
.MA PSTR
.DA #:1-*-1
.AS "]1"
:1 .EQ *
.EM
*---------------------------------------
.DA T.ADDR.MODES
.DA T.REGISTERS

View File

@ -3,32 +3,32 @@ PREFIX /A2OSX.BUILD
AUTO 4,1
*---------------------------------------
T.ADDR.MODES .EQ *
>PSTR "#a"
>PSTR "(a)"
>PSTR "(a),Y"
>PSTR "(a,S),Y"
>PSTR "(a,X)"
>PSTR "[a]"
>PSTR "[a],Y"
>PSTR "a"
>PSTR "a,S"
>PSTR "a,X"
>PSTR "aa"
>PSTR "aa,X"
>PSTR "aa,Y"
>PSTR "aaa"
>PSTR "aaa,X"
>PSTR "(aa)"
>PSTR "(aa,X)"
>PSTR "[aa]"
>PSTR "a,Y"
>PSTR "a,b"
.DA #2,$$"#a"
.DA #3,$$"(a)"
.DA #5,$$"(a),Y"
.DA #7,$$"(a,S),Y"
.DA #5,$$"(a,X)"
.DA #3,$$"[a]"
.DA #5,$$"[a],Y"
.DA #1,$$"a"
.DA #3,$$"a,S"
.DA #3,$$"a,X"
.DA #2,$$"aa"
.DA #4,$$"aa,X"
.DA #4,$$"aa,Y"
.DA #3,$$"aaa"
.DA #5,$$"aaa,X"
.DA #4,$$"(aa)"
.DA #6,$$"(aa,X)"
.DA #4,$$"[aa]"
.DA #3,$$"a,Y"
.DA #3,$$"a,b"
.HS 00
*---------------------------------------
T.REGISTERS .EQ *
>PSTR "Y"
>PSTR "S"
>PSTR "X"
.DA #1,$$"Y"
.DA #1,$$"S"
.DA #1,$$"X"
.HS 00
*---------------------------------------
MAN

File diff suppressed because it is too large Load Diff

View File

@ -4,12 +4,6 @@ AUTO 4,1
.LIST OFF
.OR $0
.TF /A2OSX.BUILD/BIN/DEV/ASM.T.65816
*---------------------------------------
.MA PSTR
.DA #:1-*-1
.AS "]1"
:1 .EQ *
.EM
*---------------------------------------
.DA T.ADDR.MODES
.DA T.REGISTERS

View File

@ -3,23 +3,23 @@ PREFIX /A2OSX.BUILD
AUTO 4,1
*---------------------------------------
T.ADDR.MODES .EQ *
>PSTR "#a"
>PSTR "(a)"
>PSTR "(a),Y"
>PSTR "(a,X)"
>PSTR "a"
>PSTR "a,X"
>PSTR "aa"
>PSTR "aa,X"
>PSTR "aa,Y"
>PSTR "(aa)"
>PSTR "(aa,X)"
>PSTR "a,Y"
.DA #2,$$"#a"
.DA #3,$$"(a)"
.DA #5,$$"(a),Y"
.DA #5,$$"(a,X)"
.DA #1,$$"a"
.DA #3,$$"a,X"
.DA #2,$$"aa"
.DA #4,$$"aa,X"
.DA #4,$$"aa,Y"
.DA #4,$$"(aa)"
.DA #6,$$"(aa,X)"
.DA #3,$$"a,Y"
.HS 00
*---------------------------------------
T.REGISTERS .EQ *
>PSTR "Y"
>PSTR "X"
.DA #1,$$"Y"
.DA #1,$$"X"
.HS 00
*---------------------------------------
MAN

View File

@ -3,563 +3,383 @@ PREFIX /A2OSX.BUILD
AUTO 4,1
*---------------------------------------
T.OPCODES .EQ *
ADC .DA ADC.E+1-*
>PSTR "ADC"
.HS 01
>PSTR "69a"
.HS 02
>PSTR "72a"
.HS 03
>PSTR "71a"
.HS 04
>PSTR "61a"
.HS 05
>PSTR "65a"
.HS 06
>PSTR "75a"
.HS 07
>PSTR "6Daa"
.HS 08
>PSTR "7Daa"
.HS 09
>PSTR "79aa"
ADC.E .HS 00
AND .DA AND.E+1-*
>PSTR "AND"
.HS 01
>PSTR "29a"
.HS 02
>PSTR "32a"
.HS 03
>PSTR "31a"
.HS 04
>PSTR "21a"
.HS 05
>PSTR "25a"
.HS 06
>PSTR "35a"
.HS 07
>PSTR "2Daa"
.HS 08
>PSTR "3Daa"
.HS 09
>PSTR "39aa"
AND.E .HS 00
ASL .DA ASL.E+1-*
>PSTR "ASL"
.HS 05
>PSTR "06a"
.HS 06
>PSTR "16a"
.HS 07
>PSTR "0Eaa"
.HS 08
>PSTR "1Eaa"
.HS FF
>PSTR "0A"
ASL.E .HS 00
BCC .DA BCC.E+1-*
>PSTR "BCC"
.HS 07
>PSTR "90r"
BCC.E .HS 00
BCS .DA BCS.E+1-*
>PSTR "BCS"
.HS 07
>PSTR "B0r"
BCS.E .HS 00
BEQ .DA BEQ.E+1-*
>PSTR "BEQ"
.HS 07
>PSTR "F0r"
BEQ.E .HS 00
BIT .DA BIT.E+1-*
>PSTR "BIT"
.HS 01
>PSTR "89a"
.HS 05
>PSTR "24a"
.HS 06
>PSTR "34a"
.HS 07
>PSTR "2Caa"
.HS 08
>PSTR "3Caa"
BIT.E .HS 00
BMI .DA BMI.E+1-*
>PSTR "BMI"
.HS 07
>PSTR "30r"
BMI.E .HS 00
BNE .DA BNE.E+1-*
>PSTR "BNE"
.HS 07
>PSTR "D0r"
BNE.E .HS 00
BPL .DA BPL.E+1-*
>PSTR "BPL"
.HS 07
>PSTR "10r"
BPL.E .HS 00
BRA .DA BRA.E+1-*
>PSTR "BRA"
.HS 07
>PSTR "80r"
BRA.E .HS 00
BRK .DA BRK.E+1-*
>PSTR "BRK"
.HS FF
>PSTR "00"
BRK.E .HS 00
BVC .DA BVC.E+1-*
>PSTR "BVC"
.HS 07
>PSTR "50r"
BVC.E .HS 00
BVS .DA BVS.E+1-*
>PSTR "BVS"
.HS 07
>PSTR "70r"
BVS.E .HS 00
CLC .DA CLC.E+1-*
>PSTR "CLC"
.HS FF
>PSTR "18"
CLC.E .HS 00
CLD .DA CLD.E+1-*
>PSTR "CLD"
.HS FF
>PSTR "D8"
CLD.E .HS 00
CLI .DA CLI.E+1-*
>PSTR "CLI"
.HS FF
>PSTR "58"
CLI.E .HS 00
CLV .DA CLV.E+1-*
>PSTR "CLV"
.HS FF
>PSTR "B8"
CLV.E .HS 00
CMP .DA CMP.E+1-*
>PSTR "CMP"
.HS 01
>PSTR "C9a"
.HS 02
>PSTR "D2a"
.HS 03
>PSTR "D1a"
.HS 04
>PSTR "C1a"
.HS 05
>PSTR "C5a"
.HS 06
>PSTR "D5a"
.HS 07
>PSTR "CDaa"
.HS 08
>PSTR "DDaa"
.HS 09
>PSTR "D9aa"
CMP.E .HS 00
CPX .DA CPX.E+1-*
>PSTR "CPX"
.HS 01
>PSTR "E0a"
.HS 05
>PSTR "E4a"
.HS 07
>PSTR "ECaa"
CPX.E .HS 00
CPY .DA CPY.E+1-*
>PSTR "CPY"
.HS 01
>PSTR "C0a"
.HS 05
>PSTR "C4a"
.HS 07
>PSTR "CCaa"
CPY.E .HS 00
DEC .DA DEC.E+1-*
>PSTR "DEC"
.HS 05
>PSTR "C6a"
.HS 06
>PSTR "D6a"
.HS 07
>PSTR "CEaa"
.HS 08
>PSTR "DEaa"
.HS FF
>PSTR "3A"
DEC.E .HS 00
DEX .DA DEX.E+1-*
>PSTR "DEX"
.HS FF
>PSTR "CA"
DEX.E .HS 00
DEY .DA DEY.E+1-*
>PSTR "DEY"
.HS FF
>PSTR "88"
DEY.E .HS 00
EOR .DA EOR.E+1-*
>PSTR "EOR"
.HS 01
>PSTR "49a"
.HS 02
>PSTR "52a"
.HS 03
>PSTR "51a"
.HS 04
>PSTR "41a"
.HS 05
>PSTR "45a"
.HS 06
>PSTR "55a"
.HS 07
>PSTR "4Daa"
.HS 08
>PSTR "5Daa"
.HS 09
>PSTR "59aa"
EOR.E .HS 00
INC .DA INC.E+1-*
>PSTR "INC"
.HS 05
>PSTR "E6a"
.HS 06
>PSTR "F6a"
.HS 07
>PSTR "EEaa"
.HS 08
>PSTR "FEaa"
.HS FF
>PSTR "1A"
INC.E .HS 00
INX .DA INX.E+1-*
>PSTR "INX"
.HS FF
>PSTR "E8"
INX.E .HS 00
INY .DA INY.E+1-*
>PSTR "INY"
.HS FF
>PSTR "C8"
INY.E .HS 00
JMP .DA JMP.E+1-*
>PSTR "JMP"
.HS 0A
>PSTR "6Caa"
.HS 0B
>PSTR "7Caa"
.HS 07
>PSTR "4Caa"
JMP.E .HS 00
JSR .DA JSR.E+1-*
>PSTR "JSR"
.HS 07
>PSTR "20aa"
JSR.E .HS 00
LDA .DA LDA.E+1-*
>PSTR "LDA"
.HS 01
>PSTR "A9a"
.HS 02
>PSTR "B2a"
.HS 03
>PSTR "B1a"
.HS 04
>PSTR "A1a"
.HS 05
>PSTR "A5a"
.HS 06
>PSTR "B5a"
.HS 07
>PSTR "ADaa"
.HS 08
>PSTR "BDaa"
.HS 09
>PSTR "B9aa"
LDA.E .HS 00
LDX .DA LDX.E+1-*
>PSTR "LDX"
.HS 01
>PSTR "A2a"
.HS 05
>PSTR "A6a"
.HS 0C
>PSTR "B6a"
.HS 07
>PSTR "AEaa"
.HS 09
>PSTR "BEaa"
LDX.E .HS 00
LDY .DA LDY.E+1-*
>PSTR "LDY"
.HS 01
>PSTR "A0a"
.HS 05
>PSTR "A4a"
.HS 06
>PSTR "B4a"
.HS 07
>PSTR "ACaa"
.HS 08
>PSTR "BCaa"
LDY.E .HS 00
LSR .DA LSR.E+1-*
>PSTR "LSR"
.HS 05
>PSTR "46a"
.HS 06
>PSTR "56a"
.HS 07
>PSTR "4Eaa"
.HS 08
>PSTR "5Eaa"
.HS FF
>PSTR "4A"
LSR.E .HS 00
NOP .DA NOP.E+1-*
>PSTR "NOP"
.HS FF
>PSTR "EA"
NOP.E .HS 00
ORA .DA ORA.E+1-*
>PSTR "ORA"
.HS 01
>PSTR "09a"
.HS 02
>PSTR "12a"
.HS 03
>PSTR "11a"
.HS 04
>PSTR "01a"
.HS 05
>PSTR "05a"
.HS 06
>PSTR "15a"
.HS 07
>PSTR "0Daa"
.HS 08
>PSTR "1Daa"
.HS 09
>PSTR "19aa"
ORA.E .HS 00
PHA .DA PHA.E+1-*
>PSTR "PHA"
.HS FF
>PSTR "48"
PHA.E .HS 00
PHP .DA PHP.E+1-*
>PSTR "PHP"
.HS FF
>PSTR "08"
PHP.E .HS 00
PHX .DA PHX.E+1-*
>PSTR "PHX"
.HS FF
>PSTR "DA"
PHX.E .HS 00
PHY .DA PHY.E+1-*
>PSTR "PHY"
.HS FF
>PSTR "5A"
PHY.E .HS 00
PLA .DA PLA.E+1-*
>PSTR "PLA"
.HS FF
>PSTR "68"
PLA.E .HS 00
PLP .DA PLP.E+1-*
>PSTR "PLP"
.HS FF
>PSTR "28"
PLP.E .HS 00
PLX .DA PLX.E+1-*
>PSTR "PLX"
.HS FF
>PSTR "FA"
PLX.E .HS 00
PLY .DA PLY.E+1-*
>PSTR "PLY"
.HS FF
>PSTR "7A"
PLY.E .HS 00
ROL .DA ROL.E+1-*
>PSTR "ROL"
.HS 05
>PSTR "26a"
.HS 06
>PSTR "36a"
.HS 07
>PSTR "2Eaa"
.HS 08
>PSTR "3Eaa"
.HS FF
>PSTR "2A"
ROL.E .HS 00
ROR .DA ROR.E+1-*
>PSTR "ROR"
.HS 05
>PSTR "66a"
.HS 06
>PSTR "76a"
.HS 07
>PSTR "6Eaa"
.HS 08
>PSTR "7Eaa"
.HS FF
>PSTR "6A"
ROR.E .HS 00
RTI .DA RTI.E+1-*
>PSTR "RTI"
.HS FF
>PSTR "40"
RTI.E .HS 00
RTS .DA RTS.E+1-*
>PSTR "RTS"
.HS FF
>PSTR "60"
RTS.E .HS 00
SBC .DA SBC.E+1-*
>PSTR "SBC"
.HS 01
>PSTR "E9a"
.HS 02
>PSTR "F2a"
.HS 03
>PSTR "F1a"
.HS 04
>PSTR "E1a"
.HS 05
>PSTR "E5a"
.HS 06
>PSTR "F5a"
.HS 07
>PSTR "EDaa"
.HS 08
>PSTR "FDaa"
.HS 09
>PSTR "F9aa"
SBC.E .HS 00
SEC .DA SEC.E+1-*
>PSTR "SEC"
.HS FF
>PSTR "38"
SEC.E .HS 00
SED .DA SED.E+1-*
>PSTR "SED"
.HS FF
>PSTR "F8"
SED.E .HS 00
SEI .DA SEI.E+1-*
>PSTR "SEI"
.HS FF
>PSTR "78"
SEI.E .HS 00
STA .DA STA.E+1-*
>PSTR "STA"
.HS 02
>PSTR "92a"
.HS 03
>PSTR "91a"
.HS 04
>PSTR "81a"
.HS 05
>PSTR "85a"
.HS 06
>PSTR "95a"
.HS 07
>PSTR "8Daa"
.HS 08
>PSTR "9Daa"
.HS 09
>PSTR "99aa"
STA.E .HS 00
STP .DA STP.E+1-*
>PSTR "STP"
.HS FF
>PSTR "DB"
STP.E .HS 00
STX .DA STX.E+1-*
>PSTR "STX"
.HS 05
>PSTR "86a"
.HS 0C
>PSTR "96a"
.HS 07
>PSTR "8Eaa"
STX.E .HS 00
STY .DA STY.E+1-*
>PSTR "STY"
.HS 05
>PSTR "84a"
.HS 06
>PSTR "94a"
.HS 07
>PSTR "8Caa"
STY.E .HS 00
STZ .DA STZ.E+1-*
>PSTR "STZ"
.HS 05
>PSTR "64a"
.HS 06
>PSTR "74a"
.HS 07
>PSTR "9Caa"
.HS 08
>PSTR "9Eaa"
STZ.E .HS 00
TAX .DA TAX.E+1-*
>PSTR "TAX"
.HS FF
>PSTR "AA"
TAX.E .HS 00
TAY .DA TAY.E+1-*
>PSTR "TAY"
.HS FF
>PSTR "A8"
TAY.E .HS 00
TRB .DA TRB.E+1-*
>PSTR "TRB"
.HS 05
>PSTR "14a"
.HS 07
>PSTR "1Caa"
TRB.E .HS 00
TSB .DA TSB.E+1-*
>PSTR "TSB"
.HS 05
>PSTR "04a"
.HS 07
>PSTR "0Caa"
TSB.E .HS 00
TSX .DA TSX.E+1-*
>PSTR "TSX"
.HS FF
>PSTR "BA"
TSX.E .HS 00
TXA .DA TXA.E+1-*
>PSTR "TXA"
.HS FF
>PSTR "8A"
TXA.E .HS 00
TXS .DA TXS.E+1-*
>PSTR "TXS"
.HS FF
>PSTR "9A"
TXS.E .HS 00
TYA .DA TYA.E+1-*
>PSTR "TYA"
.HS FF
>PSTR "98"
TYA.E .HS 00
WAI .DA WAI.E+1-*
>PSTR "WAI"
.HS FF
>PSTR "CB"
ADC .DA ADC.E+1-*
.DA #3,$$"ADC"
.DA #1,#3,$$"69a"
.DA #2,#3,$$"72a"
.DA #3,#3,$$"71a"
.DA #4,#3,$$"61a"
.DA #5,#3,$$"65a"
.DA #6,#3,$$"75a"
.DA #7,#4,$$"6Daa"
.DA #8,#4,$$"7Daa"
.DA #9,#4,$$"79aa"
ADC.E .HS 00
AND .DA AND.E+1-*
.DA #3,$$"AND"
.DA #1,#3,$$"29a"
.DA #2,#3,$$"32a"
.DA #3,#3,$$"31a"
.DA #4,#3,$$"21a"
.DA #5,#3,$$"25a"
.DA #6,#3,$$"35a"
.DA #7,#4,$$"2Daa"
.DA #8,#4,$$"3Daa"
.DA #9,#4,$$"39aa"
AND.E .HS 00
ASL .DA ASL.E+1-*
.DA #3,$$"ASL"
.DA #5,#3,$$"06a"
.DA #6,#3,$$"16a"
.DA #7,#4,$$"0Eaa"
.DA #8,#4,$$"1Eaa"
.DA #255,#2,$$"0A"
ASL.E .HS 00
BCC .DA BCC.E+1-*
.DA #3,$$"BCC"
.DA #7,#3,$$"90r"
BCC.E .HS 00
BCS .DA BCS.E+1-*
.DA #3,$$"BCS"
.DA #7,#3,$$"B0r"
BCS.E .HS 00
BEQ .DA BEQ.E+1-*
.DA #3,$$"BEQ"
.DA #7,#3,$$"F0r"
BEQ.E .HS 00
BIT .DA BIT.E+1-*
.DA #3,$$"BIT"
.DA #1,#3,$$"89a"
.DA #5,#3,$$"24a"
.DA #6,#3,$$"34a"
.DA #7,#4,$$"2Caa"
.DA #8,#4,$$"3Caa"
BIT.E .HS 00
BMI .DA BMI.E+1-*
.DA #3,$$"BMI"
.DA #7,#3,$$"30r"
BMI.E .HS 00
BNE .DA BNE.E+1-*
.DA #3,$$"BNE"
.DA #7,#3,$$"D0r"
BNE.E .HS 00
BPL .DA BPL.E+1-*
.DA #3,$$"BPL"
.DA #7,#3,$$"10r"
BPL.E .HS 00
BRA .DA BRA.E+1-*
.DA #3,$$"BRA"
.DA #7,#3,$$"80r"
BRA.E .HS 00
BRK .DA BRK.E+1-*
.DA #3,$$"BRK"
.DA #255,#2,$$"00"
BRK.E .HS 00
BVC .DA BVC.E+1-*
.DA #3,$$"BVC"
.DA #7,#3,$$"50r"
BVC.E .HS 00
BVS .DA BVS.E+1-*
.DA #3,$$"BVS"
.DA #7,#3,$$"70r"
BVS.E .HS 00
CLC .DA CLC.E+1-*
.DA #3,$$"CLC"
.DA #255,#2,$$"18"
CLC.E .HS 00
CLD .DA CLD.E+1-*
.DA #3,$$"CLD"
.DA #255,#2,$$"D8"
CLD.E .HS 00
CLI .DA CLI.E+1-*
.DA #3,$$"CLI"
.DA #255,#2,$$"58"
CLI.E .HS 00
CLV .DA CLV.E+1-*
.DA #3,$$"CLV"
.DA #255,#2,$$"B8"
CLV.E .HS 00
CMP .DA CMP.E+1-*
.DA #3,$$"CMP"
.DA #1,#3,$$"C9a"
.DA #2,#3,$$"D2a"
.DA #3,#3,$$"D1a"
.DA #4,#3,$$"C1a"
.DA #5,#3,$$"C5a"
.DA #6,#3,$$"D5a"
.DA #7,#4,$$"CDaa"
.DA #8,#4,$$"DDaa"
.DA #9,#4,$$"D9aa"
CMP.E .HS 00
CPX .DA CPX.E+1-*
.DA #3,$$"CPX"
.DA #1,#3,$$"E0a"
.DA #5,#3,$$"E4a"
.DA #7,#4,$$"ECaa"
CPX.E .HS 00
CPY .DA CPY.E+1-*
.DA #3,$$"CPY"
.DA #1,#3,$$"C0a"
.DA #5,#3,$$"C4a"
.DA #7,#4,$$"CCaa"
CPY.E .HS 00
DEC .DA DEC.E+1-*
.DA #3,$$"DEC"
.DA #5,#3,$$"C6a"
.DA #6,#3,$$"D6a"
.DA #7,#4,$$"CEaa"
.DA #8,#4,$$"DEaa"
.DA #255,#2,$$"3A"
DEC.E .HS 00
DEX .DA DEX.E+1-*
.DA #3,$$"DEX"
.DA #255,#2,$$"CA"
DEX.E .HS 00
DEY .DA DEY.E+1-*
.DA #3,$$"DEY"
.DA #255,#2,$$"88"
DEY.E .HS 00
EOR .DA EOR.E+1-*
.DA #3,$$"EOR"
.DA #1,#3,$$"49a"
.DA #2,#3,$$"52a"
.DA #3,#3,$$"51a"
.DA #4,#3,$$"41a"
.DA #5,#3,$$"45a"
.DA #6,#3,$$"55a"
.DA #7,#4,$$"4Daa"
.DA #8,#4,$$"5Daa"
.DA #9,#4,$$"59aa"
EOR.E .HS 00
INC .DA INC.E+1-*
.DA #3,$$"INC"
.DA #5,#3,$$"E6a"
.DA #6,#3,$$"F6a"
.DA #7,#4,$$"EEaa"
.DA #8,#4,$$"FEaa"
.DA #255,#2,$$"1A"
INC.E .HS 00
INX .DA INX.E+1-*
.DA #3,$$"INX"
.DA #255,#2,$$"E8"
INX.E .HS 00
INY .DA INY.E+1-*
.DA #3,$$"INY"
.DA #255,#2,$$"C8"
INY.E .HS 00
JMP .DA JMP.E+1-*
.DA #3,$$"JMP"
.DA #10,#4,$$"6Caa"
.DA #11,#4,$$"7Caa"
.DA #7,#4,$$"4Caa"
JMP.E .HS 00
JSR .DA JSR.E+1-*
.DA #3,$$"JSR"
.DA #7,#4,$$"20aa"
JSR.E .HS 00
LDA .DA LDA.E+1-*
.DA #3,$$"LDA"
.DA #1,#3,$$"A9a"
.DA #2,#3,$$"B2a"
.DA #3,#3,$$"B1a"
.DA #4,#3,$$"A1a"
.DA #5,#3,$$"A5a"
.DA #6,#3,$$"B5a"
.DA #7,#4,$$"ADaa"
.DA #8,#4,$$"BDaa"
.DA #9,#4,$$"B9aa"
LDA.E .HS 00
LDX .DA LDX.E+1-*
.DA #3,$$"LDX"
.DA #1,#3,$$"A2a"
.DA #5,#3,$$"A6a"
.DA #12,#3,$$"B6a"
.DA #7,#4,$$"AEaa"
.DA #9,#4,$$"BEaa"
LDX.E .HS 00
LDY .DA LDY.E+1-*
.DA #3,$$"LDY"
.DA #1,#3,$$"A0a"
.DA #5,#3,$$"A4a"
.DA #6,#3,$$"B4a"
.DA #7,#4,$$"ACaa"
.DA #8,#4,$$"BCaa"
LDY.E .HS 00
LSR .DA LSR.E+1-*
.DA #3,$$"LSR"
.DA #5,#3,$$"46a"
.DA #6,#3,$$"56a"
.DA #7,#4,$$"4Eaa"
.DA #8,#4,$$"5Eaa"
.DA #255,#2,$$"4A"
LSR.E .HS 00
NOP .DA NOP.E+1-*
.DA #3,$$"NOP"
.DA #255,#2,$$"EA"
NOP.E .HS 00
ORA .DA ORA.E+1-*
.DA #3,$$"ORA"
.DA #1,#3,$$"09a"
.DA #2,#3,$$"12a"
.DA #3,#3,$$"11a"
.DA #4,#3,$$"01a"
.DA #5,#3,$$"05a"
.DA #6,#3,$$"15a"
.DA #7,#4,$$"0Daa"
.DA #8,#4,$$"1Daa"
.DA #9,#4,$$"19aa"
ORA.E .HS 00
PHA .DA PHA.E+1-*
.DA #3,$$"PHA"
.DA #255,#2,$$"48"
PHA.E .HS 00
PHP .DA PHP.E+1-*
.DA #3,$$"PHP"
.DA #255,#2,$$"08"
PHP.E .HS 00
PHX .DA PHX.E+1-*
.DA #3,$$"PHX"
.DA #255,#2,$$"DA"
PHX.E .HS 00
PHY .DA PHY.E+1-*
.DA #3,$$"PHY"
.DA #255,#2,$$"5A"
PHY.E .HS 00
PLA .DA PLA.E+1-*
.DA #3,$$"PLA"
.DA #255,#2,$$"68"
PLA.E .HS 00
PLP .DA PLP.E+1-*
.DA #3,$$"PLP"
.DA #255,#2,$$"28"
PLP.E .HS 00
PLX .DA PLX.E+1-*
.DA #3,$$"PLX"
.DA #255,#2,$$"FA"
PLX.E .HS 00
PLY .DA PLY.E+1-*
.DA #3,$$"PLY"
.DA #255,#2,$$"7A"
PLY.E .HS 00
ROL .DA ROL.E+1-*
.DA #3,$$"ROL"
.DA #5,#3,$$"26a"
.DA #6,#3,$$"36a"
.DA #7,#4,$$"2Eaa"
.DA #8,#4,$$"3Eaa"
.DA #255,#2,$$"2A"
ROL.E .HS 00
ROR .DA ROR.E+1-*
.DA #3,$$"ROR"
.DA #5,#3,$$"66a"
.DA #6,#3,$$"76a"
.DA #7,#4,$$"6Eaa"
.DA #8,#4,$$"7Eaa"
.DA #255,#2,$$"6A"
ROR.E .HS 00
RTI .DA RTI.E+1-*
.DA #3,$$"RTI"
.DA #255,#2,$$"40"
RTI.E .HS 00
RTS .DA RTS.E+1-*
.DA #3,$$"RTS"
.DA #255,#2,$$"60"
RTS.E .HS 00
SBC .DA SBC.E+1-*
.DA #3,$$"SBC"
.DA #1,#3,$$"E9a"
.DA #2,#3,$$"F2a"
.DA #3,#3,$$"F1a"
.DA #4,#3,$$"E1a"
.DA #5,#3,$$"E5a"
.DA #6,#3,$$"F5a"
.DA #7,#4,$$"EDaa"
.DA #8,#4,$$"FDaa"
.DA #9,#4,$$"F9aa"
SBC.E .HS 00
SEC .DA SEC.E+1-*
.DA #3,$$"SEC"
.DA #255,#2,$$"38"
SEC.E .HS 00
SED .DA SED.E+1-*
.DA #3,$$"SED"
.DA #255,#2,$$"F8"
SED.E .HS 00
SEI .DA SEI.E+1-*
.DA #3,$$"SEI"
.DA #255,#2,$$"78"
SEI.E .HS 00
STA .DA STA.E+1-*
.DA #3,$$"STA"
.DA #2,#3,$$"92a"
.DA #3,#3,$$"91a"
.DA #4,#3,$$"81a"
.DA #5,#3,$$"85a"
.DA #6,#3,$$"95a"
.DA #7,#4,$$"8Daa"
.DA #8,#4,$$"9Daa"
.DA #9,#4,$$"99aa"
STA.E .HS 00
STP .DA STP.E+1-*
.DA #3,$$"STP"
.DA #255,#2,$$"DB"
STP.E .HS 00
STX .DA STX.E+1-*
.DA #3,$$"STX"
.DA #5,#3,$$"86a"
.DA #12,#3,$$"96a"
.DA #7,#4,$$"8Eaa"
STX.E .HS 00
STY .DA STY.E+1-*
.DA #3,$$"STY"
.DA #5,#3,$$"84a"
.DA #6,#3,$$"94a"
.DA #7,#4,$$"8Caa"
STY.E .HS 00
STZ .DA STZ.E+1-*
.DA #3,$$"STZ"
.DA #5,#3,$$"64a"
.DA #6,#3,$$"74a"
.DA #7,#4,$$"9Caa"
.DA #8,#4,$$"9Eaa"
STZ.E .HS 00
TAX .DA TAX.E+1-*
.DA #3,$$"TAX"
.DA #255,#2,$$"AA"
TAX.E .HS 00
TAY .DA TAY.E+1-*
.DA #3,$$"TAY"
.DA #255,#2,$$"A8"
TAY.E .HS 00
TRB .DA TRB.E+1-*
.DA #3,$$"TRB"
.DA #5,#3,$$"14a"
.DA #7,#4,$$"1Caa"
TRB.E .HS 00
TSB .DA TSB.E+1-*
.DA #3,$$"TSB"
.DA #5,#3,$$"04a"
.DA #7,#4,$$"0Caa"
TSB.E .HS 00
TSX .DA TSX.E+1-*
.DA #3,$$"TSX"
.DA #255,#2,$$"BA"
TSX.E .HS 00
TXA .DA TXA.E+1-*
.DA #3,$$"TXA"
.DA #255,#2,$$"8A"
TXA.E .HS 00
TXS .DA TXS.E+1-*
.DA #3,$$"TXS"
.DA #255,#2,$$"9A"
TXS.E .HS 00
TYA .DA TYA.E+1-*
.DA #3,$$"TYA"
.DA #255,#2,$$"98"
TYA.E .HS 00
WAI .DA WAI.E+1-*
.DA #3,$$"WAI"
.DA #255,#2,$$"CB"
WAI.E .HS 00
.HS 0000
*---------------------------------------

View File

@ -4,12 +4,6 @@ AUTO 4,1
.LIST OFF
.OR $0
.TF /A2OSX.BUILD/BIN/DEV/ASM.T.65C02
*---------------------------------------
.MA PSTR
.DA #:1-*-1
.AS "]1"
:1 .EQ *
.EM
*---------------------------------------
.DA T.ADDR.MODES
.DA T.REGISTERS

View File

@ -3,24 +3,24 @@ PREFIX /A2OSX.BUILD
AUTO 4,1
*---------------------------------------
T.ADDR.MODES .EQ *
>PSTR "#a"
>PSTR "(a)"
>PSTR "(a),Y"
>PSTR "(a,X)"
>PSTR "a"
>PSTR "a,X"
>PSTR "aa"
>PSTR "aa,X"
>PSTR "aa,Y"
>PSTR "a,bb"
>PSTR "(aa)"
>PSTR "(aa,x)"
>PSTR "a,Y"
.DA #2,$$"#a"
.DA #3,$$"(a)"
.DA #5,$$"(a),Y"
.DA #5,$$"(a,X)"
.DA #1,$$"a"
.DA #3,$$"a,X"
.DA #2,$$"aa"
.DA #4,$$"aa,X"
.DA #4,$$"aa,Y"
.DA #4,$$"a,bb"
.DA #4,$$"(aa)"
.DA #6,$$"(aa,x)"
.DA #3,$$"a,Y"
.HS 00
*---------------------------------------
T.REGISTERS .EQ *
>PSTR "Y"
>PSTR "X"
.DA #1,$$"Y"
.DA #1,$$"X"
.HS 00
*---------------------------------------
MAN

File diff suppressed because it is too large Load Diff

View File

@ -4,12 +4,6 @@ AUTO 4,1
.LIST OFF
.OR $0
.TF /A2OSX.BUILD/BIN/DEV/ASM.T.65R02
*---------------------------------------
.MA PSTR
.DA #:1-*-1
.AS "]1"
:1 .EQ *
.EM
*---------------------------------------
.DA T.ADDR.MODES
.DA T.REGISTERS

View File

@ -3,58 +3,58 @@ PREFIX /A2OSX.BUILD
AUTO 4,1
*---------------------------------------
T.ADDR.MODES .EQ *
>PSTR "R0"
>PSTR "R1"
>PSTR "R2"
>PSTR "R3"
>PSTR "R4"
>PSTR "R5"
>PSTR "R6"
>PSTR "R7"
>PSTR "R8"
>PSTR "R9"
>PSTR "R10"
>PSTR "R11"
>PSTR "R12"
>PSTR "R13"
>PSTR "R14"
>PSTR "R15"
>PSTR "r"
>PSTR "@R0"
>PSTR "@R1"
>PSTR "@R2"
>PSTR "@R3"
>PSTR "@R4"
>PSTR "@R5"
>PSTR "@R6"
>PSTR "@R7"
>PSTR "@R8"
>PSTR "@R9"
>PSTR "@R10"
>PSTR "@R11"
>PSTR "@R12"
>PSTR "@R13"
>PSTR "@R14"
>PSTR "@R15"
.DA #2,$$"R0"
.DA #2,$$"R1"
.DA #2,$$"R2"
.DA #2,$$"R3"
.DA #2,$$"R4"
.DA #2,$$"R5"
.DA #2,$$"R6"
.DA #2,$$"R7"
.DA #2,$$"R8"
.DA #2,$$"R9"
.DA #3,$$"R10"
.DA #3,$$"R11"
.DA #3,$$"R12"
.DA #3,$$"R13"
.DA #3,$$"R14"
.DA #3,$$"R15"
.DA #2,$$"aa"
.DA #3,$$"@R0"
.DA #3,$$"@R1"
.DA #3,$$"@R2"
.DA #3,$$"@R3"
.DA #3,$$"@R4"
.DA #3,$$"@R5"
.DA #3,$$"@R6"
.DA #3,$$"@R7"
.DA #3,$$"@R8"
.DA #3,$$"@R9"
.DA #4,$$"@R10"
.DA #4,$$"@R11"
.DA #4,$$"@R12"
.DA #4,$$"@R13"
.DA #4,$$"@R14"
.DA #4,$$"@R15"
.HS 00
*---------------------------------------
T.REGISTERS .EQ *
>PSTR "R0"
>PSTR "R1"
>PSTR "R2"
>PSTR "R3"
>PSTR "R4"
>PSTR "R5"
>PSTR "R6"
>PSTR "R7"
>PSTR "R8"
>PSTR "R9"
>PSTR "R10"
>PSTR "R11"
>PSTR "R12"
>PSTR "R13"
>PSTR "R14"
>PSTR "R15"
.DA #2,$$"R0"
.DA #2,$$"R1"
.DA #2,$$"R2"
.DA #2,$$"R3"
.DA #2,$$"R4"
.DA #2,$$"R5"
.DA #2,$$"R6"
.DA #2,$$"R7"
.DA #2,$$"R8"
.DA #2,$$"R9"
.DA #3,$$"R10"
.DA #3,$$"R11"
.DA #3,$$"R12"
.DA #3,$$"R13"
.DA #3,$$"R14"
.DA #3,$$"R15"
.HS 00
*---------------------------------------
MAN

View File

@ -3,589 +3,336 @@ PREFIX /A2OSX.BUILD
AUTO 4,1
*---------------------------------------
T.OPCODES .EQ *
ADD .DA ADD.E+1-*
>PSTR "ADD"
.HS 01
>PSTR "A0"
.HS 02
>PSTR "A1"
.HS 03
>PSTR "A2"
.HS 04
>PSTR "A3"
.HS 05
>PSTR "A4"
.HS 06
>PSTR "A5"
.HS 07
>PSTR "A6"
.HS 08
>PSTR "A7"
.HS 09
>PSTR "A8"
.HS 0A
>PSTR "A9"
.HS 0B
>PSTR "AA"
.HS 0C
>PSTR "AB"
.HS 0D
>PSTR "AC"
.HS 0E
>PSTR "AD"
.HS 0F
>PSTR "AE"
.HS 10
>PSTR "AF"
ADD.E .HS 00
BC .DA BC.E+1-*
>PSTR "BC"
.HS 11
>PSTR "03r"
BC.E .HS 00
BK .DA BK.E+1-*
>PSTR "BK"
.HS 00
>PSTR "0A"
BK.E .HS 00
BM .DA BM.E+1-*
>PSTR "BM"
.HS 11
>PSTR "05r"
BM.E .HS 00
BM1 .DA BM1.E+1-*
>PSTR "BM1"
.HS 11
>PSTR "08r"
BM1.E .HS 00
BNC .DA BNC.E+1-*
>PSTR "BNC"
.HS 11
>PSTR "02r"
BNC.E .HS 00
BNM1 .DA BNM1.E+1-*
>PSTR "BNM1"
.HS 11
>PSTR "09r"
BNM1.E .HS 00
BNZ .DA BNZ.E+1-*
>PSTR "BNZ"
.HS 11
>PSTR "07r"
BNZ.E .HS 00
BP .DA BP.E+1-*
>PSTR "BP"
.HS 11
>PSTR "04r"
BP.E .HS 00
BR .DA BR.E+1-*
>PSTR "BR"
.HS 11
>PSTR "01r"
BR.E .HS 00
BS .DA BS.E+1-*
>PSTR "BS"
.HS 11
>PSTR "0Dr"
BS.E .HS 00
BZ .DA BZ.E+1-*
>PSTR "BZ"
.HS 11
>PSTR "06r"
BZ.E .HS 00
CPR .DA CPR.E+1-*
>PSTR "CPR"
.HS 01
>PSTR "D0"
.HS 02
>PSTR "D1"
.HS 03
>PSTR "D2"
.HS 04
>PSTR "D3"
.HS 05
>PSTR "D4"
.HS 06
>PSTR "D5"
.HS 07
>PSTR "D6"
.HS 08
>PSTR "D7"
.HS 09
>PSTR "D8"
.HS 0A
>PSTR "D9"
.HS 0B
>PSTR "DA"
.HS 0C
>PSTR "DB"
.HS 0D
>PSTR "DC"
.HS 0E
>PSTR "DD"
.HS 0F
>PSTR "DE"
.HS 10
>PSTR "DF"
CPR.E .HS 00
DCR .DA DCR.E+1-*
>PSTR "DCR"
.HS 01
>PSTR "F0"
.HS 02
>PSTR "F1"
.HS 03
>PSTR "F2"
.HS 04
>PSTR "F3"
.HS 05
>PSTR "F4"
.HS 06
>PSTR "F5"
.HS 07
>PSTR "F6"
.HS 08
>PSTR "F7"
.HS 09
>PSTR "F8"
.HS 0A
>PSTR "F9"
.HS 0B
>PSTR "FA"
.HS 0C
>PSTR "FB"
.HS 0D
>PSTR "FC"
.HS 0E
>PSTR "FD"
.HS 0F
>PSTR "FE"
.HS 10
>PSTR "FF"
DCR.E .HS 00
INR .DA INR.E+1-*
>PSTR "INR"
.HS 01
>PSTR "E0"
.HS 02
>PSTR "E1"
.HS 03
>PSTR "E2"
.HS 04
>PSTR "E3"
.HS 05
>PSTR "E4"
.HS 06
>PSTR "E5"
.HS 07
>PSTR "E6"
.HS 08
>PSTR "E7"
.HS 09
>PSTR "E8"
.HS 0A
>PSTR "E9"
.HS 0B
>PSTR "EA"
.HS 0C
>PSTR "EB"
.HS 0D
>PSTR "EC"
.HS 0E
>PSTR "ED"
.HS 0F
>PSTR "EE"
.HS 10
>PSTR "EF"
INR.E .HS 00
LD .DA LD.E+1-*
>PSTR "LD"
.HS 01
>PSTR "20"
.HS 02
>PSTR "21"
.HS 03
>PSTR "22"
.HS 04
>PSTR "23"
.HS 05
>PSTR "24"
.HS 06
>PSTR "25"
.HS 07
>PSTR "26"
.HS 08
>PSTR "27"
.HS 09
>PSTR "28"
.HS 0A
>PSTR "29"
.HS 0B
>PSTR "2A"
.HS 0C
>PSTR "2B"
.HS 0D
>PSTR "2C"
.HS 0E
>PSTR "2D"
.HS 0F
>PSTR "2E"
.HS 10
>PSTR "2F"
.HS 12
>PSTR "40"
.HS 13
>PSTR "41"
.HS 14
>PSTR "42"
.HS 15
>PSTR "43"
.HS 16
>PSTR "44"
.HS 17
>PSTR "45"
.HS 18
>PSTR "46"
.HS 19
>PSTR "47"
.HS 1A
>PSTR "48"
.HS 1B
>PSTR "49"
.HS 1C
>PSTR "4A"
.HS 1D
>PSTR "4B"
.HS 1E
>PSTR "4C"
.HS 1F
>PSTR "4D"
.HS 20
>PSTR "4E"
.HS 21
>PSTR "4F"
LD.E .HS 00
LDD .DA LDD.E+1-*
>PSTR "LDD"
.HS 12
>PSTR "60"
.HS 13
>PSTR "61"
.HS 14
>PSTR "62"
.HS 15
>PSTR "63"
.HS 16
>PSTR "64"
.HS 17
>PSTR "65"
.HS 18
>PSTR "66"
.HS 19
>PSTR "67"
.HS 1A
>PSTR "68"
.HS 1B
>PSTR "69"
.HS 1C
>PSTR "6A"
.HS 1D
>PSTR "6B"
.HS 1E
>PSTR "6C"
.HS 1F
>PSTR "6D"
.HS 20
>PSTR "6E"
.HS 21
>PSTR "6F"
LDD.E .HS 00
POP .DA POP.E+1-*
>PSTR "POP"
.HS 12
>PSTR "80"
.HS 13
>PSTR "81"
.HS 14
>PSTR "82"
.HS 15
>PSTR "83"
.HS 16
>PSTR "84"
.HS 17
>PSTR "85"
.HS 18
>PSTR "86"
.HS 19
>PSTR "87"
.HS 1A
>PSTR "88"
.HS 1B
>PSTR "89"
.HS 1C
>PSTR "8A"
.HS 1D
>PSTR "8B"
.HS 1E
>PSTR "8C"
.HS 1F
>PSTR "8D"
.HS 20
>PSTR "8E"
.HS 21
>PSTR "8F"
POP.E .HS 00
POPD .DA POPD.E+1-*
>PSTR "POPD"
.HS 12
>PSTR "C0"
.HS 13
>PSTR "C1"
.HS 14
>PSTR "C2"
.HS 15
>PSTR "C3"
.HS 16
>PSTR "C4"
.HS 17
>PSTR "C5"
.HS 18
>PSTR "C6"
.HS 19
>PSTR "C7"
.HS 1A
>PSTR "C8"
.HS 1B
>PSTR "C9"
.HS 1C
>PSTR "CA"
.HS 1D
>PSTR "CB"
.HS 1E
>PSTR "CC"
.HS 1F
>PSTR "CD"
.HS 20
>PSTR "CE"
.HS 21
>PSTR "CF"
POPD.E .HS 00
RS .DA RS.E+1-*
>PSTR "RS"
.HS 00
>PSTR "0B"
RS.E .HS 00
RTN .DA RTN.E+1-*
>PSTR "RTN"
.HS 00
>PSTR "00r"
RTN.E .HS 00
SET .DA SET.E+1-*
>PSTR "SET"
.HS 01
>PSTR "10"
.HS 02
>PSTR "11"
.HS 03
>PSTR "12"
.HS 04
>PSTR "13"
.HS 05
>PSTR "14"
.HS 06
>PSTR "15"
.HS 07
>PSTR "16"
.HS 08
>PSTR "17"
.HS 09
>PSTR "18"
.HS 0A
>PSTR "19"
.HS 0B
>PSTR "1A"
.HS 0C
>PSTR "1B"
.HS 0D
>PSTR "1C"
.HS 0E
>PSTR "1D"
.HS 0F
>PSTR "1E"
.HS 10
>PSTR "1D"
SET.E .HS 00
ST .DA ST.E+1-*
>PSTR "ST"
.HS 01
>PSTR "30"
.HS 02
>PSTR "31"
.HS 03
>PSTR "32"
.HS 04
>PSTR "33"
.HS 05
>PSTR "34"
.HS 06
>PSTR "35"
.HS 07
>PSTR "36"
.HS 08
>PSTR "37"
.HS 09
>PSTR "38"
.HS 0A
>PSTR "39"
.HS 0B
>PSTR "3A"
.HS 0C
>PSTR "3B"
.HS 0D
>PSTR "3C"
.HS 0E
>PSTR "3D"
.HS 0F
>PSTR "3E"
.HS 10
>PSTR "3F"
.HS 12
>PSTR "50"
.HS 13
>PSTR "51"
.HS 14
>PSTR "52"
.HS 15
>PSTR "53"
.HS 16
>PSTR "54"
.HS 17
>PSTR "55"
.HS 18
>PSTR "56"
.HS 19
>PSTR "57"
.HS 1A
>PSTR "58"
.HS 1B
>PSTR "59"
.HS 1C
>PSTR "5A"
.HS 1D
>PSTR "5B"
.HS 1E
>PSTR "5C"
.HS 1F
>PSTR "5D"
.HS 20
>PSTR "5E"
.HS 21
>PSTR "5F"
ST.E .HS 00
STD .DA STD.E+1-*
>PSTR "STD"
.HS 12
>PSTR "70"
.HS 13
>PSTR "71"
.HS 14
>PSTR "72"
.HS 15
>PSTR "73"
.HS 16
>PSTR "74"
.HS 17
>PSTR "75"
.HS 18
>PSTR "76"
.HS 19
>PSTR "77"
.HS 1A
>PSTR "78"
.HS 1B
>PSTR "79"
.HS 1C
>PSTR "7A"
.HS 1D
>PSTR "7B"
.HS 1E
>PSTR "7C"
.HS 1F
>PSTR "7D"
.HS 20
>PSTR "7E"
.HS 21
>PSTR "7F"
STD.E .HS 00
STP .DA STP.E+1-*
>PSTR "STP"
.HS 12
>PSTR "90"
.HS 13
>PSTR "91"
.HS 14
>PSTR "92"
.HS 15
>PSTR "93"
.HS 16
>PSTR "94"
.HS 17
>PSTR "95"
.HS 18
>PSTR "96"
.HS 19
>PSTR "97"
.HS 1A
>PSTR "98"
.HS 1B
>PSTR "99"
.HS 1C
>PSTR "9A"
.HS 1D
>PSTR "9B"
.HS 1E
>PSTR "9C"
.HS 1F
>PSTR "9D"
.HS 20
>PSTR "9E"
.HS 21
>PSTR "9F"
STP.E .HS 00
SUB .DA SUB.E+1-*
>PSTR "SUB"
.HS 01
>PSTR "B0"
.HS 02
>PSTR "B1"
.HS 03
>PSTR "B2"
.HS 04
>PSTR "B3"
.HS 05
>PSTR "B4"
.HS 06
>PSTR "B5"
.HS 07
>PSTR "B6"
.HS 08
>PSTR "B7"
.HS 09
>PSTR "B8"
.HS 0A
>PSTR "B9"
.HS 0B
>PSTR "BA"
.HS 0C
>PSTR "BB"
.HS 0D
>PSTR "BC"
.HS 0E
>PSTR "BD"
.HS 0F
>PSTR "BE"
.HS 10
>PSTR "BF"
ADD .DA ADD.E+1-*
.DA #3,$$"ADD"
.DA #1,#2,$$"A0"
.DA #2,#2,$$"A1"
.DA #3,#2,$$"A2"
.DA #4,#2,$$"A3"
.DA #5,#2,$$"A4"
.DA #6,#2,$$"A5"
.DA #7,#2,$$"A6"
.DA #8,#2,$$"A7"
.DA #9,#2,$$"A8"
.DA #10,#2,$$"A9"
.DA #11,#2,$$"AA"
.DA #12,#2,$$"AB"
.DA #13,#2,$$"AC"
.DA #14,#2,$$"AD"
.DA #15,#2,$$"AE"
.DA #16,#2,$$"AF"
ADD.E .HS 00
BC .DA BC.E+1-*
.DA #2,$$"BC"
.DA #17,#3,$$"03r"
BC.E .HS 00
BK .DA BK.E+1-*
.DA #2,$$"BK"
.DA #255,#2,$$"0A"
BK.E .HS 00
BM .DA BM.E+1-*
.DA #2,$$"BM"
.DA #17,#3,$$"05r"
BM.E .HS 00
BM1 .DA BM1.E+1-*
.DA #3,$$"BM1"
.DA #17,#3,$$"08r"
BM1.E .HS 00
BNC .DA BNC.E+1-*
.DA #3,$$"BNC"
.DA #17,#3,$$"02r"
BNC.E .HS 00
BNM1 .DA BNM1.E+1-*
.DA #4,$$"BNM1"
.DA #17,#3,$$"09r"
BNM1.E .HS 00
BNZ .DA BNZ.E+1-*
.DA #3,$$"BNZ"
.DA #17,#3,$$"07r"
BNZ.E .HS 00
BP .DA BP.E+1-*
.DA #2,$$"BP"
.DA #17,#3,$$"04r"
BP.E .HS 00
BR .DA BR.E+1-*
.DA #2,$$"BR"
.DA #17,#3,$$"01r"
BR.E .HS 00
BS .DA BS.E+1-*
.DA #2,$$"BS"
.DA #17,#3,$$"0Dr"
BS.E .HS 00
BZ .DA BZ.E+1-*
.DA #2,$$"BZ"
.DA #17,#3,$$"06r"
BZ.E .HS 00
CPR .DA CPR.E+1-*
.DA #3,$$"CPR"
.DA #1,#2,$$"D0"
.DA #2,#2,$$"D1"
.DA #3,#2,$$"D2"
.DA #4,#2,$$"D3"
.DA #5,#2,$$"D4"
.DA #6,#2,$$"D5"
.DA #7,#2,$$"D6"
.DA #8,#2,$$"D7"
.DA #9,#2,$$"D8"
.DA #10,#2,$$"D9"
.DA #11,#2,$$"DA"
.DA #12,#2,$$"DB"
.DA #13,#2,$$"DC"
.DA #14,#2,$$"DD"
.DA #15,#2,$$"DE"
.DA #16,#2,$$"DF"
CPR.E .HS 00
DCR .DA DCR.E+1-*
.DA #3,$$"DCR"
.DA #1,#2,$$"F0"
.DA #2,#2,$$"F1"
.DA #3,#2,$$"F2"
.DA #4,#2,$$"F3"
.DA #5,#2,$$"F4"
.DA #6,#2,$$"F5"
.DA #7,#2,$$"F6"
.DA #8,#2,$$"F7"
.DA #9,#2,$$"F8"
.DA #10,#2,$$"F9"
.DA #11,#2,$$"FA"
.DA #12,#2,$$"FB"
.DA #13,#2,$$"FC"
.DA #14,#2,$$"FD"
.DA #15,#2,$$"FE"
.DA #16,#2,$$"FF"
DCR.E .HS 00
INR .DA INR.E+1-*
.DA #3,$$"INR"
.DA #1,#2,$$"E0"
.DA #2,#2,$$"E1"
.DA #3,#2,$$"E2"
.DA #4,#2,$$"E3"
.DA #5,#2,$$"E4"
.DA #6,#2,$$"E5"
.DA #7,#2,$$"E6"
.DA #8,#2,$$"E7"
.DA #9,#2,$$"E8"
.DA #10,#2,$$"E9"
.DA #11,#2,$$"EA"
.DA #12,#2,$$"EB"
.DA #13,#2,$$"EC"
.DA #14,#2,$$"ED"
.DA #15,#2,$$"EE"
.DA #16,#2,$$"EF"
INR.E .HS 00
LD .DA LD.E+1-*
.DA #2,$$"LD"
.DA #1,#2,$$"20"
.DA #2,#2,$$"21"
.DA #3,#2,$$"22"
.DA #4,#2,$$"23"
.DA #5,#2,$$"24"
.DA #6,#2,$$"25"
.DA #7,#2,$$"26"
.DA #8,#2,$$"27"
.DA #9,#2,$$"28"
.DA #10,#2,$$"29"
.DA #11,#2,$$"2A"
.DA #12,#2,$$"2B"
.DA #13,#2,$$"2C"
.DA #14,#2,$$"2D"
.DA #15,#2,$$"2E"
.DA #16,#2,$$"2F"
.DA #18,#2,$$"40"
.DA #19,#2,$$"41"
.DA #20,#2,$$"42"
.DA #21,#2,$$"43"
.DA #22,#2,$$"44"
.DA #23,#2,$$"45"
.DA #24,#2,$$"46"
.DA #25,#2,$$"47"
.DA #26,#2,$$"48"
.DA #27,#2,$$"49"
.DA #28,#2,$$"4A"
.DA #29,#2,$$"4B"
.DA #30,#2,$$"4C"
.DA #31,#2,$$"4D"
.DA #32,#2,$$"4E"
.DA #33,#2,$$"4F"
LD.E .HS 00
LDD .DA LDD.E+1-*
.DA #3,$$"LDD"
.DA #18,#2,$$"60"
.DA #19,#2,$$"61"
.DA #20,#2,$$"62"
.DA #21,#2,$$"63"
.DA #22,#2,$$"64"
.DA #23,#2,$$"65"
.DA #24,#2,$$"66"
.DA #25,#2,$$"67"
.DA #26,#2,$$"68"
.DA #27,#2,$$"69"
.DA #28,#2,$$"6A"
.DA #29,#2,$$"6B"
.DA #30,#2,$$"6C"
.DA #31,#2,$$"6D"
.DA #32,#2,$$"6E"
.DA #33,#2,$$"6F"
LDD.E .HS 00
POP .DA POP.E+1-*
.DA #3,$$"POP"
.DA #18,#2,$$"80"
.DA #19,#2,$$"81"
.DA #20,#2,$$"82"
.DA #21,#2,$$"83"
.DA #22,#2,$$"84"
.DA #23,#2,$$"85"
.DA #24,#2,$$"86"
.DA #25,#2,$$"87"
.DA #26,#2,$$"88"
.DA #27,#2,$$"89"
.DA #28,#2,$$"8A"
.DA #29,#2,$$"8B"
.DA #30,#2,$$"8C"
.DA #31,#2,$$"8D"
.DA #32,#2,$$"8E"
.DA #33,#2,$$"8F"
POP.E .HS 00
POPD .DA POPD.E+1-*
.DA #4,$$"POPD"
.DA #18,#2,$$"C0"
.DA #19,#2,$$"C1"
.DA #20,#2,$$"C2"
.DA #21,#2,$$"C3"
.DA #22,#2,$$"C4"
.DA #23,#2,$$"C5"
.DA #24,#2,$$"C6"
.DA #25,#2,$$"C7"
.DA #26,#2,$$"C8"
.DA #27,#2,$$"C9"
.DA #28,#2,$$"CA"
.DA #29,#2,$$"CB"
.DA #30,#2,$$"CC"
.DA #31,#2,$$"CD"
.DA #32,#2,$$"CE"
.DA #33,#2,$$"CF"
POPD.E .HS 00
RS .DA RS.E+1-*
.DA #2,$$"RS"
.DA #255,#2,$$"0B"
RS.E .HS 00
RTN .DA RTN.E+1-*
.DA #3,$$"RTN"
.DA #255,#3,$$"00r"
RTN.E .HS 00
SET .DA SET.E+1-*
.DA #3,$$"SET"
.DA #1,#2,$$"10"
.DA #2,#2,$$"11"
.DA #3,#2,$$"12"
.DA #4,#2,$$"13"
.DA #5,#2,$$"14"
.DA #6,#2,$$"15"
.DA #7,#2,$$"16"
.DA #8,#2,$$"17"
.DA #9,#2,$$"18"
.DA #10,#2,$$"19"
.DA #11,#2,$$"1A"
.DA #12,#2,$$"1B"
.DA #13,#2,$$"1C"
.DA #14,#2,$$"1D"
.DA #15,#2,$$"1E"
.DA #16,#2,$$"1D"
SET.E .HS 00
ST .DA ST.E+1-*
.DA #2,$$"ST"
.DA #1,#2,$$"30"
.DA #2,#2,$$"31"
.DA #3,#2,$$"32"
.DA #4,#2,$$"33"
.DA #5,#2,$$"34"
.DA #6,#2,$$"35"
.DA #7,#2,$$"36"
.DA #8,#2,$$"37"
.DA #9,#2,$$"38"
.DA #10,#2,$$"39"
.DA #11,#2,$$"3A"
.DA #12,#2,$$"3B"
.DA #13,#2,$$"3C"
.DA #14,#2,$$"3D"
.DA #15,#2,$$"3E"
.DA #16,#2,$$"3F"
.DA #18,#2,$$"50"
.DA #19,#2,$$"51"
.DA #20,#2,$$"52"
.DA #21,#2,$$"53"
.DA #22,#2,$$"54"
.DA #23,#2,$$"55"
.DA #24,#2,$$"56"
.DA #25,#2,$$"57"
.DA #26,#2,$$"58"
.DA #27,#2,$$"59"
.DA #28,#2,$$"5A"
.DA #29,#2,$$"5B"
.DA #30,#2,$$"5C"
.DA #31,#2,$$"5D"
.DA #32,#2,$$"5E"
.DA #33,#2,$$"5F"
ST.E .HS 00
STD .DA STD.E+1-*
.DA #3,$$"STD"
.DA #18,#2,$$"70"
.DA #19,#2,$$"71"
.DA #20,#2,$$"72"
.DA #21,#2,$$"73"
.DA #22,#2,$$"74"
.DA #23,#2,$$"75"
.DA #24,#2,$$"76"
.DA #25,#2,$$"77"
.DA #26,#2,$$"78"
.DA #27,#2,$$"79"
.DA #28,#2,$$"7A"
.DA #29,#2,$$"7B"
.DA #30,#2,$$"7C"
.DA #31,#2,$$"7D"
.DA #32,#2,$$"7E"
.DA #33,#2,$$"7F"
STD.E .HS 00
STP .DA STP.E+1-*
.DA #3,$$"STP"
.DA #18,#2,$$"90"
.DA #19,#2,$$"91"
.DA #20,#2,$$"92"
.DA #21,#2,$$"93"
.DA #22,#2,$$"94"
.DA #23,#2,$$"95"
.DA #24,#2,$$"96"
.DA #25,#2,$$"97"
.DA #26,#2,$$"98"
.DA #27,#2,$$"99"
.DA #28,#2,$$"9A"
.DA #29,#2,$$"9B"
.DA #30,#2,$$"9C"
.DA #31,#2,$$"9D"
.DA #32,#2,$$"9E"
.DA #33,#2,$$"9F"
STP.E .HS 00
SUB .DA SUB.E+1-*
.DA #3,$$"SUB"
.DA #1,#2,$$"B0"
.DA #2,#2,$$"B1"
.DA #3,#2,$$"B2"
.DA #4,#2,$$"B3"
.DA #5,#2,$$"B4"
.DA #6,#2,$$"B5"
.DA #7,#2,$$"B6"
.DA #8,#2,$$"B7"
.DA #9,#2,$$"B8"
.DA #10,#2,$$"B9"
.DA #11,#2,$$"BA"
.DA #12,#2,$$"BB"
.DA #13,#2,$$"BC"
.DA #14,#2,$$"BD"
.DA #15,#2,$$"BE"
.DA #16,#2,$$"BF"
SUB.E .HS 00
.HS 0000
*---------------------------------------

View File

@ -4,12 +4,6 @@ AUTO 4,1
.LIST OFF
.OR $0
.TF /A2OSX.BUILD/BIN/DEV/ASM.T.SW16
*---------------------------------------
.MA PSTR
.DA #:1-*-1
.AS "]1"
:1 .EQ *
.EM
*---------------------------------------
.DA T.ADDR.MODES
.DA T.REGISTERS

View File

@ -3,210 +3,210 @@ PREFIX /A2OSX.BUILD
AUTO 4,1
*---------------------------------------
T.ADDR.MODES .EQ *
>PSTR "A,(HL)"
>PSTR "A,(IX+a)"
>PSTR "A,(IY+a)"
>PSTR "A,A"
>PSTR "A,a"
>PSTR "A,B"
>PSTR "A,C"
>PSTR "A,D"
>PSTR "A,E"
>PSTR "A,H"
>PSTR "A,L"
>PSTR "HL,BC"
>PSTR "HL,DE"
>PSTR "HL,HL"
>PSTR "HL,SP"
>PSTR "IX,BC"
>PSTR "IX,DE"
>PSTR "IX,IX"
>PSTR "IX,SP"
>PSTR "IY,BC"
>PSTR "IY,DE"
>PSTR "IY,IY"
>PSTR "IY,SP"
>PSTR "(HL)"
>PSTR "(IX+a)"
>PSTR "(IY+a)"
>PSTR "A"
>PSTR "a"
>PSTR "B"
>PSTR "C"
>PSTR "D"
>PSTR "E"
>PSTR "H"
>PSTR "L"
>PSTR "aa"
>PSTR "BC"
>PSTR "DE"
>PSTR "HL"
>PSTR "IX"
>PSTR "IY"
>PSTR "SP"
>PSTR "(SP),HL"
>PSTR "(SP),IX"
>PSTR "(SP),IY"
>PSTR "DE,HL"
>PSTR "A,(a)"
>PSTR "A,(C)"
>PSTR "B,(C)"
>PSTR "C,(C)"
>PSTR "D,(C)"
>PSTR "E,(C)"
>PSTR "H,(C)"
>PSTR "L,(C)"
>PSTR "(IX)"
>PSTR "(IY)"
>PSTR "(aa),A"
>PSTR "(aa),BC"
>PSTR "(aa),DE"
>PSTR "(aa),HL"
>PSTR "(aa),IX"
>PSTR "(aa),IY"
>PSTR "(aa),SP"
>PSTR "(BC),A"
>PSTR "(DE),A"
>PSTR "(HL),A"
>PSTR "(HL),a"
>PSTR "(HL),B"
>PSTR "(HL),C"
>PSTR "(HL),D"
>PSTR "(HL),E"
>PSTR "(HL),H"
>PSTR "(HL),L"
>PSTR "(IX+a),A"
>PSTR "(IX+a),a"
>PSTR "(IX+a),B"
>PSTR "(IX+a),C"
>PSTR "(IX+a),D"
>PSTR "(IX+a),E"
>PSTR "(IX+a),H"
>PSTR "(IX+a),L"
>PSTR "(IY+a),A"
>PSTR "(IY+a),a"
>PSTR "(IY+a),B"
>PSTR "(IY+a),C"
>PSTR "(IY+a),D"
>PSTR "(IY+a),E"
>PSTR "(IY+a),H"
>PSTR "(IY+a),L"
>PSTR "A,(aa)"
>PSTR "A,(BC)"
>PSTR "A,(DE)"
>PSTR "A,I"
>PSTR "A,R"
>PSTR "B,(HL)"
>PSTR "B,(IX+a)"
>PSTR "B,(IY+a)"
>PSTR "B,A"
>PSTR "B,a"
>PSTR "B,B"
>PSTR "B,C"
>PSTR "B,D"
>PSTR "B,E"
>PSTR "B,H"
>PSTR "B,L"
>PSTR "BC,(aa)"
>PSTR "BC,aa"
>PSTR "C,(HL)"
>PSTR "C,(IX+a)"
>PSTR "C,(IY+a)"
>PSTR "C,A"
>PSTR "C,a"
>PSTR "C,B"
>PSTR "C,C"
>PSTR "C,D"
>PSTR "C,E"
>PSTR "C,H"
>PSTR "C,L"
>PSTR "D,(HL)"
>PSTR "D,(IX+a)"
>PSTR "D,(IY+a)"
>PSTR "D,A"
>PSTR "D,a"
>PSTR "D,B"
>PSTR "D,C"
>PSTR "D,D"
>PSTR "D,E"
>PSTR "D,H"
>PSTR "D,L"
>PSTR "DE,(aa)"
>PSTR "DE,aa"
>PSTR "E,(HL)"
>PSTR "E,(IX+a)"
>PSTR "E,(IY+a)"
>PSTR "E,A"
>PSTR "E,a"
>PSTR "E,B"
>PSTR "E,C"
>PSTR "E,D"
>PSTR "E,E"
>PSTR "E,H"
>PSTR "E,L"
>PSTR "H,(HL)"
>PSTR "H,(IX+a)"
>PSTR "H,(IY+a)"
>PSTR "H,A"
>PSTR "H,a"
>PSTR "H,B"
>PSTR "H,C"
>PSTR "H,D"
>PSTR "H,E"
>PSTR "H,H"
>PSTR "H,L"
>PSTR "HL,(aa)"
>PSTR "HL,aa"
>PSTR "I,A"
>PSTR "IX,(aa)"
>PSTR "IX,aa"
>PSTR "IY,(aa)"
>PSTR "IY,aa"
>PSTR "L,(HL)"
>PSTR "L,(IX+a)"
>PSTR "L,(IY+a)"
>PSTR "L,A"
>PSTR "L,a"
>PSTR "L,B"
>PSTR "L,C"
>PSTR "L,D"
>PSTR "L,E"
>PSTR "L,H"
>PSTR "L,L"
>PSTR "R,A"
>PSTR "SP,(aa)"
>PSTR "SP,aa"
>PSTR "SP,HL"
>PSTR "SP,IX"
>PSTR "SP,IY"
>PSTR "(a),A"
>PSTR "(C),A"
>PSTR "(C),B"
>PSTR "(C),C"
>PSTR "(C),D"
>PSTR "(C),E"
>PSTR "(C),H"
>PSTR "(C),L"
>PSTR "AF"
.DA #6,$$"A,(HL)"
.DA #8,$$"A,(IX+a)"
.DA #8,$$"A,(IY+a)"
.DA #3,$$"A,A"
.DA #3,$$"A,a"
.DA #3,$$"A,B"
.DA #3,$$"A,C"
.DA #3,$$"A,D"
.DA #3,$$"A,E"
.DA #3,$$"A,H"
.DA #3,$$"A,L"
.DA #5,$$"HL,BC"
.DA #5,$$"HL,DE"
.DA #5,$$"HL,HL"
.DA #5,$$"HL,SP"
.DA #5,$$"IX,BC"
.DA #5,$$"IX,DE"
.DA #5,$$"IX,IX"
.DA #5,$$"IX,SP"
.DA #5,$$"IY,BC"
.DA #5,$$"IY,DE"
.DA #5,$$"IY,IY"
.DA #5,$$"IY,SP"
.DA #4,$$"(HL)"
.DA #6,$$"(IX+a)"
.DA #6,$$"(IY+a)"
.DA #1,$$"A"
.DA #1,$$"a"
.DA #1,$$"B"
.DA #1,$$"C"
.DA #1,$$"D"
.DA #1,$$"E"
.DA #1,$$"H"
.DA #1,$$"L"
.DA #2,$$"aa"
.DA #2,$$"BC"
.DA #2,$$"DE"
.DA #2,$$"HL"
.DA #2,$$"IX"
.DA #2,$$"IY"
.DA #2,$$"SP"
.DA #7,$$"(SP),HL"
.DA #7,$$"(SP),IX"
.DA #7,$$"(SP),IY"
.DA #5,$$"DE,HL"
.DA #5,$$"A,(a)"
.DA #5,$$"A,(C)"
.DA #5,$$"B,(C)"
.DA #5,$$"C,(C)"
.DA #5,$$"D,(C)"
.DA #5,$$"E,(C)"
.DA #5,$$"H,(C)"
.DA #5,$$"L,(C)"
.DA #4,$$"(IX)"
.DA #4,$$"(IY)"
.DA #6,$$"(aa),A"
.DA #7,$$"(aa),BC"
.DA #7,$$"(aa),DE"
.DA #7,$$"(aa),HL"
.DA #7,$$"(aa),IX"
.DA #7,$$"(aa),IY"
.DA #7,$$"(aa),SP"
.DA #6,$$"(BC),A"
.DA #6,$$"(DE),A"
.DA #6,$$"(HL),A"
.DA #6,$$"(HL),a"
.DA #6,$$"(HL),B"
.DA #6,$$"(HL),C"
.DA #6,$$"(HL),D"
.DA #6,$$"(HL),E"
.DA #6,$$"(HL),H"
.DA #6,$$"(HL),L"
.DA #8,$$"(IX+a),A"
.DA #8,$$"(IX+a),a"
.DA #8,$$"(IX+a),B"
.DA #8,$$"(IX+a),C"
.DA #8,$$"(IX+a),D"
.DA #8,$$"(IX+a),E"
.DA #8,$$"(IX+a),H"
.DA #8,$$"(IX+a),L"
.DA #8,$$"(IY+a),A"
.DA #8,$$"(IY+a),a"
.DA #8,$$"(IY+a),B"
.DA #8,$$"(IY+a),C"
.DA #8,$$"(IY+a),D"
.DA #8,$$"(IY+a),E"
.DA #8,$$"(IY+a),H"
.DA #8,$$"(IY+a),L"
.DA #6,$$"A,(aa)"
.DA #6,$$"A,(BC)"
.DA #6,$$"A,(DE)"
.DA #3,$$"A,I"
.DA #3,$$"A,R"
.DA #6,$$"B,(HL)"
.DA #8,$$"B,(IX+a)"
.DA #8,$$"B,(IY+a)"
.DA #3,$$"B,A"
.DA #3,$$"B,a"
.DA #3,$$"B,B"
.DA #3,$$"B,C"
.DA #3,$$"B,D"
.DA #3,$$"B,E"
.DA #3,$$"B,H"
.DA #3,$$"B,L"
.DA #7,$$"BC,(aa)"
.DA #5,$$"BC,aa"
.DA #6,$$"C,(HL)"
.DA #8,$$"C,(IX+a)"
.DA #8,$$"C,(IY+a)"
.DA #3,$$"C,A"
.DA #3,$$"C,a"
.DA #3,$$"C,B"
.DA #3,$$"C,C"
.DA #3,$$"C,D"
.DA #3,$$"C,E"
.DA #3,$$"C,H"
.DA #3,$$"C,L"
.DA #6,$$"D,(HL)"
.DA #8,$$"D,(IX+a)"
.DA #8,$$"D,(IY+a)"
.DA #3,$$"D,A"
.DA #3,$$"D,a"
.DA #3,$$"D,B"
.DA #3,$$"D,C"
.DA #3,$$"D,D"
.DA #3,$$"D,E"
.DA #3,$$"D,H"
.DA #3,$$"D,L"
.DA #7,$$"DE,(aa)"
.DA #5,$$"DE,aa"
.DA #6,$$"E,(HL)"
.DA #8,$$"E,(IX+a)"
.DA #8,$$"E,(IY+a)"
.DA #3,$$"E,A"
.DA #3,$$"E,a"
.DA #3,$$"E,B"
.DA #3,$$"E,C"
.DA #3,$$"E,D"
.DA #3,$$"E,E"
.DA #3,$$"E,H"
.DA #3,$$"E,L"
.DA #6,$$"H,(HL)"
.DA #8,$$"H,(IX+a)"
.DA #8,$$"H,(IY+a)"
.DA #3,$$"H,A"
.DA #3,$$"H,a"
.DA #3,$$"H,B"
.DA #3,$$"H,C"
.DA #3,$$"H,D"
.DA #3,$$"H,E"
.DA #3,$$"H,H"
.DA #3,$$"H,L"
.DA #7,$$"HL,(aa)"
.DA #5,$$"HL,aa"
.DA #3,$$"I,A"
.DA #7,$$"IX,(aa)"
.DA #5,$$"IX,aa"
.DA #7,$$"IY,(aa)"
.DA #5,$$"IY,aa"
.DA #6,$$"L,(HL)"
.DA #8,$$"L,(IX+a)"
.DA #8,$$"L,(IY+a)"
.DA #3,$$"L,A"
.DA #3,$$"L,a"
.DA #3,$$"L,B"
.DA #3,$$"L,C"
.DA #3,$$"L,D"
.DA #3,$$"L,E"
.DA #3,$$"L,H"
.DA #3,$$"L,L"
.DA #3,$$"R,A"
.DA #7,$$"SP,(aa)"
.DA #5,$$"SP,aa"
.DA #5,$$"SP,HL"
.DA #5,$$"SP,IX"
.DA #5,$$"SP,IY"
.DA #5,$$"(a),A"
.DA #5,$$"(C),A"
.DA #5,$$"(C),B"
.DA #5,$$"(C),C"
.DA #5,$$"(C),D"
.DA #5,$$"(C),E"
.DA #5,$$"(C),H"
.DA #5,$$"(C),L"
.DA #2,$$"AF"
.HS 00
*---------------------------------------
T.REGISTERS .EQ *
>PSTR "A"
>PSTR "HL"
>PSTR "IX"
>PSTR "IY"
>PSTR "B"
>PSTR "C"
>PSTR "D"
>PSTR "E"
>PSTR "H"
>PSTR "L"
>PSTR "BC"
>PSTR "DE"
>PSTR "SP"
>PSTR "I"
>PSTR "R"
>PSTR "AF"
.DA #1,$$"A"
.DA #2,$$"HL"
.DA #2,$$"IX"
.DA #2,$$"IY"
.DA #1,$$"B"
.DA #1,$$"C"
.DA #1,$$"D"
.DA #1,$$"E"
.DA #1,$$"H"
.DA #1,$$"L"
.DA #2,$$"BC"
.DA #2,$$"DE"
.DA #2,$$"SP"
.DA #1,$$"I"
.DA #1,$$"R"
.DA #2,$$"AF"
.HS 00
*---------------------------------------
MAN

File diff suppressed because it is too large Load Diff

View File

@ -4,12 +4,6 @@ AUTO 4,1
.LIST OFF
.OR $0
.TF /A2OSX.BUILD/BIN/DEV/ASM.T.Z80
*---------------------------------------
.MA PSTR
.DA #:1-*-1
.AS "]1"
:1 .EQ *
.EM
*---------------------------------------
.DA T.ADDR.MODES
.DA T.REGISTERS

View File

@ -584,6 +584,11 @@ MEM.GetKeyCharY sta CLRREADAUX
.9 sec
rts
*--------------------------------------
MEM.SetKeyCharY sta CLRWRITEAUX
sta (ZPSListKey),y
sta SETWRITEAUX
rts
*--------------------------------------
MEM.GetDataByte sta CLRREADAUX
lda (ZPSListData)
sta SETREADAUX