Kernel 0.9.1 : ASM rewrite...more directives

This commit is contained in:
Rémy GIBERT 2018-02-01 16:30:18 +00:00
parent ab8bcb9b40
commit e1cd14fbce
11 changed files with 185 additions and 853 deletions

43
.Docs/ASM.md Normal file
View File

@ -0,0 +1,43 @@
# A2osX Macro Assembler (0.9.1)
## Description
Multi-CPU macro assembler based on S-C MASM 3.0 dialect
## Directives
| Code | Description | Compatibility | Status | Syntax | Comment |
|-|-|-|-|-|-|
| .AC | | S-C | NOT IMPL. | | As strings are supposed to be printed with A2osX API, Printf cannot handle 'AC' compressed strings |
| .AS | Ascii String | S-C,A2osX | Working | `.AS dTEXTd` where d is any delimiter `.AS -"TEXT"`produce ascii code with b7=1 | |
| .AT | Ascii String Terminated | S-C,A2osX | Working | (same as above) | |
| .AZ | Ascii String Zero Terminated (CString) | S-C,A2osX | Working | (same as above) | |
| .BS | Block Storage | S-C,A2osX | Working | | |
| .DA | Data | S-C,A2osX | In Progress | | |
| .DO | conditional start | S-C,A2osX | In Progress | | |
| .DU,.DUMMY | begin Dummy section | S-C,A2osX | In Progress | | |
| .ED | End Dummy section | S-C,A2osX | In Progress | | |
| .DA | | S-C,A2osX | In Progress | | |
| .ELSE | conditional ELSE | S-C,A2osX | In Progress | | |
| .EM | End Macro | S-C,A2osX | In Progress | | |
| .EN | ENd of source code | S-C,A2osX | In Progress | | |
| .EP | End Phase| S-C,A2osX | In Progress | | |
| .EQ | EQuate | S-C,A2osX | In Progress | | |
| .FIN | conditional end| S-C,A2osX | In Progress | | |
| .PH | PHase start| S-C,A2osX | In Progress | | |
| .HS | Hex String | S-C,A2osX | Working | `HS FE1A78` delimiter allowed : `HS 00.11,22` | |
| .IN,.INB,.INBx | | S-C,A2osX | Working | | |
| .LI,.LIST | | S-C,A2osX | Working | | |
| .MA | MAcro deffinition | S-C,A2osX | Working | | |
| .OP | OPCode | S-C,A2osX | Working | `.OP cpu` where cpu is one of 6502,65C02,65R02,65816,Z80,S16 | |
| .OR | ORigin | S-C,A2osX | Working | | |
| .PG | PaGe| S-C,A2osX | IGNORED | | |
| .PH | PHase | S-C,A2osX | Working | | |
| .SE | | S-C,A2osX | Working | | |
| .TA | Target Address| S-C,A2osX | IGNORED | | |
| .TF | Target File | S-C,A2osX | Working | | |
| .TI | ??? | S-C,A2osX | IGNORED | | |
| .US | USer defined | S-C,A2osX | IGNORED | | |

Binary file not shown.

Binary file not shown.

View File

