OpenCores
URL https://opencores.org/ocsvn/m65c02/m65c02/trunk

Subversion Repositories m65c02

[/] [m65c02/] [trunk/] [Src/] [Microprogram-Sources/] [M65C02_uPgm_V3.out] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 MichaelA
---------------------- 12/15/2012 8:12:20 PM ------------------------
2
 
3
-- Instructions --
4
0x0000  RTS   RTS         .asm    0       -- Return from Subroutine
5
0x0001  BSR   BSR         .asm    1       -- Branch to subroutine
6
0x0002 FTCH   FTCH        .asm    2       -- Fetch next instruction
7
0x0003  BMW   BMW         .asm    3       -- Branch multi-way
8
0x0004 BRV0   BRV0        .asm    4       -- Branch via 0
9
0x0005 BRV1   BRV1        .asm    5       -- Branch via 1
10
0x0006 BRV2   BRV2        .asm    6       -- Branch via 2
11
0x0007 BRV3   BRV3        .asm    7       -- Branch via 3
12
0x0008 BTH0   BTH0        .asm    8       -- Branch if T0 is high
13
0x0009 BTH1   BTH1        .asm    9       -- Branch if T1 is high
14
0x000A BTH2   BTH2        .asm    10      -- Branch if T2 is high
15
0x000B BTH3   BTH3        .asm    11      -- Branch if T3 is high
16
0x000C BTL0   BTL0        .asm    12      -- Branch if T0 is low
17
0x000D BTL1   BTL1        .asm    13      -- Branch if T1 is low
18
0x000E BTL2   BTL2        .asm    14      -- Branch if T2 is low
19
0x000F BTL3   BTL3        .asm    15      -- Branch if T3 is low
20
 
21
-- Equates --
22
0x0000 PC          .equ    0       -- NA <= PC (default)
23
0x0001 Inc         .equ    1       -- NA <= PC + 1
24
0x0002 MAR         .equ    2       -- NA <= MAR + 0
25
0x0003 Nxt         .equ    3       -- NA <= MAR + 1
26
0x0004 Stk         .equ    4       -- NA <= SP + 0
27
0x0005 DPN         .equ    5       -- NA <= {0, OP1} + 0
28
0x0006 DPX         .equ    6       -- NA <= {0, OP1} + {0, X}
29
0x0007 DPY         .equ    7       -- NA <= {0, OP1} + {0, Y}
30
0x0008 LDA         .equ    8       -- NA <= {OP2, OP1} + 0
31
0x000E LDAX        .equ    14      -- NA <= {OP2, OP1} + {0, X}
32
0x000F LDAY        .equ    15      -- NA <= {OP2, OP1} + {0, Y}
33
0x0001 Pls         .equ    1       -- PC <= PC + 1
34
0x0002 Jmp         .equ    2       -- PC <= NA
35
0x0003 Rel         .equ    3       -- PC <= PC + (CC ? {{8{DI[7]}}, DI} : 1)
36
0x0001 WR          .equ    1       -- Bus Operand Write
37
0x0002 RD          .equ    2       -- Bus Operand Read
38
0x0003 IF          .equ    3       -- Bus Insruction Fetch
39
0x0000 ALU         .equ    0       -- M   <= DI
40
0x0001 OP2         .equ    1       -- OP2 <= DI
41
0x0002 OP1         .equ    2       -- OP1 <= DI
42
0x0003 IR          .equ    3       -- IR  <= DI
43
0x0001 PCH         .equ    1       -- DO  <= PCH
44
0x0002 PCL         .equ    2       -- DO  <= PCL
45
0x0003 PSW         .equ    3       -- DO  <= PSW (P)
46
0x0002 Psh         .equ    2       -- S <= S - 1
47
0x0003 Pop         .equ    3       -- S <= S + 1
48
0x0001 WE_A        .equ    1       -- Write Enable A
49
0x0002 WE_X        .equ    2       -- Write Enable X
50
0x0003 WE_Y        .equ    3       -- Write Enable Y
51
0x0004 WE_R        .equ    4       -- Write Enable Register - write selected register
52
0x0005 WE_S        .equ    5       -- Write Enable S
53
0x0006 WE_P        .equ    6       -- Write Enable P
54
0x0007 WE_M        .equ    7       -- Write Enable M(emory)
55
0x0001 ISR         .equ    1       -- Assert ISR: Clear D, Set I
56
 
57
-- Defines --
58
0x0004 Inst        .def    4       -- Instruction
59
0x0009 BA          .def    9       -- Branch Address
60
0x0001 Wait        .def    1       -- Conditional Execution Required
61
0x0002 En          .def    2       -- Enable ALU, and Sample Interrupts
62
0x0004 NA_Cntl     .def    4       -- Next Address Control Field
63
0x0002 PC_Cntl     .def    2       -- Program Counter Control Field
64
0x0002 IO_Cntl     .def    2       -- I/O Cycle Control Field
65
0x0002 DIO_Cntl    .def    2       -- Data Input/Output Demux/Mux Control Field
66
0x0002 Stk_Cntl    .def    2       -- ALU Stack Pointer Control Field
67
0x0003 RegWE_Cntl  .def    3       -- Register Write Enable (A, X, Y, S, P)
68
0x0001 PSW_Cntl    .def    1       -- Asserted to Clear D and Set I in PSW
69
 
70
-- Labels --
71
0x0000 _Start
72
0x0001 _Rst
73
0x0020 _Nxt
74
0x0020 _Psh
75
0x0020 _Pop
76
0x0020 _Rel
77
0x0020 _Imm
78
0x0021 _Int
79
0x0022 _Brk
80
0x0027 _JSR
81
0x002A _RTI
82
0x002D _RTS
83
0x002E _Jmp
84
0x002F _JmpI
85
0x0032 _JmpXI
86
0x0035 _RO_DP
87
0x0036 _RO_DPX
88
0x0037 _RO_DPY
89
0x0038 _RO_DPI
90
0x003B _RO_DPXI
91
0x003E _RO_DPIY
92
0x0041 _RO_Abs
93
0x0043 _RO_AbsX
94
0x0045 _RO_AbsY
95
0x0047 _WO_DP
96
0x0048 _WO_DPX
97
0x0049 _WO_DPY
98
0x004A _WO_DPI
99
0x004D _WO_DPXI
100
0x0050 _WO_DPIY
101
0x0053 _WO_Abs
102
0x0055 _WO_AbsX
103
0x0057 _WO_AbsY
104
0x0060 _RMW
105
0x0062 _RMW_DP
106
0x0064 _RMW_DPX
107
0x0066 _RMW_DPY
108
0x0068 _RMW_Abs
109
0x006B _RMW_AbsX
110
0x006E _RMW_AbsY
111
0x0071 _BByx_dp_rel
112
0x0073 _End_uPgm
113
0x00FC _WAI
114
0x0100 _IDEC_Start
115
0x0100 _BRK_imm
116
0x0101 _BPL_rel
117
0x0102 _JSR_abs
118
0x0103 _BMI_rel
119
0x0104 _RTI_imp
120
0x0105 _BVC_rel
121
0x0106 _RTS_imp
122
0x0107 _BVS_rel
123
0x0108 _BRA_rel
124
0x0109 _BCC_re
125
0x010A _LDY_imm
126
0x010B _BCS_rel
127
0x010C _CPY_imm
128
0x010D _BNE_rel
129
0x010E _CPX_imm
130
0x010F _BEQ_rel
131
0x0110 _ORA_dpXi
132
0x0111 _ORA_dpiY
133
0x0112 _AND_dpXi
134
0x0113 _AND_dpiY
135
0x0114 _EOR_dpXi
136
0x0115 _EOR_dpiY
137
0x0116 _ADC_dpXi
138
0x0117 _ADC_dpiY
139
0x0118 _STA_dpXi
140
0x0119 _STA_dpiY
141
0x011A _LDA_dpXi
142
0x011B _LDA_dpiY
143
0x011C _CMP_dpXi
144
0x011D _CMP_dpiY
145
0x011E _SBC_dpXi
146
0x011F _SBC_dpiY
147
0x0120 _NOP_02
148
0x0121 _ORA_dpi
149
0x0122 _NOP_22
150
0x0123 _AND_dpi
151
0x0124 _NOP_42
152
0x0125 _EOR_dpi
153
0x0126 _NOP_62
154
0x0127 _ADC_dpi
155
0x0128 _NOP_82
156
0x0129 _STA_dpi
157
0x012A _LDX_imm
158
0x012B _LDA_dpi
159
0x012C _NOP_C2
160
0x012D _CMP_dpi
161
0x012E _NOP_E2
162
0x012F _SBC_dpi
163
0x0130 _NOP_03
164
0x0131 _NOP_13
165
0x0132 _NOP_23
166
0x0133 _NOP_33
167
0x0134 _NOP_43
168
0x0135 _NOP_53
169
0x0136 _NOP_63
170
0x0137 _NOP_73
171
0x0138 _NOP_83
172
0x0139 _NOP_93
173
0x013A _NOP_A3
174
0x013B _NOP_B3
175
0x013C _NOP_C3
176
0x013D _NOP_D3
177
0x013E _NOP_E3
178
0x013F _NOP_F3
179
0x0140 _TSB_dp
180
0x0141 _TRB_dp
181
0x0142 _BIT_dp
182
0x0143 _BIT_dpX
183
0x0144 _NOP_44
184
0x0145 _NOP_54
185
0x0146 _STZ_dp
186
0x0147 _STZ_dpX
187
0x0148 _STY_dp
188
0x0149 _STY_dpX
189
0x014A _LDY_dp
190
0x014B _LDY_dpX
191
0x014C _CPY_dp
192
0x014D _NOP_D4
193
0x014E _CPX_dp
194
0x014F _NOP_F4
195
0x0150 _ORA_dp
196
0x0151 _ORA_dpX
197
0x0152 _AND_dp
198
0x0153 _AND_dpX
199
0x0154 _EOR_dp
200
0x0155 _EOR_dpX
201
0x0156 _ADC_dp
202
0x0157 _ADC_dpX
203
0x0158 _STA_dp
204
0x0159 _STA_dpX
205
0x015A _LDA_dp
206
0x015B _LDA_dpX
207
0x015C _CMP_dp
208
0x015D _CMP_dpX
209
0x015E _SBC_dp
210
0x015F _SBC_dpX
211
0x0160 _ASL_dp
212
0x0161 _ASL_dpX
213
0x0162 _ROL_dp
214
0x0163 _ROL_dpX
215
0x0164 _LSR_dp
216
0x0165 _LSR_dpX
217
0x0166 _ROR_dp
218
0x0167 _ROR_dpX
219
0x0168 _STX_dp
220
0x0169 _STX_dpY
221
0x016A _LDX_dp
222
0x016B _LDX_dpY
223
0x016C _DEC_dp
224
0x016D _DEC_dpX
225
0x016E _INC_dp
226
0x016F _INC_dpX
227
0x0170 _RMB0_dp
228
0x0171 _RMB1_dp
229
0x0172 _RMB2_dp
230
0x0173 _RMB3_dp
231
0x0174 _RMB4_dp
232
0x0175 _RMB5_dp
233
0x0176 _RMB6_dp
234
0x0177 _RMB7_dp
235
0x0178 _SMB0_dp
236
0x0179 _SMB1_dp
237
0x017A _SMB2_dp
238
0x017B _SMB3_dp
239
0x017C _SMB4_dp
240
0x017D _SMB5_dp
241
0x017E _SMB6_dp
242
0x017F _SMB7_dp
243
0x0180 _PHP
244
0x0181 _CLC
245
0x0182 _PLP
246
0x0183 _SEC
247
0x0184 _PHA
248
0x0185 _CLI
249
0x0186 _PLA
250
0x0187 _SEI
251
0x0188 _DEY
252
0x0189 _TYA
253
0x018A _TAY
254
0x018B _CLV
255
0x018C _INY
256
0x018D _CLD
257
0x018E _INX
258
0x018F _SED
259
0x0190 _ORA_imm
260
0x0191 _ORA_absY
261
0x0192 _AND_imm
262
0x0193 _AND_absY
263
0x0194 _EOR_imm
264
0x0195 _EOR_absY
265
0x0196 _ADC_imm
266
0x0197 _ADC_absY
267
0x0198 _BIT_imm
268
0x0199 _STA_absY
269
0x019A _LDA_imm
270
0x019B _LDA_absY
271
0x019C _CMP_imm
272
0x019D _CMP_absY
273
0x019E _SBC_imm
274
0x019F _SBC_absY
275
0x01A0 _ASL_A
276
0x01A1 _INC_A
277
0x01A2 _ROL_A
278
0x01A3 _DEC_A
279
0x01A4 _LSR_A
280
0x01A5 _PHY
281
0x01A6 _ROR_A
282
0x01A7 _PLY
283
0x01A8 _TXA
284
0x01A9 _TXS
285
0x01AA _TAX
286
0x01AB _TSX
287
0x01AC _DEX
288
0x01AD _PHX
289
0x01AE _NOP
290
0x01AF _PLX
291
0x01B0 _NOP_0B
292
0x01B1 _NOP_1B
293
0x01B2 _NOP_2B
294
0x01B3 _NOP_3B
295
0x01B4 _NOP_4B
296
0x01B5 _NOP_5B
297
0x01B6 _NOP_6B
298
0x01B7 _NOP_7B
299
0x01B8 _NOP_8B
300
0x01B9 _NOP_9B
301
0x01BA _NOP_AB
302
0x01BB _NOP_BB
303
0x01BC _WAI_CB
304
0x01BD _STP_DB
305
0x01BE _NOP_EB
306
0x01BF _NOP_FB
307
0x01C0 _TSB_abs
308
0x01C1 _TRB_abs
309
0x01C2 _BIT_abs
310
0x01C3 _BIT_absX
311
0x01C4 _JMP_abs
312
0x01C5 _NOP_5C
313
0x01C6 _JMP_absi
314
0x01C7 _JMP_absXi
315
0x01C8 _STY_abs
316
0x01C9 _STZ_abs
317
0x01CA _LDY_abs
318
0x01CB _LDY_absX
319
0x01CC _CPY_abs
320
0x01CD _NOP_DC
321
0x01CE _CPX_abs
322
0x01CF _NOP_FC
323
0x01D0 _ORA_abs
324
0x01D1 _ORA_absX
325
0x01D2 _AND_abs
326
0x01D3 _AND_absX
327
0x01D4 _EOR_abs
328
0x01D5 _EOR_absX
329
0x01D6 _ADC_abs
330
0x01D7 _ADC_absX
331
0x01D8 _STA_abs
332
0x01D9 _STA_absX
333
0x01DA _LDA_abs
334
0x01DB _LDA_absX
335
0x01DC _CMP_abs
336
0x01DD _CMP_absX
337
0x01DE _SBC_abs
338
0x01DF _SBC_absX
339
0x01E0 _ASL_abs
340
0x01E1 _ASL_absX
341
0x01E2 _ROL_abs
342
0x01E3 _ROL_absX
343
0x01E4 _LSR_abs
344
0x01E5 _LSR_absX
345
0x01E6 _ROR_abs
346
0x01E7 _ROR_absX
347
0x01E8 _STX_abs
348
0x01E9 _STZ_absX
349
0x01EA _LDX_abs
350
0x01EB _LDX_absY
351
0x01EC _DEC_abs
352
0x01ED _DEC_absX
353
0x01EE _INC_abs
354
0x01EF _INC_absX
355
0x01F0 _BBR0_dp_rel
356
0x01F1 _BBR1_dp_rel
357
0x01F2 _BBR2_dp_rel
358
0x01F3 _BBR3_dp_rel
359
0x01F4 _BBR4_dp_rel
360
0x01F5 _BBR5_dp_rel
361
0x01F6 _BBR6_dp_rel
362
0x01F7 _BBR7_dp_rel
363
0x01F8 _BBS0_dp_rel
364
0x01F9 _BBS1_dp_rel
365
0x01FA _BBS2_dp_rel
366
0x01FB _BBS3_dp_rel
367
0x01FC _BBS4_dp_rel
368
0x01FD _BBS5_dp_rel
369
0x01FE _BBS6_dp_rel
370
0x01FF _BBS7_dp_rel
371
0x0200 _Last
372
0x0200 _end
373
 
