|
|
;[FC][最终任务mapper1切页程序]
, Q' f- Q2 g- M, M .ORG $CD9B: E8 r/ e! u& H# Y- k7 Z4 K, ~5 V
BANK_START:
% \3 n& ^ ]2 H4 u7 L STA $70- r9 g4 l5 [- s [6 s8 [
TXA8 M! Y9 {8 f5 w& T6 s4 o8 k f
ASL
6 J; d; |. j+ y" x TAX$ B$ W: s+ Z# d
PORT_SET:1 M1 F! z7 d% k* T0 h$ Z @
LDA BANK_DATA,X+ A# c$ q8 Y+ }$ ]- u9 k9 n: z! H
STA $6E
9 `8 t& \4 F6 T2 _+ t: W: r+ v LDA $CDB8,X
1 X3 z/ Y5 U; N! X STA $6F/ G; p0 r( ~, Z1 t8 Z. Z( j- S- R( k
LDY #$009 H& ]. A3 H" ^$ b3 |$ D6 u
LDX #$05
8 A7 K( e2 q/ h LDA $700 J/ O9 N }4 D. G' b8 ?, q, w& ^5 q/ L
PORT_WRITE:1 Q9 F T* ]" [7 _3 [5 H+ u, j
STA ($6E),Y+ |/ t- s1 a$ s3 |2 x, o0 E
LSR
( c# Q$ U- F" m, e" v DEX5 x9 V# ?# N1 B/ {6 S/ h( f# v
BNE PORT_WRITE8 B, w" Z" A7 t& s( n) s- K
RTS
5 {" o d$ o3 a h1 \4 G+ L. [
. H. l3 a' @! U& P( }& |' p
+ b' V. H/ r" d% eBANK_DATA:
9 q- i: o& r) U! ]% d) ]( j2 d$ d .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
- B( } D. w( K% X& J: B
. K* b# ]% U! y) t
7 t4 O) t# q! Y- h;[FC][最终任务mapper1转mapper4切页程序]
' N* ]* k8 r/ C8 o* a .ORG $BFD2 ;初始化跳转
6 J9 R8 v0 O& b7 l3 c5 | JSR $FFC0
+ @& a7 f2 b5 w. S: Z- f0 D7 T. ~3 B1 d$ @4 A$ H3 N
; e& w s9 n- d/ w- _4 E G, A
.ORG $FFC0 ;切页" h( j2 V" u$ U% k
LDA #$06
; W$ C3 `& H9 m* L STA $8000
6 v p& k6 P" e) j1 l, ? LDA #$0E$ y% z# @4 r7 x
STA $8001' ]9 s7 H' {$ q* r& K
JSR $8000, h8 f5 Y' }2 H3 `: }
RTS
6 {5 y# V0 o7 \5 N+ O0 I* M
# n- Y% H( `" O5 q; `( T) ?. i .ORG $8000 ;数据复制
' j* U: x6 P S9 v4 W* l LDA #$80; g N4 Q* m z
STA $A001 ;启用SRAM( C9 U" f' Z$ | @8 e( `6 Y2 r
PHA8 r! p; @; N1 [# C+ V
TXA
8 c& Y. k- `3 @0 n9 b# ~( a1 D3 I PHA
. c* H. Y: @) Y/ I: K LDX #$00
7 w A. s8 ^& Y1 M- H+ D! ]( yDATACOPY: ;数据复制
# l, K& p* O' ?2 T& p/ D( j1 }* j LDA $8100,X
; ?5 R s8 J) O5 b- Q0 O STA $7200,X
1 n6 e# g' U: A) K' w! h INX5 w* w- S9 R# `$ k" e, {8 A
CPX #$00
k7 M& @" }% X$ u BNE DATACOPY3 a1 s v2 w% c7 ~; ?( S8 y
PLA
/ r0 K- k+ B* J2 D6 ` TAX
% \+ N. T5 d$ ] u PLA
5 a/ `% e% B/ O ]$ g, X RTS
/ M( o+ o# L8 w x; ^
- ? G& D/ {* I1 a/ Y .ORG $CD9B ;跳转到转换的切页程序
# `: z3 I1 h4 s- a3 h% ? STA $704 }2 P# h, s! q' y8 k! U
JSR $7200! ?/ ^% h! K: w: v F0 j& n
RTS0 D( K3 G- p! J3 p6 @
}+ g$ }5 R& [( U; ]
.ORG $73005 J% R5 p" k( u
M1_TO_M4: ;切页程序5 _% x7 [$ |9 A5 `. c5 Z& \2 l
CPX #$00- ~5 O/ U5 @- N1 l6 e J
BEQ REG_SET
: L! B2 u# E% E" a CPX #$01
$ n) K. a; A& D8 s7 u8 _ BEQ PPU_BANK_0000. y p5 x/ i( o3 J) G$ K
CPX #$02
% K. A6 m1 S- K z8 Z BEQ PPU_BANK_1000+ u9 m' o" \ D) t* F T: P# V! R
CPX #$03. M! A* {0 u0 n$ o3 i- D
BEQ PRG_BANK
5 g l" a" a T: E7 H' L+ J& T% mREG_SET:& g( q C: Q$ n- ]9 s0 T$ V" u+ W
STA $A000; b9 E# g% q- Z
RTS) A0 @) F* s b& F
.ORG $7320# F" H- x# F1 \' t2 J- G0 q
PRG_BANK: ;PRG切页8 n$ o! Z% f4 F% ^' y$ G
PHA
: v+ E) u2 i8 p- V7 W LDA #$06; O5 F( f1 H2 n5 _) r
STA $80007 w( C6 x, Z& ?$ b
PLA# N2 n) g/ U+ I! v- g: y" D
ASL
* m1 Y r) k. [6 q; p" k( s9 D STA $8001
7 `3 x% }1 p' d: n- V ORA #$013 t. s" F; ^) O* e
PHA
h8 y: l! r* M% i, z5 ]) g. V LDA #$07! p" O9 V* Y) A3 W) T n
STA $8000: [4 u! I A: P% A
PLA3 t% I6 z5 F* N
STA $8001
* E1 i6 U7 a2 Y8 R) N5 x6 N RTS
' r1 c0 F+ J+ ` .ORG $7340* E, O5 s ]( h" Y( i% d# w, |
PPU_BANK_0000: ;精灵切页
$ ?! ]. P1 H" i! p PHA
9 K8 m/ i3 p) e- g* | ASL4 i- K1 U4 v( w4 P ]6 D" b( ]4 R
ASL
* i2 b; x3 s3 v3 |) _ PHA+ d# \3 m( P0 j0 O* w* {( l. S( b
LDA #$00. M& R: J. Z7 F% N9 B1 q; k& M+ m$ o+ s
STA $8000
1 F# Q. |& q3 m+ W PLA
, P2 j1 f! Q/ J) L STA $8001
4 \- t7 q7 |; Q! C8 b { ADC #$027 ]8 ?4 K7 G! b9 j9 Y8 i+ }
PHA
# ~ V7 G% h \* F% D& X! w LDA #$01) s7 t( ^0 E* Y' S
STA $8000
+ D3 U! I+ a4 {; S PLA
6 f) x6 k/ J _( ]& J STA $8001
+ Z9 w2 E; o0 ^& B PLA# l6 L+ q* T% x/ D9 ^
RTS
) I* `/ v+ q2 K
& a, N- D" z/ |* ~+ o4 V .ORG $73601 J% V! Q& R3 P) v$ ?
PPU_BANK_1000: ;背景切页
7 k) g+ L; a+ w( ], J PHA- T9 l# A. G6 w! z7 R8 p4 g
ASL* }7 o6 ^% f. n5 l/ t
ASL6 L/ r* g. A2 L1 [' ?# g
PHA
( Y: s' f$ N+ L3 T& A LDA #$02
) O! U7 n) H; w4 e h STA $80007 b! M! x- T4 @) k0 p
PLA
) s2 U" n Y5 X+ v+ n* y6 `2 m+ X% C STA $8001
6 D2 a- @% X5 U" |8 }4 Q- g! m1 \ ADC #$01
, {( c) l4 r( E; H9 j; V- Y PHA
# @/ P( F+ Z2 M# g7 m: Z LDA #$031 F5 q" J2 P T- J3 U; w
STA $8000" s2 L3 q" R, t- k$ \
PLA
; v V% R/ m% U2 k Y2 L, G STA $8001. O+ @2 t# L0 h% V8 t
ADC #$01! M4 @5 M( c6 m' ~" I
PHA p- z; A" `) s, N1 U( ]& ?' t' P
LDA #$04 R. b. k$ }* j F* H/ I/ j
STA $80006 j' {9 d7 Z% V+ H) u3 _
PLA
( X! L* _4 L; z6 S+ o { STA $8001- x. ?/ d0 u6 `" ?, k4 X# C
ADC #$012 \& x/ u2 m* n" T: N
PHA3 k/ }- H' n. e
LDA #$05
3 Z* s; a& R+ r" P+ B8 g6 n3 h9 j STA $8000
* k( p1 O' @5 {, h% Y PLA. D3 j% N7 ^' w0 J0 |
STA $8001; E6 D" a4 @, `" n( f8 ]( {
PLA2 D% I$ U( a' a3 A/ m* B
RTS# r( j- U7 a$ q/ x9 e6 y" t G
2 e. l, L8 i! v |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|