mirror of
https://github.com/RevCurtisP/C02.git
synced 2024-11-25 06:31:25 +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
|
||||
dasm %1.asm -f3 -o%1.bin -l%1.lst -s%1.sym
|
||||
|
||||
@ECHO OFF
|
||||
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