374
File  Prog
375
Line  Line   Opcode                                Line
376
0611 0x0000 _Start: .org 0
377
0612 0x0000  600D0000 BRV2 _Rst,1,1 -- Load {OP2, OP1} with Vector
378
0613 0x0001 _Rst:
379
0614 0x0001  200C0280 FTCH $,1,0,,, RD, OP1 -- Read Indirect Dst Ptr Lo
380
0615 0x0002  20143A40 FTCH $,1,0, Nxt, Jmp, RD, OP2 -- Read Indirect Dst Ptr Hi
381
0616  --
382
0617 0x0003  501D07C0 BRV1 $,1,1,, Pls, IF, IR -- Instruction Fetch
383
0619  -- this space reserved for future use - boot loader for the microprogram ROMs
384
0621  --------------------------------------------------------------------------------
385
0622  --------------------------------------------------------------------------------
386
0623  -- 2-Way Jump Table: _Nxt and _Int
387
0624  --------------------------------------------------------------------------------
388
0625  --------------------------------------------------------------------------------
389
0626  -- Instruction Fetch and Execute Microstate
390
0627  --------------------------------------------------------------------------------
391
0000 0x0004  00000000 added by program
392
0000 0x0005  00000000 added by program
393
0000 0x0006  00000000 added by program
394
0000 0x0007  00000000 added by program
395
0000 0x0008  00000000 added by program
396
0000 0x0009  00000000 added by program
397
0000 0x000A  00000000 added by program
398
0000 0x000B  00000000 added by program
399
0000 0x000C  00000000 added by program
400
0000 0x000D  00000000 added by program
401
0000 0x000E  00000000 added by program
402
0000 0x000F  00000000 added by program
403
0000 0x0010  00000000 added by program
404
0000 0x0011  00000000 added by program
405
0000 0x0012  00000000 added by program
406
0000 0x0013  00000000 added by program
407
0000 0x0014  00000000 added by program
408
0000 0x0015  00000000 added by program
409
0000 0x0016  00000000 added by program
410
0000 0x0017  00000000 added by program
411
0000 0x0018  00000000 added by program
412
0000 0x0019  00000000 added by program
413
0000 0x001A  00000000 added by program
414
0000 0x001B  00000000 added by program
415
0000 0x001C  00000000 added by program
416
0000 0x001D  00000000 added by program
417
0000 0x001E  00000000 added by program
418
0000 0x001F  00000000 added by program
419
0628 0x0020 _Nxt: .org 32
420
0629 0x0020 _Psh:
421
0630 0x0020 _Pop:
422
0631 0x0020 _Rel:
423
0632 0x0020 _Imm:
424
0633 0x0020  510507C8 BRV1 _Nxt,1,1,, Pls, IF, IR,, WE_R -- Instruction Fetch/Execute
425
0635  --------------------------------------------------------------------------------
426
0636  -- Interrupt Entry - NMI, (unmasked) IRQ (falls through to _BRK)
427
0637  --------------------------------------------------------------------------------
428
0639 0x0021 _Int:
429
0640 0x0021  61154168 BRV2 _Brk,1,1, Stk,, WR, PCH, Psh, WE_R -- Push PCH, capture Vector
430
0642  --------------------------------------------------------------------------------
431
0643  -- BRK Entry - BRK #imm (_Int falls through to _Brk, see comment above)
432
0644  --------------------------------------------------------------------------------
433
0646 0x0022 _Brk:
434
0647 0x0022  211441A0 FTCH $,1,0, Stk,, WR, PCL, Psh -- Push PCL
435
0648 0x0023  211C49E1 FTCH $,1,0, Stk, Jmp, WR, PSW, Psh,, ISR -- Push P; Clr D, Set I
436
0649  --
437
0650 0x0024  21248280 FTCH $,1,0, LDA,, RD, OP1 -- Read Indirect Dst Ptr Lo
438
0651 0x0025  212C3A40 FTCH $,1,0, Nxt, Jmp, RD, OP2 -- Read Indirect Dst Ptr Hi
439
0652  --
440
0653 0x0026  513507C0 BRV1 $,1,1,, Pls, IF, IR -- Instruction Fetch
441
0655  --------------------------------------------------------------------------------
442
0656  -- Jump To Subroutine - JSR Abs (Not interruptable)
443
0657  --------------------------------------------------------------------------------
444
0659 0x0027 _JSR:
445
0660 0x0027  213C0340 FTCH $,1,0,,, IF, OP2 -- Load Indirect Dst Ptr Lo
446
0661 0x0028  21444160 FTCH $,1,0, Stk,, WR, PCH, Psh -- Push PC Hi
447
0662 0x0029  410449A0 BRV0 _Nxt,1,0, Stk, Jmp, WR, PCL, Psh -- Push PC Lo
448
0664  --------------------------------------------------------------------------------
449
0665  -- Return from Interrupt - RTI (Not interruptable)
450
0666  --------------------------------------------------------------------------------
451
0668 0x002A _RTI:
452
0669 0x002A  215442BC FTCH $,1,0, Stk,, RD, OP1, Pop, WE_P -- Pop PCL
453
0670 0x002B  215C4A70 FTCH $,1,0, Stk, Jmp, RD, OP2, Pop -- Pop PCH
454
0671  --
455
0672 0x002C  516507C0 BRV1 $,1,1,, Pls, IF, IR -- Next, no Reg_WE, P okay
456
0674  --------------------------------------------------------------------------------
457
0675  -- Return From Subroutine - RTS (Not interruptable)
458
0676  --------------------------------------------------------------------------------
459
0678 0x002D _RTS:
460
0679 0x002D  41044A70 BRV0 _Nxt,1,0, Stk, Jmp, RD, OP2, Pop -- Pop PCH
461
0681  --------------------------------------------------------------------------------
462
0682  -- Jump Absolute - JMP Abs (Not interruptable)
463
0683  --------------------------------------------------------------------------------
464
0685 0x002E _Jmp:
465
0686 0x002E  41040B40 BRV0 _Nxt,1,0,, Jmp, IF, OP2
466
0688  --------------------------------------------------------------------------------
467
0689  -- Jump Indirect - JMP (Abs) (Not interruptable)
468
0690  --------------------------------------------------------------------------------
469
0692 0x002F _JmpI:
470
0693 0x002F  217C0740 FTCH $,1,0,, Pls, IF, OP2 -- Load Indirect Dst Ptr Lo
471
0694 0x0030  21848280 FTCH $,1,0, LDA,, RD, OP1 -- Read Indirect Dst Ptr Hi
472
0695 0x0031  41043A40 BRV0 _Nxt,1,0, Nxt, Jmp, RD, OP2 -- Goto Next
473
0697  --------------------------------------------------------------------------------
474
0698  -- Jump Pre-Indexed Indirect - JMP (Abs, X) (Not interruptable)
475
0699  --------------------------------------------------------------------------------
476
0701 0x0032 _JmpXI:
477
0702 0x0032  21940740 FTCH $,1,0,, Pls, IF, OP2 -- Load Indirect Dst Ptr Lo
478
0703 0x0033  219CE280 FTCH $,1,0, LDAX,, RD, OP1 -- Read Indirect Dst Ptr Hi
479
0704 0x0034  41043A40 BRV0 _Nxt,1,0, Nxt, Jmp, RD, OP2 -- Goto Next
480
0706  --------------------------------------------------------------------------------
481
0707  -- Memory Read-Only Data Page Direct - xxx DP
482
0708  --------------------------------------------------------------------------------
483
0710 0x0035 _RO_DP:
484
0711 0x0035  31045280 BMW _Nxt,1,0, DPN,, RD, OP1 -- Read DP Mem
485
0713  -----------------------------------------------------------------------------
486
0714  -- Memory Read-Only Pre-Indexed Data Page Direct - xxx DP, X
487
0715  --------------------------------------------------------------------------------
488
0717 0x0036 _RO_DPX:
489
0718 0x0036  31046280 BMW _Nxt,1,0, DPX,, RD, OP1 -- Read DP Mem
490
0720  --------------------------------------------------------------------------------
491
0721  -- Memory Read-Only Post-Indexed Data Page Direct - xxx DP, Y
492
0722  --------------------------------------------------------------------------------
493
0724 0x0037 _RO_DPY:
494
0725 0x0037  31047280 BMW _Nxt,1,0, DPY,, RD, OP1 -- Read DP Mem
495
0727  ------------------------------------------------------------------------------
496
0728  -- Memory Read-Only Data Page Indirect - xxx (DP)
497
0729  --------------------------------------------------------------------------------
498
0731 0x0038 _RO_DPI:
499
0732 0x0038  21C45280 FTCH $,1,0, DPN,, RD, OP1 -- Read DP Mem Ptr Lo
500
0733 0x0039  21CC3240 FTCH $,1,0, Nxt,, RD, OP2 -- Read DP Mem Ptr Hi
501
0734 0x003A  31048280 BMW _Nxt,1,0, LDA,, RD, OP1 -- Read Operand
502
0736  --------------------------------------------------------------------------------
503
0737  -- Memory Read-Only Pre-Indexed Data Page Indirect - xxx (DP, X)
504
0738  --------------------------------------------------------------------------------
505
0740 0x003B _RO_DPXI:
506
0741 0x003B  21DC6280 FTCH $,1,0, DPX,, RD, OP1 -- Read DP Mem Ptr Lo (DP,X)
507
0742 0x003C  21E43240 FTCH $,1,0, Nxt,, RD, OP2 -- Read DP Mem Ptr Hi
508
0743 0x003D  31048280 BMW _Nxt,1,0, LDA,, RD, OP1 -- Read Operand
509
0745  --------------------------------------------------------------------------------
510
0746  -- Memory Read-Only Post-Indexed Data Page Indirect - xxx (DP), Y
511
0747  --------------------------------------------------------------------------------
512
0749 0x003E _RO_DPIY:
513
0750 0x003E  21F45280 FTCH $,1,0, DPN,, RD, OP1 -- Read DP Mem Ptr Lo
514
0751 0x003F  21FC3240 FTCH $,1,0, Nxt,, RD, OP2 -- Read DP Mem Ptr Hi
515
0752 0x0040  3104F280 BMW _Nxt,1,0, LDAY,, RD, OP1 -- Read Operand (DP),Y
516
0754  --------------------------------------------------------------------------------
517
0755  -- Memory Read-Only Absolute - xxx Abs
518
0756  --------------------------------------------------------------------------------
519
0758 0x0041 _RO_Abs:
520
0759 0x0041  220C0740 FTCH $,1,0,, Pls, IF, OP2 -- Read Mem Ptr Hi
521
0760 0x0042  31048280 BMW _Nxt,1,0, LDA,, RD, OP1 -- Read Operand
522
0762  --------------------------------------------------------------------------------
523
0763  -- Memory Read-Only Pre-Indexed Absolute - xxx Abs, X
524
0764  --------------------------------------------------------------------------------
525
0766 0x0043 _RO_AbsX:
526
0767 0x0043  221C0740 FTCH $,1,0,, Pls, IF, OP2 -- Read Mem Ptr Hi
527
0768 0x0044  3104E280 BMW _Nxt,1,0, LDAX,, RD, OP1 -- Read Operand Abs,X
528
0770  --------------------------------------------------------------------------------
529
0771  -- Memory Read-Only Post-Indexed Absolute - xxx Abs, Y
530
0772  --------------------------------------------------------------------------------
531
0774 0x0045 _RO_AbsY:
532
0775 0x0045  222C0740 FTCH $,1,0,, Pls, IF, OP2 -- Read Mem Ptr Hi
533
0776 0x0046  3104F280 BMW _Nxt,1,0, LDAY,, RD, OP1 -- Read Operand Abs,Y
534
0778  --------------------------------------------------------------------------------
535
0779  -- Memory Write-Only Data Page Direct - xxx DP
536
0780  --------------------------------------------------------------------------------
537
0782 0x0047 _WO_DP:
538
0783 0x0047  31045100 BMW _Nxt,1,0, DPN,, WR -- Write to DP
539
0785  -----------------------------------------------------------------------------
540
0786  -- Memory Write-Only Pre-Indexed Data Page Direct - xxx DP, X
541
0787  --------------------------------------------------------------------------------
542
0789 0x0048 _WO_DPX:
543
0790 0x0048  31046100 BMW _Nxt,1,0, DPX,, WR -- Write to DP,X
544
0792  -----------------------------------------------------------------------------
545
0793  -- Memory Write-Only Post-Indexed Data Page Direct - xxx DP, Y
546
0794  --------------------------------------------------------------------------------
547
0796 0x0049 _WO_DPY:
548
0797 0x0049  31047100 BMW _Nxt,1,0, DPY,, WR -- Write to DP,Y
549
0799  --------------------------------------------------------------------------------
550
0800  -- Memory Write-Only Data Page Indirect - xxx (DP)
551
0801  --------------------------------------------------------------------------------
552
0803 0x004A _WO_DPI:
553
0804 0x004A  22545280 FTCH $,1,0, DPN,, RD, OP1 -- Read DP Mem Ptr Lo
554
0805 0x004B  225C3240 FTCH $,1,0, Nxt,, RD, OP2 -- Read DP Mem Ptr Hi
555
0806 0x004C  31048100 BMW _Nxt,1,0, LDA,, WR -- Write to (DP)
556
0808  --------------------------------------------------------------------------------
557
0809  -- Memory Write-Only Data Page Indirect - xxx (DP, X)
558
0810  --------------------------------------------------------------------------------
559
0812 0x004D _WO_DPXI:
560
0813 0x004D  226C6280 FTCH $,1,0, DPX,, RD, OP1 -- Read DP Mem Ptr Lo
561
0814 0x004E  22743240 FTCH $,1,0, Nxt,, RD, OP2 -- Read DP Mem Ptr Hi
562
0815 0x004F  31048100 BMW _Nxt,1,0, LDA,, WR -- Write to (DP)
563
0817  --------------------------------------------------------------------------------
564
0818  -- Memory Write-Only Post-Indexed Data Page Indirect - xxx (DP), Y
565
0819  --------------------------------------------------------------------------------
566
0821 0x0050 _WO_DPIY:
567
0822 0x0050  22845280 FTCH $,1,0, DPN,, RD, OP1 -- Read DP Mem Ptr Lo
568
0823 0x0051  228C3240 FTCH $,1,0, Nxt,, RD, OP2 -- Read DP Mem Ptr Hi
569
0824 0x0052  3104F100 BMW _Nxt,1,0, LDAY,, WR -- Write to (DP)
570
0826  --------------------------------------------------------------------------------
571
0827  -- Memory Write-Only Absolute - xxx Abs
572
0828  --------------------------------------------------------------------------------
573
0830 0x0053 _WO_Abs:
574
0831 0x0053  229C0740 FTCH $,1,0,, Pls, IF, OP2 -- Read Mem Ptr Hi
575
0832 0x0054  31048100 BMW _Nxt,1,0, LDA,, WR -- Write to Abs
576
0834  --------------------------------------------------------------------------------
577
0835  -- Memory Write-Only Pre-Indexed Absolute - xxx Abs, X
578
0836  --------------------------------------------------------------------------------
579
0838 0x0055 _WO_AbsX:
580
0839 0x0055  22AC0740 FTCH $,1,0,, Pls, IF, OP2 -- Read Mem Ptr Hi
581
0840 0x0056  3104E100 BMW _Nxt,1,0, LDAX,, WR -- Write to Abs,X
582
0842  --------------------------------------------------------------------------------
583
0843  -- Memory Write-Only Post-Indexed Absolute - xxx Abs, Y
584
0844  --------------------------------------------------------------------------------
585
0846 0x0057 _WO_AbsY:
586
0847 0x0057  22BC0740 FTCH $,1,0,, Pls, IF, OP2 -- Read Mem Ptr Hi
587
0848 0x0058  3104F100 BMW _Nxt,1,0, LDAY,, WR -- Write to Abs,Y
588
0850  --------------------------------------------------------------------------------
589
0851  -- 2-way Read-Modify-Write Instruction/Interrupt Jump Table
590
0852  --------------------------------------------------------------------------------
591
0000 0x0059  00000000 added by program
592
0000 0x005A  00000000 added by program
593
0000 0x005B  00000000 added by program
594
0000 0x005C  00000000 added by program
595
0000 0x005D  00000000 added by program
596
0000 0x005E  00000000 added by program
597
0000 0x005F  00000000 added by program
598
0854 0x0060 _RMW: .org 96
599
0855 0x0060  530507C0 BRV1 _RMW,1,1,, Pls, IF, IR -- Instruction Fetch/Execute
600
0856 0x0061  61154160 BRV2 _Brk,1,1, Stk, , WR, PCH, Psh -- Push PCH, capture Vector
601
0858  --------------------------------------------------------------------------------
602
0859  -- Memory Read-Modify-Write Data Page Direct - xxx DP
603
0860  --------------------------------------------------------------------------------
604
0862 0x0062 _RMW_DP:
605
0863 0x0062  23145280 FTCH $,1,0, DPN,, RD, OP1 -- Read from DP
606
0864 0x0063  33042108 BMW _RMW,1,0, MAR,, WR,,,WE_R -- Write to DP
607
0866  --------------------------------------------------------------------------------
608
0867  -- Memory Read-Modify-Write Pre-Indexed Data Page Direct - xxx DP, X
609
0868  --------------------------------------------------------------------------------
610
0870 0x0064 _RMW_DPX:
611
0871 0x0064  23246280 FTCH $,1,0, DPX,, RD, OP1 -- Read from DP,X
612
0872 0x0065  33042108 BMW _RMW,1,0, MAR,, WR,,,WE_R -- Write to DP,X
613
0874  --------------------------------------------------------------------------------
614
0875  -- Memory Read-Modify-Write Post-Indexed Data Page Direct - xxx DP, Y
615
0876  --------------------------------------------------------------------------------
616
0878 0x0066 _RMW_DPY:
617
0879 0x0066  23347280 FTCH $,1,0, DPY,, RD, OP1 -- Read from DP,Y
618
0880 0x0067  33042108 BMW _RMW,1,0, MAR,, WR,,,WE_R -- Write to DP,Y
619
0882  --------------------------------------------------------------------------------
620
0883  -- Memory Read-Modify-Write Absolute - xxx Abs
621
0884  --------------------------------------------------------------------------------
622
0886 0x0068 _RMW_Abs:
623
0887 0x0068  23440740 FTCH $,1,0,, Pls, IF, OP2 -- Read Mem Ptr Hi
624
0888 0x0069  234C8280 FTCH $,1,0, LDA,, RD, OP1 -- Read from Abs
625
0889 0x006A  33042108 BMW _RMW,1,0, MAR,, WR,,,WE_R -- Write to Abs
626
0891  --------------------------------------------------------------------------------
627
0892  -- Memory Read-Modify-Write Pre-Indexed Absolute - xxx Abs, X
628
0893  --------------------------------------------------------------------------------
629
0895 0x006B _RMW_AbsX:
630
0896 0x006B  235C0740 FTCH $,1,0,, Pls, IF, OP2 -- Read Mem Ptr Hi
631
0897 0x006C  2364E280 FTCH $,1,0, LDAX,, RD, OP1 -- Read from Abs,X
632
0898 0x006D  33042108 BMW _RMW,1,0, MAR,, WR,,,WE_R -- Write to Abs,X
633
0900  --------------------------------------------------------------------------------
634
0901  -- Memory Read-Modify-Write Post-Indexed Absolute - xxx Abs, Y
635
0902  --------------------------------------------------------------------------------
636
0904 0x006E _RMW_AbsY:
637
0905 0x006E  23740740 FTCH $,1,0,, Pls, IF, OP2 -- Read Mem Ptr Hi
638
0906 0x006F  237CF280 FTCH $,1,0, LDAY,, RD, OP1 -- Read from Abs,Y
639
0907 0x0070  33042108 BMW _RMW,1,0, MAR,, WR,,,WE_R -- Write to Abs,Y
640
0909  --------------------------------------------------------------------------------
641
0910  -- Rockwell BBRx/BBSx dp,rel instructions
642
0911  --------------------------------------------------------------------------------
643
0913 0x0071 _BByx_dp_rel:
644
0914 0x0071  238C5280 FTCH $,1,0, DPN,, RD, OP1 -- Read from DP
645
0915 0x0072  41040F80 BRV0 _Nxt,1,0,, Rel, IF, OP1 -- Read rel value
646
0917  --------------------------------------------------------------------------------
647
0918  -- End of Microprogram Routines for Normal Instructions
648
0919  --------------------------------------------------------------------------------
649
0921 0x0073 _End_uPgm:
650
0923  --------------------------------------------------------------------------------
651
0924  -- WAI - Wait for Interrupt
652
0925  --------------------------------------------------------------------------------
653
0000 0x0073  00000000 added by program
654
0000 0x0074  00000000 added by program
655
0000 0x0075  00000000 added by program
656
0000 0x0076  00000000 added by program
657
0000 0x0077  00000000 added by program
658
0000 0x0078  00000000 added by program
659
0000 0x0079  00000000 added by program
660
0000 0x007A  00000000 added by program
661
0000 0x007B  00000000 added by program
662
0000 0x007C  00000000 added by program
663
0000 0x007D  00000000 added by program
664
0000 0x007E  00000000 added by program
665
0000 0x007F  00000000 added by program
666
0000 0x0080  00000000 added by program
667
0000 0x0081  00000000 added by program
668
0000 0x0082  00000000 added by program
669
0000 0x0083  00000000 added by program
670
0000 0x0084  00000000 added by program
671
0000 0x0085  00000000 added by program
672
0000 0x0086  00000000 added by program
673
0000 0x0087  00000000 added by program
674
0000 0x0088  00000000 added by program
675
0000 0x0089  00000000 added by program
676
0000 0x008A  00000000 added by program
677
0000 0x008B  00000000 added by program
678
0000 0x008C  00000000 added by program
679
0000 0x008D  00000000 added by program
680
0000 0x008E  00000000 added by program
681
0000 0x008F  00000000 added by program
682
0000 0x0090  00000000 added by program
683
0000 0x0091  00000000 added by program
684
0000 0x0092  00000000 added by program
685
0000 0x0093  00000000 added by program
686
0000 0x0094  00000000 added by program
687
0000 0x0095  00000000 added by program
688
0000 0x0096  00000000 added by program
689
0000 0x0097  00000000 added by program
690
0000 0x0098  00000000 added by program
691
0000 0x0099  00000000 added by program
692
0000 0x009A  00000000 added by program
693
0000 0x009B  00000000 added by program
694
0000 0x009C  00000000 added by program
695
0000 0x009D  00000000 added by program
696
0000 0x009E  00000000 added by program
697
0000 0x009F  00000000 added by program
698
0000 0x00A0  00000000 added by program
699
0000 0x00A1  00000000 added by program
700
0000 0x00A2  00000000 added by program
701
0000 0x00A3  00000000 added by program
702
0000 0x00A4  00000000 added by program
703
0000 0x00A5  00000000 added by program
704
0000 0x00A6  00000000 added by program
705
0000 0x00A7  00000000 added by program
706
0000 0x00A8  00000000 added by program
707
0000 0x00A9  00000000 added by program
708
0000 0x00AA  00000000 added by program
709
0000 0x00AB  00000000 added by program
710
0000 0x00AC  00000000 added by program
711
0000 0x00AD  00000000 added by program
712
0000 0x00AE  00000000 added by program
713
0000 0x00AF  00000000 added by program
714
0000 0x00B0  00000000 added by program
715
0000 0x00B1  00000000 added by program
716
0000 0x00B2  00000000 added by program
717
0000 0x00B3  00000000 added by program
718
0000 0x00B4  00000000 added by program
719
0000 0x00B5  00000000 added by program
720
0000 0x00B6  00000000 added by program
721
0000 0x00B7  00000000 added by program
722
0000 0x00B8  00000000 added by program
723
0000 0x00B9  00000000 added by program
724
0000 0x00BA  00000000 added by program
725
0000 0x00BB  00000000 added by program
726
0000 0x00BC  00000000 added by program
727
0000 0x00BD  00000000 added by program
728
0000 0x00BE  00000000 added by program
729
0000 0x00BF  00000000 added by program
730
0000 0x00C0  00000000 added by program
731
0000 0x00C1  00000000 added by program
732
0000 0x00C2  00000000 added by program
733
0000 0x00C3  00000000 added by program
734
0000 0x00C4  00000000 added by program
735
0000 0x00C5  00000000 added by program
736
0000 0x00C6  00000000 added by program
737
0000 0x00C7  00000000 added by program
738
0000 0x00C8  00000000 added by program
739
0000 0x00C9  00000000 added by program
740
0000 0x00CA  00000000 added by program
741
0000 0x00CB  00000000 added by program
742
0000 0x00CC  00000000 added by program
743
0000 0x00CD  00000000 added by program
744
0000 0x00CE  00000000 added by program
745
0000 0x00CF  00000000 added by program
746
0000 0x00D0  00000000 added by program
747
0000 0x00D1  00000000 added by program
748
0000 0x00D2  00000000 added by program
749
0000 0x00D3  00000000 added by program
750
0000 0x00D4  00000000 added by program
751
0000 0x00D5  00000000 added by program
752
0000 0x00D6  00000000 added by program
753
0000 0x00D7  00000000 added by program
754
0000 0x00D8  00000000 added by program
755
0000 0x00D9  00000000 added by program
756
0000 0x00DA  00000000 added by program
757
0000 0x00DB  00000000 added by program
758
0000 0x00DC  00000000 added by program
759
0000 0x00DD  00000000 added by program
760
0000 0x00DE  00000000 added by program
761
0000 0x00DF  00000000 added by program
762
0000 0x00E0  00000000 added by program
763
0000 0x00E1  00000000 added by program
764
0000 0x00E2  00000000 added by program
765
0000 0x00E3  00000000 added by program
766
0000 0x00E4  00000000 added by program
767
0000 0x00E5  00000000 added by program
768
0000 0x00E6  00000000 added by program
769
0000 0x00E7  00000000 added by program
770
0000 0x00E8  00000000 added by program
771
0000 0x00E9  00000000 added by program
772
0000 0x00EA  00000000 added by program
773
0000 0x00EB  00000000 added by program
774
0000 0x00EC  00000000 added by program
775
0000 0x00ED  00000000 added by program
776
0000 0x00EE  00000000 added by program
777
0000 0x00EF  00000000 added by program
778
0000 0x00F0  00000000 added by program
779
0000 0x00F1  00000000 added by program
780
0000 0x00F2  00000000 added by program
781
0000 0x00F3  00000000 added by program
782
0000 0x00F4  00000000 added by program
783
0000 0x00F5  00000000 added by program
784
0000 0x00F6  00000000 added by program
785
0000 0x00F7  00000000 added by program
786
0000 0x00F8  00000000 added by program
787
0000 0x00F9  00000000 added by program
788
0000 0x00FA  00000000 added by program
789
0000 0x00FB  00000000 added by program
790
0927 0x00FC _WAI: .org 252 -- Set up 4-way table for WAI instruction
791
0928 0x00FC  37E00000 BMW _WAI,0,0 -- No external interrupts asserted
792
0929 0x00FD  41080000 BRV0 _Int,0,0 -- Int asserted by NMI, do NMI interrupt
793
0930 0x00FE  41000000 BRV0 _Nxt,0,0 -- xIRQ asserted with IRQ_Msk asserted, continue
794
0931 0x00FF  41080000 BRV0 _Int,0,0 -- Int asserted by xIRQ, do IRQ interrupt
795
0933 0x0100 _IDEC_Start: .org 256
796
0935  --------------------------------------------------------------------------------
797
0936  -- Start of Instruction Decode Table (Entry for each Opcode)
798
0937  --
799
0938  -- Instead of being organized in numerical order, the table is organized by
800
0939  -- rows: the least significant nibble and the most significant nibble of the
801
0940  -- opcode are swapped. This organization more clearly shows the arrangement of
802
0941  -- the addressing modes of the WDC W65C02 microprocessor being emulated. It al-
803
0942  -- so more clearly shows the regularity of the ALU instructions that are imple-
804
0943  -- mented. The implementation of the microprogram is first based on the addres-
805
0944  -- sing mode, and then on the ALU function. Single cycle instructions will be
806
0945  -- easily recognized in the following table because their table entry use the
807
0946  -- BRV3 MPC instruction. Multi-cycle instructions use the BRV0 MPC instruction
808
0947  -- to vector a microroutine in the lower 256 words of the microprogram ROM/RAM.
809
0948  -- Single byte instructions such as BRK, RTS, RTI, and register push/pull in-
810
0949  -- structions (PHA, PLA, PHP, PLP, PHX, PLX, PHY, PLY), and multi-byte instruc-
811
0950  -- tions like JSR abs are implemented with special microroutines that perform
812
0951  -- the necessary stack accesses. The remainder of the microroutines are orga-
813
0952  -- nized by addressing mode, and whether the mode is used in a RO, WO, or RMW
814
0953  -- manner.
815
0954  --
816
0955  -- Microprogram Word Format:
817
0956  --
818
0957  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
819
0958  --
820
0959  --------------------------------------------------------------------------------
821
0961  --------------------------------------------------------------------------------
822
0962  -- Row 0 : 0x00-0xF0 (All branches/JMPs/JSR implemented as uninterruptable)
823
0963  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
824
0964  --------------------------------------------------------------------------------
825
0965 0x0100 _BRK_imm:
826
0966 0x0100  6115416C BRV2 _Brk,1,1, Stk,, WR, PCH, Psh, WE_P -- Start Break Handler
827
0967 0x0101 _BPL_rel:
828
0968 0x0101  41040F80 BRV0 _Rel,1,0,, Rel, IF, OP1 -- Read rel Value
829
0969 0x0102 _JSR_abs:
830
0970 0x0102  413C0780 BRV0 _JSR,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
831
0971 0x0103 _BMI_rel:
832
0972 0x0103  41040F80 BRV0 _Rel,1,0,, Rel, IF, OP1 -- Read rel Value
833
0973 0x0104 _RTI_imp:
834
0974 0x0104  415442B0 BRV0 _RTI,1,0, Stk,, RD, OP1, Pop -- Read PSW from Stack
835
0975 0x0105 _BVC_rel:
836
0976 0x0105  41040F80 BRV0 _Rel,1,0,, Rel, IF, OP1 -- Read rel Value
837
0977 0x0106 _RTS_imp:
838
0978 0x0106  416C42B0 BRV0 _RTS,1,0, Stk,, RD, OP1, Pop -- Read PCL from Stack
839
0979 0x0107 _BVS_rel:
840
0980 0x0107  41040F80 BRV0 _Rel,1,0,, Rel, IF, OP1 -- Read rel Value
841
0981 0x0108 _BRA_rel:
842
0982 0x0108  41040F80 BRV0 _Rel,1,0,, Rel, IF, OP1 -- Read rel Value
843
0983 0x0109 _BCC_rel
844
0984 0x0109  41040F80 BRV0 _Rel,1,0,, Rel, IF, OP1 -- Read rel Value
845
0985 0x010A _LDY_imm:
846
0986 0x010A  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read #imm Value
847
0987 0x010B _BCS_rel:
848
0988 0x010B  41040F80 BRV0 _Rel,1,0,, Rel, IF, OP1 -- Read rel Value
849
0989 0x010C _CPY_imm:
850
0990 0x010C  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read #imm Value
851
0991 0x010D _BNE_rel:
852
0992 0x010D  41040F80 BRV0 _Rel,1,0,, Rel, IF, OP1 -- Read rel Value
853
0993 0x010E _CPX_imm:
854
0994 0x010E  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read #imm Value
855
0995 0x010F _BEQ_rel:
856
0996 0x010F  41040F80 BRV0 _Rel,1,0,, Rel, IF, OP1 -- Read rel Value
857
0997  --------------------------------------------------------------------------------
858
0998  -- Row 1 : 0x01-0xF1
859
0999  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
860
1000  --------------------------------------------------------------------------------
861
1001 0x0110 _ORA_dpXi:
862
1002 0x0110  41DC0780 BRV0 _RO_DPXI,1,0,, Pls, IF, OP1 -- Read DP Ptr
863
1003 0x0111 _ORA_dpiY:
864
1004 0x0111  41F40780 BRV0 _RO_DPIY,1,0,, Pls, IF, OP1 -- Read DP Ptr
865
1005 0x0112 _AND_dpXi:
866
1006 0x0112  41DC0780 BRV0 _RO_DPXI,1,0,, Pls, IF, OP1 -- Read DP Ptr
867
1007 0x0113 _AND_dpiY:
868
1008 0x0113  41F40780 BRV0 _RO_DPIY,1,0,, Pls, IF, OP1 -- Read DP Ptr
869
1009 0x0114 _EOR_dpXi:
870
1010 0x0114  41DC0780 BRV0 _RO_DPXI,1,0,, Pls, IF, OP1 -- Read DP Ptr
871
1011 0x0115 _EOR_dpiY:
872
1012 0x0115  41F40780 BRV0 _RO_DPIY,1,0,, Pls, IF, OP1 -- Read DP Ptr
873
1013 0x0116 _ADC_dpXi:
874
1014 0x0116  41DC0780 BRV0 _RO_DPXI,1,0,, Pls, IF, OP1 -- Read DP Ptr
875
1015 0x0117 _ADC_dpiY:
876
1016 0x0117  41F40780 BRV0 _RO_DPIY,1,0,, Pls, IF, OP1 -- Read DP Ptr
877
1017 0x0118 _STA_dpXi:
878
1018 0x0118  426C0780 BRV0 _WO_DPXI,1,0,, Pls, IF, OP1 -- Read DP Ptr
879
1019 0x0119 _STA_dpiY:
880
1020 0x0119  42840780 BRV0 _WO_DPIY,1,0,, Pls, IF, OP1 -- Read DP Ptr
881
1021 0x011A _LDA_dpXi:
882
1022 0x011A  41DC0780 BRV0 _RO_DPXI,1,0,, Pls, IF, OP1 -- Read DP Ptr
883
1023 0x011B _LDA_dpiY:
884
1024 0x011B  41F40780 BRV0 _RO_DPIY,1,0,, Pls, IF, OP1 -- Read DP Ptr
885
1025 0x011C _CMP_dpXi:
886
1026 0x011C  41DC0780 BRV0 _RO_DPXI,1,0,, Pls, IF, OP1 -- Read DP Ptr
887
1027 0x011D _CMP_dpiY:
888
1028 0x011D  41F40780 BRV0 _RO_DPIY,1,0,, Pls, IF, OP1 -- Read DP Ptr
889
1029 0x011E _SBC_dpXi:
890
1030 0x011E  41DC0780 BRV0 _RO_DPXI,1,0,, Pls, IF, OP1 -- Read DP Ptr
891
1031 0x011F _SBC_dpiY:
892
1032 0x011F  41F40780 BRV0 _RO_DPIY,1,0,, Pls, IF, OP1 -- Read DP Ptr
893
1033  --------------------------------------------------------------------------------
894
1034  -- Row 2 : 0x02-0xF2
895
1035  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
896
1036  --------------------------------------------------------------------------------
897
1037 0x0120 _NOP_02:
898
1038 0x0120  790707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
899
1039 0x0121 _ORA_dpi:
900
1040 0x0121  41C40780 BRV0 _RO_DPI,1,0,, Pls, IF, OP1 -- Read DP
901
1041 0x0122 _NOP_22:
902
1042 0x0122  791707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
903
1043 0x0123 _AND_dpi:
904
1044 0x0123  41C40780 BRV0 _RO_DPI,1,0,, Pls, IF, OP1 -- Read DP
905
1045 0x0124 _NOP_42:
906
1046 0x0124  792707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
907
1047 0x0125 _EOR_dpi:
908
1048 0x0125  41C40780 BRV0 _RO_DPI,1,0,, Pls, IF, OP1 -- Read DP
909
1049 0x0126 _NOP_62:
910
1050 0x0126  793707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
911
1051 0x0127 _ADC_dpi:
912
1052 0x0127  41C40780 BRV0 _RO_DPI,1,0,, Pls, IF, OP1 -- Read DP
913
1053 0x0128 _NOP_82:
914
1054 0x0128  794707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
915
1055 0x0129 _STA_dpi:
916
1056 0x0129  42540780 BRV0 _WO_DPI,1,0,, Pls, IF, OP1 -- Read DP
917
1057 0x012A _LDX_imm:
918
1058 0x012A  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read #imm Value
919
1059 0x012B _LDA_dpi:
920
1060 0x012B  41C40780 BRV0 _RO_DPI,1,0,, Pls, IF, OP1 -- Read DP
921
1061 0x012C _NOP_C2:
922
1062 0x012C  796707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
923
1063 0x012D _CMP_dpi:
924
1064 0x012D  41C40780 BRV0 _RO_DPI,1,0,, Pls, IF, OP1 -- Read DP
925
1065 0x012E _NOP_E2:
926
1066 0x012E  797707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
927
1067 0x012F _SBC_dpi:
928
1068 0x012F  41C40780 BRV0 _RO_DPI,1,0,, Pls, IF, OP1 -- Read DP
929
1069  --------------------------------------------------------------------------------
930
1070  -- Row 3 : 0x03-0xF3
931
1071  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
932
1072  --------------------------------------------------------------------------------
933
1073 0x0130 _NOP_03:
934
1074 0x0130  798707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
935
1075 0x0131 _NOP_13:
936
1076 0x0131  798F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
937
1077 0x0132 _NOP_23:
938
1078 0x0132  799707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
939
1079 0x0133 _NOP_33:
940
1080 0x0133  799F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
941
1081 0x0134 _NOP_43:
942
1082 0x0134  79A707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
943
1083 0x0135 _NOP_53:
944
1084 0x0135  79AF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
945
1085 0x0136 _NOP_63:
946
1086 0x0136  79B707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
947
1087 0x0137 _NOP_73:
948
1088 0x0137  79BF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
949
1089 0x0138 _NOP_83:
950
1090 0x0138  79C707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
951
1091 0x0139 _NOP_93:
952
1092 0x0139  79CF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
953
1093 0x013A _NOP_A3:
954
1094 0x013A  79D707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
955
1095 0x013B _NOP_B3:
956
1096 0x013B  79DF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
957
1097 0x013C _NOP_C3:
958
1098 0x013C  79E707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
959
1099 0x013D _NOP_D3:
960
1100 0x013D  79EF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
961
1101 0x013E _NOP_E3:
962
1102 0x013E  79F707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
963
1103 0x013F _NOP_F3:
964
1104 0x013F  79FF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
965
1105  --------------------------------------------------------------------------------
966
1106  -- Row 4 : 0x04-0xF4
967
1107  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
968
1108  --------------------------------------------------------------------------------
969
1109 0x0140 _TSB_dp:
970
1110 0x0140  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
971
1111 0x0141 _TRB_dp:
972
1112 0x0141  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
973
1113 0x0142 _BIT_dp:
974
1114 0x0142  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
975
1115 0x0143 _BIT_dpX:
976
1116 0x0143  41B40780 BRV0 _RO_DPX,1,0,, Pls, IF, OP1 -- Read DP
977
1117 0x0144 _NOP_44:
978
1118 0x0144  7A2707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
979
1119 0x0145 _NOP_54:
980
1120 0x0145  7A2F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
981
1121 0x0146 _STZ_dp:
982
1122 0x0146  423C0780 BRV0 _WO_DP,1,0,, Pls, IF, OP1 -- Read DP
983
1123 0x0147 _STZ_dpX:
984
1124 0x0147  42440780 BRV0 _WO_DPX,1,0,, Pls, IF, OP1 -- Read DP
985
1125 0x0148 _STY_dp:
986
1126 0x0148  423C0780 BRV0 _WO_DP,1,0,, Pls, IF, OP1 -- Read DP
987
1127 0x0149 _STY_dpX:
988
1128 0x0149  42440780 BRV0 _WO_DPX,1,0,, Pls, IR, OP1 -- Read DP
989
1129 0x014A _LDY_dp:
990
1130 0x014A  41AC0780 BRV0 _RO_DP,1,0,, Pls, IR, OP1 -- Read DP
991
1131 0x014B _LDY_dpX:
992
1132 0x014B  41B40780 BRV0 _RO_DPX,1,0,, Pls, IF, OP1 -- Read DP
993
1133 0x014C _CPY_dp:
994
1134 0x014C  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
995
1135 0x014D _NOP_D4:
996
1136 0x014D  7A6F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
997
1137 0x014E _CPX_dp:
998
1138 0x014E  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
999
1139 0x014F _NOP_F4:
1000
1140 0x014F  7A7F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
1001
1141  --------------------------------------------------------------------------------
1002
1142  -- Row 5 : 0x05-0xF5
1003
1143  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
1004
1144  --------------------------------------------------------------------------------
1005
1145 0x0150 _ORA_dp:
1006
1146 0x0150  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
1007
1147 0x0151 _ORA_dpX:
1008
1148 0x0151  41B40780 BRV0 _RO_DPX,1,0,, Pls, IF, OP1 -- Read DP
1009
1149 0x0152 _AND_dp:
1010
1150 0x0152  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
1011
1151 0x0153 _AND_dpX:
1012
1152 0x0153  41B40780 BRV0 _RO_DPX,1,0,, Pls, IF, OP1 -- Read DP
1013
1153 0x0154 _EOR_dp:
1014
1154 0x0154  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
1015
1155 0x0155 _EOR_dpX:
1016
1156 0x0155  41B40780 BRV0 _RO_DPX,1,0,, Pls, IF, OP1 -- Read DP
1017
1157 0x0156 _ADC_dp:
1018
1158 0x0156  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
1019
1159 0x0157 _ADC_dpX:
1020
1160 0x0157  41B40780 BRV0 _RO_DPX,1,0,, Pls, IF, OP1 -- Read DP
1021
1161 0x0158 _STA_dp:
1022
1162 0x0158  423C0780 BRV0 _WO_DP,1,0,, Pls, IF, OP1 -- Read DP
1023
1163 0x0159 _STA_dpX:
1024
1164 0x0159  42440780 BRV0 _WO_DPX,1,0,, Pls, IF, OP1 -- Read DP
1025
1165 0x015A _LDA_dp:
1026
1166 0x015A  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
1027
1167 0x015B _LDA_dpX:
1028
1168 0x015B  41B40780 BRV0 _RO_DPX,1,0,, Pls, IF, OP1 -- Read DP
1029
1169 0x015C _CMP_dp:
1030
1170 0x015C  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
1031
1171 0x015D _CMP_dpX:
1032
1172 0x015D  41B40780 BRV0 _RO_DPX,1,0,, Pls, IF, OP1 -- Read DP
1033
1173 0x015E _SBC_dp:
1034
1174 0x015E  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
1035
1175 0x015F _SBC_dpX:
1036
1176 0x015F  41B40780 BRV0 _RO_DPX,1,0,, Pls, IF, OP1 -- Read DP
1037
1177  --------------------------------------------------------------------------------
1038
1178  -- Row 6 : 0x06-0xF6
1039
1179  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
1040
1180  --------------------------------------------------------------------------------
1041
1181 0x0160 _ASL_dp:
1042
1182 0x0160  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
1043
1183 0x0161 _ASL_dpX:
1044
1184 0x0161  43240780 BRV0 _RMW_DPX,1,0,, Pls, IF, OP1 -- Read DP
1045
1185 0x0162 _ROL_dp:
1046
1186 0x0162  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
1047
1187 0x0163 _ROL_dpX:
1048
1188 0x0163  43240780 BRV0 _RMW_DPX,1,0,, Pls, IF, OP1 -- Read DP
1049
1189 0x0164 _LSR_dp:
1050
1190 0x0164  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
1051
1191 0x0165 _LSR_dpX:
1052
1192 0x0165  43240780 BRV0 _RMW_DPX,1,0,, Pls, IF, OP1 -- Read DP
1053
1193 0x0166 _ROR_dp:
1054
1194 0x0166  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
1055
1195 0x0167 _ROR_dpX:
1056
1196 0x0167  43240780 BRV0 _RMW_DPX,1,0,, Pls, IF, OP1 -- Read DP
1057
1197 0x0168 _STX_dp:
1058
1198 0x0168  423C0780 BRV0 _WO_DP,1,0,, Pls, IF, OP1 -- Read DP
1059
1199 0x0169 _STX_dpY:
1060
1200 0x0169  424C0780 BRV0 _WO_DPY,1,0,, Pls, IF, OP1 -- Read DP
1061
1201 0x016A _LDX_dp:
1062
1202 0x016A  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
1063
1203 0x016B _LDX_dpY:
1064
1204 0x016B  41BC0780 BRV0 _RO_DPY,1,0,, Pls, IF, OP1 -- Read DP
1065
1205 0x016C _DEC_dp:
1066
1206 0x016C  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
1067
1207 0x016D _DEC_dpX:
1068
1208 0x016D  43240780 BRV0 _RMW_DPX,1,0,, Pls, IF, OP1 -- Read DP
1069
1209 0x016E _INC_dp:
1070
1210 0x016E  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
1071
1211 0x016F _INC_dpX:
1072
1212 0x016F  43240780 BRV0 _RMW_DPX,1,0,, Pls, IF, OP1 -- Read DP
1073
1213  --------------------------------------------------------------------------------
1074
1214  -- Row 7 : 0x07-0xF7 (Rockwell Instructions: RMBx/SMBx dp)
1075
1215  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
1076
1216  --------------------------------------------------------------------------------
1077
1217 0x0170 _RMB0_dp:
1078
1218 0x0170  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
1079
1219 0x0171 _RMB1_dp:
1080
1220 0x0171  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
1081
1221 0x0172 _RMB2_dp:
1082
1222 0x0172  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
1083
1223 0x0173 _RMB3_dp:
1084
1224 0x0173  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
1085
1225 0x0174 _RMB4_dp:
1086
1226 0x0174  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
1087
1227 0x0175 _RMB5_dp:
1088
1228 0x0175  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
1089
1229 0x0176 _RMB6_dp:
1090
1230 0x0176  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
1091
1231 0x0177 _RMB7_dp:
1092
1232 0x0177  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
1093
1233 0x0178 _SMB0_dp:
1094
1234 0x0178  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
1095
1235 0x0179 _SMB1_dp:
1096
1236 0x0179  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
1097
1237 0x017A _SMB2_dp:
1098
1238 0x017A  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
1099
1239 0x017B _SMB3_dp:
1100
1240 0x017B  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
1101
1241 0x017C _SMB4_dp:
1102
1242 0x017C  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
1103
1243 0x017D _SMB5_dp:
1104
1244 0x017D  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
1105
1245 0x017E _SMB6_dp:
1106
1246 0x017E  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
1107
1247 0x017F _SMB7_dp:
1108
1248 0x017F  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
1109
1249  --------------------------------------------------------------------------------
1110
1250  -- Row 8 : 0x08-0xF8
1111
1251  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
1112
1252  --------------------------------------------------------------------------------
1113
1253 0x0180 _PHP:
1114
1254 0x0180  41044120 BRV0 _Psh,1,0, Stk,, WR,, Psh -- Push P
1115
1255 0x0181 _CLC:
1116
1256 0x0181  7C0F07CC BRV3 $,1,3,, Pls, IF, IR,, WE_P -- Clear Carry Flag
1117
1257 0x0182 _PLP:
1118
1258 0x0182  410442B0 BRV0 _Pop,1,0, Stk,, RD, OP1, Pop -- Pop P
1119
1259 0x0183 _SEC:
1120
1260 0x0183  7C1F07CC BRV3 $,1,3,, Pls, IF, IR,, WE_P -- Set Carry Flag
1121
1261 0x0184 _PHA:
1122
1262 0x0184  41044120 BRV0 _Psh,1,0, Stk,, WR,, Psh -- Push A
1123
1263 0x0185 _CLI:
1124
1264 0x0185  5C2D07CC BRV1 $,1,1,, Pls, IF, IR,, WE_P -- Clear Interrupt Mask Flg
1125
1265 0x0186 _PLA:
1126
1266 0x0186  410442B0 BRV0 _Pop,1,0, Stk,, RD, OP1, Pop -- Pop A
1127
1267 0x0187 _SEI:
1128
1268 0x0187  5C3D07CC BRV1 $,1,1,, Pls, IF, IR,, WE_P -- Set Interrupt Mask Flag
1129
1269 0x0188 _DEY:
1130
1270 0x0188  7C4707C6 BRV3 $,1,3,, Pls, IF, IR,, WE_Y -- Decrement Y
1131
1271 0x0189 _TYA:
1132
1272 0x0189  7C4F07C2 BRV3 $,1,3,, Pls, IF, IR,, WE_A -- Transfer Y to A
1133
1273 0x018A _TAY:
1134
1274 0x018A  7C5707C6 BRV3 $,1,3,, Pls, IF, IR,, WE_Y -- Transfer A to Y
1135
1275 0x018B _CLV:
1136
1276 0x018B  7C5F07CC BRV3 $,1,3,, Pls, IF, IR,, WE_P -- Clear oVerflow Flag
1137
1277 0x018C _INY:
1138
1278 0x018C  7C6707C6 BRV3 $,1,3,, Pls, IF, IR,, WE_Y -- Increment Y
1139
1279 0x018D _CLD:
1140
1280 0x018D  7C6F07CC BRV3 $,1,3,, Pls, IF, IR,, WE_P -- Clear Decimal Mode Flag
1141
1281 0x018E _INX:
1142
1282 0x018E  7C7707C4 BRV3 $,1,3,, Pls, IF, IR,, WE_X -- Increment X
1143
1283 0x018F _SED:
1144
1284 0x018F  7C7F07CC BRV3 $,1,3,, Pls, IF, IR,, WE_P -- Set Decimal Mode Flag
1145
1285  --------------------------------------------------------------------------------
1146
1286  -- Row 9 : 0x09-0xF9
1147
1287  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
1148
1288  --------------------------------------------------------------------------------
1149
1289 0x0190 _ORA_imm:
1150
1290 0x0190  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read Immediate Operand
1151
1291 0x0191 _ORA_absY:
1152
1292 0x0191  422C0780 BRV0 _RO_AbsY,1,0,, Pls, IF, OP1 -- Read Mem Ptr Lo
1153
1293 0x0192 _AND_imm:
1154
1294 0x0192  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read Immediate Operand
1155
1295 0x0193 _AND_absY:
1156
1296 0x0193  422C0780 BRV0 _RO_AbsY,1,0,, Pls, IF, OP1 -- Read Mem Ptr Lo
1157
1297 0x0194 _EOR_imm:
1158
1298 0x0194  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read Immediate Operand
1159
1299 0x0195 _EOR_absY:
1160
1300 0x0195  422C0780 BRV0 _RO_AbsY,1,0,, Pls, IF, OP1 -- Read Mem Ptr Lo
1161
1301 0x0196 _ADC_imm:
1162
1302 0x0196  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read Immediate Operand
1163
1303 0x0197 _ADC_absY:
1164
1304 0x0197  422C0780 BRV0 _RO_AbsY,1,0,, Pls, IF, OP1 -- Read Mem Ptr Lo
1165
1305 0x0198 _BIT_imm:
1166
1306 0x0198  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read Immediate Operand
1167
1307 0x0199 _STA_absY:
1168
1308 0x0199  42BC0780 BRV0 _WO_AbsY,1,0,, Pls, IF, OP1 -- Read Mem Ptr Lo
1169
1309 0x019A _LDA_imm:
1170
1310 0x019A  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read Immediate Operand
1171
1311 0x019B _LDA_absY:
1172
1312 0x019B  422C0780 BRV0 _RO_AbsY,1,0,, Pls, IF, OP1 -- Read Mem Ptr Lo
1173
1313 0x019C _CMP_imm:
1174
1314 0x019C  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read Immediate Operand
1175
1315 0x019D _CMP_absY:
1176
1316 0x019D  422C0780 BRV0 _RO_AbsY,1,0,, Pls, IF, OP1 -- Read Mem Ptr Lo
1177
1317 0x019E _SBC_imm:
1178
1318 0x019E  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read Immediate Operand
1179
1319 0x019F _SBC_absY:
1180
1320 0x019F  422C0780 BRV0 _RO_AbsY,1,0,, Pls, IF, OP1 -- Read Mem Ptr Lo
1181
1321  --------------------------------------------------------------------------------
1182
1322  -- Row A : 0x0A-0xFA
1183
1323  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
1184
1324  --------------------------------------------------------------------------------
1185
1325 0x01A0 _ASL_A:
1186
1326 0x01A0  7D0707C2 BRV3 $,1,3,, Pls, IF, IR,, WE_A -- Arithmetic Shift A Left
1187
1327 0x01A1 _INC_A:
1188
1328 0x01A1  7D0F07C2 BRV3 $,1,3,, Pls, IF, IR,, WE_A -- Increment A
1189
1329 0x01A2 _ROL_A:
1190
1330 0x01A2  7D1707C2 BRV3 $,1,3,, Pls, IF, IR,, WE_A -- Rotate A Left
1191
1331 0x01A3 _DEC_A:
1192
1332 0x01A3  7D1F07C2 BRV3 $,1,3,, Pls, IF, IR,, WE_A -- Decrement A
1193
1333 0x01A4 _LSR_A:
1194
1334 0x01A4  7D2707C2 BRV3 $,1,3,, Pls, IF, IR,, WE_A -- Logical Shift A Right
1195
1335 0x01A5 _PHY:
1196
1336 0x01A5  41044120 BRV0 _Psh,1,0, Stk,, WR,, Psh -- Push Y
1197
1337 0x01A6 _ROR_A:
1198
1338 0x01A6  7D3707C2 BRV3 $,1,3,, Pls, IF, IR,, WE_A -- Rotate A Right
1199
1339 0x01A7 _PLY:
1200
1340 0x01A7  410442B0 BRV0 _Pop,1,0, Stk,, RD, OP1, Pop -- Pop Y
1201
1341 0x01A8 _TXA:
1202
1342 0x01A8  7D4707C2 BRV3 $,1,3,, Pls, IF, IR,, WE_A -- Transfer X to A
1203
1343 0x01A9 _TXS:
1204
1344 0x01A9  7D4F07CA BRV3 $,1,3,, Pls, IF, IR,, WE_S -- Transfer X to S
1205
1345 0x01AA _TAX:
1206
1346 0x01AA  7D5707C4 BRV3 $,1,3,, Pls, IF, IR,, WE_X -- Transfer A to X
1207
1347 0x01AB _TSX:
1208
1348 0x01AB  7D5F07C4 BRV3 $,1,3,, Pls, IF, IR,, WE_X -- Transfer S to X
1209
1349 0x01AC _DEX:
1210
1350 0x01AC  7D6707C4 BRV3 $,1,3,, Pls, IF, IR,, WE_X -- Decrement X
1211
1351 0x01AD _PHX:
1212
1352 0x01AD  41044120 BRV0 _Psh,1,0, Stk,, WR,, Psh -- Push X
1213
1353 0x01AE _NOP: -- the real NOP
1214
1354 0x01AE  7D7707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip True NOP Instruction
1215
1355 0x01AF _PLX:
1216
1356 0x01AF  410442B0 BRV0 _Pop,1,0, Stk,, RD, OP1, Pop -- Pop X
1217
1357  --------------------------------------------------------------------------------
1218
1358  -- Row B : 0x0B-0xFB
1219
1359  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
1220
1360  --------------------------------------------------------------------------------
1221
1361 0x01B0 _NOP_0B:
1222
1362 0x01B0  7D8707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
1223
1363 0x01B1 _NOP_1B:
1224
1364 0x01B1  7D8F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
1225
1365 0x01B2 _NOP_2B:
1226
1366 0x01B2  7D9707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
1227
1367 0x01B3 _NOP_3B:
1228
1368 0x01B3  7D9F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
1229
1369 0x01B4 _NOP_4B:
1230
1370 0x01B4  7DA707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
1231
1371 0x01B5 _NOP_5B:
1232
1372 0x01B5  7DAF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
1233
1373 0x01B6 _NOP_6B:
1234
1374 0x01B6  7DB707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
1235
1375 0x01B7 _NOP_7B:
1236
1376 0x01B7  7DBF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
1237
1377 0x01B8 _NOP_8B:
1238
1378 0x01B8  7DC707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
1239
1379 0x01B9 _NOP_9B:
1240
1380 0x01B9  7DCF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
1241
1381 0x01BA _NOP_AB:
1242
1382 0x01BA  7DD707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
1243
1383 0x01BB _NOP_BB:
1244
1384 0x01BB  7DDF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
1245
1385 0x01BC _WAI_CB:
1246
1386 0x01BC  47E00000 BRV0 _WAI,0,0 -- Wait for Interrupt
1247
1387 0x01BD _STP_DB:
1248
1388 0x01BD  4DE80000 BRV0 $,0,0 -- Stop execution
1249
1389 0x01BE _NOP_EB:
1250
1390 0x01BE  7DF707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
1251
1391 0x01BF _NOP_FB:
1252
1392 0x01BF  7DFF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
1253
1393  --------------------------------------------------------------------------------
1254
1394  -- Row C : 0x0C-0xFC
1255
1395  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
1256
1396  --------------------------------------------------------------------------------
1257
1397 0x01C0 _TSB_abs:
1258
1398 0x01C0  43440780 BRV0 _RMW_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1259
1399 0x01C1 _TRB_abs:
1260
1400 0x01C1  43440780 BRV0 _RMW_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1261
1401 0x01C2 _BIT_abs:
1262
1402 0x01C2  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1263
1403 0x01C3 _BIT_absX:
1264
1404 0x01C3  421C0780 BRV0 _RO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1265
1405 0x01C4 _JMP_abs:
1266
1406 0x01C4  41740780 BRV0 _Jmp,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1267
1407 0x01C5 _NOP_5C:
1268
1408 0x01C5  7E2F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
1269
1409 0x01C6 _JMP_absi:
1270
1410 0x01C6  417C0780 BRV0 _JmpI,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1271
1411 0x01C7 _JMP_absXi:
1272
1412 0x01C7  41940780 BRV0 _JmpXI,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1273
1413 0x01C8 _STY_abs:
1274
1414 0x01C8  429C0780 BRV0 _WO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1275
1415 0x01C9 _STZ_abs:
1276
1416 0x01C9  429C0780 BRV0 _WO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1277
1417 0x01CA _LDY_abs:
1278
1418 0x01CA  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1279
1419 0x01CB _LDY_absX:
1280
1420 0x01CB  421C0780 BRV0 _RO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1281
1421 0x01CC _CPY_abs:
1282
1422 0x01CC  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1283
1423 0x01CD _NOP_DC:
1284
1424 0x01CD  7E6F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
1285
1425 0x01CE _CPX_abs:
1286
1426 0x01CE  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1287
1427 0x01CF _NOP_FC:
1288
1428 0x01CF  7E7F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
1289
1429  --------------------------------------------------------------------------------
1290
1430  -- Row D : 0x0D-0xFD
1291
1431  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
1292
1432  --------------------------------------------------------------------------------
1293
1433 0x01D0 _ORA_abs:
1294
1434 0x01D0  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1295
1435 0x01D1 _ORA_absX:
1296
1436 0x01D1  421C0780 BRV0 _RO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1297
1437 0x01D2 _AND_abs:
1298
1438 0x01D2  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1299
1439 0x01D3 _AND_absX:
1300
1440 0x01D3  421C0780 BRV0 _RO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1301
1441 0x01D4 _EOR_abs:
1302
1442 0x01D4  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1303
1443 0x01D5 _EOR_absX:
1304
1444 0x01D5  421C0780 BRV0 _RO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1305
1445 0x01D6 _ADC_abs:
1306
1446 0x01D6  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1307
1447 0x01D7 _ADC_absX:
1308
1448 0x01D7  421C0780 BRV0 _RO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1309
1449 0x01D8 _STA_abs:
1310
1450 0x01D8  429C0780 BRV0 _WO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1311
1451 0x01D9 _STA_absX:
1312
1452 0x01D9  42AC0780 BRV0 _WO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1313
1453 0x01DA _LDA_abs:
1314
1454 0x01DA  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1315
1455 0x01DB _LDA_absX:
1316
1456 0x01DB  421C0780 BRV0 _RO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1317
1457 0x01DC _CMP_abs:
1318
1458 0x01DC  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1319
1459 0x01DD _CMP_absX:
1320
1460 0x01DD  421C0780 BRV0 _RO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1321
1461 0x01DE _SBC_abs:
1322
1462 0x01DE  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1323
1463 0x01DF _SBC_absX:
1324
1464 0x01DF  421C0780 BRV0 _RO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1325
1465  --------------------------------------------------------------------------------
1326
1466  -- Row E : 0x0E-0xFE
1327
1467  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
1328
1468  --------------------------------------------------------------------------------
1329
1469 0x01E0 _ASL_abs:
1330
1470 0x01E0  43440780 BRV0 _RMW_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1331
1471 0x01E1 _ASL_absX:
1332
1472 0x01E1  435C0780 BRV0 _RMW_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1333
1473 0x01E2 _ROL_abs:
1334
1474 0x01E2  43440780 BRV0 _RMW_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1335
1475 0x01E3 _ROL_absX:
1336
1476 0x01E3  435C0780 BRV0 _RMW_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1337
1477 0x01E4 _LSR_abs:
1338
1478 0x01E4  43440780 BRV0 _RMW_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1339
1479 0x01E5 _LSR_absX:
1340
1480 0x01E5  435C0780 BRV0 _RMW_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1341
1481 0x01E6 _ROR_abs:
1342
1482 0x01E6  43440780 BRV0 _RMW_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1343
1483 0x01E7 _ROR_absX:
1344
1484 0x01E7  435C0780 BRV0 _RMW_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1345
1485 0x01E8 _STX_abs:
1346
1486 0x01E8  429C0780 BRV0 _WO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1347
1487 0x01E9 _STZ_absX:
1348
1488 0x01E9  42AC0780 BRV0 _WO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1349
1489 0x01EA _LDX_abs:
1350
1490 0x01EA  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1351
1491 0x01EB _LDX_absY:
1352
1492 0x01EB  422C0780 BRV0 _RO_AbsY,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1353
1493 0x01EC _DEC_abs:
1354
1494 0x01EC  43440780 BRV0 _RMW_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1355
1495 0x01ED _DEC_absX:
1356
1496 0x01ED  435C0780 BRV0 _RMW_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1357
1497 0x01EE _INC_abs:
1358
1498 0x01EE  43440780 BRV0 _RMW_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1359
1499 0x01EF _INC_absX:
1360
1500 0x01EF  435C0780 BRV0 _RMW_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
1361
1501  --------------------------------------------------------------------------------
1362
1502  -- Row F : 0x0F-0xFF (Rockwell Instructions: BBRx/BBSx dp,rel)
1363
1503  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
1364
1504  --------------------------------------------------------------------------------
1365
1505 0x01F0 _BBR0_dp_rel:
1366
1506 0x01F0  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
1367
1507 0x01F1 _BBR1_dp_rel:
1368
1508 0x01F1  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
1369
1509 0x01F2 _BBR2_dp_rel:
1370
1510 0x01F2  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
1371
1511 0x01F3 _BBR3_dp_rel:
1372
1512 0x01F3  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
1373
1513 0x01F4 _BBR4_dp_rel:
1374
1514 0x01F4  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
1375
1515 0x01F5 _BBR5_dp_rel:
1376
1516 0x01F5  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
1377
1517 0x01F6 _BBR6_dp_rel:
1378
1518 0x01F6  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
1379
1519 0x01F7 _BBR7_dp_rel:
1380
1520 0x01F7  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
1381
1521 0x01F8 _BBS0_dp_rel:
1382
1522 0x01F8  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
1383
1523 0x01F9 _BBS1_dp_rel:
1384
1524 0x01F9  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
1385
1525 0x01FA _BBS2_dp_rel:
1386
1526 0x01FA  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
1387
1527 0x01FB _BBS3_dp_rel:
1388
1528 0x01FB  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
1389
1529 0x01FC _BBS4_dp_rel:
1390
1530 0x01FC  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
1391
1531 0x01FD _BBS5_dp_rel:
1392
1532 0x01FD  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
1393
1533 0x01FE _BBS6_dp_rel:
1394
1534 0x01FE  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
1395
1535 0x01FF _BBS7_dp_rel:
1396
1536 0x01FF  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
1397
1537  --------------------------------------------------------------------------------
1398
1538  -- End of Instruction Decode Table
1399
1539  --------------------------------------------------------------------------------
1400
1541 0x0200 _Last: .org 512
1401
1543 0x0200 _end:
1402
-- Instructions --
1403
0x0000  RTS   RTS         .asm    0       -- Return from Subroutine
1404
0x0001  BSR   BSR         .asm    1       -- Branch to subroutine
1405
0x0002 FTCH   FTCH        .asm    2       -- Fetch next instruction
1406
0x0003  BMW   BMW         .asm    3       -- Branch multi-way
1407
0x0004 BRV0   BRV0        .asm    4       -- Branch via 0
1408
0x0005 BRV1   BRV1        .asm    5       -- Branch via 1
1409
0x0006 BRV2   BRV2        .asm    6       -- Branch via 2
1410
0x0007 BRV3   BRV3        .asm    7       -- Branch via 3
1411
0x0008 BTH0   BTH0        .asm    8       -- Branch if T0 is high
1412
0x0009 BTH1   BTH1        .asm    9       -- Branch if T1 is high
1413
0x000A BTH2   BTH2        .asm    10      -- Branch if T2 is high
1414
0x000B BTH3   BTH3        .asm    11      -- Branch if T3 is high
1415
0x000C BTL0   BTL0        .asm    12      -- Branch if T0 is low
1416
0x000D BTL1   BTL1        .asm    13      -- Branch if T1 is low
1417
0x000E BTL2   BTL2        .asm    14      -- Branch if T2 is low
1418
0x000F BTL3   BTL3        .asm    15      -- Branch if T3 is low
1419
 