@ -9,6 +9,8 @@ DIR.Init lda #$80
lda #0 lda #0
ldy #ASM.LI.CON ldy #ASM.LI.CON
sta (pData),y sta (pData),y
ldy #ASM.LI.MON
sta (pData),y
ldy #ASM.LI.XON ldy #ASM.LI.XON
sta (pData),y sta (pData),y
rts rts
@ -26,11 +28,19 @@ DIR.AS clc
jsr SRC.GetNextChar jsr SRC.GetNextChar
bcs .9 bcs .9
cmp #'-'
bne .1
sta DIR.Word Save delimiter.... lda #$40 save b7 status of ALL chars
tsb DIR.Byte
jsr SRC.GetNextChar
bcs .9
.1 sta DIR.Word Save delimiter....
sta DIR.Word+1 Save also in prev char.. sta DIR.Word+1 Save also in prev char..
.1 jsr SRC.GetNextChar .2 jsr SRC.GetNextChar
bcs .8 bcs .8
cmp DIR.Word delimiter ? cmp DIR.Word delimiter ?
@ -40,10 +50,15 @@ DIR.AS clc
sta DIR.Word+1 replace it with new sta DIR.Word+1 replace it with new
txa txa
cmp DIR.Word is it the starting delimiter cmp DIR.Word is it the starting delimiter
beq .1 yes, skip beq .2 yes, skip
jsr OUT.EmitByte no, emit prev char bit DIR.Byte
bcc .1 bvc .3
ora #$80
.3 jsr OUT.EmitByte no, emit prev char
bcc .2
.9 lda #ERR.SYNTAX.ERROR .9 lda #ERR.SYNTAX.ERROR
sec sec
@ -51,12 +66,15 @@ DIR.AS clc
.8 lda DIR.Word+1 Get prev char .8 lda DIR.Word+1 Get prev char
cmp DIR.Word someone typed .AS "" ? cmp DIR.Word someone typed .AS "" ?
beq .80 beq .88
ora DIR.Byte bit DIR.Byte
bpl .81
eor #$80
jmp OUT.EmitByte .81 jmp OUT.EmitByte
.80 clc
.88 clc
rts rts
*--------------------------------------- *---------------------------------------
DIR.AZ jsr DIR.AS DIR.AZ jsr DIR.AS
@ -66,7 +84,7 @@ DIR.AZ jsr DIR.AS
jmp OUT.EmitByte jmp OUT.EmitByte
.9 rts .9 rts
*--------------------------------------- *---------------------------------------
DIR.BS jsr SRC.GetNextChar DIR.BS jsr SRC.GetNextCharNB
bcs .98 bcs .98
jsr EXP.Eval jsr EXP.Eval
@ -122,11 +140,10 @@ DIR.BS jsr SRC.GetNextChar
sec sec
rts rts
*--------------------------------------- *---------------------------------------
DIR.DA DIR.DA jsr SRC.GetNextCharNB
.1 jsr SRC.GetNextChar
bcs .98 bcs .98
jsr EXP.Eval .1 jsr EXP.Eval
bcs .9 bcs .9
lda SRC.ACC.SIZE lda SRC.ACC.SIZE
@ -137,7 +154,9 @@ DIR.DA
beq .8 beq .8
cmp #',' cmp #','
beq .1 bne .98
jsr SRC.GetNextChar
bcc .1
.98 lda #ERR.SYNTAX.ERROR .98 lda #ERR.SYNTAX.ERROR
clc clc
@ -336,40 +355,67 @@ DIR.IN jsr SRC.GetNextCharNB
sec sec
rts rts
*--------------------------------------- *---------------------------------------
DIR.LI jsr SRC.GetNextCharNB DIR.LI jsr SRC.GetNextChar
bcs DIR.LI.9 bcs .9
>LDYA L.T.LI >LDYA L.T.LI
jsr SRC.GetKeyword jsr SRC.GetKeyword
bcs DIR.LI.9 bcs .9
jsr .7
jsr SRC.GetChar
bcs .8
jmp (J.LI,x) cmp #','
beq DIR.LI
cmp #' '
beq .8
.9 lda #ERR.SYNTAX.ERROR
sec
rts
.7 jmp (J.LI,x)
.8 clc
rts
DIR.LI.ON ldy #ASM.LI.ON
sec
bra DIR.LI.APPLY
DIR.LI.OFF ldy #ASM.LI.ON
clc
bra DIR.LI.APPLY
DIR.LI.CON ldy #ASM.LI.CON DIR.LI.CON ldy #ASM.LI.CON
sec sec
bra DIR.LI.APPLY bra DIR.LI.APPLY
DIR.LI.COFF ldy #ASM.LI.CON DIR.LI.COFF ldy #ASM.LI.CON
clc clc
bra DIR.LI.APPLY bra DIR.LI.APPLY
DIR.LI.MON ldy #ASM.LI.MON
sec
bra DIR.LI.APPLY
DIR.LI.MOFF ldy #ASM.LI.MON
clc
bra DIR.LI.APPLY
DIR.LI.XON ldy #ASM.LI.XON DIR.LI.XON ldy #ASM.LI.XON
sec sec
bra DIR.LI.APPLY bra DIR.LI.APPLY
DIR.LI.XOFF ldy #ASM.LI.XON DIR.LI.XOFF ldy #ASM.LI.XON
clc clc
bra DIR.LI.APPLY
DIR.LI.ON ldy #ASM.LI.ON DIR.LI.APPLY lda #0
sec ror
bra DIR.LI.APPLY
DIR.LI.OFF ldy #ASM.LI.ON
clc
DIR.LI.APPLY asl
sta (pData),y sta (pData),y
clc
rts
DIR.LI.9 lda #ERR.SYNTAX.ERROR
sec
rts rts
*--------------------------------------- *---------------------------------------
DIR.MA >LDA.G MAC.bAdd DIR.MA >LDA.G MAC.bAdd

View File

