|
|
;[FC][最终任务mapper1切页程序]' D5 ]( [" q" Z: P, Y
.ORG $CD9B
6 X/ Z. S: n; s' ^4 OBANK_START:
) Z" t) _0 F; J! T" s6 ]; n, m9 ] STA $70: c/ O$ a3 Q9 g* l
TXA
5 `# X* S9 D5 B3 @) z ASL0 J* i4 _! f0 s1 N" O5 p0 N& O
TAX
( I1 r: `& v3 ]( k! {! Q/ c4 E9 ?& ?PORT_SET: B T. t7 [6 {9 V
LDA BANK_DATA,X8 Z( F S* j1 q F$ O% B
STA $6E5 A* |9 ^# ]* {4 r. T' m& A
LDA $CDB8,X& b; \" I0 {/ ~2 ^
STA $6F
0 O3 B+ I' G" [3 H7 x5 C& |! a LDY #$008 H6 c) B# _, k
LDX #$05
% F% H9 o9 @, y" P3 t" x y LDA $70
5 @7 T+ y& [7 d0 M& z# SPORT_WRITE:6 g& O! d7 j F
STA ($6E),Y
7 s m3 Y8 J0 _' X9 l LSR
; o( `2 }; `2 `2 q7 ]# C1 K% C DEX& F6 G' p: N. ^. X4 U
BNE PORT_WRITE
: |; i! A. ^' h! ] RTS; j# o+ M' Y0 v8 a- B
2 n: i9 `" ^3 [, t8 t
2 W4 d9 R0 [& L' ~" Z3 w
BANK_DATA:
" z a$ Q6 L6 Z2 O4 Z% e( T .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
. r, I1 `( x* R$ L $ L- M/ ?, C. p8 F, W% K V
0 m& e' |( m, n# Y9 m) O9 I
;[FC][最终任务mapper1转mapper4切页程序]
+ [+ [0 A- ]" [0 v3 X .ORG $BFD2 ;初始化跳转7 G `0 T1 v! o3 e
JSR $FFC05 j2 ?1 u9 ^) F* q) @& x$ Z
6 I2 v! R8 B3 A( }3 t! P; m/ r! c4 Z! |7 X5 I
.ORG $FFC0 ;切页
& w/ h1 @: F2 Q4 e LDA #$067 H5 b9 T0 ^! R
STA $80002 F$ t v* e1 E& \8 l! T! L8 O
LDA #$0E4 I# C- O. m; R. P
STA $8001$ w+ P- T# m1 w9 H9 O4 ?3 Q
JSR $8000
+ m1 r/ V+ g [& ] RTS + c7 V# ?' V* }- N! V, z* W4 j
* B v* w4 _. l* w" P0 | E5 g D
.ORG $8000 ;数据复制
4 v! ] Q: u2 I8 c LDA #$80
& J* O% K1 U! P w0 e: _ STA $A001 ;启用SRAM% ?+ V7 l( M- |! G9 R: W( |
PHA& m3 ~; F6 m z S( `6 R
TXA" T+ K8 a% v" W6 i: h8 m
PHA
\- f: _. @5 n5 e" o LDX #$00
$ P5 h+ s, P! p9 w& v e5 i4 NDATACOPY: ;数据复制
' ?) f( ^, x* X" ]0 ? LDA $8100,X3 U/ X% g1 Q- g# r0 z3 o, L
STA $7200,X
) i" _) c y" \4 x1 _ INX
, p" Q2 ^3 s$ z8 b% ^2 m CPX #$00
5 G! ~2 q" x% `. w9 W BNE DATACOPY) x+ _0 ~; n! [
PLA
/ r; _5 \, B+ o/ } s+ M TAX3 f; r; V; X! u9 i
PLA
- a! T. ?8 {, h9 h( r& K- Q7 Y RTS
. I) I3 m+ |9 j* h# C( w # A/ l) Q* O% o! x' M. e5 l' I& Y. [
.ORG $CD9B ;跳转到转换的切页程序: m) B0 M5 R2 j. ?! W4 m; o
STA $70- S1 Z+ t# ^% f7 i
JSR $72003 R( ^% k: r- G3 ~$ |9 E/ Y
RTS
4 |) r4 g3 A" b" ^$ u) _ & c. s+ J. p! f: {
.ORG $7300" k5 \. n( [$ B9 Q
M1_TO_M4: ;切页程序! l) K( E# v: [ D. c
CPX #$00/ C1 f$ x3 S5 y$ i, M6 }
BEQ REG_SET4 j) A1 z/ Q3 Z3 s
CPX #$01
( m, ]. o: F* n2 | BEQ PPU_BANK_0000
! ]6 B: ~$ b* J! r D. j CPX #$02; N# y6 N6 X4 n! ^/ v+ }) l, d) N) H
BEQ PPU_BANK_1000 `9 S, f5 a2 m0 |% G- e7 H
CPX #$032 H! a! w; B9 D8 C
BEQ PRG_BANK
4 q8 m$ p& y2 O- D6 T: `REG_SET:
; b z4 B6 h4 q' Q. @" V3 d2 Q STA $A000* u+ ^9 A1 w* ] f0 O
RTS
4 w$ J! t7 M' C% U .ORG $7320- u$ l3 [; p' X' K0 r* T
PRG_BANK: ;PRG切页0 I4 e0 L+ G# Q
PHA3 e; L, {: q4 U
LDA #$069 z( x7 E( J! \9 @, Z2 E0 y9 f
STA $8000
& B0 p( ~$ H! |" d! Q PLA
& G9 b1 {/ t$ x$ ]" b ASL R5 S% q( W) {) Z; V
STA $80010 @0 q# j2 \8 i6 f L2 ?
ORA #$018 O/ a2 G% Z$ @* Y9 k: q
PHA
- [% }" d8 \7 b" N. p: h LDA #$078 f- M6 P+ N5 R
STA $8000
' z% V H4 I6 Q( F/ |. X PLA) _' b" t0 l1 `% T% k. @6 Y0 y
STA $8001
( P( z! z' S# j8 p. l/ u0 ] RTS4 B k% b7 J8 E+ i7 ~' i
.ORG $7340; }1 i: s, O+ p
PPU_BANK_0000: ;精灵切页
8 |5 o3 F9 G! w) E/ R; z2 E PHA
/ N3 U# M. m! ^6 _2 k% T ASL" V' {# }6 a+ h. E& u$ V
ASL
' G6 X( M6 C: c; j9 y PHA
2 ~: o. Q5 G$ R LDA #$00# @; Q' ^# r3 \0 _- u6 r1 q8 \
STA $8000
% ?; {1 t3 t+ Y. p PLA
$ j/ `9 Z- I" |& b. ]! Y8 ~ STA $8001. \ {# L# V# N/ M5 d
ADC #$02
( X6 c: ]8 w$ ^: o" v- u. V PHA( {5 \' k: {6 E% s7 {5 ~
LDA #$019 Z5 A% E) M! h2 r: }/ ]) C5 u5 r
STA $8000' @6 d6 F1 F% w/ M" Q0 f+ Q) A# B' z
PLA& i' O I( T- P4 u8 Z9 v$ F
STA $8001* ^$ y2 ]0 K3 T0 |% C5 V4 t
PLA
" q! Y; W6 ~/ [5 ~- b3 ?0 R RTS4 t) @& j8 Z' ^. e! p. f. J
' z3 O4 d5 O8 d9 I$ p- _
.ORG $73602 L( z, T7 s& s$ ^
PPU_BANK_1000: ;背景切页
% z3 Q* J+ o8 a; _$ j PHA( r+ _9 U! I. I
ASL
|- S; T9 ^, h8 C- Z; Z7 ^ ASL+ S; G7 O" f+ m, l2 }4 a2 [
PHA. p- V/ A3 g) }2 d- ?- I: m5 c
LDA #$02
2 M4 }. f) x" |0 N. ^! [5 ` STA $80002 Y7 Z0 q! @0 h0 Q. y5 T, h5 p
PLA# \! X6 s6 a7 f: L$ F* N V$ f2 t* I0 Q
STA $8001
/ ^/ V% U; c" I: S& J6 w ADC #$01
* c$ p" n& J9 r/ i& c PHA
$ g- m, e& l9 P# Z" a' l4 } LDA #$03
$ R6 y6 ?' X1 Z; w9 [ STA $8000/ q, Q4 ^9 F6 k" s1 W. W, R
PLA; e% b2 Y. ]( c z6 Z
STA $8001
+ }5 ]9 l& ^- h0 W/ ?. x ADC #$01
# I7 f3 c0 p4 K& J3 l; L" q PHA
; H1 V/ z# t5 E: d" ]+ r% z* E5 h- | LDA #$04! `$ }) s& h- w$ O
STA $8000; I1 h2 F2 E( x, M( }# W, [
PLA$ P0 v6 g8 z) s7 d% ^9 a9 M
STA $8001
+ o7 \( j2 |0 c5 u9 e- R ADC #$01
e% ?; {3 Y) s; ] PHA9 y" s8 L# T. k& y& |0 d
LDA #$05
! Y4 V1 [, O. @# N STA $8000% |3 ^, Q7 \% U6 t
PLA1 g6 ?, s8 ~: Z/ k! W
STA $8001
8 c: p0 f7 @' P1 c) N/ ] PLA+ t8 n* E- @+ U9 S# p$ Q6 f
RTS
( e& p @" Z7 t( h8 @( L3 A9 h6 ~1 R* p1 }, i( ~
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|