|
|
;[FC][最终任务mapper1切页程序]
" {- V- k ?1 S+ x1 ` .ORG $CD9B
' i5 Q7 K. e" m! H6 x0 D2 o$ UBANK_START:
0 o% o* ]# U) C# v STA $70* D: [: n( g4 P8 }$ ]& o( ?
TXA( n$ O; j2 V Y5 |5 |2 P
ASL# Z4 n2 M9 T8 n
TAX ]: O q) [2 w- J, l& z w/ t" T y
PORT_SET:+ h- U" ?- K& M! e, C% _
LDA BANK_DATA,X/ A$ w( {0 U: ]3 |5 [. R
STA $6E
0 a1 o8 z4 H. _ LDA $CDB8,X
& z; j4 }! u0 R2 C STA $6F
/ Q* m2 _5 p8 t! o g: ~ LDY #$001 B- L) s) C4 {$ z8 i' F+ X
LDX #$05
/ F2 c+ ]% i% n, k" x8 U: e LDA $70( j% d# X1 Y; n" e& ]
PORT_WRITE:
1 _9 r1 s0 W6 h0 d STA ($6E),Y* F& [, q! X2 ~/ D8 l, ~! a
LSR
- X+ N: F- @6 o( ~! b, a4 O+ K3 o# k DEX5 o/ F \( \7 _7 `" F
BNE PORT_WRITE" z" }+ E5 r+ n
RTS. m1 H* I" Z6 @9 r
- Z- A4 Y# h$ I
/ _& V5 a0 `$ H4 I9 L. n
BANK_DATA:9 W6 C9 E$ l2 ~. Y
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF7 J! d4 X) K4 t9 W6 D R# k
9 H: J4 `1 y1 N9 g
6 b0 v" W; s8 C
;[FC][最终任务mapper1转mapper4切页程序]! I9 w- V% \: U+ d
.ORG $BFD2 ;初始化跳转7 t# B4 S& t+ ?
JSR $FFC0
8 D1 Y5 n0 @' h. h( [+ O0 U; U5 U; z; D7 j9 u/ ~- C( ~+ k8 M
2 p/ N# b$ b y B6 ~ .ORG $FFC0 ;切页
9 S4 y6 v' A K, {( F. |/ r" H LDA #$06
q1 z i' y) a( ^ STA $80007 P, P3 U+ d# p2 m2 r/ F
LDA #$0E/ W$ k0 u/ Z0 i, k0 N$ O' r
STA $8001$ K4 `! C5 `5 A8 H! t4 n' ?$ \+ j r: f
JSR $80008 o1 x. P: M% M) e( b% T3 x( s4 i
RTS
* c' ?3 [ g, K) G8 L 7 u* s Q7 c4 O5 j( R* {! ^
.ORG $8000 ;数据复制 p f8 V* f- ? R
LDA #$800 ]) Q3 |+ R* r M/ _ j
STA $A001 ;启用SRAM
" p' V5 O& k, G k9 _5 B/ h7 D PHA
% Z) c/ h$ Q4 _ TXA
# I5 m$ d& Z- @$ O PHA
1 m a5 Z7 n" Y LDX #$00
& z# ?7 d) v$ P/ d. w `DATACOPY: ;数据复制6 x8 q8 u8 Q; V2 E& v2 F
LDA $8100,X+ g5 T" _; n. ?) y6 w2 D& S
STA $7200,X
* |# n) s' ^" t INX4 |2 j6 U8 D! v4 z
CPX #$00
( V% ]3 e+ H7 j% t0 T% ~( d BNE DATACOPY: I' V) B' C- i1 f8 I) T2 |
PLA* }9 h# A1 \9 T2 t: i! M3 |, y4 T
TAX
O# c" ~. g1 C8 C- L# a PLA: m% Q+ O: K& Q2 T
RTS
5 I2 s g0 v0 ~9 N( [9 I% m; F, b , d5 s$ B2 I" U v
.ORG $CD9B ;跳转到转换的切页程序
7 _ T z7 {$ P( F0 n STA $70
7 ~( s5 Y# \6 l3 z; _ JSR $7200
u* X: f8 Q7 D# z RTS u- {$ Z- _1 E- c; I. P, F
1 ^! m+ a& E0 g
.ORG $73001 L( Q: w; G' W3 i, O% p {0 k) P8 u- }
M1_TO_M4: ;切页程序6 X9 P% m) H; N5 R# {) O
CPX #$00" F8 Y; Q" ]% _1 A- C- G
BEQ REG_SET
' z }6 y0 k7 W9 ] CPX #$01
3 m7 d- e* B& L. s4 r BEQ PPU_BANK_0000' n0 E' u' i; i+ Q+ {
CPX #$02; B0 M# K$ w, m) x2 l v2 O% B
BEQ PPU_BANK_1000
2 ~& S- P0 ]: M/ P! J CPX #$03
# b: s& m$ U8 M0 n9 ]6 |& N BEQ PRG_BANK
- D' o' z, G# @' b1 yREG_SET:
" T6 W8 o- o* s STA $A000
) b9 w+ b6 q6 c+ Y RTS& e* m4 h* a, v
.ORG $7320
6 D7 J2 i8 u& c6 H$ w8 w" f3 GPRG_BANK: ;PRG切页3 c$ s: m' B! o$ |
PHA
# q8 P. _" t0 ~ LDA #$06, w5 R9 d1 s* p. Y0 b
STA $8000
. Z2 j9 ~- [5 L0 o' B3 ? PLA0 t+ F/ e! q* ^9 e8 M7 L
ASL6 Q4 g0 P2 N- `; l# A9 y$ G/ s
STA $8001
8 S, ]% @( ]1 M$ o3 B( y ORA #$01" f; ^: W8 I' y& V- T% t
PHA
6 M! n& Z1 l$ T+ _1 z8 o LDA #$07
% E! |: V. M* u0 ^. ?" W- u STA $8000- v" T$ g; W' P( _5 l: {* O: G
PLA
5 H& ~1 ]1 r+ p# `* i( c STA $80016 |8 v! r% E: Z
RTS8 G* C$ C& D+ e) r' {6 \7 a
.ORG $7340
! _& B( @, L# B( F' M9 ]8 U5 `; E kPPU_BANK_0000: ;精灵切页" @$ A2 i$ |6 W# x' a. S+ e: V: a- L
PHA
4 x* Z4 S* A8 k& y ASL, s) V. i: M' P
ASL# G" Z8 K. ]. ]* `
PHA# q9 `% g# Q. _$ ?" f) |7 B, v
LDA #$004 s% x. t, ]) `& C" e
STA $80008 P/ z! P: m. A
PLA1 m% W* D/ o0 h( g: d6 m
STA $8001; n! |! ]% z9 ^3 {0 q4 o# B" O1 w- F6 H
ADC #$02/ F/ f+ K5 J; W4 d
PHA
6 _7 `" U5 k8 v9 q; J LDA #$01
6 x: B5 ^" j6 F+ g) X' k' B ^ STA $8000. b7 r0 v7 {5 J4 L0 U0 C* d
PLA
9 `! s% U/ m5 |: e! K5 O5 o9 z0 X STA $8001
# ^ W3 P5 y/ p% ^5 P4 |$ R PLA( ~% L; W9 c" J; n# y: a6 I
RTS
) _5 T& t$ e2 W, o. R# ~+ w B( q5 L, `0 M+ x$ P* b
.ORG $7360, [6 h, _0 G! K I
PPU_BANK_1000: ;背景切页
; y7 q$ H/ p, }! N) l/ h PHA
, A* v5 O, v* P" s O( l3 q# y% ^- ] ASL h; p5 o' r3 S6 X: Y8 t" O
ASL
- K+ N6 k8 t4 D ]( |* ^! m PHA7 `% E: }) _# a
LDA #$026 m9 f7 Y+ @( g( t! K8 f# W
STA $8000
# V; d. ~ C5 R; I* M) Q PLA
8 Y1 a, ?: [( \ STA $8001
- Z2 C# h0 ^2 F+ H' q& u ADC #$019 T, H! k* \8 v4 ], x9 `
PHA
T+ S# R- `; p. G$ c- h& C; J) _ LDA #$03# W2 `1 p0 a& _2 u
STA $8000
0 X! I0 \1 k: Y4 Q PLA
3 ]' i0 @' p5 _5 p3 q STA $8001( O% p, @* a* ^6 {
ADC #$019 \3 W; [0 H' P: J0 t7 m1 y
PHA
' [. z4 L. |2 b: C: U LDA #$042 P0 E- W9 g* B+ ~+ j6 \( u
STA $8000
: e8 a! k* _: c$ ], x PLA
+ ~" U, V' {# F# U1 V2 i% o4 P5 U STA $8001
( K7 q5 b3 _0 B ADC #$01
" a8 t) z: s0 h4 y PHA& D9 x" A/ M' U
LDA #$05
9 K: _( _+ ^. u9 |1 G/ P8 ` STA $8000: h9 z8 _/ w' G: h; q
PLA
: E* f# ~% B9 F' R( v9 D STA $80018 z- P$ m( D+ \& C: r5 b& z
PLA
8 w. S5 i' \8 [* N4 j RTS
) Y v. W; ]& `- L5 b2 @$ V) l* n& `$ w& c. c5 T
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|