1420
-- Equates --
1421
0x0000 PC          .equ    0       -- NA <= PC (default)
1422
0x0001 Inc         .equ    1       -- NA <= PC + 1
1423
0x0002 MAR         .equ    2       -- NA <= MAR + 0
1424
0x0003 Nxt         .equ    3       -- NA <= MAR + 1
1425
0x0004 Stk         .equ    4       -- NA <= SP + 0
1426
0x0005 DPN         .equ    5       -- NA <= {0, OP1} + 0
1427
0x0006 DPX         .equ    6       -- NA <= {0, OP1} + {0, X}
1428
0x0007 DPY         .equ    7       -- NA <= {0, OP1} + {0, Y}
1429
0x0008 LDA         .equ    8       -- NA <= {OP2, OP1} + 0
1430
0x000E LDAX        .equ    14      -- NA <= {OP2, OP1} + {0, X}
1431
0x000F LDAY        .equ    15      -- NA <= {OP2, OP1} + {0, Y}
1432
0x0001 Pls         .equ    1       -- PC <= PC + 1
1433
0x0002 Jmp         .equ    2       -- PC <= NA
1434
0x0003 Rel         .equ    3       -- PC <= PC + (CC ? {{8{DI[7]}}, DI} : 1)
1435
0x0001 WR          .equ    1       -- Bus Operand Write
1436
0x0002 RD          .equ    2       -- Bus Operand Read
1437
0x0003 IF          .equ    3       -- Bus Insruction Fetch
1438
0x0000 ALU         .equ    0       -- M   <= DI
1439
0x0001 OP2         .equ    1       -- OP2 <= DI
1440
0x0002 OP1         .equ    2       -- OP1 <= DI
1441
0x0003 IR          .equ    3       -- IR  <= DI
1442
0x0001 PCH         .equ    1       -- DO  <= PCH
1443
0x0002 PCL         .equ    2       -- DO  <= PCL
1444
0x0003 PSW         .equ    3       -- DO  <= PSW (P)
1445
0x0002 Psh         .equ    2       -- S <= S - 1
1446
0x0003 Pop         .equ    3       -- S <= S + 1
1447
0x0001 WE_A        .equ    1       -- Write Enable A
1448
0x0002 WE_X        .equ    2       -- Write Enable X
1449
0x0003 WE_Y        .equ    3       -- Write Enable Y
1450
0x0004 WE_R        .equ    4       -- Write Enable Register - write selected register
1451
0x0005 WE_S        .equ    5       -- Write Enable S
1452
0x0006 WE_P        .equ    6       -- Write Enable P
1453
0x0007 WE_M        .equ    7       -- Write Enable M(emory)
1454
0x0001 ISR         .equ    1       -- Assert ISR: Clear D, Set I
1455
 
1456
-- Defines --
1457
0x0004 Inst        .def    4       -- Instruction
1458
0x0009 BA          .def    9       -- Branch Address
1459
0x0001 Wait        .def    1       -- Conditional Execution Required
1460
0x0002 En          .def    2       -- Enable ALU, and Sample Interrupts
1461
0x0004 NA_Cntl     .def    4       -- Next Address Control Field
1462
0x0002 PC_Cntl     .def    2       -- Program Counter Control Field
1463
0x0002 IO_Cntl     .def    2       -- I/O Cycle Control Field
1464
0x0002 DIO_Cntl    .def    2       -- Data Input/Output Demux/Mux Control Field
1465
0x0002 Stk_Cntl    .def    2       -- ALU Stack Pointer Control Field
1466
0x0003 RegWE_Cntl  .def    3       -- Register Write Enable (A, X, Y, S, P)
1467
0x0001 PSW_Cntl    .def    1       -- Asserted to Clear D and Set I in PSW
1468
 
1469
-- Labels --
1470
0x0000 _Start
1471
0x0001 _Rst
1472
0x0020 _Nxt
1473
0x0020 _Psh
1474
0x0020 _Pop
1475
0x0020 _Rel
1476
0x0020 _Imm
1477
0x0021 _Int
1478
0x0022 _Brk
1479
0x0027 _JSR
1480
0x002A _RTI
1481
0x002D _RTS
1482
0x002E _Jmp
1483
0x002F _JmpI
1484
0x0032 _JmpXI
1485
0x0035 _RO_DP
1486
0x0036 _RO_DPX
1487
0x0037 _RO_DPY
1488
0x0038 _RO_DPI
1489
0x003B _RO_DPXI
1490
0x003E _RO_DPIY
1491
0x0041 _RO_Abs
1492
0x0043 _RO_AbsX
1493
0x0045 _RO_AbsY
1494
0x0047 _WO_DP
1495
0x0048 _WO_DPX
1496
0x0049 _WO_DPY
1497
0x004A _WO_DPI
1498
0x004D _WO_DPXI
1499
0x0050 _WO_DPIY
1500
0x0053 _WO_Abs
1501
0x0055 _WO_AbsX
1502
0x0057 _WO_AbsY
1503
0x0060 _RMW
1504
0x0062 _RMW_DP
1505
0x0064 _RMW_DPX
1506
0x0066 _RMW_DPY
1507
0x0068 _RMW_Abs
1508
0x006B _RMW_AbsX
1509
0x006E _RMW_AbsY
1510
0x0071 _BByx_dp_rel
1511
0x0073 _End_uPgm
1512
0x00FC _WAI
1513
0x0100 _IDEC_Start
1514
0x0100 _BRK_imm
1515
0x0101 _BPL_rel
1516
0x0102 _JSR_abs
1517
0x0103 _BMI_rel
1518
0x0104 _RTI_imp
1519
0x0105 _BVC_rel
1520
0x0106 _RTS_imp
1521
0x0107 _BVS_rel
1522
0x0108 _BRA_rel
1523
0x0109 _BCC_re
1524
0x010A _LDY_imm
1525
0x010B _BCS_rel
1526
0x010C _CPY_imm
1527
0x010D _BNE_rel
1528
0x010E _CPX_imm
1529
0x010F _BEQ_rel
1530
0x0110 _ORA_dpXi
1531
0x0111 _ORA_dpiY
1532
0x0112 _AND_dpXi
1533
0x0113 _AND_dpiY
1534
0x0114 _EOR_dpXi
1535
0x0115 _EOR_dpiY
1536
0x0116 _ADC_dpXi
1537
0x0117 _ADC_dpiY
1538
0x0118 _STA_dpXi
1539
0x0119 _STA_dpiY
1540
0x011A _LDA_dpXi
1541
0x011B _LDA_dpiY
1542
0x011C _CMP_dpXi
1543
0x011D _CMP_dpiY
1544
0x011E _SBC_dpXi
1545
0x011F _SBC_dpiY
1546
0x0120 _NOP_02
1547
0x0121 _ORA_dpi
1548
0x0122 _NOP_22
1549
0x0123 _AND_dpi
1550
0x0124 _NOP_42
1551
0x0125 _EOR_dpi
1552
0x0126 _NOP_62
1553
0x0127 _ADC_dpi
1554
0x0128 _NOP_82
1555
0x0129 _STA_dpi
1556
0x012A _LDX_imm
1557
0x012B _LDA_dpi
1558
0x012C _NOP_C2
1559
0x012D _CMP_dpi
1560
0x012E _NOP_E2
1561
0x012F _SBC_dpi
1562
0x0130 _NOP_03
1563
0x0131 _NOP_13
1564
0x0132 _NOP_23
1565
0x0133 _NOP_33
1566
0x0134 _NOP_43
1567
0x0135 _NOP_53
1568
0x0136 _NOP_63
1569
0x0137 _NOP_73
1570
0x0138 _NOP_83
1571
0x0139 _NOP_93
1572
0x013A _NOP_A3
1573
0x013B _NOP_B3
1574
0x013C _NOP_C3
1575
0x013D _NOP_D3
1576
0x013E _NOP_E3
1577
0x013F _NOP_F3
1578
0x0140 _TSB_dp
1579
0x0141 _TRB_dp
1580
0x0142 _BIT_dp
1581
0x0143 _BIT_dpX
1582
0x0144 _NOP_44
1583
0x0145 _NOP_54
1584
0x0146 _STZ_dp
1585
0x0147 _STZ_dpX
1586
0x0148 _STY_dp
1587
0x0149 _STY_dpX
1588
0x014A _LDY_dp
1589
0x014B _LDY_dpX
1590
0x014C _CPY_dp
1591
0x014D _NOP_D4
1592
0x014E _CPX_dp
1593
0x014F _NOP_F4
1594
0x0150 _ORA_dp
1595
0x0151 _ORA_dpX
1596
0x0152 _AND_dp
1597
0x0153 _AND_dpX
1598
0x0154 _EOR_dp
1599
0x0155 _EOR_dpX
1600
0x0156 _ADC_dp
1601
0x0157 _ADC_dpX
1602
0x0158 _STA_dp
1603
0x0159 _STA_dpX
1604
0x015A _LDA_dp
1605
0x015B _LDA_dpX
1606
0x015C _CMP_dp
1607
0x015D _CMP_dpX
1608
0x015E _SBC_dp
1609
0x015F _SBC_dpX
1610
0x0160 _ASL_dp
1611
0x0161 _ASL_dpX
1612
0x0162 _ROL_dp
1613
0x0163 _ROL_dpX
1614
0x0164 _LSR_dp
1615
0x0165 _LSR_dpX
1616
0x0166 _ROR_dp
1617
0x0167 _ROR_dpX
1618
0x0168 _STX_dp
1619
0x0169 _STX_dpY
1620
0x016A _LDX_dp
1621
0x016B _LDX_dpY
1622
0x016C _DEC_dp
1623
0x016D _DEC_dpX
1624
0x016E _INC_dp
1625
0x016F _INC_dpX
1626
0x0170 _RMB0_dp
1627
0x0171 _RMB1_dp
1628
0x0172 _RMB2_dp
1629
0x0173 _RMB3_dp
1630
0x0174 _RMB4_dp
1631
0x0175 _RMB5_dp
1632
0x0176 _RMB6_dp
1633
0x0177 _RMB7_dp
1634
0x0178 _SMB0_dp
1635
0x0179 _SMB1_dp
1636
0x017A _SMB2_dp
1637
0x017B _SMB3_dp
1638
0x017C _SMB4_dp
1639
0x017D _SMB5_dp
1640
0x017E _SMB6_dp
1641
0x017F _SMB7_dp
1642
0x0180 _PHP
1643
0x0181 _CLC
1644
0x0182 _PLP
1645
0x0183 _SEC
1646
0x0184 _PHA
1647
0x0185 _CLI
1648
0x0186 _PLA
1649
0x0187 _SEI
1650
0x0188 _DEY
1651
0x0189 _TYA
1652
0x018A _TAY
1653
0x018B _CLV
1654
0x018C _INY
1655
0x018D _CLD
1656
0x018E _INX
1657
0x018F _SED
1658
0x0190 _ORA_imm
1659
0x0191 _ORA_absY
1660
0x0192 _AND_imm
1661
0x0193 _AND_absY
1662
0x0194 _EOR_imm
1663
0x0195 _EOR_absY
1664
0x0196 _ADC_imm
1665
0x0197 _ADC_absY
1666
0x0198 _BIT_imm
1667
0x0199 _STA_absY
1668
0x019A _LDA_imm
1669
0x019B _LDA_absY
1670
0x019C _CMP_imm
1671
0x019D _CMP_absY
1672
0x019E _SBC_imm
1673
0x019F _SBC_absY
1674
0x01A0 _ASL_A
1675
0x01A1 _INC_A
1676
0x01A2 _ROL_A
1677
0x01A3 _DEC_A
1678
0x01A4 _LSR_A
1679
0x01A5 _PHY
1680
0x01A6 _ROR_A
1681
0x01A7 _PLY
1682
0x01A8 _TXA
1683
0x01A9 _TXS
1684
0x01AA _TAX
1685
0x01AB _TSX
1686
0x01AC _DEX
1687
0x01AD _PHX
1688
0x01AE _NOP
1689
0x01AF _PLX
1690
0x01B0 _NOP_0B
1691
0x01B1 _NOP_1B
1692
0x01B2 _NOP_2B
1693
0x01B3 _NOP_3B
1694
0x01B4 _NOP_4B
1695
0x01B5 _NOP_5B
1696
0x01B6 _NOP_6B
1697
0x01B7 _NOP_7B
1698
0x01B8 _NOP_8B
1699
0x01B9 _NOP_9B
1700
0x01BA _NOP_AB
1701
0x01BB _NOP_BB
1702
0x01BC _WAI_CB
1703
0x01BD _STP_DB
1704
0x01BE _NOP_EB
1705
0x01BF _NOP_FB
1706
0x01C0 _TSB_abs
1707
0x01C1 _TRB_abs
1708
0x01C2 _BIT_abs
1709
0x01C3 _BIT_absX
1710
0x01C4 _JMP_abs
1711
0x01C5 _NOP_5C
1712
0x01C6 _JMP_absi
1713
0x01C7 _JMP_absXi
1714
0x01C8 _STY_abs
1715
0x01C9 _STZ_abs
1716
0x01CA _LDY_abs
1717
0x01CB _LDY_absX
1718
0x01CC _CPY_abs
1719
0x01CD _NOP_DC
1720
0x01CE _CPX_abs
1721
0x01CF _NOP_FC
1722
0x01D0 _ORA_abs
1723
0x01D1 _ORA_absX
1724
0x01D2 _AND_abs
1725
0x01D3 _AND_absX
1726
0x01D4 _EOR_abs
1727
0x01D5 _EOR_absX
1728
0x01D6 _ADC_abs
1729
0x01D7 _ADC_absX
1730
0x01D8 _STA_abs
1731
0x01D9 _STA_absX
1732
0x01DA _LDA_abs
1733
0x01DB _LDA_absX
1734
0x01DC _CMP_abs
1735
0x01DD _CMP_absX
1736
0x01DE _SBC_abs
1737
0x01DF _SBC_absX
1738
0x01E0 _ASL_abs
1739
0x01E1 _ASL_absX
1740
0x01E2 _ROL_abs
1741
0x01E3 _ROL_absX
1742
0x01E4 _LSR_abs
1743
0x01E5 _LSR_absX
1744
0x01E6 _ROR_abs
1745
0x01E7 _ROR_absX
1746
0x01E8 _STX_abs
1747
0x01E9 _STZ_absX
1748
0x01EA _LDX_abs
1749
0x01EB _LDX_absY
1750
0x01EC _DEC_abs
1751
0x01ED _DEC_absX
1752
0x01EE _INC_abs
1753
0x01EF _INC_absX
1754
0x01F0 _BBR0_dp_rel
1755
0x01F1 _BBR1_dp_rel
1756
0x01F2 _BBR2_dp_rel
1757
0x01F3 _BBR3_dp_rel
1758
0x01F4 _BBR4_dp_rel
1759
0x01F5 _BBR5_dp_rel
1760
0x01F6 _BBR6_dp_rel
1761
0x01F7 _BBR7_dp_rel
1762
0x01F8 _BBS0_dp_rel
1763
0x01F9 _BBS1_dp_rel
1764
0x01FA _BBS2_dp_rel
1765
0x01FB _BBS3_dp_rel
1766
0x01FC _BBS4_dp_rel
1767
0x01FD _BBS5_dp_rel
1768
0x01FE _BBS6_dp_rel
1769
0x01FF _BBS7_dp_rel
1770
0x0200 _Last
1771
0x0200 _end
1772
 
