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

View File

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

View File

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

View File

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

View File

@ -82,7 +82,6 @@ L.MSG.OUT0 .DA MSG.OUT0
.DA MSG.OUT2
.DA MSG.OUT3
L.MSG.SRCLINE .DA MSG.SRCLINE
L.MSG.LINECR .DA MSG.LINECR
L.MSG.ERROR .DA MSG.ERROR
L.MSG.SYMBOLS .DA MSG.SYMBOLS
L.MSG.GSYMBOL .DA MSG.GSYMBOL
@ -137,12 +136,14 @@ J.DIRECTIVES .DA DIR.AC
.DA DIR.TI
.DA DIR.US
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.MON
.DA DIR.LI.MOFF
.DA DIR.LI.XON
.DA DIR.LI.XOFF
.DA DIR.LI.ON
.DA DIR.LI.OFF
J.EXP.OP .DA EXP.OP.EOR ^!|&<=>+-*/
.DA EXP.OP.ORA
.DA EXP.OP.ORA
@ -280,12 +281,6 @@ CS.RUN >SYSCALL GetChar
.9 pha
jsr SRC.PrintLineErr
pla
pha
>PUSHA
>PUSHW.G SRC.LINENUM
>LDYA L.MSG.ERROR
>SYSCALL PrintF.YA
pla
sec
rts
*--------------------------------------
@ -372,12 +367,14 @@ T.DIRECTIVES >PSTR "AC"
>PSTR "US"
.HS 00
*---------------------------------------
T.LI >PSTR "CON"
T.LI >PSTR "ON"
>PSTR "OFF"
>PSTR "CON"
>PSTR "COFF"
>PSTR "MON"
>PSTR "MOFF"
>PSTR "XON"
>PSTR "XOFF"
>PSTR "ON"
>PSTR "OFF"
.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"
@ -390,8 +387,7 @@ MSG.OUT1 >CSTR "%H-%h "
MSG.OUT2 >CSTR "%H-%h %h "
MSG.OUT3 >CSTR "%H-%h %h %h "
MSG.SRCLINE >CSTR "%05D %s\r\n"
MSG.LINECR >CSTR "%s\r\n"
MSG.ERROR >CSTR "%05D-Error:$%h\r\n"
MSG.ERROR >CSTR "*** Fatal Error $%h "
MSG.SYMBOLS >CSTR "Symbol Table:\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"

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