|
|
;[FC][最终任务mapper1切页程序]+ e, R- U" \, i% e
.ORG $CD9B* h" `$ d8 o! q5 C
BANK_START:
0 F; [/ N* I9 U0 e STA $70
9 g* H0 E5 P. Q$ c& V TXA* H; ^" i; e1 b
ASL
0 z5 R: h& Z) ^0 |( T TAX
, p, { P; i6 K/ z9 F( `+ `PORT_SET:
8 e, q& z2 l% u) h LDA BANK_DATA,X }) n" V& B- u, K% Q- m, Q/ }
STA $6E
u0 q, X. A. l9 v" @( [6 K& W+ t. Z LDA $CDB8,X
1 n5 c! a0 v R* ]9 E8 b7 b7 u STA $6F- z9 t4 E: b" p, h
LDY #$005 h+ J. m& \6 V) F$ C x
LDX #$05: l) }( m; g) F4 k5 i
LDA $70$ ?; f* W$ u2 M1 A
PORT_WRITE:5 H8 A% J! X' G6 K$ Z; [& i
STA ($6E),Y8 q6 W& q* E: E6 p5 m
LSR+ ~% x' m( h) q' f9 {, p8 i: A
DEX! `- b3 }8 W1 v1 b- f5 k' n; V
BNE PORT_WRITE4 |/ A2 ?8 X ^) h7 ~. ?
RTS; {' y( F, C' `5 [7 P2 H" ~7 L7 d
2 c% |0 q/ a8 m" d
, n6 h, j$ t3 ^' X( ]BANK_DATA:
+ X2 `! M3 e# K) i .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF+ m( @5 [$ ?) t' M% n/ g1 ]
. w3 P: ~( k/ }2 D4 r a8 j8 x; e# x
6 ~( l6 w/ m0 a9 s* u
;[FC][最终任务mapper1转mapper4切页程序]
/ z+ g* `- c" G; z+ v: i6 Y .ORG $BFD2 ;初始化跳转: I |. ]. a9 `1 y3 W$ S
JSR $FFC0
. Y4 m4 J* W. m! T4 p" Y$ j
- p$ o8 Q& C% e3 Z* A
- ], ?& ^9 A# f8 X. k1 L! H2 u# ` .ORG $FFC0 ;切页
% m) e" x* Q7 [( H0 \. v. a) g* A LDA #$06
4 O* N2 e9 F9 ~- u' e$ j8 `% i8 q7 f STA $8000: E5 L% a! D& G8 L
LDA #$0E
$ u; D0 ^. n, ~% Z# Z5 N STA $80015 {* F3 ~" `/ K$ ?" w, h2 m! t
JSR $8000
( j+ e# K% S# I0 b) V# y/ O RTS
6 F6 N0 o2 O8 R! K
; I0 b: B% `- |; C2 U .ORG $8000 ;数据复制* J; j+ b5 C. h2 L* Z5 ~' t
LDA #$80* Y p1 v a# q1 h6 v) o) J+ m3 R! k
STA $A001 ;启用SRAM
. ?% t' F) x+ o4 H: Q* o0 _; j* V PHA
" ^0 N$ d; J) V TXA
+ H- L' m8 a7 y* u5 f8 {" D PHA
3 Y7 T8 N& q% _) A% z( E( @6 E LDX #$003 G, \; q: w. B7 [; q* i& I
DATACOPY: ;数据复制
) d0 e% ]0 m7 d# C6 S+ o LDA $8100,X
- \, n. L) l3 ^* d+ r8 f7 |& l7 _) [ STA $7200,X
$ f9 Z! [; [" I9 E INX; B% u; V5 R* O
CPX #$00
. S- I; F+ i5 B1 O BNE DATACOPY
3 X, B# b0 |" r PLA
# H+ Z; {3 l, k TAX
A- r3 T1 F2 J( A) j PLA
$ c3 F( q7 d( c7 U) S- {! @ RTS) C4 L6 q; q& ~0 q7 p. `3 K
, Y4 m* E- g) e* Z! b1 u .ORG $CD9B ;跳转到转换的切页程序/ b! A R0 C* X9 s
STA $70
! Q% j+ P8 I) t5 `+ S' l. G JSR $7200
+ r3 K, N' m8 O2 h, U# @ RTS4 R* G0 F( a; c3 t! R. l
+ R0 r, a1 ^4 }' A .ORG $7300& t: ]7 I" q" l' [5 `# f
M1_TO_M4: ;切页程序% g8 K. e" ?2 j9 E
CPX #$00! ]: N! z6 D' `5 f/ M
BEQ REG_SET
0 y( c" S ~& Y [- M CPX #$01
* ]4 }3 g y2 ]* E0 b0 \; Y BEQ PPU_BANK_00002 N Y* ]* H) ^6 i, T* Q# L( N
CPX #$02& {2 x' Z9 z$ G- ]( Y
BEQ PPU_BANK_1000/ y. ]2 A t7 l; f- ?$ h% @
CPX #$03
4 j! _7 C1 }% k BEQ PRG_BANK! D/ ]. W8 @8 Y) J
REG_SET:! |# z6 ^4 A: {
STA $A000, Q2 S4 n- c. o6 d3 N- y' L) w
RTS
6 f ?9 J; M: w. `! |3 E- a; S$ b .ORG $73205 I. I2 Q7 B6 \3 K n
PRG_BANK: ;PRG切页
9 L# ?8 o5 E, `' s ^$ s% v PHA
7 z J4 y: S5 g LDA #$06& Q$ G% s0 L3 R# W4 v: B
STA $8000
7 x: Z. A% O2 s PLA1 j; E# Y/ U' g. f% t
ASL
# |$ l' N; [$ f6 u& e STA $8001, p j! [; t9 ]7 V/ ^
ORA #$012 D2 p1 p$ q+ Y
PHA1 k) f! t4 z$ s7 x; x
LDA #$07+ F6 @$ d6 J7 Z0 S9 I, S5 X& W
STA $8000
; V& O1 D/ m" r PLA6 _6 J0 w3 }/ }/ Z$ k( R
STA $8001% n: J' ~) t) r) F
RTS
1 ^: K8 I$ e6 t% j0 T# K$ ? .ORG $7340
4 N" H( }1 I- q! `, P6 I+ D% DPPU_BANK_0000: ;精灵切页0 a' l; p5 x4 j
PHA6 F& @9 P# B* E/ x) f# n
ASL
9 x l y; E: }5 W ASL/ S% O; e9 u9 v% _* I4 E/ w
PHA) }* H, q7 Q3 C" [. o
LDA #$00
1 j4 d) M8 \8 J- z STA $8000
/ n! V" t' s3 t' E PLA
/ y! t0 f u6 N4 c2 _6 n+ W STA $80011 `4 ^8 {( s9 \
ADC #$020 R8 v0 R5 h& P4 P& X! P
PHA, V: V9 v7 H. c0 t& j9 x
LDA #$01
8 [1 Z0 x7 C( x& f9 U STA $8000
6 f& B; M; `* Z$ T9 [) U PLA+ H0 g4 `( I$ m" i6 W
STA $8001
0 m5 q: o0 ~4 n PLA
{# C5 Y- Q* E, e% ] RTS
9 p% D9 d, }5 [- j! ?% s ! U; W) ]' I7 T! W& M+ y p
.ORG $73603 Y7 D( g6 F7 O/ a" h- O* N% ~
PPU_BANK_1000: ;背景切页) U1 C+ ?( q4 d! I; r
PHA5 ~8 T6 W/ ?) N& @6 N U
ASL
: T2 L5 q" t7 r# g ASL
* f3 g9 N* n+ M PHA" t) b# e" O1 K1 G
LDA #$020 X/ R' z- i4 G W
STA $8000; @/ q% ?5 D4 {
PLA
7 v( P' S- l# `: @2 { STA $8001
0 d6 k* p# p) }& V- U ADC #$01
+ ~1 t+ V# g6 c PHA9 ^( Q8 n( P6 }6 k! X, S& s
LDA #$03
$ y% z; v) I/ J/ g5 u. ` STA $8000
' j" B8 Z6 t% N' \0 `. z5 j PLA6 ]6 J& m. @) k
STA $8001
. r8 x2 d/ k# B ADC #$01
0 k$ ^( w. U* {+ ?) ~! i PHA
' C1 m5 w5 E. I1 C% H LDA #$04+ H) @4 a! G7 H
STA $8000
! W7 T0 u& W2 m! S( V PLA
. H8 n/ Z, a( L1 I. b! A/ z: Q STA $8001
/ u, H( Z' I D* [* f, F6 Z; {9 R ADC #$01
7 h+ t2 n {+ h& Q PHA# f2 ^/ K8 E1 P9 W& @4 \
LDA #$05& O" E3 n$ s/ _' \8 B( m# n7 B
STA $80001 B) n' I+ @3 C3 E6 Q+ O5 p. a
PLA" D1 m2 v6 l0 X8 b, o) w
STA $8001, U0 H0 S. F( }$ a
PLA
7 g/ w: F5 s, n. ` RTS5 \0 P$ T/ d% @3 l$ `
$ e( {2 C0 U. h9 q: `! y |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|