1773
File  Prog
1774
Line  Line   Opcode                                Line
1775
0613 0x0000 _Start: .org 0
1776
0614 0x0000  600D0000 BRV2 _Rst,1,1 -- Load {OP2, OP1} with Vector
1777
0615 0x0001 _Rst:
1778
0616 0x0001  200C0280 FTCH $,1,0,,, RD, OP1 -- Read Indirect Dst Ptr Lo
1779
0617 0x0002  20143A40 FTCH $,1,0, Nxt, Jmp, RD, OP2 -- Read Indirect Dst Ptr Hi
1780
0618  --
1781
0619 0x0003  501D07C0 BRV1 $,1,1,, Pls, IF, IR -- Instruction Fetch
1782
0621  -- this space reserved for future use - boot loader for the microprogram ROMs
1783
0623  --------------------------------------------------------------------------------
1784
0624  --------------------------------------------------------------------------------
1785
0625  -- 2-Way Jump Table: _Nxt and _Int
1786
0626  --------------------------------------------------------------------------------
1787
0627  --------------------------------------------------------------------------------
1788
0628  -- Instruction Fetch and Execute Microstate
1789
0629  --------------------------------------------------------------------------------
1790
0000 0x0004  00000000 added by program
1791
0000 0x0005  00000000 added by program
1792
0000 0x0006  00000000 added by program
1793
0000 0x0007  00000000 added by program
1794
0000 0x0008  00000000 added by program
1795
0000 0x0009  00000000 added by program
1796
0000 0x000A  00000000 added by program
1797
0000 0x000B  00000000 added by program
1798
0000 0x000C  00000000 added by program
1799
0000 0x000D  00000000 added by program
1800
0000 0x000E  00000000 added by program
1801
0000 0x000F  00000000 added by program
1802
0000 0x0010  00000000 added by program
1803
0000 0x0011  00000000 added by program
1804
0000 0x0012  00000000 added by program
1805
0000 0x0013  00000000 added by program
1806
0000 0x0014  00000000 added by program
1807
0000 0x0015  00000000 added by program
1808
0000 0x0016  00000000 added by program
1809
0000 0x0017  00000000 added by program
1810
0000 0x0018  00000000 added by program
1811
0000 0x0019  00000000 added by program
1812
0000 0x001A  00000000 added by program
1813
0000 0x001B  00000000 added by program
1814
0000 0x001C  00000000 added by program
1815
0000 0x001D  00000000 added by program
1816
0000 0x001E  00000000 added by program
1817
0000 0x001F  00000000 added by program
1818
0630 0x0020 _Nxt: .org 32
1819
0631 0x0020 _Psh:
1820
0632 0x0020 _Pop:
1821
0633 0x0020 _Rel:
1822
0634 0x0020 _Imm:
1823
0635 0x0020  510507C8 BRV1 _Nxt,1,1,, Pls, IF, IR,, WE_R -- Instruction Fetch/Execute
1824
0637  --------------------------------------------------------------------------------
1825
0638  -- Interrupt Entry - NMI, (unmasked) IRQ (falls through to _BRK)
1826
0639  --------------------------------------------------------------------------------
1827
0641 0x0021 _Int:
1828
0642 0x0021  61154168 BRV2 _Brk,1,1, Stk,, WR, PCH, Psh, WE_R -- Push PCH, capture Vector
1829
0644  --------------------------------------------------------------------------------
1830
0645  -- BRK Entry - BRK #imm (_Int falls through to _Brk, see comment above)
1831
0646  --------------------------------------------------------------------------------
1832
0648 0x0022 _Brk:
1833
0649 0x0022  211441A0 FTCH $,1,0, Stk,, WR, PCL, Psh -- Push PCL
1834
0650 0x0023  211C49E1 FTCH $,1,0, Stk, Jmp, WR, PSW, Psh,, ISR -- Push P; Clr D, Set I
1835
0651  --
1836
0652 0x0024  21248280 FTCH $,1,0, LDA,, RD, OP1 -- Read Indirect Dst Ptr Lo
1837
0653 0x0025  212C3A40 FTCH $,1,0, Nxt, Jmp, RD, OP2 -- Read Indirect Dst Ptr Hi
1838
0654  --
1839
0655 0x0026  513507C0 BRV1 $,1,1,, Pls, IF, IR -- Instruction Fetch
1840
0657  --------------------------------------------------------------------------------
1841
0658  -- Jump To Subroutine - JSR Abs (Not interruptable)
1842
0659  --------------------------------------------------------------------------------
1843
0661 0x0027 _JSR:
1844
0662 0x0027  213C0340 FTCH $,1,0,,, IF, OP2 -- Load Indirect Dst Ptr Lo
1845
0663 0x0028  21444160 FTCH $,1,0, Stk,, WR, PCH, Psh -- Push PC Hi
1846
0664 0x0029  410449A0 BRV0 _Nxt,1,0, Stk, Jmp, WR, PCL, Psh -- Push PC Lo
1847
0666  --------------------------------------------------------------------------------
1848
0667  -- Return from Interrupt - RTI (Not interruptable)
1849
0668  --------------------------------------------------------------------------------
1850
0670 0x002A _RTI:
1851
0671 0x002A  215442BC FTCH $,1,0, Stk,, RD, OP1, Pop, WE_P -- Pop PCL
1852
0672 0x002B  215C4A70 FTCH $,1,0, Stk, Jmp, RD, OP2, Pop -- Pop PCH
1853
0673  --
1854
0674 0x002C  516507C0 BRV1 $,1,1,, Pls, IF, IR -- Next, no Reg_WE, P okay
1855
0676  --------------------------------------------------------------------------------
1856
0677  -- Return From Subroutine - RTS (Not interruptable)
1857
0678  --------------------------------------------------------------------------------
1858
0680 0x002D _RTS:
1859
0681 0x002D  41044A70 BRV0 _Nxt,1,0, Stk, Jmp, RD, OP2, Pop -- Pop PCH
1860
0683  --------------------------------------------------------------------------------
1861
0684  -- Jump Absolute - JMP Abs (Not interruptable)
1862
0685  --------------------------------------------------------------------------------
1863
0687 0x002E _Jmp:
1864
0688 0x002E  41040B40 BRV0 _Nxt,1,0,, Jmp, IF, OP2
1865
0690  --------------------------------------------------------------------------------
1866
0691  -- Jump Indirect - JMP (Abs) (Not interruptable)
1867
0692  --------------------------------------------------------------------------------
1868
0694 0x002F _JmpI:
1869
0695 0x002F  217C0740 FTCH $,1,0,, Pls, IF, OP2 -- Load Indirect Dst Ptr Lo
1870
0696 0x0030  21848280 FTCH $,1,0, LDA,, RD, OP1 -- Read Indirect Dst Ptr Hi
1871
0697 0x0031  41043A40 BRV0 _Nxt,1,0, Nxt, Jmp, RD, OP2 -- Goto Next
1872
0699  --------------------------------------------------------------------------------
1873
0700  -- Jump Pre-Indexed Indirect - JMP (Abs, X) (Not interruptable)
1874
0701  --------------------------------------------------------------------------------
1875
0703 0x0032 _JmpXI:
1876
0704 0x0032  21940740 FTCH $,1,0,, Pls, IF, OP2 -- Load Indirect Dst Ptr Lo
1877
0705 0x0033  219CE280 FTCH $,1,0, LDAX,, RD, OP1 -- Read Indirect Dst Ptr Hi
1878
0706 0x0034  41043A40 BRV0 _Nxt,1,0, Nxt, Jmp, RD, OP2 -- Goto Next
1879
0708  --------------------------------------------------------------------------------
1880
0709  -- Memory Read-Only Data Page Direct - xxx DP
1881
0710  --------------------------------------------------------------------------------
1882
0712 0x0035 _RO_DP:
1883
0713 0x0035  31045280 BMW _Nxt,1,0, DPN,, RD, OP1 -- Read DP Mem
1884
0715  -----------------------------------------------------------------------------
1885
0716  -- Memory Read-Only Pre-Indexed Data Page Direct - xxx DP, X
1886
0717  --------------------------------------------------------------------------------
1887
0719 0x0036 _RO_DPX:
1888
0720 0x0036  31046280 BMW _Nxt,1,0, DPX,, RD, OP1 -- Read DP Mem
1889
0722  --------------------------------------------------------------------------------
1890
0723  -- Memory Read-Only Post-Indexed Data Page Direct - xxx DP, Y
1891
0724  --------------------------------------------------------------------------------
1892
0726 0x0037 _RO_DPY:
1893
0727 0x0037  31047280 BMW _Nxt,1,0, DPY,, RD, OP1 -- Read DP Mem
1894
0729  ------------------------------------------------------------------------------
1895
0730  -- Memory Read-Only Data Page Indirect - xxx (DP)
1896
0731  --------------------------------------------------------------------------------
1897
0733 0x0038 _RO_DPI:
1898
0734 0x0038  21C45280 FTCH $,1,0, DPN,, RD, OP1 -- Read DP Mem Ptr Lo
1899
0735 0x0039  21CC3240 FTCH $,1,0, Nxt,, RD, OP2 -- Read DP Mem Ptr Hi
1900
0736 0x003A  31048280 BMW _Nxt,1,0, LDA,, RD, OP1 -- Read Operand
1901
0738  --------------------------------------------------------------------------------
1902
0739  -- Memory Read-Only Pre-Indexed Data Page Indirect - xxx (DP, X)
1903
0740  --------------------------------------------------------------------------------
1904
0742 0x003B _RO_DPXI:
1905
0743 0x003B  21DC6280 FTCH $,1,0, DPX,, RD, OP1 -- Read DP Mem Ptr Lo (DP,X)
1906
0744 0x003C  21E43240 FTCH $,1,0, Nxt,, RD, OP2 -- Read DP Mem Ptr Hi
1907
0745 0x003D  31048280 BMW _Nxt,1,0, LDA,, RD, OP1 -- Read Operand
1908
0747  --------------------------------------------------------------------------------
1909
0748  -- Memory Read-Only Post-Indexed Data Page Indirect - xxx (DP), Y
1910
0749  --------------------------------------------------------------------------------
1911
0751 0x003E _RO_DPIY:
1912
0752 0x003E  21F45280 FTCH $,1,0, DPN,, RD, OP1 -- Read DP Mem Ptr Lo
1913
0753 0x003F  21FC3240 FTCH $,1,0, Nxt,, RD, OP2 -- Read DP Mem Ptr Hi
1914
0754 0x0040  3104F280 BMW _Nxt,1,0, LDAY,, RD, OP1 -- Read Operand (DP),Y
1915
0756  --------------------------------------------------------------------------------
1916
0757  -- Memory Read-Only Absolute - xxx Abs
1917
0758  --------------------------------------------------------------------------------
1918
0760 0x0041 _RO_Abs:
1919
0761 0x0041  220C0740 FTCH $,1,0,, Pls, IF, OP2 -- Read Mem Ptr Hi
1920
0762 0x0042  31048280 BMW _Nxt,1,0, LDA,, RD, OP1 -- Read Operand
1921
0764  --------------------------------------------------------------------------------
1922
0765  -- Memory Read-Only Pre-Indexed Absolute - xxx Abs, X
1923
0766  --------------------------------------------------------------------------------
1924
0768 0x0043 _RO_AbsX:
1925
0769 0x0043  221C0740 FTCH $,1,0,, Pls, IF, OP2 -- Read Mem Ptr Hi
1926
0770 0x0044  3104E280 BMW _Nxt,1,0, LDAX,, RD, OP1 -- Read Operand Abs,X
1927
0772  --------------------------------------------------------------------------------
1928
0773  -- Memory Read-Only Post-Indexed Absolute - xxx Abs, Y
1929
0774  --------------------------------------------------------------------------------
1930
0776 0x0045 _RO_AbsY:
1931
0777 0x0045  222C0740 FTCH $,1,0,, Pls, IF, OP2 -- Read Mem Ptr Hi
1932
0778 0x0046  3104F280 BMW _Nxt,1,0, LDAY,, RD, OP1 -- Read Operand Abs,Y
1933
0780  --------------------------------------------------------------------------------
1934
0781  -- Memory Write-Only Data Page Direct - xxx DP
1935
0782  --------------------------------------------------------------------------------
1936
0784 0x0047 _WO_DP:
1937
0785 0x0047  31045100 BMW _Nxt,1,0, DPN,, WR -- Write to DP
1938
0787  -----------------------------------------------------------------------------
1939
0788  -- Memory Write-Only Pre-Indexed Data Page Direct - xxx DP, X
1940
0789  --------------------------------------------------------------------------------
1941
0791 0x0048 _WO_DPX:
1942
0792 0x0048  31046100 BMW _Nxt,1,0, DPX,, WR -- Write to DP,X
1943
0794  -----------------------------------------------------------------------------
1944
0795  -- Memory Write-Only Post-Indexed Data Page Direct - xxx DP, Y
1945
0796  --------------------------------------------------------------------------------
1946
0798 0x0049 _WO_DPY:
1947
0799 0x0049  31047100 BMW _Nxt,1,0, DPY,, WR -- Write to DP,Y
1948
0801  --------------------------------------------------------------------------------
1949
0802  -- Memory Write-Only Data Page Indirect - xxx (DP)
1950
0803  --------------------------------------------------------------------------------
1951
0805 0x004A _WO_DPI:
1952
0806 0x004A  22545280 FTCH $,1,0, DPN,, RD, OP1 -- Read DP Mem Ptr Lo
1953
0807 0x004B  225C3240 FTCH $,1,0, Nxt,, RD, OP2 -- Read DP Mem Ptr Hi
1954
0808 0x004C  31048100 BMW _Nxt,1,0, LDA,, WR -- Write to (DP)
1955
0810  --------------------------------------------------------------------------------
1956
0811  -- Memory Write-Only Data Page Indirect - xxx (DP, X)
1957
0812  --------------------------------------------------------------------------------
1958
0814 0x004D _WO_DPXI:
1959
0815 0x004D  226C6280 FTCH $,1,0, DPX,, RD, OP1 -- Read DP Mem Ptr Lo
1960
0816 0x004E  22743240 FTCH $,1,0, Nxt,, RD, OP2 -- Read DP Mem Ptr Hi
1961
0817 0x004F  31048100 BMW _Nxt,1,0, LDA,, WR -- Write to (DP)
1962
0819  --------------------------------------------------------------------------------
1963
0820  -- Memory Write-Only Post-Indexed Data Page Indirect - xxx (DP), Y
1964
0821  --------------------------------------------------------------------------------
1965
0823 0x0050 _WO_DPIY:
1966
0824 0x0050  22845280 FTCH $,1,0, DPN,, RD, OP1 -- Read DP Mem Ptr Lo
1967
0825 0x0051  228C3240 FTCH $,1,0, Nxt,, RD, OP2 -- Read DP Mem Ptr Hi
1968
0826 0x0052  3104F100 BMW _Nxt,1,0, LDAY,, WR -- Write to (DP)
1969
0828  --------------------------------------------------------------------------------
1970
0829  -- Memory Write-Only Absolute - xxx Abs
1971
0830  --------------------------------------------------------------------------------
1972
0832 0x0053 _WO_Abs:
1973
0833 0x0053  229C0740 FTCH $,1,0,, Pls, IF, OP2 -- Read Mem Ptr Hi
1974
0834 0x0054  31048100 BMW _Nxt,1,0, LDA,, WR -- Write to Abs
1975
0836  --------------------------------------------------------------------------------
1976
0837  -- Memory Write-Only Pre-Indexed Absolute - xxx Abs, X
1977
0838  --------------------------------------------------------------------------------
1978
0840 0x0055 _WO_AbsX:
1979
0841 0x0055  22AC0740 FTCH $,1,0,, Pls, IF, OP2 -- Read Mem Ptr Hi
1980
0842 0x0056  3104E100 BMW _Nxt,1,0, LDAX,, WR -- Write to Abs,X
1981
0844  --------------------------------------------------------------------------------
1982
0845  -- Memory Write-Only Post-Indexed Absolute - xxx Abs, Y
1983
0846  --------------------------------------------------------------------------------
1984
0848 0x0057 _WO_AbsY:
1985
0849 0x0057  22BC0740 FTCH $,1,0,, Pls, IF, OP2 -- Read Mem Ptr Hi
1986
0850 0x0058  3104F100 BMW _Nxt,1,0, LDAY,, WR -- Write to Abs,Y
1987
0852  --------------------------------------------------------------------------------
1988
0853  -- 2-way Read-Modify-Write Instruction/Interrupt Jump Table
1989
0854  --------------------------------------------------------------------------------
1990
0000 0x0059  00000000 added by program
1991
0000 0x005A  00000000 added by program
1992
0000 0x005B  00000000 added by program
1993
0000 0x005C  00000000 added by program
1994
0000 0x005D  00000000 added by program
1995
0000 0x005E  00000000 added by program
1996
0000 0x005F  00000000 added by program
1997
0856 0x0060 _RMW: .org 96
1998
0857 0x0060  530507C0 BRV1 _RMW,1,1,, Pls, IF, IR -- Instruction Fetch/Execute
1999
0858 0x0061  61154160 BRV2 _Brk,1,1, Stk, , WR, PCH, Psh -- Push PCH, capture Vector
2000
0860  --------------------------------------------------------------------------------
2001
0861  -- Memory Read-Modify-Write Data Page Direct - xxx DP
2002
0862  --------------------------------------------------------------------------------
2003
0864 0x0062 _RMW_DP:
2004
0865 0x0062  23145280 FTCH $,1,0, DPN,, RD, OP1 -- Read from DP
2005
0866 0x0063  33042108 BMW _RMW,1,0, MAR,, WR,,,WE_R -- Write to DP
2006
0868  --------------------------------------------------------------------------------
2007
0869  -- Memory Read-Modify-Write Pre-Indexed Data Page Direct - xxx DP, X
2008
0870  --------------------------------------------------------------------------------
2009
0872 0x0064 _RMW_DPX:
2010
0873 0x0064  23246280 FTCH $,1,0, DPX,, RD, OP1 -- Read from DP,X
2011
0874 0x0065  33042108 BMW _RMW,1,0, MAR,, WR,,,WE_R -- Write to DP,X
2012
0876  --------------------------------------------------------------------------------
2013
0877  -- Memory Read-Modify-Write Post-Indexed Data Page Direct - xxx DP, Y
2014
0878  --------------------------------------------------------------------------------
2015
0880 0x0066 _RMW_DPY:
2016
0881 0x0066  23347280 FTCH $,1,0, DPY,, RD, OP1 -- Read from DP,Y
2017
0882 0x0067  33042108 BMW _RMW,1,0, MAR,, WR,,,WE_R -- Write to DP,Y
2018
0884  --------------------------------------------------------------------------------
2019
0885  -- Memory Read-Modify-Write Absolute - xxx Abs
2020
0886  --------------------------------------------------------------------------------
2021
0888 0x0068 _RMW_Abs:
2022
0889 0x0068  23440740 FTCH $,1,0,, Pls, IF, OP2 -- Read Mem Ptr Hi
2023
0890 0x0069  234C8280 FTCH $,1,0, LDA,, RD, OP1 -- Read from Abs
2024
0891 0x006A  33042108 BMW _RMW,1,0, MAR,, WR,,,WE_R -- Write to Abs
2025
0893  --------------------------------------------------------------------------------
2026
0894  -- Memory Read-Modify-Write Pre-Indexed Absolute - xxx Abs, X
2027
0895  --------------------------------------------------------------------------------
2028
0897 0x006B _RMW_AbsX:
2029
0898 0x006B  235C0740 FTCH $,1,0,, Pls, IF, OP2 -- Read Mem Ptr Hi
2030
0899 0x006C  2364E280 FTCH $,1,0, LDAX,, RD, OP1 -- Read from Abs,X
2031
0900 0x006D  33042108 BMW _RMW,1,0, MAR,, WR,,,WE_R -- Write to Abs,X
2032
0902  --------------------------------------------------------------------------------
2033
0903  -- Memory Read-Modify-Write Post-Indexed Absolute - xxx Abs, Y
2034
0904  --------------------------------------------------------------------------------
2035
0906 0x006E _RMW_AbsY:
2036
0907 0x006E  23740740 FTCH $,1,0,, Pls, IF, OP2 -- Read Mem Ptr Hi
2037
0908 0x006F  237CF280 FTCH $,1,0, LDAY,, RD, OP1 -- Read from Abs,Y
2038
0909 0x0070  33042108 BMW _RMW,1,0, MAR,, WR,,,WE_R -- Write to Abs,Y
2039
0911  --------------------------------------------------------------------------------
2040
0912  -- Rockwell BBRx/BBSx dp,rel instructions
2041
0913  --------------------------------------------------------------------------------
2042
0915 0x0071 _BByx_dp_rel:
2043
0916 0x0071  238C5280 FTCH $,1,0, DPN,, RD, OP1 -- Read from DP
2044
0917 0x0072  41040F80 BRV0 _Nxt,1,0,, Rel, IF, OP1 -- Read rel value
2045
0919  --------------------------------------------------------------------------------
2046
0920  -- End of Microprogram Routines for Normal Instructions
2047
0921  --------------------------------------------------------------------------------
2048
0923 0x0073 _End_uPgm:
2049
0925  --------------------------------------------------------------------------------
2050
0926  -- WAI - Wait for Interrupt
2051
0927  --------------------------------------------------------------------------------
2052
0000 0x0073  00000000 added by program
2053
0000 0x0074  00000000 added by program
2054
0000 0x0075  00000000 added by program
2055
0000 0x0076  00000000 added by program
2056
0000 0x0077  00000000 added by program
2057
0000 0x0078  00000000 added by program
2058
0000 0x0079  00000000 added by program
2059
0000 0x007A  00000000 added by program
2060
0000 0x007B  00000000 added by program
2061
0000 0x007C  00000000 added by program
2062
0000 0x007D  00000000 added by program
2063
0000 0x007E  00000000 added by program
2064
0000 0x007F  00000000 added by program
2065
0000 0x0080  00000000 added by program
2066
0000 0x0081  00000000 added by program
2067
0000 0x0082  00000000 added by program
2068
0000 0x0083  00000000 added by program
2069
0000 0x0084  00000000 added by program
2070
0000 0x0085  00000000 added by program
2071
0000 0x0086  00000000 added by program
2072
0000 0x0087  00000000 added by program
2073
0000 0x0088  00000000 added by program
2074
0000 0x0089  00000000 added by program
2075
0000 0x008A  00000000 added by program
2076
0000 0x008B  00000000 added by program
2077
0000 0x008C  00000000 added by program
2078
0000 0x008D  00000000 added by program
2079
0000 0x008E  00000000 added by program
2080
0000 0x008F  00000000 added by program
2081
0000 0x0090  00000000 added by program
2082
0000 0x0091  00000000 added by program
2083
0000 0x0092  00000000 added by program
2084
0000 0x0093  00000000 added by program
2085
0000 0x0094  00000000 added by program
2086
0000 0x0095  00000000 added by program
2087
0000 0x0096  00000000 added by program
2088
0000 0x0097  00000000 added by program
2089
0000 0x0098  00000000 added by program
2090
0000 0x0099  00000000 added by program
2091
0000 0x009A  00000000 added by program
2092
0000 0x009B  00000000 added by program
2093
0000 0x009C  00000000 added by program
2094
0000 0x009D  00000000 added by program
2095
0000 0x009E  00000000 added by program
2096
0000 0x009F  00000000 added by program
2097
0000 0x00A0  00000000 added by program
2098
0000 0x00A1  00000000 added by program
2099
0000 0x00A2  00000000 added by program
2100
0000 0x00A3  00000000 added by program
2101
0000 0x00A4  00000000 added by program
2102
0000 0x00A5  00000000 added by program
2103
0000 0x00A6  00000000 added by program
2104
0000 0x00A7  00000000 added by program
2105
0000 0x00A8  00000000 added by program
2106
0000 0x00A9  00000000 added by program
2107
0000 0x00AA  00000000 added by program
2108
0000 0x00AB  00000000 added by program
2109
0000 0x00AC  00000000 added by program
2110
0000 0x00AD  00000000 added by program
2111
0000 0x00AE  00000000 added by program
2112
0000 0x00AF  00000000 added by program
2113
0000 0x00B0  00000000 added by program
2114
0000 0x00B1  00000000 added by program
2115
0000 0x00B2  00000000 added by program
2116
0000 0x00B3  00000000 added by program
2117
0000 0x00B4  00000000 added by program
2118
0000 0x00B5  00000000 added by program
2119
0000 0x00B6  00000000 added by program
2120
0000 0x00B7  00000000 added by program
2121
0000 0x00B8  00000000 added by program
2122
0000 0x00B9  00000000 added by program
2123
0000 0x00BA  00000000 added by program
2124
0000 0x00BB  00000000 added by program
2125
0000 0x00BC  00000000 added by program
2126
0000 0x00BD  00000000 added by program
2127
0000 0x00BE  00000000 added by program
2128
0000 0x00BF  00000000 added by program
2129
0000 0x00C0  00000000 added by program
2130
0000 0x00C1  00000000 added by program
2131
0000 0x00C2  00000000 added by program
2132
0000 0x00C3  00000000 added by program
2133
0000 0x00C4  00000000 added by program
2134
0000 0x00C5  00000000 added by program
2135
0000 0x00C6  00000000 added by program
2136
0000 0x00C7  00000000 added by program
2137
0000 0x00C8  00000000 added by program
2138
0000 0x00C9  00000000 added by program
2139
0000 0x00CA  00000000 added by program
2140
0000 0x00CB  00000000 added by program
2141
0000 0x00CC  00000000 added by program
2142
0000 0x00CD  00000000 added by program
2143
0000 0x00CE  00000000 added by program
2144
0000 0x00CF  00000000 added by program
2145
0000 0x00D0  00000000 added by program
2146
0000 0x00D1  00000000 added by program
2147
0000 0x00D2  00000000 added by program
2148
0000 0x00D3  00000000 added by program
2149
0000 0x00D4  00000000 added by program
2150
0000 0x00D5  00000000 added by program
2151
0000 0x00D6  00000000 added by program
2152
0000 0x00D7  00000000 added by program
2153
0000 0x00D8  00000000 added by program
2154
0000 0x00D9  00000000 added by program
2155
0000 0x00DA  00000000 added by program
2156
0000 0x00DB  00000000 added by program
2157
0000 0x00DC  00000000 added by program
2158
0000 0x00DD  00000000 added by program
2159
0000 0x00DE  00000000 added by program
2160
0000 0x00DF  00000000 added by program
2161
0000 0x00E0  00000000 added by program
2162
0000 0x00E1  00000000 added by program
2163
0000 0x00E2  00000000 added by program
2164
0000 0x00E3  00000000 added by program
2165
0000 0x00E4  00000000 added by program
2166
0000 0x00E5  00000000 added by program
2167
0000 0x00E6  00000000 added by program
2168
0000 0x00E7  00000000 added by program
2169
0000 0x00E8  00000000 added by program
2170
0000 0x00E9  00000000 added by program
2171
0000 0x00EA  00000000 added by program
2172
0000 0x00EB  00000000 added by program
2173
0000 0x00EC  00000000 added by program
2174
0000 0x00ED  00000000 added by program
2175
0000 0x00EE  00000000 added by program
2176
0000 0x00EF  00000000 added by program
2177
0000 0x00F0  00000000 added by program
2178
0000 0x00F1  00000000 added by program
2179
0000 0x00F2  00000000 added by program
2180
0000 0x00F3  00000000 added by program
2181
0000 0x00F4  00000000 added by program
2182
0000 0x00F5  00000000 added by program
2183
0000 0x00F6  00000000 added by program
2184
0000 0x00F7  00000000 added by program
2185
0000 0x00F8  00000000 added by program
2186
0000 0x00F9  00000000 added by program
2187
0000 0x00FA  00000000 added by program
2188
0000 0x00FB  00000000 added by program
2189
0929 0x00FC _WAI: .org 252 -- Set up 4-way table for WAI instruction
2190
0930 0x00FC  37E40000 BMW _WAI,1,0 -- No external interrupts asserted
2191
0931 0x00FD  410C0000 BRV0 _Int,1,0 -- Int asserted by NMI, do NMI interrupt
2192
0932 0x00FE  41040000 BRV0 _Nxt,1,0 -- xIRQ asserted with IRQ_Msk asserted, continue
2193
0933 0x00FF  410C0000 BRV0 _Int,1,0 -- Int asserted by xIRQ, do IRQ interrupt
2194
0935 0x0100 _IDEC_Start: .org 256
2195
0937  --------------------------------------------------------------------------------
2196
0938  -- Start of Instruction Decode Table (Entry for each Opcode)
2197
0939  --
2198
0940  -- Instead of being organized in numerical order, the table is organized by
2199
0941  -- rows: the least significant nibble and the most significant nibble of the
2200
0942  -- opcode are swapped. This organization more clearly shows the arrangement of
2201
0943  -- the addressing modes of the WDC W65C02 microprocessor being emulated. It al-
2202
0944  -- so more clearly shows the regularity of the ALU instructions that are imple-
2203
0945  -- mented. The implementation of the microprogram is first based on the addres-
2204
0946  -- sing mode, and then on the ALU function. Single cycle instructions will be
2205
0947  -- easily recognized in the following table because their table entry use the
2206
0948  -- BRV3 MPC instruction. Multi-cycle instructions use the BRV0 MPC instruction
2207
0949  -- to vector a microroutine in the lower 256 words of the microprogram ROM/RAM.
2208
0950  -- Single byte instructions such as BRK, RTS, RTI, and register push/pull in-
2209
0951  -- structions (PHA, PLA, PHP, PLP, PHX, PLX, PHY, PLY), and multi-byte instruc-
2210
0952  -- tions like JSR abs are implemented with special microroutines that perform
2211
0953  -- the necessary stack accesses. The remainder of the microroutines are orga-
2212
0954  -- nized by addressing mode, and whether the mode is used in a RO, WO, or RMW
2213
0955  -- manner.
2214
0956  --
2215
0957  -- Microprogram Word Format:
2216
0958  --
2217
0959  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
2218
0960  --
2219
0961  --------------------------------------------------------------------------------
2220
0963  --------------------------------------------------------------------------------
2221
0964  -- Row 0 : 0x00-0xF0 (All branches/JMPs/JSR implemented as uninterruptable)
2222
0965  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
2223
0966  --------------------------------------------------------------------------------
2224
0967 0x0100 _BRK_imm:
2225
0968 0x0100  6115416C BRV2 _Brk,1,1, Stk,, WR, PCH, Psh, WE_P -- Start Break Handler
2226
0969 0x0101 _BPL_rel:
2227
0970 0x0101  41040F80 BRV0 _Rel,1,0,, Rel, IF, OP1 -- Read rel Value
2228
0971 0x0102 _JSR_abs:
2229
0972 0x0102  413C0780 BRV0 _JSR,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2230
0973 0x0103 _BMI_rel:
2231
0974 0x0103  41040F80 BRV0 _Rel,1,0,, Rel, IF, OP1 -- Read rel Value
2232
0975 0x0104 _RTI_imp:
2233
0976 0x0104  415442B0 BRV0 _RTI,1,0, Stk,, RD, OP1, Pop -- Read PSW from Stack
2234
0977 0x0105 _BVC_rel:
2235
0978 0x0105  41040F80 BRV0 _Rel,1,0,, Rel, IF, OP1 -- Read rel Value
2236
0979 0x0106 _RTS_imp:
2237
0980 0x0106  416C42B0 BRV0 _RTS,1,0, Stk,, RD, OP1, Pop -- Read PCL from Stack
2238
0981 0x0107 _BVS_rel:
2239
0982 0x0107  41040F80 BRV0 _Rel,1,0,, Rel, IF, OP1 -- Read rel Value
2240
0983 0x0108 _BRA_rel:
2241
0984 0x0108  41040F80 BRV0 _Rel,1,0,, Rel, IF, OP1 -- Read rel Value
2242
0985 0x0109 _BCC_rel
2243
0986 0x0109  41040F80 BRV0 _Rel,1,0,, Rel, IF, OP1 -- Read rel Value
2244
0987 0x010A _LDY_imm:
2245
0988 0x010A  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read #imm Value
2246
0989 0x010B _BCS_rel:
2247
0990 0x010B  41040F80 BRV0 _Rel,1,0,, Rel, IF, OP1 -- Read rel Value
2248
0991 0x010C _CPY_imm:
2249
0992 0x010C  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read #imm Value
2250
0993 0x010D _BNE_rel:
2251
0994 0x010D  41040F80 BRV0 _Rel,1,0,, Rel, IF, OP1 -- Read rel Value
2252
0995 0x010E _CPX_imm:
2253
0996 0x010E  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read #imm Value
2254
0997 0x010F _BEQ_rel:
2255
0998 0x010F  41040F80 BRV0 _Rel,1,0,, Rel, IF, OP1 -- Read rel Value
2256
0999  --------------------------------------------------------------------------------
2257
1000  -- Row 1 : 0x01-0xF1
2258
1001  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
2259
1002  --------------------------------------------------------------------------------
2260
1003 0x0110 _ORA_dpXi:
2261
1004 0x0110  41DC0780 BRV0 _RO_DPXI,1,0,, Pls, IF, OP1 -- Read DP Ptr
2262
1005 0x0111 _ORA_dpiY:
2263
1006 0x0111  41F40780 BRV0 _RO_DPIY,1,0,, Pls, IF, OP1 -- Read DP Ptr
2264
1007 0x0112 _AND_dpXi:
2265
1008 0x0112  41DC0780 BRV0 _RO_DPXI,1,0,, Pls, IF, OP1 -- Read DP Ptr
2266
1009 0x0113 _AND_dpiY:
2267
1010 0x0113  41F40780 BRV0 _RO_DPIY,1,0,, Pls, IF, OP1 -- Read DP Ptr
2268
1011 0x0114 _EOR_dpXi:
2269
1012 0x0114  41DC0780 BRV0 _RO_DPXI,1,0,, Pls, IF, OP1 -- Read DP Ptr
2270
1013 0x0115 _EOR_dpiY:
2271
1014 0x0115  41F40780 BRV0 _RO_DPIY,1,0,, Pls, IF, OP1 -- Read DP Ptr
2272
1015 0x0116 _ADC_dpXi:
2273
1016 0x0116  41DC0780 BRV0 _RO_DPXI,1,0,, Pls, IF, OP1 -- Read DP Ptr
2274
1017 0x0117 _ADC_dpiY:
2275
1018 0x0117  41F40780 BRV0 _RO_DPIY,1,0,, Pls, IF, OP1 -- Read DP Ptr
2276
1019 0x0118 _STA_dpXi:
2277
1020 0x0118  426C0780 BRV0 _WO_DPXI,1,0,, Pls, IF, OP1 -- Read DP Ptr
2278
1021 0x0119 _STA_dpiY:
2279
1022 0x0119  42840780 BRV0 _WO_DPIY,1,0,, Pls, IF, OP1 -- Read DP Ptr
2280
1023 0x011A _LDA_dpXi:
2281
1024 0x011A  41DC0780 BRV0 _RO_DPXI,1,0,, Pls, IF, OP1 -- Read DP Ptr
2282
1025 0x011B _LDA_dpiY:
2283
1026 0x011B  41F40780 BRV0 _RO_DPIY,1,0,, Pls, IF, OP1 -- Read DP Ptr
2284
1027 0x011C _CMP_dpXi:
2285
1028 0x011C  41DC0780 BRV0 _RO_DPXI,1,0,, Pls, IF, OP1 -- Read DP Ptr
2286
1029 0x011D _CMP_dpiY:
2287
1030 0x011D  41F40780 BRV0 _RO_DPIY,1,0,, Pls, IF, OP1 -- Read DP Ptr
2288
1031 0x011E _SBC_dpXi:
2289
1032 0x011E  41DC0780 BRV0 _RO_DPXI,1,0,, Pls, IF, OP1 -- Read DP Ptr
2290
1033 0x011F _SBC_dpiY:
2291
1034 0x011F  41F40780 BRV0 _RO_DPIY,1,0,, Pls, IF, OP1 -- Read DP Ptr
2292
1035  --------------------------------------------------------------------------------
2293
1036  -- Row 2 : 0x02-0xF2
2294
1037  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
2295
1038  --------------------------------------------------------------------------------
2296
1039 0x0120 _NOP_02:
2297
1040 0x0120  790707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2298
1041 0x0121 _ORA_dpi:
2299
1042 0x0121  41C40780 BRV0 _RO_DPI,1,0,, Pls, IF, OP1 -- Read DP
2300
1043 0x0122 _NOP_22:
2301
1044 0x0122  791707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2302
1045 0x0123 _AND_dpi:
2303
1046 0x0123  41C40780 BRV0 _RO_DPI,1,0,, Pls, IF, OP1 -- Read DP
2304
1047 0x0124 _NOP_42:
2305
1048 0x0124  792707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2306
1049 0x0125 _EOR_dpi:
2307
1050 0x0125  41C40780 BRV0 _RO_DPI,1,0,, Pls, IF, OP1 -- Read DP
2308
1051 0x0126 _NOP_62:
2309
1052 0x0126  793707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2310
1053 0x0127 _ADC_dpi:
2311
1054 0x0127  41C40780 BRV0 _RO_DPI,1,0,, Pls, IF, OP1 -- Read DP
2312
1055 0x0128 _NOP_82:
2313
1056 0x0128  794707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2314
1057 0x0129 _STA_dpi:
2315
1058 0x0129  42540780 BRV0 _WO_DPI,1,0,, Pls, IF, OP1 -- Read DP
2316
1059 0x012A _LDX_imm:
2317
1060 0x012A  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read #imm Value
2318
1061 0x012B _LDA_dpi:
2319
1062 0x012B  41C40780 BRV0 _RO_DPI,1,0,, Pls, IF, OP1 -- Read DP
2320
1063 0x012C _NOP_C2:
2321
1064 0x012C  796707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2322
1065 0x012D _CMP_dpi:
2323
1066 0x012D  41C40780 BRV0 _RO_DPI,1,0,, Pls, IF, OP1 -- Read DP
2324
1067 0x012E _NOP_E2:
2325
1068 0x012E  797707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2326
1069 0x012F _SBC_dpi:
2327
1070 0x012F  41C40780 BRV0 _RO_DPI,1,0,, Pls, IF, OP1 -- Read DP
2328
1071  --------------------------------------------------------------------------------
2329
1072  -- Row 3 : 0x03-0xF3
2330
1073  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
2331
1074  --------------------------------------------------------------------------------
2332
1075 0x0130 _NOP_03:
2333
1076 0x0130  798707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2334
1077 0x0131 _NOP_13:
2335
1078 0x0131  798F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2336
1079 0x0132 _NOP_23:
2337
1080 0x0132  799707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2338
1081 0x0133 _NOP_33:
2339
1082 0x0133  799F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2340
1083 0x0134 _NOP_43:
2341
1084 0x0134  79A707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2342
1085 0x0135 _NOP_53:
2343
1086 0x0135  79AF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2344
1087 0x0136 _NOP_63:
2345
1088 0x0136  79B707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2346
1089 0x0137 _NOP_73:
2347
1090 0x0137  79BF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2348
1091 0x0138 _NOP_83:
2349
1092 0x0138  79C707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2350
1093 0x0139 _NOP_93:
2351
1094 0x0139  79CF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2352
1095 0x013A _NOP_A3:
2353
1096 0x013A  79D707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2354
1097 0x013B _NOP_B3:
2355
1098 0x013B  79DF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2356
1099 0x013C _NOP_C3:
2357
1100 0x013C  79E707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2358
1101 0x013D _NOP_D3:
2359
1102 0x013D  79EF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2360
1103 0x013E _NOP_E3:
2361
1104 0x013E  79F707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2362
1105 0x013F _NOP_F3:
2363
1106 0x013F  79FF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2364
1107  --------------------------------------------------------------------------------
2365
1108  -- Row 4 : 0x04-0xF4
2366
1109  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
2367
1110  --------------------------------------------------------------------------------
2368
1111 0x0140 _TSB_dp:
2369
1112 0x0140  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
2370
1113 0x0141 _TRB_dp:
2371
1114 0x0141  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
2372
1115 0x0142 _BIT_dp:
2373
1116 0x0142  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
2374
1117 0x0143 _BIT_dpX:
2375
1118 0x0143  41B40780 BRV0 _RO_DPX,1,0,, Pls, IF, OP1 -- Read DP
2376
1119 0x0144 _NOP_44:
2377
1120 0x0144  7A2707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2378
1121 0x0145 _NOP_54:
2379
1122 0x0145  7A2F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2380
1123 0x0146 _STZ_dp:
2381
1124 0x0146  423C0780 BRV0 _WO_DP,1,0,, Pls, IF, OP1 -- Read DP
2382
1125 0x0147 _STZ_dpX:
2383
1126 0x0147  42440780 BRV0 _WO_DPX,1,0,, Pls, IF, OP1 -- Read DP
2384
1127 0x0148 _STY_dp:
2385
1128 0x0148  423C0780 BRV0 _WO_DP,1,0,, Pls, IF, OP1 -- Read DP
2386
1129 0x0149 _STY_dpX:
2387
1130 0x0149  42440780 BRV0 _WO_DPX,1,0,, Pls, IR, OP1 -- Read DP
2388
1131 0x014A _LDY_dp:
2389
1132 0x014A  41AC0780 BRV0 _RO_DP,1,0,, Pls, IR, OP1 -- Read DP
2390
1133 0x014B _LDY_dpX:
2391
1134 0x014B  41B40780 BRV0 _RO_DPX,1,0,, Pls, IF, OP1 -- Read DP
2392
1135 0x014C _CPY_dp:
2393
1136 0x014C  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
2394
1137 0x014D _NOP_D4:
2395
1138 0x014D  7A6F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2396
1139 0x014E _CPX_dp:
2397
1140 0x014E  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
2398
1141 0x014F _NOP_F4:
2399
1142 0x014F  7A7F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2400
1143  --------------------------------------------------------------------------------
2401
1144  -- Row 5 : 0x05-0xF5
2402
1145  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
2403
1146  --------------------------------------------------------------------------------
2404
1147 0x0150 _ORA_dp:
2405
1148 0x0150  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
2406
1149 0x0151 _ORA_dpX:
2407
1150 0x0151  41B40780 BRV0 _RO_DPX,1,0,, Pls, IF, OP1 -- Read DP
2408
1151 0x0152 _AND_dp:
2409
1152 0x0152  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
2410
1153 0x0153 _AND_dpX:
2411
1154 0x0153  41B40780 BRV0 _RO_DPX,1,0,, Pls, IF, OP1 -- Read DP
2412
1155 0x0154 _EOR_dp:
2413
1156 0x0154  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
2414
1157 0x0155 _EOR_dpX:
2415
1158 0x0155  41B40780 BRV0 _RO_DPX,1,0,, Pls, IF, OP1 -- Read DP
2416
1159 0x0156 _ADC_dp:
2417
1160 0x0156  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
2418
1161 0x0157 _ADC_dpX:
2419
1162 0x0157  41B40780 BRV0 _RO_DPX,1,0,, Pls, IF, OP1 -- Read DP
2420
1163 0x0158 _STA_dp:
2421
1164 0x0158  423C0780 BRV0 _WO_DP,1,0,, Pls, IF, OP1 -- Read DP
2422
1165 0x0159 _STA_dpX:
2423
1166 0x0159  42440780 BRV0 _WO_DPX,1,0,, Pls, IF, OP1 -- Read DP
2424
1167 0x015A _LDA_dp:
2425
1168 0x015A  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
2426
1169 0x015B _LDA_dpX:
2427
1170 0x015B  41B40780 BRV0 _RO_DPX,1,0,, Pls, IF, OP1 -- Read DP
2428
1171 0x015C _CMP_dp:
2429
1172 0x015C  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
2430
1173 0x015D _CMP_dpX:
2431
1174 0x015D  41B40780 BRV0 _RO_DPX,1,0,, Pls, IF, OP1 -- Read DP
2432
1175 0x015E _SBC_dp:
2433
1176 0x015E  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
2434
1177 0x015F _SBC_dpX:
2435
1178 0x015F  41B40780 BRV0 _RO_DPX,1,0,, Pls, IF, OP1 -- Read DP
2436
1179  --------------------------------------------------------------------------------
2437
1180  -- Row 6 : 0x06-0xF6
2438
1181  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
2439
1182  --------------------------------------------------------------------------------
2440
1183 0x0160 _ASL_dp:
2441
1184 0x0160  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
2442
1185 0x0161 _ASL_dpX:
2443
1186 0x0161  43240780 BRV0 _RMW_DPX,1,0,, Pls, IF, OP1 -- Read DP
2444
1187 0x0162 _ROL_dp:
2445
1188 0x0162  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
2446
1189 0x0163 _ROL_dpX:
2447
1190 0x0163  43240780 BRV0 _RMW_DPX,1,0,, Pls, IF, OP1 -- Read DP
2448
1191 0x0164 _LSR_dp:
2449
1192 0x0164  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
2450
1193 0x0165 _LSR_dpX:
2451
1194 0x0165  43240780 BRV0 _RMW_DPX,1,0,, Pls, IF, OP1 -- Read DP
2452
1195 0x0166 _ROR_dp:
2453
1196 0x0166  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
2454
1197 0x0167 _ROR_dpX:
2455
1198 0x0167  43240780 BRV0 _RMW_DPX,1,0,, Pls, IF, OP1 -- Read DP
2456
1199 0x0168 _STX_dp:
2457
1200 0x0168  423C0780 BRV0 _WO_DP,1,0,, Pls, IF, OP1 -- Read DP
2458
1201 0x0169 _STX_dpY:
2459
1202 0x0169  424C0780 BRV0 _WO_DPY,1,0,, Pls, IF, OP1 -- Read DP
2460
1203 0x016A _LDX_dp:
2461
1204 0x016A  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
2462
1205 0x016B _LDX_dpY:
2463
1206 0x016B  41BC0780 BRV0 _RO_DPY,1,0,, Pls, IF, OP1 -- Read DP
2464
1207 0x016C _DEC_dp:
2465
1208 0x016C  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
2466
1209 0x016D _DEC_dpX:
2467
1210 0x016D  43240780 BRV0 _RMW_DPX,1,0,, Pls, IF, OP1 -- Read DP
2468
1211 0x016E _INC_dp:
2469
1212 0x016E  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
2470
1213 0x016F _INC_dpX:
2471
1214 0x016F  43240780 BRV0 _RMW_DPX,1,0,, Pls, IF, OP1 -- Read DP
2472
1215  --------------------------------------------------------------------------------
2473
1216  -- Row 7 : 0x07-0xF7 (Rockwell Instructions: RMBx/SMBx dp)
2474
1217  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
2475
1218  --------------------------------------------------------------------------------
2476
1219 0x0170 _RMB0_dp:
2477
1220 0x0170  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
2478
1221 0x0171 _RMB1_dp:
2479
1222 0x0171  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
2480
1223 0x0172 _RMB2_dp:
2481
1224 0x0172  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
2482
1225 0x0173 _RMB3_dp:
2483
1226 0x0173  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
2484
1227 0x0174 _RMB4_dp:
2485
1228 0x0174  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
2486
1229 0x0175 _RMB5_dp:
2487
1230 0x0175  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
2488
1231 0x0176 _RMB6_dp:
2489
1232 0x0176  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
2490
1233 0x0177 _RMB7_dp:
2491
1234 0x0177  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
2492
1235 0x0178 _SMB0_dp:
2493
1236 0x0178  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
2494
1237 0x0179 _SMB1_dp:
2495
1238 0x0179  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
2496
1239 0x017A _SMB2_dp:
2497
1240 0x017A  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
2498
1241 0x017B _SMB3_dp:
2499
1242 0x017B  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
2500
1243 0x017C _SMB4_dp:
2501
1244 0x017C  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
2502
1245 0x017D _SMB5_dp:
2503
1246 0x017D  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
2504
1247 0x017E _SMB6_dp:
2505
1248 0x017E  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
2506
1249 0x017F _SMB7_dp:
2507
1250 0x017F  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
2508
1251  --------------------------------------------------------------------------------
2509
1252  -- Row 8 : 0x08-0xF8
2510
1253  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
2511
1254  --------------------------------------------------------------------------------
2512
1255 0x0180 _PHP:
2513
1256 0x0180  41044120 BRV0 _Psh,1,0, Stk,, WR,, Psh -- Push P
2514
1257 0x0181 _CLC:
2515
1258 0x0181  7C0F07CC BRV3 $,1,3,, Pls, IF, IR,, WE_P -- Clear Carry Flag
2516
1259 0x0182 _PLP:
2517
1260 0x0182  410442B0 BRV0 _Pop,1,0, Stk,, RD, OP1, Pop -- Pop P
2518
1261 0x0183 _SEC:
2519
1262 0x0183  7C1F07CC BRV3 $,1,3,, Pls, IF, IR,, WE_P -- Set Carry Flag
2520
1263 0x0184 _PHA:
2521
1264 0x0184  41044120 BRV0 _Psh,1,0, Stk,, WR,, Psh -- Push A
2522
1265 0x0185 _CLI:
2523
1266 0x0185  5C2D07CC BRV1 $,1,1,, Pls, IF, IR,, WE_P -- Clear Interrupt Mask Flg
2524
1267 0x0186 _PLA:
2525
1268 0x0186  410442B0 BRV0 _Pop,1,0, Stk,, RD, OP1, Pop -- Pop A
2526
1269 0x0187 _SEI:
2527
1270 0x0187  5C3D07CC BRV1 $,1,1,, Pls, IF, IR,, WE_P -- Set Interrupt Mask Flag
2528
1271 0x0188 _DEY:
2529
1272 0x0188  7C4707C6 BRV3 $,1,3,, Pls, IF, IR,, WE_Y -- Decrement Y
2530
1273 0x0189 _TYA:
2531
1274 0x0189  7C4F07C2 BRV3 $,1,3,, Pls, IF, IR,, WE_A -- Transfer Y to A
2532
1275 0x018A _TAY:
2533
1276 0x018A  7C5707C6 BRV3 $,1,3,, Pls, IF, IR,, WE_Y -- Transfer A to Y
2534
1277 0x018B _CLV:
2535
1278 0x018B  7C5F07CC BRV3 $,1,3,, Pls, IF, IR,, WE_P -- Clear oVerflow Flag
2536
1279 0x018C _INY:
2537
1280 0x018C  7C6707C6 BRV3 $,1,3,, Pls, IF, IR,, WE_Y -- Increment Y
2538
1281 0x018D _CLD:
2539
1282 0x018D  7C6F07CC BRV3 $,1,3,, Pls, IF, IR,, WE_P -- Clear Decimal Mode Flag
2540
1283 0x018E _INX:
2541
1284 0x018E  7C7707C4 BRV3 $,1,3,, Pls, IF, IR,, WE_X -- Increment X
2542
1285 0x018F _SED:
2543
1286 0x018F  7C7F07CC BRV3 $,1,3,, Pls, IF, IR,, WE_P -- Set Decimal Mode Flag
2544
1287  --------------------------------------------------------------------------------
2545
1288  -- Row 9 : 0x09-0xF9
2546
1289  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
2547
1290  --------------------------------------------------------------------------------
2548
1291 0x0190 _ORA_imm:
2549
1292 0x0190  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read Immediate Operand
2550
1293 0x0191 _ORA_absY:
2551
1294 0x0191  422C0780 BRV0 _RO_AbsY,1,0,, Pls, IF, OP1 -- Read Mem Ptr Lo
2552
1295 0x0192 _AND_imm:
2553
1296 0x0192  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read Immediate Operand
2554
1297 0x0193 _AND_absY:
2555
1298 0x0193  422C0780 BRV0 _RO_AbsY,1,0,, Pls, IF, OP1 -- Read Mem Ptr Lo
2556
1299 0x0194 _EOR_imm:
2557
1300 0x0194  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read Immediate Operand
2558
1301 0x0195 _EOR_absY:
2559
1302 0x0195  422C0780 BRV0 _RO_AbsY,1,0,, Pls, IF, OP1 -- Read Mem Ptr Lo
2560
1303 0x0196 _ADC_imm:
2561
1304 0x0196  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read Immediate Operand
2562
1305 0x0197 _ADC_absY:
2563
1306 0x0197  422C0780 BRV0 _RO_AbsY,1,0,, Pls, IF, OP1 -- Read Mem Ptr Lo
2564
1307 0x0198 _BIT_imm:
2565
1308 0x0198  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read Immediate Operand
2566
1309 0x0199 _STA_absY:
2567
1310 0x0199  42BC0780 BRV0 _WO_AbsY,1,0,, Pls, IF, OP1 -- Read Mem Ptr Lo
2568
1311 0x019A _LDA_imm:
2569
1312 0x019A  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read Immediate Operand
2570
1313 0x019B _LDA_absY:
2571
1314 0x019B  422C0780 BRV0 _RO_AbsY,1,0,, Pls, IF, OP1 -- Read Mem Ptr Lo
2572
1315 0x019C _CMP_imm:
2573
1316 0x019C  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read Immediate Operand
2574
1317 0x019D _CMP_absY:
2575
1318 0x019D  422C0780 BRV0 _RO_AbsY,1,0,, Pls, IF, OP1 -- Read Mem Ptr Lo
2576
1319 0x019E _SBC_imm:
2577
1320 0x019E  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read Immediate Operand
2578
1321 0x019F _SBC_absY:
2579
1322 0x019F  422C0780 BRV0 _RO_AbsY,1,0,, Pls, IF, OP1 -- Read Mem Ptr Lo
2580
1323  --------------------------------------------------------------------------------
2581
1324  -- Row A : 0x0A-0xFA
2582
1325  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
2583
1326  --------------------------------------------------------------------------------
2584
1327 0x01A0 _ASL_A:
2585
1328 0x01A0  7D0707C2 BRV3 $,1,3,, Pls, IF, IR,, WE_A -- Arithmetic Shift A Left
2586
1329 0x01A1 _INC_A:
2587
1330 0x01A1  7D0F07C2 BRV3 $,1,3,, Pls, IF, IR,, WE_A -- Increment A
2588
1331 0x01A2 _ROL_A:
2589
1332 0x01A2  7D1707C2 BRV3 $,1,3,, Pls, IF, IR,, WE_A -- Rotate A Left
2590
1333 0x01A3 _DEC_A:
2591
1334 0x01A3  7D1F07C2 BRV3 $,1,3,, Pls, IF, IR,, WE_A -- Decrement A
2592
1335 0x01A4 _LSR_A:
2593
1336 0x01A4  7D2707C2 BRV3 $,1,3,, Pls, IF, IR,, WE_A -- Logical Shift A Right
2594
1337 0x01A5 _PHY:
2595
1338 0x01A5  41044120 BRV0 _Psh,1,0, Stk,, WR,, Psh -- Push Y
2596
1339 0x01A6 _ROR_A:
2597
1340 0x01A6  7D3707C2 BRV3 $,1,3,, Pls, IF, IR,, WE_A -- Rotate A Right
2598
1341 0x01A7 _PLY:
2599
1342 0x01A7  410442B0 BRV0 _Pop,1,0, Stk,, RD, OP1, Pop -- Pop Y
2600
1343 0x01A8 _TXA:
2601
1344 0x01A8  7D4707C2 BRV3 $,1,3,, Pls, IF, IR,, WE_A -- Transfer X to A
2602
1345 0x01A9 _TXS:
2603
1346 0x01A9  7D4F07CA BRV3 $,1,3,, Pls, IF, IR,, WE_S -- Transfer X to S
2604
1347 0x01AA _TAX:
2605
1348 0x01AA  7D5707C4 BRV3 $,1,3,, Pls, IF, IR,, WE_X -- Transfer A to X
2606
1349 0x01AB _TSX:
2607
1350 0x01AB  7D5F07C4 BRV3 $,1,3,, Pls, IF, IR,, WE_X -- Transfer S to X
2608
1351 0x01AC _DEX:
2609
1352 0x01AC  7D6707C4 BRV3 $,1,3,, Pls, IF, IR,, WE_X -- Decrement X
2610
1353 0x01AD _PHX:
2611
1354 0x01AD  41044120 BRV0 _Psh,1,0, Stk,, WR,, Psh -- Push X
2612
1355 0x01AE _NOP: -- the real NOP
2613
1356 0x01AE  7D7707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip True NOP Instruction
2614
1357 0x01AF _PLX:
2615
1358 0x01AF  410442B0 BRV0 _Pop,1,0, Stk,, RD, OP1, Pop -- Pop X
2616
1359  --------------------------------------------------------------------------------
2617
1360  -- Row B : 0x0B-0xFB
2618
1361  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
2619
1362  --------------------------------------------------------------------------------
2620
1363 0x01B0 _NOP_0B:
2621
1364 0x01B0  7D8707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2622
1365 0x01B1 _NOP_1B:
2623
1366 0x01B1  7D8F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2624
1367 0x01B2 _NOP_2B:
2625
1368 0x01B2  7D9707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2626
1369 0x01B3 _NOP_3B:
2627
1370 0x01B3  7D9F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2628
1371 0x01B4 _NOP_4B:
2629
1372 0x01B4  7DA707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2630
1373 0x01B5 _NOP_5B:
2631
1374 0x01B5  7DAF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2632
1375 0x01B6 _NOP_6B:
2633
1376 0x01B6  7DB707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2634
1377 0x01B7 _NOP_7B:
2635
1378 0x01B7  7DBF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2636
1379 0x01B8 _NOP_8B:
2637
1380 0x01B8  7DC707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2638
1381 0x01B9 _NOP_9B:
2639
1382 0x01B9  7DCF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2640
1383 0x01BA _NOP_AB:
2641
1384 0x01BA  7DD707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2642
1385 0x01BB _NOP_BB:
2643
1386 0x01BB  7DDF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2644
1387 0x01BC _WAI_CB:
2645
1388 0x01BC  47E40000 BRV0 _WAI,1,0 -- Wait for Interrupt
2646
1389 0x01BD _STP_DB:
2647
1390 0x01BD  4DE80000 BRV0 $,0,0 -- Stop execution
2648
1391 0x01BE _NOP_EB:
2649
1392 0x01BE  7DF707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2650
1393 0x01BF _NOP_FB:
2651
1394 0x01BF  7DFF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2652
1395  --------------------------------------------------------------------------------
2653
1396  -- Row C : 0x0C-0xFC
2654
1397  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
2655
1398  --------------------------------------------------------------------------------
2656
1399 0x01C0 _TSB_abs:
2657
1400 0x01C0  43440780 BRV0 _RMW_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2658
1401 0x01C1 _TRB_abs:
2659
1402 0x01C1  43440780 BRV0 _RMW_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2660
1403 0x01C2 _BIT_abs:
2661
1404 0x01C2  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2662
1405 0x01C3 _BIT_absX:
2663
1406 0x01C3  421C0780 BRV0 _RO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2664
1407 0x01C4 _JMP_abs:
2665
1408 0x01C4  41740780 BRV0 _Jmp,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2666
1409 0x01C5 _NOP_5C:
2667
1410 0x01C5  7E2F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2668
1411 0x01C6 _JMP_absi:
2669
1412 0x01C6  417C0780 BRV0 _JmpI,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2670
1413 0x01C7 _JMP_absXi:
2671
1414 0x01C7  41940780 BRV0 _JmpXI,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2672
1415 0x01C8 _STY_abs:
2673
1416 0x01C8  429C0780 BRV0 _WO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2674
1417 0x01C9 _STZ_abs:
2675
1418 0x01C9  429C0780 BRV0 _WO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2676
1419 0x01CA _LDY_abs:
2677
1420 0x01CA  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2678
1421 0x01CB _LDY_absX:
2679
1422 0x01CB  421C0780 BRV0 _RO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2680
1423 0x01CC _CPY_abs:
2681
1424 0x01CC  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2682
1425 0x01CD _NOP_DC:
2683
1426 0x01CD  7E6F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2684
1427 0x01CE _CPX_abs:
2685
1428 0x01CE  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2686
1429 0x01CF _NOP_FC:
2687
1430 0x01CF  7E7F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
2688
1431  --------------------------------------------------------------------------------
2689
1432  -- Row D : 0x0D-0xFD
2690
1433  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
2691
1434  --------------------------------------------------------------------------------
2692
1435 0x01D0 _ORA_abs:
2693
1436 0x01D0  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2694
1437 0x01D1 _ORA_absX:
2695
1438 0x01D1  421C0780 BRV0 _RO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2696
1439 0x01D2 _AND_abs:
2697
1440 0x01D2  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2698
1441 0x01D3 _AND_absX:
2699
1442 0x01D3  421C0780 BRV0 _RO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2700
1443 0x01D4 _EOR_abs:
2701
1444 0x01D4  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2702
1445 0x01D5 _EOR_absX:
2703
1446 0x01D5  421C0780 BRV0 _RO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2704
1447 0x01D6 _ADC_abs:
2705
1448 0x01D6  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2706
1449 0x01D7 _ADC_absX:
2707
1450 0x01D7  421C0780 BRV0 _RO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2708
1451 0x01D8 _STA_abs:
2709
1452 0x01D8  429C0780 BRV0 _WO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2710
1453 0x01D9 _STA_absX:
2711
1454 0x01D9  42AC0780 BRV0 _WO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2712
1455 0x01DA _LDA_abs:
2713
1456 0x01DA  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2714
1457 0x01DB _LDA_absX:
2715
1458 0x01DB  421C0780 BRV0 _RO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2716
1459 0x01DC _CMP_abs:
2717
1460 0x01DC  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2718
1461 0x01DD _CMP_absX:
2719
1462 0x01DD  421C0780 BRV0 _RO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2720
1463 0x01DE _SBC_abs:
2721
1464 0x01DE  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2722
1465 0x01DF _SBC_absX:
2723
1466 0x01DF  421C0780 BRV0 _RO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2724
1467  --------------------------------------------------------------------------------
2725
1468  -- Row E : 0x0E-0xFE
2726
1469  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
2727
1470  --------------------------------------------------------------------------------
2728
1471 0x01E0 _ASL_abs:
2729
1472 0x01E0  43440780 BRV0 _RMW_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2730
1473 0x01E1 _ASL_absX:
2731
1474 0x01E1  435C0780 BRV0 _RMW_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2732
1475 0x01E2 _ROL_abs:
2733
1476 0x01E2  43440780 BRV0 _RMW_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2734
1477 0x01E3 _ROL_absX:
2735
1478 0x01E3  435C0780 BRV0 _RMW_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2736
1479 0x01E4 _LSR_abs:
2737
1480 0x01E4  43440780 BRV0 _RMW_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2738
1481 0x01E5 _LSR_absX:
2739
1482 0x01E5  435C0780 BRV0 _RMW_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2740
1483 0x01E6 _ROR_abs:
2741
1484 0x01E6  43440780 BRV0 _RMW_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2742
1485 0x01E7 _ROR_absX:
2743
1486 0x01E7  435C0780 BRV0 _RMW_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2744
1487 0x01E8 _STX_abs:
2745
1488 0x01E8  429C0780 BRV0 _WO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2746
1489 0x01E9 _STZ_absX:
2747
1490 0x01E9  42AC0780 BRV0 _WO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2748
1491 0x01EA _LDX_abs:
2749
1492 0x01EA  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2750
1493 0x01EB _LDX_absY:
2751
1494 0x01EB  422C0780 BRV0 _RO_AbsY,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2752
1495 0x01EC _DEC_abs:
2753
1496 0x01EC  43440780 BRV0 _RMW_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2754
1497 0x01ED _DEC_absX:
2755
1498 0x01ED  435C0780 BRV0 _RMW_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2756
1499 0x01EE _INC_abs:
2757
1500 0x01EE  43440780 BRV0 _RMW_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2758
1501 0x01EF _INC_absX:
2759
1502 0x01EF  435C0780 BRV0 _RMW_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
2760
1503  --------------------------------------------------------------------------------
2761
1504  -- Row F : 0x0F-0xFF (Rockwell Instructions: BBRx/BBSx dp,rel)
2762
1505  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
2763
1506  --------------------------------------------------------------------------------
2764
1507 0x01F0 _BBR0_dp_rel:
2765
1508 0x01F0  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
2766
1509 0x01F1 _BBR1_dp_rel:
2767
1510 0x01F1  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
2768
1511 0x01F2 _BBR2_dp_rel:
2769
1512 0x01F2  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
2770
1513 0x01F3 _BBR3_dp_rel:
2771
1514 0x01F3  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
2772
1515 0x01F4 _BBR4_dp_rel:
2773
1516 0x01F4  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
2774
1517 0x01F5 _BBR5_dp_rel:
2775
1518 0x01F5  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
2776
1519 0x01F6 _BBR6_dp_rel:
2777
1520 0x01F6  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
2778
1521 0x01F7 _BBR7_dp_rel:
2779
1522 0x01F7  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
2780
1523 0x01F8 _BBS0_dp_rel:
2781
1524 0x01F8  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
2782
1525 0x01F9 _BBS1_dp_rel:
2783
1526 0x01F9  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
2784
1527 0x01FA _BBS2_dp_rel:
2785
1528 0x01FA  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
2786
1529 0x01FB _BBS3_dp_rel:
2787
1530 0x01FB  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
2788
1531 0x01FC _BBS4_dp_rel:
2789
1532 0x01FC  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
2790
1533 0x01FD _BBS5_dp_rel:
2791
1534 0x01FD  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
2792
1535 0x01FE _BBS6_dp_rel:
2793
1536 0x01FE  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
2794
1537 0x01FF _BBS7_dp_rel:
2795
1538 0x01FF  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
2796
1539  --------------------------------------------------------------------------------
2797
1540  -- End of Instruction Decode Table
2798
1541  --------------------------------------------------------------------------------
2799
1543 0x0200 _Last: .org 512
2800
1545 0x0200 _end:
2801
-- Instructions --
2802
0x0000  RTS   RTS         .asm    0       -- Return from Subroutine
2803
0x0001  BSR   BSR         .asm    1       -- Branch to subroutine
2804
0x0002 FTCH   FTCH        .asm    2       -- Fetch next instruction
2805
0x0003  BMW   BMW         .asm    3       -- Branch multi-way
2806
0x0004 BRV0   BRV0        .asm    4       -- Branch via 0
2807
0x0005 BRV1   BRV1        .asm    5       -- Branch via 1
2808
0x0006 BRV2   BRV2        .asm    6       -- Branch via 2
2809
0x0007 BRV3   BRV3        .asm    7       -- Branch via 3
2810
0x0008 BTH0   BTH0        .asm    8       -- Branch if T0 is high
2811
0x0009 BTH1   BTH1        .asm    9       -- Branch if T1 is high
2812
0x000A BTH2   BTH2        .asm    10      -- Branch if T2 is high
2813
0x000B BTH3   BTH3        .asm    11      -- Branch if T3 is high
2814
0x000C BTL0   BTL0        .asm    12      -- Branch if T0 is low
2815
0x000D BTL1   BTL1        .asm    13      -- Branch if T1 is low
2816
0x000E BTL2   BTL2        .asm    14      -- Branch if T2 is low
2817
0x000F BTL3   BTL3        .asm    15      -- Branch if T3 is low
2818
 
