6502_gcc.S编译出来基本无差异

This commit is contained in:
2025-07-09 00:55:12 +08:00
parent 403b03e115
commit 61093b6cdf
3 changed files with 16 additions and 32 deletions

View File

@@ -103,9 +103,8 @@ _10:// BPL *
// ----------------------------------------------------------------------------
tst m6502_nz,#0x80000000
ldrsb r0,[m6502_pc],#1
IT EQ
ITT EQ
addeq m6502_pc,m6502_pc,r0
IT EQ
subeq cycles,cycles,#256
fetch 2
// ----------------------------------------------------------------------------
@@ -230,9 +229,8 @@ _30:// BMI *
// ----------------------------------------------------------------------------
tst m6502_nz,#0x80000000
ldrsb r0,[m6502_pc],#1
IT NE
ITT NE
addne m6502_pc,m6502_pc,r0
IT NE
subne cycles,cycles,#256
fetch 2
// ----------------------------------------------------------------------------
@@ -346,9 +344,8 @@ _50:// BVC *
// ----------------------------------------------------------------------------
tst cycles,#CYC_V
ldrsb r0,[m6502_pc],#1
IT EQ
ITT EQ
addeq m6502_pc,m6502_pc,r0
IT EQ
subeq cycles,cycles,#256
fetch 2
// ----------------------------------------------------------------------------
@@ -442,8 +439,7 @@ _6A:// ROR
_6C:// JMP ($nnnn) JMP ($data16) <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѱַ *********************************
// ----------------------------------------------------------------------------
doABS
ldr r1, =memmap_tbl
add r1, globalptr
add r1, globalptr,#memmap_tbl
and r2,addy,#0xE000 //
// ldr r1,[r1,r2,lsr#11] // >>11 addr&0x7FF
lsr r0,r2,#11
@@ -473,9 +469,8 @@ _70:// BVS *
// ----------------------------------------------------------------------------
tst cycles,#CYC_V
ldrsb r0,[m6502_pc],#1
IT NE
ITT NE
addne m6502_pc,m6502_pc,r0
IT NE
subne cycles,cycles,#256
fetch 2
// ----------------------------------------------------------------------------
@@ -578,9 +573,8 @@ _90:// BCC *
// ----------------------------------------------------------------------------
tst cycles,#CYC_C // Test Carry
ldrsb r0,[m6502_pc],#1
IT EQ
ITT EQ
addeq m6502_pc,m6502_pc,r0
IT EQ
subeq cycles,cycles,#256
fetch 2
// ----------------------------------------------------------------------------
@@ -708,9 +702,8 @@ _B0:// BCS *
// ----------------------------------------------------------------------------
tst cycles,#CYC_C // Test Carry
ldrsb r0,[m6502_pc],#1
IT NE
ITT NE
addne m6502_pc,m6502_pc,r0
IT NE
subne cycles,cycles,#256
fetch 2
// ----------------------------------------------------------------------------
@@ -844,9 +837,8 @@ _D0:// BNE *
// ----------------------------------------------------------------------------
tst m6502_nz,#0xff
ldrsb r0,[m6502_pc],#1
IT NE
ITT NE
addne m6502_pc,m6502_pc,r0
IT NE
subne cycles,cycles,#256
fetch 2
// ----------------------------------------------------------------------------
@@ -959,9 +951,8 @@ _F0:// BEQ *
// ----------------------------------------------------------------------------
tst m6502_nz,#0xff
ldrsb r0,[m6502_pc],#1
IT EQ
ITT EQ
addeq m6502_pc,m6502_pc,r0
IT EQ
subeq cycles,cycles,#256
fetch 2
// ----------------------------------------------------------------------------
@@ -1066,8 +1057,7 @@ run6502:
ldr cpu_zpage,=NES_RAM // r11
ldr cpu_zpage,[cpu_zpage] // NES_RAM<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
ldr r1, =cpuregs
add r1, globalptr
add r1, globalptr,#cpuregs
ldmia r1,{m6502_nz-m6502_pc} // restore 6502 state<EFBFBD>ָ<EFBFBD>6502״̬ r3-r9
add cycles,cycles,r0
@@ -1081,8 +1071,7 @@ exit_run:
cmp r0,#0x01;
beq NMI6502 // EQ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>(EQual)
exit_nmi:
ldr r0, =cpuregs
add r0, globalptr
add r0, globalptr,#cpuregs
stmia r0,{m6502_nz-m6502_pc} // <EFBFBD><EFBFBD><EFBFBD><EFBFBD>6502״̬ r3-r9
ldmfd sp!,{r4-r11,pc} // exit
@ .end
@@ -1142,8 +1131,7 @@ CPU_reset: // called by loadcart (r0-r9 are free to use)
mov m6502_x,#0
mov m6502_y,#0
mov m6502_nz,#0
ldr m6502_rmem, =readmem_tbl
add m6502_rmem, globalptr // <EFBFBD><EFBFBD>readmem_tbl<EFBFBD>ĵ<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>m6502_rmem
add m6502_rmem, globalptr,#readmem_tbl // <EFBFBD><EFBFBD>readmem_tbl<EFBFBD>ĵ<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>m6502_rmem
// ldr r0,=NES_RAM+0x100 // 256
ldr r0,=NES_RAM // NES_RAM<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
@@ -1159,8 +1147,7 @@ CPU_reset: // called by loadcart (r0-r9 are free to use)
ldr r12,=RES_VECTOR // <EFBFBD><EFBFBD>λ<EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
bl Vec6502
ldr r0, =cpuregs
add r0, globalptr // <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ַ
add r0, globalptr,#cpuregs // <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ַ
stmia r0,{m6502_nz-m6502_pc} // <EFBFBD><EFBFBD><EFBFBD><EFBFBD>6502״̬
ldr r1,=exit_run
@@ -1365,8 +1352,7 @@ dma_W: // (4014) sprite DMA transfer
sub cycles,cycles,#512*256
stmfd sp!,{r3,lr}
and r1,r0,#0xe0
ldr r2, =memmap_tbl
add r2, globalptr
add r2, globalptr,#memmap_tbl
lsr r1,r1,#3
ldr r2,[r2,r1]
and r0,r0,#0xff