|
|
;[FC][最终任务mapper1切页程序]
( ?7 ]8 k; k$ m3 v. K .ORG $CD9B
5 s( F2 B4 H, T+ k" c5 s$ M7 VBANK_START:
/ C2 S1 }3 K2 X$ ]2 [) J1 K" { STA $70
. q2 B# W$ i( W2 i+ n% l TXA
# r4 G/ h. T/ A: L* L' O+ Q ASL: i D1 J# |( j/ w. | b7 }" {# [0 j
TAX9 l) [ i) q4 [
PORT_SET:, c0 C- c5 x" C' o0 p( a$ D: }+ T
LDA BANK_DATA,X
1 K8 s- h' t- ?% ~& } STA $6E( A8 C7 {- w% H' ?+ K% I
LDA $CDB8,X/ j, N# Y: O0 O" c/ R& H# g. U
STA $6F
$ k3 T9 H7 r4 s LDY #$00 S& }. T6 g% g; x& V3 |
LDX #$059 V, ~ D# G* @
LDA $70
. m! r) a" h2 x, x# V0 {( HPORT_WRITE:& q/ |, R' W% x H+ B: P$ o
STA ($6E),Y* P2 [4 p# y$ Z1 n% q8 |
LSR
" S# G- \! F, Y& J% d2 X9 K DEX" K, }) {& o6 k b$ q. D
BNE PORT_WRITE
! D- [8 ?7 `0 V RTS
+ u3 M4 K# g7 o4 P! x' ^ ^ " M" ~+ t/ @. l5 O: _- S
/ \7 b" ?5 [/ ZBANK_DATA:; J* U0 w, D( n
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
2 ~: Z) W$ s: m& p t/ u
Y8 W3 R6 t, N2 @. P
( R2 U4 I, O( V;[FC][最终任务mapper1转mapper4切页程序]
8 W, E6 d+ X7 h1 q0 F9 v .ORG $BFD2 ;初始化跳转- ]' _$ C& U2 Y$ W( b- ?6 R( o7 g
JSR $FFC0
+ k! t6 V- A. ^3 S
, Q% t9 q. Y- }+ T
& E1 i- e- d/ E6 j g8 [0 B' n .ORG $FFC0 ;切页$ O) {+ F( w8 i* \0 I- ]" J
LDA #$06 c# N j! z v+ r" x: ?' d
STA $8000
' U e; _6 R, ]% D LDA #$0E
q" }% u( ]8 d. ?2 y STA $8001. [: B2 F0 G; |- m& g
JSR $8000( x# @7 A( H7 g( k
RTS * D/ P0 i6 k' c% l
6 B! ~. E6 a/ {6 b6 `2 S1 j4 @1 k
.ORG $8000 ;数据复制* Q( R! c8 T9 Y/ N
LDA #$80
" L# q M: \- z" a3 [+ N* ^6 h+ P4 r STA $A001 ;启用SRAM
3 [2 T& W" Q5 _+ @ PHA
1 X1 S, `3 X6 V: H7 o TXA
0 [) U) Q9 s2 T9 F* m4 s PHA- _; F4 k _# w3 S3 t) W. S
LDX #$00
5 f" j/ _: i* C+ J/ rDATACOPY: ;数据复制
+ m# d$ U; L$ A- \! [8 U% G& g LDA $8100,X0 P0 x) e, K3 G- h* }' \/ N
STA $7200,X' I, Y) |' e$ {, d
INX
/ B p6 b8 R# R8 j2 A CPX #$00
2 j' h6 u0 X) w. e* }) O BNE DATACOPY
% [0 i e+ t6 q0 \& f4 H+ ^" W PLA
% |3 q& E M0 t7 V- h. K0 U% E TAX: P8 y2 \ m" o4 q3 c% }. O3 ?
PLA
" d- ^: R: F# p! k m6 o RTS4 M! p+ x8 J+ d: i8 Q q
+ G' ?6 O' W8 ^% F9 d6 m
.ORG $CD9B ;跳转到转换的切页程序- D% S' a2 y6 m/ x
STA $70/ l! q$ Y4 r6 O
JSR $7200
- Z) u1 Y4 E d+ s' [" ^ RTS
) @% T- G2 P5 K$ Q, I/ k3 K ) v9 J' c5 F* b" r9 e! {* U& x
.ORG $7300
8 A6 v# T. a8 z6 O- r+ U$ uM1_TO_M4: ;切页程序' V7 l7 u; V9 }. C
CPX #$00
) F; G' F- M' i& G: i3 U, F6 [ BEQ REG_SET
% k4 [$ [( R6 l" b, Q: e CPX #$01, `( S( a2 N; H
BEQ PPU_BANK_0000& i u3 y, u- |8 F3 i; \4 A: {+ K. H
CPX #$02% k8 R1 M) i- W! L& Y$ Z
BEQ PPU_BANK_1000
& r2 m+ D: ^9 X U0 r CPX #$03
; [6 o! {. a! V. }- ]3 S! g( z BEQ PRG_BANK; C) \# l, x6 f# ~" @% k
REG_SET:7 i; Z% K) D/ Z; B
STA $A000
# o+ x0 }3 b2 R. ^& b RTS
. ]1 t# g0 |1 ~4 i. B) s .ORG $7320
7 H* s+ h- {6 uPRG_BANK: ;PRG切页% f. q* `% K! Q( H1 `
PHA
4 N3 }/ E" b& @( P LDA #$06$ ~- o% J0 n, l" s
STA $8000; G, C3 X0 q. d; M; h& h m
PLA i& ?+ |2 a6 C2 ?& ?0 M
ASL3 m+ \0 M/ G. H
STA $8001
0 ]1 H2 ]! r$ l( N ORA #$01
1 a W1 w! Y- ~" u, ]" I PHA: |' n2 Z ?' ~7 o
LDA #$07% x3 ~) J# R& Q, P, n
STA $8000
0 w$ R' L' J: P6 h/ W% a PLA
! {1 D9 K& Y z& U6 W% E STA $8001
' ?& n" U7 ]9 r* L- b+ {$ ? RTS6 m& ]3 Y6 _- K, z
.ORG $7340& I0 P) H& k! W! U4 J* \
PPU_BANK_0000: ;精灵切页. x# v0 w! v0 W# x! v [9 e; X
PHA
* c% X, D0 e1 A+ i# S6 |7 b) V ASL6 Z, e8 z. y# O! l+ g! `7 a" @
ASL
v$ ~( }$ h/ O9 ]8 [9 N1 B/ ] PHA$ N( H. S! b( ?) y/ ]+ [1 Z
LDA #$00
V1 ?8 o, B2 N& Y Y9 O( F STA $80006 ^2 \- G5 a9 @
PLA
! l! r T) l2 C$ @ STA $80013 A, W3 S: K) C) w6 K, i7 i
ADC #$02
2 _+ v2 M4 } @+ H. E3 H1 b PHA. W w$ h) X( l( ~& K& C6 f2 L& J! o
LDA #$01
& l" E2 i$ Q' ` STA $8000+ |0 d, c/ g) P! U' R( M
PLA
- |* p3 G Y8 |# o+ S STA $8001# ~: {+ v- ?; K9 X- ?
PLA
; ^ M1 h( k1 b a- f$ U6 t RTS
8 S: ^! P" d' F7 N; }6 y# ]. d
5 z9 O W& a1 |8 W7 H/ D9 | .ORG $73600 Y, W. F: Y0 F( B* \3 p
PPU_BANK_1000: ;背景切页
" l" w1 t; t1 g# j6 v) Y9 a PHA
" {/ B `+ g$ q6 ^9 U+ y" ]& ~' ] ASL
$ f) T$ m" H" ^5 ^+ b j8 u ASL
9 g. Q- D- ~- _& v1 E PHA6 P/ a3 d) H _9 i
LDA #$02. v6 ? K! n% D
STA $8000# [2 H5 B: O# Q6 S, s4 v! p I
PLA
5 f0 b+ H3 C5 D H- G7 E STA $8001
& I- q6 g4 \4 Q" G: L, J' o- o5 s ADC #$017 O: S3 D) N' Z- `4 _
PHA
0 x+ j+ g7 m$ |+ I& r LDA #$03
& T: I, m: E% a3 |: |( l STA $8000
! @! h6 T. K5 Y9 z5 _7 h: E PLA
2 z& ]6 J8 e5 k7 i) K" m& S2 ` STA $80010 A& C& I5 f& R0 b4 M
ADC #$01
! \8 t" t! p1 u PHA
( H$ E8 s `9 }( l3 q+ o$ _5 n LDA #$04
: D: o2 W7 w" Y, I4 N( a. P5 ? STA $8000
) u$ k! |# r6 U8 o+ f PLA
6 g' C6 E" k# z# F. V. h5 x STA $8001
# S. a* x0 Z6 U8 D ADC #$01& A5 y2 d) {4 {* C1 F. ^
PHA
+ M! s! q. a9 e E LDA #$05% \ m$ w: u2 @+ D% e
STA $8000
. ~! {" N& T6 ~4 W+ F4 g4 {+ F: ^ PLA1 u& |8 E& t# p6 ^1 _1 F
STA $8001" u. ?0 d4 |6 H |% b; Q
PLA8 m7 {' H" G6 o2 d
RTS D7 K( D- ]4 b* q7 S" n
1 B, f4 r0 i6 T
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|