2819
-- Equates --
2820
0x0000 PC          .equ    0       -- NA <= PC (default)
2821
0x0001 Inc         .equ    1       -- NA <= PC + 1
2822
0x0002 MAR         .equ    2       -- NA <= MAR + 0
2823
0x0003 Nxt         .equ    3       -- NA <= MAR + 1
2824
0x0004 Stk         .equ    4       -- NA <= SP + 0
2825
0x0005 DPN         .equ    5       -- NA <= {0, OP1} + 0
2826
0x0006 DPX         .equ    6       -- NA <= {0, OP1} + {0, X}
2827
0x0007 DPY         .equ    7       -- NA <= {0, OP1} + {0, Y}
2828
0x0008 LDA         .equ    8       -- NA <= {OP2, OP1} + 0
2829
0x000E LDAX        .equ    14      -- NA <= {OP2, OP1} + {0, X}
2830
0x000F LDAY        .equ    15      -- NA <= {OP2, OP1} + {0, Y}
2831
0x0001 Pls         .equ    1       -- PC <= PC + 1
2832
0x0002 Jmp         .equ    2       -- PC <= NA
2833
0x0003 Rel         .equ    3       -- PC <= PC + (CC ? {{8{DI[7]}}, DI} : 1)
2834
0x0001 WR          .equ    1       -- Bus Operand Write
2835
0x0002 RD          .equ    2       -- Bus Operand Read
2836
0x0003 IF          .equ    3       -- Bus Insruction Fetch
2837
0x0000 ALU         .equ    0       -- M   <= DI
2838
0x0001 OP2         .equ    1       -- OP2 <= DI
2839
0x0002 OP1         .equ    2       -- OP1 <= DI
2840
0x0003 IR          .equ    3       -- IR  <= DI
2841
0x0001 PCH         .equ    1       -- DO  <= PCH
2842
0x0002 PCL         .equ    2       -- DO  <= PCL
2843
0x0003 PSW         .equ    3       -- DO  <= PSW (P)
2844
0x0002 Psh         .equ    2       -- S <= S - 1
2845
0x0003 Pop         .equ    3       -- S <= S + 1
2846
0x0001 WE_A        .equ    1       -- Write Enable A
2847
0x0002 WE_X        .equ    2       -- Write Enable X
2848
0x0003 WE_Y        .equ    3       -- Write Enable Y
2849
0x0004 WE_R        .equ    4       -- Write Enable Register - write selected register
2850
0x0005 WE_S        .equ    5       -- Write Enable S
2851
0x0006 WE_P        .equ    6       -- Write Enable P
2852
0x0007 WE_M        .equ    7       -- Write Enable M(emory)
2853
0x0001 ISR         .equ    1       -- Assert ISR: Clear D, Set I
2854
 
