|
|
;[FC][最终任务mapper1切页程序]
1 j2 N) C$ J. p .ORG $CD9B
& m) N: l" @9 d% n& u- i6 e8 iBANK_START:
; X" K. F4 S1 m; G2 d; W STA $70, L6 a; j, q0 C' \/ O
TXA
2 n9 G) }) K$ j r: ^1 R ASL8 y. O, L! h; k) ^
TAX3 M' G& D" `0 F# C
PORT_SET:
( k' G7 }- [4 C/ s( A LDA BANK_DATA,X
. q( B$ |/ M, {( {% v% N STA $6E
1 C3 y) `+ T( g7 z. V/ q$ j LDA $CDB8,X; u" h6 r5 |( \2 [% _ u, V
STA $6F5 u# i9 `8 T* n: L! e
LDY #$00( |4 ]. F: Q `6 Z
LDX #$05
# ?7 S9 G6 j, |2 E LDA $703 k7 U$ o$ s/ J A" m
PORT_WRITE:
. m3 \! S0 L$ [* s$ F' A STA ($6E),Y
# _# ~! i4 `# \# s3 o9 @5 q LSR. C2 Q9 I L( d4 a! f
DEX% [6 i9 D2 G) Z
BNE PORT_WRITE: _2 C: F. z: A/ z$ R
RTS
8 Q3 R( ^% M; O1 X. {( q( h8 o+ n , |: y$ Z4 H& m
, Q! `7 R6 f- D$ aBANK_DATA:1 ~/ X$ S b) d2 e% n
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF* q2 P9 `* a* f. y) t+ [
* {! [& F2 X: E" n& F( N9 u4 C. Y2 O
1 E }: v5 k1 u1 u1 A;[FC][最终任务mapper1转mapper4切页程序]! ~8 S4 P1 A9 n* _
.ORG $BFD2 ;初始化跳转3 f8 W8 w: c, n. _$ b
JSR $FFC0
2 L: p1 l* l' |% @$ q4 ^; c+ \) P: J3 p' P+ u
+ R+ q3 ~; l S# K .ORG $FFC0 ;切页: r8 x0 A/ R. I) J2 W2 s% N* a
LDA #$06! ~1 F+ ?3 @3 _; D& B8 ~0 Y
STA $80001 k6 _' f- x0 W h! j* Z4 e3 A8 Q
LDA #$0E
, u( B. t5 s* K3 ], i H STA $8001- K: Q. W+ J, |6 v$ n
JSR $8000* z) ^# p1 d/ R! B5 |% n
RTS 2 ]6 g, y) g- B# F* ]' S
2 F8 u1 K3 b8 B
.ORG $8000 ;数据复制% T3 n. C, U8 B* G
LDA #$80' a' s1 ^4 x% x
STA $A001 ;启用SRAM
5 D, d1 b& f8 { a4 R PHA
5 B' |% g* }; J _. q2 j TXA& \0 u; C2 K% c" Q3 }
PHA6 S G7 \# R r1 V" {3 j
LDX #$00
/ E. b5 h: m8 bDATACOPY: ;数据复制$ [8 m& `& u) x q1 P" i- ]/ n" }7 n
LDA $8100,X
8 g: a- u+ v3 N" ]; d3 i$ o3 E2 n STA $7200,X
a) N8 j# j/ B5 G INX
8 \7 S+ E/ U! r CPX #$00
. o' l9 n2 }$ v+ u: n BNE DATACOPY/ J8 E: ^# |* H1 l4 ]6 c; v
PLA$ \' F8 U& d3 m. u/ |! V* a
TAX
/ h. [' L# ^3 Y# k$ _' p PLA
\4 `6 t. {: X( K7 e$ R8 U% \2 S RTS9 u: G0 ]7 d) u. j. t+ R t: }
' _1 z Z) |; f
.ORG $CD9B ;跳转到转换的切页程序
# h$ \* I) H- R0 `. K STA $70
+ l; j/ D% u2 R" E JSR $7200
5 @6 M% ]# \* d5 i8 Q7 I1 u/ ^% F RTS; m0 U) E5 P9 C( ^( O% }+ u" e, X
9 @1 v( t: Z8 O% u- T r. M9 { .ORG $7300
9 g6 Q! u$ K3 p/ ]% CM1_TO_M4: ;切页程序
% l8 W" \, _1 Q7 V CPX #$003 }, Q. Y/ u( g, o: C
BEQ REG_SET
, ~" G8 c! ?* H$ k CPX #$01
" l: C: P& A# ?, W7 q BEQ PPU_BANK_00002 h! e( e5 h0 @% C
CPX #$02
8 ]$ f" C* d) I* g. \ BEQ PPU_BANK_10005 o$ g0 e! O7 c, O& g) |
CPX #$03
1 |" R8 A6 j" }$ a7 G BEQ PRG_BANK
8 Y5 M, T) ^, `0 s z" v8 a- bREG_SET: D/ Z/ \& {: A1 P
STA $A000+ ^2 p9 t% p) v2 M/ |, l
RTS
$ m$ Q {' X; J+ B' B( @6 I .ORG $7320
4 @" Q$ ]2 }# b; o/ x2 JPRG_BANK: ;PRG切页
. }1 K. A" _* H1 F3 f PHA
& x# _. m4 H: G* s- I LDA #$06) m! t5 v: ]; T
STA $8000
1 H6 g: w& q' w3 [1 ] a4 D PLA
& [7 S/ {# M3 }- t* T3 e( Y1 B ASL% y1 o. L" _- @6 |4 m: ~
STA $80018 u5 l9 }7 Y. r7 a [1 B; W
ORA #$01
7 K+ u9 K! t/ i- c% r PHA
1 H* T9 U" K& Y3 p* g4 ]: b' X LDA #$07
; \9 @" i" M+ H8 x* [ STA $8000& `3 W0 p4 f I! X, ^; W
PLA
: v$ C3 ^ F9 W. N* C STA $80012 e: N! a6 z ^0 R" E! T2 p
RTS
3 i1 J: A& y1 h+ E" c" [1 ^$ P- H .ORG $7340# j& a& ~$ K$ n4 V) [, I/ |: ~
PPU_BANK_0000: ;精灵切页/ c0 C. ^/ A# z$ @+ F6 u
PHA) l( _0 m3 C$ c) w
ASL2 \, ?2 b' ?) q# b6 T( S: Y
ASL
6 z2 _ R/ Z" f9 J* w7 r5 d+ S PHA
8 m1 U1 y4 f% ^* F" |( j. P2 j2 z! A$ Y LDA #$00# [9 R- \' u, g& @3 d7 ^: N
STA $8000: `5 ~( ]7 T' n
PLA
- z- `& o" \" E6 [+ r7 o, q' r% u; w STA $8001
2 i0 g1 G9 B! l; ? ADC #$02
, c/ u' i; K" Q( l4 f% p2 [/ { PHA
$ r# |( o) B' b" y w LDA #$01
6 p' l! {% y1 D7 \2 S# H STA $8000% S6 N4 b% b' I
PLA
, }5 G1 @, [* F1 g' I: G STA $80014 ~$ z% e$ t3 Y" _% S- M6 W
PLA) g1 F7 ^% ~# }
RTS
* }5 Z+ Y% v6 E9 Q3 k 8 `9 n& J. Y; ?
.ORG $73604 O0 g0 Y x" [, l
PPU_BANK_1000: ;背景切页' b& J( t1 w/ q- {8 J
PHA! C' g/ f" [: G
ASL
4 x4 w& n4 H6 l$ r9 ~+ [9 ~1 R ASL$ x6 V/ T' H9 N; x, R: [
PHA
$ k3 h+ R S2 V6 b) ]$ e7 J LDA #$028 A1 Z( X+ S$ x6 F9 ~
STA $80007 T; o4 F( F. I5 x* @: E
PLA' ^# h' N: [8 t: z+ D
STA $8001
9 b! u6 {) m8 F* l! F9 s* V ADC #$01
( R+ W* F/ n0 h PHA
. r) E1 S6 H6 O8 P4 ^ LDA #$039 q4 p4 W3 l) g( \
STA $8000
3 J6 P: S6 n3 I6 S PLA* ~. f" [+ d3 O+ [. @+ c4 z
STA $8001
2 k0 t: V' {9 G% [# Y2 h' h ADC #$01
# v% {& v* q+ H* \3 G# o PHA
/ F5 M+ v7 k) Z3 t! {6 ~3 i LDA #$04
L _6 ^: v9 d; c, k6 T, i STA $8000
# w* K! x, U/ Y J: d PLA
* N" @, }) R; }/ s STA $8001; Y7 Y* V+ O4 ]" t* b
ADC #$01+ ]4 ]$ s! ^/ p* C6 r2 @
PHA; Y5 n3 `. s8 m( Q! N, @
LDA #$05
4 T; L1 o' ~! @. b5 P- Z, A STA $8000% l% Z% g$ D+ O8 `
PLA
9 Z9 T" V; N0 C7 l! M6 X STA $8001
, `7 {: y1 o. s' i( L PLA
, {2 l8 c% W% X8 J RTS0 z. p1 `: k2 s( G$ \
) z3 l9 g$ M* @6 O6 O2 t
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|