|
|
;[FC][最终任务mapper1切页程序]- D6 N. v4 J" a7 i0 w* U2 q4 V0 w0 I7 x
.ORG $CD9B# t# |9 E5 |7 D! N9 w# n% v7 c
BANK_START:
0 M# m' f1 ?: _ H STA $701 A$ h0 \( b9 K1 d# \$ J" Y, }
TXA
9 z+ G; C9 `2 E- t w! \5 r: o ASL. J& Z$ ^. w+ e
TAX
% O! w; H/ G; r6 cPORT_SET:: k2 m& n0 I$ ~+ ?: G
LDA BANK_DATA,X- M" G( ~6 {) q/ ?: f% H0 H* R) k
STA $6E
* r ]; n* s/ f! F" V6 U0 b LDA $CDB8,X/ c9 C0 f4 ?1 J7 C2 N& t; `
STA $6F
7 u' m- e4 O2 `. o/ y LDY #$00 a2 [6 s' T5 @+ d( H- C$ J
LDX #$05
$ O- L5 n, o& Z9 ?4 p LDA $70
! r- x& @! j- s) v6 ^PORT_WRITE:
! U# e9 M! b3 l! j% P STA ($6E),Y
+ a5 u$ k/ }- [& h: `( J* b LSR+ e5 d% A5 n. ^9 Z" p* h
DEX
) _7 @. a" z& l& ]5 ]) C# ] BNE PORT_WRITE) v- Y1 Y8 {0 m9 y* B
RTS, T2 ?6 Q. V( ~# x9 B
% v" l( G' R) ]0 Y. a& o
8 _7 ?. x. W: ^! j6 @BANK_DATA:
* \- W/ M3 Q6 X .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
5 S! }0 v. | _9 O/ t: r ( k: _( G8 }, |" m: L
1 w' |+ `5 ^$ I1 s' i4 s6 f% T! m1 m7 z
;[FC][最终任务mapper1转mapper4切页程序] u* l% E1 o D! e2 _( I2 P
.ORG $BFD2 ;初始化跳转
' k" ?7 q0 Z/ u/ z: |- }% I4 d6 E( ^ JSR $FFC0, `1 |+ l* i( @3 k8 ~* p) r: l
: \6 E. r s/ r# b
# V- Z4 v* s9 T5 n .ORG $FFC0 ;切页) G3 v# G! t N, G7 D# }* [" d
LDA #$06
3 O, x7 t3 M+ Z3 X( z4 ^; \$ @ STA $8000
7 o. \5 h0 n* u% G$ g, M LDA #$0E+ v( C% y8 w, R/ g
STA $8001
; {' C! i7 `3 G; J0 A JSR $8000
/ v) d5 o; m. e, f6 J, V RTS 5 d" S9 Y: r; o1 w, I% b$ V7 a
' U2 y# V, R+ V
.ORG $8000 ;数据复制
) t$ O8 i& W0 u0 L LDA #$80
6 {* o2 p0 q- e3 T3 ]5 m STA $A001 ;启用SRAM4 H7 ?$ @1 q9 i( K5 w; `' L6 j
PHA
6 {7 V- J* o4 U$ G2 O6 M TXA1 D4 ^( ?( J( V- w7 {1 h: j
PHA
) `/ F6 J! I8 k+ I% u* v LDX #$00
, G( L# C( I/ xDATACOPY: ;数据复制8 T: I; L! n- w/ v) G0 e% v
LDA $8100,X
* z4 M% S% v( [, u' @% C STA $7200,X
4 l- Z& o! i2 ?. Z INX
1 N/ a/ I- b$ C" { CPX #$00
! a4 q' f' d2 u+ s1 K! L% m BNE DATACOPY1 @6 X" ^4 Z& i r9 p# L( }
PLA) ?- h. N" q9 H# ^- X: O, l
TAX
1 O7 R% z3 b; \. u6 A PLA
; n" Q" B, P) O RTS
* _+ P7 \$ ~1 J, S6 {: X3 q ! N) o" t' A4 l' P: t
.ORG $CD9B ;跳转到转换的切页程序$ O' l: ?2 I* E8 F4 E \
STA $706 R: \# s, i4 u: `/ j
JSR $7200! H" K! S7 `3 F# ?
RTS
' _- j0 c: h6 K3 k% [ # S' {$ l1 t, m$ l7 `4 B
.ORG $7300
/ W: l: C# V, GM1_TO_M4: ;切页程序
( \& ?7 c" ~2 g$ O( R CPX #$00
8 S8 S! Z0 r" g BEQ REG_SET6 J& J& A# J3 f
CPX #$016 N( {/ _" R( D9 B4 M) S, `
BEQ PPU_BANK_0000$ u. t/ F( B9 \2 F* ^
CPX #$029 c3 ^2 A5 G6 r/ ?9 c6 r
BEQ PPU_BANK_1000! U! a. D: [* a# L. G
CPX #$03# m6 j6 l4 O' _4 E1 P1 j R
BEQ PRG_BANK$ }# ~) e. m" h' q1 A9 c F; U6 l
REG_SET:" E" `# r' U: Z* l4 |- X1 e
STA $A000
$ T8 z) j, c9 X1 ^0 \/ ?7 ~+ j5 w RTS
0 ~, G# L7 U! Z .ORG $73203 \2 K8 b& y5 l, }& E
PRG_BANK: ;PRG切页
- C" l4 D9 q' z* B9 D1 S; P3 T0 j PHA
* |" I9 Q+ m0 ? LDA #$061 A3 Z* W3 L0 M, o% A8 x
STA $8000$ y: u! F L) C& V
PLA) R% @% u$ u5 d) @
ASL6 d& J2 ?& r3 E. t g
STA $8001! v" [9 [0 f* P9 Q0 s; w& L
ORA #$01$ F4 K3 l6 l+ A! t) c( ~# p
PHA' y' F- ?8 v& S+ A# u
LDA #$07( q7 c. V3 d+ T1 H4 j, ]& Z+ o+ K
STA $8000
( W. ]9 T# Z% w) Q% P" [( n PLA
6 L2 _4 e. r+ e: y; C# T, G: g( Y STA $8001- E$ U% ~7 \2 o: d, ^
RTS
- A, L/ i% W1 y) {9 `) Z .ORG $7340( G) k* P3 R' @
PPU_BANK_0000: ;精灵切页
0 B, f: u, V7 F: X. U PHA j: \* B2 f, I9 `3 ?; T: x* t* Q& s2 M
ASL8 V+ l6 [' V7 {; M0 A
ASL" K9 h( U' s2 d+ Z
PHA" B# _. }& O! h9 f
LDA #$003 h# A) I" v# x7 s# Y
STA $80008 g! s5 x. x4 U1 x. c% }8 g
PLA3 |+ r. }% ]! @" h& Y- I
STA $8001' z( r* l# x9 E- N
ADC #$02
+ h1 V1 _5 R* H* Y% U' i PHA
! K, h) I4 Y" f% v* a" y- z1 Z LDA #$01& i K: `) W0 L
STA $8000
% r9 |1 t% ~9 R S4 F$ d PLA5 S0 ^* o; Y6 ?! D# d8 c
STA $80019 Z6 [4 i& z* K2 X0 a
PLA* ^$ u. R0 i5 u, f
RTS) u5 w6 v, L; J0 Z/ H0 N7 s
. e! Y8 ~: K0 X8 I( q2 n4 C! m .ORG $7360
; A* Q- m) y# V0 V+ kPPU_BANK_1000: ;背景切页: k3 J8 J c) I2 v8 g X& F! ^
PHA- h3 a4 h; b; A% b( `( f+ b- `
ASL% o- l8 M2 ?3 p. x9 a8 }5 U: m% y
ASL
1 @- t- g# d0 j, V& E. j2 u PHA) `; E. ^8 L0 `
LDA #$02
2 B+ b$ m( j x* H0 D0 I STA $8000
$ O4 U% w% ]5 c; ^2 k! g( W6 _# a, X, | PLA7 n/ b: O$ q" O/ e. j+ {
STA $8001% X4 h( {4 C1 i! t6 f# i
ADC #$01
1 N3 G6 v6 E& z+ E. V* F PHA
! D& e. S/ z- {2 ^ LDA #$03
8 e6 ?/ u2 g9 ^: S2 i% s STA $8000
5 c+ G0 _, a& Y PLA
" `7 B' v, d$ D# z* d' J2 D STA $80015 O: y1 y$ j. A% T7 j
ADC #$01
# r# O( ^! r( [ PHA
( t* F( [; f t* h7 H2 g LDA #$04
9 v B/ B2 W8 Z& Y0 a STA $8000$ h) o1 ^( E! v1 X* ]" T
PLA) s% X; G" C6 b5 g
STA $8001& N; a, c+ O( c) m( Z& W+ e
ADC #$018 N4 q6 G3 N8 u# b
PHA
% \. k8 a& Y o. G9 @* Y: E9 K LDA #$053 o' I4 t; b2 c8 u9 o2 c
STA $8000
/ Z1 y E$ g1 W3 F7 p2 f7 c* S$ m PLA$ S2 i! r( q U; t, t4 B' W$ _4 d
STA $8001! T; t2 t8 \9 }5 o9 a5 m
PLA6 b! x3 m% V7 P* _9 A
RTS+ K/ y0 T2 q6 b. ~2 q7 z0 Y
8 P9 a6 p& A, I: C4 y! Q8 c
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|