|
|
;[FC][最终任务mapper1切页程序]- i; e( }( {. g+ T+ X& l
.ORG $CD9B
: M2 ^- X' V6 D( h2 x% WBANK_START:
" u* j& @$ V: |3 I. A STA $705 R2 t u, J+ P0 C+ f/ u& P" X& H
TXA( { y7 c- G5 O2 g- y- w1 d
ASL
, h( W8 r9 @! W6 ^ TAX1 K& R' x/ Q, q# ]9 J
PORT_SET:6 K* k/ b6 w$ K
LDA BANK_DATA,X8 C( ]5 x- `5 ^" I
STA $6E& w7 y5 _0 U0 m }- h- x
LDA $CDB8,X8 a5 d- G7 `" u3 Y C
STA $6F
8 p6 n# L( v* h1 n" g: d& E/ U! ^2 \ LDY #$00
1 d5 Y: N/ q, f5 w5 w LDX #$052 f9 {6 p: e6 s
LDA $70
1 ?8 H [! v0 y+ \: k: c. z2 j7 kPORT_WRITE: I7 X, f, K3 ^ A% q2 k
STA ($6E),Y7 g. T+ Q* R/ _; a h
LSR
; I. q, J4 K" N0 V5 I DEX: r! C7 H z: `& W
BNE PORT_WRITE# ]+ X3 ?6 v5 _
RTS
0 C1 S0 R" O& u \2 B" | 0 P# Q1 b5 b+ B" q1 t2 f ]
& \! k6 Z+ l* L. {& UBANK_DATA:' s( ^; }' j* @7 y) t4 F
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
) U" i$ w9 |: u( N2 s) K( a/ b" _ # @" m3 I( z$ n& y6 f
) U {3 c, }% C;[FC][最终任务mapper1转mapper4切页程序]! \) K6 G0 }3 u
.ORG $BFD2 ;初始化跳转. e5 E# ]+ u0 b* K+ d
JSR $FFC0
0 e4 S# m; {+ o% B- R4 M6 S8 H6 W6 P7 c* d2 p% l
5 `4 T9 P9 U) G9 i .ORG $FFC0 ;切页
4 D; W$ C. x4 R+ q+ J4 d0 h, w+ G LDA #$06: c8 G5 ^+ J7 I$ j
STA $8000/ s& K4 X2 X- }4 M- F9 g" A
LDA #$0E: o' w& J; F8 L6 B4 n: z. N
STA $80016 `! G* E# m6 u6 y- Z ?' }
JSR $8000! g! F- m3 m0 M1 X4 a! n$ B' W, ?
RTS
: o! C3 X0 d3 A# Q/ n" U$ p ( x. X8 T+ Q9 j& ^+ T
.ORG $8000 ;数据复制
3 @! e4 S1 i$ k# c5 g7 ]+ g. |4 S LDA #$80
4 Z3 O& `" P6 m, K STA $A001 ;启用SRAM
o+ t Y- H& {; \: h PHA- ^1 q8 }/ v0 g# ]8 E& _1 `. Q: a
TXA
" \% ]" z/ y- N \, s2 P" i l7 M PHA D5 v' y# W$ j/ a: U( W1 [- a
LDX #$00( X K$ X' c2 q$ @% E
DATACOPY: ;数据复制: ? E9 X2 l8 _+ W
LDA $8100,X% Q; w# p: Z* p0 G
STA $7200,X! L+ t/ j* C1 u5 m' g5 d1 v; s
INX
, D$ }- D. x" v0 t CPX #$00) u0 S; d- i! q
BNE DATACOPY
; N/ h# R% t- d7 z2 [; C PLA4 M0 e- s2 K7 [2 `/ C! O2 t0 n" u
TAX* ?/ Y. Z3 w- O
PLA7 v& E* ]; f* q2 N) t
RTS: b C% a: x) o6 s1 k* i; M5 z. t7 l
+ g( y$ T: y2 I. Q .ORG $CD9B ;跳转到转换的切页程序( O) H6 p$ W' W6 N
STA $70& Q& S, y; F, H6 k; t7 p
JSR $72000 B+ u/ x6 R/ P. V5 F
RTS( t2 x% Y0 s; b' a( X% K
" n. b/ F$ V7 ?1 f- K
.ORG $7300# X" S8 E$ T5 M6 j$ f+ o
M1_TO_M4: ;切页程序+ ~& D- ^* h! w3 E+ l% f: u9 W
CPX #$007 S3 ~8 c3 s" V* |" Z+ s7 c7 a
BEQ REG_SET
4 F* N3 ]$ y( e" ~; W9 ^! u1 n CPX #$01+ q/ W0 {0 Z, ?* q
BEQ PPU_BANK_0000, r5 w+ R7 F4 g V; k o. ^( Z
CPX #$02) \/ T1 Y! H# M+ P) N
BEQ PPU_BANK_1000
2 v8 M2 [/ t7 L6 J CPX #$03$ a/ r3 g/ k6 m1 \7 s
BEQ PRG_BANK4 I- U4 L6 e( i. B1 J6 m8 S0 q; ?! Y
REG_SET:
% }. w1 E o- ]; n% n5 s STA $A000
9 @' R+ W+ i; j& h' n4 c RTS
8 X# ]9 L: J. O- M K: c0 I8 x .ORG $7320
9 Q. T; P0 Z% H+ YPRG_BANK: ;PRG切页. `# Q5 p# S9 K$ {
PHA
2 }5 ^4 v( @6 j# X LDA #$06
5 O6 n7 j f& a3 t& A% B STA $8000
- l3 d @: S+ O3 ]' g9 i PLA
' }/ q/ H. W& l/ I: \# L2 z! ` ASL* U1 o% _6 }2 V1 y
STA $8001( \+ B% R- ` `* @2 t& {, R
ORA #$01
5 u- I9 w; n: U5 F; |8 v7 o, } PHA- r1 G" l% c0 W! O% s$ ^8 ]% \
LDA #$07
1 o' ]5 [6 [7 C7 v4 @$ S STA $80001 i1 o; Y+ M% l" }" J
PLA7 Y w' w" n1 u' [8 K6 j
STA $8001
; k( R# [; S# D" r+ D7 @$ f5 p RTS
: }+ w* y% D9 Y, [" ` .ORG $73408 C) H; @, ^0 E2 r1 c m. t
PPU_BANK_0000: ;精灵切页. D" `1 K e1 f/ N
PHA
6 ~3 [3 m. S; Z' a8 t ASL
" R! _4 K0 C: g1 G7 K9 i ASL o& r! R/ c' p4 E7 Y$ a; `6 `
PHA: {' V( z: V5 Y# G w3 G
LDA #$00' {$ M8 W5 k! f) Y6 C2 C) Q; _3 K
STA $8000& f3 t( Z g, D; d2 T' E( O" Q
PLA
: M, D- Q9 c( q$ Z! h' }8 V/ ? STA $8001* L: u/ {2 E" y9 ?# w+ m9 C4 E6 H" f
ADC #$02
/ H* I; j' d7 R$ [ PHA
6 j+ T3 L' G5 M7 Z8 b% b6 H' |- H- w LDA #$01! E& o/ r c/ D; S& |
STA $8000
$ y+ F3 [1 [ B I# k PLA; e. U" w1 k4 J
STA $80018 ~. l! Q5 W' I9 @
PLA2 p: c3 [5 M& z; |% k
RTS
% n& G+ j+ _, x1 `4 [* {$ l B4 R9 B( n: B3 @
.ORG $7360- U; v. g/ R! u
PPU_BANK_1000: ;背景切页8 x. f( s+ Y5 _( c
PHA
5 k9 h! k8 [: P, |! R9 V3 q( D ASL/ E f" y7 F" \2 z1 b
ASL% w5 @3 g- q& f; \( h# Y
PHA
) Q- [; o' J Y% t. j1 a. t4 z LDA #$02, l k7 z" K6 n8 z6 V, P
STA $8000) g& J! u# P/ @! |, S* Q8 M4 o9 n* U/ q
PLA- _$ r! w% u: @; m/ V y Y
STA $80011 \6 d! T5 b9 `+ C- x+ F
ADC #$01
6 X% d9 T5 W f* f9 | PHA
5 ?' f- q1 z" _( @ LDA #$03! o+ l' A: g9 ^! Y$ v* {. N1 |
STA $8000
) E5 \* v3 L8 q8 B PLA
3 t3 Z# q) [- ^5 ~ STA $80014 t; m) W- `; q- n6 b
ADC #$01
) n7 k2 Y) D& N6 R( M. T% h PHA
f9 c4 j, [8 | LDA #$04/ m* j. c6 o& q: P# g, f. m5 I/ P
STA $8000" V! y! p! O3 \ j( Q
PLA, [) F: g5 u3 x* N
STA $8001$ D2 c% e: | M
ADC #$01! ^% m' u4 I) ~+ h3 L5 R, ~+ o
PHA
3 K) L# q3 w1 [) T) P) o, y LDA #$05' w) m7 P) i/ J: i& o
STA $8000
) j1 q P3 M" L5 l/ G3 ^% J9 i PLA1 c9 i: d8 Z5 `( f' q
STA $80016 p( I# ^3 b, @
PLA" Z8 v$ I! X+ M: W9 P* j3 h$ d& m
RTS3 q }: q& i; ^
& ?( \) x7 U' f1 x/ H |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|