65 lines
2.2 KiB
ArmAsm
65 lines
2.2 KiB
ArmAsm
![]() |
|
|||
|
|
|||
|
m6502_nz .req r3 // bit 31=N, Z=1 if bits 0-7=0 ;RN<52><4E><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
m6502_rmem .req r4 // readmem_tbl
|
|||
|
m6502_a .req r5 // bits 0-23=0, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD>е<EFBFBD><EFBFBD>ֽ<EFBFBD>
|
|||
|
m6502_x .req r6 // bits 0-23=0
|
|||
|
m6502_y .req r7 // bits 0-23=0
|
|||
|
cycles .req r8 // also VDIC flagsҲVDIC<EFBFBD><EFBFBD>־
|
|||
|
m6502_pc .req r9
|
|||
|
globalptr .req r10 // =wram_globals* ptr
|
|||
|
m6502_optbl .req r10
|
|||
|
cpu_zpage .req r11 // =CPU_RAM
|
|||
|
addy .req r12 // keep this at r12 (<EFBFBD><EFBFBD>ͷ APCS) //addr :<EFBFBD><EFBFBD><EFBFBD><EFBFBD>8λ<EFBFBD><EFBFBD>ַ
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
// equates.s - GCC/GAS version
|
|||
|
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD>⣺GAS <EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD> RN<EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD>ʹ<EFBFBD>üĴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>
|
|||
|
// globalptr, r10
|
|||
|
// cpu_zpage <EFBFBD><EFBFBD>Ӧ r11<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>
|
|||
|
|
|||
|
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽṹƫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>൱<EFBFBD><EFBFBD> MAP 0, globalptr<EFBFBD><EFBFBD>
|
|||
|
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD> globalptr ָ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>ƫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
.equ opz, 0 // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
|
|||
|
.equ readmem_tbl, opz + 4 // <EFBFBD><EFBFBD><EFBFBD>ڴ溯<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><EFBFBD>
|
|||
|
.equ writemem_tbl, readmem_tbl + 32 // д<EFBFBD>ڴ溯<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><EFBFBD>
|
|||
|
.equ memmap_tbl, writemem_tbl + 32 // ROM/RAM ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><EFBFBD>
|
|||
|
.equ cpuregs, memmap_tbl + 32 // <EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6502 <EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD>ʼƫ<EFBFBD><EFBFBD>
|
|||
|
.equ m6502_s, cpuregs + 28 // ջָ<EFBFBD><EFBFBD> s
|
|||
|
.equ lastbank, m6502_s + 4 // <EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD> ROM bank <EFBFBD><EFBFBD>ַ
|
|||
|
.equ nexttimeout, lastbank + 4 // <EFBFBD>´γ<EFBFBD>ʱ<EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>ַ
|
|||
|
.equ rombase, nexttimeout + 4 // ROM <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>ַ
|
|||
|
.equ romnumber, rombase + 4 // ROM <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
.equ rommask, romnumber + 4 // ROM <EFBFBD><EFBFBD><EFBFBD>루romsize-1<EFBFBD><EFBFBD>
|
|||
|
.equ joy0data, rommask + 4 // <EFBFBD>ֱ<EFBFBD> 1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
.equ joy1data, joy0data + 4 // <EFBFBD>ֱ<EFBFBD> 2 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
.equ clocksh, joy1data + 4 // APU ʱ<EFBFBD>Ӽ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
.equ cpunmif, clocksh + 4 // NMI <EFBFBD>жϱ<EFBFBD>־
|
|||
|
.equ cpuirqf, cpunmif + 4 // IRQ <EFBFBD>жϱ<EFBFBD>־
|
|||
|
|
|||
|
|
|||
|
|
|||
|
.equ C, 0x01 // 6502 flags 6502<EFBFBD><EFBFBD>־
|
|||
|
.equ Z, 0x02
|
|||
|
.equ I, 0x04
|
|||
|
.equ D, 0x08
|
|||
|
.equ B, 0x10 // (always 1 except when IRQ pushes it) IRQ<EFBFBD>ⲿ<EFBFBD>ж<EFBFBD>
|
|||
|
.equ R, 0x20 // (locked at 1)
|
|||
|
.equ V, 0x40
|
|||
|
.equ N, 0x80
|
|||
|
|
|||
|
|
|||
|
.equ CYC_C, 0x01 // Carry bit <EFBFBD><EFBFBD>λ
|
|||
|
.equ BRANCH, 0x02 // branch instruction encountered <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ֧<EFBFBD><EFBFBD>
|
|||
|
.equ CYC_I, 0x04 // IRQ mask
|
|||
|
.equ CYC_D, 0x08 // Decimal bit С<EFBFBD><EFBFBD>λ
|
|||
|
.equ CYC_V, 0x40 // Overflow bit <EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
|||
|
.equ CYC_MASK, 0xFF // CYCLE-1 ;Mask
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|