2855
-- Defines --
2856
0x0004 Inst        .def    4       -- Instruction
2857
0x0009 BA          .def    9       -- Branch Address
2858
0x0001 Wait        .def    1       -- Conditional Execution Required
2859
0x0002 En          .def    2       -- Enable ALU, and Sample Interrupts
2860
0x0004 NA_Cntl     .def    4       -- Next Address Control Field
2861
0x0002 PC_Cntl     .def    2       -- Program Counter Control Field
2862
0x0002 IO_Cntl     .def    2       -- I/O Cycle Control Field
2863
0x0002 DIO_Cntl    .def    2       -- Data Input/Output Demux/Mux Control Field
2864
0x0002 Stk_Cntl    .def    2       -- ALU Stack Pointer Control Field
2865
0x0003 RegWE_Cntl  .def    3       -- Register Write Enable (A, X, Y, S, P)
2866
0x0001 PSW_Cntl    .def    1       -- Asserted to Clear D and Set I in PSW
2867
 
2868
-- Labels --
2869
0x0000 _Start
2870
0x0001 _Rst
2871
0x0020 _Nxt
2872
0x0020 _Psh
2873
0x0020 _Pop
2874
0x0020 _Rel
2875
0x0020 _Imm
2876
0x0021 _Int
2877
0x0022 _Brk
2878
0x0027 _JSR
2879
0x002A _RTI
2880
0x002D _RTS
2881
0x002E _Jmp
2882
0x002F _JmpI
2883
0x0032 _JmpXI
2884
0x0035 _RO_DP
2885
0x0036 _RO_DPX
2886
0x0037 _RO_DPY
2887
0x0038 _RO_DPI
2888
0x003B _RO_DPXI
2889
0x003E _RO_DPIY
2890
0x0041 _RO_Abs
2891
0x0043 _RO_AbsX
2892
0x0045 _RO_AbsY
2893
0x0047 _WO_DP
2894
0x0048 _WO_DPX
2895
0x0049 _WO_DPY
2896
0x004A _WO_DPI
2897
0x004D _WO_DPXI
2898
0x0050 _WO_DPIY
2899
0x0053 _WO_Abs
2900
0x0055 _WO_AbsX
2901
0x0057 _WO_AbsY
2902
0x0060 _RMW
2903
0x0062 _RMW_DP
2904
0x0064 _RMW_DPX
2905
0x0066 _RMW_DPY
2906
0x0068 _RMW_Abs
2907
0x006B _RMW_AbsX
2908
0x006E _RMW_AbsY
2909
0x0071 _BByx_dp_rel
2910
0x0073 _End_uPgm
2911
0x00FC _WAI
2912
0x0100 _IDEC_Start
2913
0x0100 _BRK_imm
2914
0x0101 _BPL_rel
2915
0x0102 _JSR_abs
2916
0x0103 _BMI_rel
2917
0x0104 _RTI_imp
2918
0x0105 _BVC_rel
2919
0x0106 _RTS_imp
2920
0x0107 _BVS_rel
2921
0x0108 _BRA_rel
2922
0x0109 _BCC_re
2923
0x010A _LDY_imm
2924
0x010B _BCS_rel
2925
0x010C _CPY_imm
2926
0x010D _BNE_rel
2927
0x010E _CPX_imm
2928
0x010F _BEQ_rel
2929
0x0110 _ORA_dpXi
2930
0x0111 _ORA_dpiY
2931
0x0112 _AND_dpXi
2932
0x0113 _AND_dpiY
2933
0x0114 _EOR_dpXi
2934
0x0115 _EOR_dpiY
2935
0x0116 _ADC_dpXi
2936
0x0117 _ADC_dpiY
2937
0x0118 _STA_dpXi
2938
0x0119 _STA_dpiY
2939
0x011A _LDA_dpXi
2940
0x011B _LDA_dpiY
2941
0x011C _CMP_dpXi
2942
0x011D _CMP_dpiY
2943
0x011E _SBC_dpXi
2944
0x011F _SBC_dpiY
2945
0x0120 _NOP_02
2946
0x0121 _ORA_dpi
2947
0x0122 _NOP_22
2948
0x0123 _AND_dpi
2949
0x0124 _NOP_42
2950
0x0125 _EOR_dpi
2951
0x0126 _NOP_62
2952
0x0127 _ADC_dpi
2953
0x0128 _NOP_82
2954
0x0129 _STA_dpi
2955
0x012A _LDX_imm
2956
0x012B _LDA_dpi
2957
0x012C _NOP_C2
2958
0x012D _CMP_dpi
2959
0x012E _NOP_E2
2960
0x012F _SBC_dpi
2961
0x0130 _NOP_03
2962
0x0131 _NOP_13
2963
0x0132 _NOP_23
2964
0x0133 _NOP_33
2965
0x0134 _NOP_43
2966
0x0135 _NOP_53
2967
0x0136 _NOP_63
2968
0x0137 _NOP_73
2969
0x0138 _NOP_83
2970
0x0139 _NOP_93
2971
0x013A _NOP_A3
2972
0x013B _NOP_B3
2973
0x013C _NOP_C3
2974
0x013D _NOP_D3
2975
0x013E _NOP_E3
2976
0x013F _NOP_F3
2977
0x0140 _TSB_dp
2978
0x0141 _TRB_dp
2979
0x0142 _BIT_dp
2980
0x0143 _BIT_dpX
2981
0x0144 _NOP_44
2982
0x0145 _NOP_54
2983
0x0146 _STZ_dp
2984
0x0147 _STZ_dpX
2985
0x0148 _STY_dp
2986
0x0149 _STY_dpX
2987
0x014A _LDY_dp
2988
0x014B _LDY_dpX
2989
0x014C _CPY_dp
2990
0x014D _NOP_D4
2991
0x014E _CPX_dp
2992
0x014F _NOP_F4
2993
0x0150 _ORA_dp
2994
0x0151 _ORA_dpX
2995
0x0152 _AND_dp
2996
0x0153 _AND_dpX
2997
0x0154 _EOR_dp
2998
0x0155 _EOR_dpX
2999
0x0156 _ADC_dp
3000
0x0157 _ADC_dpX
3001
0x0158 _STA_dp
3002
0x0159 _STA_dpX
3003
0x015A _LDA_dp
3004
0x015B _LDA_dpX
3005
0x015C _CMP_dp
3006
0x015D _CMP_dpX
3007
0x015E _SBC_dp
3008
0x015F _SBC_dpX
3009
0x0160 _ASL_dp
3010
0x0161 _ASL_dpX
3011
0x0162 _ROL_dp
3012
0x0163 _ROL_dpX
3013
0x0164 _LSR_dp
3014
0x0165 _LSR_dpX
3015
0x0166 _ROR_dp
3016
0x0167 _ROR_dpX
3017
0x0168 _STX_dp
3018
0x0169 _STX_dpY
3019
0x016A _LDX_dp
3020
0x016B _LDX_dpY
3021
0x016C _DEC_dp
3022
0x016D _DEC_dpX
3023
0x016E _INC_dp
3024
0x016F _INC_dpX
3025
0x0170 _RMB0_dp
3026
0x0171 _RMB1_dp
3027
0x0172 _RMB2_dp
3028
0x0173 _RMB3_dp
3029
0x0174 _RMB4_dp
3030
0x0175 _RMB5_dp
3031
0x0176 _RMB6_dp
3032
0x0177 _RMB7_dp
3033
0x0178 _SMB0_dp
3034
0x0179 _SMB1_dp
3035
0x017A _SMB2_dp
3036
0x017B _SMB3_dp
3037
0x017C _SMB4_dp
3038
0x017D _SMB5_dp
3039
0x017E _SMB6_dp
3040
0x017F _SMB7_dp
3041
0x0180 _PHP
3042
0x0181 _CLC
3043
0x0182 _PLP
3044
0x0183 _SEC
3045
0x0184 _PHA
3046
0x0185 _CLI
3047
0x0186 _PLA
3048
0x0187 _SEI
3049
0x0188 _DEY
3050
0x0189 _TYA
3051
0x018A _TAY
3052
0x018B _CLV
3053
0x018C _INY
3054
0x018D _CLD
3055
0x018E _INX
3056
0x018F _SED
3057
0x0190 _ORA_imm
3058
0x0191 _ORA_absY
3059
0x0192 _AND_imm
3060
0x0193 _AND_absY
3061
0x0194 _EOR_imm
3062
0x0195 _EOR_absY
3063
0x0196 _ADC_imm
3064
0x0197 _ADC_absY
3065
0x0198 _BIT_imm
3066
0x0199 _STA_absY
3067
0x019A _LDA_imm
3068
0x019B _LDA_absY
3069
0x019C _CMP_imm
3070
0x019D _CMP_absY
3071
0x019E _SBC_imm
3072
0x019F _SBC_absY
3073
0x01A0 _ASL_A
3074
0x01A1 _INC_A
3075
0x01A2 _ROL_A
3076
0x01A3 _DEC_A
3077
0x01A4 _LSR_A
3078
0x01A5 _PHY
3079
0x01A6 _ROR_A
3080
0x01A7 _PLY
3081
0x01A8 _TXA
3082
0x01A9 _TXS
3083
0x01AA _TAX
3084
0x01AB _TSX
3085
0x01AC _DEX
3086
0x01AD _PHX
3087
0x01AE _NOP
3088
0x01AF _PLX
3089
0x01B0 _NOP_0B
3090
0x01B1 _NOP_1B
3091
0x01B2 _NOP_2B
3092
0x01B3 _NOP_3B
3093
0x01B4 _NOP_4B
3094
0x01B5 _NOP_5B
3095
0x01B6 _NOP_6B
3096
0x01B7 _NOP_7B
3097
0x01B8 _NOP_8B
3098
0x01B9 _NOP_9B
3099
0x01BA _NOP_AB
3100
0x01BB _NOP_BB
3101
0x01BC _WAI_CB
3102
0x01BD _STP_DB
3103
0x01BE _NOP_EB
3104
0x01BF _NOP_FB
3105
0x01C0 _TSB_abs
3106
0x01C1 _TRB_abs
3107
0x01C2 _BIT_abs
3108
0x01C3 _BIT_absX
3109
0x01C4 _JMP_abs
3110
0x01C5 _NOP_5C
3111
0x01C6 _JMP_absi
3112
0x01C7 _JMP_absXi
3113
0x01C8 _STY_abs
3114
0x01C9 _STZ_abs
3115
0x01CA _LDY_abs
3116
0x01CB _LDY_absX
3117
0x01CC _CPY_abs
3118
0x01CD _NOP_DC
3119
0x01CE _CPX_abs
3120
0x01CF _NOP_FC
3121
0x01D0 _ORA_abs
3122
0x01D1 _ORA_absX
3123
0x01D2 _AND_abs
3124
0x01D3 _AND_absX
3125
0x01D4 _EOR_abs
3126
0x01D5 _EOR_absX
3127
0x01D6 _ADC_abs
3128
0x01D7 _ADC_absX
3129
0x01D8 _STA_abs
3130
0x01D9 _STA_absX
3131
0x01DA _LDA_abs
3132
0x01DB _LDA_absX
3133
0x01DC _CMP_abs
3134
0x01DD _CMP_absX
3135
0x01DE _SBC_abs
3136
0x01DF _SBC_absX
3137
0x01E0 _ASL_abs
3138
0x01E1 _ASL_absX
3139
0x01E2 _ROL_abs
3140
0x01E3 _ROL_absX
3141
0x01E4 _LSR_abs
3142
0x01E5 _LSR_absX
3143
0x01E6 _ROR_abs
3144
0x01E7 _ROR_absX
3145
0x01E8 _STX_abs
3146
0x01E9 _STZ_absX
3147
0x01EA _LDX_abs
3148
0x01EB _LDX_absY
3149
0x01EC _DEC_abs
3150
0x01ED _DEC_absX
3151
0x01EE _INC_abs
3152
0x01EF _INC_absX
3153
0x01F0 _BBR0_dp_rel
3154
0x01F1 _BBR1_dp_rel
3155
0x01F2 _BBR2_dp_rel
3156
0x01F3 _BBR3_dp_rel
3157
0x01F4 _BBR4_dp_rel
3158
0x01F5 _BBR5_dp_rel
3159
0x01F6 _BBR6_dp_rel
3160
0x01F7 _BBR7_dp_rel
3161
0x01F8 _BBS0_dp_rel
3162
0x01F9 _BBS1_dp_rel
3163
0x01FA _BBS2_dp_rel
3164
0x01FB _BBS3_dp_rel
3165
0x01FC _BBS4_dp_rel
3166
0x01FD _BBS5_dp_rel
3167
0x01FE _BBS6_dp_rel
3168
0x01FF _BBS7_dp_rel
3169
0x0200 _Last
3170
0x0200 _end
3171
 
