整理代码
This commit is contained in:
@@ -589,7 +589,7 @@ static void FILDER_Enter(WIN_FilderStruct *filder, int x, int y)
|
|||||||
// <20>ļ<EFBFBD><C4BC><EFBFBD>Ϣ
|
// <20>ļ<EFBFBD><C4BC><EFBFBD>Ϣ
|
||||||
char *txt_buff = mymalloc(512);
|
char *txt_buff = mymalloc(512);
|
||||||
FILDER_GetFileRoute(filder);
|
FILDER_GetFileRoute(filder);
|
||||||
sprintf(txt_buff, "·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>%s\n<EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>%lld Byte", filder->fileName, filder->file[filder->index].size);
|
sprintf(txt_buff, "·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>%s\n<EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>%u Byte", filder->fileName, (uint32_t)filder->file[filder->index].size);
|
||||||
MSGBOX_Tips((WIN_WindowStruct *)filder, "<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>Ϣ", txt_buff, "ȷ<EFBFBD><EFBFBD>");
|
MSGBOX_Tips((WIN_WindowStruct *)filder, "<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>Ϣ", txt_buff, "ȷ<EFBFBD><EFBFBD>");
|
||||||
myfree(txt_buff);
|
myfree(txt_buff);
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -92,7 +92,6 @@ cpu6502_init:
|
|||||||
|
|
||||||
.type map67_, %function
|
.type map67_, %function
|
||||||
map67_: // rom paging.. r0=page#
|
map67_: // rom paging.. r0=page#
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
ldr r1,[globalptr,#rommask]
|
ldr r1,[globalptr,#rommask]
|
||||||
and r0,r1,r0,lsl#13
|
and r0,r1,r0,lsl#13
|
||||||
ldr r1,[globalptr,#rombase]
|
ldr r1,[globalptr,#rombase]
|
||||||
@@ -103,7 +102,6 @@ map67_: // rom paging.. r0=page#
|
|||||||
|
|
||||||
.type map89_, %function
|
.type map89_, %function
|
||||||
map89_: // rom paging.. r0=page# ROM<EFBFBD><EFBFBD>ҳ
|
map89_: // rom paging.. r0=page# ROM<EFBFBD><EFBFBD>ҳ
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
ldr r1,[globalptr,#rombase] // rom<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>ַ
|
ldr r1,[globalptr,#rombase] // rom<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>ַ
|
||||||
sub r1,r1,#0x8000
|
sub r1,r1,#0x8000
|
||||||
ldr r2,[globalptr,#rommask]
|
ldr r2,[globalptr,#rommask]
|
||||||
@@ -114,7 +112,6 @@ map89_: // rom paging.. r0=page# ROM
|
|||||||
|
|
||||||
.type mapAB_, %function
|
.type mapAB_, %function
|
||||||
mapAB_:
|
mapAB_:
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
ldr r1,[globalptr,#rombase]
|
ldr r1,[globalptr,#rombase]
|
||||||
sub r1,r1,#0xa000
|
sub r1,r1,#0xa000
|
||||||
ldr r2,[globalptr,#rommask]
|
ldr r2,[globalptr,#rommask]
|
||||||
@@ -125,7 +122,6 @@ mapAB_:
|
|||||||
|
|
||||||
.type mapCD_, %function
|
.type mapCD_, %function
|
||||||
mapCD_:
|
mapCD_:
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
ldr r1,[globalptr,#rombase]
|
ldr r1,[globalptr,#rombase]
|
||||||
sub r1,r1,#0xc000
|
sub r1,r1,#0xc000
|
||||||
ldr r2,[globalptr,#rommask]
|
ldr r2,[globalptr,#rommask]
|
||||||
@@ -136,7 +132,6 @@ mapCD_:
|
|||||||
|
|
||||||
.type mapEF_, %function
|
.type mapEF_, %function
|
||||||
mapEF_:
|
mapEF_:
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
ldr r1,[globalptr,#rombase]
|
ldr r1,[globalptr,#rombase]
|
||||||
sub r1,r1,#0xe000
|
sub r1,r1,#0xe000
|
||||||
ldr r2,[globalptr,#rommask]
|
ldr r2,[globalptr,#rommask]
|
||||||
@@ -147,7 +142,6 @@ mapEF_:
|
|||||||
|
|
||||||
.type map89AB_, %function
|
.type map89AB_, %function
|
||||||
map89AB_:
|
map89AB_:
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
ldr r1,[globalptr,#rombase] // rom<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD>
|
ldr r1,[globalptr,#rombase] // rom<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD>
|
||||||
sub r1,r1,#0x8000
|
sub r1,r1,#0x8000
|
||||||
ldr r2,[globalptr,#rommask]
|
ldr r2,[globalptr,#rommask]
|
||||||
@@ -171,7 +165,6 @@ flush: // update m6502_pc & lastbank
|
|||||||
|
|
||||||
.type mapCDEF_, %function
|
.type mapCDEF_, %function
|
||||||
mapCDEF_:
|
mapCDEF_:
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
ldr r1,[globalptr,#rombase]
|
ldr r1,[globalptr,#rombase]
|
||||||
sub r1,r1,#0xc000
|
sub r1,r1,#0xc000
|
||||||
ldr r2,[globalptr,#rommask]
|
ldr r2,[globalptr,#rommask]
|
||||||
@@ -183,7 +176,6 @@ mapCDEF_:
|
|||||||
|
|
||||||
.type map89ABCDEF_, %function
|
.type map89ABCDEF_, %function
|
||||||
map89ABCDEF_:
|
map89ABCDEF_:
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
ldr r1,[globalptr,#rombase]
|
ldr r1,[globalptr,#rombase]
|
||||||
sub r1,r1,#0x8000
|
sub r1,r1,#0x8000
|
||||||
ldr r2,[globalptr,#rommask]
|
ldr r2,[globalptr,#rommask]
|
||||||
|
@@ -1,512 +0,0 @@
|
|||||||
|
|
||||||
C EQU 0x01 ;//6502 flags 6502<30><32>־
|
|
||||||
Z EQU 0x02
|
|
||||||
I EQU 0x04
|
|
||||||
D EQU 0x08
|
|
||||||
B EQU 0x10 ;//(allways 1 except when IRQ pushes it)IRQ<52>ⲿ<EFBFBD>ж<EFBFBD>
|
|
||||||
R EQU 0x20 ;//(locked at 1)
|
|
||||||
V EQU 0x40
|
|
||||||
N EQU 0x80
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
MACRO ;//translate from 6502 PC to rom offset<65><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD>6502 PC ROM<4F><4D>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD>
|
|
||||||
encodePC
|
|
||||||
and r1,m6502_pc,#0xE000 ;//r9<72><39>0xe000<30><30>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
adr r2,memmap_tbl ;//<2F>Ѵ洢<D1B4><E6B4A2>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ص<EFBFBD>r2
|
|
||||||
;// ldr r0,[r2,r1,lsr#11] ;//<2F>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><32>
|
|
||||||
lsr r0,r1,#11 ;//>>11λ r1/2048
|
|
||||||
ldr r0,[r2,r0] ;//<2F><>ȡr2<72><32>ַ+r1ƫ<31>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>ݵ<EFBFBD>r0
|
|
||||||
|
|
||||||
str r0,lastbank ;//<2F><><EFBFBD><EFBFBD>6502PC<50><43> ROM<4F><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD>
|
|
||||||
add m6502_pc,m6502_pc,r0 ;//m6502_pc+r0
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO ;//pack 6502 flags into r0 6502<30><32>־<EFBFBD><D6BE>װ<EFBFBD><D7B0>R0
|
|
||||||
encodeP $extra
|
|
||||||
and r0,cycles,#CYC_V+CYC_D+CYC_I+CYC_C
|
|
||||||
tst m6502_nz,#0x80000000;//PSR_N
|
|
||||||
orrne r0,r0,#N ;N
|
|
||||||
tst m6502_nz,#0xff
|
|
||||||
orreq r0,r0,#Z ;Z
|
|
||||||
orr r0,r0,#$extra ;R(&B)
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO ;//;<3B>궨<EFBFBD><EAB6A8>//unpack 6502 flags from r0 <20><>ѹ<EFBFBD><D1B9>6502<30><32>R0<52>ı<EFBFBD>־
|
|
||||||
decodeP
|
|
||||||
bic cycles,cycles,#CYC_V+CYC_D+CYC_I+CYC_C
|
|
||||||
and r1,r0,#V+D+I+C
|
|
||||||
orr cycles,cycles,r1 ;//VDIC
|
|
||||||
bic m6502_nz,r0,#0xFD ;//r0 is signed
|
|
||||||
eor m6502_nz,m6502_nz,#Z
|
|
||||||
MEND ;// ;<3B>궨<EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
fetch $count ;//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ;$<24><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> $<24><><EFBFBD><EFBFBD>1<EFBFBD><31>$<24><><EFBFBD><EFBFBD>2<EFBFBD><32>...
|
|
||||||
;//---------------------------------------------------------------------
|
|
||||||
ldr r0,clocksh ;//<2F><><EFBFBD><EFBFBD>apu<70><75>Ҫ<EFBFBD><D2AA>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|
||||||
add r0,r0,#$count
|
|
||||||
str r0,clocksh
|
|
||||||
|
|
||||||
ldr r1,opz ;//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ַ
|
|
||||||
;//-------------------------------------------------------------------------
|
|
||||||
subs cycles,cycles,#$count*256;//CYCLE=256 ;// 3*256 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD>2<EFBFBD><32>ָ<EFBFBD><D6B8>
|
|
||||||
ldrplb r0,[m6502_pc],#1 ; //<2F>Ӵ洢<D3B4><E6B4A2><EFBFBD>м<EFBFBD><D0BC><EFBFBD><EFBFBD>ֽڵ<D6BD>һ<EFBFBD><D2BB><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD> r0=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
; ldrpl pc,[m6502_optbl,r0,lsl#2] ;//r10 ********r0=r0x4***<2A><><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>ĵ<EFBFBD>ַ**************************************
|
|
||||||
ldrpl pc,[r1,r0,lsl#2]
|
|
||||||
ldr pc,nexttimeout
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO ;//<2F><>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD>λ<EFBFBD><CEBB>λ0<CEBB><30>
|
|
||||||
fetch_c $count ;//same as fetch except it adds the Carry (bit 0) also.
|
|
||||||
;//---------------------------------------------------------------------
|
|
||||||
ldr r0,clocksh ;//<2F><><EFBFBD><EFBFBD>apu<70><75>Ҫ<EFBFBD><D2AA>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|
||||||
add r0,r0,#$count
|
|
||||||
str r0,clocksh
|
|
||||||
|
|
||||||
ldr r1,opz ;//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ַ
|
|
||||||
;//-------------------------------------------------------------------------
|
|
||||||
sbcs cycles,cycles,#$count*256;//CYCLE=256
|
|
||||||
ldrplb r0,[m6502_pc],#1
|
|
||||||
; ldrpl pc,[m6502_optbl,r0,lsl#2]
|
|
||||||
ldrpl pc,[r1,r0,lsl#2]
|
|
||||||
ldr pc,nexttimeout
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
clearcycles
|
|
||||||
and cycles,cycles,#CYC_MASK ;Save CPU bits
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
readmemabs
|
|
||||||
and r1,addy,#0xE000
|
|
||||||
adr lr,%F0
|
|
||||||
;// ldr pc,[m6502_rmem,r1,lsr#11] ;//in: addy,r1=addy&0xE000 (for rom_R)
|
|
||||||
lsr r1,r1,#11 ;//<2F>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><32> >>11
|
|
||||||
ldr pc,[m6502_rmem,r1]
|
|
||||||
|
|
||||||
0 ;//out: r0=val (bits 8-31=0 (LSR,ROR,INC,DEC,ASL)), addy preserved for RMW instructions
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
readmemzp
|
|
||||||
ldrb r0,[cpu_zpage,addy]
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
readmemzpi
|
|
||||||
;// ldrb r0,[cpu_zpage,addy,lsr#24]
|
|
||||||
lsr r0,addy,#24 ;//<2F>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD><33>
|
|
||||||
ldrb r0,[cpu_zpage,r0]
|
|
||||||
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
readmemzps
|
|
||||||
ldrsb m6502_nz,[cpu_zpage,addy];RAM
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
readmemimm
|
|
||||||
ldrb r0,[m6502_pc],#1 ;ROM
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
readmemimms
|
|
||||||
ldrsb m6502_nz,[m6502_pc],#1
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
readmem
|
|
||||||
[ _type = _ABS
|
|
||||||
readmemabs
|
|
||||||
]
|
|
||||||
[ _type = _ZP
|
|
||||||
readmemzp
|
|
||||||
]
|
|
||||||
[ _type = _ZPI
|
|
||||||
readmemzpi
|
|
||||||
]
|
|
||||||
[ _type = _IMM
|
|
||||||
readmemimm
|
|
||||||
]
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
readmems
|
|
||||||
[ _type = _ABS
|
|
||||||
readmemabs
|
|
||||||
orr m6502_nz,r0,r0,lsl#24
|
|
||||||
]
|
|
||||||
[ _type = _ZP
|
|
||||||
readmemzps
|
|
||||||
]
|
|
||||||
[ _type = _IMM
|
|
||||||
readmemimms
|
|
||||||
]
|
|
||||||
MEND
|
|
||||||
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
writememabs
|
|
||||||
and r1,addy,#0xe000
|
|
||||||
adr r2,writemem_tbl
|
|
||||||
adr lr,%F0
|
|
||||||
;// ldr pc,[r2,r1,lsr#11] ;//in: addy,r0=val(bits 8-31=?)
|
|
||||||
lsr r1,r1,#11 ;//<2F>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><32> >>11
|
|
||||||
ldr pc,[r2,r1]
|
|
||||||
|
|
||||||
0 ;out: r0,r1,r2,addy=?
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
writememzp
|
|
||||||
strb r0,[cpu_zpage,addy]
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
writememzpi
|
|
||||||
;// strb r0,[cpu_zpage,addy,lsr#24]
|
|
||||||
lsr r1,addy,#24 ;//<2F>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><32> >>24
|
|
||||||
strb r0,[cpu_zpage,r1]
|
|
||||||
|
|
||||||
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
writemem ;//д<>ڴ<EFBFBD>
|
|
||||||
[ _type = _ABS
|
|
||||||
writememabs
|
|
||||||
]
|
|
||||||
[ _type = _ZP
|
|
||||||
writememzp
|
|
||||||
]
|
|
||||||
[ _type = _ZPI
|
|
||||||
writememzpi
|
|
||||||
]
|
|
||||||
MEND
|
|
||||||
;----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
MACRO ;///////////////////////////////// /////////////////////
|
|
||||||
push16 ;push r0
|
|
||||||
mov r1,r0,lsr#8
|
|
||||||
ldr r2,m6502_s
|
|
||||||
strb r1,[r2],#-1
|
|
||||||
orr r2,r2,#0x100
|
|
||||||
strb r0,[r2],#-1
|
|
||||||
strb r2,m6502_s
|
|
||||||
MEND ;r1,r2=?
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
push8 $x
|
|
||||||
ldr r2,m6502_s
|
|
||||||
strb $x,[r2],#-1
|
|
||||||
strb r2,m6502_s
|
|
||||||
MEND ;r2=?
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
pop16 ;pop m6502_pc
|
|
||||||
ldrb r2,m6502_s
|
|
||||||
add r2,r2,#2
|
|
||||||
strb r2,m6502_s
|
|
||||||
ldr r2,m6502_s
|
|
||||||
ldrb r0,[r2],#-1
|
|
||||||
orr r2,r2,#0x100
|
|
||||||
ldrb m6502_pc,[r2]
|
|
||||||
orr m6502_pc,m6502_pc,r0,lsl#8
|
|
||||||
MEND ;r0,r1=?
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
pop8 $x
|
|
||||||
ldrb r2,m6502_s
|
|
||||||
add r2,r2,#1
|
|
||||||
strb r2,m6502_s
|
|
||||||
orr r2,r2,#0x100
|
|
||||||
ldrsb $x,[cpu_zpage,r2] ;signed for PLA & PLP
|
|
||||||
|
|
||||||
MEND ;r2=?
|
|
||||||
|
|
||||||
;----------------------------------------------------------------------------
|
|
||||||
;doXXX: load addy, increment m6502_pc
|
|
||||||
|
|
||||||
GBLA _type
|
|
||||||
|
|
||||||
_IMM EQU 1 ;immediate
|
|
||||||
_ZP EQU 2 ;zero page
|
|
||||||
_ZPI EQU 3 ;zero page indexed
|
|
||||||
_ABS EQU 4 ;absolute
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
doABS ;absolute $nnnn
|
|
||||||
_type SETA _ABS
|
|
||||||
ldrb addy,[m6502_pc],#1
|
|
||||||
ldrb r0,[m6502_pc],#1
|
|
||||||
orr addy,addy,r0,lsl#8
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
doAIX ;absolute indexed X $nnnn,X
|
|
||||||
_type SETA _ABS
|
|
||||||
ldrb addy,[m6502_pc],#1
|
|
||||||
ldrb r0,[m6502_pc],#1
|
|
||||||
orr addy,addy,r0,lsl#8
|
|
||||||
add addy,addy,m6502_x,lsr#24
|
|
||||||
; bic addy,addy,#0xff0000 ;Base Wars needs this
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
doAIY ;absolute indexed Y $nnnn,Y
|
|
||||||
_type SETA _ABS
|
|
||||||
ldrb addy,[m6502_pc],#1
|
|
||||||
ldrb r0,[m6502_pc],#1
|
|
||||||
orr addy,addy,r0,lsl#8
|
|
||||||
add addy,addy,m6502_y,lsr#24
|
|
||||||
; bic addy,addy,#0xff0000 ;Tecmo Bowl needs this
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
doIMM ;immediate #$nn
|
|
||||||
_type SETA _IMM
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
doIIX ;indexed indirect X ($nn,X)
|
|
||||||
_type SETA _ABS
|
|
||||||
ldrb r0,[m6502_pc],#1
|
|
||||||
add r0,m6502_x,r0,lsl#24
|
|
||||||
;//ldrb addy,[cpu_zpage,r0,lsr#24] ;//<2F><><EFBFBD><EFBFBD>:ָ<><D6B8><EFBFBD><EFBFBD>ת<EFBFBD>䲻<EFBFBD><E4B2BB><EFBFBD><EFBFBD>
|
|
||||||
lsr addy,r0,#24 ;//<2F>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><32> >>24
|
|
||||||
ldrb addy,[cpu_zpage,addy]
|
|
||||||
|
|
||||||
add r0,r0,#0x01000000
|
|
||||||
;//ldrb r1,[cpu_zpage,r0,lsr#24] ;//R1,LSR#2;<3B><>R1<52>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2λ
|
|
||||||
lsr r1,r0,#24 ;//<2F>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><32>
|
|
||||||
ldrb r1,[cpu_zpage,r1]
|
|
||||||
|
|
||||||
orr addy,addy,r1,lsl#8
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
doIIY ;indirect indexed Y ($nn),Y
|
|
||||||
_type SETA _ABS
|
|
||||||
ldrb r0,[m6502_pc],#1
|
|
||||||
;// ldrb addy,[r0,cpu_zpage]! ;;<3B><><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>֮ǰ,<2C><>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>Rn <20><>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵĴ洢<C4B4><E6B4A2>ַ
|
|
||||||
;//<2F><>ʹ<EFBFBD>ú<EFBFBD>"!",<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD>ص<EFBFBD>Rn<52><6E>
|
|
||||||
ldrb addy,[r0,cpu_zpage]
|
|
||||||
add r0,r0,cpu_zpage ;//////////////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
ldrb r1,[r0,#1]
|
|
||||||
orr addy,addy,r1,lsl#8
|
|
||||||
add addy,addy,m6502_y,lsr#24
|
|
||||||
; bic addy,addy,#0xff0000 ;Zelda2 needs this
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
doZPI ;Zeropage indirect ($nn)
|
|
||||||
_type SETA _ABS
|
|
||||||
ldrb r0,[m6502_pc],#1
|
|
||||||
;// ldrb addy,[r0,cpu_zpage]!;;<3B><><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>֮ǰ,<2C><>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>Rn <20><>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵĴ洢<C4B4><E6B4A2>ַ
|
|
||||||
;//<2F><>ʹ<EFBFBD>ú<EFBFBD>"!",<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD>ص<EFBFBD>Rn<52><6E>
|
|
||||||
ldrb addy,[r0,cpu_zpage]
|
|
||||||
add r0,r0,cpu_zpage
|
|
||||||
|
|
||||||
|
|
||||||
ldrb r1,[r0,#1]
|
|
||||||
orr addy,addy,r1,lsl#8
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
doZ ;zero page $nn
|
|
||||||
_type SETA _ZP
|
|
||||||
ldrb addy,[m6502_pc],#1
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
doZ2 ;zero page $nn
|
|
||||||
_type SETA _ZP
|
|
||||||
ldrb addy,[m6502_pc],#2 ;ugly thing for bbr/bbs
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
doZIX ;zero page indexed X $nn,X
|
|
||||||
_type SETA _ZP
|
|
||||||
ldrb addy,[m6502_pc],#1
|
|
||||||
add addy,addy,m6502_x,lsr#24
|
|
||||||
and addy,addy,#0xff ;Rygar needs this
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
doZIXf ;zero page indexed X $nn,X
|
|
||||||
_type SETA _ZPI
|
|
||||||
ldrb addy,[m6502_pc],#1
|
|
||||||
add addy,m6502_x,addy,lsl#24
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
doZIY ;zero page indexed Y $nn,Y
|
|
||||||
_type SETA _ZP
|
|
||||||
ldrb addy,[m6502_pc],#1
|
|
||||||
add addy,addy,m6502_y,lsr#24
|
|
||||||
and addy,addy,#0xff
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
doZIYf ;zero page indexed Y $nn,Y
|
|
||||||
_type SETA _ZPI
|
|
||||||
ldrb addy,[m6502_pc],#1
|
|
||||||
add addy,m6502_y,addy,lsl#24
|
|
||||||
MEND
|
|
||||||
|
|
||||||
;----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
opADC
|
|
||||||
readmem
|
|
||||||
movs r1,cycles,lsr#1 ;get C
|
|
||||||
subcs r0,r0,#0x00000100
|
|
||||||
adcs m6502_a,m6502_a,r0,ror#8
|
|
||||||
mov m6502_nz,m6502_a,asr#24 ;NZ
|
|
||||||
orr cycles,cycles,#CYC_C+CYC_V ;Prepare C & V
|
|
||||||
bicvc cycles,cycles,#CYC_V ;V
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
opAND
|
|
||||||
readmem
|
|
||||||
and m6502_a,m6502_a,r0,lsl#24
|
|
||||||
mov m6502_nz,m6502_a,asr#24 ;NZ
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
opASL
|
|
||||||
readmem
|
|
||||||
add r0,r0,r0
|
|
||||||
orrs m6502_nz,r0,r0,lsl#24 ;NZ
|
|
||||||
orr cycles,cycles,#CYC_C ;Prepare C
|
|
||||||
writemem
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
opBIT
|
|
||||||
readmem
|
|
||||||
bic cycles,cycles,#CYC_V ;reset V
|
|
||||||
tst r0,#V
|
|
||||||
orrne cycles,cycles,#CYC_V ;V
|
|
||||||
and m6502_nz,r0,m6502_a,lsr#24 ;Z
|
|
||||||
orr m6502_nz,m6502_nz,r0,lsl#24 ;N
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
opCOMP $x ;A,X & Y
|
|
||||||
readmem
|
|
||||||
subs m6502_nz,$x,r0,lsl#24
|
|
||||||
mov m6502_nz,m6502_nz,asr#24 ;NZ
|
|
||||||
orr cycles,cycles,#CYC_C ;Prepare C
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
opDEC
|
|
||||||
readmem
|
|
||||||
sub r0,r0,#1
|
|
||||||
orr m6502_nz,r0,r0,lsl#24 ;NZ
|
|
||||||
writemem
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
opEOR
|
|
||||||
readmem
|
|
||||||
eor m6502_a,m6502_a,r0,lsl#24
|
|
||||||
mov m6502_nz,m6502_a,asr#24 ;NZ
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
opINC
|
|
||||||
readmem
|
|
||||||
add r0,r0,#1
|
|
||||||
orr m6502_nz,r0,r0,lsl#24 ;NZ
|
|
||||||
writemem
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
opLOAD $x
|
|
||||||
readmems
|
|
||||||
mov $x,m6502_nz,lsl#24
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
opLSR
|
|
||||||
[ _type = _ABS
|
|
||||||
readmemabs
|
|
||||||
movs r0,r0,lsr#1
|
|
||||||
orr cycles,cycles,#CYC_C ;Prepare C
|
|
||||||
mov m6502_nz,r0 ;Z, (N=0)
|
|
||||||
writememabs
|
|
||||||
]
|
|
||||||
[ _type = _ZP
|
|
||||||
ldrb m6502_nz,[cpu_zpage,addy]
|
|
||||||
movs m6502_nz,m6502_nz,lsr#1 ;Z, (N=0)
|
|
||||||
orr cycles,cycles,#CYC_C ;Prepare C
|
|
||||||
strb m6502_nz,[cpu_zpage,addy]
|
|
||||||
]
|
|
||||||
[ _type = _ZPI
|
|
||||||
;// ldrb m6502_nz,[cpu_zpage,addy,lsr#24]
|
|
||||||
lsr m6502_nz,addy,#24 ;//<2F>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><32>
|
|
||||||
ldrb m6502_nz,[cpu_zpage,m6502_nz]
|
|
||||||
|
|
||||||
movs m6502_nz,m6502_nz,lsr#1 ;Z, (N=0)
|
|
||||||
orr cycles,cycles,#CYC_C ;Prepare C
|
|
||||||
;// strb m6502_nz,[cpu_zpage,addy,lsr#24]
|
|
||||||
lsr r1,addy,#24 ;//<2F>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><32>
|
|
||||||
strb m6502_nz,[cpu_zpage,r1]
|
|
||||||
|
|
||||||
]
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
opORA
|
|
||||||
readmem
|
|
||||||
orr m6502_a,m6502_a,r0,lsl#24
|
|
||||||
mov m6502_nz,m6502_a,asr#24
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
opROL
|
|
||||||
readmem
|
|
||||||
movs cycles,cycles,lsr#1 ;get C
|
|
||||||
adc r0,r0,r0
|
|
||||||
orrs m6502_nz,r0,r0,lsl#24 ;NZ
|
|
||||||
adc cycles,cycles,cycles ;Set C
|
|
||||||
writemem
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
opROR
|
|
||||||
readmem
|
|
||||||
movs cycles,cycles,lsr#1 ;get C
|
|
||||||
orrcs r0,r0,#0x100
|
|
||||||
movs r0,r0,lsr#1
|
|
||||||
orr m6502_nz,r0,r0,lsl#24 ;NZ
|
|
||||||
adc cycles,cycles,cycles ;Set C
|
|
||||||
writemem
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
opSBC
|
|
||||||
readmem
|
|
||||||
movs r1,cycles,lsr#1 ;get C
|
|
||||||
sbcs m6502_a,m6502_a,r0,lsl#24
|
|
||||||
and m6502_a,m6502_a,#0xff000000
|
|
||||||
mov m6502_nz,m6502_a,asr#24 ;NZ
|
|
||||||
orr cycles,cycles,#CYC_C+CYC_V ;Prepare C & V
|
|
||||||
bicvc cycles,cycles,#CYC_V ;V
|
|
||||||
MEND
|
|
||||||
|
|
||||||
MACRO
|
|
||||||
opSTORE $x
|
|
||||||
mov r0,$x,lsr#24
|
|
||||||
writemem
|
|
||||||
MEND
|
|
||||||
;----------------------------------------------------
|
|
||||||
END
|
|
@@ -1,199 +0,0 @@
|
|||||||
INCLUDE equates.s
|
|
||||||
|
|
||||||
|
|
||||||
IMPORT NES_RAM
|
|
||||||
IMPORT NES_SRAM
|
|
||||||
IMPORT CPU_reset
|
|
||||||
IMPORT romfile ;from main.c
|
|
||||||
IMPORT cpu_data ; 6502.s
|
|
||||||
IMPORT op_table
|
|
||||||
|
|
||||||
EXPORT cpu6502_init
|
|
||||||
EXPORT map67_
|
|
||||||
EXPORT map89_
|
|
||||||
EXPORT mapAB_
|
|
||||||
EXPORT mapCD_
|
|
||||||
EXPORT mapEF_
|
|
||||||
;----------------------------------------------------------------------------
|
|
||||||
AREA rom_code, CODE, READONLY
|
|
||||||
; THUMB
|
|
||||||
PRESERVE8
|
|
||||||
;----------------------------------------------------------------------------
|
|
||||||
cpu6502_init PROC
|
|
||||||
;----------------------------------------------------------------------------
|
|
||||||
stmfd sp!,{r4-r11,lr}
|
|
||||||
|
|
||||||
ldr r10,=cpu_data ;<3B><>ȡ<EFBFBD><C8A1>ַ
|
|
||||||
ldr r11,=NES_RAM ;r11=cpu_zpage
|
|
||||||
|
|
||||||
ldr r11,[r11] ;NES_RAM<41><4D><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|
||||||
;*******************************************************
|
|
||||||
str r11,memmap_tbl ;NES_RAM<41><4D><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|
||||||
str r11,memmap_tbl+4
|
|
||||||
str r11,memmap_tbl+8
|
|
||||||
|
|
||||||
ldr r0,=NES_SRAM ;NES_SRAM<41><4D><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|
||||||
ldr r0,[r0]
|
|
||||||
str r0,memmap_tbl+12
|
|
||||||
;**********************************************************************
|
|
||||||
|
|
||||||
ldr r0,=op_table ;<3B><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ַ
|
|
||||||
str r0,opz ;<3B><><EFBFBD><EFBFBD>
|
|
||||||
|
|
||||||
ldr r0,=romfile
|
|
||||||
ldr r0,[r0] ;R0<52><30><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>ROMӳ<4D><EFBFBD><F1A3A8B0><EFBFBD>ͷ<EFBFBD><CDB7>
|
|
||||||
add r3,r0,#16 ;r3<72><33><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>rom<6F><6D><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>
|
|
||||||
str r3,rombase ;<3B><><EFBFBD><EFBFBD>rom<6F><6D><EFBFBD><EFBFBD>ַ
|
|
||||||
;r3=rombase til end of loadcart so DON'T FUCK IT UP
|
|
||||||
mov r2,#1
|
|
||||||
ldrb r1,[r3,#-12] ; 16kB PROM<4F><4D><EFBFBD><EFBFBD>Ŀ 2
|
|
||||||
rsb r0,r2,r1,lsl#14 ;romsize=X*16KB <<14 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8> r0=0x7fff
|
|
||||||
str r0,rommask ;rommask=promsize-1 32768-1
|
|
||||||
;------------------------------------------------------------------------------------
|
|
||||||
mov r9,#0 ;(<28><><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD>encodePC<50><43>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD>*<2A><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еĴ<D0B5><C4B4><EFBFBD>)
|
|
||||||
str r9,lastbank ;6502PC<50><43> ROM<4F><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD>д0
|
|
||||||
|
|
||||||
mov r0,#0 ;Ĭ<><C4AC>romӳ<6D><D3B3>
|
|
||||||
bl map89AB_ ;89AB=1st 16k
|
|
||||||
mov r0,#-1
|
|
||||||
bl mapCDEF_ ;CDEF=last 16k
|
|
||||||
;----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
ldrb r1,[r3,#-10] ;get mapper#
|
|
||||||
ldrb r2,[r3,#-9]
|
|
||||||
tst r2,#0x0e ;long live DiskDude!
|
|
||||||
and r1,r1,#0xf0
|
|
||||||
and r2,r2,#0xf0
|
|
||||||
orr r0,r2,r1,lsr#4
|
|
||||||
movne r0,r1,lsr#4 ;ignore high nibble if header looks bad <09><><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
;r0=mapper<65><72>
|
|
||||||
;----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
ldr r0,=Mapper_W
|
|
||||||
str r0,writemem_tbl+16
|
|
||||||
str r0,writemem_tbl+20
|
|
||||||
str r0,writemem_tbl+24
|
|
||||||
str r0,writemem_tbl+28
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
bl CPU_reset ;reset everything else
|
|
||||||
ldmfd sp!,{r4-r11,lr}
|
|
||||||
bx lr
|
|
||||||
ENDP
|
|
||||||
|
|
||||||
;----------------------------------------------------------------------------
|
|
||||||
map67_ ;rom paging.. r0=page#
|
|
||||||
;----------------------------------------------------------------------------
|
|
||||||
ldr r1,rommask
|
|
||||||
and r0,r1,r0,lsl#13
|
|
||||||
ldr r1,rombase
|
|
||||||
add r0,r1,r0
|
|
||||||
sub r0,r0,#0x6000
|
|
||||||
str r0,memmap_tbl+12
|
|
||||||
b flush
|
|
||||||
;----------------------------------------------------------------------------
|
|
||||||
map89_ ;rom paging.. r0=page# ROM<4F><4D>ҳ
|
|
||||||
;----------------------------------------------------------------------------
|
|
||||||
ldr r1,rombase ;rom<6F><6D>ʼ<EFBFBD><CABC>ַ
|
|
||||||
sub r1,r1,#0x8000
|
|
||||||
ldr r2,rommask
|
|
||||||
and r0,r2,r0,lsl#13
|
|
||||||
add r0,r1,r0
|
|
||||||
str r0,memmap_tbl+16
|
|
||||||
b flush
|
|
||||||
;----------------------------------------------------------------------------
|
|
||||||
mapAB_
|
|
||||||
;----------------------------------------------------------------------------
|
|
||||||
ldr r1,rombase
|
|
||||||
sub r1,r1,#0xa000
|
|
||||||
ldr r2,rommask
|
|
||||||
and r0,r2,r0,lsl#13
|
|
||||||
add r0,r1,r0
|
|
||||||
str r0,memmap_tbl+20
|
|
||||||
b flush
|
|
||||||
;----------------------------------------------------------------------------
|
|
||||||
mapCD_
|
|
||||||
;----------------------------------------------------------------------------
|
|
||||||
ldr r1,rombase
|
|
||||||
sub r1,r1,#0xc000
|
|
||||||
ldr r2,rommask
|
|
||||||
and r0,r2,r0,lsl#13
|
|
||||||
add r0,r1,r0
|
|
||||||
str r0,memmap_tbl+24
|
|
||||||
b flush
|
|
||||||
;----------------------------------------------------------------------------
|
|
||||||
mapEF_
|
|
||||||
;----------------------------------------------------------------------------
|
|
||||||
ldr r1,rombase
|
|
||||||
sub r1,r1,#0xe000
|
|
||||||
ldr r2,rommask
|
|
||||||
and r0,r2,r0,lsl#13
|
|
||||||
add r0,r1,r0
|
|
||||||
str r0,memmap_tbl+28
|
|
||||||
b flush
|
|
||||||
;----------------------------------------------------------------------------
|
|
||||||
map89AB_
|
|
||||||
;----------------------------------------------------------------------------
|
|
||||||
ldr r1,rombase ;rom<6F><6D><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>
|
|
||||||
sub r1,r1,#0x8000
|
|
||||||
ldr r2,rommask
|
|
||||||
and r0,r2,r0,lsl#14
|
|
||||||
add r0,r1,r0
|
|
||||||
str r0,memmap_tbl+16
|
|
||||||
str r0,memmap_tbl+20
|
|
||||||
flush ;update m6502_pc & lastbank
|
|
||||||
ldr r1,lastbank
|
|
||||||
sub r9,r9,r1
|
|
||||||
and r1,r9,#0xE000 ;//r9<72><39>0xe000<30><30>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
adr r2,memmap_tbl ;//<2F>Ѵ洢<D1B4><E6B4A2>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ص<EFBFBD>r2
|
|
||||||
lsr r1,r1,#11 ;//>>11λ r1/2048
|
|
||||||
ldr r0,[r2,r1] ;//<2F><>ȡr2<72><32>ַ+r1ƫ<31>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>ݵ<EFBFBD>r0
|
|
||||||
|
|
||||||
str r0,lastbank ;//<2F><><EFBFBD><EFBFBD>6502PC<50><43> ROM<4F><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD>
|
|
||||||
add r9,r9,r0 ;//m6502_pc+r0
|
|
||||||
orr lr,#0x01 ;lr<6C><72><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>1<EFBFBD><31>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>arm״̬
|
|
||||||
bx lr
|
|
||||||
|
|
||||||
;----------------------------------------------------------------------------
|
|
||||||
mapCDEF_
|
|
||||||
;----------------------------------------------------------------------------
|
|
||||||
ldr r1,rombase
|
|
||||||
sub r1,r1,#0xc000
|
|
||||||
ldr r2,rommask
|
|
||||||
and r0,r2,r0,lsl#14
|
|
||||||
add r0,r1,r0
|
|
||||||
str r0,memmap_tbl+24
|
|
||||||
str r0,memmap_tbl+28
|
|
||||||
b flush
|
|
||||||
;----------------------------------------------------------------------------
|
|
||||||
map89ABCDEF_
|
|
||||||
;----------------------------------------------------------------------------
|
|
||||||
ldr r1,rombase
|
|
||||||
sub r1,r1,#0x8000
|
|
||||||
ldr r2,rommask
|
|
||||||
and r0,r2,r0,lsl#15
|
|
||||||
add r0,r1,r0
|
|
||||||
str r0,memmap_tbl+16
|
|
||||||
str r0,memmap_tbl+20
|
|
||||||
str r0,memmap_tbl+24
|
|
||||||
str r0,memmap_tbl+28
|
|
||||||
b flush
|
|
||||||
;*************************************************************************************
|
|
||||||
IMPORT asm_Mapper_Write;
|
|
||||||
Mapper_W
|
|
||||||
;-------------------------------------------
|
|
||||||
stmfd sp!,{r3,lr} ;LR <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ջ
|
|
||||||
mov r1,r12
|
|
||||||
bl asm_Mapper_Write
|
|
||||||
ldmfd sp!,{r3,lr}
|
|
||||||
orr lr,#0x01 ;lr<6C><72><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>1<EFBFBD><31>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>arm״̬
|
|
||||||
bx lr
|
|
||||||
; nop
|
|
||||||
;---------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
END
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@@ -1,33 +0,0 @@
|
|||||||
|
|
||||||
globalptr RN r10 ;//=wram_globals* ptr
|
|
||||||
;//cpu_zpage RN r11 ;=CPU_RAM
|
|
||||||
;----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
MAP 0,globalptr ;//MAP <20><><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
|
||||||
;//6502.s ;//<2F><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַΪglobalptr
|
|
||||||
opz # 4 ;opz # 256*4 ;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
|
||||||
readmem_tbl # 8*4 ;//8*4
|
|
||||||
writemem_tbl # 8*4 ;//8*4
|
|
||||||
memmap_tbl # 8*4 ;//<2F>洢<EFBFBD><E6B4A2>ӳ<EFBFBD><D3B3> ram+rom
|
|
||||||
cpuregs # 7*4 ;//1208<30><38><EFBFBD><EFBFBD>6502<30>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>ʼ<EFBFBD><CABC>ַ
|
|
||||||
m6502_s # 4 ;//
|
|
||||||
lastbank # 4 ;//6502PC<50><43> ROM<4F><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD>
|
|
||||||
nexttimeout # 4
|
|
||||||
|
|
||||||
rombase # 4 ;//ROM<4F><4D>ʼ<EFBFBD><CABC>ַ
|
|
||||||
romnumber # 4 ;// ROM<4F><4D>С
|
|
||||||
rommask # 4 ;//ROM<4F><4D>Ĥ rommask=romsize-1
|
|
||||||
|
|
||||||
joy0data # 4 ;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
joy1data # 4 ;//<2F>ֱ<EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
|
|
||||||
clocksh # 4 ;//ִ<>е<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD> apu<70><75>
|
|
||||||
cpunmif # 4 ;cpu<70>жϱ<D0B6>־
|
|
||||||
cpuirqf # 4 ;cpu<70>жϱ<D0B6>־
|
|
||||||
;------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
;// # 2 ;align
|
|
||||||
|
|
||||||
END
|
|
@@ -1,5 +1,6 @@
|
|||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "nes_apu.h"
|
#include "nes_apu.h"
|
||||||
|
#include "nes_main.h"
|
||||||
//////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////
|
||||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ye781205<30><35>NESģ<53><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ye781205<30><35>NESģ<53><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
//ALIENTEK STM32F407<30><37><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//ALIENTEK STM32F407<30><37><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
@@ -22,7 +22,7 @@ CFLAG=[
|
|||||||
'-mthumb',
|
'-mthumb',
|
||||||
'-mfpu=fpv4-sp-d16',
|
'-mfpu=fpv4-sp-d16',
|
||||||
'-mfloat-abi=hard',
|
'-mfloat-abi=hard',
|
||||||
'-Og',
|
'-O3',
|
||||||
'-Wall',
|
'-Wall',
|
||||||
'-fdata-sections',
|
'-fdata-sections',
|
||||||
'-ffunction-sections',
|
'-ffunction-sections',
|
||||||
@@ -347,7 +347,7 @@ def main():
|
|||||||
if build_target(SRC):
|
if build_target(SRC):
|
||||||
os.system(f"{OBJCPY} -O binary -S {OUTPUT}/{TARGET}.elf {OUTPUT}/{TARGET}.bin")
|
os.system(f"{OBJCPY} -O binary -S {OUTPUT}/{TARGET}.elf {OUTPUT}/{TARGET}.bin")
|
||||||
os.system(f"{OBJCPY} -O ihex {OUTPUT}/{TARGET}.elf {OUTPUT}/{TARGET}.hex")
|
os.system(f"{OBJCPY} -O ihex {OUTPUT}/{TARGET}.elf {OUTPUT}/{TARGET}.hex")
|
||||||
os.system(f"{OBJDUMP} -d {OUTPUT}/{TARGET}.elf > {OUTPUT}/{TARGET}.lst")
|
os.system(f"{OBJDUMP} -D {OUTPUT}/{TARGET}.elf > {OUTPUT}/{TARGET}.lst")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user