|
|
;[FC][最终任务mapper1切页程序]
! P) W/ p4 F# N" z f .ORG $CD9B* t3 L& f" a, j; K& e9 ^
BANK_START:- Y0 a4 a! w+ S! e( @* L0 H5 s
STA $70
0 f! `" ? j: {# S TXA$ \* U/ f7 |% G- K) k l7 o
ASL1 v: h- b" v* g5 [
TAX6 x; a8 V# y3 |& {7 W4 v: |, I
PORT_SET:
. ~1 L6 e' n: G LDA BANK_DATA,X
! N5 A! }8 T4 `, B* B1 P STA $6E- _3 C Y H; ?: a2 D5 z
LDA $CDB8,X
: q2 Q! f4 Q3 `( m7 Y0 d! P STA $6F
6 ?" t+ N0 Z: e- b0 d3 V LDY #$00
- V4 P5 M5 B) ?4 K+ W- t. H LDX #$05
) P# k2 Y& X) X) O4 J LDA $709 W3 j& b. f" {# N9 m
PORT_WRITE:& c0 p( q4 V0 Q
STA ($6E),Y
$ k' w' u4 H; l7 j0 w LSR
8 B7 I3 r6 c/ L; \+ s. X DEX
: c8 O1 G" c# @0 A7 [& @8 D, w+ v BNE PORT_WRITE
+ L% o6 y; T! v8 P# N" k, e RTS: S( f/ y8 P b7 {
3 L {# Q* C" X) \$ C* m
|. Q5 |; @9 G, X4 y" ~0 aBANK_DATA:1 b/ }+ W; y' M: t! l9 G" X
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF8 C" Y" t& p, j9 f- |- y: P) `
4 H4 V0 [; c# v8 M' i
. F9 c6 \( b' J
;[FC][最终任务mapper1转mapper4切页程序]
: w: e0 z& ~0 O5 ` .ORG $BFD2 ;初始化跳转1 g! Y3 P# q. k
JSR $FFC0/ z/ {7 q7 g! @6 o
, i& j1 {: G* e" L2 v% V& n' F& e/ ?' `. D3 w: V- Q8 w
.ORG $FFC0 ;切页! A& Y- P0 c3 i( L" i7 |
LDA #$06/ v2 ]) X5 Z4 L$ W( S. p
STA $8000
# J1 ~. E8 z3 u# t LDA #$0E
; F# M6 X- g# ?. Y STA $8001( K8 C3 I$ M7 N' u8 |' D) X
JSR $8000/ R- v6 M2 p6 p3 G, p% H
RTS " ^3 W, Z$ B) w6 e9 C. ^9 j
3 U/ t- ~3 e$ [; Y% C .ORG $8000 ;数据复制, D* W& P( S% X" v
LDA #$806 z% s3 x# w) ]
STA $A001 ;启用SRAM
/ x9 {3 ?- m- U3 M' c+ o PHA a( l! F Y `4 I
TXA$ c6 Z* _9 a. u" M& V
PHA
. K. G, t+ n7 D/ e' m LDX #$007 p+ p8 w0 S* i8 M" ~
DATACOPY: ;数据复制( M5 j. A9 `+ _# g& \/ Q9 A
LDA $8100,X! \; [* G: S" Q% }0 ^0 |4 |
STA $7200,X0 R+ o' z( t7 |& G j
INX R6 B$ X3 W0 m; E
CPX #$00: U! M2 _* t6 S$ h% n
BNE DATACOPY! T4 d: P7 p! f8 Z
PLA t# ?( p& j. i7 f
TAX- A8 q/ e9 _' a5 m2 ^# F
PLA
$ s; q z2 ?& v RTS0 u; O/ Z" Z X) h( |) T% M
5 y+ I x: a: O% {6 S1 q7 L
.ORG $CD9B ;跳转到转换的切页程序) p: V7 a# t/ B, K: Z3 ~# h7 o
STA $70
; H* K _/ I8 m* q5 O JSR $7200) ]7 f& i0 I9 a X# Z
RTS
& V8 q1 b# F a) `* K & n) U R' t( q
.ORG $7300
( H, H5 c# F' S" S- XM1_TO_M4: ;切页程序, P3 t: k o" w2 Q8 `* u9 ]8 h1 U
CPX #$00
% v7 n- l. H0 [* k% ?& K3 l& o BEQ REG_SET! r( {1 A5 a, q' F9 U; w+ K0 s
CPX #$01) t- ?4 S; ]* r' C- g( b
BEQ PPU_BANK_0000, t# ?& ~3 B5 c
CPX #$02
9 ]& _: e' s- A$ x BEQ PPU_BANK_1000
( c y1 C" `$ Q% L- x1 H! D& i CPX #$03
. c! h1 v# @. w7 q/ a BEQ PRG_BANK
: B; l0 @5 K; C# @0 {REG_SET:
$ n7 V1 s# T/ `; b7 p STA $A0002 J4 {( G) d' {. z* i. d, e" w8 `' n
RTS
( w! x$ t6 C; y5 i6 a3 k# \8 A .ORG $7320
+ V2 e% y+ v- XPRG_BANK: ;PRG切页! ]: [" Y% Z; N) b _
PHA, v6 \& A2 L8 a
LDA #$06
0 A7 \; k8 b* b STA $8000( v" N" y$ r6 \0 l) u
PLA: H4 r: `- g8 O; |: _, V. g
ASL9 K3 s) i' R" M5 c9 `- @
STA $8001
0 ]; o6 r* y! W' E" M! f8 g7 K$ x) a ORA #$01
' A' u, I' @# V. g. X5 a. h' q PHA8 P: _& F" J" D& \; I6 A9 i/ k
LDA #$073 d4 n& \& o; g Z& l% j
STA $8000! U9 g* _ X2 P7 {9 Y C5 E
PLA+ G+ W5 U% F" ~% }: U/ k
STA $8001
5 z$ f( @. T5 {0 Z# t0 R7 V8 t RTS* j$ ]: {# E8 j2 @3 a7 i
.ORG $7340
9 M! P; D7 C' `0 oPPU_BANK_0000: ;精灵切页 |5 [$ D( z9 l
PHA
" B8 z+ y; S1 E9 i, k0 p# p ASL6 ~$ }: N8 k( m+ g' V8 { j) e, |/ c
ASL5 l) O |7 [# e+ C
PHA
% c1 _" w8 [" t# ]$ ?) V4 E LDA #$001 [% _% T% v' U+ Q6 R- Z/ l
STA $8000/ w% Y& L. |+ M }
PLA Z6 p- e3 m/ ~3 F5 I2 }& P: `+ c
STA $80018 d- l! }' G! s7 V& x: s
ADC #$02
7 u! y3 S/ d9 n& Q PHA
2 | m" x1 A0 s( A. @# { LDA #$01
0 O# L. ?" V1 L- n. G! p STA $8000
6 N8 T; F0 b) S8 Z- T) X( ` PLA0 s H7 p6 [3 n2 q- L7 v- Z
STA $8001) p* H" i k1 y. l+ v/ s' |
PLA9 H8 ]# i( s# q) c% J0 k
RTS& P; n7 F0 A. h1 g1 K
+ Q' I# J/ d' I5 l/ F( X: `
.ORG $7360: Z5 m$ I; t8 e; I6 n8 J6 p
PPU_BANK_1000: ;背景切页
/ I; A- a8 ?8 u% S. e4 f PHA
6 g9 P8 D0 q# ~$ k6 `7 F ASL. F3 X, g' A( w* J( c7 a
ASL
5 L; ^1 m6 g' J1 v9 I4 H6 q2 H PHA/ V H+ l7 `, @ U' A5 R: A
LDA #$02* j" [" [1 z. s
STA $80005 Q/ S4 A" T0 a4 _' V
PLA
4 m# z% a" R3 u# H: ~5 D/ h STA $8001" v/ F! B$ I* n$ h3 T/ w
ADC #$01
; J/ Y" k/ f o& G/ O& z PHA; `! p; {8 `( X: y
LDA #$03; a: D7 R+ M5 O& h0 p
STA $8000
" ` u8 R! U3 T% P4 i, z6 q3 a PLA: v! S+ s D/ j& q0 q% b0 ~
STA $8001
# b: R6 K$ x8 }. P# b ADC #$01) n% F" z7 T# j# r: z: o$ O) m
PHA0 H6 Y9 |4 Y, m0 p
LDA #$04! [8 d* n/ y% A' _7 ]
STA $8000+ t+ r- s4 Z/ U; d1 m; v" H
PLA: x- Q( n( v% l
STA $80015 g% ~6 [! B1 `5 z! g0 B
ADC #$01 e+ x4 l' n- u* e
PHA
- k+ L/ l9 [- v. p0 w LDA #$05' P' c0 l8 F3 e
STA $8000
7 p) e+ v& I4 f7 _ PLA
" ^& X# Q* }6 Z( J- U) p' i STA $8001
- t$ b" g6 z( d8 F+ N& R7 v PLA7 w) }; ?0 n9 q0 V/ x1 O
RTS% Z U/ Q `- J! ^+ K2 ~ u. {
. N9 M3 V- V0 l/ R6 D
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|