@ -41,7 +41,7 @@ EXP.Eval.Next1 cmp #'.' Local Label?
.12 cmp #'*' .12 cmp #'*'
bne .10 bne .10
ldy #ASM.PC+3 ldy #ASM.PC+3
ldx #3 ldx #3
@ -51,6 +51,7 @@ EXP.Eval.Next1 cmp #'.' Local Label?
dex dex
bpl .11 bpl .11
jsr SRC.GetNextChar
jmp EXP.EvalOperator jmp EXP.EvalOperator
.10 jsr SRC.IsDigit10 Decimal constant ? .10 jsr SRC.IsDigit10 Decimal constant ?
@ -99,7 +100,7 @@ EXP.Eval.Next1 cmp #'.' Local Label?
jsr SRC.GetNextChar jsr SRC.GetNextChar
bra EXP.EvalOperator bra EXP.EvalOperator
.43 cmp '"' .43 cmp #'"'
bne .42 bne .42
jsr SRC.GetNextChar jsr SRC.GetNextChar
bcs EXP.EvalExitSYN bcs EXP.EvalExitSYN
@ -203,8 +204,8 @@ EXP.GetSymbol jsr SYM.LookupGlobal
EXP.Compute dec EXP.Compute dec
asl asl
tax tax
* >LDA.G ASM.PASS pass#2? >LDA.G ASM.PASS pass#2?
* beq .8 beq .8
jmp (J.EXP.OP,x) jmp (J.EXP.OP,x)
.8 clc .8 clc
rts rts

View File

@ -31,18 +31,20 @@ OUT.EmitByte pha
cmp #3 cmp #3
bne .2 bne .2
jsr SCR.PrintLineOn jsr SRC.PrintLineOn
bcs .1 bcs .1
>LDA.G ASM.LI.XON
bpl .1
jsr SRC.PrintLineOutBuf jsr SRC.PrintLineOutBuf
lda #13 lda #13
>SYSCALL PutChar.A >SYSCALL PutChar.A
lda #10 lda #10
>SYSCALL PutChar.A >SYSCALL PutChar.A
jsr OUT.Reset .1 jsr OUT.Reset
.1 lda #0 lda #0
ldy #OUT.Buf ldy #OUT.Buf
.2 inc .2 inc

View File

