|
|
;[FC][最终任务mapper1切页程序]/ ~) W) k: E9 j8 N% u
.ORG $CD9B
! r$ y& L7 a( w! E1 `7 y# k4 HBANK_START:! o! n( p5 O) W( g5 }) N1 v! r
STA $70* j! e% a- U9 H2 a, I8 N$ }. f s! c
TXA
- z3 `4 l/ F% l2 x1 Y h+ ^; [+ K' F ASL6 \# K4 w- i% f! t' v7 {
TAX; |; |0 }9 _; p, L* v# ?
PORT_SET:& b N% y1 ^9 u- H6 i- S; Q
LDA BANK_DATA,X
' o: c/ _, z) F K* \9 J9 h. E0 O STA $6E' V/ }9 ~/ b# u: g! Z' l0 R) s# u
LDA $CDB8,X
. l) t0 ?% v5 {# [) S1 \ STA $6F% Z( b" P" G- b9 M8 m `
LDY #$006 L# R) f1 v) B
LDX #$058 L6 h) W6 o7 ?4 @; z
LDA $70
3 U- S/ w& z9 {9 W9 ]* o8 A6 jPORT_WRITE:
! U2 ]8 I$ S+ S) B' V: L STA ($6E),Y. E, ~- |* H* r. F9 b/ O& o. h
LSR v1 {/ p: F( z
DEX' P# R+ v2 C2 E* P; f
BNE PORT_WRITE7 n! A" i" d( w
RTS9 K1 S. R9 R' }7 e
) T6 B- m, g* A6 Q! \
% s: k9 ^8 V4 y7 x& h: v/ {8 d A9 mBANK_DATA: z2 J8 x9 R/ m' A- \
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
: u3 f2 G5 A H6 |9 t , ]& b+ y5 s! \/ n+ t
! D* ^: t h: a7 e- o) X. _7 O5 @;[FC][最终任务mapper1转mapper4切页程序]+ _! T" S: S3 E q' y- R3 M
.ORG $BFD2 ;初始化跳转
3 p8 ~. [0 ^1 `7 \/ c4 h JSR $FFC04 p8 p" q; F$ k
8 e7 |, ~# a" c# s. z3 M# e
' n( O3 }& B" {" F' g .ORG $FFC0 ;切页$ m& K8 K; N: F" |( C! ~5 ~
LDA #$06" J0 \. C7 J8 Q8 c
STA $8000
" R+ d$ j$ m: C7 j- ~* } LDA #$0E+ N! j R9 R5 l! ]
STA $8001
, F7 R. v4 {8 i8 V# C! n! H: B JSR $8000
) y/ {: S7 t+ n' `: v, X4 X& X* ` RTS 6 I6 G6 r6 S6 C% ?" H. y+ I
! B8 ^$ ~" O: a2 O- H+ L& n' B .ORG $8000 ;数据复制1 B% k+ e+ I% Z1 A6 H. ~5 K" J- J
LDA #$80& O+ t8 w5 s% q6 h2 m9 M4 b
STA $A001 ;启用SRAM! u. Z* R2 _ G. K
PHA, O1 T& F; p n3 J8 h! h) M
TXA
& p) r0 y$ F& R( U/ w1 \ PHA7 x% I! `8 p: _( S; D0 K" H& z0 @' @" p
LDX #$007 ]3 }$ N, t( Q8 A, J4 G
DATACOPY: ;数据复制/ \5 R7 D6 I+ S% i" n. o
LDA $8100,X
9 K* @6 y7 O! o" D2 ]# q STA $7200,X0 d! F9 b3 _4 b8 W# K
INX; c. W' C3 K3 A; E+ E8 l d: Q9 ?
CPX #$00
9 A8 h" w. q6 e, _. L5 i BNE DATACOPY
# U5 Z2 X+ A0 [% g PLA9 Y3 L, Z" I! s/ U9 `; |5 B
TAX& y4 T) k% D/ i' O* b$ |
PLA
: e: D0 m% ]7 i- \* I( B, F RTS( Q0 D! O6 `2 I6 I% Y2 E
0 @: a7 G# N5 E8 z* f! _ .ORG $CD9B ;跳转到转换的切页程序0 D: w& x( [( g& \
STA $70
1 M p! [/ @, s( b JSR $7200% t' u6 a4 e. R1 w
RTS
% i/ e; w' W g4 S+ ]. h1 q9 v
, R7 J' {: i/ p% h1 ] .ORG $73003 K5 F( ^+ g! C% a4 z/ E; N
M1_TO_M4: ;切页程序3 K4 ?2 W7 e8 i* B' R
CPX #$00
" Z. U( _3 b* r2 C2 _* U, k2 u+ S BEQ REG_SET
) d: e) O8 k G- l CPX #$01" {% V- ^+ p; N$ ^
BEQ PPU_BANK_0000: z H+ o" f F* _! V
CPX #$02
& v) L' K( |( \, I' \ BEQ PPU_BANK_10009 t3 W( v! \$ g
CPX #$03: ]- ?& x: `" ~% f% r0 E. S
BEQ PRG_BANK
, {$ X9 g7 G3 G& F: jREG_SET:
" ^8 C% _$ ]% a& l" m3 {$ Z STA $A000
% e- \' t- e' ~% K8 r' N RTS
' }$ b; W" }1 }: a; h$ t .ORG $7320
0 S, B: v$ |6 X( QPRG_BANK: ;PRG切页% t# g9 j3 X. |' E
PHA
; z6 T' W& @# w4 ]# Y LDA #$06
9 H& M; \$ e9 _. {/ q STA $8000
- y1 N) \' B, x" U PLA
) B6 u* _8 U, B" n+ B ASL
4 n* q: t4 E" h5 O" F STA $8001% Y5 H, Z7 L i: D1 q& x
ORA #$01& V6 M+ `7 a0 n# e! R! v
PHA& A5 X# ^1 C! u# m
LDA #$079 ^5 K. n f: Z# z- O4 d9 b# A
STA $8000
8 h- y* n; e3 A! I- i PLA
" _6 U* H& ^ `: @* s# q STA $8001
1 J) B9 l. X: Q8 y: C$ o RTS) F4 J3 k$ E; l; ?. ^ Y
.ORG $7340; _( E ^/ i/ k
PPU_BANK_0000: ;精灵切页
, C/ H! X, r3 a$ B3 B PHA
$ j* g. u4 \, m' ?- {/ @- s6 l ASL O3 q2 ]( n% m
ASL
3 P0 D) Q0 t, q3 ^, S4 ^9 L PHA
/ s4 _8 K7 S/ A* h0 A LDA #$002 [1 w* D. f8 i
STA $8000
" j$ ?( X2 C* c; j6 Q5 q PLA( a* k7 x( h# U4 v# y
STA $8001
! x( K r6 ]. x. B% y+ X ADC #$027 S8 `) ~# O8 [! f6 s9 b: o
PHA
* F+ g# h3 m4 U( r LDA #$01
) ?/ @$ i: I& z STA $80001 N3 H! J. O0 } O7 l# S3 ^
PLA7 H; s/ i y8 p5 A9 j9 W& p
STA $8001
0 z7 M4 ?% n6 m1 w, g4 a; W! b PLA6 w/ M; D% z1 _! q' ]; g
RTS
% G f5 {) V2 G% ^ O
3 B9 W( W# |/ y8 X2 Q4 q' S8 o R .ORG $7360$ G Z9 M1 w0 u4 u
PPU_BANK_1000: ;背景切页
* K( t" i6 m. k6 e, _( l6 v; [" |% k2 x PHA3 n# Q z! l- U. r3 a. T
ASL2 Q6 j# ]: y' s. b& o4 z! w
ASL
" F+ q9 s8 y" ~- K* `( D$ t; e1 { PHA6 P7 W: A/ G) H, z
LDA #$02
' I H+ R1 z7 s" s STA $80005 Q6 y" P9 b7 Y8 |
PLA" m5 \! @" M) b1 D& L
STA $8001
1 r' L1 m2 N& `3 i6 [& u ADC #$012 M& p$ y9 h) C5 d
PHA, P0 y- K1 I. E/ y; {- G) Z
LDA #$03
7 s. h# l- l4 o3 O9 l STA $8000
, p7 q9 ~3 @) ~: g PLA! s1 ~' p* A" S
STA $8001
8 z K+ w( n+ R) H- g ADC #$01( c. q6 a) p$ b i
PHA
8 c: J' K6 q' y3 z6 ?6 x5 c LDA #$04
5 O2 x0 f/ R& w0 Z9 c/ p5 _ STA $8000! a/ c( n4 @+ o9 r
PLA2 N& I# T* V% M, m7 J
STA $8001
* [. m0 b- K. o" u ADC #$01
# ~. e$ [8 f9 u8 J4 d PHA
( l- z! E) @8 x$ L3 O7 ^: [( M LDA #$05
% }$ m z7 i5 U$ j. {8 ~% | STA $8000
3 ]9 @ s1 k+ @4 D$ t1 s5 d7 ~/ O, l PLA
, Y, Y/ c& `! F n STA $8001& f" X4 {# ?, N% ~+ O
PLA% [5 Q/ i( B/ b0 f# r0 v3 w# z
RTS6 i5 H! d2 C! \
0 Z+ Q9 k. i5 V( x
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|