|
|
;[FC][最终任务mapper1切页程序]
S+ w+ s4 l) l .ORG $CD9B
& G4 _; d, @& T- r0 w2 NBANK_START:
& K& D% Z: ?# k; l' ~: b STA $70
- ~8 c, X& Z7 A0 \ TXA
/ r. G! Q4 t- _8 u' t ASL
1 Q2 Y" B$ {7 y. c# v3 D TAX
. k9 x) [7 F+ X3 aPORT_SET:
2 h7 R4 [: `/ M LDA BANK_DATA,X; o- E) y& R( h9 C; L- l5 F' {
STA $6E5 F" \+ E. a6 t( |+ b. h5 ]
LDA $CDB8,X9 R: h0 j2 s# e( ^- h2 t' g3 {4 F
STA $6F9 I4 E% ~( G c. p4 t: R5 I
LDY #$00
$ W6 W* f2 @0 @7 \8 s3 r LDX #$056 X8 e% t7 v& ]- k
LDA $70
! ^! g0 r9 u8 A- v. NPORT_WRITE:
( W6 Z' M5 z; F8 Y STA ($6E),Y v0 W$ Q, }) l4 X2 q( a: i
LSR
7 m4 a( U# k/ o! m6 d DEX* U" [- L v4 l
BNE PORT_WRITE
/ ~8 x5 f0 v4 F RTS# ~. N1 n% E& w; I9 r( ]7 ?5 L4 Y# o
2 |3 S: V; U: K. @
9 G6 E6 y$ i& @. \8 ~- SBANK_DATA:; g" r. Y/ k% k) h4 o
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
& G" N f& I/ L' r: G# O
* f' R2 g( s( X! p) f" y 4 p. c4 ?5 v& r8 _- |4 R
;[FC][最终任务mapper1转mapper4切页程序]
& w1 O$ G: i h .ORG $BFD2 ;初始化跳转
: j0 X1 W9 `% H: b% N* q) G7 n JSR $FFC0
" G1 e- U% D8 @& Y( H0 t' D
* N# J+ ?1 G" B# Y6 ]1 O+ j: @
.ORG $FFC0 ;切页
# F7 z5 t) x# S; V8 U LDA #$06
' N1 |% D9 V @* \* G9 p9 t) h% ~ STA $8000
: t: W( Y7 t9 @. R( Y LDA #$0E
/ y3 z; Q5 V4 Z; E' o+ T7 Q3 Z/ W STA $8001
" c- z9 Q/ |% n8 m: p JSR $8000
7 v; Y- N* p& W$ ~% H6 q' ^+ w" L2 @ RTS
5 _4 {4 F J0 j, \0 S5 M) x- P q
# q2 y4 n- K2 O& b/ Q' h4 ^ .ORG $8000 ;数据复制
* u4 E/ Z4 L+ X* Z LDA #$800 j: Q% p9 l* t' C8 d4 L
STA $A001 ;启用SRAM
0 h4 ]8 a+ |: g, q7 p PHA
9 O8 |6 s9 @0 N! ?% B TXA5 w- e( M8 Y. j& H
PHA
/ d0 G% e, Q. Y0 f6 ~2 P( `5 Z5 \ LDX #$00
0 v9 W$ `2 T, I- b. _DATACOPY: ;数据复制
4 |# N+ H5 J( z, I3 Z( c LDA $8100,X% `! U- Z* [2 `- q* ^" O# h3 A
STA $7200,X
7 w4 [+ v( F7 {% T: ?$ {& P INX' R1 o1 B: X% @; W4 C$ Z9 r. T* t& f7 l
CPX #$00# N7 ~" a7 V" R* C8 @
BNE DATACOPY4 w; H7 S; o+ B
PLA% V0 F9 F& `6 Y# Y- M3 T0 Y6 ]& b/ f
TAX
) p# B( c; s/ L PLA
" p. I& J) v1 y$ Q' H# w3 f RTS
8 X& D4 }. k/ u4 Z6 i! h+ ~) D" g ; Z6 }2 l6 g: \3 P1 Q# q
.ORG $CD9B ;跳转到转换的切页程序
" B6 O- v6 D+ Q; E5 I7 U; ?. V& b STA $70
+ y1 p1 ^4 C N0 i JSR $7200/ f- Q) c* V4 f0 }/ i* _! M
RTS8 I* R# f& I' w; `% B
' ?; ^7 _9 N3 t, j% ?5 [
.ORG $7300
' N% r* F6 W9 h; @" M1 W6 ^M1_TO_M4: ;切页程序8 B+ e1 g& u. t7 M* n
CPX #$001 ^7 l# P3 _1 n/ ]
BEQ REG_SET
, C+ V& [. J6 e4 h5 @ f+ L CPX #$01" A& E/ \2 l$ `% G2 q9 X; \/ i3 n
BEQ PPU_BANK_00008 z$ V y( B. a' X6 `
CPX #$02; x; q2 H S) I$ M0 ~0 [
BEQ PPU_BANK_1000) [+ Q0 E. x6 P* e1 U" @% `5 d
CPX #$030 c7 {3 c% _8 z5 Q' G M: N+ B
BEQ PRG_BANK# _/ S* U6 F% y7 a: g
REG_SET:
% ~8 q; X& l2 c* m) G% G' p STA $A000 K" U' D0 Z6 k
RTS! G) r$ J$ f8 A
.ORG $73208 g4 I9 l v* u5 K
PRG_BANK: ;PRG切页
* H m( m u3 r" r/ r PHA
& H- ?* A+ C% j6 Q" d B LDA #$061 ~+ e$ O" o6 A& ]9 R# C' i
STA $8000. ]' y2 Q& S2 {4 C
PLA, e+ W6 I3 I0 g! v* E& K* b
ASL
- d2 R* I! l- I7 f STA $8001
( T# v8 V! F( ~3 O* F; h. B( I% J ORA #$01
$ |" ?& w( G6 x# e, T+ R% f. h PHA
# x6 J$ @2 [! x. f LDA #$07
4 I+ c: n4 V* @0 F1 h STA $8000
' `/ c0 h1 f! `( y: H4 a& J PLA
, k! H' m" g1 v% i: D( h STA $8001
2 n3 ?: l' ], L8 z& P6 M3 k RTS
4 F. S p1 x' p/ C .ORG $7340
9 e' o+ J9 a. S# G. ^& S: u/ gPPU_BANK_0000: ;精灵切页
! u( Z6 r, Y! e PHA- w$ n" D) R! V% E' q" I) Y: K6 O
ASL
: }3 j3 k8 J$ U T( @5 | ASL
, U, Z9 Y% g6 K1 ]: ?. o% } PHA2 m8 l l5 k& j- S% [: B
LDA #$00
& ]% n3 e- c* ]" |& j$ K STA $8000- [: o6 d4 X( Q8 D6 ~! T
PLA
* j* K6 \. P* z" S3 j0 S STA $8001
1 f& W6 ]) ]6 T& A0 J ADC #$02
. [( l' x! U2 O0 W PHA8 E: g M) T/ l
LDA #$01
d/ U2 {; m+ L- O: g STA $8000
g# |0 {$ k$ _5 q6 o PLA
( r( W- S! p! _/ O' P STA $8001) ~! G$ B8 X. u, } o
PLA
$ T+ s. z- t7 \ RTS
/ ^3 J% Z* f7 U. E2 n! r4 L
. d: S g* N; h: i3 k4 C$ C8 L .ORG $7360$ q+ `! O4 }: e$ R2 }: _! v
PPU_BANK_1000: ;背景切页2 s( q+ Q. D% G6 m5 ]: u s
PHA
5 e" v8 n( @/ x* E6 g ASL
* Z& v7 v' X/ t ASL
. z. h4 h+ S! `8 O% l5 e PHA+ O' ?- j0 S0 n9 }! O- i* S
LDA #$02
/ A/ Y5 b& A# V! a5 Y STA $8000: T$ D6 P! k6 k7 F
PLA4 I$ x; h6 p- _5 o( Y9 F& r
STA $8001
9 R/ O5 s. B: }- g ADC #$016 L5 K5 X, k4 d/ m5 s+ W ]9 w
PHA- b+ W6 K ^8 ?5 h4 K( O) {
LDA #$035 z+ u$ [3 ]: Z) _6 W9 t5 F( `8 P
STA $8000
; }( _* V/ t$ A! Y PLA
) F) k* e% W( e STA $8001
# `- z& A$ e1 ?' Z' [. m ADC #$012 `6 m( E0 E& f8 b9 n
PHA
# J3 f! @6 B7 t% V2 I1 Y LDA #$04
. Q3 i) ^0 |) Y& ?$ y* t% _ STA $8000
, K8 q" L' U# g' z PLA9 U7 ~. J4 {" h z, v
STA $8001
9 t" a& e% w. f) g# I# b ADC #$01
9 y% K& e( y+ z1 K l6 x' s PHA
3 O' A% w6 P9 k) i% G; V: k7 z LDA #$05
% R0 ?1 y6 k9 p. O* P STA $80002 @; T+ G+ `9 J; q( v6 k
PLA }# x/ Z2 a, B1 ^+ [8 ]" t% s0 S
STA $8001
9 U$ e: c; }& F4 _ PLA5 f$ ?% ~: s! D: B0 `% d+ P# [
RTS
& P& o2 Q* m1 q4 D6 g" Q% R( y, }6 m+ r
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|