@ -2,18 +2,19 @@ NEW
PREFIX /A2OSX.BUILD PREFIX /A2OSX.BUILD
AUTO 4,1 AUTO 4,1
*--------------------------------------- *---------------------------------------
SRC.PrintLine jsr SCR.PrintLineOn SRC.PrintLine jsr SRC.PrintLineOn
bcs .9 bcs SRC.PrintLine.9
jsr SRC.PrintLineOutBuf
bcs .9 SRC.PrintLine.1 jsr SRC.PrintLineOutBuf
bcs SRC.PrintLine.9
>PUSHW ZPLineBuf >PUSHW ZPLineBuf
>PUSHW.G SRC.LINENUM >PUSHW.G SRC.LINENUM
>LDYA L.MSG.SRCLINE >LDYA L.MSG.SRCLINE
>SYSCALL PrintF.YA >SYSCALL PrintF.YA
.9 rts SRC.PrintLine.9 rts
*--------------------------------------- *---------------------------------------
SCR.PrintLineOn >LDA.G ASM.LI.ON SRC.PrintLineOn >LDA.G ASM.LI.ON
bpl .9 bpl .9
>LDA.G MAC.bAdd >LDA.G MAC.bAdd
bpl .1 bpl .1
@ -56,11 +57,18 @@ SRC.PrintLineOutBuf >LDA.G OUT.Buf
>SYSCALL PrintF.YA >SYSCALL PrintF.YA
.9 rts .9 rts
*--------------------------------------- *---------------------------------------
SRC.PrintLineErr >PUSHW ZPLineBuf SRC.PrintLineErr >STA.G DIR.Byte Save Error code
>LDYA L.MSG.LINECR
>SYSCALL PrintF.YA jsr SRC.PrintLineOn
bcc .1 Already printed
jsr SRC.PrintLine.1
bcs .9 bcs .9
.1 >PUSHB.G DIR.Byte
>LDYA L.MSG.ERROR
>SYSCALL PrintF.YA
ldx ZPLinePtr ldx ZPLinePtr
cpx ZPLineBuf cpx ZPLineBuf
beq .4 beq .4
@ -416,12 +424,14 @@ SRC.ParseLine.AM stz SRC.AM.StrBuf
inc SRC.AM.StrBuf inc SRC.AM.StrBuf
ldx SRC.AM.StrBuf ldx SRC.AM.StrBuf
sta SRC.AM.StrBuf,x sta SRC.AM.StrBuf,x
bra .7
jsr SRC.GetNextChar
bcs .9
.3 jsr SRC.IsLetter Any register? .3 jsr SRC.IsLetter Any register?
bcs .6 no, try something else bcs .6 no, try something else
>LDYA ZPRPtr >LDYA ZPRPtr Check in register table
jsr SRC.GetKeyword jsr SRC.GetKeyword
bcs .6 bcs .6
@ -704,7 +714,7 @@ SRC.GetKeyword >STYA ZPPtr1 KeyWord table
.3 lda (ZPLinePtr),y .3 lda (ZPLinePtr),y
beq .5 beq .5
jsr SRC.IsLetterUC jsr SRC.IsKeywordLetterUC
bcs .5 bcs .5
iny iny
@ -717,7 +727,7 @@ SRC.GetKeyword >STYA ZPPtr1 KeyWord table
lda (ZPLinePtr),y All chars match... lda (ZPLinePtr),y All chars match...
beq .4 End of Line ? beq .4 End of Line ?
jsr SRC.IsLetter jsr SRC.IsKeywordLetterUC
bcc .5 Additional letters... bcc .5 Additional letters...
.4 lda ZPLinePtr .4 lda ZPLinePtr
@ -768,16 +778,23 @@ SRC.IsMODReserved ldx SRC.MOD.RESERVED
*--------------------------------------- *---------------------------------------
SRC.IsEXPReserved ldx SRC.EXP.RESERVED SRC.IsEXPReserved ldx SRC.EXP.RESERVED
.1 cmp SRC.EXP.RESERVED,x .1 cmp SRC.EXP.RESERVED,x
beq .8 beq SRC.IsEXPReserved.8
dex dex
bne .1 bne .1
sec sec
rts rts
.8 clc SRC.IsEXPReserved.8 clc
rts rts
*--------------------------------------- *---------------------------------------
SRC.IsLetterUC cmp #'A' SRC.IsKeywordLetterUC
cmp #'.'
beq SRC.IsEXPReserved.8
cmp #'_'
beq SRC.IsEXPReserved.8
cmp #'A'
bcc .9 bcc .9
cmp #'Z'+1 cmp #'Z'+1
bcc .99 bcc .99
@ -815,10 +832,19 @@ SRC.IsDigit16 jsr SRC.IsDigit10
bcc .9 bcc .9
cmp #'F'+1 cmp #'F'+1
bcc .1 bcc .1
rts cc if ok, cs if not
.1 sbc #'A'-11 cc so A->10 (11-CC) cmp #'a'
bcc .9
cmp #'f'+1
bcs .9
eor #$20
.1
* clc
sbc #'A'-11 cc so A->10 (11-CC)
clc clc
.8 and #$0F .8 and #$0F
rts rts

View File

