mirror of
https://github.com/RevCurtisP/C02.git
synced 2024-11-29 01:49:19 +00:00
Added A02 Assembler test files
This commit is contained in:
parent
bdc3674c59
commit
d02c8b6a3a
17
work/a02.bat
17
work/a02.bat
@ -1,3 +1,14 @@
|
|||||||
@ECHO Assembling File %1.asm
|
@ECHO OFF
|
||||||
dasm %1.asm -f3 -o%1.bin -l%1.lst -s%1.sym
|
IF "%1" == "" (
|
||||||
|
ECHO Usage: %0 a02file
|
||||||
|
GOTO :EXIT
|
||||||
|
)
|
||||||
|
SET ASMEXT=""
|
||||||
|
IF EXIST %1.a02 SET ASMEXT=a02
|
||||||
|
IF EXIST %1.asm SET ASMEXT=asm
|
||||||
|
IF "%ASMEXT%" == "" (
|
||||||
|
ECHO Assembly File %1 Not Found
|
||||||
|
GOTO :EXIT
|
||||||
|
)
|
||||||
|
ECHO Assembling File %1.%ASMEXT%
|
||||||
|
..\a02.exe %1.%ASMEXT% %1.bin %1.lst >%1.out
|
||||||
|
106
work/a02test.a02
Normal file
106
work/a02test.a02
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
;A02 Assembler Test File
|
||||||
|
TRUE: EQU $FF
|
||||||
|
FALSE: EQU $00
|
||||||
|
|
||||||
|
one equ 1
|
||||||
|
two equ 1 + 1
|
||||||
|
three equ one + one + one
|
||||||
|
four equ three + 1
|
||||||
|
|
||||||
|
|
||||||
|
PNTR: EQU $80
|
||||||
|
.local EQU 99
|
||||||
|
STRUCT EQU $0FFF
|
||||||
|
|
||||||
|
start ORG $0400 ;Start of Code
|
||||||
|
SUBROUTINE
|
||||||
|
flags: CLC
|
||||||
|
SEC
|
||||||
|
CLI
|
||||||
|
SEI
|
||||||
|
CLV
|
||||||
|
CLD
|
||||||
|
.local SED
|
||||||
|
SUBROUTINE
|
||||||
|
rgstr: DEX
|
||||||
|
DEY
|
||||||
|
INX
|
||||||
|
INY
|
||||||
|
TAX
|
||||||
|
TAY
|
||||||
|
TSX
|
||||||
|
TXA
|
||||||
|
TXS
|
||||||
|
TYA
|
||||||
|
SUBROUTINE
|
||||||
|
retrn: RTI
|
||||||
|
RTS
|
||||||
|
SUBROUTINE
|
||||||
|
stack: PHA
|
||||||
|
PHP
|
||||||
|
PHX
|
||||||
|
PHY
|
||||||
|
PLA
|
||||||
|
PLP
|
||||||
|
PLX
|
||||||
|
PLY
|
||||||
|
SUBROUTINE
|
||||||
|
other: NOP
|
||||||
|
BRK
|
||||||
|
SUBROUTINE
|
||||||
|
branch: BCC rgstr
|
||||||
|
BCS flags
|
||||||
|
.loop BEQ retrn
|
||||||
|
BNE jump
|
||||||
|
BMI .next
|
||||||
|
BPL .loop
|
||||||
|
BRA branch
|
||||||
|
.next BVC +127
|
||||||
|
BVS -128
|
||||||
|
SUBROUTINE
|
||||||
|
jump JMP .next
|
||||||
|
JMP (words )
|
||||||
|
JMP (pntr,x)
|
||||||
|
.next JSR retrn
|
||||||
|
SUBROUTINE
|
||||||
|
memory: ADC #$98 ;Immediate
|
||||||
|
AND TABLE,Y ;Absolute,Y
|
||||||
|
CMP PNTR,Y ;Absolute,Y (Zero Page Address)
|
||||||
|
EOR (PNTR,X) ;(Indirect,X)
|
||||||
|
LDA (PNTR),Y ;(Indirect),Y
|
||||||
|
ORA (PNTR) ;(Indirect)
|
||||||
|
ASL ;Accumulator
|
||||||
|
DEC PNTR ;ZeroPage
|
||||||
|
INC PNTR,X ;ZeroPage,X
|
||||||
|
LSR BYTES ;Absolute
|
||||||
|
ROL BYTES,X ;Absolute,X
|
||||||
|
ROR $ABCD,X ;Absolute,X
|
||||||
|
CPX #$76 ;Immediate
|
||||||
|
CPY PNTR ;ZeroPage
|
||||||
|
STY PNTR,X ;ZeroPage,X
|
||||||
|
STZ $CDEF ;Absolute
|
||||||
|
LDY $CDEF,X ;Absolute,X
|
||||||
|
TRB PNTR ;ZeroPage
|
||||||
|
TSB $1234 ;Absolute
|
||||||
|
SUBROUTINE
|
||||||
|
exprsn LDA #PNTR+1 ;Immediate
|
||||||
|
LDA PNTR+1 ;ZeroPage
|
||||||
|
LDA (PNTR+2) ;Indirect
|
||||||
|
LDA (PNTR+4,X) ;(Indirect,X)
|
||||||
|
LDA (PNTR+6),Y ;(Indirect),Y
|
||||||
|
LDA STRUCT ;Absolute
|
||||||
|
LDX #<STRUCT ;LSB Immediate
|
||||||
|
LDY #>STRUCT ;MSB Immediate
|
||||||
|
LDA STRUCT+1
|
||||||
|
LDX #<STRUCT+1
|
||||||
|
LDY #>STRUCT+1
|
||||||
|
LDA STRUCT+2
|
||||||
|
LDX #<(STRUCT+2)
|
||||||
|
LDY #>(STRUCT+2)
|
||||||
|
|
||||||
|
BYTES byte 99, %10101010,'~' ;Bytes
|
||||||
|
byte $12,$34
|
||||||
|
HEXES hex 01,23,45,67,AB,CD,EF,1A,2B,3C,D4,E5,F6 ;Hexadecimal
|
||||||
|
WORDS word $3456
|
||||||
|
TABLE word $1357,$9BDF,$2468
|
||||||
|
TEXT byte "ABCDEFGHIJKLMNOPQRSTUVWXYZ",0
|
258
work/opcodes.a02
Normal file
258
work/opcodes.a02
Normal file
@ -0,0 +1,258 @@
|
|||||||
|
PROCESSOR 6502
|
||||||
|
ORG $1000
|
||||||
|
X00 BRK ;00
|
||||||
|
X01 ORA ($10,X) ;01
|
||||||
|
X02 BYTE $02 ;NOP #IMD
|
||||||
|
X03 BYTE $03 ;NOP
|
||||||
|
X04 TSB $40 ;04
|
||||||
|
X05 ORA $50 ;05
|
||||||
|
X06 ASL $60 ;06
|
||||||
|
X07 BYTE $07 ;RMB0
|
||||||
|
X08 PHP ;08
|
||||||
|
X09 ORA #$90 ;09
|
||||||
|
X0A ASL ;0A
|
||||||
|
X0B BYTE $0B ;NOP
|
||||||
|
X0C TSB $CBA9 ;0C
|
||||||
|
X0D ORA $DCBA ;0D
|
||||||
|
X0E ASL $EDCB ;0E
|
||||||
|
X0F BYTE $0F ;BBR0
|
||||||
|
X10 BPL X11 ;10
|
||||||
|
X11 ORA ($11),Y ;11
|
||||||
|
X12 BYTE $12 ;NOP #IMD
|
||||||
|
X13 BYTE $13 ;NOP
|
||||||
|
X14 TRB $51 ;14
|
||||||
|
X15 ORA $61,X ;15
|
||||||
|
X16 ASL $71,X ;16
|
||||||
|
X17 BYTE $17 ;RMB1
|
||||||
|
X18 CLC ;18
|
||||||
|
X19 ORA $A987,Y ;19
|
||||||
|
X1A BYTE $1A ;1A
|
||||||
|
X1B BYTE $1B ;1A
|
||||||
|
X1C TRB $CBA9 ;1C
|
||||||
|
X1D ORA $DCBA,X ;1D
|
||||||
|
X1E ASL $EDCB,X ;1E
|
||||||
|
X1F BYTE $1F ;BBR1
|
||||||
|
X20 JSR $0123 ;20
|
||||||
|
X21 AND ($12,X) ;21
|
||||||
|
X22 BYTE $22 ;NOP #IMD
|
||||||
|
X23 BYTE $23 ;NOP
|
||||||
|
X24 BIT $42 ;24
|
||||||
|
X25 AND $52 ;25
|
||||||
|
X26 ROL $62 ;26
|
||||||
|
X27 BYTE $27 ;RMB2
|
||||||
|
X28 PLP ;28
|
||||||
|
X29 AND #$92 ;29
|
||||||
|
X2A ROL ;2A
|
||||||
|
X2B BYTE $2B ;2B
|
||||||
|
X2C BIT $CBDA ;2C
|
||||||
|
X2D AND $DCBA ;2D
|
||||||
|
X2E ROL $EDCB ;2E
|
||||||
|
X2F BYTE $2F ;BBR2
|
||||||
|
X30 BMI X33 ;30
|
||||||
|
X31 AND ($13),Y ;31
|
||||||
|
X32 BYTE $32 ;NOP #IMD
|
||||||
|
X33 BYTE $33 ;NOP
|
||||||
|
X34 BIT $43,X ;34
|
||||||
|
X35 AND $53,X ;35
|
||||||
|
X36 ROL $63,X ;36
|
||||||
|
X37 BYTE $37 ;RMB3
|
||||||
|
X38 SEC ;38
|
||||||
|
X39 AND $9876,Y ;39
|
||||||
|
X3A DEC ;3A
|
||||||
|
X3B BYTE $3B ;NOP
|
||||||
|
X3C BIT $CBA9,X ;3C
|
||||||
|
X3D AND $DCBA,X ;3D
|
||||||
|
X3E ROL $EDCB,X ;3E
|
||||||
|
X3F BYTE $3F ;BBR3
|
||||||
|
X40 RTI ;40
|
||||||
|
X41 EOR ($14,X) ;41
|
||||||
|
X42 BYTE $42 ;NOP #IMD
|
||||||
|
X43 BYTE $43 ;NOP
|
||||||
|
X44 BYTE $44 ;NOP $ZP
|
||||||
|
X45 EOR $54 ;45
|
||||||
|
X46 LSR $64 ;46
|
||||||
|
X47 BYTE $47 ;RMB4
|
||||||
|
X48 PHA ;48
|
||||||
|
X49 EOR #$94 ;49
|
||||||
|
X4A LSR ;4A
|
||||||
|
X4B BYTE $4B ;NOP
|
||||||
|
X4C JMP $CBA9 ;4C
|
||||||
|
X4D EOR $DCBA ;4D
|
||||||
|
X4E LSR $EDCB ;4E
|
||||||
|
X4F BYTE $4F ;BBR
|
||||||
|
X50 BVC X55 ;50
|
||||||
|
X51 EOR ($15),Y ;51
|
||||||
|
X52 EOR ($25) ;52
|
||||||
|
X53 BYTE $53 ;NOP
|
||||||
|
X54 BYTE $54 ;NOP $ZP
|
||||||
|
X55 EOR $55,X ;55
|
||||||
|
X56 LSR $65,X ;56
|
||||||
|
X57 BYTE $57 ;RMB5
|
||||||
|
X58 CLI ;58
|
||||||
|
X59 EOR $9876,Y ;59
|
||||||
|
X5A PHY ;5A
|
||||||
|
X5B BYTE $5B ;NOP
|
||||||
|
X5C BYTE $5C ;NOP $ABSL
|
||||||
|
X5D EOR $CBA9,X ;5C
|
||||||
|
X5E LSR $DCBA,X ;5E
|
||||||
|
X5F BYTE $5F ;BBR5
|
||||||
|
X60 RTS ;60
|
||||||
|
X61 ADC ($16,X) ;61
|
||||||
|
X62 BYTE $62 ;NOP #IMD
|
||||||
|
X63 BYTE $63 ;NOP
|
||||||
|
X64 STZ $46 ;64
|
||||||
|
X65 ADC $56 ;65
|
||||||
|
X66 ROR $66 ;66
|
||||||
|
X67 BYTE $67 ;RMB6
|
||||||
|
X68 PLA ;68
|
||||||
|
X69 ADC #$96 ;69
|
||||||
|
X6A ROR ;6A
|
||||||
|
X6B BYTE $6B ;NOP
|
||||||
|
X6C JMP ($CDBA) ;6C
|
||||||
|
X6D ADC $DCBA ;6D
|
||||||
|
X6E ROR $EDCB ;6E
|
||||||
|
X6F BYTE $6F ;BBR6
|
||||||
|
X70 BVS X77 ;70
|
||||||
|
X71 ADC ($17),Y ;71
|
||||||
|
X72 ADC ($27) ;72
|
||||||
|
X73 BYTE $73 ;NOP
|
||||||
|
X74 STZ $47,X ;74
|
||||||
|
X75 ADC $57,X ;75
|
||||||
|
X76 ROR $67,X ;76
|
||||||
|
X77 BYTE $77 ;RMB7
|
||||||
|
X78 SEI ;78
|
||||||
|
X79 ADC $9875,Y ;79
|
||||||
|
X7A PLY ;7A
|
||||||
|
X7B BYTE $7B ;NOP
|
||||||
|
X7C JMP ($C7,X) ;7C
|
||||||
|
X7D ADC $DCBA,X ;7E
|
||||||
|
X7E ROR $DCBA,X ;7E
|
||||||
|
X7F BYTE $7F ;BBR7
|
||||||
|
X80 BRA X88 ;80
|
||||||
|
X81 STA ($18,X) ;81
|
||||||
|
X82 BYTE $82 ;NOP #IMD
|
||||||
|
X83 BYTE $83 ;NOP
|
||||||
|
X84 STY $48 ;84
|
||||||
|
X85 STA $58 ;85
|
||||||
|
X86 STX $68 ;86
|
||||||
|
X87 BYTE $87 ;SMB0
|
||||||
|
X88 DEY ;88
|
||||||
|
X89 BIT #$98 ;89
|
||||||
|
X8A TXA ;8A
|
||||||
|
X8B BYTE $8B ;NOP
|
||||||
|
X8C STY $CBA9 ;8C
|
||||||
|
X8D STA $DCBA ;8D
|
||||||
|
X8E STX $EDCB ;8E
|
||||||
|
X8F BYTE $8F ;BBS0
|
||||||
|
X90 BCC X99 ;90
|
||||||
|
X91 STA ($19),Y ;91
|
||||||
|
X92 STA ($29) ;92
|
||||||
|
X93 BYTE $93 ;NOP
|
||||||
|
X94 STY $49,X ;94
|
||||||
|
X95 STA $59,X ;95
|
||||||
|
X96 STX $69,Y ;96
|
||||||
|
X97 BYTE $97 ;SMB1
|
||||||
|
X98 TYA ;98
|
||||||
|
X99 STA $9876,Y ;99
|
||||||
|
X9A TXS ;9A
|
||||||
|
X9B BYTE $9B ;NOP
|
||||||
|
X9C STZ $CBA9 ;9C
|
||||||
|
X9D STA $DCBA,X ;90
|
||||||
|
X9E STZ $EDCB,X ;9E
|
||||||
|
X9F BYTE $9F ;BBS1
|
||||||
|
XA0 LDY #$0A ;A0
|
||||||
|
XA1 LDA ($1A,X) ;A1
|
||||||
|
XA2 LDX #$2A ;A2
|
||||||
|
XA3 BYTE $A3 ;NOP
|
||||||
|
XA4 LDY $4A ;A4
|
||||||
|
XA5 LDA $5A ;A5
|
||||||
|
XA6 LDX $6A ;A6
|
||||||
|
XA7 BYTE $A7 ;SMB2
|
||||||
|
XA8 TAY ;A8
|
||||||
|
XA9 LDA #$9A ;A9
|
||||||
|
XAA TAX ;AA
|
||||||
|
XAB BYTE $AB ;NOP
|
||||||
|
XAC LDY $CBA9 ;AC
|
||||||
|
XAD LDA $DCBA ;AD
|
||||||
|
XAE LDX $EDCB ;AE
|
||||||
|
XAF BYTE $AF ;BBS2
|
||||||
|
XB0 BCS XBB ;B0
|
||||||
|
XB1 LDA ($1B),Y ;B1
|
||||||
|
XB2 LDA ($2B) ;B2
|
||||||
|
XB3 BYTE $B3 ;NOP
|
||||||
|
XB4 LDY $B4,X ;B4
|
||||||
|
XB5 LDA $B5,X ;BS
|
||||||
|
XB6 LDX $B6,Y ;B6
|
||||||
|
XB7 BYTE $B7 ;SMB3
|
||||||
|
XB8 CLV ;B8
|
||||||
|
XB9 LDA $9876,Y ;B9
|
||||||
|
XBA TSX ;BA
|
||||||
|
XBB BYTE $BB ;NOP
|
||||||
|
XBC STX $CBA9,Y ;BC
|
||||||
|
XBD LDA $DCBA,X ;BD
|
||||||
|
XBE LDX $EDCB,Y ;BE
|
||||||
|
XBF BYTE $BF ;BBS3
|
||||||
|
XC0 CPY #$0C ;C0
|
||||||
|
XC1 CMP ($1C,X) ;C1
|
||||||
|
XC2 BYTE $C2 ;NOP #imd
|
||||||
|
XC3 BYTE $C3 ;NOP
|
||||||
|
XC4 CPY $4C ;C4
|
||||||
|
XC5 CMP $5C ;C5
|
||||||
|
XC6 DEC $6C ;C6
|
||||||
|
XC7 BYTE $C7 ;SMB4
|
||||||
|
XC8 INY ;C8
|
||||||
|
XC9 CMP #$9C ;C9
|
||||||
|
XCA DEX ;CA
|
||||||
|
XCB WAI ;CB
|
||||||
|
XCC CPY $CBA9 ;CC
|
||||||
|
XCD CMP $DCBA ;CD
|
||||||
|
XCE DEC $EDCB ;CE
|
||||||
|
XCF BYTE $CF ;BBS4
|
||||||
|
XD0 BNE XDD ;D0
|
||||||
|
XD1 CMP ($1D),Y ;D1
|
||||||
|
XD2 CMP ($2D) ;D2
|
||||||
|
XD3 BYTE $D3 ;NOP
|
||||||
|
XD4 BYTE $D4 ;NOP $ZP,X
|
||||||
|
XD5 CMP $5D,X ;D5
|
||||||
|
XD6 DEC $6D,X ;D6
|
||||||
|
XD7 BYTE $D7 ;SMB5
|
||||||
|
XD8 CLD ;D8
|
||||||
|
XD9 CMP $9876,Y ;D9
|
||||||
|
XDA PHX ;DA
|
||||||
|
XDB STP ;DB
|
||||||
|
XDC BYTE $DC ;NOP $ABSL
|
||||||
|
XDD CMP $DCBA,X ;DD
|
||||||
|
XDE DEC $EDCB,X ;DE
|
||||||
|
XDF BYTE $DF ;BBS5
|
||||||
|
XE0 CPX #$0E ;E0
|
||||||
|
XE1 SBC ($1E,X) ;E1
|
||||||
|
XE2 BYTE $E2 ;NOP #IMD
|
||||||
|
XE3 BYTE $E3 ;NOP
|
||||||
|
XE4 CPX $4E ;E4
|
||||||
|
XE5 SBC $5E ;E5
|
||||||
|
XE6 INC $6E ;E6
|
||||||
|
XE7 BYTE $E7 ;SMB6
|
||||||
|
XE8 INX ;E8
|
||||||
|
XE9 SBC #$9E ;E9
|
||||||
|
XEA NOP ;EA
|
||||||
|
XEB BYTE $EB ;NOP
|
||||||
|
XEC CPX $CBA9 ;EC
|
||||||
|
XED SBC $DCBA ;ED
|
||||||
|
XEE INC $EDCB ;EE
|
||||||
|
XEF BYTE $EF ;BBS6
|
||||||
|
XF0 BEQ XFF ;F0
|
||||||
|
XF1 SBC ($1F),Y ;F1
|
||||||
|
XF2 SBC ($2F) ;F2
|
||||||
|
XF3 BYTE $F3 ;NOP
|
||||||
|
XF4 BYTE $F4 ;NOP $ZP,X
|
||||||
|
XF5 SBC $5F,X ;F5
|
||||||
|
XF6 INC $6F,X ;F6
|
||||||
|
XF7 BYTE $F7 ;SMB7
|
||||||
|
XF8 SED ;F8
|
||||||
|
XF9 SBC $9876,Y ;F9
|
||||||
|
XFA PLX ;FA
|
||||||
|
XFB BYTE $FB ;NOP
|
||||||
|
XFC BYTE $FC ;NOP $ABSL
|
||||||
|
XFD SBC $DCBA,X ;FD
|
||||||
|
XFE INC $EDCB,X ;FE
|
||||||
|
XFF BYTE $FF ;BBS7
|
Loading…
Reference in New Issue
Block a user