|
|
;[FC][最终任务mapper1切页程序]- L5 B O& ]. [3 k& s4 R* u
.ORG $CD9B' @, ~$ j h6 @' }, L% ?$ [
BANK_START:
( o5 r: Y* n6 Q: @; F STA $70, E$ U( e X, t* f: C0 C
TXA+ t* s9 ^2 t) D& [, Y
ASL/ D* B& {8 q V# w
TAX q9 f0 s, }1 Y! P3 U
PORT_SET:
; ^3 L' T" |! F" p/ d LDA BANK_DATA,X( _" F' _3 K; n! @8 F \
STA $6E+ F' y0 h3 I3 m [8 Q/ ^- a; v. l- ~
LDA $CDB8,X2 u( w8 Q! b o; A& A2 D: c
STA $6F, Q* R, V" {, b6 \0 Z7 i, B( r
LDY #$00( m( V5 w( i# W! _# s
LDX #$05
+ t* c: |* M" ]- a LDA $70
' h1 q& T) o5 Y6 S6 I( }: BPORT_WRITE: ?% o4 T2 `9 ?3 m! Q( B Q( D% \
STA ($6E),Y1 O% p% l# l3 M" ~4 u) E
LSR
% K3 [3 s0 o8 k |( ^/ w, Z3 s0 e DEX
0 v$ F/ s2 Z& _ I! X3 x4 k* L BNE PORT_WRITE7 e, E; c7 X2 A2 t
RTS
( {8 T, D! s! M* r: e
+ p3 j/ C1 b! V6 _2 T - V$ z5 e% w$ m
BANK_DATA:) S: q$ l. X( ~6 g
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF% e, R! Y" ~( e6 \6 C; t! `! k
' h; A+ t4 x# A, \+ g
6 g; U' P7 y- O/ ]" N. g2 d! k3 t
;[FC][最终任务mapper1转mapper4切页程序]" b4 \" A/ G6 B
.ORG $BFD2 ;初始化跳转$ c2 w4 H4 R5 x" D7 X+ _6 f c
JSR $FFC0
H: ]5 _, K0 X0 \# a- t; Q
: h$ u; g% s% o, N5 r
4 t0 c" V1 Z: r3 V: j3 B- W u% Y, ] .ORG $FFC0 ;切页
5 |6 t; V! q N# _0 k5 m LDA #$06# `9 y! L. }' ]6 R2 q9 B
STA $8000
) z: S) Q5 F8 A" C" Z8 R LDA #$0E* j! m: S, k9 g# r: @; k
STA $8001
$ {0 K* ]' Q; J. c JSR $8000: L% o1 U$ c; H7 r0 q5 m2 Q9 C
RTS 6 j: H. \7 Y: N* i5 [: P
; l, ^ Z/ V0 ?+ R .ORG $8000 ;数据复制
! t9 o4 y- ^1 T9 z! @ LDA #$80
. z& P% P! m9 r0 ]* t# I! D STA $A001 ;启用SRAM) K' ]# N8 g6 |: A2 m
PHA. z' Z2 I8 u6 t6 v4 `* o' O! t9 T
TXA5 x$ _$ C5 L$ X- E
PHA' Y& e, A1 p' w' L7 I9 G* U
LDX #$00' @3 D/ Z {+ g) V, K( Z. `
DATACOPY: ;数据复制6 W8 c. m" U5 E' K+ n9 T. ?& L( ]
LDA $8100,X. q! _4 n6 P5 b1 W: N4 ^7 i
STA $7200,X3 v1 \: C2 [9 w+ T
INX
( z) b( } ?9 G* L5 @6 _ CPX #$00
6 m: r" U3 q& G$ L2 c, a BNE DATACOPY# Y; W' X) N' f1 o1 l* ^, U0 i' o
PLA2 Y- @% v. y* b- z# Z% E) I
TAX
3 d7 Q& K5 ^# e; x- K PLA
* X7 u6 e1 ]$ }5 s& M5 O RTS
" S$ o$ x8 l- q& n' J( g# V : ^ A p1 c3 n& m5 I* F& }3 D
.ORG $CD9B ;跳转到转换的切页程序
) e- ?8 ~ F# }6 t; [" @; j# | STA $70
+ t/ J: X5 V+ | JSR $7200
* X4 t2 V! U2 ?1 A$ f# b RTS$ o4 g$ v! Z2 ]' h/ C2 A
3 ~) m. \8 w! U/ e& R5 f9 m .ORG $7300
8 Z* V# d; l/ {! y) DM1_TO_M4: ;切页程序3 U f3 z% u! t6 M6 d& T, a
CPX #$00
1 ]3 v* @2 S* ~( i% o BEQ REG_SET
7 P. M" a/ G' C CPX #$01" E9 k7 k% J; s8 j* }! G; f4 T3 r3 e
BEQ PPU_BANK_0000
) l4 {: p- z* ?+ I' N& R CPX #$02) ~ T, l+ T4 R* W
BEQ PPU_BANK_1000
& H9 M; z _! ~6 O CPX #$030 m& I& G: ^5 Z8 O" v% Y& o' y' V
BEQ PRG_BANK8 w) e/ j; m& [4 O6 _4 C1 ^6 S
REG_SET:& f- w! h0 z- w0 c# v# R2 Q
STA $A000
& @+ a2 T q% z RTS
! a8 K* b, l4 E2 I& y9 _) O .ORG $7320
$ }. G: \& ]# m9 G- f0 yPRG_BANK: ;PRG切页# D7 C/ o6 o- R/ R& S. ]
PHA3 \7 R! ~: w8 D' s3 G2 ~; V
LDA #$06
- I; t# V+ }7 A1 `) ^. Z* H5 L V STA $8000
5 S5 p V7 x5 S1 P: {$ R# V0 D PLA
& r% m1 E/ I _8 N6 J ASL
& H$ p9 c2 [/ Q& d) n/ g8 n7 t STA $8001
/ s; l5 V# _8 S1 t* e ORA #$01% _% q+ F+ _3 r% Q7 @- P3 X
PHA# j8 S1 B1 n/ \1 a+ Z3 }
LDA #$07) F- ^3 [& Y' Y# m9 k# T6 P$ m/ ~
STA $8000. u; h# m: a5 Z ]( G: L
PLA& P6 x, Z: V% G% H5 E' F
STA $8001" F4 M8 F" X$ A9 j4 B: I& U
RTS& l' I% O5 T& i# ~& L# B; W
.ORG $7340* ?6 S: {& M% l# S
PPU_BANK_0000: ;精灵切页" {: b6 @4 f- N
PHA* L' ^4 ?4 G5 b+ _
ASL8 k7 V: X6 d: W# b
ASL
3 |0 g( \# {" R: L PHA
9 [+ D! P" C0 U. A7 {1 V LDA #$00/ J9 v( o' a: T+ V! j- E w8 N
STA $8000
4 p; h/ X. M" V+ E9 z! C- [ PLA+ T$ k! ?) r$ m1 p$ t K
STA $8001
/ K8 Y; j% b w& b: l7 n8 [1 X1 E ADC #$02$ I, G6 S L/ p1 }5 F3 I
PHA
( ~, \. g2 b) q* c( }+ ]- B- T) O LDA #$01
' d4 w7 f% Y: F STA $8000$ l0 {4 P' X+ {/ W4 e# ^8 C
PLA
9 Y2 r$ A F. ^( O9 s STA $8001
/ x' s; e# f8 S- X# @8 G) U PLA q2 r2 k& K; n6 w8 z' O
RTS
5 E" |4 r) {, R; L' N2 A+ ~ $ {1 M0 @) W# h+ k0 G8 r
.ORG $7360
4 V- q9 _4 U; c9 U. q; P7 nPPU_BANK_1000: ;背景切页1 ^' b4 Y2 j* z" v! R# S. n
PHA
; {1 _2 |; C" R( E, Y6 G- t+ h5 ] ASL
, h6 V! N: P& z4 U8 s ASL
6 b4 o. D [5 o# [0 H PHA; h* Q) G0 F% M' |( B
LDA #$02
0 s' e2 W2 y/ y. W STA $8000# P6 ^5 U- F5 B$ }9 l) S
PLA
" k, w" ?! n ~5 d* Y STA $8001
1 S! ^* B& c0 U. x$ L" Q ADC #$01
# r! E* e& G' U+ B" o H PHA# I8 j. Q* |! G! A5 V( S7 [+ I
LDA #$03; w! w0 J1 {/ y* |# x
STA $8000
9 I5 H! Q% k3 d' I PLA: t+ {3 f( [) ]) t) h9 Z: Y
STA $80012 D- i- P0 u( w& G
ADC #$01
6 S. L: _* z# \2 p PHA3 p: ~6 b6 P" ~! T! i) `! d; X
LDA #$04
" ]0 D1 Q1 } j# d STA $8000& X d/ j, z5 p8 _0 i5 U; ?9 f9 A
PLA/ H, m) \) q3 P4 J- X
STA $8001; q3 k1 k5 s1 R+ s+ k! Y7 U
ADC #$010 N. C2 m2 o) S3 \+ Z7 w
PHA4 ~* ~; L# C+ q' G
LDA #$05) v( s$ f+ J0 |$ q$ @
STA $8000
; h4 S4 n7 s4 ~9 I4 U/ H" e PLA4 n* k" b& F. J' B% b) Z
STA $8001& i0 M* E6 K6 O; d
PLA3 `" J1 [$ m C* V! l
RTS
5 d$ E3 w( w: ^1 p; N. m$ u+ ^# v5 Q U1 }% V" Y, z
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|