@ -82,7 +82,6 @@ L.MSG.OUT0 .DA MSG.OUT0
.DA MSG.OUT2 .DA MSG.OUT2
.DA MSG.OUT3 .DA MSG.OUT3
L.MSG.SRCLINE .DA MSG.SRCLINE L.MSG.SRCLINE .DA MSG.SRCLINE
L.MSG.LINECR .DA MSG.LINECR
L.MSG.ERROR .DA MSG.ERROR L.MSG.ERROR .DA MSG.ERROR
L.MSG.SYMBOLS .DA MSG.SYMBOLS L.MSG.SYMBOLS .DA MSG.SYMBOLS
L.MSG.GSYMBOL .DA MSG.GSYMBOL L.MSG.GSYMBOL .DA MSG.GSYMBOL
@ -137,12 +136,14 @@ J.DIRECTIVES .DA DIR.AC
.DA DIR.TI .DA DIR.TI
.DA DIR.US .DA DIR.US
L.T.LI .DA T.LI L.T.LI .DA T.LI
J.LI .DA DIR.LI.CON J.LI .DA DIR.LI.ON
.DA DIR.LI.OFF
.DA DIR.LI.CON
.DA DIR.LI.COFF .DA DIR.LI.COFF
.DA DIR.LI.MON
.DA DIR.LI.MOFF
.DA DIR.LI.XON .DA DIR.LI.XON
.DA DIR.LI.XOFF .DA DIR.LI.XOFF
.DA DIR.LI.ON
.DA DIR.LI.OFF
J.EXP.OP .DA EXP.OP.EOR ^!|&<=>+-*/ J.EXP.OP .DA EXP.OP.EOR ^!|&<=>+-*/
.DA EXP.OP.ORA .DA EXP.OP.ORA
.DA EXP.OP.ORA .DA EXP.OP.ORA
@ -280,12 +281,6 @@ CS.RUN >SYSCALL GetChar
.9 pha .9 pha
jsr SRC.PrintLineErr jsr SRC.PrintLineErr
pla pla
pha
>PUSHA
>PUSHW.G SRC.LINENUM
>LDYA L.MSG.ERROR
>SYSCALL PrintF.YA
pla
sec sec
rts rts
*-------------------------------------- *--------------------------------------
@ -372,12 +367,14 @@ T.DIRECTIVES >PSTR "AC"
>PSTR "US" >PSTR "US"
.HS 00 .HS 00
*--------------------------------------- *---------------------------------------
T.LI >PSTR "CON" T.LI >PSTR "ON"
>PSTR "OFF"
>PSTR "CON"
>PSTR "COFF" >PSTR "COFF"
>PSTR "MON"
>PSTR "MOFF"
>PSTR "XON" >PSTR "XON"
>PSTR "XOFF" >PSTR "XOFF"
>PSTR "ON"
>PSTR "OFF"
.HS 00 .HS 00
*--------------------------------------- *---------------------------------------
MSG.HELP >CSTR "A2osX-Macro Assembler (S-C MASM 3.0 Based)\r\nUsage : ASM <src file> [type TXT ($04) or S-C/BAS ($FA)]\r\n" MSG.HELP >CSTR "A2osX-Macro Assembler (S-C MASM 3.0 Based)\r\nUsage : ASM <src file> [type TXT ($04) or S-C/BAS ($FA)]\r\n"
@ -390,8 +387,7 @@ MSG.OUT1 >CSTR "%H-%h "
MSG.OUT2 >CSTR "%H-%h %h " MSG.OUT2 >CSTR "%H-%h %h "
MSG.OUT3 >CSTR "%H-%h %h %h " MSG.OUT3 >CSTR "%H-%h %h %h "
MSG.SRCLINE >CSTR "%05D %s\r\n" MSG.SRCLINE >CSTR "%05D %s\r\n"
MSG.LINECR >CSTR "%s\r\n" MSG.ERROR >CSTR "*** Fatal Error $%h "
MSG.ERROR >CSTR "%05D-Error:$%h\r\n"
MSG.SYMBOLS >CSTR "Symbol Table:\r\n" MSG.SYMBOLS >CSTR "Symbol Table:\r\n"
MSG.GSYMBOL >CSTR "$%h%h%h%h:%S\r\n" MSG.GSYMBOL >CSTR "$%h%h%h%h:%S\r\n"
MSG.SUMMARY >CSTR "\r\nSymbol Table Size : %5D Bytes.\r\nEnd Of Assembly.\r\n" MSG.SUMMARY >CSTR "\r\nSymbol Table Size : %5D Bytes.\r\nEnd Of Assembly.\r\n"

View File

@ -1,30 +0,0 @@
NEW
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 "i"
>PSTR "a,r"
>PSTR "r"
>PSTR "(aa)"
>PSTR "(aa,x)"
>PSTR "a,Y"
.HS 00
*---------------------------------------
T.REGISTERS .EQ *
>PSTR "Y"
>PSTR "X"
.HS 00
*---------------------------------------
MAN
SAVE /A2OSX.BUILD/BIN/DEV/ASM.T.65W02.A
LOAD /A2OSX.BUILD/BIN/DEV/ASM.T.65W02.S
ASM

View File

