|
|
;[FC][最终任务mapper1切页程序]# Q( l. M' b$ c* W, }
.ORG $CD9B& V! A; W: d p, T2 F" C/ P
BANK_START:# ^7 X2 B1 v4 P8 r* E
STA $70! ]+ ^9 p5 n+ |
TXA$ o1 E( p+ H; M
ASL
! O. E: p' d, H TAX# U- f1 \& c3 K' j# \; I
PORT_SET:' u1 T/ x! ~- U0 W1 q6 g
LDA BANK_DATA,X* M0 W% l7 [( W+ D& K f: q
STA $6E( Z$ ?, g! `, ?4 O& T
LDA $CDB8,X
. K9 X$ i2 e( l2 r5 h# X# | STA $6F
W( {& @. R( g+ c4 ~ LDY #$004 u# f! C E& k0 W$ N. M' _! H9 g
LDX #$05
5 d, {' `2 ^' w+ n LDA $70
+ X- r3 ]" a/ N) ?4 F7 vPORT_WRITE:
0 ], P& ` }) P7 ~ STA ($6E),Y
# U8 a) P4 T5 ]" Q LSR
1 I, n3 U1 ^1 m1 b DEX
& z. e4 }( X V: J% Q+ x2 _9 x BNE PORT_WRITE
$ x4 g* p7 f% v. H/ n RTS6 J' L9 q+ d& {
2 G7 O' v+ j) }" J4 R
1 u3 h( ^$ ~; HBANK_DATA:
) R3 ?- s2 e1 h .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
- U d$ r, D2 Q7 j; Y5 t' S
( b6 W! r9 j- G) r ' a: o+ v6 k, T% B1 n, t+ j
;[FC][最终任务mapper1转mapper4切页程序]9 _7 R" o. _/ q3 v6 ]
.ORG $BFD2 ;初始化跳转: p5 ^% S* F* m- G
JSR $FFC0
. z& _7 L( ?1 Y) A% T- q# Y7 V0 s8 I1 S; I& i
! a! b: b- G' d$ E. E. ` .ORG $FFC0 ;切页
8 ^8 T( h8 i* d' o" g LDA #$069 Q0 `3 V- m5 |+ X
STA $8000; e. |; P$ N" n; C9 l
LDA #$0E# W# I r. c; \& e
STA $80014 h' \. Z) e0 L: ^+ R) V3 \* J
JSR $8000
; r% K2 F% t& z RTS ; _; @2 `! t: e2 P1 q% i
" x/ E, f8 \; s/ y9 }
.ORG $8000 ;数据复制. J, `" m H+ V
LDA #$80
: Z$ b2 u% U$ g! Z6 u: q* h& a STA $A001 ;启用SRAM! Q) r. _; r3 _
PHA' ~9 t. t) B) u" v3 j9 f% _* B) z
TXA; z! j2 u k9 r3 d4 X: M
PHA
2 a4 M! G; s8 ~1 V0 j/ ] LDX #$00
$ _3 J; ?; K5 R3 z ?DATACOPY: ;数据复制* w* A$ _. z$ z6 g: u# c
LDA $8100,X( C0 z# B; ` w5 O6 l
STA $7200,X
+ D/ e( o* j& p8 T+ E INX2 j! F* [7 r, W7 }' `+ y9 p) W
CPX #$00
) n v8 }. z: d! o: g( {+ ? BNE DATACOPY, e# ] }# T4 D9 c/ S" A e2 O
PLA
[3 [+ s% S( y' t4 i# D4 X0 B TAX
# ~, ` B D% h( ^7 t PLA+ _4 f8 Y! }: ]. G0 \6 J
RTS
) h7 r; g! t2 v) q 7 E% k8 V7 v3 X5 V
.ORG $CD9B ;跳转到转换的切页程序: J/ {* F4 K6 M# Q4 w
STA $70
, i0 o/ e0 N Y$ | JSR $7200' p! _0 i, |1 M1 m8 ]' w
RTS
0 g9 \4 n3 h! Z" w! `
9 f3 ?3 `. e# c* m .ORG $7300
$ _% N7 U) ]0 a$ OM1_TO_M4: ;切页程序
8 ^4 e1 V; b; k0 o3 K; a CPX #$000 E! j8 S" E8 j4 a5 b# I% f
BEQ REG_SET
9 H) B, X- W, l$ O9 }7 c CPX #$01
9 X5 P- B% e0 i+ Z BEQ PPU_BANK_00005 N! `6 d8 B1 H7 L
CPX #$02
0 M3 e& v) s q BEQ PPU_BANK_1000
. o4 u8 Y* m s CPX #$03
: d. U0 u+ r7 G2 @( k: Q BEQ PRG_BANK
" Q, S& `9 ~7 y8 y6 dREG_SET:! x' I5 w/ p3 K' G( X( n
STA $A000
! i& l& ~% Z4 o) G! B; Y RTS1 X" Q" n1 x9 o; E
.ORG $7320
- m: C4 W7 c7 _6 }* CPRG_BANK: ;PRG切页; Z) j- O z9 W- w0 ?3 j5 T, |
PHA
% F O4 W0 y; X. z: s8 n7 C LDA #$06# }' Q% D3 H% O* l9 |: @! {
STA $8000
4 o: X6 V k& |- X* _5 t' y PLA
* O/ j* ?4 ^! l$ U5 Z# U$ y) L ASL
& c4 U& V: V* g, T9 e1 S STA $8001
' u7 @& t7 D# o# N) ^ ORA #$01
6 S [9 v9 p: I( L3 j PHA
6 j/ n3 n# `0 ]# Y LDA #$07
0 l2 {' w) t; Y* S STA $8000! b) `' Y( Z5 ^4 V p
PLA6 S* V3 w: P, G ~
STA $80017 R& n6 Y- n% I: ]
RTS/ w) A% k! N( S* x: j" N4 b: H
.ORG $73405 U" j" \) }; `/ ?! s6 H
PPU_BANK_0000: ;精灵切页7 R# O$ a) h+ i \) Q: Y, l
PHA
" F: K# p2 G+ |; |$ Q$ x/ u* \ ASL7 t$ @) r! w! X I" _
ASL
0 }, E% A0 P- y& H2 e, a PHA. ~7 l. o d0 E: r
LDA #$00
4 ?; @2 x2 b7 U1 b- U" y: r STA $8000
, s" [9 E7 O$ \! G" d; Y2 U PLA
7 K! j8 Z2 U& G* _: s/ P STA $8001* O2 R- p/ U7 y8 X0 m
ADC #$02$ D% ?" R. g4 ?5 N9 D! `# q
PHA q; o/ Z: z$ U' z% k5 S
LDA #$014 u9 B9 A. e7 ~; C
STA $8000
! h! T0 x3 m4 |. {7 V: m: X PLA9 W& ~( N, {0 |2 o9 Y
STA $8001
! d$ p8 X/ T$ A! R3 n PLA
* |, U( l" o$ }0 _) V/ `% n RTS4 O0 u; `* q8 ]& ]: S9 H
8 Z- Q4 c, q" l .ORG $73602 Q& `( `' I, j& U- L6 w: J
PPU_BANK_1000: ;背景切页/ g5 G3 v3 G; \. b0 V6 B
PHA3 H2 a- ] E( E& |. j
ASL
+ J& q( H5 m# R ASL: S" A7 R6 l, c! S
PHA
$ B1 O1 y5 U9 ?4 I1 @1 ] LDA #$02- @( r4 ]/ ^/ q. V ?
STA $8000
- ^5 |% [8 X4 ? PLA
5 I+ Y3 c5 Y( {2 D" g3 a. t STA $8001
: Z2 I4 l# L. u5 O9 I) t3 f1 P ADC #$01
% J/ L9 a7 I; s+ _- \+ s PHA- B/ {* Z1 A3 e; q* E2 q0 I/ J& F" u, p
LDA #$03
; D( @' T) o t6 n) ~ STA $8000' g8 y. B! ]4 o: J
PLA3 ^1 u$ V8 C+ R; M @6 J/ `
STA $8001
9 A) z! ]5 R/ \- _7 A+ j ADC #$01
% f! X0 c9 v' D7 `' _. @5 v PHA
! R. _4 b. b. {! w9 H9 G1 M8 ` LDA #$04/ ?9 C7 |' y: ?% m7 Q" d9 p: l0 a% q: g
STA $8000
5 U I( C' o* `. I1 u1 s PLA1 B$ Y1 }6 z( V- k" U* P
STA $8001" r0 {" a& M! U% R$ J L
ADC #$01$ Y7 o/ o0 _9 _1 \2 U; I
PHA4 b8 f& G/ V2 p) {
LDA #$053 J) M5 `$ C5 K% }/ s7 s& r
STA $8000
! h, [% h( v# e7 d# s. a PLA: F9 B' K( T D( R, G
STA $8001
: s3 d0 E* L$ }% x* @ PLA
" C1 u, A- T Q) e! b" T V8 T RTS: f( F9 u: [/ M ~- ]) _
+ A3 H( N) l/ S) R
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|