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
EXP.Eval >STZ.G EXP.Modifier
>STZ.G EXP.Prefix
>STZ.G EXP.Operator
jsr SRC.GetChar
bcs EXP.Eval.Missing
jsr SRC.GetChar
bcs EXP.Eval.Missing
jsr SRC.IsMODReserved
bcs EXP.Eval.Next
jsr SRC.IsMODReserved
bcs EXP.Eval.Next
txa
>STA.G EXP.Modifier
lda #'#'
>STA.G EXP.Prefix
txa
>STA.G EXP.Modifier
lda #'#'
>STA.G EXP.Prefix
EXP.Eval.Next0 jsr SRC.GetNextChar
EXP.Eval.Next0 jsr SRC.GetNextChar
EXP.Eval.Next lda #2
sta SRC.ACC.SIZE Default To WORD (2 bytes)
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
stz SRC.ACC
stz SRC.ACC+1
stz SRC.ACC+2
stz SRC.ACC+3
jsr SRC.GetChar
bcs EXP.Eval.Missing
jsr SRC.GetChar
bcs EXP.Eval.Missing
cmp #'.' Local Label?
bne .12
cmp #'.' Local Label?
bne .12
jsr EXP.GetLSymIDInAcc
bcs .14
jsr EXP.GetLSymIDInAcc
bcs .14
jmp EXP.EvalOperator
.14 rts
jmp EXP.EvalOperator
.14 rts
.12 cmp #'*'
bne .10
.12 cmp #'*'
bne .10
ldy #ASM.PC+3
ldx #3
ldy #ASM.PC+3
ldx #3
.11 lda (pData),y
sta SRC.ACC,x
dey
dex
bpl .11
.11 lda (pData),y
sta SRC.ACC,x
dey
dex
bpl .11
jsr SRC.GetNextChar
jmp EXP.EvalOperator
jsr SRC.GetNextChar
jmp EXP.EvalOperator
.10 jsr SRC.IsDigit10 Decimal constant ?
bcs .1
.10 jsr SRC.IsDigit10 Decimal constant ?
bcs .1
jsr SRC.GetDecimal
jsr SRC.GetDecimal
bcs EXP.EvalExitSYN
bra EXP.EvalOperator
bcs EXP.EvalExitRTS
bra EXP.EvalOperator
.1 cmp #'$' Hex?
bne .2
.1 cmp #'$' Hex?
bne .2
jsr SRC.GetHex
jsr SRC.GetHex
bcs EXP.EvalExitSYN
bra EXP.EvalOperator
bcs EXP.EvalExitRTS
bra EXP.EvalOperator
.2 cmp #'%' binary?
bne .3
.2 cmp #'%' binary?
bne .3
jsr SRC.GetBinary
jsr SRC.GetBinary
bcs EXP.EvalExitSYN
bra EXP.EvalOperator
bcs EXP.EvalExitRTS
bra EXP.EvalOperator
.3 cmp #'&' octal?
bne .4
jsr SRC.GetOctal
.3 cmp #'&' octal?
bne .4
jsr SRC.GetOctal
bcs EXP.EvalExitSYN
bra EXP.EvalOperator
bcs EXP.EvalExitRTS
bra EXP.EvalOperator
.4 cmp #'''
bne .43
jsr SRC.GetNextChar
bcs EXP.EvalExitSYN
.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
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
.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
.42 jsr SRC.IsLetter Symbol ?
bcs EXP.EvalExitSYN
jsr EXP.GetGSymValueInAcc
bcs EXP.EvalExitUND
bra EXP.EvalOperator
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.EvalExitOK >LDA.G EXP.Modifier
beq .8
asl
tax
jmp (J.EXP.MOD-2,x)
EXP.EvalExitSYN lda #ERR.SYNTAX.ERROR
sec
rts
.8 clc
EXP.EvalExitRTS rts
EXP.EvalExitUND lda #ERR.UNDEF.SYMBOL
sec
rts
EXP.EvalExitSYN lda #ERR.SYNTAX.ERROR
sec
rts
EXP.EvalOperator >LDA.G EXP.Operator
beq .7
jsr EXP.Compute
bcs EXP.EvalExitRTS
.7 jsr SRC.GetChar
bcs EXP.EvalExitOK
cmp #' '
beq EXP.EvalExitOK
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.EvalExitUND lda #ERR.UNDEF.SYMBOL
sec
rts
*---------------------------------------
EXP.GetLSymIDInAcc jsr SRC.GetNextChar
bcs .9
EXP.EvalOperator
>LDA.G EXP.Operator
beq .7
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 EXP.Compute
bcs EXP.EvalExitRTS
jsr SYM.LookupLocal
bcs EXP.EvalExitUND
rts
.7 jsr SRC.GetChar
bcs EXP.EvalExitOK
.9 lda #ERR.SYNTAX.ERROR
sec
rts
cmp #' '
beq EXP.EvalExitOK
jsr SRC.IsAMReserved
bcc EXP.EvalExitOK
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.GetGSymValueInAcc
jsr SYM.LookupGlobal
bcs .2
EXP.GetLSymIDInAcc
jsr SRC.GetNextChar
bcs .9
ldy #SYM.Lookup+5
ldx #3
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
.1 lda (pData),y
sta SRC.ACC,x
dey
dex
bpl .1
jsr SYM.LookupLocal
bcs EXP.EvalExitUND
rts
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
.99 lda #ERR.UNDEF.SYMBOL
sec
.9 rts
.9 lda #ERR.SYNTAX.ERROR
sec
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.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
.99 lda #ERR.UNDEF.SYMBOL
sec
.9 rts
*---------------------------------------
EXP.Compute asl
tax
jmp (J.EXP.OP-2,x)
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.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.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.OP.EOR ldx #3
.1 lda SRC.ARG,x
eor SRC.ACC,x
sta SRC.ACC,x
dex
bpl .1
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.ORA ldx #3
EXP.OP.EOR ldx #3
.1 lda SRC.ARG,x
ora SRC.ACC,x
sta SRC.ACC,x
dex
bpl .1
rts
.1 lda SRC.ARG,x
eor SRC.ACC,x
sta SRC.ACC,x
dex
bpl .1
rts
*---------------------------------------
EXP.OP.AND ldx #3
EXP.OP.ORA ldx #3
.1 lda SRC.ARG,x
and SRC.ACC,x
sta SRC.ACC,x
dex
bpl .1
rts
.1 lda SRC.ARG,x
ora SRC.ACC,x
sta SRC.ACC,x
dex
bpl .1
rts
*---------------------------------------
EXP.OP.LOW clc
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.EQU ldx #0 ARG-ACC->ACC
ldy #4
EXP.OP.LOW clc
rts
*---------------------------------------
EXP.OP.EQU ldx #0 ARG-ACC->ACC
ldy #4
clc il not Equals, return 0
clc il not Equals, return 0
.1 lda SRC.ARG,x
eor SRC.ACC,x
bne .2
inx
dey
bne .1
.1 lda SRC.ARG,x
eor SRC.ACC,x
bne .2
inx
dey
bne .1
sec equals, return 1
sec equals, return 1
.2 lda #0
rol
sta SRC.ACC
.2 lda #0
rol
sta SRC.ACC
lda #1
sta SRC.ACC.SIZE
lda #1
sta SRC.ACC.SIZE
.9 rts
.9 rts
*---------------------------------------
EXP.OP.GRT
clc
rts
clc
rts
*---------------------------------------
EXP.OP.ADD ldx #0 ARG-ACC->ACC
ldy #4
EXP.OP.ADD ldx #0 ARG-ACC->ACC
ldy #4
clc
clc
.1 lda SRC.ARG,x
adc SRC.ACC,x
sta SRC.ACC,x
inx
dey
bne .1
.1 lda SRC.ARG,x
adc SRC.ACC,x
sta SRC.ACC,x
inx
dey
bne .1
bcc .8
bcc .8
lda #ERR.VAL.TOO.BIG
.8 rts
lda #ERR.VAL.TOO.BIG
.8 rts
*---------------------------------------
EXP.OP.SUB ldx #0 ARG-ACC->ACC
ldy #4
EXP.OP.SUB ldx #0 ARG-ACC->ACC
ldy #4
sec
sec
.1 lda SRC.ARG,x
sbc SRC.ACC,x
sta SRC.ACC,x
inx
dey
bne .1
.1 lda SRC.ARG,x
sbc SRC.ACC,x
sta SRC.ACC,x
inx
dey
bne .1
bcs .8
bcs .8
lda #ERR.VAL.TOO.BIG
sec
rts
lda #ERR.VAL.TOO.BIG
sec
rts
.8 clc
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
>STYA ZPPtr1
ldy #$ff
ldx #$ff
ldy #$ff
ldx #$ff
.1 iny
inx
lda (ZPPtr1),y
sta ASM.T.FILENAME,x
bne .1
inx
lda (ZPPtr1),y
sta ASM.T.FILENAME,x
bne .1
lda #'.'
sta ASM.T.FILENAME,x
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
lda #'.'
sta ASM.T.FILENAME,x
ldy #$ff
ldy #$ff
.2 iny
inx
lda (ZPPtr2),y
jsr SRC.IsLetterOrDigit
bcs .3
sta ASM.T.FILENAME,x
bra .2
.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
.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
>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
.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
>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
txa
ldy #ASM.T.hMem
sta (pData),y
>SYSCALL GetMemPtr.A
>STYA ZPPtr1
>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
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 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
iny
lda (ZPPtr1),y
clc
adc ZPPtr1
sta ZPOpsPtr
iny
lda (ZPPtr1),y
adc ZPPtr1+1
sta ZPOpsPtr+1
.9 rts
.9 rts
*---------------------------------------
FIO.OpenFile >STYA ZPPtr1
FIO.OpenFile >STYA ZPPtr1
>PUSHW ZPPtr1
>LDYA L.MSG.SRC.FILE
jsr OUT.Print
>PUSHW ZPPtr1
>LDYA L.MSG.SRC.FILE
jsr OUT.Print
ldy #SRC.COUNT
lda (pData),y
cmp #SRC.IN.MAXDEPTH
bne .1
ldy #SRC.COUNT
lda (pData),y
cmp #SRC.IN.MAXDEPTH
bne .1
lda #ERR.SRC.TOO.MANY.IN
sec
rts
lda #ERR.SRC.TOO.MANY.IN
sec
rts
.1 >PUSHW L.FIO.Stat
>PUSHW ZPPtr1
>SYSCALL Stat
bcs .99
.1 >PUSHW L.FIO.Stat
>PUSHW ZPPtr1
>SYSCALL Stat
bcs .99
lda FIO.Stat+S.STAT.P.TYPE
cmp #$04 TXT ?
bne .2
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
>PUSHWI 0
>PUSHBI 4
>PUSHBI SYS.FOpen.R+SYS.FOpen.T
bra .3
.2 cmp #$FA S-C/BAS?
bne .98
.2 cmp #$FA S-C/BAS?
bne .98
>PUSHWI 0
>PUSHBI $FA
>PUSHBI SYS.FOpen.R
>PUSHWI 0
>PUSHBI $FA
>PUSHBI SYS.FOpen.R
.3 >PUSHW ZPPtr1
>SYSCALL FOpen
bcs .99
.3 >PUSHW ZPPtr1
>SYSCALL FOpen
bcs .99
pha
ldy #SRC.COUNT
lda (pData),y
clc
adc #SRC.hFILES
tay
pla
sta (pData),y
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
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
ldy #SRC.COUNT
lda (pData),y
inc
sta (pData),y
lda #0
>STA.G SRC.LINENUM
iny
sta (pData),y
lda #0
>STA.G SRC.LINENUM
iny
sta (pData),y
clc
rts
clc
rts
.98 lda #ERR.SRC.INV.TYPE
.98 lda #ERR.SRC.INV.TYPE
sec
.99 rts
sec
.99 rts
*---------------------------------------
FIO.ReadLine >LDYA ZPLineBuf
>STYA ZPLinePtr
FIO.ReadLine >LDYA ZPLineBuf
>STYA ZPLinePtr
ldy #SRC.COUNT
lda (pData),y
clc
adc #SRC.hFILETYPES-1
tay
lda (pData),y
bmi .10
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
jsr FIO.ReadFromFile
bcs .19
tya
beq .13
tya
beq .13
dey
dey
lda #0 replace ending $0D with $00
.13 sta (ZPLineBuf),y
lda #0 replace ending $0D with $00
.13 sta (ZPLineBuf),y
>INC.G SRC.LINENUM
bne .19
>INC.G SRC.LINENUM+1
.19 rts
>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
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
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
tay
>PUSHW ZPTmpBuf
lda #0
>PUSHYA
jsr FIO.ReadFromFile
bcs .9
>LDYA ZPTmpBuf
>STYA ZPPtr1
>LDYA ZPTmpBuf
>STYA ZPPtr1
ldy #0
ldy #0
.1 lda (ZPPtr1)
inc ZPPtr1
bne .11
inc ZPPtr1+1
.1 lda (ZPPtr1)
inc ZPPtr1
bne .11
inc ZPPtr1+1
.11 tax
bmi .2
.11 tax
bmi .2
sta (ZPLineBuf),y
beq .8 Ending 00
sta (ZPLineBuf),y
beq .8 Ending 00
iny
bne .1
bra .99
iny
bne .1
bra .99
.2 cmp #$C0 REPEAT char?
bne .5
.2 cmp #$C0 REPEAT char?
bne .5
lda (ZPPtr1) Get Repeat Count
inc ZPPtr1
bne .3
inc ZPPtr1+1
lda (ZPPtr1) Get Repeat Count
inc ZPPtr1
bne .3
inc ZPPtr1+1
.3 tax
.3 tax
lda (ZPPtr1) Get Repeat Char
inc ZPPtr1
bne .4
inc ZPPtr1+1
lda (ZPPtr1) Get Repeat Char
inc ZPPtr1
bne .4
inc ZPPtr1+1
.4 sta (ZPLineBuf),y
.4 sta (ZPLineBuf),y
iny
beq .99
dex
bne .4
iny
beq .99
dex
bne .4
bra .1
bra .1
.5 and #$3F Compute blank count
tax
lda #$20
.5 and #$3F Compute blank count
tax
lda #$20
.6 sta (ZPLineBuf),y
iny
beq .99
.6 sta (ZPLineBuf),y
iny
beq .99
dex
bne .6
bra .1
dex
bne .6
bra .1
.8 clc
.9 rts
.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
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
tax $100 byte transfered ?
beq .9
lda #ERR.LINE.TOO.LONG
sec
.9 rts
lda #ERR.LINE.TOO.LONG
sec
.9 rts
*---------------------------------------
FIO.FileClose ldy #SRC.COUNT
lda (pData),y
beq .8
FIO.FileClose ldy #SRC.COUNT
lda (pData),y
beq .8
clc
adc #SRC.hFILES-1
tay
lda (pData),y
>SYSCALL FClose.A
clc
adc #SRC.hFILES-1
tay
lda (pData),y
>SYSCALL FClose.A
ldy #SRC.COUNT
lda (pData),y
dec
sta (pData),y
ldy #SRC.COUNT
lda (pData),y
dec
sta (pData),y
.8 clc
rts
.8 clc
rts
*---------------------------------------
MAN
SAVE /A2OSX.BUILD/BIN/DEV/ASM.S.FIO

