|
|
;[FC][最终任务mapper1切页程序]& h& Q5 m) s% g9 f% S. J* c8 q
.ORG $CD9B; b* `( W% ]- L3 B( ^6 x( X$ I
BANK_START:
8 {4 {. N+ A/ Z STA $70
% H3 I" n8 P! B TXA {$ G8 x; ` l+ V' E5 `0 D, g
ASL
: |1 S% q7 Q: q) w% u TAX
, v$ o; [# M, n9 i6 B7 ^PORT_SET:1 H1 F/ c6 B @) u! G+ y
LDA BANK_DATA,X
3 T) v! G! E; l3 {& v STA $6E+ M1 n+ K8 T( j# ?% Q
LDA $CDB8,X
/ l. y7 K. ]3 h7 Y( @- `' G STA $6F4 R: a& t e6 S; g6 \- `
LDY #$001 K* o G% Y2 Q* P/ P$ ?
LDX #$05
* [( a) W' {' _, c& k# ^# Z0 ] t LDA $70
- o6 U! l+ k9 b! q5 \3 A" hPORT_WRITE:( G# {9 m7 D; f/ b/ Q# H
STA ($6E),Y
8 `6 g8 t6 Y- U# y LSR
) O" |' p# _' z5 }2 k DEX* v7 ?: h- Z3 E* }0 j& Q
BNE PORT_WRITE
& X0 h: V% p! ]; K! X RTS2 b( ~. h0 Z3 l! u2 ?3 A" b( D: u' o
0 M8 E2 @: f: i; s. J( M
; Q. F* ?# _: F2 ^) h
BANK_DATA:
; ^1 |7 c, p0 ]' r8 y2 q .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF) I/ f; M3 k' q) H
. C7 j' F( @+ S. p/ G- N- f$ r 3 m) v) q* c& B1 S
;[FC][最终任务mapper1转mapper4切页程序]$ C1 }0 M& E: i+ D* X
.ORG $BFD2 ;初始化跳转
1 M3 X. i$ k0 o, E JSR $FFC0! W% r/ N" w1 ^
- s) a4 S% V1 y; p% i. G; b. H# P l/ I0 z
.ORG $FFC0 ;切页9 e! u! Z! z- [+ D
LDA #$06' K3 B5 h+ C+ h
STA $8000+ B* X9 N% j9 P( `5 z% b- o2 W
LDA #$0E5 U, J5 E" C) q% t+ u) F
STA $8001
5 C. S3 X+ d8 j/ u JSR $8000* D2 j" }$ c, E0 E
RTS
" u7 D* y4 o* C: z" n2 _) K
2 C- s2 m; L# e5 r1 C7 { .ORG $8000 ;数据复制
4 N8 q8 Y) @; T2 Q- | LDA #$80# e# ]" x* L8 u
STA $A001 ;启用SRAM+ z9 y% ]# X- N
PHA1 w9 A2 p* z6 ~% T. c2 O2 K
TXA }. K4 k4 ^ J$ ^# s( q! M
PHA
2 V6 N4 G$ G, f7 b, U LDX #$00
/ j$ B& Z6 d6 ODATACOPY: ;数据复制
- Z, e9 a6 O1 c$ ~ I LDA $8100,X' y: g1 A) |2 U& N6 }3 h% a3 i, A
STA $7200,X
3 {1 k; {4 O6 T7 [% w INX
) A% j1 e& [. H$ W# M0 O" l CPX #$00- t% }$ j% O5 F4 p, Q9 a4 g- q
BNE DATACOPY A; U- \ Y4 D8 {8 O* t0 V* ^" Q
PLA# T. W0 i8 D- R) h" ~
TAX
3 u2 o$ K9 C0 l4 V/ v, z PLA
/ O5 o0 p3 _8 A; A) b RTS
1 z) z5 @2 g$ W+ W. i' Y8 b% D' ?
# S) m) x) v) q; n1 h) d: s# W .ORG $CD9B ;跳转到转换的切页程序2 f; S7 ]" U# f" j, O
STA $70
) y: m0 b5 x/ j' z& I JSR $7200, y! ]5 o1 C" ?
RTS
) T- ~9 }+ u# G; J1 U; K , S( i$ W8 O1 C' F, y8 P3 f
.ORG $7300
3 g$ V4 n& r) s) ^' ]M1_TO_M4: ;切页程序
* T! Q$ s: Q+ X( T CPX #$00
) F- B& y v4 S( p! a! X2 W1 S BEQ REG_SET' T, ^5 ]7 z2 ? I
CPX #$01) U' L0 C0 F+ R5 _: N0 K+ S7 P
BEQ PPU_BANK_0000
5 ~" J; I- U! [ CPX #$02
9 D3 p5 w0 y1 e$ S6 s/ L+ P3 T% U BEQ PPU_BANK_10007 t I- S" g0 @: M0 D
CPX #$03
! n( x# M5 ?! \" S, a7 Q' h BEQ PRG_BANK
7 D t3 q8 O9 F" E% pREG_SET:4 b3 O5 ?& p4 `# [1 M9 D- E
STA $A000: Y& ?+ r( i2 K2 a, {. k* B* t
RTS
! P0 Z3 n) U8 u3 r* @8 } .ORG $7320- L) q; b8 r0 X$ |& v9 z9 i
PRG_BANK: ;PRG切页& x, f5 @- l" E/ z' F) C1 Q5 G- T O
PHA
% H7 r- n4 Q* j4 M LDA #$069 \) {' w6 V9 E) h! B( \3 R
STA $8000# q; h0 |: E0 E! d. J% G
PLA
3 x' R s# `2 P" C ASL4 v' C4 i* B# S4 D/ }, i* \
STA $8001
1 @2 B1 m1 ^; N# y2 \; Y ORA #$01. R# U2 D& f W1 _; w, _' R3 g
PHA, |1 l( q1 W4 s% u
LDA #$07, Y/ k! L0 E0 n2 q
STA $8000# ?- [( H* A5 C6 M1 I
PLA
/ w; y+ Z" [7 C- E+ W STA $8001$ r3 i1 z8 H" [: Q5 w, o' ?
RTS# Y6 q) f9 d/ g4 W9 `& H4 z+ s7 i
.ORG $7340' l. n% t2 v+ j4 Z# f
PPU_BANK_0000: ;精灵切页
& _0 ? k+ D1 N% q) x7 R& ? PHA
( `! }9 g# ~ u5 ^+ K0 I2 W% V ASL' v. d4 \! s* p& M
ASL
7 e c3 q2 a# _4 I PHA+ Z' c8 w. ]4 x& C+ G
LDA #$00" Q9 r q# \0 D H% Z+ c+ {
STA $8000: d/ H+ @2 s. q+ V$ k' m
PLA
% s3 E2 ^* i+ v9 D9 J( ^. E STA $8001
3 p1 @9 c7 f4 d5 s6 m8 M' x ADC #$02
+ ~* S( q+ Y M# {* M$ A: X: H PHA
1 \0 o/ x8 q+ H2 s% Y: Z LDA #$01
5 N# S7 @0 }& j/ r' h7 ^9 }7 t, ?+ B x STA $8000
: G5 ]. m' {5 l! a, T" I$ O1 a" ~ PLA
0 ?; [( _5 i4 e9 H STA $8001 t# Q% j+ {( C3 ~7 R! i* Y0 w
PLA% ^9 E- B8 I. L( G8 e' T# z
RTS
# x1 [2 x1 P' }+ R2 I % x2 a3 `! x% n, z. `! } A- ^
.ORG $7360
* g5 [. H1 L' `' q/ \& xPPU_BANK_1000: ;背景切页
4 Z+ F% ?8 u+ K F7 H, h PHA" Y# n! I) [0 w. ]2 E
ASL# D# J6 z ^/ Z! c4 l3 ?
ASL* _* l+ C4 d( P( b( ?& b
PHA
# s! L0 k# \: o* F LDA #$024 C( I: F+ L4 W' ?- ?
STA $8000" ~7 r2 G# n- H( S X+ o
PLA3 X) A) S, [, c' l' H9 k: {
STA $8001
6 \4 G& F6 h$ k; L- v ADC #$01% G. a+ q' {% E& `# m
PHA
, G# u! Y/ S3 q# f0 c. g LDA #$03
# t) N( P, b6 I/ ]8 T STA $80001 y, L3 _" z, x# s2 N
PLA5 b- n" Y4 f( D: R7 o. p6 i" Q
STA $80011 S. U6 i1 X# ]) K
ADC #$01: h: w9 D( B3 q* i1 l2 v
PHA5 b/ X! I# m: G) f9 m [7 |9 @% Z
LDA #$04
4 S! [ n0 }. h7 F3 S STA $80006 R% E* D" l& l2 ?4 t
PLA
+ c6 n4 ~2 h4 B( v; ~! I2 {- E( a0 k% |7 T STA $80010 o5 r7 C! ~9 m. ^
ADC #$016 L7 y: h% D; O5 P+ T( g
PHA6 b9 C$ n* A; ^- g, e R$ g, Z1 Q
LDA #$050 Q, n- F% R5 J) H1 J3 b+ w* j% W; g
STA $8000
% g8 e/ Q' _# h0 |0 T PLA5 G; F* _' U( y9 C
STA $80018 M5 f. t# P0 c) k% q- S
PLA* [; o5 y6 E, d; m: L; d
RTS
) F0 C& M& T5 d: `$ c' O2 X- Y/ y4 s4 @1 r9 m
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|