|
|
;[FC][最终任务mapper1切页程序]
. H/ M5 \3 [5 e .ORG $CD9B
7 W2 H9 R+ @8 b. N* P/ m1 LBANK_START:
, j! @( g# r8 R( [$ {- o STA $70( B& z" r. O6 q+ h0 X: T2 W
TXA9 J8 v) y7 B: v
ASL) N3 J3 @; V; n+ l; N. I
TAX/ c+ W. l l b" x( f, k; v
PORT_SET:
1 Q5 @3 m, w4 }! s) F6 ^& x7 h LDA BANK_DATA,X: X0 D8 C2 _; K7 u7 p0 N% @
STA $6E
' ?/ l' v$ T+ x- f+ J E) ~ LDA $CDB8,X6 R9 k; i% M& T' }& d2 f% s
STA $6F6 Y) ]4 X# L l- K+ n8 d, F
LDY #$00" s2 k+ ~9 z) y/ C
LDX #$05; k9 g6 D" J- e l9 d5 e* X; @9 q
LDA $70
/ e' S6 q( I# l( e: N' APORT_WRITE:- H3 W9 z0 }8 `1 w9 G
STA ($6E),Y
% _9 x+ S h. a' z% t LSR7 G; L, r* A! o& N3 r' l
DEX
" B- Q4 P% F8 v0 T0 [ BNE PORT_WRITE. `, V S8 R7 z# c8 a
RTS
7 |* y; n, L* Y# F
/ m- c- B0 Q& X; h6 `( Z
) c% y @, [* G l& UBANK_DATA:
5 _5 z T1 v$ a3 Q .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
" E7 M7 ]7 B$ ?8 B+ O: B; q
8 A. v- e/ F' H/ K8 d) W 6 j! U+ V$ H; ?& q' Y7 z4 _/ N
;[FC][最终任务mapper1转mapper4切页程序] O- h$ `7 }4 s
.ORG $BFD2 ;初始化跳转
) n& L/ |& {; X4 }5 X& d, n" ^ JSR $FFC0
& K N! G8 R# N7 _) k; e' D3 N. N- l' y7 Y- ?' p! q6 i# F$ S6 E
+ G8 s5 O# g$ @0 y, A
.ORG $FFC0 ;切页3 w- Q* I3 Q' |. p- \9 X
LDA #$06+ M \; ^& U, b* P! n- l; A/ L% U
STA $80000 {$ D# ?1 n! K; J
LDA #$0E
% u) h9 U6 G/ J# t9 c/ W STA $8001: a: `% M5 E4 F
JSR $8000
) T; F6 O$ Y9 K' {$ K7 O RTS
9 Z+ S0 Z5 \6 Q, s4 K5 E
; H' N! ]2 {5 b( L) C .ORG $8000 ;数据复制( N, o- E- T3 r; f. q/ c
LDA #$80
9 R5 _. Z; k! L- g. } STA $A001 ;启用SRAM
9 c0 W. ]; |1 ]# Z PHA
) i- s( P/ k& H( M2 C TXA
9 ~# I1 e% z1 h: x: ^ PHA/ W6 e8 }& x3 s( A. e4 G# a) v: Z- n
LDX #$00' x% | O( F% c h" d9 O
DATACOPY: ;数据复制
6 H$ ~ c: t/ g' p7 y, o! t LDA $8100,X
4 \6 y8 y* w7 c4 H) m STA $7200,X7 K+ G" X# s3 Q/ {. D! s9 ]
INX& z. {: Z1 l6 h6 B8 g9 p
CPX #$00
$ b, U; r7 g. h$ b BNE DATACOPY
$ t% O9 Z6 m+ N0 _, i PLA1 b! @! X* d8 J f! K
TAX
% e% W( e9 q2 \6 A8 Z( Z7 k( G, e PLA" B A9 ` ] [9 a& ^: G6 ~" J' y9 ~ a# `
RTS! N& p% }" v) O( L: S
4 o5 t6 D% y: C1 A6 c .ORG $CD9B ;跳转到转换的切页程序
- h& A$ d" z3 L7 s& O3 I2 p STA $70
5 W: i6 s3 c8 h/ c JSR $72003 s& R# M0 _ t! j |; G [/ A
RTS. H8 J4 v: q) M4 Q" a. ~7 k
4 a* y d0 n' S% X# O- u4 X, O .ORG $7300
$ ^5 H2 J A# |' L$ S9 D- }M1_TO_M4: ;切页程序
( q0 c; k. e ]5 v6 ~1 X q CPX #$00
- I1 J) Z9 v. p; `* W BEQ REG_SET% l* D3 @& F! l- f
CPX #$01
+ p" b2 Y1 r7 U BEQ PPU_BANK_0000
0 X, k; T7 W/ M% g CPX #$02
6 D! {1 |6 O0 |' e2 S ^ BEQ PPU_BANK_1000
1 S0 x2 {1 B" K [ U CPX #$03
2 [5 T. N! L T, s BEQ PRG_BANK8 k x7 K [$ a/ R# Q% Q; \ k
REG_SET:
( W) e1 C0 I- }0 V5 h- h STA $A000
" d* U" x% _$ q RTS1 V2 ?, B0 L/ m* @2 O
.ORG $7320+ o& c4 A5 z0 O# P9 Q. O
PRG_BANK: ;PRG切页- R/ N7 v% q& I [( ~
PHA
' I9 E5 `, A' V; L' m/ L8 c LDA #$06: a; O, g; x; K- ]
STA $8000! l7 n4 e! O2 t1 o, _6 u' T
PLA
( @* m" k: h o+ q ASL1 |( j* A6 w% A* V# Q, X7 ?
STA $8001
# M4 i0 t, O+ M8 N; E ORA #$01" B# U* }( T- t% k% u4 R% D9 q
PHA Z# C7 h6 Z k7 s
LDA #$07/ y: b3 W1 T: T4 e, `
STA $8000
' ~9 g' I3 u7 B PLA
; a8 A! \' e O9 x! e" i+ h& A' O STA $8001# [$ ^3 Y' k* K: B
RTS# }% @! c2 J2 r4 c# H5 `' Z
.ORG $7340
+ R" Q' i) n4 l) _4 k6 P9 cPPU_BANK_0000: ;精灵切页
# a+ u" H; p0 z! s% z4 l2 e PHA# @8 v; D# \$ V, J7 O' _' K
ASL
( \# a2 ^. C/ ~" p# V( Q v* C/ n ASL
; g$ V" N D" |3 N5 E: w7 L, a. E PHA
6 ~! x) r, X! q8 T$ V* T/ n5 c7 K LDA #$00
3 M. z( |: \& Z8 ^! M STA $8000
* [$ g! `) t: ] PLA
. q- o! L; ]( _ STA $80010 @1 E. ?& X& ?$ G6 r
ADC #$02) F7 Q) c6 \' c( ~/ N, L$ |2 B8 ~( l
PHA' j( m( j$ I0 U- T0 O
LDA #$01
2 s6 W/ x1 z9 _) x8 i% K5 B STA $8000- {% g, Q8 X& }. ?9 k8 x% Y
PLA
1 q2 d k7 K; U5 ?. [ STA $80017 y7 c4 q7 @8 Y0 X; R
PLA
- C; s5 X+ Z b$ t6 L0 c RTS
- Y6 N$ N |) n6 l, j 0 s" f/ K# v) i% H5 C
.ORG $7360
) N5 `# \; C hPPU_BANK_1000: ;背景切页
' N- s1 P; L5 K2 a/ g( g4 e PHA
) w* f' o! I2 d" Z h ASL
( g3 B6 Q, p/ N% F4 w, e ASL
" _7 V) q! j4 ^# } PHA# @% S# Q, w# r1 g8 W" P
LDA #$02
9 l7 U( l( @! i0 t4 f) ~' _ STA $8000
2 [! o3 B% d/ n1 g- B0 _4 | PLA) n% J# d1 V6 d5 J" [4 s2 C3 `( `
STA $8001! E5 \, C/ D* i( [9 m& R& A
ADC #$01; z. v3 y6 E, F9 Q6 g, ]- c) j
PHA! V1 j+ r+ H* O( r" x# V
LDA #$03
/ _ V1 p: i" A; X) n STA $80001 I( ?' W6 z3 s8 ^# U% B
PLA
) E& ?( S( ]2 b5 Q8 i6 q STA $8001! T5 F. B4 ]+ x
ADC #$01
/ r: i$ i/ R- H( X4 }; \, q PHA
0 d9 \9 m g1 ?5 n6 P, j3 L }2 k LDA #$04/ Z u1 z0 `7 ~, g0 U* Q+ }7 D
STA $8000
& M8 s+ W# `! t8 B PLA
; c" M$ C _- ]( Y2 ? STA $8001# v: a) e) j/ r$ K/ c% j t2 I
ADC #$01
6 W( u7 ~/ p# _0 p4 \8 N PHA
! b0 ~6 |& S& j5 N LDA #$05# w- K8 j3 ?5 N7 E8 |* Q
STA $8000
. z% k3 Q- |. C* K s5 N PLA
2 X# v$ L% `! T3 m STA $8001
& n, n$ _/ z. @" ^" r- D PLA5 S# X% w# j( e: s* v' i ]+ Z; V" Q
RTS
1 G- ~0 x6 i/ @4 I% t# P
7 h; e. M$ a1 I4 A0 q |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|