|
|
;[FC][最终任务mapper1切页程序]7 o5 g, Y1 j. C
.ORG $CD9B' u! ?' U& z3 ?+ [- t& F6 X
BANK_START:
3 c! d2 G+ u1 R/ z3 r. x: Y STA $706 _4 O1 ?) _/ F7 F; g3 B
TXA
: `: C- f+ d+ W; I9 } ASL
0 T* [7 v& o) f& P4 v0 Q6 z+ Y, D+ l TAX
2 c& G+ V* @9 F9 U5 w' ^, MPORT_SET:
, k. r" a* k1 }2 q+ H# E LDA BANK_DATA,X
! R* S1 F2 f- m( ]8 o9 k STA $6E. I) m+ [" h: _3 m9 h, Q
LDA $CDB8,X0 i& A5 m! x9 b% i' U8 H4 a: f4 x
STA $6F6 r2 J7 j8 z, S& N1 e* `
LDY #$00' d0 u; X9 T3 L
LDX #$05- ^' ^5 g, Z/ o
LDA $70+ |5 R) @7 U% p
PORT_WRITE:
" n/ C5 ]9 E5 p( R* g6 ? STA ($6E),Y. G$ I3 W& `& V: E" o/ @5 Y8 @5 R) q
LSR
4 N: T. w {- u% d DEX1 C( C2 X. P: r# N3 {) F) D
BNE PORT_WRITE
8 P, l3 h, s* V5 ?- R" Z2 a4 m RTS
2 `$ Q8 |# D* E, Z+ Y3 p4 }% L. T ; |+ s, r- M- Q4 O( N
! H9 B4 j4 n& J( d0 b2 h* pBANK_DATA:
' l4 @ @3 p0 J' H9 ^ .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
8 @) Z. O' T, ]5 {+ Q 6 K7 E4 u4 F( @+ A% D a' f7 ]
+ t& ]' p# L$ Q) g, t
;[FC][最终任务mapper1转mapper4切页程序]4 ~6 T( O2 ^6 v& L Z# h1 j" i
.ORG $BFD2 ;初始化跳转% o( m$ ?! g0 u' r
JSR $FFC0
d7 o0 A. Z2 n, f. e3 ?. o) j+ E
6 |1 n" E7 ^/ `/ Q% r+ H' U @2 F% x5 X c& j' ?2 Q) S
.ORG $FFC0 ;切页
- y2 |6 R! n, f! k. s6 T. @ LDA #$06 S& z: r- x% }( `8 G" K
STA $80000 d$ v+ ]& O2 A" X
LDA #$0E
: G5 H" |* [4 M9 v9 i5 _ STA $8001
8 A) J# i, g* k- Y$ u* H JSR $8000, `$ ^/ X/ p5 @* a' M' y5 G
RTS
6 F- v8 e1 P3 y/ T% d n
3 F$ U. k2 O' l& ?; e .ORG $8000 ;数据复制8 h/ K8 H: t7 i4 D
LDA #$809 }* C, Q; R& q' E
STA $A001 ;启用SRAM6 t0 J. r8 @& @# |, Y) f
PHA
& F8 l! \8 `. `' a; S l TXA
# q& n- d- S0 L s PHA2 l1 E/ _, @3 W4 b% V, ?
LDX #$002 s7 Y7 e$ b9 X! O4 ]$ W) |5 B
DATACOPY: ;数据复制3 B& B2 w5 _# w
LDA $8100,X: ], x+ h7 B+ L/ v4 m
STA $7200,X# Z' Y3 w. [; N0 V' ^* K# x1 D% K f z
INX
! ^* W8 R( D/ f8 ]) {: T4 e5 L' N0 [8 S CPX #$00
. Z5 _& G! j5 @8 t BNE DATACOPY$ `0 [" u- f/ p
PLA+ |( F- T5 I. j$ s( w6 c3 t
TAX7 d( B" E4 G$ ^; f
PLA
Y; S' L; G" E# f" s: r RTS# S& {* p/ L0 R3 ^. Y/ }4 z
/ J" ]3 k9 g: {* y% H* H
.ORG $CD9B ;跳转到转换的切页程序
0 A) T+ @/ K; L. h: Y/ c4 [ STA $709 q, |) ^1 q7 r' S
JSR $7200
% S9 S/ K% |$ Y+ A9 F$ D RTS( u. }; u4 W( S& U6 V. A# c
( P6 H- s$ p) W5 R0 b# e
.ORG $7300; }1 I& Z3 W6 j5 ~- D
M1_TO_M4: ;切页程序
$ _& G. ^3 k3 B' I4 w+ }. t) ` CPX #$00
3 e! `$ R4 U8 n o T BEQ REG_SET4 m1 t( o% G0 o) Y, K" o( l
CPX #$011 H8 N& u4 n1 z3 J
BEQ PPU_BANK_0000( Z# B0 \# R/ c5 b1 N% J
CPX #$028 N9 Q0 b0 k# l5 t8 M2 @+ d" `% f& |
BEQ PPU_BANK_1000: y; Y$ J3 ^& z8 I0 I
CPX #$036 L4 l' ~* n G- D' {
BEQ PRG_BANK
- b3 K# G- O, ~# n1 eREG_SET:6 U, h4 N, n8 B: R" u, w& y
STA $A0009 @' T, {; r; [& e) c
RTS
, H8 N3 _% k+ K) h1 o .ORG $7320
, h5 n3 o$ H. P' KPRG_BANK: ;PRG切页9 J u- j! I: ?% W& H B
PHA
/ \' B: K3 r f/ q; j7 p LDA #$06! l `% B; @1 n& m5 ^0 E
STA $8000$ d9 V, u$ s* [9 i9 |2 r
PLA* g2 o) l2 X, q* [- A
ASL
2 o g, u* {% _1 [% O STA $8001' Y. Q- [. Q8 h: w E
ORA #$018 ^1 A- o4 p: R; ?' Y0 d0 `( K+ Z
PHA
+ N! E3 I# F# D8 y- z LDA #$076 r2 t' q: L0 I2 B" |
STA $8000
* ]/ m: ^% D% ~/ n% h" ?$ a PLA0 O9 s" D1 @ c( z% E
STA $8001
' c$ U [; F* V RTS! e0 g" H# a- K$ g4 X
.ORG $7340
6 f# W9 h% X3 D) Z' b7 [PPU_BANK_0000: ;精灵切页
/ Y0 B* T. E0 I& P; Y/ w PHA
2 T e% r1 f! J) | ASL2 B' w J" D" i. [, x
ASL/ ^4 d/ }! h4 \
PHA1 i# H' Z& i, @8 q
LDA #$00) t" e C+ ^, X; \/ @* O q" U
STA $8000
1 @9 D% l+ k/ z; W6 b; V PLA
6 i# W' r7 y& @4 ]4 p' o; F STA $80018 u3 Y1 x& U4 C& I$ {
ADC #$02( a3 G" L( Y& N9 M% e5 P. G
PHA: g' w2 p% t" ], |0 i* t* @0 t
LDA #$01* I) W( `1 d" K) O1 l7 i
STA $80004 m; Y( `9 |. e* ]! ^) h
PLA$ h4 b/ V6 { b/ B
STA $8001
2 v$ V- o$ ]* S PLA/ W1 {/ q" `7 ~0 o
RTS# h J& \! e3 |# s7 m$ c$ U9 w b
5 l( I% B z [0 ]; P7 `# R
.ORG $7360, m5 f% C: n: F Y
PPU_BANK_1000: ;背景切页% t& L {* \3 `: |! a# S) F
PHA1 v/ z* Y; I9 r2 V
ASL( }" c& V! g; Y0 }
ASL
& L2 p1 A- N u' t8 {) x PHA* g4 c, K! V! \* ?, x; E- q
LDA #$02( M6 Y5 S- F* X- I: f P
STA $8000
# D! ?; r* q, Q5 X' W; h PLA0 Y" G, _2 c4 u) M5 V7 @$ V3 Z
STA $8001
$ `) V: F4 }% B3 p) W. _* [3 r4 M ADC #$01* g+ e/ F; Q: Z1 m- q" ~2 K' @
PHA
7 x( L M$ w# N* h1 m, U. ] LDA #$038 K5 K$ F0 X: R/ d+ t5 }$ i" a* x
STA $8000
: |- V: ~7 Y4 Z0 c' q PLA. X8 a* U |5 e7 H8 E
STA $8001
# E: |7 v" M; O& `' P6 e8 v7 P u8 K ADC #$01
4 X* c$ t. {+ H; k$ p3 W8 e PHA
4 `' r6 B/ e# D* ] LDA #$04
$ \) b: G# N2 T! c6 Q4 \ z" s2 ^ STA $8000$ M# ]1 g5 m" u: o6 R* T
PLA
g( O: |% w8 d. D' { STA $8001
m* i( l* q, A) b2 K ADC #$01( [& f( F& s* V5 F* G& o/ l
PHA
( w* c0 D5 F4 ~& r5 P4 ^ LDA #$05
+ {5 H$ O# s3 j! d& N. K) ^, t7 I STA $8000
7 l' ~6 Y0 `1 G PLA) O7 M7 A9 y! P l. X
STA $8001% O9 z2 q1 G( A; d( |, l
PLA- e' ?' y* e9 Q) H3 C
RTS
- T5 u7 i0 d# h1 C4 D9 O
" k' x. i2 m7 h |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|