|
;[FC][最终任务mapper1切页程序]
9 B( ^0 G4 I) n- p* T1 l3 l+ v .ORG $CD9B
- C+ ~0 |; o6 n7 i' dBANK_START:" G; K) i4 ?- |- D. g3 E
STA $70
1 g4 @7 y0 p. Q1 B( U TXA
7 i5 T: }( i: x1 t* P( ] ASL
P/ y% r. |4 C7 x/ H0 m @ TAX
2 N6 g0 f+ P# u! y/ APORT_SET:
- D( Z1 |' @" O+ z# ~! Q7 a/ {5 D LDA BANK_DATA,X
" Y2 @4 f3 B/ B# O, p0 i STA $6E) B$ ?& ?1 M/ I2 u6 J4 ^2 F1 f
LDA $CDB8,X
; Y* O/ ?$ m( w& I STA $6F( `9 ]2 U0 G9 l: d' @1 n
LDY #$00
$ M! U( [! D2 f3 q% n LDX #$058 Y0 H w3 T" o% b8 g; o# C$ j. I
LDA $704 d4 X. E2 ~* A$ @) N2 g
PORT_WRITE:4 T0 _( e/ l: |# p3 d- U2 Z: A
STA ($6E),Y
+ G! }2 K1 {) G2 f* E0 p* ^: }" G LSR+ ]8 k1 l* o8 A, S; `* w5 m2 _
DEX
4 J# P8 n1 Q/ X# m/ C2 E BNE PORT_WRITE$ W7 s, p6 v) b9 H' B2 y6 O+ E
RTS
$ l. n/ V% z2 c3 p" V * Z. @! ^: I y6 ?
3 M4 G" u7 l& hBANK_DATA:# r8 Y8 W E$ R/ b, \% }: D/ H5 t$ `
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF+ O" G' I N1 o, s" u
$ ?3 H& ]# z% z9 |, c " @- S0 O+ W1 ]0 I) ^; l
;[FC][最终任务mapper1转mapper4切页程序]* E! D: X. C) M7 n) Q5 J7 O
.ORG $BFD2 ;初始化跳转9 U! K y0 o" _9 Y' a
JSR $FFC0
* R: F* Z+ r. p& m. g) c# k4 ]. P/ t& b2 {& _6 K2 j
' d3 t. N% `- @. \; p+ T .ORG $FFC0 ;切页2 B5 d0 I, h0 p. v4 f; y
LDA #$065 E4 I A% N& E# |' g( `; _8 ]
STA $8000
4 y9 U2 Z& S: e5 b' I: Y4 R LDA #$0E
$ K8 [" W/ _/ {9 G) b1 @ STA $8001
8 i- T. H' ]+ f0 ~! x- D JSR $8000# V+ q) A" c7 l! G7 M
RTS $ [1 U- E3 V8 D2 F' C3 X7 V) m" ]" n
, Y8 W- }; V. l& z- U/ o% u .ORG $8000 ;数据复制
$ l/ \ a" h" y- Z* g. Q) f( o LDA #$80
( w5 U* u0 o' a, M; V+ W STA $A001 ;启用SRAM
! c5 f7 z& L0 j8 }0 t7 {, v o/ m PHA" q5 F# x8 |# L [. g4 G
TXA- S; J; l% c. X9 Y @
PHA( ^1 z; w! ?! j" X; s( M
LDX #$000 b7 o; G3 ~' l7 X; r
DATACOPY: ;数据复制
# F: n7 j1 E$ E/ G. ^2 Y& i/ f. x LDA $8100,X7 N( v( n7 V& U! r; t
STA $7200,X
3 l# [: @* @5 O" y. x INX% z' j, q! }% J& L. e* G
CPX #$00
: T% A: z. K9 P0 P+ ^ ` BNE DATACOPY
$ P, n& ~5 c" m1 e! v5 ` PLA& @5 Q2 c& U2 |4 D* K
TAX
- L) Z$ {; K' G3 ]+ c PLA
* Y: M3 l; q1 k- K( i$ c RTS
9 n, j" S- P7 U+ l 8 X( U$ h* ^9 R( S4 q: s
.ORG $CD9B ;跳转到转换的切页程序
: D/ t8 Z2 \9 F* M! I# b: t; K STA $70
6 v3 O% T( \4 | JSR $7200
# Q- K3 N+ ]3 r* `. y. ]: L& V RTS
5 ^7 i7 N: Q' u8 i, W0 G) E
& a% S$ I9 R: \, }4 _. S .ORG $7300 R& D' X- H) H7 _& C; ?5 J$ A
M1_TO_M4: ;切页程序6 h x7 |+ G: K7 Q T) v
CPX #$00
* C8 u$ i. O+ T0 l BEQ REG_SET+ S9 I- u/ t$ }: i% ~" a) ~
CPX #$01
5 [2 U+ @* p; e5 p0 ] BEQ PPU_BANK_0000; m8 R6 Z" I2 E p7 S
CPX #$02
/ A, U; R, B, X5 Q8 V% [ BEQ PPU_BANK_1000+ ?' z. }; Z+ o
CPX #$03
* X w9 {. p- A5 W, ]9 _1 K BEQ PRG_BANK: F; b$ N" F0 w9 J/ p/ T
REG_SET:# t- `% g2 E- s' {
STA $A000
+ U6 l3 b3 ~& Z$ a RTS
- ~7 b2 c. E' P8 _) _7 S% g .ORG $7320
7 B l& h9 Q& M E1 p" NPRG_BANK: ;PRG切页) {5 r, k; n" }
PHA
# a/ t) Z$ k! s" V1 M LDA #$064 F$ a A: v" J7 I
STA $8000
# ^- k7 O, C% U& E; S PLA5 `' {) S3 `3 K+ T" n# y
ASL' x9 H. B) K0 _$ s! c, _
STA $8001
9 k, ^9 V6 N% q- p ORA #$01
3 q- h6 ?5 r/ i6 i PHA
) t. O9 Y) @* M' r0 T) D9 G$ W LDA #$07
5 p: t5 E0 r8 I$ [/ z0 I, @ STA $8000' X$ q7 q/ B6 l6 c0 A$ ~5 D
PLA7 U8 }3 Y& @0 w4 B* R
STA $8001
$ Y6 D$ b! W/ v5 U$ p" \0 W" b6 E, j RTS! \: E4 j6 Q* ^ X* L
.ORG $7340
9 k( X1 m; g) ^ z Y4 b: M1 T0 SPPU_BANK_0000: ;精灵切页
9 x% A9 ~( W* d' J PHA; B+ g ]1 O0 l4 b6 \
ASL2 H6 e: }3 n' a4 h6 T+ c
ASL
" D0 G- o2 O% \# G) s. U0 O' q PHA% Q5 |4 V) M* j2 [% I/ _
LDA #$00
% t- B" t9 n- r; x. g2 z STA $8000
9 {) \- L) A+ I, b PLA
) E6 C4 V8 P" T$ v5 ~# E. K! @ STA $8001
8 f9 Z4 N4 M( v1 R. \ ADC #$024 Z V6 Z/ M. c* C2 P. J% [
PHA
7 N& X' t. V+ N( T LDA #$013 z4 k2 q, V( k5 |3 ?
STA $8000
% K8 H p+ X9 E% [% x: Z/ C3 M1 M PLA
& Y$ X& |, u9 H$ O* p STA $80011 N. d- v' X* e+ h2 u: A
PLA4 q/ W6 g* p3 r; W
RTS3 z# P$ x. Q+ ]% ~
; [: L6 y, p! ]( j) I. K; G
.ORG $7360& W7 c" T+ f Y2 Q: C
PPU_BANK_1000: ;背景切页8 n( a1 N6 v+ ~/ K3 ~9 r: y# F( p- q
PHA
4 [( t8 F3 {; o# t* v ASL
6 C3 }# y: {" S' c ASL6 u8 _: ^. e' }& _9 |+ s
PHA l. [& W% ^7 V' i9 r8 n
LDA #$021 M5 T$ P0 O% j" @2 m9 _8 s0 B
STA $8000
; A5 _: f0 \' W$ D PLA2 K' }& Q9 H3 g
STA $8001! m, [# X' a1 X5 `. s
ADC #$01& S- B7 t. M" f* |' V; n* S
PHA* p3 _! U( l& p8 `5 ]
LDA #$03
4 y% K2 G1 @% b7 M STA $8000
1 o& g' k: R& S PLA) X; E* ^) e n+ H
STA $8001
# F4 a" C9 n5 J/ N ADC #$01
9 `% f7 y7 v, \' X5 ?; C PHA
" l' Y$ z# i4 ^3 o- ]3 e( Y3 O# C LDA #$04; V" M6 e# ~% U+ a, n4 h
STA $80006 f4 O6 i, l8 x0 X
PLA5 h- L4 ~ L. c- S) V8 n$ u, g% h' k7 A
STA $8001/ f& e4 S9 p. z( B/ @& }9 t
ADC #$01( }* @, N% ^+ `- Q p9 B" R' S. j
PHA2 _/ {& t4 c, T! C6 Q$ Q9 Q
LDA #$05
9 ^% H o$ ^* D/ p$ [+ E; ~; T STA $8000
* j; x3 F3 f/ O m- |3 r- l. F- e PLA
8 g( r# P) b; d1 P STA $8001
/ L6 V! N( y- _ PLA* T/ \1 a4 Q$ `: o8 {
RTS% A# u$ O2 U T: t' r
5 k' j3 }+ s# o* G+ i
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|