|
|
;[FC][最终任务mapper1切页程序]
. h! c$ Y/ b' i# G- } .ORG $CD9B- }6 ?: }5 I) X' q
BANK_START:/ A) U8 G- z4 i Z, x0 k+ [
STA $70
# l% `/ y2 {0 O6 R% b3 y; X; W TXA" I( G- z& a0 Q4 Q7 P( d: {
ASL
- o5 B$ o; A# b' u) W$ p7 b) W TAX
2 x% r# }5 H w: ]- YPORT_SET:- |. l% i. F2 e. ~0 G- j2 y
LDA BANK_DATA,X
- H3 F9 z! {& Z% R# j% v0 B, S5 H STA $6E
: E K! n) N; q ?0 [7 A& ] LDA $CDB8,X
5 ~% R) I/ V4 N5 B4 X- P! M* q7 e STA $6F
& N' O/ H! y5 ]% x" Z( ]& s! W LDY #$00
* @) o; f: D- Z8 o' r# ^ LDX #$05
; @' ?, ~( B0 r- D LDA $700 p: \0 d/ p( {' E! D A
PORT_WRITE:0 e4 ?- ~9 t+ \9 C, M6 y4 ]
STA ($6E),Y0 f' x8 _& E* m+ o- ?4 |# ?: q: K
LSR
6 }3 F. v6 ?5 w$ G. k+ y; G DEX7 O1 M# a8 d+ F# b: f4 S
BNE PORT_WRITE
: f7 v+ e7 S3 D RTS
- f$ H" M5 y+ N' |; H
4 u6 R3 Z3 y" j8 S
5 b3 E$ d2 z0 j9 Q0 DBANK_DATA:
2 \' P) Z- U' i, D* e4 m/ S1 l$ D .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF) E' }) r) A! s( J
% n- h" h& x* q& X
: @: ]; L# v0 [2 `
;[FC][最终任务mapper1转mapper4切页程序]
1 V. P1 M6 L! B6 Y u7 Z& V& U .ORG $BFD2 ;初始化跳转
1 [) P. A# l( f3 V' }! [7 v- N JSR $FFC0
# A0 d1 P- u t/ g' {! U4 Y9 Y: v
1 m: |- v+ b6 Z( g: V) [
.ORG $FFC0 ;切页5 r- p& w2 V9 w; J& E
LDA #$06
( A, S. f, `; j4 U: Y: X( S STA $80003 ~6 S1 x! c$ W/ Z# A }/ f4 M$ q
LDA #$0E- {. n s) m; N0 j; q# m
STA $8001
1 x' e& r% ~6 \) [0 }' J$ ^9 Z* r2 D2 _ JSR $8000! C; e5 h! v' G, U" q+ e
RTS
% }: E" m# ~2 x" v/ R. p
1 q. G4 R' r# e u( P4 ~5 a .ORG $8000 ;数据复制
- c; L* i3 ], n6 r LDA #$803 N" K, @% ?0 R) N: s
STA $A001 ;启用SRAM
& r J0 r! }. c( [0 }& m+ U PHA
8 ?- ~% ?; {0 _& l TXA
# I/ p, y* Y( [# M$ s9 l PHA
3 @8 g) u. t' u2 z8 u9 u8 ^; N* i LDX #$00
& D8 ?' m. ^9 R4 K5 z4 fDATACOPY: ;数据复制3 I! g% ^ q6 z. M
LDA $8100,X
3 [9 p3 u8 Z3 D5 f. G! i; C; S. R STA $7200,X' L; {* j; y, |, N
INX
1 h9 ]- ]3 F N/ H% F7 J9 c CPX #$00
% Z8 n( {* r) m- y: f3 P BNE DATACOPY0 W2 D' B: M$ o _8 e. I
PLA
- P. j; B L) o; f" F5 ?. z, I2 p; C TAX
3 R% q2 s4 g a PLA
; J% f: g1 D& D A RTS, a) e0 B) Y; c! ?
% P3 c! H% q) ?0 f! L: e( [ .ORG $CD9B ;跳转到转换的切页程序
7 x- s; G& P- C$ h STA $70 G; e" U1 V: K ]0 A3 g1 O
JSR $7200
+ a5 V- d% O- ^ RTS
& i4 R1 m2 G; g) ?3 `( {" ?3 X: I; b
* g- f0 `* o7 M, r7 Y .ORG $7300! I4 `" T. R* C0 s' g
M1_TO_M4: ;切页程序/ [+ \5 v* E& F' ], }$ \' w
CPX #$00
; O' X4 Y/ \; q1 } u6 u BEQ REG_SET
2 @8 [5 j0 g3 m* b% Q7 e2 Z- |; X CPX #$01
* i' s$ D8 q" r& C4 w0 ]( h! \& X BEQ PPU_BANK_0000
' O* n2 Z' S5 ]/ ?. F5 f+ j CPX #$02
: L# w' {5 i! w" B BEQ PPU_BANK_1000
0 A4 D% ] y1 i7 _& p M CPX #$03
+ T; I: Z! o9 v" [, ` BEQ PRG_BANK/ @5 \; d! |. \
REG_SET:
& }% x0 }% w- P4 e) r3 E4 s STA $A000+ }$ {% f `5 t2 D+ p3 C3 u
RTS
. g2 r3 q9 I4 i5 }4 U. y .ORG $7320
8 W3 r, H# u- v R& }: _& xPRG_BANK: ;PRG切页% \# Y7 f2 ?2 n
PHA3 ?$ i- Y; K& R; l
LDA #$06/ H3 [% \0 |# O! J
STA $8000) d2 m% A1 W# ^, Y% I# n
PLA5 m4 Y+ B) F" O9 `! M
ASL
0 E6 e" i5 K9 R# k/ @* X2 O STA $8001
( u4 X6 ?9 C1 G0 v! I ORA #$01
' \0 `/ J$ W& g7 t5 O, p- k+ l PHA* u% c/ g/ H1 C" R) g( C1 _/ M9 O
LDA #$07$ Z0 a# A: \7 |; g
STA $8000
Z$ E7 U; x2 F4 ` PLA
( p& z: g0 [6 o& J. ]6 h STA $8001
, x1 \; R' [4 t- h/ v# J RTS
, {9 J% _8 S% n/ c( B% q .ORG $73401 B0 }$ B( s; a7 {& C
PPU_BANK_0000: ;精灵切页$ ?0 [& b( B6 p C6 m4 ^" t
PHA I h" q* a5 d! P. j2 Z
ASL+ ^3 Q* |6 a5 i# j
ASL
' d- d# ^ k" r0 Q PHA4 b- ~6 v, k+ }$ w
LDA #$004 ^) p! @/ |. k
STA $8000: N# ?2 {- `% k! V& N- {: V# s
PLA9 L1 v5 H: |6 \
STA $80014 N! s3 {% [' O$ o# d( N
ADC #$02
& `! P# N' k: Y, |- x; ?( V PHA
& j$ k( Z- k4 t LDA #$01
- v6 T7 t$ R7 S8 q STA $8000
6 e' O$ k& Y' d* ?, n9 t. [3 o6 ] PLA7 i; y3 P8 C* {5 c; B5 t" ]
STA $8001
5 C A! N( d3 C; v PLA
( e" d/ c/ O* S0 ~4 p RTS3 n2 V1 U& B2 ]- J; P2 N+ R
5 m2 E9 E* Q8 ?* j" F4 \ .ORG $7360) C( X; h1 J1 E: L0 X) z
PPU_BANK_1000: ;背景切页 }7 o# n6 V" |2 a
PHA7 J' a# e2 b8 h U/ a2 D5 ]' \
ASL: x$ H6 o% B Z8 K
ASL- s, f" r- l, q! J3 Z, ?2 y, q' V
PHA
1 u9 u6 N0 g) c: h0 s/ r [ LDA #$02# ^ L8 N4 c! B
STA $8000' \, ]+ M; ~* x! H4 X# o
PLA* a: |0 z# \+ R. U: }* ~5 y
STA $8001( {$ P! Z; Q* u! Q4 A0 u% g5 o
ADC #$012 K) \; J& p2 F: I H
PHA
N( t2 i% Z$ R5 f- x LDA #$03
2 s8 o+ A( d0 B- e$ m O- J. X, G STA $8000
1 G) K5 x1 y$ R# [4 { PLA
- O5 ]$ m0 {7 l STA $8001. | P7 x$ z& P* n3 v& G5 Y5 b
ADC #$01$ r1 T y, X1 p6 ^
PHA4 Z6 h& t6 R* {* E, i0 I# G
LDA #$04
1 [& ?1 V- [& C' m C8 R0 \/ F- Y STA $8000
8 i6 R5 N% B& n( h/ s8 |9 q, ~ PLA
- f M: K+ K/ z3 f! s2 v+ P; C STA $80011 ]+ J- F/ s( _) u9 e& ~
ADC #$01
! C3 d/ C4 A) j, E( I% } PHA
: F' D' }) }( P# v# A) K. K LDA #$05 S0 h* J+ g, [2 t- q8 C. u
STA $8000
; ^0 q' W3 _7 ` PLA- m( _; g1 m, j/ }
STA $8001
* k% Z& ]7 d+ }- f5 K, P PLA- }" X. C( A0 x& y
RTS" {- C z- k7 j. _
" P7 X7 D: Z* S$ @* v" f% b/ [ |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|