1
0
mirror of https://github.com/RevCurtisP/C02.git synced 2024-06-26 05:29:32 +00:00

Added A02 Assembler test files

This commit is contained in:
Curtis F Kaylor 2019-11-14 12:30:41 -05:00
parent bdc3674c59
commit d02c8b6a3a
3 changed files with 378 additions and 3 deletions

View File

@ -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
View 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
View 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