Code:
HXA v0.180 Listing File - T_16_L08 Instruction Set - Sat Jun 11 20:53:27
2011
*** Object Code Listing
; Hobby Cross-Assembler Demo 034
; Macro Instruction Set\6502
; ok: 6502 instruction set
; by Anton Treuenfels
; first created: 06/29/06
; last revised: 06/19/07
; no errors to detect
.listfile
.errfile
; -------------------------------
.listoff includes
.liston stats
.include "i6502.a"
; .cpu "6502" ; required psop
.org $1000 ; required psop
; -------------------------------
; backward reference
bakbyt .equ $12
bakwrd .equ $1234
; a simple test of all legal instructions using legal
address modes
; - no complicated expressions
; - references to "fwdbyt" in contexts where both
zero-page and absolute
; modes are possible are resolved as absolute
; some instructions produce the same code but use
; a different mnemonic or syntax:
; - "(wdc)" = WDC-recommended (fairly portable)
; - "(hxa)" = HXA-specific (not portable)
ADC $1234 ; ab
^1000 6D .byte ]opc+8
^1001 34 12 .uword val(]adr$)
ADC bakwrd
^1003 6D .byte ]opc+8
^1004 34 12 .uword val(]adr$)
ADC fwdwrd
^1006 6D .byte ]opc+8
^1007 34 12 .uword val(]adr$)
ADC $1234,x ; abx
^1009 7D .byte ]opc+8
^100A 34 12 .uword val(]adr$)
ADC bakwrd,x
^100C 7D .byte ]opc+8
^100D 34 12 .uword val(]adr$)
ADC fwdwrd,x
^100F 7D .byte ]opc+8
^1010 34 12 .uword val(]adr$)
ADC $1234,y ; aby
^1012 79 .byte ]opc+8
^1013 34 12 .uword val(]adr$)
ADC bakwrd,y
^1015 79 .byte ]opc+8
^1016 34 12 .uword val(]adr$)
ADC fwdwrd,y
^1018 79 .byte ]opc+8
^1019 34 12 .uword val(]adr$)
ADC #$12 ; imm
^101B 69 .byte ]opc, val(mid$(]adr$, 2))
^101C 12
ADC #bakbyt
^101D 69 .byte ]opc, val(mid$(]adr$, 2))
^101E 12
ADC #fwdbyt
^101F 69 .byte ]opc, val(mid$(]adr$, 2))
^1020 12
ADC $12 ; zp
^1021 65 .byte ]opc
^1022 12 .ubyte val(]adr$)
ADC bakbyt
^1023 65 .byte ]opc
^1024 12 .ubyte val(]adr$)
ADC fwdbyt
^1025 6D .byte ]opc+8
^1026 12 00 .uword val(]adr$)
ADC ($12),y ; zpiy
^1028 71 .byte ]opc
^1029 12 .ubyte val(]adr$)
ADC (bakbyt),y
^102A 71 .byte ]opc
^102B 12 .ubyte val(]adr$)
ADC (fwdbyt),y
^102C 71 .byte ]opc
^102D 12 .ubyte val(]adr$)
ADC $12,x ; zpx
^102E 75 .byte ]opc
^102F 12 .ubyte val(]adr$)
ADC bakbyt,x
^1030 75 .byte ]opc
^1031 12 .ubyte val(]adr$)
ADC fwdbyt,x
^1032 7D .byte ]opc+8
^1033 12 00 .uword val(]adr$)
ADC ($12,x) ; zpxi
^1035 61 .byte ]opc
^1036 12 .ubyte val(mid$(]adr$,2,indexr(]adr$,",")-2))
ADC (bakbyt,x)
^1037 61 .byte ]opc
^1038 12 .ubyte val(mid$(]adr$,2,indexr(]adr$,",")-2))
ADC (fwdbyt,x)
^1039 61 .byte ]opc
^103A 12 .ubyte val(mid$(]adr$,2,indexr(]adr$,",")-2))
AND $1234 ; ab
^103B 2D .byte ]opc+8
^103C 34 12 .uword val(]adr$)
AND bakwrd
^103E 2D .byte ]opc+8
^103F 34 12 .uword val(]adr$)
AND fwdwrd
^1041 2D .byte ]opc+8
^1042 34 12 .uword val(]adr$)
AND $1234,x ; abx
^1044 3D .byte ]opc+8
^1045 34 12 .uword val(]adr$)
AND bakwrd,x
^1047 3D .byte ]opc+8
^1048 34 12 .uword val(]adr$)
AND fwdwrd,x
^104A 3D .byte ]opc+8
^104B 34 12 .uword val(]adr$)
AND $1234,y ; aby
^104D 39 .byte ]opc+8
^104E 34 12 .uword val(]adr$)
AND bakwrd,y
^1050 39 .byte ]opc+8
^1051 34 12 .uword val(]adr$)
AND fwdwrd,y
^1053 39 .byte ]opc+8
^1054 34 12 .uword val(]adr$)
AND #$12 ; imm
^1056 29 .byte ]opc, val(mid$(]adr$, 2))
^1057 12
AND #bakbyt
^1058 29 .byte ]opc, val(mid$(]adr$, 2))
^1059 12
AND #fwdbyt
^105A 29 .byte ]opc, val(mid$(]adr$, 2))
^105B 12
AND $12 ; zp
^105C 25 .byte ]opc
^105D 12 .ubyte val(]adr$)
AND bakbyt
^105E 25 .byte ]opc
^105F 12 .ubyte val(]adr$)
AND fwdbyt
^1060 2D .byte ]opc+8
^1061 12 00 .uword val(]adr$)
AND ($12),y ; zpiy
^1063 31 .byte ]opc
^1064 12 .ubyte val(]adr$)
AND (bakbyt),y
^1065 31 .byte ]opc
^1066 12 .ubyte val(]adr$)
AND (fwdbyt),y
^1067 31 .byte ]opc
^1068 12 .ubyte val(]adr$)
AND $12,x ; zpx
^1069 35 .byte ]opc
^106A 12 .ubyte val(]adr$)
AND bakbyt,x
^106B 35 .byte ]opc
^106C 12 .ubyte val(]adr$)
AND fwdbyt,x
^106D 3D .byte ]opc+8
^106E 12 00 .uword val(]adr$)
AND ($12,x) ; zpxi
^1070 21 .byte ]opc
^1071 12 .ubyte val(mid$(]adr$,2,indexr(]adr$,",")-2))
AND (bakbyt,x)
^1072 21 .byte ]opc
^1073 12 .ubyte val(mid$(]adr$,2,indexr(]adr$,",")-2))
AND (fwdbyt,x)
^1074 21 .byte ]opc
^1075 12 .ubyte val(mid$(]adr$,2,indexr(]adr$,",")-2))
ASL $1234 ; ab
^1076 0E .byte ]opc+8
^1077 34 12 .uword val(]adr$)
ASL bakwrd
^1079 0E .byte ]opc+8
^107A 34 12 .uword val(]adr$)
ASL fwdwrd
^107C 0E .byte ]opc+8
^107D 34 12 .uword val(]adr$)
ASL $1234,x ; abx
^107F 1E .byte ]opc+8
^1080 34 12 .uword val(]adr$)
ASL bakwrd,x
^1082 1E .byte ]opc+8
^1083 34 12 .uword val(]adr$)
ASL fwdwrd,x
^1085 1E .byte ]opc+8
^1086 34 12 .uword val(]adr$)
ASL ; acc
^1088 0A .byte ]opc+4
ASL a ; acc
^1089 0A .byte ]opc+4
ASL $12 ; zp
^108A 06 .byte ]opc
^108B 12 .ubyte val(]adr$)
ASL bakbyt
^108C 06 .byte ]opc
^108D 12 .ubyte val(]adr$)
ASL fwdbyt
^108E 0E .byte ]opc+8
^108F 12 00 .uword val(]adr$)
ASL $12,x ; zpx
^1091 16 .byte ]opc
^1092 12 .ubyte val(]adr$)
ASL bakbyt,x
^1093 16 .byte ]opc
^1094 12 .ubyte val(]adr$)
ASL fwdbyt,x
^1095 1E .byte ]opc+8
^1096 12 00 .uword val(]adr$)
baktarget:
BCC baktarget ; rel
^1098 90 .byte ]opc
^1099 FE .rbyte baktarget
BCC fwdtarget
^109A 90 .byte ]opc
^109B 41 .rbyte fwdtarget
BCS baktarget ; rel
^109C B0 .byte ]opc
^109D FA .rbyte baktarget
BCS fwdtarget
^109E B0 .byte ]opc
^109F 3D .rbyte fwdtarget
BEQ baktarget ; rel
^10A0 F0 .byte ]opc
^10A1 F6 .rbyte baktarget
BEQ fwdtarget
^10A2 F0 .byte ]opc
^10A3 39 .rbyte fwdtarget
BGE baktarget ; rel (wdc)
^10A4 B0 .byte ]opc
^10A5 F2 .rbyte baktarget
BGE fwdtarget
^10A6 B0 .byte ]opc
^10A7 35 .rbyte fwdtarget
BIT $1234 ; ab
^10A8 2C .byte ]opc+8
^10A9 34 12 .uword val(]adr$)
BIT bakwrd
^10AB 2C .byte ]opc+8
^10AC 34 12 .uword val(]adr$)
BIT fwdwrd
^10AE 2C .byte ]opc+8
^10AF 34 12 .uword val(]adr$)
BIT $12 ; zp
^10B1 24 .byte ]opc
^10B2 12 .ubyte val(]adr$)
BIT bakbyt
^10B3 24 .byte ]opc
^10B4 12 .ubyte val(]adr$)
BIT fwdbyt
^10B5 2C .byte ]opc+8
^10B6 12 00 .uword val(]adr$)
BLT baktarget ; rel (wdc)
^10B8 90 .byte ]opc
^10B9 DE .rbyte baktarget
BLT fwdtarget
^10BA 90 .byte ]opc
^10BB 21 .rbyte fwdtarget
BMI baktarget ; rel
^10BC 30 .byte ]opc
^10BD DA .rbyte baktarget
BMI fwdtarget
^10BE 30 .byte ]opc
^10BF 1D .rbyte fwdtarget
BNE baktarget ; rel
^10C0 D0 .byte ]opc
^10C1 D6 .rbyte baktarget
BNE fwdtarget
^10C2 D0 .byte ]opc
^10C3 19 .rbyte fwdtarget
BPL baktarget ; rel
^10C4 10 .byte ]opc
^10C5 D2 .rbyte baktarget
BPL fwdtarget
^10C6 10 .byte ]opc
^10C7 15 .rbyte fwdtarget
BRK #$12 ; imm (hxa)
^10C8 00 .byte ]opc, val(mid$(]adr$, 2))
^10C9 12
BRK #bakbyt
^10CA 00 .byte ]opc, val(mid$(]adr$, 2))
^10CB 12
BRK #fwdbyt
^10CC 00 .byte ]opc, val(mid$(]adr$, 2))
^10CD 12
BRK ; imp
^10CE 00 .byte $00
BRK $12 ; zp (hxa)
^10CF 00 .byte ]opc
^10D0 12 .ubyte val(]adr$)
BRK bakbyt
^10D1 00 .byte ]opc
^10D2 12 .ubyte val(]adr$)
BRK fwdbyt
^10D3 00 .byte ]opc
^10D4 12 .ubyte val(]adr$)
BVC baktarget ; rel
^10D5 50 .byte ]opc
^10D6 C1 .rbyte baktarget
BVC fwdtarget
^10D7 50 .byte ]opc
^10D8 04 .rbyte fwdtarget
BVS baktarget ; rel
^10D9 70 .byte ]opc
^10DA BD .rbyte baktarget
BVS fwdtarget
^10DB 70 .byte ]opc
^10DC 00 .rbyte fwdtarget
fwdtarget:
CLC ; imp
^10DD 18 .byte $18
CLD ; imp
^10DE D8 .byte $D8
CLI ; imp
^10DF 58 .byte $58
CLV ; imp
^10E0 B8 .byte $B8
CMP $1234 ; ab
^10E1 CD .byte ]opc+8
^10E2 34 12 .uword val(]adr$)
CMP bakwrd
^10E4 CD .byte ]opc+8
^10E5 34 12 .uword val(]adr$)
CMP fwdwrd
^10E7 CD .byte ]opc+8
^10E8 34 12 .uword val(]adr$)
CMP $1234,x ; abx
^10EA DD .byte ]opc+8
^10EB 34 12 .uword val(]adr$)
CMP bakwrd,x
^10ED DD .byte ]opc+8
^10EE 34 12 .uword val(]adr$)
CMP fwdwrd,x
^10F0 DD .byte ]opc+8
^10F1 34 12 .uword val(]adr$)
CMP $1234,y ; aby
^10F3 D9 .byte ]opc+8
^10F4 34 12 .uword val(]adr$)
CMP bakwrd,y
^10F6 D9 .byte ]opc+8
^10F7 34 12 .uword val(]adr$)
CMP fwdwrd,y
^10F9 D9 .byte ]opc+8
^10FA 34 12 .uword val(]adr$)
CMP #$12 ; imm
^10FC C9 .byte ]opc, val(mid$(]adr$, 2))
^10FD 12
CMP #bakbyt
^10FE C9 .byte ]opc, val(mid$(]adr$, 2))
^10FF 12
CMP #fwdbyt
^1100 C9 .byte ]opc, val(mid$(]adr$, 2))
^1101 12
CMP $12 ; zp
^1102 C5 .byte ]opc
^1103 12 .ubyte val(]adr$)
CMP bakbyt
^1104 C5 .byte ]opc
^1105 12 .ubyte val(]adr$)
CMP fwdbyt
^1106 CD .byte ]opc+8
^1107 12 00 .uword val(]adr$)
CMP ($12),y ; zpiy
^1109 D1 .byte ]opc
^110A 12 .ubyte val(]adr$)
CMP (bakbyt),y
^110B D1 .byte ]opc
^110C 12 .ubyte val(]adr$)
CMP (fwdbyt),y
^110D D1 .byte ]opc
^110E 12 .ubyte val(]adr$)
CMP $12,x ; zpx
^110F D5 .byte ]opc
^1110 12 .ubyte val(]adr$)
CMP bakbyt,x
^1111 D5 .byte ]opc
^1112 12 .ubyte val(]adr$)
CMP fwdbyt,x
^1113 DD .byte ]opc+8
^1114 12 00 .uword val(]adr$)
CMP ($12,x) ; zpxi
^1116 C1 .byte ]opc
^1117 12 .ubyte val(mid$(]adr$,2,indexr(]adr$,",")-2))
CMP (bakbyt,x)
^1118 C1 .byte ]opc
^1119 12 .ubyte val(mid$(]adr$,2,indexr(]adr$,",")-2))
CMP (fwdbyt,x)
^111A C1 .byte ]opc
^111B 12 .ubyte val(mid$(]adr$,2,indexr(]adr$,",")-2))
CPX $1234 ; ab
^111C EC .byte ]opc+8
^111D 34 12 .uword val(]adr$)
CPX bakwrd
^111F EC .byte ]opc+8
^1120 34 12 .uword val(]adr$)
CPX fwdwrd
^1122 EC .byte ]opc+8
^1123 34 12 .uword val(]adr$)
CPX #$12 ; imm
^1125 E0 .byte ]opc, val(mid$(]adr$, 2))
^1126 12
CPX #bakbyt
^1127 E0 .byte ]opc, val(mid$(]adr$, 2))
^1128 12
CPX #fwdbyt
^1129 E0 .byte ]opc, val(mid$(]adr$, 2))
^112A 12
CPX $12 ; zp
^112B E4 .byte ]opc
^112C 12 .ubyte val(]adr$)
CPX bakbyt
^112D E4 .byte ]opc
^112E 12 .ubyte val(]adr$)
CPX fwdbyt
^112F EC .byte ]opc+8
^1130 12 00 .uword val(]adr$)
CPY $1234 ; ab
^1132 CC .byte ]opc+8
^1133 34 12 .uword val(]adr$)
CPY bakwrd
^1135 CC .byte ]opc+8
^1136 34 12 .uword val(]adr$)
CPY fwdwrd
^1138 CC .byte ]opc+8
^1139 34 12 .uword val(]adr$)
CPY #$12 ; imm
^113B C0 .byte ]opc, val(mid$(]adr$, 2))
^113C 12
CPY #bakbyt
^113D C0 .byte ]opc, val(mid$(]adr$, 2))
^113E 12
CPY #fwdbyt
^113F C0 .byte ]opc, val(mid$(]adr$, 2))
^1140 12
CPY $12 ; zp
^1141 C4 .byte ]opc
^1142 12 .ubyte val(]adr$)
CPY bakbyt
^1143 C4 .byte ]opc
^1144 12 .ubyte val(]adr$)
CPY fwdbyt
^1145 CC .byte ]opc+8
^1146 12 00 .uword val(]adr$)
DEC $1234 ; ab
^1148 CE .byte ]opc+8
^1149 34 12 .uword val(]adr$)
DEC bakwrd
^114B CE .byte ]opc+8
^114C 34 12 .uword val(]adr$)
DEC fwdwrd
^114E CE .byte ]opc+8
^114F 34 12 .uword val(]adr$)
DEC $1234,x ; abx
^1151 DE .byte ]opc+8
^1152 34 12 .uword val(]adr$)
DEC bakwrd,x
^1154 DE .byte ]opc+8
^1155 34 12 .uword val(]adr$)
DEC fwdwrd,x
^1157 DE .byte ]opc+8
^1158 34 12 .uword val(]adr$)
DEC $12 ; zp
^115A C6 .byte ]opc
^115B 12 .ubyte val(]adr$)
DEC bakbyt
^115C C6 .byte ]opc
^115D 12 .ubyte val(]adr$)
DEC fwdbyt
^115E CE .byte ]opc+8
^115F 12 00 .uword val(]adr$)
DEC $12,x ; zpx
^1161 D6 .byte ]opc
^1162 12 .ubyte val(]adr$)
DEC bakbyt,x
^1163 D6 .byte ]opc
^1164 12 .ubyte val(]adr$)
DEC fwdbyt,x
^1165 DE .byte ]opc+8
^1166 12 00 .uword val(]adr$)
DEX ; imp
^1168 CA .byte $CA
DEY ; imp
^1169 88 .byte $88
EOR $1234 ; ab
^116A 4D .byte ]opc+8
^116B 34 12 .uword val(]adr$)
EOR bakwrd
^116D 4D .byte ]opc+8
^116E 34 12 .uword val(]adr$)
EOR fwdwrd
^1170 4D .byte ]opc+8
^1171 34 12 .uword val(]adr$)
EOR $1234,x ; abx
^1173 5D .byte ]opc+8
^1174 34 12 .uword val(]adr$)
EOR bakwrd,x
^1176 5D .byte ]opc+8
^1177 34 12 .uword val(]adr$)
EOR fwdwrd,x
^1179 5D .byte ]opc+8
^117A 34 12 .uword val(]adr$)
EOR $1234,y ; aby
^117C 59 .byte ]opc+8
^117D 34 12 .uword val(]adr$)
EOR bakwrd,y
^117F 59 .byte ]opc+8
^1180 34 12 .uword val(]adr$)
EOR fwdwrd,y
^1182 59 .byte ]opc+8
^1183 34 12 .uword val(]adr$)
EOR #$12 ; imm
^1185 49 .byte ]opc, val(mid$(]adr$, 2))
^1186 12
EOR #bakbyt
^1187 49 .byte ]opc, val(mid$(]adr$, 2))
^1188 12
EOR #fwdbyt
^1189 49 .byte ]opc, val(mid$(]adr$, 2))
^118A 12
EOR $12 ; zp
^118B 45 .byte ]opc
^118C 12 .ubyte val(]adr$)
EOR bakbyt
^118D 45 .byte ]opc
^118E 12 .ubyte val(]adr$)
EOR fwdbyt
^118F 4D .byte ]opc+8
^1190 12 00 .uword val(]adr$)
EOR ($12),y ; zpiy
^1192 51 .byte ]opc
^1193 12 .ubyte val(]adr$)
EOR (bakbyt),y
^1194 51 .byte ]opc
^1195 12 .ubyte val(]adr$)
EOR (fwdbyt),y
^1196 51 .byte ]opc
^1197 12 .ubyte val(]adr$)
EOR $12,x ; zpx
^1198 55 .byte ]opc
^1199 12 .ubyte val(]adr$)
EOR bakbyt,x
^119A 55 .byte ]opc
^119B 12 .ubyte val(]adr$)
EOR fwdbyt,x
^119C 5D .byte ]opc+8
^119D 12 00 .uword val(]adr$)
EOR ($12,x) ; zpxi
^119F 41 .byte ]opc
^11A0 12 .ubyte val(mid$(]adr$,2,indexr(]adr$,",")-2))
EOR (bakbyt,x)
^11A1 41 .byte ]opc
^11A2 12 .ubyte val(mid$(]adr$,2,indexr(]adr$,",")-2))
EOR (fwdbyt,x)
^11A3 41 .byte ]opc
^11A4 12 .ubyte val(mid$(]adr$,2,indexr(]adr$,",")-2))
INC $1234 ; ab
^11A5 EE .byte ]opc+8
^11A6 34 12 .uword val(]adr$)
INC bakwrd
^11A8 EE .byte ]opc+8
^11A9 34 12 .uword val(]adr$)
INC fwdwrd
^11AB EE .byte ]opc+8
^11AC 34 12 .uword val(]adr$)
INC $1234,x ; abx
^11AE FE .byte ]opc+8
^11AF 34 12 .uword val(]adr$)
INC bakwrd,x
^11B1 FE .byte ]opc+8
^11B2 34 12 .uword val(]adr$)
INC fwdwrd,x
^11B4 FE .byte ]opc+8
^11B5 34 12 .uword val(]adr$)
INC $12 ; zp
^11B7 E6 .byte ]opc
^11B8 12 .ubyte val(]adr$)
INC bakbyt
^11B9 E6 .byte ]opc
^11BA 12 .ubyte val(]adr$)
INC fwdbyt
^11BB EE .byte ]opc+8
^11BC 12 00 .uword val(]adr$)
INC $12,x ; zpx
^11BE F6 .byte ]opc
^11BF 12 .ubyte val(]adr$)
INC bakbyt,x
^11C0 F6 .byte ]opc
^11C1 12 .ubyte val(]adr$)
INC fwdbyt,x
^11C2 FE .byte ]opc+8
^11C3 12 00 .uword val(]adr$)
INX ; imp
^11C5 E8 .byte $E8
INY ; imp
^11C6 C8 .byte $C8
JMP $1234 ; ab
^11C7 4C .byte ]adr$ ~ /^\(.+\)$/ ? $6C : $4C
^11C8 34 12 .uword val(]adr$)
JMP bakwrd
^11CA 4C .byte ]adr$ ~ /^\(.+\)$/ ? $6C : $4C
^11CB 34 12 .uword val(]adr$)
JMP fwdwrd
^11CD 4C .byte ]adr$ ~ /^\(.+\)$/ ? $6C : $4C
^11CE 34 12 .uword val(]adr$)
JMP ($1234) ; abi
^11D0 6C .byte ]adr$ ~ /^\(.+\)$/ ? $6C : $4C
^11D1 34 12 .uword val(]adr$)
JMP (bakwrd)
^11D3 6C .byte ]adr$ ~ /^\(.+\)$/ ? $6C : $4C
^11D4 34 12 .uword val(]adr$)
JMP (fwdwrd)
^11D6 6C .byte ]adr$ ~ /^\(.+\)$/ ? $6C : $4C
^11D7 34 12 .uword val(]adr$)
JSR $1234 ; ab
^11D9 20 .byte $20
^11DA 34 12 .uword $1234
JSR bakwrd
^11DC 20 .byte $20
^11DD 34 12 .uword bakwrd
JSR fwdwrd
^11DF 20 .byte $20
^11E0 34 12 .uword fwdwrd
LDA $1234 ; ab
^11E2 AD .byte ]opc+8
^11E3 34 12 .uword val(]adr$)
LDA bakwrd
^11E5 AD .byte ]opc+8
^11E6 34 12 .uword val(]adr$)
LDA fwdwrd
^11E8 AD .byte ]opc+8
^11E9 34 12 .uword val(]adr$)
LDA $1234,x ; abx
^11EB BD .byte ]opc+8
^11EC 34 12 .uword val(]adr$)
LDA bakwrd,x
^11EE BD .byte ]opc+8
^11EF 34 12 .uword val(]adr$)
LDA fwdwrd,x
^11F1 BD .byte ]opc+8
^11F2 34 12 .uword val(]adr$)
LDA $1234,y ; aby
^11F4 B9 .byte ]opc+8
^11F5 34 12 .uword val(]adr$)
LDA bakwrd,y
^11F7 B9 .byte ]opc+8
^11F8 34 12 .uword val(]adr$)
LDA fwdwrd,y
^11FA B9 .byte ]opc+8
^11FB 34 12 .uword val(]adr$)
LDA #$12 ; imm
^11FD A9 .byte ]opc, val(mid$(]adr$, 2))
^11FE 12
LDA #bakbyt
^11FF A9 .byte ]opc, val(mid$(]adr$, 2))
^1200 12
LDA #fwdbyt
^1201 A9 .byte ]opc, val(mid$(]adr$, 2))
^1202 12
LDA $12 ; zp
^1203 A5 .byte ]opc
^1204 12 .ubyte val(]adr$)
LDA bakbyt
^1205 A5 .byte ]opc
^1206 12 .ubyte val(]adr$)
LDA fwdbyt
^1207 AD .byte ]opc+8
^1208 12 00 .uword val(]adr$)
LDA ($12),y ; zpiy
^120A B1 .byte ]opc
^120B 12 .ubyte val(]adr$)
LDA (bakbyt),y
^120C B1 .byte ]opc
^120D 12 .ubyte val(]adr$)
LDA (fwdbyt),y
^120E B1 .byte ]opc
^120F 12 .ubyte val(]adr$)
LDA $12,x ; zpx
^1210 B5 .byte ]opc
^1211 12 .ubyte val(]adr$)
LDA bakbyt,x
^1212 B5 .byte ]opc
^1213 12 .ubyte val(]adr$)
LDA fwdbyt,x
^1214 BD .byte ]opc+8
^1215 12 00 .uword val(]adr$)
LDA ($12,x) ; zpxi
^1217 A1 .byte ]opc
^1218 12 .ubyte val(mid$(]adr$,2,indexr(]adr$,",")-2))
LDA (bakbyt,x)
^1219 A1 .byte ]opc
^121A 12 .ubyte val(mid$(]adr$,2,indexr(]adr$,",")-2))
LDA (fwdbyt,x)
^121B A1 .byte ]opc
^121C 12 .ubyte val(mid$(]adr$,2,indexr(]adr$,",")-2))
LDX $1234 ; ab
^121D AE .byte ]opc+8
^121E 34 12 .uword val(]adr$)
LDX bakwrd
^1220 AE .byte ]opc+8
^1221 34 12 .uword val(]adr$)
LDX fwdwrd
^1223 AE .byte ]opc+8
^1224 34 12 .uword val(]adr$)
LDX $1234,y ; aby
^1226 BE .byte ]opc+8
^1227 34 12 .uword val(]adr$)
LDX bakwrd,y
^1229 BE .byte ]opc+8
^122A 34 12 .uword val(]adr$)
LDX fwdwrd,y
^122C BE .byte ]opc+8
^122D 34 12 .uword val(]adr$)
LDX #12 ; imm
^122F A2 .byte ]opc, val(mid$(]adr$, 2))
^1230 0C
LDX #bakbyt
^1231 A2 .byte ]opc, val(mid$(]adr$, 2))
^1232 12
LDX #fwdbyt
^1233 A2 .byte ]opc, val(mid$(]adr$, 2))
^1234 12
LDX $12 ; zp
^1235 A6 .byte ]opc
^1236 12 .ubyte val(]adr$)
LDX bakbyt
^1237 A6 .byte ]opc
^1238 12 .ubyte val(]adr$)
LDX fwdbyt
^1239 AE .byte ]opc+8
^123A 12 00 .uword val(]adr$)
LDX $12,y ; zpy
^123C B6 .byte ]opc
^123D 12 .ubyte val(]adr$)
LDX bakbyt,y
^123E B6 .byte ]opc
^123F 12 .ubyte val(]adr$)
LDX fwdbyt,y
^1240 BE .byte ]opc+8
^1241 12 00 .uword val(]adr$)
LDY $1234 ; ab
^1243 AC .byte ]opc+8
^1244 34 12 .uword val(]adr$)
LDY bakwrd
^1246 AC .byte ]opc+8
^1247 34 12 .uword val(]adr$)
LDY fwdwrd
^1249 AC .byte ]opc+8
^124A 34 12 .uword val(]adr$)
LDY $1234,x ; abx
^124C BC .byte ]opc+8
^124D 34 12 .uword val(]adr$)
LDY bakwrd,x
^124F BC .byte ]opc+8
^1250 34 12 .uword val(]adr$)
LDY fwdwrd,x
^1252 BC .byte ]opc+8
^1253 34 12 .uword val(]adr$)
LDY #12 ; imm
^1255 A0 .byte ]opc, val(mid$(]adr$, 2))
^1256 0C
LDY #bakbyt
^1257 A0 .byte ]opc, val(mid$(]adr$, 2))
^1258 12
LDY #fwdbyt
^1259 A0 .byte ]opc, val(mid$(]adr$, 2))
^125A 12
LDY $12 ; zp
^125B A4 .byte ]opc
^125C 12 .ubyte val(]adr$)
LDY bakbyt
^125D A4 .byte ]opc
^125E 12 .ubyte val(]adr$)
LDY fwdbyt
^125F AC .byte ]opc+8
^1260 12 00 .uword val(]adr$)
LDY $12,x ; zpx
^1262 B4 .byte ]opc
^1263 12 .ubyte val(]adr$)
LDY bakbyt,x
^1264 B4 .byte ]opc
^1265 12 .ubyte val(]adr$)
LDY fwdbyt,x
^1266 BC .byte ]opc+8
^1267 12 00 .uword val(]adr$)
LSR $1234 ; ab
^1269 4E .byte ]opc+8
^126A 34 12 .uword val(]adr$)
LSR bakwrd
^126C 4E .byte ]opc+8
^126D 34 12 .uword val(]adr$)
LSR fwdwrd
^126F 4E .byte ]opc+8
^1270 34 12 .uword val(]adr$)
LSR $1234,x ; abx
^1272 5E .byte ]opc+8
^1273 34 12 .uword val(]adr$)
LSR bakwrd,x
^1275 5E .byte ]opc+8
^1276 34 12 .uword val(]adr$)
LSR fwdwrd,x
^1278 5E .byte ]opc+8
^1279 34 12 .uword val(]adr$)
LSR ; acc
^127B 4A .byte ]opc+4
LSR a ; acc
^127C 4A .byte ]opc+4
LSR $12 ; zp
^127D 46 .byte ]opc
^127E 12 .ubyte val(]adr$)
LSR bakbyt
^127F 46 .byte ]opc
^1280 12 .ubyte val(]adr$)
LSR fwdbyt
^1281 4E .byte ]opc+8
^1282 12 00 .uword val(]adr$)
LSR $12,x ; zpx
^1284 56 .byte ]opc
^1285 12 .ubyte val(]adr$)
LSR bakbyt,x
^1286 56 .byte ]opc
^1287 12 .ubyte val(]adr$)
LSR fwdbyt,x
^1288 5E .byte ]opc+8
^1289 12 00 .uword val(]adr$)
NOP ; imp
^128B EA .byte $EA
ORA $1234 ; ab
^128C 0D .byte ]opc+8
^128D 34 12 .uword val(]adr$)
ORA bakwrd
^128F 0D .byte ]opc+8
^1290 34 12 .uword val(]adr$)
ORA fwdwrd
^1292 0D .byte ]opc+8
^1293 34 12 .uword val(]adr$)
ORA $1234,x ; abx
^1295 1D .byte ]opc+8
^1296 34 12 .uword val(]adr$)
ORA bakwrd,x
^1298 1D .byte ]opc+8
^1299 34 12 .uword val(]adr$)
ORA fwdwrd,x
^129B 1D .byte ]opc+8
^129C 34 12 .uword val(]adr$)
ORA $1234,y ; aby
^129E 19 .byte ]opc+8
^129F 34 12 .uword val(]adr$)
ORA bakwrd,y
^12A1 19 .byte ]opc+8
^12A2 34 12 .uword val(]adr$)
ORA fwdwrd,y
^12A4 19 .byte ]opc+8
^12A5 34 12 .uword val(]adr$)
ORA #$12 ; imm
^12A7 09 .byte ]opc, val(mid$(]adr$, 2))
^12A8 12
ORA #bakbyt
^12A9 09 .byte ]opc, val(mid$(]adr$, 2))
^12AA 12
ORA #fwdbyt
^12AB 09 .byte ]opc, val(mid$(]adr$, 2))
^12AC 12
ORA $12 ; zp
^12AD 05 .byte ]opc
^12AE 12 .ubyte val(]adr$)
ORA bakbyt
^12AF 05 .byte ]opc
^12B0 12 .ubyte val(]adr$)
ORA fwdbyt
^12B1 0D .byte ]opc+8
^12B2 12 00 .uword val(]adr$)
ORA ($12),y ; zpiy
^12B4 11 .byte ]opc
^12B5 12 .ubyte val(]adr$)
ORA (bakbyt),y
^12B6 11 .byte ]opc
^12B7 12 .ubyte val(]adr$)
ORA (fwdbyt),y
^12B8 11 .byte ]opc
^12B9 12 .ubyte val(]adr$)
ORA $12,x ; zpx
^12BA 15 .byte ]opc
^12BB 12 .ubyte val(]adr$)
ORA bakbyt,x
^12BC 15 .byte ]opc
^12BD 12 .ubyte val(]adr$)
ORA fwdbyt,x
^12BE 1D .byte ]opc+8
^12BF 12 00 .uword val(]adr$)
ORA ($12,x) ; zpxi
^12C1 01 .byte ]opc
^12C2 12 .ubyte val(mid$(]adr$,2,indexr(]adr$,",")-2))
ORA (bakbyt,x)
^12C3 01 .byte ]opc
^12C4 12 .ubyte val(mid$(]adr$,2,indexr(]adr$,",")-2))
ORA (fwdbyt,x)
^12C5 01 .byte ]opc
^12C6 12 .ubyte val(mid$(]adr$,2,indexr(]adr$,",")-2))
PHA ; imp
^12C7 48 .byte $48
PHP ; imp
^12C8 08 .byte $08
PLA ; imp
^12C9 68 .byte $68
PLP ; imp
^12CA 28 .byte $28
ROL $1234 ; ab
^12CB 2E .byte ]opc+8
^12CC 34 12 .uword val(]adr$)
ROL bakwrd
^12CE 2E .byte ]opc+8
^12CF 34 12 .uword val(]adr$)
ROL fwdwrd
^12D1 2E .byte ]opc+8
^12D2 34 12 .uword val(]adr$)
ROL $1234,x ; abx
^12D4 3E .byte ]opc+8
^12D5 34 12 .uword val(]adr$)
ROL bakwrd,x
^12D7 3E .byte ]opc+8
^12D8 34 12 .uword val(]adr$)
ROL fwdwrd,x
^12DA 3E .byte ]opc+8
^12DB 34 12 .uword val(]adr$)
ROL ; acc
^12DD 2A .byte ]opc+4
ROL a ; acc
^12DE 2A .byte ]opc+4
ROL $12 ; zp
^12DF 26 .byte ]opc
^12E0 12 .ubyte val(]adr$)
ROL bakbyt
^12E1 26 .byte ]opc
^12E2 12 .ubyte val(]adr$)
ROL fwdbyt
^12E3 2E .byte ]opc+8
^12E4 12 00 .uword val(]adr$)
ROL $12,x ; zpx
^12E6 36 .byte ]opc
^12E7 12 .ubyte val(]adr$)
ROL bakbyt,x
^12E8 36 .byte ]opc
^12E9 12 .ubyte val(]adr$)
ROL fwdbyt,x
^12EA 3E .byte ]opc+8
^12EB 12 00 .uword val(]adr$)
ROR $1234 ; ab
^12ED 6E .byte ]opc+8
^12EE 34 12 .uword val(]adr$)
ROR bakwrd
^12F0 6E .byte ]opc+8
^12F1 34 12 .uword val(]adr$)
ROR fwdwrd
^12F3 6E .byte ]opc+8
^12F4 34 12 .uword val(]adr$)
ROR $1234,x ; abx
^12F6 7E .byte ]opc+8
^12F7 34 12 .uword val(]adr$)
ROR bakwrd,x
^12F9 7E .byte ]opc+8
^12FA 34 12 .uword val(]adr$)
ROR fwdwrd,x
^12FC 7E .byte ]opc+8
^12FD 34 12 .uword val(]adr$)
ROR ; acc
^12FF 6A .byte ]opc+4
ROR a ; acc
^1300 6A .byte ]opc+4
ROR $12 ; zp
^1301 66 .byte ]opc
^1302 12 .ubyte val(]adr$)
ROR bakbyt
^1303 66 .byte ]opc
^1304 12 .ubyte val(]adr$)
ROR fwdbyt
^1305 6E .byte ]opc+8
^1306 12 00 .uword val(]adr$)
ROR $12,x ; zpx
^1308 76 .byte ]opc
^1309 12 .ubyte val(]adr$)
ROR bakbyt,x
^130A 76 .byte ]opc
^130B 12 .ubyte val(]adr$)
ROR fwdbyt,x
^130C 7E .byte ]opc+8
^130D 12 00 .uword val(]adr$)
RTI ; imp
^130F 40 .byte $40
RTS ; imp
^1310 60 .byte $60
SBC $1234 ; ab
^1311 ED .byte ]opc+8
^1312 34 12 .uword val(]adr$)
SBC bakwrd
^1314 ED .byte ]opc+8
^1315 34 12 .uword val(]adr$)
SBC fwdwrd
^1317 ED .byte ]opc+8
^1318 34 12 .uword val(]adr$)
SBC $1234,x ; abx
^131A FD .byte ]opc+8
^131B 34 12 .uword val(]adr$)
SBC bakwrd,x
^131D FD .byte ]opc+8
^131E 34 12 .uword val(]adr$)
SBC fwdwrd,x
^1320 FD .byte ]opc+8
^1321 34 12 .uword val(]adr$)
SBC $1234,y ; aby
^1323 F9 .byte ]opc+8
^1324 34 12 .uword val(]adr$)
SBC bakwrd,y
^1326 F9 .byte ]opc+8
^1327 34 12 .uword val(]adr$)
SBC fwdwrd,y
^1329 F9 .byte ]opc+8
^132A 34 12 .uword val(]adr$)
SBC #$12 ; imm
^132C E9 .byte ]opc, val(mid$(]adr$, 2))
^132D 12
SBC #bakbyt
^132E E9 .byte ]opc, val(mid$(]adr$, 2))
^132F 12
SBC #fwdbyt
^1330 E9 .byte ]opc, val(mid$(]adr$, 2))
^1331 12
SBC $12 ; zp
^1332 E5 .byte ]opc
^1333 12 .ubyte val(]adr$)
SBC bakbyt
^1334 E5 .byte ]opc
^1335 12 .ubyte val(]adr$)
SBC fwdbyt
^1336 ED .byte ]opc+8
^1337 12 00 .uword val(]adr$)
SBC ($12),y ; zpiy
^1339 F1 .byte ]opc
^133A 12 .ubyte val(]adr$)
SBC (bakbyt),y
^133B F1 .byte ]opc
^133C 12 .ubyte val(]adr$)
SBC (fwdbyt),y
^133D F1 .byte ]opc
^133E 12 .ubyte val(]adr$)
SBC $12,x ; zpx
^133F F5 .byte ]opc
^1340 12 .ubyte val(]adr$)
SBC bakbyt,x
^1341 F5 .byte ]opc
^1342 12 .ubyte val(]adr$)
SBC fwdbyt,x
^1343 FD .byte ]opc+8
^1344 12 00 .uword val(]adr$)
SBC ($12,x) ; zpxi
^1346 E1 .byte ]opc
^1347 12 .ubyte val(mid$(]adr$,2,indexr(]adr$,",")-2))
SBC (bakbyt,x)
^1348 E1 .byte ]opc
^1349 12 .ubyte val(mid$(]adr$,2,indexr(]adr$,",")-2))
SBC (fwdbyt,x)
^134A E1 .byte ]opc
^134B 12 .ubyte val(mid$(]adr$,2,indexr(]adr$,",")-2))
SEC ; imp
^134C 38 .byte $38
SED ; imp
^134D F8 .byte $F8
SEI ; imp
^134E 78 .byte $78
STA $1234 ; ab
^134F 8D .byte ]opc+8
^1350 34 12 .uword val(]adr$)
STA bakwrd
^1352 8D .byte ]opc+8
^1353 34 12 .uword val(]adr$)
STA fwdwrd
^1355 8D .byte ]opc+8
^1356 34 12 .uword val(]adr$)
STA $1234,x ; abx
^1358 9D .byte ]opc+8
^1359 34 12 .uword val(]adr$)
STA bakwrd,x
^135B 9D .byte ]opc+8
^135C 34 12 .uword val(]adr$)
STA fwdwrd,x
^135E 9D .byte ]opc+8
^135F 34 12 .uword val(]adr$)
STA $1234,y ; aby
^1361 99 .byte ]opc+8
^1362 34 12 .uword val(]adr$)
STA bakwrd,y
^1364 99 .byte ]opc+8
^1365 34 12 .uword val(]adr$)
STA fwdwrd,y
^1367 99 .byte ]opc+8
^1368 34 12 .uword val(]adr$)
STA $12 ; zp
^136A 85 .byte ]opc
^136B 12 .ubyte val(]adr$)
STA bakbyt
^136C 85 .byte ]opc
^136D 12 .ubyte val(]adr$)
STA fwdbyt
^136E 8D .byte ]opc+8
^136F 12 00 .uword val(]adr$)
STA ($12),y ; zpiy
^1371 91 .byte ]opc
^1372 12 .ubyte val(]adr$)
STA (bakbyt),y
^1373 91 .byte ]opc
^1374 12 .ubyte val(]adr$)
STA (fwdbyt),y
^1375 91 .byte ]opc
^1376 12 .ubyte val(]adr$)
STA $12,x ; zpx
^1377 95 .byte ]opc
^1378 12 .ubyte val(]adr$)
STA bakbyt,x
^1379 95 .byte ]opc
^137A 12 .ubyte val(]adr$)
STA fwdbyt,x
^137B 9D .byte ]opc+8
^137C 12 00 .uword val(]adr$)
STA ($12,x) ; zpxi
^137E 81 .byte ]opc
^137F 12 .ubyte val(mid$(]adr$,2,indexr(]adr$,",")-2))
STA (bakbyt,x)
^1380 81 .byte ]opc
^1381 12 .ubyte val(mid$(]adr$,2,indexr(]adr$,",")-2))
STA (fwdbyt,x)
^1382 81 .byte ]opc
^1383 12 .ubyte val(mid$(]adr$,2,indexr(]adr$,",")-2))
STX $1234 ; ab
^1384 8E .byte ]opc+8
^1385 34 12 .uword val(]adr$)
STX bakwrd
^1387 8E .byte ]opc+8
^1388 34 12 .uword val(]adr$)
STX fwdwrd
^138A 8E .byte ]opc+8
^138B 34 12 .uword val(]adr$)
STX $12 ; zp
^138D 86 .byte ]opc
^138E 12 .ubyte val(]adr$)
STX bakbyt
^138F 86 .byte ]opc
^1390 12 .ubyte val(]adr$)
STX fwdbyt
^1391 8E .byte ]opc+8
^1392 12 00 .uword val(]adr$)
STX $12,y ; zpy
^1394 96 .byte ]opc
^1395 12 .ubyte val(]adr$)
STX bakbyt,y
^1396 96 .byte ]opc
^1397 12 .ubyte val(]adr$)
STX fwdbyt,y
^1398 96 .byte ]opc
^1399 12 .ubyte val(]adr$)
STY $1234 ; ab
^139A 8C .byte ]opc+8
^139B 34 12 .uword val(]adr$)
STY bakwrd
^139D 8C .byte ]opc+8
^139E 34 12 .uword val(]adr$)
STY fwdwrd
^13A0 8C .byte ]opc+8
^13A1 34 12 .uword val(]adr$)
STY $12 ; zp
^13A3 84 .byte ]opc
^13A4 12 .ubyte val(]adr$)
STY bakbyt
^13A5 84 .byte ]opc
^13A6 12 .ubyte val(]adr$)
STY fwdbyt
^13A7 8C .byte ]opc+8
^13A8 12 00 .uword val(]adr$)
STY $12,x ; zpx
^13AA 94 .byte ]opc
^13AB 12 .ubyte val(]adr$)
STY bakbyt,x
^13AC 94 .byte ]opc
^13AD 12 .ubyte val(]adr$)
STY fwdbyt,x
^13AE 94 .byte ]opc
^13AF 12 .ubyte val(]adr$)
TAX ; imp
^13B0 AA .byte $AA
TAY ; imp
^13B1 A8 .byte $A8
TSX ; imp
^13B2 BA .byte $BA
TXA ; imp
^13B3 8A .byte $8A
TXS ; imp
^13B4 9A .byte $9A
TYA ; imp
^13B5 98 .byte $98
; forward reference
fwdbyt .equ $12
fwdwrd .equ $1234
; -------------------------------
.end
*** Symbol Table Listing
Numeric Name Ref Cnt Hex Value Dec Value
BAKBYT 142 $ 12 18
BAKTARGET 10 $ 1098 4248
BAKWRD 122 $ 1234 4660
FWDBYT 68 $ 12 18
FWDTARGET 10 $ 10DD 4317
FWDWRD 48 $ 1234 4660
ZP_MASK 148 $FFFFFF00 4294967040
]OPC 640 $ 94 148
Numeric Value Ref Cnt Hex Value Dec Value
BAKBYT 142 $ 12 18
FWDBYT 68 $ 12 18
BAKTARGET 10 $ 1098 4248
FWDTARGET 10 $ 10DD 4317
BAKWRD 122 $ 1234 4660
FWDWRD 48 $ 1234 4660
ZP_MASK 148 $FFFFFF00 4294967040
String Name Ref Cnt Value
]ADR$ 1060 "fwdbyt"
]NDX$ 637 "x"
Macro Name Exp Cnt
AB.ABX.ZP.ZPX 24
AB.ACC.ZP 32
AB.IMM.ZP 36
AB.IMM.ZP.ZPXI 93
AB.ZP 222
ABY.ZPIY 48
ADC 24
AND 24
ARITH.LOGIC 189
ASL 14
BADMODE -
BCC 2
BCS 2
BEQ 2
BGE 2
BIT 6
BLT 2
BMI 2
BNE 2
BPL 2
BRK 7
BVC 2
BVS 2
CLC 1
CLD 1
CLI 1
CLV 1
CMP 24
CPX 9
CPY 9
DEC 12
DEX 1
DEY 1
EOR 24
IMM 36
INC 12
INX 1
INY 1
JMP 6
JSR 3
LDA 24
LDX 15
LDY 15
LSR 14
NOP 1
ORA 24
PCR 20
PHA 1
PHP 1
PLA 1
PLP 1
ROL 14
ROR 14
RTI 1
RTS 1
SBC 24
SEC 1
SED 1
SEI 1
SHIFT 56
STA 21
STX 9
STY 9
TAX 1
TAY 1
TSX 1
TXA 1
TXS 1
TYA 1
ZP 9
ZPXI 24
*** Assembly Statistics Listing
Pass One time= 00:00:13
Source lines= 991
Macro lines= 7404
Total lines= 8395
Lines/Sec= 645.8
Pass Two time= 00:00:00
Data Values= 769
Values/Sec= 769.0
Total time= 00:00:13
Object Bytes= 950
Expressions cached= 26
Cache hits= 1919
Regexes cached= 7
Cache hits= 772