View File

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

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
OUT.Reset ldx #4
ldy #ASM.PC
ldy #ASM.PC
.1 lda (pData),y
pha
iny
dex
bne .1
.1 lda (pData),y
pha
iny
dex
bne .1
ldx #4
ldx #4
ldy #OUT.PC+3
ldy #OUT.PC+3
.2 pla
sta (pData),y
dey
dex
bne .2
.2 pla
sta (pData),y
dey
dex
bne .2
>STZ.G OUT.Buf
>STA.G OUT.bEquate
>STZ.G OUT.Buf
>STA.G OUT.bEquate
rts
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
jsr OUT.PrintLine.1
bcs .9
.1 >PUSHB.G DIR.Byte
>LDYA L.MSG.ERROR
>SYSCALL PrintF.YA
.1 >PUSHB.G DIR.Byte
>LDYA L.MSG.ERROR
>SYSCALL PrintF.YA
ldx ZPLinePtr
cpx ZPLineBuf
beq .4
ldx ZPLinePtr
cpx ZPLineBuf
beq .4
.3 phx
lda #'-'
>SYSCALL PutChar.A
plx
bcs .9
dex
cpx ZPLineBuf
bne .3
.3 phx
lda #'-'
>SYSCALL PutChar.A
plx
bcs .9
dex
cpx ZPLineBuf
bne .3
.4 lda #'^'
phy
>SYSCALL PutChar.A
ply
bcs .9
.4 lda #'^'
phy
>SYSCALL PutChar.A
ply
bcs .9
.5 lda #13
>SYSCALL PutChar.A
lda #10
>SYSCALL PutChar.A
.5 lda #13
>SYSCALL PutChar.A
lda #10
>SYSCALL PutChar.A
.9 rts
.9 rts
*---------------------------------------
OUT.PrintLine jsr OUT.PrintLineOn
bcs OUT.PrintLine.9
OUT.PrintLine jsr OUT.PrintLineOn
bcs OUT.PrintLine.9
OUT.PrintLine.1 jsr OUT.PrintLineOutBuf
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
>PUSHW ZPLineBuf
>PUSHW.G SRC.LINENUM
>LDYA L.MSG.SRCLINE
jmp OUT.Print
OUT.PrintLine.9 rts
*---------------------------------------
OUT.PrintLineOn clc
rts
OUT.PrintLineOn clc
rts
>LDA.G ASM.LI.ON
bpl .9
>LDA.G ASM.LI.ON
bpl .9
>LDA.G MAC.bAdd MACRO Mode ?
bpl .1
>LDA.G MAC.bAdd MACRO Mode ?
bpl .1
>LDA.G ASM.LI.MON
bpl .9
bmi .8
>LDA.G ASM.LI.MON
bpl .9
bmi .8
.1 >LDA.G ASM.DO.StackPtr within a DO/ELSE ?
beq .2
.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
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
>LDA.G ASM.LI.CON FALSE, check CON flag...
bpl .9
bmi .8
.2
.8 clc
rts
.8 clc
rts
.9 sec
rts
.9 sec
rts
*---------------------------------------
OUT.PrintLineOutBuf >LDA.G OUT.bEquate
bne OUT.PrintLineAcc
OUT.PrintLineOutBuf
>LDA.G OUT.bEquate
bne OUT.PrintLineAcc
>LDA.G OUT.Buf
beq .2
>LDA.G OUT.Buf
beq .2
tax
clc
adc #OUT.Buf
tay
tax
clc
adc #OUT.Buf
tay
.1 >PUSHB (pData),y
dey
dex
bne .1
.1 >PUSHB (pData),y
dey
dex
bne .1
.2 ldy #OUT.PC+1
>PUSHB (pData),y
dey
>PUSHB (pData),y
.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
>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
OUT.PrintLineAcc
ldx SRC.ACC.SIZE
beq .2
ldy #0
ldy #0
.1 >PUSHB SRC.ACC,y
iny
dex
bne .1
.1 >PUSHB SRC.ACC,y
iny
dex
bne .1
lda SRC.ACC.SIZE
asl
tax
lda SRC.ACC.SIZE
asl
tax
.2 ldy L.MSG.EQU0,x
lda L.MSG.EQU0+1,x
>SYSCALL PrintF.YA
rts
.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.Print >SYSCALL PrintF.YA
bra OUT.Print1
OUT.PrintCR lda #13
>SYSCALL PutChar.A
lda #10
>SYSCALL PutChar.A
OUT.PrintCR lda #13
>SYSCALL PutChar.A
lda #10
>SYSCALL PutChar.A
OUT.Print1 >DEC.G OUT.LineCnt
bne .8
OUT.Print1 >DEC.G OUT.LineCnt
bne .8
lda #20
sta (pData),y
lda #20
sta (pData),y
>DEBUG
>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
>LDA.G ASM.LI.XON
bpl .1
jsr OUT.PrintLineOutBuf
jsr OUT.PrintCR
jsr OUT.PrintLineOutBuf
jsr OUT.PrintCR
.1 jsr OUT.Reset
.1 jsr OUT.Reset
lda #0
ldy #OUT.Buf
lda #0
ldy #OUT.Buf
.2 inc
sta (pData),y
clc
adc #OUT.Buf
tay
.2 inc
sta (pData),y
clc
adc #OUT.Buf
tay
pla
sta (pData),y
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
.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
CS.INIT ldy #S.PS.ARGC
lda (pPs),y
beq .99
lda #1
>SYSCALL GetArg.A
>SYSCALL RealPath.YA
lda #1
>SYSCALL GetArg.A
>SYSCALL RealPath.YA
txa
ldy #SRC.hFILENAME
sta (pData),y
txa
ldy #SRC.hFILENAME
sta (pData),y
jsr FIO.Init
bcs .9
jsr FIO.Init
bcs .9
jsr SYM.Init
bcs .9
jsr SYM.Init
bcs .9
jsr MAC.Init
bcs .9
jsr MAC.Init
bcs .9
jsr OUT.Init
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
>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
* lda (pPs)
* ora #S.PS.F.EVENT
* sta (pPs)
clc
rts
.99 >LDYA L.MSG.HELP
>SYSCALL PrintF.YA
lda #ERR.INV.ARGS
sec
.99 >LDYA L.MSG.HELP
>SYSCALL PrintF.YA
lda #ERR.INV.ARGS
sec
.9 rts
*--------------------------------------
CS.RUN >SYSCALL GetChar
bcs .11 no char
CS.RUN >SYSCALL GetChar
bcs .11 no char
cmp #$03 Ctrl-C
beq .99 Abort....beq=CS
cmp #$03 Ctrl-C
beq .99 Abort....beq=CS
cmp #$13 Ctrl-S
bne .11
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
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
>LDA.G ASM.PASS
inc
>PUSHA
>LDYA L.MSG.PASS
jsr OUT.Print
ldy #SRC.hFILENAME
lda (pData),y
ldy #SRC.hFILENAME
lda (pData),y
>SYSCALL GetMemPtr.A
>SYSCALL GetMemPtr.A
jsr FIO.OpenFile
bcs .99
jsr FIO.OpenFile
bcs .99
jsr DIR.Reset
jsr SYM.Reset
jsr DIR.Reset
jsr SYM.Reset
.10 jsr FIO.ReadLine
bcc .2
cmp #$4C End Of File?
bne .9
.10 jsr FIO.ReadLine
bcc .2
cmp #$4C End Of File?
bne .9
jsr FIO.FileClose
jsr FIO.FileClose
ldy #SRC.COUNT end of root file ?
lda (pData),y
bne .8 no continue back to previous file
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
jsr SYM.FlushGlobal Store last Symbol, if any....
bcs .9
.1 jsr SYM.Dump
>PUSHW ZPLinePtr
>LDYA L.MSG.SUMMARY
jsr OUT.Print
>LDA.G ASM.PASS End of pass #2 ??
bne .1
inc
sta (pData),y
clc
.99 rts
lda #0 End of assembly, exit with no error
sec
rts
.1 jsr SYM.Dump
>PUSHW ZPLinePtr
>LDYA L.MSG.SUMMARY
jsr OUT.Print
.2 jsr SRC.ParseLine
bcs .9
lda #0 End of assembly, exit with no error
sec
rts
jsr OUT.PrintLine
.2 jsr SRC.ParseLine
bcs .9
.8 clc
rts
jsr OUT.PrintLine
.9 pha
jsr OUT.PrintLineErr
pla
sec
rts
.8 clc
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
jsr MAC.Quit
jsr SYM.Quit
>LDA.G ASM.T.hMem
beq .1
>LDA.G ASM.T.hMem
beq .1
>SYSCALL FreeMem.A
>SYSCALL FreeMem.A
.1 >LDA.G SRC.hFILENAME
beq .2
.1 >LDA.G SRC.hFILENAME
beq .2
>SYSCALL FreeMem.A
>SYSCALL FreeMem.A
.2 >LDA.G SRC.hLineBuf
beq .3
.2 >LDA.G SRC.hLineBuf
beq .3
>SYSCALL FreeMem.A
>SYSCALL FreeMem.A
.3 >LDA.G SRC.hTmpBuf
beq .8
.3 >LDA.G SRC.hTmpBuf
beq .8
>SYSCALL FreeMem.A
>SYSCALL FreeMem.A
.8 clc
rts
.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
.DUMMY
.OR 0
DS.START
bPause .BS 1
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