|
;[FC][最终任务mapper1切页程序]
6 A( |8 l/ X! T0 x .ORG $CD9B
/ G" m: o& h6 W5 @3 ZBANK_START:
* c" x3 z0 T& j E# I STA $70# L2 ^/ D) H. H$ h- \$ B
TXA: w+ i, s% \% z
ASL' X' A: y7 [* }, p& x
TAX
' U: j& H) R* n4 L3 z! s3 N( Z2 I$ `PORT_SET:- T6 j4 O5 A9 [, A! j
LDA BANK_DATA,X
. t7 V* [' N2 _0 }; N: D9 _ STA $6E
7 Z# V, `) C4 d9 Q4 \6 `/ [ LDA $CDB8,X; ~' u7 _# ]0 d' E: g
STA $6F
6 a' `( G2 ^- D' Z: E LDY #$00* s1 O3 q, S- s; G# r- v3 P
LDX #$05- n2 [; D0 U/ ^1 T6 R5 H9 r( F7 i
LDA $70
. w1 d1 o6 a$ }/ t) k2 O1 XPORT_WRITE:
6 A3 o- A4 y1 A) ~& I# r3 G STA ($6E),Y1 D+ v: C* K5 m7 ]# F
LSR3 G) G+ Y. v, p( f; S
DEX
8 U* D$ i, m% i) O* B x BNE PORT_WRITE6 `7 [ K8 c* o3 d# W' G
RTS
+ s+ K/ M5 k0 ^, j' ~1 `
$ i9 V- j3 s- Q H' ? B) @( F 1 Q: g; s. y& Q2 ?. p
BANK_DATA: M6 } t' R& t' {* |, i
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF" |- R5 Y: x& K x. s" c
" t( z. T* N" I$ `
* ], b8 K9 M: Q5 z g$ m
;[FC][最终任务mapper1转mapper4切页程序]+ h& M, Q9 P% t& Y2 U0 Y
.ORG $BFD2 ;初始化跳转) `1 j* N4 ^6 H: P9 T# {: D
JSR $FFC0. X& s! G4 U: g* P# t) { t2 x
, e. B, i* u9 J) `
& ^6 d& ^. L1 E4 O9 Y8 q .ORG $FFC0 ;切页" j: I" w/ s) m8 m( _, R
LDA #$06! `8 S. y7 A7 [1 w1 O8 e3 J) D8 ?0 n
STA $8000
* C* g6 Z" p4 t( ~$ q9 ^ LDA #$0E& _. k& H6 _- I& ^; M
STA $8001- t6 u+ y, ]$ l0 G( B2 \$ c8 E
JSR $8000
8 x1 i5 [3 {- f2 h9 Q5 { RTS 6 `3 x" X4 g7 j. F- X1 q( B4 r
: E( o6 S7 |# w: G .ORG $8000 ;数据复制% ~: X2 h7 K' e, Q0 e3 c2 ~
LDA #$80
% P' |5 D; a- t( i9 X' ~) p STA $A001 ;启用SRAM
6 P: O+ Q2 S+ ?+ [. D- w+ {8 t D PHA/ i9 V' r; {( o1 m. b% [
TXA- Q9 P4 Z8 ~& H6 ]! |& n; f
PHA- z7 e K+ Y* y* T
LDX #$00
Z! N& \& g- k7 H0 HDATACOPY: ;数据复制7 E: ~! o- R5 \- Y6 K
LDA $8100,X
6 O( l5 ?6 ?- r; \# {9 \ a n STA $7200,X) b4 y, ?) D+ M
INX
9 r; A" ^" @+ ]" w3 x CPX #$00
. [! F7 _. S+ ~9 R2 ] BNE DATACOPY$ g P( H$ l+ z7 l4 g
PLA; C! W3 n% @7 R' R$ U& G0 b
TAX
- C: ]8 C B' }9 y: b PLA
8 a! |: u, r: \$ d& V8 o( t/ Q: ]9 }$ c RTS
6 |; L+ b+ `! U7 L- O( s" C# E) M
6 U: x% u) O& H2 t& @( P0 \ .ORG $CD9B ;跳转到转换的切页程序( G; ?: ~: K5 D$ I/ }" Z8 y# @
STA $70
: a1 l$ M" q* O! R4 v }/ H JSR $7200
, _2 m( p3 l. u1 l* Q RTS
- ~* P3 Q% v; f6 K7 d
' T1 q. |! }1 X' {- G .ORG $7300% [6 O& S% Z+ r2 n# [2 @
M1_TO_M4: ;切页程序
\: M( p# I% B6 n1 W9 z/ ] CPX #$007 \0 c, H. u9 o
BEQ REG_SET1 e' u+ L4 K* E6 N4 s! F, M
CPX #$018 @3 ] n" I D
BEQ PPU_BANK_0000
2 R! B: F$ e3 ~ Q6 a CPX #$024 ~. y1 S5 q8 h1 a: l( e" N
BEQ PPU_BANK_1000# |1 A2 A- |! T0 l8 e, `2 N
CPX #$03
, N% ? ?0 K0 q' Z BEQ PRG_BANK
$ \0 o- f' M; o- |REG_SET:
$ b/ U; \9 M8 N4 a# v STA $A000
2 ]$ R" ~0 F; i3 k& x8 ? RTS' x7 A7 a' E6 D- m7 q
.ORG $7320
, B) \/ u0 `: o1 v# A+ W9 x+ YPRG_BANK: ;PRG切页( {+ ^4 ]7 A- ~* ^ |" i
PHA8 q% k3 h4 J0 p5 D m7 x @
LDA #$069 _! W: `2 Q6 ?0 G ^+ d8 T: ^7 o
STA $80002 Y: Z2 ?9 }6 D9 O$ q& Z
PLA; B. |, }7 j0 Z: a
ASL
( E2 y8 J+ W" F2 s' D! h; O STA $8001* r+ n1 F- H( p0 h
ORA #$01
% W3 O& K/ _* J& j PHA
- G* y+ c0 v5 T9 S LDA #$072 p) o( g1 [0 z s& Y$ H3 E& }
STA $8000 H) D3 n- Y. q" b
PLA! q& @' r) D. P' s2 L
STA $8001
$ B I: B: Q" _6 M$ R RTS
- u- q4 i: ^) W/ n3 v .ORG $7340; \% N* |7 v8 r) X
PPU_BANK_0000: ;精灵切页
2 E0 @2 P+ f6 W# b* \7 x d9 M PHA
; n; h& ?' T% b5 \ ASL
; ]* E. E. a# R5 A3 t ASL# B; ~& m$ \2 l, c7 t7 y$ K5 I
PHA
5 s) i3 F( E8 j. Q+ { LDA #$005 l3 {. j% d* ^4 B a
STA $8000
; i; }( x' N$ H PLA
. i3 r0 t2 m4 D( i5 | STA $8001+ w% G& L9 G8 L: \: q
ADC #$02
2 K$ S/ B7 f) Y8 N1 }) d* k6 L PHA
: h+ U5 B3 q |+ n X G LDA #$01
, O) E7 }/ Y9 J7 i* x4 i STA $8000
4 r( s$ U2 S9 {' N7 _ PLA7 ]9 [& ]- S$ h' t7 v5 L7 I% z, x
STA $8001$ G4 [+ L8 l+ w1 A" H9 w8 U4 Q* t
PLA0 d7 B( N0 t* I! O
RTS
9 l4 Q& O5 F8 h. c' u2 W 9 K3 s; m$ l4 x: d/ u9 X
.ORG $7360$ T8 h- V2 v$ W9 x: D2 _; }: t7 q2 i
PPU_BANK_1000: ;背景切页
* a4 T$ j. l* j2 {6 v5 V PHA
5 C0 l5 C! E, A+ K) T ASL
5 p2 ?0 @! P7 B! S ASL
4 R" j0 [2 c5 o; ?) L; Q3 ?7 L PHA. A" ^ p/ w! ~3 d4 v1 `( z
LDA #$027 q# c+ p% q7 b
STA $8000
s/ r7 x# y' |' O# y q z PLA8 N, M2 c+ x$ W% R+ g
STA $8001
% F( B0 F S& H b/ W' P ADC #$01" u* m3 }2 {* ^4 @' \! x
PHA
. C+ e& ?2 ]1 ?8 B+ Z LDA #$03
2 o1 I3 l& ?& M* H0 ?; t8 Z4 D STA $8000
1 [- T9 [& }( g5 N+ H, j PLA' e. p3 w9 g* W% }0 F- n
STA $8001
; j# X: h" ]. F ADC #$01
7 }& G2 D: |3 e- s0 m/ v PHA1 s2 b8 A2 L$ r- ^7 z
LDA #$04
, {& D# Q. @' H2 d# s STA $8000
2 G/ E- R0 |" T) o5 g1 w7 C* s PLA1 T' h. c8 _5 |0 R; l1 E
STA $8001
J7 w- c. a7 `' i ADC #$01- h3 N: U' \# D/ q* x
PHA
5 {6 k. J: H4 A' ~* r9 V: o LDA #$05
( v8 X7 b% L2 O7 Z% P STA $8000
1 a1 ?, s0 S/ D) z PLA
. p; _4 ]* [( g, h' z STA $8001, |! m. ]$ s" i0 q; O- _( _
PLA
( ]+ t4 v1 w( {; w5 ` RTS# f9 |* B' G& y- w( g9 w
' R; l% X3 K6 K$ {+ | K
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|