3172
File  Prog
3173
Line  Line   Opcode                                Line
3174
0614 0x0000 _Start: .org 0
3175
0615 0x0000  600D0300 BRV2 _Rst,1,1,,, IF -- Load {OP2, OP1} with Vector
3176
0616 0x0001 _Rst:
3177
0617 0x0001  200C0280 FTCH $,1,0,,, RD, OP1 -- Read Indirect Dst Ptr Lo
3178
0618 0x0002  20143A40 FTCH $,1,0, Nxt, Jmp, RD, OP2 -- Read Indirect Dst Ptr Hi
3179
0619  --
3180
0620 0x0003  501D07C0 BRV1 $,1,1,, Pls, IF, IR -- Instruction Fetch
3181
0622  -- this space reserved for future use - boot loader for the microprogram ROMs
3182
0624  --------------------------------------------------------------------------------
3183
0625  --------------------------------------------------------------------------------
3184
0626  -- 2-Way Jump Table: _Nxt and _Int
3185
0627  --------------------------------------------------------------------------------
3186
0628  --------------------------------------------------------------------------------
3187
0629  -- Instruction Fetch and Execute Microstate
3188
0630  --------------------------------------------------------------------------------
3189
0000 0x0004  00000000 added by program
3190
0000 0x0005  00000000 added by program
3191
0000 0x0006  00000000 added by program
3192
0000 0x0007  00000000 added by program
3193
0000 0x0008  00000000 added by program
3194
0000 0x0009  00000000 added by program
3195
0000 0x000A  00000000 added by program
3196
0000 0x000B  00000000 added by program
3197
0000 0x000C  00000000 added by program
3198
0000 0x000D  00000000 added by program
3199
0000 0x000E  00000000 added by program
3200
0000 0x000F  00000000 added by program
3201
0000 0x0010  00000000 added by program
3202
0000 0x0011  00000000 added by program
3203
0000 0x0012  00000000 added by program
3204
0000 0x0013  00000000 added by program
3205
0000 0x0014  00000000 added by program
3206
0000 0x0015  00000000 added by program
3207
0000 0x0016  00000000 added by program
3208
0000 0x0017  00000000 added by program
3209
0000 0x0018  00000000 added by program
3210
0000 0x0019  00000000 added by program
3211
0000 0x001A  00000000 added by program
3212
0000 0x001B  00000000 added by program
3213
0000 0x001C  00000000 added by program
3214
0000 0x001D  00000000 added by program
3215
0000 0x001E  00000000 added by program
3216
0000 0x001F  00000000 added by program
3217
0631 0x0020 _Nxt: .org 32
3218
0632 0x0020 _Psh:
3219
0633 0x0020 _Pop:
3220
0634 0x0020 _Rel:
3221
0635 0x0020 _Imm:
3222
0636 0x0020  510507C8 BRV1 _Nxt,1,1,, Pls, IF, IR,, WE_R -- Instruction Fetch/Execute
3223
0638  --------------------------------------------------------------------------------
3224
0639  -- Interrupt Entry - NMI, (unmasked) IRQ (falls through to _BRK)
3225
0640  --------------------------------------------------------------------------------
3226
0642 0x0021 _Int:
3227
0643 0x0021  61154168 BRV2 _Brk,1,1, Stk,, WR, PCH, Psh, WE_R -- Push PCH, capture Vector
3228
0645  --------------------------------------------------------------------------------
3229
0646  -- BRK Entry - BRK #imm (_Int falls through to _Brk, see comment above)
3230
0647  --------------------------------------------------------------------------------
3231
0649 0x0022 _Brk:
3232
0650 0x0022  211441A0 FTCH $,1,0, Stk,, WR, PCL, Psh -- Push PCL
3233
0651 0x0023  211C49E1 FTCH $,1,0, Stk, Jmp, WR, PSW, Psh,, ISR -- Push P; Clr D, Set I
3234
0652  --
3235
0653 0x0024  21248280 FTCH $,1,0, LDA,, RD, OP1 -- Read Indirect Dst Ptr Lo
3236
0654 0x0025  212C3A40 FTCH $,1,0, Nxt, Jmp, RD, OP2 -- Read Indirect Dst Ptr Hi
3237
0655  --
3238
0656 0x0026  513507C0 BRV1 $,1,1,, Pls, IF, IR -- Instruction Fetch
3239
0658  --------------------------------------------------------------------------------
3240
0659  -- Jump To Subroutine - JSR Abs (Not interruptable)
3241
0660  --------------------------------------------------------------------------------
3242
0662 0x0027 _JSR:
3243
0663 0x0027  213C0340 FTCH $,1,0,,, IF, OP2 -- Load Indirect Dst Ptr Lo
3244
0664 0x0028  21444160 FTCH $,1,0, Stk,, WR, PCH, Psh -- Push PC Hi
3245
0665 0x0029  410449A0 BRV0 _Nxt,1,0, Stk, Jmp, WR, PCL, Psh -- Push PC Lo
3246
0667  --------------------------------------------------------------------------------
3247
0668  -- Return from Interrupt - RTI (Not interruptable)
3248
0669  --------------------------------------------------------------------------------
3249
0671 0x002A _RTI:
3250
0672 0x002A  215442BC FTCH $,1,0, Stk,, RD, OP1, Pop, WE_P -- Pop PCL
3251
0673 0x002B  215C4A70 FTCH $,1,0, Stk, Jmp, RD, OP2, Pop -- Pop PCH
3252
0674  --
3253
0675 0x002C  516507C0 BRV1 $,1,1,, Pls, IF, IR -- Next, no Reg_WE, P okay
3254
0677  --------------------------------------------------------------------------------
3255
0678  -- Return From Subroutine - RTS (Not interruptable)
3256
0679  --------------------------------------------------------------------------------
3257
0681 0x002D _RTS:
3258
0682 0x002D  41044A70 BRV0 _Nxt,1,0, Stk, Jmp, RD, OP2, Pop -- Pop PCH
3259
0684  --------------------------------------------------------------------------------
3260
0685  -- Jump Absolute - JMP Abs (Not interruptable)
3261
0686  --------------------------------------------------------------------------------
3262
0688 0x002E _Jmp:
3263
0689 0x002E  41040B40 BRV0 _Nxt,1,0,, Jmp, IF, OP2
3264
0691  --------------------------------------------------------------------------------
3265
0692  -- Jump Indirect - JMP (Abs) (Not interruptable)
3266
0693  --------------------------------------------------------------------------------
3267
0695 0x002F _JmpI:
3268
0696 0x002F  217C0740 FTCH $,1,0,, Pls, IF, OP2 -- Load Indirect Dst Ptr Lo
3269
0697 0x0030  21848280 FTCH $,1,0, LDA,, RD, OP1 -- Read Indirect Dst Ptr Hi
3270
0698 0x0031  41043A40 BRV0 _Nxt,1,0, Nxt, Jmp, RD, OP2 -- Goto Next
3271
0700  --------------------------------------------------------------------------------
3272
0701  -- Jump Pre-Indexed Indirect - JMP (Abs, X) (Not interruptable)
3273
0702  --------------------------------------------------------------------------------
3274
0704 0x0032 _JmpXI:
3275
0705 0x0032  21940740 FTCH $,1,0,, Pls, IF, OP2 -- Load Indirect Dst Ptr Lo
3276
0706 0x0033  219CE280 FTCH $,1,0, LDAX,, RD, OP1 -- Read Indirect Dst Ptr Hi
3277
0707 0x0034  41043A40 BRV0 _Nxt,1,0, Nxt, Jmp, RD, OP2 -- Goto Next
3278
0709  --------------------------------------------------------------------------------
3279
0710  -- Memory Read-Only Data Page Direct - xxx DP
3280
0711  --------------------------------------------------------------------------------
3281
0713 0x0035 _RO_DP:
3282
0714 0x0035  31045280 BMW _Nxt,1,0, DPN,, RD, OP1 -- Read DP Mem
3283
0716  -----------------------------------------------------------------------------
3284
0717  -- Memory Read-Only Pre-Indexed Data Page Direct - xxx DP, X
3285
0718  --------------------------------------------------------------------------------
3286
0720 0x0036 _RO_DPX:
3287
0721 0x0036  31046280 BMW _Nxt,1,0, DPX,, RD, OP1 -- Read DP Mem
3288
0723  --------------------------------------------------------------------------------
3289
0724  -- Memory Read-Only Post-Indexed Data Page Direct - xxx DP, Y
3290
0725  --------------------------------------------------------------------------------
3291
0727 0x0037 _RO_DPY:
3292
0728 0x0037  31047280 BMW _Nxt,1,0, DPY,, RD, OP1 -- Read DP Mem
3293
0730  ------------------------------------------------------------------------------
3294
0731  -- Memory Read-Only Data Page Indirect - xxx (DP)
3295
0732  --------------------------------------------------------------------------------
3296
0734 0x0038 _RO_DPI:
3297
0735 0x0038  21C45280 FTCH $,1,0, DPN,, RD, OP1 -- Read DP Mem Ptr Lo
3298
0736 0x0039  21CC3240 FTCH $,1,0, Nxt,, RD, OP2 -- Read DP Mem Ptr Hi
3299
0737 0x003A  31048280 BMW _Nxt,1,0, LDA,, RD, OP1 -- Read Operand
3300
0739  --------------------------------------------------------------------------------
3301
0740  -- Memory Read-Only Pre-Indexed Data Page Indirect - xxx (DP, X)
3302
0741  --------------------------------------------------------------------------------
3303
0743 0x003B _RO_DPXI:
3304
0744 0x003B  21DC6280 FTCH $,1,0, DPX,, RD, OP1 -- Read DP Mem Ptr Lo (DP,X)
3305
0745 0x003C  21E43240 FTCH $,1,0, Nxt,, RD, OP2 -- Read DP Mem Ptr Hi
3306
0746 0x003D  31048280 BMW _Nxt,1,0, LDA,, RD, OP1 -- Read Operand
3307
0748  --------------------------------------------------------------------------------
3308
0749  -- Memory Read-Only Post-Indexed Data Page Indirect - xxx (DP), Y
3309
0750  --------------------------------------------------------------------------------
3310
0752 0x003E _RO_DPIY:
3311
0753 0x003E  21F45280 FTCH $,1,0, DPN,, RD, OP1 -- Read DP Mem Ptr Lo
3312
0754 0x003F  21FC3240 FTCH $,1,0, Nxt,, RD, OP2 -- Read DP Mem Ptr Hi
3313
0755 0x0040  3104F280 BMW _Nxt,1,0, LDAY,, RD, OP1 -- Read Operand (DP),Y
3314
0757  --------------------------------------------------------------------------------
3315
0758  -- Memory Read-Only Absolute - xxx Abs
3316
0759  --------------------------------------------------------------------------------
3317
0761 0x0041 _RO_Abs:
3318
0762 0x0041  220C0740 FTCH $,1,0,, Pls, IF, OP2 -- Read Mem Ptr Hi
3319
0763 0x0042  31048280 BMW _Nxt,1,0, LDA,, RD, OP1 -- Read Operand
3320
0765  --------------------------------------------------------------------------------
3321
0766  -- Memory Read-Only Pre-Indexed Absolute - xxx Abs, X
3322
0767  --------------------------------------------------------------------------------
3323
0769 0x0043 _RO_AbsX:
3324
0770 0x0043  221C0740 FTCH $,1,0,, Pls, IF, OP2 -- Read Mem Ptr Hi
3325
0771 0x0044  3104E280 BMW _Nxt,1,0, LDAX,, RD, OP1 -- Read Operand Abs,X
3326
0773  --------------------------------------------------------------------------------
3327
0774  -- Memory Read-Only Post-Indexed Absolute - xxx Abs, Y
3328
0775  --------------------------------------------------------------------------------
3329
0777 0x0045 _RO_AbsY:
3330
0778 0x0045  222C0740 FTCH $,1,0,, Pls, IF, OP2 -- Read Mem Ptr Hi
3331
0779 0x0046  3104F280 BMW _Nxt,1,0, LDAY,, RD, OP1 -- Read Operand Abs,Y
3332
0781  --------------------------------------------------------------------------------
3333
0782  -- Memory Write-Only Data Page Direct - xxx DP
3334
0783  --------------------------------------------------------------------------------
3335
0785 0x0047 _WO_DP:
3336
0786 0x0047  31045100 BMW _Nxt,1,0, DPN,, WR -- Write to DP
3337
0788  -----------------------------------------------------------------------------
3338
0789  -- Memory Write-Only Pre-Indexed Data Page Direct - xxx DP, X
3339
0790  --------------------------------------------------------------------------------
3340
0792 0x0048 _WO_DPX:
3341
0793 0x0048  31046100 BMW _Nxt,1,0, DPX,, WR -- Write to DP,X
3342
0795  -----------------------------------------------------------------------------
3343
0796  -- Memory Write-Only Post-Indexed Data Page Direct - xxx DP, Y
3344
0797  --------------------------------------------------------------------------------
3345
0799 0x0049 _WO_DPY:
3346
0800 0x0049  31047100 BMW _Nxt,1,0, DPY,, WR -- Write to DP,Y
3347
0802  --------------------------------------------------------------------------------
3348
0803  -- Memory Write-Only Data Page Indirect - xxx (DP)
3349
0804  --------------------------------------------------------------------------------
3350
0806 0x004A _WO_DPI:
3351
0807 0x004A  22545280 FTCH $,1,0, DPN,, RD, OP1 -- Read DP Mem Ptr Lo
3352
0808 0x004B  225C3240 FTCH $,1,0, Nxt,, RD, OP2 -- Read DP Mem Ptr Hi
3353
0809 0x004C  31048100 BMW _Nxt,1,0, LDA,, WR -- Write to (DP)
3354
0811  --------------------------------------------------------------------------------
3355
0812  -- Memory Write-Only Data Page Indirect - xxx (DP, X)
3356
0813  --------------------------------------------------------------------------------
3357
0815 0x004D _WO_DPXI:
3358
0816 0x004D  226C6280 FTCH $,1,0, DPX,, RD, OP1 -- Read DP Mem Ptr Lo
3359
0817 0x004E  22743240 FTCH $,1,0, Nxt,, RD, OP2 -- Read DP Mem Ptr Hi
3360
0818 0x004F  31048100 BMW _Nxt,1,0, LDA,, WR -- Write to (DP)
3361
0820  --------------------------------------------------------------------------------
3362
0821  -- Memory Write-Only Post-Indexed Data Page Indirect - xxx (DP), Y
3363
0822  --------------------------------------------------------------------------------
3364
0824 0x0050 _WO_DPIY:
3365
0825 0x0050  22845280 FTCH $,1,0, DPN,, RD, OP1 -- Read DP Mem Ptr Lo
3366
0826 0x0051  228C3240 FTCH $,1,0, Nxt,, RD, OP2 -- Read DP Mem Ptr Hi
3367
0827 0x0052  3104F100 BMW _Nxt,1,0, LDAY,, WR -- Write to (DP)
3368
0829  --------------------------------------------------------------------------------
3369
0830  -- Memory Write-Only Absolute - xxx Abs
3370
0831  --------------------------------------------------------------------------------
3371
0833 0x0053 _WO_Abs:
3372
0834 0x0053  229C0740 FTCH $,1,0,, Pls, IF, OP2 -- Read Mem Ptr Hi
3373
0835 0x0054  31048100 BMW _Nxt,1,0, LDA,, WR -- Write to Abs
3374
0837  --------------------------------------------------------------------------------
3375
0838  -- Memory Write-Only Pre-Indexed Absolute - xxx Abs, X
3376
0839  --------------------------------------------------------------------------------
3377
0841 0x0055 _WO_AbsX:
3378
0842 0x0055  22AC0740 FTCH $,1,0,, Pls, IF, OP2 -- Read Mem Ptr Hi
3379
0843 0x0056  3104E100 BMW _Nxt,1,0, LDAX,, WR -- Write to Abs,X
3380
0845  --------------------------------------------------------------------------------
3381
0846  -- Memory Write-Only Post-Indexed Absolute - xxx Abs, Y
3382
0847  --------------------------------------------------------------------------------
3383
0849 0x0057 _WO_AbsY:
3384
0850 0x0057  22BC0740 FTCH $,1,0,, Pls, IF, OP2 -- Read Mem Ptr Hi
3385
0851 0x0058  3104F100 BMW _Nxt,1,0, LDAY,, WR -- Write to Abs,Y
3386
0853  --------------------------------------------------------------------------------
3387
0854  -- 2-way Read-Modify-Write Instruction/Interrupt Jump Table
3388
0855  --------------------------------------------------------------------------------
3389
0000 0x0059  00000000 added by program
3390
0000 0x005A  00000000 added by program
3391
0000 0x005B  00000000 added by program
3392
0000 0x005C  00000000 added by program
3393
0000 0x005D  00000000 added by program
3394
0000 0x005E  00000000 added by program
3395
0000 0x005F  00000000 added by program
3396
0857 0x0060 _RMW: .org 96
3397
0858 0x0060  530507C0 BRV1 _RMW,1,1,, Pls, IF, IR -- Instruction Fetch/Execute
3398
0859 0x0061  61154160 BRV2 _Brk,1,1, Stk, , WR, PCH, Psh -- Push PCH, capture Vector
3399
0861  --------------------------------------------------------------------------------
3400
0862  -- Memory Read-Modify-Write Data Page Direct - xxx DP
3401
0863  --------------------------------------------------------------------------------
3402
0865 0x0062 _RMW_DP:
3403
0866 0x0062  23145280 FTCH $,1,0, DPN,, RD, OP1 -- Read from DP
3404
0867 0x0063  33042108 BMW _RMW,1,0, MAR,, WR,,,WE_R -- Write to DP
3405
0869  --------------------------------------------------------------------------------
3406
0870  -- Memory Read-Modify-Write Pre-Indexed Data Page Direct - xxx DP, X
3407
0871  --------------------------------------------------------------------------------
3408
0873 0x0064 _RMW_DPX:
3409
0874 0x0064  23246280 FTCH $,1,0, DPX,, RD, OP1 -- Read from DP,X
3410
0875 0x0065  33042108 BMW _RMW,1,0, MAR,, WR,,,WE_R -- Write to DP,X
3411
0877  --------------------------------------------------------------------------------
3412
0878  -- Memory Read-Modify-Write Post-Indexed Data Page Direct - xxx DP, Y
3413
0879  --------------------------------------------------------------------------------
3414
0881 0x0066 _RMW_DPY:
3415
0882 0x0066  23347280 FTCH $,1,0, DPY,, RD, OP1 -- Read from DP,Y
3416
0883 0x0067  33042108 BMW _RMW,1,0, MAR,, WR,,,WE_R -- Write to DP,Y
3417
0885  --------------------------------------------------------------------------------
3418
0886  -- Memory Read-Modify-Write Absolute - xxx Abs
3419
0887  --------------------------------------------------------------------------------
3420
0889 0x0068 _RMW_Abs:
3421
0890 0x0068  23440740 FTCH $,1,0,, Pls, IF, OP2 -- Read Mem Ptr Hi
3422
0891 0x0069  234C8280 FTCH $,1,0, LDA,, RD, OP1 -- Read from Abs
3423
0892 0x006A  33042108 BMW _RMW,1,0, MAR,, WR,,,WE_R -- Write to Abs
3424
0894  --------------------------------------------------------------------------------
3425
0895  -- Memory Read-Modify-Write Pre-Indexed Absolute - xxx Abs, X
3426
0896  --------------------------------------------------------------------------------
3427
0898 0x006B _RMW_AbsX:
3428
0899 0x006B  235C0740 FTCH $,1,0,, Pls, IF, OP2 -- Read Mem Ptr Hi
3429
0900 0x006C  2364E280 FTCH $,1,0, LDAX,, RD, OP1 -- Read from Abs,X
3430
0901 0x006D  33042108 BMW _RMW,1,0, MAR,, WR,,,WE_R -- Write to Abs,X
3431
0903  --------------------------------------------------------------------------------
3432
0904  -- Memory Read-Modify-Write Post-Indexed Absolute - xxx Abs, Y
3433
0905  --------------------------------------------------------------------------------
3434
0907 0x006E _RMW_AbsY:
3435
0908 0x006E  23740740 FTCH $,1,0,, Pls, IF, OP2 -- Read Mem Ptr Hi
3436
0909 0x006F  237CF280 FTCH $,1,0, LDAY,, RD, OP1 -- Read from Abs,Y
3437
0910 0x0070  33042108 BMW _RMW,1,0, MAR,, WR,,,WE_R -- Write to Abs,Y
3438
0912  --------------------------------------------------------------------------------
3439
0913  -- Rockwell BBRx/BBSx dp,rel instructions
3440
0914  --------------------------------------------------------------------------------
3441
0916 0x0071 _BByx_dp_rel:
3442
0917 0x0071  238C5280 FTCH $,1,0, DPN,, RD, OP1 -- Read from DP
3443
0918 0x0072  41040F80 BRV0 _Nxt,1,0,, Rel, IF, OP1 -- Read rel value
3444
0920  --------------------------------------------------------------------------------
3445
0921  -- End of Microprogram Routines for Normal Instructions
3446
0922  --------------------------------------------------------------------------------
3447
0924 0x0073 _End_uPgm:
3448
0926  --------------------------------------------------------------------------------
3449
0927  -- WAI - Wait for Interrupt
3450
0928  --------------------------------------------------------------------------------
3451
0000 0x0073  00000000 added by program
3452
0000 0x0074  00000000 added by program
3453
0000 0x0075  00000000 added by program
3454
0000 0x0076  00000000 added by program
3455
0000 0x0077  00000000 added by program
3456
0000 0x0078  00000000 added by program
3457
0000 0x0079  00000000 added by program
3458
0000 0x007A  00000000 added by program
3459
0000 0x007B  00000000 added by program
3460
0000 0x007C  00000000 added by program
3461
0000 0x007D  00000000 added by program
3462
0000 0x007E  00000000 added by program
3463
0000 0x007F  00000000 added by program
3464
0000 0x0080  00000000 added by program
3465
0000 0x0081  00000000 added by program
3466
0000 0x0082  00000000 added by program
3467
0000 0x0083  00000000 added by program
3468
0000 0x0084  00000000 added by program
3469
0000 0x0085  00000000 added by program
3470
0000 0x0086  00000000 added by program
3471
0000 0x0087  00000000 added by program
3472
0000 0x0088  00000000 added by program
3473
0000 0x0089  00000000 added by program
3474
0000 0x008A  00000000 added by program
3475
0000 0x008B  00000000 added by program
3476
0000 0x008C  00000000 added by program
3477
0000 0x008D  00000000 added by program
3478
0000 0x008E  00000000 added by program
3479
0000 0x008F  00000000 added by program
3480
0000 0x0090  00000000 added by program
3481
0000 0x0091  00000000 added by program
3482
0000 0x0092  00000000 added by program
3483
0000 0x0093  00000000 added by program
3484
0000 0x0094  00000000 added by program
3485
0000 0x0095  00000000 added by program
3486
0000 0x0096  00000000 added by program
3487
0000 0x0097  00000000 added by program
3488
0000 0x0098  00000000 added by program
3489
0000 0x0099  00000000 added by program
3490
0000 0x009A  00000000 added by program
3491
0000 0x009B  00000000 added by program
3492
0000 0x009C  00000000 added by program
3493
0000 0x009D  00000000 added by program
3494
0000 0x009E  00000000 added by program
3495
0000 0x009F  00000000 added by program
3496
0000 0x00A0  00000000 added by program
3497
0000 0x00A1  00000000 added by program
3498
0000 0x00A2  00000000 added by program
3499
0000 0x00A3  00000000 added by program
3500
0000 0x00A4  00000000 added by program
3501
0000 0x00A5  00000000 added by program
3502
0000 0x00A6  00000000 added by program
3503
0000 0x00A7  00000000 added by program
3504
0000 0x00A8  00000000 added by program
3505
0000 0x00A9  00000000 added by program
3506
0000 0x00AA  00000000 added by program
3507
0000 0x00AB  00000000 added by program
3508
0000 0x00AC  00000000 added by program
3509
0000 0x00AD  00000000 added by program
3510
0000 0x00AE  00000000 added by program
3511
0000 0x00AF  00000000 added by program
3512
0000 0x00B0  00000000 added by program
3513
0000 0x00B1  00000000 added by program
3514
0000 0x00B2  00000000 added by program
3515
0000 0x00B3  00000000 added by program
3516
0000 0x00B4  00000000 added by program
3517
0000 0x00B5  00000000 added by program
3518
0000 0x00B6  00000000 added by program
3519
0000 0x00B7  00000000 added by program
3520
0000 0x00B8  00000000 added by program
3521
0000 0x00B9  00000000 added by program
3522
0000 0x00BA  00000000 added by program
3523
0000 0x00BB  00000000 added by program
3524
0000 0x00BC  00000000 added by program
3525
0000 0x00BD  00000000 added by program
3526
0000 0x00BE  00000000 added by program
3527
0000 0x00BF  00000000 added by program
3528
0000 0x00C0  00000000 added by program
3529
0000 0x00C1  00000000 added by program
3530
0000 0x00C2  00000000 added by program
3531
0000 0x00C3  00000000 added by program
3532
0000 0x00C4  00000000 added by program
3533
0000 0x00C5  00000000 added by program
3534
0000 0x00C6  00000000 added by program
3535
0000 0x00C7  00000000 added by program
3536
0000 0x00C8  00000000 added by program
3537
0000 0x00C9  00000000 added by program
3538
0000 0x00CA  00000000 added by program
3539
0000 0x00CB  00000000 added by program
3540
0000 0x00CC  00000000 added by program
3541
0000 0x00CD  00000000 added by program
3542
0000 0x00CE  00000000 added by program
3543
0000 0x00CF  00000000 added by program
3544
0000 0x00D0  00000000 added by program
3545
0000 0x00D1  00000000 added by program
3546
0000 0x00D2  00000000 added by program
3547
0000 0x00D3  00000000 added by program
3548
0000 0x00D4  00000000 added by program
3549
0000 0x00D5  00000000 added by program
3550
0000 0x00D6  00000000 added by program
3551
0000 0x00D7  00000000 added by program
3552
0000 0x00D8  00000000 added by program
3553
0000 0x00D9  00000000 added by program
3554
0000 0x00DA  00000000 added by program
3555
0000 0x00DB  00000000 added by program
3556
0000 0x00DC  00000000 added by program
3557
0000 0x00DD  00000000 added by program
3558
0000 0x00DE  00000000 added by program
3559
0000 0x00DF  00000000 added by program
3560
0000 0x00E0  00000000 added by program
3561
0000 0x00E1  00000000 added by program
3562
0000 0x00E2  00000000 added by program
3563
0000 0x00E3  00000000 added by program
3564
0000 0x00E4  00000000 added by program
3565
0000 0x00E5  00000000 added by program
3566
0000 0x00E6  00000000 added by program
3567
0000 0x00E7  00000000 added by program
3568
0000 0x00E8  00000000 added by program
3569
0000 0x00E9  00000000 added by program
3570
0000 0x00EA  00000000 added by program
3571
0000 0x00EB  00000000 added by program
3572
0000 0x00EC  00000000 added by program
3573
0000 0x00ED  00000000 added by program
3574
0000 0x00EE  00000000 added by program
3575
0000 0x00EF  00000000 added by program
3576
0000 0x00F0  00000000 added by program
3577
0000 0x00F1  00000000 added by program
3578
0000 0x00F2  00000000 added by program
3579
0000 0x00F3  00000000 added by program
3580
0000 0x00F4  00000000 added by program
3581
0000 0x00F5  00000000 added by program
3582
0000 0x00F6  00000000 added by program
3583
0000 0x00F7  00000000 added by program
3584
0000 0x00F8  00000000 added by program
3585
0000 0x00F9  00000000 added by program
3586
0000 0x00FA  00000000 added by program
3587
0000 0x00FB  00000000 added by program
3588
0930 0x00FC _WAI: .org 252 -- Set up 4-way table for WAI instruction
3589
0931 0x00FC  37E40000 BMW _WAI,1,0 -- No external interrupts asserted
3590
0932 0x00FD  410C0000 BRV0 _Int,1,0 -- Int asserted by NMI, do NMI interrupt
3591
0933 0x00FE  41040000 BRV0 _Nxt,1,0 -- xIRQ asserted with IRQ_Msk asserted, continue
3592
0934 0x00FF  410C0000 BRV0 _Int,1,0 -- Int asserted by xIRQ, do IRQ interrupt
3593
0936 0x0100 _IDEC_Start: .org 256
3594
0938  --------------------------------------------------------------------------------
3595
0939  -- Start of Instruction Decode Table (Entry for each Opcode)
3596
0940  --
3597
0941  -- Instead of being organized in numerical order, the table is organized by
3598
0942  -- rows: the least significant nibble and the most significant nibble of the
3599
0943  -- opcode are swapped. This organization more clearly shows the arrangement of
3600
0944  -- the addressing modes of the WDC W65C02 microprocessor being emulated. It al-
3601
0945  -- so more clearly shows the regularity of the ALU instructions that are imple-
3602
0946  -- mented. The implementation of the microprogram is first based on the addres-
3603
0947  -- sing mode, and then on the ALU function. Single cycle instructions will be
3604
0948  -- easily recognized in the following table because their table entry use the
3605
0949  -- BRV3 MPC instruction. Multi-cycle instructions use the BRV0 MPC instruction
3606
0950  -- to vector a microroutine in the lower 256 words of the microprogram ROM/RAM.
3607
0951  -- Single byte instructions such as BRK, RTS, RTI, and register push/pull in-
3608
0952  -- structions (PHA, PLA, PHP, PLP, PHX, PLX, PHY, PLY), and multi-byte instruc-
3609
0953  -- tions like JSR abs are implemented with special microroutines that perform
3610
0954  -- the necessary stack accesses. The remainder of the microroutines are orga-
3611
0955  -- nized by addressing mode, and whether the mode is used in a RO, WO, or RMW
3612
0956  -- manner.
3613
0957  --
3614
0958  -- Microprogram Word Format:
3615
0959  --
3616
0960  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
3617
0961  --
3618
0962  --------------------------------------------------------------------------------
3619
0964  --------------------------------------------------------------------------------
3620
0965  -- Row 0 : 0x00-0xF0 (All branches/JMPs/JSR implemented as uninterruptable)
3621
0966  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
3622
0967  --------------------------------------------------------------------------------
3623
0968 0x0100 _BRK_imm:
3624
0969 0x0100  6115416C BRV2 _Brk,1,1, Stk,, WR, PCH, Psh, WE_P -- Start Break Handler
3625
0970 0x0101 _BPL_rel:
3626
0971 0x0101  41040F80 BRV0 _Rel,1,0,, Rel, IF, OP1 -- Read rel Value
3627
0972 0x0102 _JSR_abs:
3628
0973 0x0102  413C0780 BRV0 _JSR,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
3629
0974 0x0103 _BMI_rel:
3630
0975 0x0103  41040F80 BRV0 _Rel,1,0,, Rel, IF, OP1 -- Read rel Value
3631
0976 0x0104 _RTI_imp:
3632
0977 0x0104  415442B0 BRV0 _RTI,1,0, Stk,, RD, OP1, Pop -- Read PSW from Stack
3633
0978 0x0105 _BVC_rel:
3634
0979 0x0105  41040F80 BRV0 _Rel,1,0,, Rel, IF, OP1 -- Read rel Value
3635
0980 0x0106 _RTS_imp:
3636
0981 0x0106  416C42B0 BRV0 _RTS,1,0, Stk,, RD, OP1, Pop -- Read PCL from Stack
3637
0982 0x0107 _BVS_rel:
3638
0983 0x0107  41040F80 BRV0 _Rel,1,0,, Rel, IF, OP1 -- Read rel Value
3639
0984 0x0108 _BRA_rel:
3640
0985 0x0108  41040F80 BRV0 _Rel,1,0,, Rel, IF, OP1 -- Read rel Value
3641
0986 0x0109 _BCC_rel
3642
0987 0x0109  41040F80 BRV0 _Rel,1,0,, Rel, IF, OP1 -- Read rel Value
3643
0988 0x010A _LDY_imm:
3644
0989 0x010A  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read #imm Value
3645
0990 0x010B _BCS_rel:
3646
0991 0x010B  41040F80 BRV0 _Rel,1,0,, Rel, IF, OP1 -- Read rel Value
3647
0992 0x010C _CPY_imm:
3648
0993 0x010C  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read #imm Value
3649
0994 0x010D _BNE_rel:
3650
0995 0x010D  41040F80 BRV0 _Rel,1,0,, Rel, IF, OP1 -- Read rel Value
3651
0996 0x010E _CPX_imm:
3652
0997 0x010E  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read #imm Value
3653
0998 0x010F _BEQ_rel:
3654
0999 0x010F  41040F80 BRV0 _Rel,1,0,, Rel, IF, OP1 -- Read rel Value
3655
1000  --------------------------------------------------------------------------------
3656
1001  -- Row 1 : 0x01-0xF1
3657
1002  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
3658
1003  --------------------------------------------------------------------------------
3659
1004 0x0110 _ORA_dpXi:
3660
1005 0x0110  41DC0780 BRV0 _RO_DPXI,1,0,, Pls, IF, OP1 -- Read DP Ptr
3661
1006 0x0111 _ORA_dpiY:
3662
1007 0x0111  41F40780 BRV0 _RO_DPIY,1,0,, Pls, IF, OP1 -- Read DP Ptr
3663
1008 0x0112 _AND_dpXi:
3664
1009 0x0112  41DC0780 BRV0 _RO_DPXI,1,0,, Pls, IF, OP1 -- Read DP Ptr
3665
1010 0x0113 _AND_dpiY:
3666
1011 0x0113  41F40780 BRV0 _RO_DPIY,1,0,, Pls, IF, OP1 -- Read DP Ptr
3667
1012 0x0114 _EOR_dpXi:
3668
1013 0x0114  41DC0780 BRV0 _RO_DPXI,1,0,, Pls, IF, OP1 -- Read DP Ptr
3669
1014 0x0115 _EOR_dpiY:
3670
1015 0x0115  41F40780 BRV0 _RO_DPIY,1,0,, Pls, IF, OP1 -- Read DP Ptr
3671
1016 0x0116 _ADC_dpXi:
3672
1017 0x0116  41DC0780 BRV0 _RO_DPXI,1,0,, Pls, IF, OP1 -- Read DP Ptr
3673
1018 0x0117 _ADC_dpiY:
3674
1019 0x0117  41F40780 BRV0 _RO_DPIY,1,0,, Pls, IF, OP1 -- Read DP Ptr
3675
1020 0x0118 _STA_dpXi:
3676
1021 0x0118  426C0780 BRV0 _WO_DPXI,1,0,, Pls, IF, OP1 -- Read DP Ptr
3677
1022 0x0119 _STA_dpiY:
3678
1023 0x0119  42840780 BRV0 _WO_DPIY,1,0,, Pls, IF, OP1 -- Read DP Ptr
3679
1024 0x011A _LDA_dpXi:
3680
1025 0x011A  41DC0780 BRV0 _RO_DPXI,1,0,, Pls, IF, OP1 -- Read DP Ptr
3681
1026 0x011B _LDA_dpiY:
3682
1027 0x011B  41F40780 BRV0 _RO_DPIY,1,0,, Pls, IF, OP1 -- Read DP Ptr
3683
1028 0x011C _CMP_dpXi:
3684
1029 0x011C  41DC0780 BRV0 _RO_DPXI,1,0,, Pls, IF, OP1 -- Read DP Ptr
3685
1030 0x011D _CMP_dpiY:
3686
1031 0x011D  41F40780 BRV0 _RO_DPIY,1,0,, Pls, IF, OP1 -- Read DP Ptr
3687
1032 0x011E _SBC_dpXi:
3688
1033 0x011E  41DC0780 BRV0 _RO_DPXI,1,0,, Pls, IF, OP1 -- Read DP Ptr
3689
1034 0x011F _SBC_dpiY:
3690
1035 0x011F  41F40780 BRV0 _RO_DPIY,1,0,, Pls, IF, OP1 -- Read DP Ptr
3691
1036  --------------------------------------------------------------------------------
3692
1037  -- Row 2 : 0x02-0xF2
3693
1038  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
3694
1039  --------------------------------------------------------------------------------
3695
1040 0x0120 _NOP_02:
3696
1041 0x0120  790707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
3697
1042 0x0121 _ORA_dpi:
3698
1043 0x0121  41C40780 BRV0 _RO_DPI,1,0,, Pls, IF, OP1 -- Read DP
3699
1044 0x0122 _NOP_22:
3700
1045 0x0122  791707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
3701
1046 0x0123 _AND_dpi:
3702
1047 0x0123  41C40780 BRV0 _RO_DPI,1,0,, Pls, IF, OP1 -- Read DP
3703
1048 0x0124 _NOP_42:
3704
1049 0x0124  792707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
3705
1050 0x0125 _EOR_dpi:
3706
1051 0x0125  41C40780 BRV0 _RO_DPI,1,0,, Pls, IF, OP1 -- Read DP
3707
1052 0x0126 _NOP_62:
3708
1053 0x0126  793707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
3709
1054 0x0127 _ADC_dpi:
3710
1055 0x0127  41C40780 BRV0 _RO_DPI,1,0,, Pls, IF, OP1 -- Read DP
3711
1056 0x0128 _NOP_82:
3712
1057 0x0128  794707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
3713
1058 0x0129 _STA_dpi:
3714
1059 0x0129  42540780 BRV0 _WO_DPI,1,0,, Pls, IF, OP1 -- Read DP
3715
1060 0x012A _LDX_imm:
3716
1061 0x012A  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read #imm Value
3717
1062 0x012B _LDA_dpi:
3718
1063 0x012B  41C40780 BRV0 _RO_DPI,1,0,, Pls, IF, OP1 -- Read DP
3719
1064 0x012C _NOP_C2:
3720
1065 0x012C  796707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
3721
1066 0x012D _CMP_dpi:
3722
1067 0x012D  41C40780 BRV0 _RO_DPI,1,0,, Pls, IF, OP1 -- Read DP
3723
1068 0x012E _NOP_E2:
3724
1069 0x012E  797707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
3725
1070 0x012F _SBC_dpi:
3726
1071 0x012F  41C40780 BRV0 _RO_DPI,1,0,, Pls, IF, OP1 -- Read DP
3727
1072  --------------------------------------------------------------------------------
3728
1073  -- Row 3 : 0x03-0xF3
3729
1074  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
3730
1075  --------------------------------------------------------------------------------
3731
1076 0x0130 _NOP_03:
3732
1077 0x0130  798707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
3733
1078 0x0131 _NOP_13:
3734
1079 0x0131  798F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
3735
1080 0x0132 _NOP_23:
3736
1081 0x0132  799707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
3737
1082 0x0133 _NOP_33:
3738
1083 0x0133  799F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
3739
1084 0x0134 _NOP_43:
3740
1085 0x0134  79A707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
3741
1086 0x0135 _NOP_53:
3742
1087 0x0135  79AF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
3743
1088 0x0136 _NOP_63:
3744
1089 0x0136  79B707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
3745
1090 0x0137 _NOP_73:
3746
1091 0x0137  79BF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
3747
1092 0x0138 _NOP_83:
3748
1093 0x0138  79C707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
3749
1094 0x0139 _NOP_93:
3750
1095 0x0139  79CF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
3751
1096 0x013A _NOP_A3:
3752
1097 0x013A  79D707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
3753
1098 0x013B _NOP_B3:
3754
1099 0x013B  79DF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
3755
1100 0x013C _NOP_C3:
3756
1101 0x013C  79E707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
3757
1102 0x013D _NOP_D3:
3758
1103 0x013D  79EF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
3759
1104 0x013E _NOP_E3:
3760
1105 0x013E  79F707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
3761
1106 0x013F _NOP_F3:
3762
1107 0x013F  79FF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
3763
1108  --------------------------------------------------------------------------------
3764
1109  -- Row 4 : 0x04-0xF4
3765
1110  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
3766
1111  --------------------------------------------------------------------------------
3767
1112 0x0140 _TSB_dp:
3768
1113 0x0140  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
3769
1114 0x0141 _TRB_dp:
3770
1115 0x0141  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
3771
1116 0x0142 _BIT_dp:
3772
1117 0x0142  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
3773
1118 0x0143 _BIT_dpX:
3774
1119 0x0143  41B40780 BRV0 _RO_DPX,1,0,, Pls, IF, OP1 -- Read DP
3775
1120 0x0144 _NOP_44:
3776
1121 0x0144  7A2707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
3777
1122 0x0145 _NOP_54:
3778
1123 0x0145  7A2F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
3779
1124 0x0146 _STZ_dp:
3780
1125 0x0146  423C0780 BRV0 _WO_DP,1,0,, Pls, IF, OP1 -- Read DP
3781
1126 0x0147 _STZ_dpX:
3782
1127 0x0147  42440780 BRV0 _WO_DPX,1,0,, Pls, IF, OP1 -- Read DP
3783
1128 0x0148 _STY_dp:
3784
1129 0x0148  423C0780 BRV0 _WO_DP,1,0,, Pls, IF, OP1 -- Read DP
3785
1130 0x0149 _STY_dpX:
3786
1131 0x0149  42440780 BRV0 _WO_DPX,1,0,, Pls, IR, OP1 -- Read DP
3787
1132 0x014A _LDY_dp:
3788
1133 0x014A  41AC0780 BRV0 _RO_DP,1,0,, Pls, IR, OP1 -- Read DP
3789
1134 0x014B _LDY_dpX:
3790
1135 0x014B  41B40780 BRV0 _RO_DPX,1,0,, Pls, IF, OP1 -- Read DP
3791
1136 0x014C _CPY_dp:
3792
1137 0x014C  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
3793
1138 0x014D _NOP_D4:
3794
1139 0x014D  7A6F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
3795
1140 0x014E _CPX_dp:
3796
1141 0x014E  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
3797
1142 0x014F _NOP_F4:
3798
1143 0x014F  7A7F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
3799
1144  --------------------------------------------------------------------------------
3800
1145  -- Row 5 : 0x05-0xF5
3801
1146  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
3802
1147  --------------------------------------------------------------------------------
3803
1148 0x0150 _ORA_dp:
3804
1149 0x0150  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
3805
1150 0x0151 _ORA_dpX:
3806
1151 0x0151  41B40780 BRV0 _RO_DPX,1,0,, Pls, IF, OP1 -- Read DP
3807
1152 0x0152 _AND_dp:
3808
1153 0x0152  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
3809
1154 0x0153 _AND_dpX:
3810
1155 0x0153  41B40780 BRV0 _RO_DPX,1,0,, Pls, IF, OP1 -- Read DP
3811
1156 0x0154 _EOR_dp:
3812
1157 0x0154  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
3813
1158 0x0155 _EOR_dpX:
3814
1159 0x0155  41B40780 BRV0 _RO_DPX,1,0,, Pls, IF, OP1 -- Read DP
3815
1160 0x0156 _ADC_dp:
3816
1161 0x0156  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
3817
1162 0x0157 _ADC_dpX:
3818
1163 0x0157  41B40780 BRV0 _RO_DPX,1,0,, Pls, IF, OP1 -- Read DP
3819
1164 0x0158 _STA_dp:
3820
1165 0x0158  423C0780 BRV0 _WO_DP,1,0,, Pls, IF, OP1 -- Read DP
3821
1166 0x0159 _STA_dpX:
3822
1167 0x0159  42440780 BRV0 _WO_DPX,1,0,, Pls, IF, OP1 -- Read DP
3823
1168 0x015A _LDA_dp:
3824
1169 0x015A  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
3825
1170 0x015B _LDA_dpX:
3826
1171 0x015B  41B40780 BRV0 _RO_DPX,1,0,, Pls, IF, OP1 -- Read DP
3827
1172 0x015C _CMP_dp:
3828
1173 0x015C  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
3829
1174 0x015D _CMP_dpX:
3830
1175 0x015D  41B40780 BRV0 _RO_DPX,1,0,, Pls, IF, OP1 -- Read DP
3831
1176 0x015E _SBC_dp:
3832
1177 0x015E  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
3833
1178 0x015F _SBC_dpX:
3834
1179 0x015F  41B40780 BRV0 _RO_DPX,1,0,, Pls, IF, OP1 -- Read DP
3835
1180  --------------------------------------------------------------------------------
3836
1181  -- Row 6 : 0x06-0xF6
3837
1182  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
3838
1183  --------------------------------------------------------------------------------
3839
1184 0x0160 _ASL_dp:
3840
1185 0x0160  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
3841
1186 0x0161 _ASL_dpX:
3842
1187 0x0161  43240780 BRV0 _RMW_DPX,1,0,, Pls, IF, OP1 -- Read DP
3843
1188 0x0162 _ROL_dp:
3844
1189 0x0162  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
3845
1190 0x0163 _ROL_dpX:
3846
1191 0x0163  43240780 BRV0 _RMW_DPX,1,0,, Pls, IF, OP1 -- Read DP
3847
1192 0x0164 _LSR_dp:
3848
1193 0x0164  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
3849
1194 0x0165 _LSR_dpX:
3850
1195 0x0165  43240780 BRV0 _RMW_DPX,1,0,, Pls, IF, OP1 -- Read DP
3851
1196 0x0166 _ROR_dp:
3852
1197 0x0166  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
3853
1198 0x0167 _ROR_dpX:
3854
1199 0x0167  43240780 BRV0 _RMW_DPX,1,0,, Pls, IF, OP1 -- Read DP
3855
1200 0x0168 _STX_dp:
3856
1201 0x0168  423C0780 BRV0 _WO_DP,1,0,, Pls, IF, OP1 -- Read DP
3857
1202 0x0169 _STX_dpY:
3858
1203 0x0169  424C0780 BRV0 _WO_DPY,1,0,, Pls, IF, OP1 -- Read DP
3859
1204 0x016A _LDX_dp:
3860
1205 0x016A  41AC0780 BRV0 _RO_DP,1,0,, Pls, IF, OP1 -- Read DP
3861
1206 0x016B _LDX_dpY:
3862
1207 0x016B  41BC0780 BRV0 _RO_DPY,1,0,, Pls, IF, OP1 -- Read DP
3863
1208 0x016C _DEC_dp:
3864
1209 0x016C  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
3865
1210 0x016D _DEC_dpX:
3866
1211 0x016D  43240780 BRV0 _RMW_DPX,1,0,, Pls, IF, OP1 -- Read DP
3867
1212 0x016E _INC_dp:
3868
1213 0x016E  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
3869
1214 0x016F _INC_dpX:
3870
1215 0x016F  43240780 BRV0 _RMW_DPX,1,0,, Pls, IF, OP1 -- Read DP
3871
1216  --------------------------------------------------------------------------------
3872
1217  -- Row 7 : 0x07-0xF7 (Rockwell Instructions: RMBx/SMBx dp)
3873
1218  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
3874
1219  --------------------------------------------------------------------------------
3875
1220 0x0170 _RMB0_dp:
3876
1221 0x0170  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
3877
1222 0x0171 _RMB1_dp:
3878
1223 0x0171  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
3879
1224 0x0172 _RMB2_dp:
3880
1225 0x0172  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
3881
1226 0x0173 _RMB3_dp:
3882
1227 0x0173  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
3883
1228 0x0174 _RMB4_dp:
3884
1229 0x0174  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
3885
1230 0x0175 _RMB5_dp:
3886
1231 0x0175  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
3887
1232 0x0176 _RMB6_dp:
3888
1233 0x0176  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
3889
1234 0x0177 _RMB7_dp:
3890
1235 0x0177  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
3891
1236 0x0178 _SMB0_dp:
3892
1237 0x0178  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
3893
1238 0x0179 _SMB1_dp:
3894
1239 0x0179  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
3895
1240 0x017A _SMB2_dp:
3896
1241 0x017A  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
3897
1242 0x017B _SMB3_dp:
3898
1243 0x017B  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
3899
1244 0x017C _SMB4_dp:
3900
1245 0x017C  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
3901
1246 0x017D _SMB5_dp:
3902
1247 0x017D  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
3903
1248 0x017E _SMB6_dp:
3904
1249 0x017E  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
3905
1250 0x017F _SMB7_dp:
3906
1251 0x017F  43140780 BRV0 _RMW_DP,1,0,, Pls, IF, OP1 -- Read DP
3907
1252  --------------------------------------------------------------------------------
3908
1253  -- Row 8 : 0x08-0xF8
3909
1254  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
3910
1255  --------------------------------------------------------------------------------
3911
1256 0x0180 _PHP:
3912
1257 0x0180  41044120 BRV0 _Psh,1,0, Stk,, WR,, Psh -- Push P
3913
1258 0x0181 _CLC:
3914
1259 0x0181  7C0F07CC BRV3 $,1,3,, Pls, IF, IR,, WE_P -- Clear Carry Flag
3915
1260 0x0182 _PLP:
3916
1261 0x0182  410442B0 BRV0 _Pop,1,0, Stk,, RD, OP1, Pop -- Pop P
3917
1262 0x0183 _SEC:
3918
1263 0x0183  7C1F07CC BRV3 $,1,3,, Pls, IF, IR,, WE_P -- Set Carry Flag
3919
1264 0x0184 _PHA:
3920
1265 0x0184  41044120 BRV0 _Psh,1,0, Stk,, WR,, Psh -- Push A
3921
1266 0x0185 _CLI:
3922
1267 0x0185  5C2D07CC BRV1 $,1,1,, Pls, IF, IR,, WE_P -- Clear Interrupt Mask Flg
3923
1268 0x0186 _PLA:
3924
1269 0x0186  410442B0 BRV0 _Pop,1,0, Stk,, RD, OP1, Pop -- Pop A
3925
1270 0x0187 _SEI:
3926
1271 0x0187  5C3D07CC BRV1 $,1,1,, Pls, IF, IR,, WE_P -- Set Interrupt Mask Flag
3927
1272 0x0188 _DEY:
3928
1273 0x0188  7C4707C6 BRV3 $,1,3,, Pls, IF, IR,, WE_Y -- Decrement Y
3929
1274 0x0189 _TYA:
3930
1275 0x0189  7C4F07C2 BRV3 $,1,3,, Pls, IF, IR,, WE_A -- Transfer Y to A
3931
1276 0x018A _TAY:
3932
1277 0x018A  7C5707C6 BRV3 $,1,3,, Pls, IF, IR,, WE_Y -- Transfer A to Y
3933
1278 0x018B _CLV:
3934
1279 0x018B  7C5F07CC BRV3 $,1,3,, Pls, IF, IR,, WE_P -- Clear oVerflow Flag
3935
1280 0x018C _INY:
3936
1281 0x018C  7C6707C6 BRV3 $,1,3,, Pls, IF, IR,, WE_Y -- Increment Y
3937
1282 0x018D _CLD:
3938
1283 0x018D  7C6F07CC BRV3 $,1,3,, Pls, IF, IR,, WE_P -- Clear Decimal Mode Flag
3939
1284 0x018E _INX:
3940
1285 0x018E  7C7707C4 BRV3 $,1,3,, Pls, IF, IR,, WE_X -- Increment X
3941
1286 0x018F _SED:
3942
1287 0x018F  7C7F07CC BRV3 $,1,3,, Pls, IF, IR,, WE_P -- Set Decimal Mode Flag
3943
1288  --------------------------------------------------------------------------------
3944
1289  -- Row 9 : 0x09-0xF9
3945
1290  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
3946
1291  --------------------------------------------------------------------------------
3947
1292 0x0190 _ORA_imm:
3948
1293 0x0190  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read Immediate Operand
3949
1294 0x0191 _ORA_absY:
3950
1295 0x0191  422C0780 BRV0 _RO_AbsY,1,0,, Pls, IF, OP1 -- Read Mem Ptr Lo
3951
1296 0x0192 _AND_imm:
3952
1297 0x0192  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read Immediate Operand
3953
1298 0x0193 _AND_absY:
3954
1299 0x0193  422C0780 BRV0 _RO_AbsY,1,0,, Pls, IF, OP1 -- Read Mem Ptr Lo
3955
1300 0x0194 _EOR_imm:
3956
1301 0x0194  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read Immediate Operand
3957
1302 0x0195 _EOR_absY:
3958
1303 0x0195  422C0780 BRV0 _RO_AbsY,1,0,, Pls, IF, OP1 -- Read Mem Ptr Lo
3959
1304 0x0196 _ADC_imm:
3960
1305 0x0196  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read Immediate Operand
3961
1306 0x0197 _ADC_absY:
3962
1307 0x0197  422C0780 BRV0 _RO_AbsY,1,0,, Pls, IF, OP1 -- Read Mem Ptr Lo
3963
1308 0x0198 _BIT_imm:
3964
1309 0x0198  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read Immediate Operand
3965
1310 0x0199 _STA_absY:
3966
1311 0x0199  42BC0780 BRV0 _WO_AbsY,1,0,, Pls, IF, OP1 -- Read Mem Ptr Lo
3967
1312 0x019A _LDA_imm:
3968
1313 0x019A  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read Immediate Operand
3969
1314 0x019B _LDA_absY:
3970
1315 0x019B  422C0780 BRV0 _RO_AbsY,1,0,, Pls, IF, OP1 -- Read Mem Ptr Lo
3971
1316 0x019C _CMP_imm:
3972
1317 0x019C  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read Immediate Operand
3973
1318 0x019D _CMP_absY:
3974
1319 0x019D  422C0780 BRV0 _RO_AbsY,1,0,, Pls, IF, OP1 -- Read Mem Ptr Lo
3975
1320 0x019E _SBC_imm:
3976
1321 0x019E  31040780 BMW _Imm,1,0,, Pls, IF, OP1 -- Read Immediate Operand
3977
1322 0x019F _SBC_absY:
3978
1323 0x019F  422C0780 BRV0 _RO_AbsY,1,0,, Pls, IF, OP1 -- Read Mem Ptr Lo
3979
1324  --------------------------------------------------------------------------------
3980
1325  -- Row A : 0x0A-0xFA
3981
1326  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
3982
1327  --------------------------------------------------------------------------------
3983
1328 0x01A0 _ASL_A:
3984
1329 0x01A0  7D0707C2 BRV3 $,1,3,, Pls, IF, IR,, WE_A -- Arithmetic Shift A Left
3985
1330 0x01A1 _INC_A:
3986
1331 0x01A1  7D0F07C2 BRV3 $,1,3,, Pls, IF, IR,, WE_A -- Increment A
3987
1332 0x01A2 _ROL_A:
3988
1333 0x01A2  7D1707C2 BRV3 $,1,3,, Pls, IF, IR,, WE_A -- Rotate A Left
3989
1334 0x01A3 _DEC_A:
3990
1335 0x01A3  7D1F07C2 BRV3 $,1,3,, Pls, IF, IR,, WE_A -- Decrement A
3991
1336 0x01A4 _LSR_A:
3992
1337 0x01A4  7D2707C2 BRV3 $,1,3,, Pls, IF, IR,, WE_A -- Logical Shift A Right
3993
1338 0x01A5 _PHY:
3994
1339 0x01A5  41044120 BRV0 _Psh,1,0, Stk,, WR,, Psh -- Push Y
3995
1340 0x01A6 _ROR_A:
3996
1341 0x01A6  7D3707C2 BRV3 $,1,3,, Pls, IF, IR,, WE_A -- Rotate A Right
3997
1342 0x01A7 _PLY:
3998
1343 0x01A7  410442B0 BRV0 _Pop,1,0, Stk,, RD, OP1, Pop -- Pop Y
3999
1344 0x01A8 _TXA:
4000
1345 0x01A8  7D4707C2 BRV3 $,1,3,, Pls, IF, IR,, WE_A -- Transfer X to A
4001
1346 0x01A9 _TXS:
4002
1347 0x01A9  7D4F07CA BRV3 $,1,3,, Pls, IF, IR,, WE_S -- Transfer X to S
4003
1348 0x01AA _TAX:
4004
1349 0x01AA  7D5707C4 BRV3 $,1,3,, Pls, IF, IR,, WE_X -- Transfer A to X
4005
1350 0x01AB _TSX:
4006
1351 0x01AB  7D5F07C4 BRV3 $,1,3,, Pls, IF, IR,, WE_X -- Transfer S to X
4007
1352 0x01AC _DEX:
4008
1353 0x01AC  7D6707C4 BRV3 $,1,3,, Pls, IF, IR,, WE_X -- Decrement X
4009
1354 0x01AD _PHX:
4010
1355 0x01AD  41044120 BRV0 _Psh,1,0, Stk,, WR,, Psh -- Push X
4011
1356 0x01AE _NOP: -- the real NOP
4012
1357 0x01AE  7D7707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip True NOP Instruction
4013
1358 0x01AF _PLX:
4014
1359 0x01AF  410442B0 BRV0 _Pop,1,0, Stk,, RD, OP1, Pop -- Pop X
4015
1360  --------------------------------------------------------------------------------
4016
1361  -- Row B : 0x0B-0xFB
4017
1362  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
4018
1363  --------------------------------------------------------------------------------
4019
1364 0x01B0 _NOP_0B:
4020
1365 0x01B0  7D8707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
4021
1366 0x01B1 _NOP_1B:
4022
1367 0x01B1  7D8F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
4023
1368 0x01B2 _NOP_2B:
4024
1369 0x01B2  7D9707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
4025
1370 0x01B3 _NOP_3B:
4026
1371 0x01B3  7D9F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
4027
1372 0x01B4 _NOP_4B:
4028
1373 0x01B4  7DA707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
4029
1374 0x01B5 _NOP_5B:
4030
1375 0x01B5  7DAF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
4031
1376 0x01B6 _NOP_6B:
4032
1377 0x01B6  7DB707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
4033
1378 0x01B7 _NOP_7B:
4034
1379 0x01B7  7DBF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
4035
1380 0x01B8 _NOP_8B:
4036
1381 0x01B8  7DC707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
4037
1382 0x01B9 _NOP_9B:
4038
1383 0x01B9  7DCF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
4039
1384 0x01BA _NOP_AB:
4040
1385 0x01BA  7DD707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
4041
1386 0x01BB _NOP_BB:
4042
1387 0x01BB  7DDF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
4043
1388 0x01BC _WAI_CB:
4044
1389 0x01BC  47E40000 BRV0 _WAI,1,0 -- Wait for Interrupt
4045
1390 0x01BD _STP_DB:
4046
1391 0x01BD  4DE80000 BRV0 $,0,0 -- Stop execution
4047
1392 0x01BE _NOP_EB:
4048
1393 0x01BE  7DF707C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
4049
1394 0x01BF _NOP_FB:
4050
1395 0x01BF  7DFF07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
4051
1396  --------------------------------------------------------------------------------
4052
1397  -- Row C : 0x0C-0xFC
4053
1398  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
4054
1399  --------------------------------------------------------------------------------
4055
1400 0x01C0 _TSB_abs:
4056
1401 0x01C0  43440780 BRV0 _RMW_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4057
1402 0x01C1 _TRB_abs:
4058
1403 0x01C1  43440780 BRV0 _RMW_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4059
1404 0x01C2 _BIT_abs:
4060
1405 0x01C2  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4061
1406 0x01C3 _BIT_absX:
4062
1407 0x01C3  421C0780 BRV0 _RO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4063
1408 0x01C4 _JMP_abs:
4064
1409 0x01C4  41740780 BRV0 _Jmp,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4065
1410 0x01C5 _NOP_5C:
4066
1411 0x01C5  7E2F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
4067
1412 0x01C6 _JMP_absi:
4068
1413 0x01C6  417C0780 BRV0 _JmpI,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4069
1414 0x01C7 _JMP_absXi:
4070
1415 0x01C7  41940780 BRV0 _JmpXI,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4071
1416 0x01C8 _STY_abs:
4072
1417 0x01C8  429C0780 BRV0 _WO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4073
1418 0x01C9 _STZ_abs:
4074
1419 0x01C9  429C0780 BRV0 _WO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4075
1420 0x01CA _LDY_abs:
4076
1421 0x01CA  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4077
1422 0x01CB _LDY_absX:
4078
1423 0x01CB  421C0780 BRV0 _RO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4079
1424 0x01CC _CPY_abs:
4080
1425 0x01CC  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4081
1426 0x01CD _NOP_DC:
4082
1427 0x01CD  7E6F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
4083
1428 0x01CE _CPX_abs:
4084
1429 0x01CE  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4085
1430 0x01CF _NOP_FC:
4086
1431 0x01CF  7E7F07C0 BRV3 $,1,3,, Pls, IF, IR -- Skip Invalid Instruction
4087
1432  --------------------------------------------------------------------------------
4088
1433  -- Row D : 0x0D-0xFD
4089
1434  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
4090
1435  --------------------------------------------------------------------------------
4091
1436 0x01D0 _ORA_abs:
4092
1437 0x01D0  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4093
1438 0x01D1 _ORA_absX:
4094
1439 0x01D1  421C0780 BRV0 _RO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4095
1440 0x01D2 _AND_abs:
4096
1441 0x01D2  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4097
1442 0x01D3 _AND_absX:
4098
1443 0x01D3  421C0780 BRV0 _RO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4099
1444 0x01D4 _EOR_abs:
4100
1445 0x01D4  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4101
1446 0x01D5 _EOR_absX:
4102
1447 0x01D5  421C0780 BRV0 _RO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4103
1448 0x01D6 _ADC_abs:
4104
1449 0x01D6  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4105
1450 0x01D7 _ADC_absX:
4106
1451 0x01D7  421C0780 BRV0 _RO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4107
1452 0x01D8 _STA_abs:
4108
1453 0x01D8  429C0780 BRV0 _WO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4109
1454 0x01D9 _STA_absX:
4110
1455 0x01D9  42AC0780 BRV0 _WO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4111
1456 0x01DA _LDA_abs:
4112
1457 0x01DA  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4113
1458 0x01DB _LDA_absX:
4114
1459 0x01DB  421C0780 BRV0 _RO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4115
1460 0x01DC _CMP_abs:
4116
1461 0x01DC  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4117
1462 0x01DD _CMP_absX:
4118
1463 0x01DD  421C0780 BRV0 _RO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4119
1464 0x01DE _SBC_abs:
4120
1465 0x01DE  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4121
1466 0x01DF _SBC_absX:
4122
1467 0x01DF  421C0780 BRV0 _RO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4123
1468  --------------------------------------------------------------------------------
4124
1469  -- Row E : 0x0E-0xFE
4125
1470  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
4126
1471  --------------------------------------------------------------------------------
4127
1472 0x01E0 _ASL_abs:
4128
1473 0x01E0  43440780 BRV0 _RMW_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4129
1474 0x01E1 _ASL_absX:
4130
1475 0x01E1  435C0780 BRV0 _RMW_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4131
1476 0x01E2 _ROL_abs:
4132
1477 0x01E2  43440780 BRV0 _RMW_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4133
1478 0x01E3 _ROL_absX:
4134
1479 0x01E3  435C0780 BRV0 _RMW_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4135
1480 0x01E4 _LSR_abs:
4136
1481 0x01E4  43440780 BRV0 _RMW_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4137
1482 0x01E5 _LSR_absX:
4138
1483 0x01E5  435C0780 BRV0 _RMW_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4139
1484 0x01E6 _ROR_abs:
4140
1485 0x01E6  43440780 BRV0 _RMW_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4141
1486 0x01E7 _ROR_absX:
4142
1487 0x01E7  435C0780 BRV0 _RMW_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4143
1488 0x01E8 _STX_abs:
4144
1489 0x01E8  429C0780 BRV0 _WO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4145
1490 0x01E9 _STZ_absX:
4146
1491 0x01E9  42AC0780 BRV0 _WO_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4147
1492 0x01EA _LDX_abs:
4148
1493 0x01EA  420C0780 BRV0 _RO_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4149
1494 0x01EB _LDX_absY:
4150
1495 0x01EB  422C0780 BRV0 _RO_AbsY,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4151
1496 0x01EC _DEC_abs:
4152
1497 0x01EC  43440780 BRV0 _RMW_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4153
1498 0x01ED _DEC_absX:
4154
1499 0x01ED  435C0780 BRV0 _RMW_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4155
1500 0x01EE _INC_abs:
4156
1501 0x01EE  43440780 BRV0 _RMW_Abs,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4157
1502 0x01EF _INC_absX:
4158
1503 0x01EF  435C0780 BRV0 _RMW_AbsX,1,0,, Pls, IF, OP1 -- Read Dst Ptr Lo
4159
1504  --------------------------------------------------------------------------------
4160
1505  -- Row F : 0x0F-0xFF (Rockwell Instructions: BBRx/BBSx dp,rel)
4161
1506  -- I BA, Wt, En, NA, PC, IO, DI, SP, Reg_WE, ISR
4162
1507  --------------------------------------------------------------------------------
4163
1508 0x01F0 _BBR0_dp_rel:
4164
1509 0x01F0  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
4165
1510 0x01F1 _BBR1_dp_rel:
4166
1511 0x01F1  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
4167
1512 0x01F2 _BBR2_dp_rel:
4168
1513 0x01F2  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
4169
1514 0x01F3 _BBR3_dp_rel:
4170
1515 0x01F3  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
4171
1516 0x01F4 _BBR4_dp_rel:
4172
1517 0x01F4  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
4173
1518 0x01F5 _BBR5_dp_rel:
4174
1519 0x01F5  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
4175
1520 0x01F6 _BBR6_dp_rel:
4176
1521 0x01F6  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
4177
1522 0x01F7 _BBR7_dp_rel:
4178
1523 0x01F7  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
4179
1524 0x01F8 _BBS0_dp_rel:
4180
1525 0x01F8  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
4181
1526 0x01F9 _BBS1_dp_rel:
4182
1527 0x01F9  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
4183
1528 0x01FA _BBS2_dp_rel:
4184
1529 0x01FA  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
4185
1530 0x01FB _BBS3_dp_rel:
4186
1531 0x01FB  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
4187
1532 0x01FC _BBS4_dp_rel:
4188
1533 0x01FC  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
4189
1534 0x01FD _BBS5_dp_rel:
4190
1535 0x01FD  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
4191
1536 0x01FE _BBS6_dp_rel:
4192
1537 0x01FE  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
4193
1538 0x01FF _BBS7_dp_rel:
4194
1539 0x01FF  438C0780 BRV0 _BByx_dp_rel,1,0,, Pls, IF, OP1 -- Read DP
4195
1540  --------------------------------------------------------------------------------
4196
1541  -- End of Instruction Decode Table
4197
1542  --------------------------------------------------------------------------------
4198
1544 0x0200 _Last: .org 512
4199
1546 0x0200 _end:

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.