|
|
;[FC][最终任务mapper1切页程序]
6 V/ }# n8 g9 Q3 |( I .ORG $CD9B; @( o5 y1 n e: a2 d/ e* e0 n
BANK_START:
& n7 Q; a5 _5 {3 o( S# a- q STA $70* L( P2 I5 m* H
TXA; f1 D/ ]8 P4 ^- K
ASL8 f) N* ~0 }8 b$ ?2 \
TAX6 S8 [2 @ }- P
PORT_SET:& _5 a1 F1 @( T/ X
LDA BANK_DATA,X; h) Y. h: p4 J8 @, V
STA $6E; m' L3 C) ` A3 f
LDA $CDB8,X% S; T. _) c, n# m5 h% [6 |
STA $6F
2 c- [! M, R4 d6 _/ T8 B LDY #$00
, Q4 {. P* j# P4 D' l- n9 Q LDX #$05
1 o2 m4 L0 ]5 T: n+ b LDA $70
% a, R7 ?1 a* U3 p" ?) {PORT_WRITE:
) u& _6 A& k+ ^7 V; A M STA ($6E),Y( F! I* I$ k9 V: G: T+ E8 i
LSR
* X/ c8 l6 w5 a3 s' e+ e; n DEX ]0 d0 p3 n% f Q7 \
BNE PORT_WRITE
! f: _; h- l. F5 b5 N RTS7 F, H7 u8 h1 c! |, p5 f
$ P8 ?* t6 w8 @+ a1 A3 }: ?: e
, Y0 l k+ O2 r7 c$ | O
BANK_DATA:; ?9 H; _" ]0 d% q
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF" g. |$ A: ^3 ?) n( z& h
: m4 Z/ G5 C, G5 _' M5 F# |
$ F; ~# U3 l0 _, b. E: G;[FC][最终任务mapper1转mapper4切页程序]
0 x# e1 ~9 Z! a8 p; Y6 {$ u .ORG $BFD2 ;初始化跳转
0 y9 l9 |2 ?9 W6 A! U, Z h JSR $FFC0
! a. d' ^* e F3 T% R
) c/ E' h, L. f/ |, ] H o, w* O) [. g
5 W. k M7 I5 U' l5 I7 E0 t3 ] .ORG $FFC0 ;切页
5 h9 q8 K6 d8 ?3 p: {5 K( v LDA #$067 n6 F0 J/ z; E$ A9 o, C- @, ~
STA $8000
7 s. j( y2 f( c LDA #$0E, ?; M, y: L' E, }" ^ B
STA $8001
0 F& U/ M1 e. s! g0 B9 i JSR $8000
2 h8 S4 P( t/ @& @5 i3 @ RTS
. M7 E. K/ n, H4 ^4 l. X
; b4 }( \0 }, I4 r0 C .ORG $8000 ;数据复制1 [6 y' f4 j8 M* G4 b ` q
LDA #$801 N1 `5 D+ m& n+ J* g" H# |4 i, X
STA $A001 ;启用SRAM
4 X9 U+ T3 O/ ] G! {1 b9 J; l PHA
9 h$ T) b; M5 {6 s TXA
6 M" f8 a* ]5 U6 L. L& B* Y PHA
. {) a( W* N) @ LDX #$00" @& K1 f( b) M; {2 F
DATACOPY: ;数据复制
& b! c T% G/ O( Q LDA $8100,X
% k" l8 z, C6 e" [; Z STA $7200,X
5 J' M2 U. @" G; J INX
8 K" n. h! Q/ Y8 I% u, s; b CPX #$00
1 F9 d3 s6 k# u" j8 W BNE DATACOPY
% J1 s# K) ~2 G0 v PLA+ X. f3 A5 u% k
TAX+ S# Z+ M# M( f
PLA
( q1 }+ \9 G' k) v6 [; |3 ~, D RTS+ M. b. R* ]# s- A! ?( K3 g/ H
" Q3 V( y; A2 }. _$ V7 @
.ORG $CD9B ;跳转到转换的切页程序
2 K% S7 z9 o* W5 ^6 m8 b) E STA $70* ? |5 T1 P3 f0 f. D
JSR $7200: F; W+ j7 Q( e3 Q6 ^
RTS& ^5 u1 M3 j8 D" }2 m
" b& f6 {& c D
.ORG $7300
0 p5 w! _+ T5 o2 T+ Y# ZM1_TO_M4: ;切页程序, h* K4 \$ t4 X' l7 G
CPX #$00
5 r! s: i! i$ F5 f; d( { BEQ REG_SET& y9 |/ N6 B+ ^1 s; F. O. S
CPX #$01
0 C( H6 Y0 f% a/ |& i BEQ PPU_BANK_0000
4 j* A, S# _5 M) m$ g9 B0 h5 c CPX #$02
& u' `3 z/ P) c( L" K: i+ C BEQ PPU_BANK_10006 H3 z% v, g5 v7 w0 U$ s
CPX #$03) [' Z+ I- ?0 O" Z
BEQ PRG_BANK
6 c) f" T6 v4 r+ H3 G& f/ s- UREG_SET:4 C4 [/ P$ ?) V# m5 J; G6 {
STA $A0009 W d% l; N7 R/ a
RTS( w+ B0 C( n2 B' O4 B
.ORG $7320) j5 S" @3 M/ m8 `0 `5 j
PRG_BANK: ;PRG切页
- c( K2 E" a# }% C$ u5 X PHA+ Y5 K# S9 f( n2 i5 k
LDA #$06/ E+ G! K a( e/ y! S G
STA $80005 k/ g; n6 p/ ]* |/ z
PLA' R0 k% ^ }3 `! ^. \; O! e
ASL
1 J' i" S9 T L7 V; U: a& m STA $8001$ {8 M5 D) Z2 r5 u1 m9 h+ ]
ORA #$01
" C& h6 w5 U/ F& W PHA
% ?- k$ m8 x% ?9 l: j LDA #$07
1 \. v5 D0 Y2 f8 U4 ~9 y) Q0 I STA $8000
% p2 T1 R r2 `- C+ n PLA
- r, d6 h5 R5 k+ X STA $8001. h& t* w B; N# v
RTS
1 V+ d' z; q9 f5 d) B6 g) ^/ ^ .ORG $7340
8 u8 L M! Q3 q- m/ zPPU_BANK_0000: ;精灵切页
$ ]0 p: f2 f) S* j PHA
@" F! I$ [# N( u9 c' ^ ASL
/ w. |, P7 N/ p! h: Y3 l ASL
2 e) C2 `% ~0 t8 A: { PHA: N* [* P8 @6 Q% |/ F, {
LDA #$00
1 j" B$ `. o B; u STA $80000 _, A6 Q* ~/ v$ \2 i: ]
PLA
! d6 b3 {* ]1 ` STA $8001
4 _ r7 a- c7 X* X/ h; z ADC #$02
6 t( K, P( S+ i& j$ @! ~3 Y PHA
# X X1 ?, b4 [6 ` LDA #$01
5 o# D) P6 ^7 H3 F STA $8000
3 k6 d# \& a6 e: } PLA
8 b9 Z* O" h2 ?& ` STA $8001
! [' O8 X& t# i& G5 T3 } PLA
0 }6 p' Z) k# i1 r' G/ ~. D RTS" i9 m3 N- F. _ Q- x
, `: e) j! C7 j6 q .ORG $7360* P& ]+ g6 A. Z$ K. r
PPU_BANK_1000: ;背景切页
. X) Y4 J, Z2 F( n PHA
4 w9 S5 K- G' l T+ o7 S( r ASL7 x& u3 f8 h2 I/ v
ASL4 z3 m! J. W( u5 `% d
PHA4 J/ C3 u& n# t3 ^, O& d- Y
LDA #$027 h/ _+ @2 A) e/ x6 C/ y# y
STA $8000
% k% p4 \5 x3 N- h6 f PLA
q( s1 O- N2 F7 S$ S* G STA $8001/ w6 Z$ J% O( i0 o
ADC #$01
! M5 g4 g% D% M& g. |% Y- n% U# V5 G PHA! G% p! F; L/ Y3 k% [! o
LDA #$03 \) b( C' m0 {
STA $8000
" {& N. B; [1 F PLA/ x8 f% P! {* z7 E" r) _
STA $8001* i9 l$ M- A9 K9 q$ S' G' M
ADC #$01
& R& q1 W* h3 ]7 g: }! y2 Q PHA
# y, E: p0 D, K. {. \: d. _; [ LDA #$049 ]% m/ p& n! X2 g7 Q( S$ T' }& w9 k
STA $8000
+ D' Y: N6 \; l' K v: W* t& o PLA8 v7 d; q" f+ ^8 l0 S3 z
STA $8001. y1 J" N# ~/ ]& |4 N- r
ADC #$01/ h; M3 _! p6 x3 j* K0 z
PHA+ d5 Q p3 ~0 N
LDA #$05+ P, ^) t7 x3 X2 @" j2 F
STA $80002 c- g7 `+ Z0 {; V
PLA
/ e: U6 U" g; ?' `" t STA $80019 b4 E" P9 k; b) W
PLA
' y" o/ b# ^* E; O* l& k, R3 c RTS
' {0 x* C2 c8 ]/ E6 [6 x
3 u4 |2 M/ T% t |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|