|
|
;[FC][最终任务mapper1切页程序]7 M+ m0 N2 E G: ^
.ORG $CD9B
) |% v2 z4 a1 E( @+ S! IBANK_START:5 Y4 `3 [$ Q* H. O3 F' U) x$ b
STA $70
- n% k% ^ G7 o+ U TXA' a/ |4 R( J( G4 N4 @+ u6 F( |' J
ASL
( n! e2 i6 V/ b, n! \3 p" M5 ^ TAX1 J6 `! U' z' y9 r3 S; A1 J" L
PORT_SET:
d5 l( P4 P) o! O. G* V LDA BANK_DATA,X4 |8 b) T8 N8 r; R
STA $6E0 {; d1 f1 @' l3 r
LDA $CDB8,X# ?: N5 K& R4 t8 R; l- _* C- a
STA $6F
( t% J S" o) p9 E& }* c' b: B LDY #$00
6 J3 a/ A- D; f5 J2 Y6 F LDX #$05 K2 |2 v2 t9 r- s/ Z: V& E. F6 I
LDA $70
- B# P, o$ N* F' u9 T, zPORT_WRITE:8 Q, d1 F k' A# E5 Z# W
STA ($6E),Y7 u V" u1 r7 }( g- s
LSR& r3 t8 v* E! I" z
DEX
6 m6 {9 Z8 M' K1 X% \# s4 @$ r* C BNE PORT_WRITE
9 B( d% R, p2 d) E8 t/ I3 V RTS6 {- q' m; q% z5 _$ j; O
8 z' L7 s. I" j% m g . j* v! k6 M4 m# m2 j
BANK_DATA:9 F0 ~" b) d y
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
1 G$ [! t B' Y7 p& M8 M- A
7 v" d. h5 t% s' U% c: C: X& E" o% |
, P i* O/ y6 Q+ i* H. H;[FC][最终任务mapper1转mapper4切页程序]
: M2 G c# r3 l5 ~ .ORG $BFD2 ;初始化跳转
9 ~' j& V$ |* d" b3 c% P JSR $FFC0+ [$ D! Y" r: H. H1 @" }
1 |: G0 |6 `1 k1 v# `( N5 @; P* @! e$ I0 D9 _3 L
.ORG $FFC0 ;切页
( X8 r) s# h5 I/ _6 J2 | LDA #$060 r4 |# Q, C7 |7 v% |3 s
STA $80003 I/ R" S7 Y' K* |. F2 u( o
LDA #$0E
# X1 L) h; F; W+ [) e STA $8001
?1 P& ~" c2 N, }; J n# T JSR $8000( N, ]8 j& l9 a2 y% A6 w3 R. y5 o
RTS
% h) ~3 \2 j7 h- K 7 S; X2 x9 I/ ^' T: i. \/ P: G
.ORG $8000 ;数据复制0 u5 s: Z* ]! c# q2 a9 q
LDA #$80# ]/ L, r2 R; u8 H! d$ g; q
STA $A001 ;启用SRAM* l8 D7 H$ R3 a
PHA; w: O8 M- f9 v$ i* V" J- S
TXA
6 `1 t# f+ @% D0 g PHA. R9 Q8 \3 L3 W- U F% R }
LDX #$00
# [6 x d1 K# d+ V3 M# u$ H& nDATACOPY: ;数据复制( A1 ~/ I2 }5 @; `- H
LDA $8100,X
: x6 G8 f8 i& v9 v. y C/ D STA $7200,X
! c- R) ? ? `/ F e/ l% b INX
' I" A# D( E* f! {! Q CPX #$006 R' h* [) E6 K* H5 D7 e9 _
BNE DATACOPY
' @1 p4 g1 I2 H6 v3 K' r" _ PLA4 l' ?* c$ D% R4 U' L; K% k
TAX( v: a! ^2 i' y- z- ?
PLA0 N% R2 Q" A* {' q
RTS
0 B% ?% N) H1 s; n ( d# q9 f- d% x" d+ ~. R
.ORG $CD9B ;跳转到转换的切页程序% |6 |( c( @) T R
STA $70/ f" {: o- `1 R) t {% r
JSR $7200
+ q5 F2 j% k5 n; M' n/ u RTS; o: P5 W& G, t; p& }' B
0 v2 l; v; @; l( G
.ORG $7300
t; g, H/ q! U. p& GM1_TO_M4: ;切页程序
$ K0 M1 C( ]) P- U" v CPX #$00
. N5 D+ H7 v# h+ ]6 L) ?" ] BEQ REG_SET
1 w& i" I0 H0 z. H3 @: I! [+ G CPX #$01
$ G. N7 c3 d& }$ t* \+ u BEQ PPU_BANK_0000
- Q& j- h; F2 i/ b) l! Z CPX #$02# D3 Z. c) Q6 b9 C% x$ s
BEQ PPU_BANK_1000
; g T3 [. f% Z8 N4 j CPX #$03- M' E4 x m6 H# {! l6 j
BEQ PRG_BANK7 b- ~% Q. X0 K5 F: e
REG_SET:
# Z8 M% x1 X2 `- W STA $A000
0 a+ O4 k7 x6 _% E8 M RTS7 N1 K7 o/ P/ r6 P' I% e
.ORG $7320/ s$ x2 O* E' t7 m8 O6 P
PRG_BANK: ;PRG切页
: r: J' G0 ~" N0 }' ]7 o PHA
' {; w2 Z1 m4 u% ~0 Z LDA #$069 U( s, o* f6 X* x" R
STA $8000
9 w) I9 K d' P0 m9 J" a0 @# ~ PLA/ O9 Q2 ` T4 A3 ?
ASL3 N) Y8 u" K+ i
STA $80017 [! ? l1 a9 k' @# w. e
ORA #$01$ ^2 \- p! S& `3 `, R3 q9 |6 H
PHA) y- H4 i2 i8 t; o* C( `4 Y
LDA #$07
( }- z! C2 x0 e' H, z' S STA $8000
, w9 s' S" {9 B( }; u PLA
, l1 k' i( b( \0 S8 z( F( ^' l STA $8001
8 F1 V$ s f; ^! @. @ RTS' ?$ W* i; |7 l1 `# ^! |) A
.ORG $73400 x$ b5 y# t0 L( e' s' r+ Y, g
PPU_BANK_0000: ;精灵切页
* W0 X: [: t% J T& @2 x PHA* X8 Q) G1 F- [6 k8 B. A
ASL
) ^9 ?% C" {# a+ V1 y( ] ASL9 u) l3 N$ t/ m/ j& o; b* o" n
PHA# t/ ]/ b; Q0 f, \) a+ {; E
LDA #$00
' `! N a4 J2 Q- c* o- a# M. F STA $8000
7 Y6 C8 Q+ [4 }3 l7 w+ F. R" t! c PLA
. u' k p; s) `$ V+ U3 P y STA $8001
9 @! K4 C; r, t. y/ r- G0 s ADC #$02
* }+ A4 q/ ~; m& W& D6 M, _ PHA
7 S+ M0 Q2 C+ n' ?# u+ ?0 } LDA #$01
+ Z A* ^9 n+ B; p8 D STA $80005 r+ s ^+ ~0 X: \; j
PLA4 q* G: _) E" i2 x
STA $8001 K+ J# v" F3 P# P2 ~# ?+ G
PLA
6 m* F8 s; X) i, O- ` RTS
: q9 p' S9 e+ D& _" `8 i& C5 h
, f! g. c1 S' l h4 G .ORG $73607 C$ O L8 r1 c) |) Y/ n( {* ?5 i
PPU_BANK_1000: ;背景切页- p0 D( d5 u# a8 C& {7 R6 h# S
PHA2 Z) @+ t6 N0 d& R. i8 p+ t
ASL
% H! c" T3 x9 [: C- q ASL( \; ^ Y' `: F# |* s8 X/ p/ }
PHA
6 r* F7 p+ G& Y( X4 R/ t) Q, f LDA #$02
5 c- x3 T H) x4 W STA $8000
* {" s1 r% T" w( k+ w' } PLA% d. l- V0 {' q) A+ Y
STA $8001
" D; e/ w! T/ A ^ ADC #$01
: K' ]7 O# r- S* \ PHA) L( l. I% X* A2 @+ l1 o& y
LDA #$03
: j1 J$ x! h3 ]' F S: k6 p STA $8000
' h2 w0 |! y/ N; h0 r PLA7 K" P! G- B% o$ t
STA $8001' M# V& q/ a3 a; }
ADC #$01' y( P/ o( V; U+ }) G) Y+ P: `
PHA$ O0 g& [5 J; s6 O' D9 q
LDA #$04
Z" [- T9 I" T7 a STA $8000
4 ~) A2 _, M j* n4 x1 w PLA
- Z2 h: x7 |! }# G. w+ @( B% ^ STA $80019 c4 k, ?9 n8 s, H+ y% K; S" {: n3 h0 E
ADC #$01! H- x# P0 Y9 U; N% J) z
PHA. s( A* G( ]6 G# i7 W
LDA #$05" r# H) z+ o M! o; Q3 f
STA $8000
" g9 Q- d) U% {5 M9 Q PLA8 Y9 w2 T1 n2 o3 E
STA $8001
# p# _5 m7 I: \ PLA
- q' F6 N. w: _4 Q( Q5 Z RTS- b, j, Y. }- t
) ^" h0 T8 f. ]7 e _ |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|