@ -1,729 +0,0 @@
NEW
PREFIX /A2OSX.BUILD
AUTO 4,1
*---------------------------------------
T.OPCODES .EQ *
ADC .DA ADC.E+1-*
>PSTR "ADC"
.HS 01
>PSTR "72a"
.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"
.HS 09
>PSTR "69i"
ADC.E .HS 00
AND .DA AND.E+1-*
>PSTR "AND"
.HS 01
>PSTR "32a"
.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"
.HS 09
>PSTR "29i"
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 00
>PSTR "0A"
ASL.E .HS 00
BBR0 .DA BBR0.E+1-*
>PSTR "BBR0"
.HS 0A
>PSTR "0Far"
BBR0.E .HS 00
BBR1 .DA BBR1.E+1-*
>PSTR "BBR1"
.HS 0A
>PSTR "1Far"
BBR1.E .HS 00
BBR2 .DA BBR2.E+1-*
>PSTR "BBR2"
.HS 0A
>PSTR "2Far"
BBR2.E .HS 00
BBR3 .DA BBR3.E+1-*
>PSTR "BBR3"
.HS 0A
>PSTR "3Far"
BBR3.E .HS 00
BBR4 .DA BBR4.E+1-*
>PSTR "BBR4"
.HS 0A
>PSTR "4Far"
BBR4.E .HS 00
BBR5 .DA BBR5.E+1-*
>PSTR "BBR5"
.HS 0A
>PSTR "5Far"
BBR5.E .HS 00
BBR6 .DA BBR6.E+1-*
>PSTR "BBR6"
.HS 0A
>PSTR "6Far"
BBR6.E .HS 00
BBR7 .DA BBR7.E+1-*
>PSTR "BBR7"
.HS 0A
>PSTR "7Far"
BBR7.E .HS 00
BBS0 .DA BBS0.E+1-*
>PSTR "BBS0"
.HS 0A
>PSTR "8Far"
BBS0.E .HS 00
BBS1 .DA BBS1.E+1-*
>PSTR "BBS1"
.HS 0A
>PSTR "9Far"
BBS1.E .HS 00
BBS2 .DA BBS2.E+1-*
>PSTR "BBS2"
.HS 0A
>PSTR "AFar"
BBS2.E .HS 00
BBS3 .DA BBS3.E+1-*
>PSTR "BBS3"
.HS 0A
>PSTR "BFar"
BBS3.E .HS 00
BBS4 .DA BBS4.E+1-*
>PSTR "BBS4"
.HS 0A
>PSTR "CFar"
BBS4.E .HS 00
BBS5 .DA BBS5.E+1-*
>PSTR "BBS5"
.HS 0A
>PSTR "DFar"
BBS5.E .HS 00
BBS6 .DA BBS6.E+1-*
>PSTR "BBS6"
.HS 0A
>PSTR "EFar"
BBS6.E .HS 00
BBS7 .DA BBS7.E+1-*
>PSTR "BBS7"
.HS 0A
>PSTR "FFar"
BBS7.E .HS 00
BCC .DA BCC.E+1-*
>PSTR "BCC"
.HS 0B
>PSTR "90r"
BCC.E .HS 00
BCS .DA BCS.E+1-*
>PSTR "BCS"
.HS 0B
>PSTR "B0r"
BCS.E .HS 00
BEQ .DA BEQ.E+1-*
>PSTR "BEQ"
.HS 0B
>PSTR "F0r"
BEQ.E .HS 00
BIT .DA BIT.E+1-*
>PSTR "BIT"
.HS 04
>PSTR "24a"
.HS 05
>PSTR "34a"
.HS 06
>PSTR "2Caa"
.HS 07
>PSTR "3Caa"
.HS 09
>PSTR "89i"
BIT.E .HS 00
BMI .DA BMI.E+1-*
>PSTR "BMI"
.HS 0B
>PSTR "30r"
BMI.E .HS 00
BNE .DA BNE.E+1-*
>PSTR "BNE"
.HS 0B
>PSTR "D0r"
BNE.E .HS 00
BPL .DA BPL.E+1-*
>PSTR "BPL"
.HS 0B
>PSTR "10r"
BPL.E .HS 00
BRA .DA BRA.E+1-*
>PSTR "BRA"
.HS 0B
>PSTR "80r"
BRA.E .HS 00
BRK .DA BRK.E+1-*
>PSTR "BRK"
.HS 00
>PSTR "00"
BRK.E .HS 00
BVC .DA BVC.E+1-*
>PSTR "BVC"
.HS 0B
>PSTR "50r"
BVC.E .HS 00
BVS .DA BVS.E+1-*
>PSTR "BVS"
.HS 0B
>PSTR "70r"
BVS.E .HS 00
CLC .DA CLC.E+1-*
>PSTR "CLC"
.HS 00
>PSTR "18"
CLC.E .HS 00
CLD .DA CLD.E+1-*
>PSTR "CLD"
.HS 00
>PSTR "D8"
CLD.E .HS 00
CLI .DA CLI.E+1-*
>PSTR "CLI"
.HS 00
>PSTR "58"
CLI.E .HS 00
CLV .DA CLV.E+1-*
>PSTR "CLV"
.HS 00
>PSTR "B8"
CLV.E .HS 00
CMP .DA CMP.E+1-*
>PSTR "CMP"
.HS 01
>PSTR "D2a"
.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"
.HS 09
>PSTR "C9i"
CMP.E .HS 00
CPX .DA CPX.E+1-*
>PSTR "CPX"
.HS 04
>PSTR "E4a"
.HS 06
>PSTR "Ecaa"
.HS 09
>PSTR "E0i"
CPX.E .HS 00
CPY .DA CPY.E+1-*
>PSTR "CPY"
.HS 04
>PSTR "C4a"
.HS 06
>PSTR "Ccaa"
.HS 09
>PSTR "C0i"
CPY.E .HS 00
DEC .DA DEC.E+1-*
>PSTR "DEC"
.HS 00
>PSTR "3A"
.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 00
>PSTR "CA"
DEX.E .HS 00
DEY .DA DEY.E+1-*
>PSTR "DEY"
.HS 00
>PSTR "88"
DEY.E .HS 00
EOR .DA EOR.E+1-*
>PSTR "EOR"
.HS 01
>PSTR "52a"
.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"
.HS 09
>PSTR "49i"
EOR.E .HS 00
INC .DA INC.E+1-*
>PSTR "INC"
.HS 00
>PSTR "1A"
.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 00
>PSTR "E8"
INX.E .HS 00
INY .DA INY.E+1-*
>PSTR "INY"
.HS 00
>PSTR "C8"
INY.E .HS 00
JMP .DA JMP.E+1-*
>PSTR "JMP"
.HS 0C
>PSTR "6Caa"
.HS 0D
>PSTR "7Caa"
.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 "B2a"
.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"
.HS 09
>PSTR "A9i"
LDA.E .HS 00
LDX .DA LDX.E+1-*
>PSTR "LDX"
.HS 04
>PSTR "A6a"
.HS 0E
>PSTR "B6a"
.HS 06
>PSTR "Aeaa"
.HS 08
>PSTR "Beaa"
.HS 09
>PSTR "A2i"
LDX.E .HS 00
LDY .DA LDY.E+1-*
>PSTR "LDY"
.HS 04
>PSTR "A4a"
.HS 05
>PSTR "B4a"
.HS 06
>PSTR "Acaa"
.HS 07
>PSTR "Bcaa"
.HS 09
>PSTR "A0i"
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 00
>PSTR "4A"
LSR.E .HS 00
NOP .DA NOP.E+1-*
>PSTR "NOP"
.HS 00
>PSTR "EA"
NOP.E .HS 00
ORA .DA ORA.E+1-*
>PSTR "ORA"
.HS 01
>PSTR "12a"
.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"
.HS 09
>PSTR "09i"
ORA.E .HS 00
PHA .DA PHA.E+1-*
>PSTR "PHA"
.HS 00
>PSTR "48"
PHA.E .HS 00
PHP .DA PHP.E+1-*
>PSTR "PHP"
.HS 00
>PSTR "08"
PHP.E .HS 00
PHX .DA PHX.E+1-*
>PSTR "PHX"
.HS 00
>PSTR "DA"
PHX.E .HS 00
PHY .DA PHY.E+1-*
>PSTR "PHY"
.HS 00
>PSTR "5A"
PHY.E .HS 00
PLA .DA PLA.E+1-*
>PSTR "PLA"
.HS 00
>PSTR "68"
PLA.E .HS 00
PLP .DA PLP.E+1-*
>PSTR "PLP"
.HS 00
>PSTR "28"
PLP.E .HS 00
PLX .DA PLX.E+1-*
>PSTR "PLX"
.HS 00
>PSTR "FA"
PLX.E .HS 00
PLY .DA PLY.E+1-*
>PSTR "PLY"
.HS 00
>PSTR "7A"
PLY.E .HS 00
RMB0 .DA RMB0.E+1-*
>PSTR "RMB0"
.HS 04
>PSTR "07a"
RMB0.E .HS 00
RMB1 .DA RMB1.E+1-*
>PSTR "RMB1"
.HS 04
>PSTR "17a"
RMB1.E .HS 00
RMB2 .DA RMB2.E+1-*
>PSTR "RMB2"
.HS 04
>PSTR "27a"
RMB2.E .HS 00
RMB3 .DA RMB3.E+1-*
>PSTR "RMB3"
.HS 04
>PSTR "37a"
RMB3.E .HS 00
RMB4 .DA RMB4.E+1-*
>PSTR "RMB4"
.HS 04
>PSTR "47a"
RMB4.E .HS 00
RMB5 .DA RMB5.E+1-*
>PSTR "RMB5"
.HS 04
>PSTR "57a"
RMB5.E .HS 00
RMB6 .DA RMB6.E+1-*
>PSTR "RMB6"
.HS 04
>PSTR "67a"
RMB6.E .HS 00
RMB7 .DA RMB7.E+1-*
>PSTR "RMB7"
.HS 04
>PSTR "77a"
RMB7.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 00
>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 00
>PSTR "6A"
ROR.E .HS 00
RTI .DA RTI.E+1-*
>PSTR "RTI"
.HS 00
>PSTR "40"
RTI.E .HS 00
RTS .DA RTS.E+1-*
>PSTR "RTS"
.HS 00
>PSTR "60"
RTS.E .HS 00
SBC .DA SBC.E+1-*
>PSTR "SBC"
.HS 01
>PSTR "F2a"
.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"
.HS 09
>PSTR "E9i"
SBC.E .HS 00
SEC .DA SEC.E+1-*
>PSTR "SEC"
.HS 00
>PSTR "38"
SEC.E .HS 00
SED .DA SED.E+1-*
>PSTR "SED"
.HS 00
>PSTR "F8"
SED.E .HS 00
SEI .DA SEI.E+1-*
>PSTR "SEI"
.HS 00
>PSTR "78"
SEI.E .HS 00
SMB0 .DA SMB0.E+1-*
>PSTR "SMB0"
.HS 04
>PSTR "87a"
SMB0.E .HS 00
SMB1 .DA SMB1.E+1-*
>PSTR "SMB1"
.HS 04
>PSTR "97a"
SMB1.E .HS 00
SMB2 .DA SMB2.E+1-*
>PSTR "SMB2"
.HS 04
>PSTR "A7a"
SMB2.E .HS 00
SMB3 .DA SMB3.E+1-*
>PSTR "SMB3"
.HS 04
>PSTR "B7a"
SMB3.E .HS 00
SMB4 .DA SMB4.E+1-*
>PSTR "SMB4"
.HS 04
>PSTR "C7a"
SMB4.E .HS 00
SMB5 .DA SMB5.E+1-*
>PSTR "SMB5"
.HS 04
>PSTR "D7a"
SMB5.E .HS 00
SMB6 .DA SMB6.E+1-*
>PSTR "SMB6"
.HS 04
>PSTR "E7a"
SMB6.E .HS 00
SMB7 .DA SMB7.E+1-*
>PSTR "SMB7"
.HS 04
>PSTR "F7a"
SMB7.E .HS 00
STA .DA STA.E+1-*
>PSTR "STA"
.HS 01
>PSTR "92a"
.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
STP .DA STP.E+1-*
>PSTR "STP"
.HS 00
>PSTR "DB"
STP.E .HS 00
STX .DA STX.E+1-*
>PSTR "STX"
.HS 04
>PSTR "86a"
.HS 0E
>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
STZ .DA STZ.E+1-*
>PSTR "STZ"
.HS 04
>PSTR "64a"
.HS 05
>PSTR "74a"
.HS 06
>PSTR "9Caa"
.HS 07
>PSTR "9Eaa"
STZ.E .HS 00
TAX .DA TAX.E+1-*
>PSTR "TAX"
.HS 00
>PSTR "AA"
TAX.E .HS 00
TAY .DA TAY.E+1-*
>PSTR "TAY"
.HS 00
>PSTR "A8"
TAY.E .HS 00
TRB .DA TRB.E+1-*
>PSTR "TRB"
.HS 04
>PSTR "14a"
.HS 06
>PSTR "1Caa"
TRB.E .HS 00
TSB .DA TSB.E+1-*
>PSTR "TSB"
.HS 04
>PSTR "04a"
.HS 06
>PSTR "0Caa"
TSB.E .HS 00
TSX .DA TSX.E+1-*
>PSTR "TSX"
.HS 00
>PSTR "BA"
TSX.E .HS 00
TXA .DA TXA.E+1-*
>PSTR "TXA"
.HS 00
>PSTR "8A"
TXA.E .HS 00
TXS .DA TXS.E+1-*
>PSTR "TXS"
.HS 00
>PSTR "9A"
TXS.E .HS 00
TYA .DA TYA.E+1-*
>PSTR "TYA"
.HS 00
>PSTR "98"
TYA.E .HS 00
WAI .DA WAI.E+1-*
>PSTR "WAI"
.HS 00
>PSTR "CB"
WAI.E .HS 00
.HS 0000
*---------------------------------------
MAN
SAVE /A2OSX.BUILD/BIN/DEV/ASM.T.65W02.O
LOAD /A2OSX.BUILD/BIN/DEV/ASM.T.65W02.S
ASM

View File

@ -1,23 +0,0 @@
NEW
PREFIX /A2OSX.BUILD
AUTO 4,1
.LIST OFF
.OR $0
.TF /A2OSX.BUILD/BIN/DEV/ASM.T.65W02
*---------------------------------------
.MA PSTR
.DA #:1-*-1
.AS "]1"
:1 .EQ *
.EM
*---------------------------------------
.DA T.ADDR.MODES
.DA T.REGISTERS
.DA T.OPCODES
*---------------------------------------
.INB /A2OSX.BUILD/BIN/DEV/ASM.T.65W02.O
.INB /A2OSX.BUILD/BIN/DEV/ASM.T.65W02.A
*---------------------------------------
MAN
SAVE /A2OSX.BUILD/BIN/DEV/ASM.T.65W02.S
ASM