|
|
;[FC][最终任务mapper1切页程序]1 n; z$ Y( v: F3 C/ k8 Q- C+ ~8 H
.ORG $CD9B3 F6 Z% i5 [+ J7 U0 O
BANK_START:3 u+ D6 p1 r, C' s$ f( x
STA $70
5 C, t, v/ T2 G TXA
$ I, i* y* R$ H2 x0 L1 N ASL5 V- Z' ~; |# E ^- s0 b0 Q: J
TAX
+ L: K+ s7 {( RPORT_SET:, t* N/ R; T+ g9 q, r' V5 V
LDA BANK_DATA,X( B9 V0 V' w1 d- ?1 Q
STA $6E) f" m1 N; x e# N* M$ ^1 L
LDA $CDB8,X
' z1 y" W. @; d: J& i2 Z+ Y STA $6F' t) `# e! l! W
LDY #$00: C- D% e! { F6 B5 x2 H' {
LDX #$05' C! L5 `/ R& z7 f1 q; z$ [. N
LDA $70 [, `+ G; [' u& t, t, `( m9 ]/ S% H
PORT_WRITE:
9 G: ]" |3 g5 x' y% K* F STA ($6E),Y
1 x4 D; ~" l6 T0 V; F/ R, U LSR8 N% T: U( \3 G; v$ _; F
DEX8 ?, B ]; @; e
BNE PORT_WRITE
4 O( o/ ~$ ^: `7 j4 U" u RTS
+ b, \" `" e* T2 O* U7 k / ?5 A* F* Z% ?( {7 P) e% M' _
2 A# [/ G, k1 C2 h
BANK_DATA:
, |8 z7 d% O4 l8 u) U. t+ x6 S& b .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
8 W; D( X8 U/ p+ k' f1 T3 j# w! r
0 F( k' _$ z! o) V* Z1 | 3 n) O H% M3 w5 T
;[FC][最终任务mapper1转mapper4切页程序]
- x7 P5 r! u* G6 a .ORG $BFD2 ;初始化跳转- p# D/ N: h- d$ L* f7 R% Q6 w4 Z8 w4 G
JSR $FFC0
; i) n$ |, p. O( K5 @& c; O3 m8 k" L$ q4 R( r
) n# z$ z% k3 ^9 P' b+ {* Q .ORG $FFC0 ;切页
: U1 M- H5 a1 ? LDA #$066 Z% z, F: L6 ?+ i. f6 `6 N# W& O
STA $8000
( g) M8 l4 y7 E2 q/ r6 o. q1 [ LDA #$0E& W6 b( F5 x+ W
STA $8001, W- @) {% y: M+ Z% E M7 d) g" i) Y
JSR $8000" a7 c3 F0 \: Z/ }' g
RTS
( B- W% z+ Q6 O8 {4 F 5 n' q o) L" q( {3 p
.ORG $8000 ;数据复制" ~: ^/ B, K, h) t: r: B2 X
LDA #$80
$ c# z: F3 V2 p, C STA $A001 ;启用SRAM; q9 N; _1 A/ u3 T
PHA
/ d' @: Q/ q" j8 y$ [* W& R TXA
2 Q' m2 c! i" i1 |9 N9 u PHA- l7 G$ E: S. F) r+ Q5 f- J
LDX #$00
# S5 `; y: u3 ^9 V3 H1 jDATACOPY: ;数据复制: M2 }! d! [6 G- p# X
LDA $8100,X$ Z+ c" v2 h" [5 n! S
STA $7200,X
7 `* j- u) Q3 M# e INX& Q8 b, }! h- I% g; o; }8 l
CPX #$00! O' B* k# H- J8 R
BNE DATACOPY
2 t4 f# r( W6 y% l* T PLA; T! P* o; n7 ?) I# ]9 S) B$ q3 V
TAX/ g+ |' Q A, C8 J; y: _) C" R
PLA+ y; u4 v% N. O: T* e- K. P
RTS
0 I0 X- c5 w; \% Q: {! p6 e `; S1 h( X & w3 W$ e) g( I! V& T
.ORG $CD9B ;跳转到转换的切页程序' v3 P3 j3 W# j$ A4 R) T
STA $70
3 G+ ~4 m% R* y* P JSR $7200' e M. P& @6 }
RTS4 G5 n$ t) x2 o
. g% h% L/ j+ C* U8 R$ y .ORG $73000 x6 G$ g; E g8 F: R' s; M( r2 g2 T
M1_TO_M4: ;切页程序) Y) b! `) Q8 N9 f {7 L
CPX #$00) }3 ]4 Q( j( [% R: z$ ^
BEQ REG_SET7 t1 R$ U, k6 B4 K$ a0 a
CPX #$01/ n- B8 }+ H/ }; R
BEQ PPU_BANK_0000- r; e( L4 ?/ G+ c5 p2 x
CPX #$02
5 Y! @+ U5 z0 F/ B- K/ v BEQ PPU_BANK_1000* A( \% D9 ~. a5 a9 f& r
CPX #$03
9 ~4 \" z6 U( x$ a BEQ PRG_BANK
' C- r& V' u. WREG_SET:8 f& g- V' |/ [2 Q0 h# k
STA $A000
/ g; Q# M' ]3 T/ v* z; h- h RTS
/ A3 p- j. ], s% F: u) M* ~" [ .ORG $73200 n/ o) D& F# c) B& j( `
PRG_BANK: ;PRG切页4 t% k9 u" G( f5 u
PHA
2 w4 q0 S" ?2 T. Q* `* A S LDA #$06
; I- L3 Y1 Y7 o' l STA $80004 \8 o: H$ P. ~5 R
PLA/ P+ Y$ q9 T2 I: m6 m
ASL
" b8 d) z9 N( Y7 r; {9 ~1 j6 f STA $8001
: N! S1 U T. U/ ^ ORA #$01
0 k; ?" ]( M* L PHA
! A% g4 a2 z0 \5 d' ~ }6 }% w LDA #$07- r0 a `, O' b& r5 c+ [& \
STA $8000* h/ l! B* y& g/ t4 O; ?( P, P
PLA1 Q* h3 Y! I! p0 c
STA $8001$ J7 o2 n! c- K! D" \# b
RTS7 E7 }: R5 t) v) P0 }2 @/ G" z; f" @- Z
.ORG $7340. V7 B7 F5 z1 F M7 n) R- M }
PPU_BANK_0000: ;精灵切页
/ e6 m/ I3 X+ ]# L* K, e' { PHA) G) J7 F' A* Y& S. [0 H
ASL, ?5 e) I6 t1 q9 k# m! W
ASL/ P, j$ x5 o. @6 U; F. a
PHA9 z6 P( o: {, p6 _4 k7 f) g+ c
LDA #$00; b& h' w2 { Z3 [
STA $8000" d0 ^/ C$ y, L5 o$ k# n
PLA/ ~8 y8 r" g, ]
STA $8001
% i& z: h0 V X& S ADC #$02! s+ w. X/ @# `, K7 t3 }
PHA7 j% r1 Y# {1 S: m
LDA #$01* e2 e" V9 u- `) P7 X6 J( H
STA $80001 D# h- H( X! i- n+ C0 z0 A
PLA! z( X& S' v$ j
STA $8001+ ?5 l- Q! x( h) r& E6 S9 I
PLA1 B; w1 |9 O9 ^* Q
RTS
+ d9 h3 O& b% B! T: G ! F8 @, b0 a- o( h/ G
.ORG $7360
' C( \- N$ ?6 }PPU_BANK_1000: ;背景切页3 y" V1 {0 n) V+ P
PHA
( f8 i: |; T" s P4 j ASL$ |) c7 G+ Q, i7 i) @, V+ o5 g
ASL
: M: c: S6 M! T3 `* O6 y O PHA
! [" o5 z+ C2 C* g4 [: P% @7 S( X LDA #$02/ V2 I$ c# l P" Z5 S4 r& P
STA $8000
* u$ t* o9 s0 e. f; v6 J/ T PLA9 d" `9 x8 u% c9 ^7 f) I$ a
STA $8001
. e8 z2 F6 b/ l ADC #$01: o5 |- P1 q) B& I, m
PHA
6 h/ _" h$ U# i b4 T* x$ b8 s2 { LDA #$03& ]. |- B$ ^4 N; H i; I: m
STA $8000
) T! R0 m, h& o PLA9 P! A' \& z" P* E% p& g0 l
STA $8001
. J; X9 g! z% }8 Z2 V5 F$ O ADC #$01. b! ^! O8 A) H" c
PHA: [4 J/ a* u& c3 }. J5 R" R
LDA #$046 h0 ]1 A9 t9 v9 e$ H/ x$ @
STA $80002 N' T* h" U$ Q' P6 }
PLA
# E4 v5 ^) Z! f: Z: ^1 H2 k STA $80013 a3 f. K8 i* C1 r, H
ADC #$014 L; A; }5 a1 ?5 \
PHA8 H T$ L# T9 _) J# f' f% D' E
LDA #$05
$ Z$ l d. O" ^& a$ b- g2 }% M# k+ I STA $8000
7 e3 t! I' \1 E% [" ^4 c" d PLA" K6 M3 j8 O! |' Q7 Q& a
STA $8001
& B) y9 O5 m2 n PLA
/ D2 ^) I- i6 W" @4 @# ?* ^! X RTS
1 ?8 s% {; Q. }( T0 K
& y4 ?* Q4 |, V6 x: ? |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|