|
;[FC][最终任务mapper1切页程序]- k# U# q% o* n9 [" s; M
.ORG $CD9B
3 c3 ]! W6 r& _. w/ T1 I5 Z# S- Q" VBANK_START: g; _9 N; V$ D$ ^) o; X
STA $70
) c& |6 v" Q ^ TXA
6 \1 `; n( L( f. P" D8 _ ASL+ a! P# _5 c* ^3 f2 k2 h1 R7 s
TAX/ e! e1 }) `+ g l5 `
PORT_SET:5 X3 T8 B5 X! S% G
LDA BANK_DATA,X \" ? D9 ~: X2 ^ g
STA $6E
+ J: K$ v3 ?; C8 M* }( u LDA $CDB8,X# |1 ?% F5 [6 Y5 }0 K2 Y. i( R# G* ?
STA $6F4 I$ f- s+ w4 c, i O6 H
LDY #$00
% a/ ^- \- O* S+ K LDX #$05
" J! \1 J- a- H& f0 ^9 _ LDA $70
- ^' o4 A0 h- t& [PORT_WRITE:
! C) S- y7 {$ r STA ($6E),Y
( U7 d8 y- l/ W- Y+ b. z5 i LSR
% ?1 S6 H) S7 y DEX; r! x! c) Z4 c+ M& ?8 m: H3 A
BNE PORT_WRITE
2 |5 J9 o; K% [: G5 v RTS
) f) c' ^( B1 x: }7 u" ~ ( k& h" S6 U/ p+ f6 H, S
8 n7 Z- {8 Z1 z. `! wBANK_DATA:6 y. l, v& E$ X# V
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
# G1 n# D; o; D7 {: i6 N I, e! l 4 h: y% w" I0 K. ]0 p' k
/ A; b$ K5 X+ J: x# q1 L9 }3 Y
;[FC][最终任务mapper1转mapper4切页程序]! u7 {9 T Y1 o7 f; J
.ORG $BFD2 ;初始化跳转
) u& m. g. K. p JSR $FFC0
# f# {5 w, V! M- G4 E2 f
% `8 ^6 Z: z/ |8 t3 V3 I8 Y
: ]& m' ~3 v' V p .ORG $FFC0 ;切页
- [9 S* F# o1 I3 f* k LDA #$06* {3 P+ E( g6 B# o: m H' f
STA $8000; Q: N8 [* O9 ?- N& D
LDA #$0E H6 ~8 ^4 D, k! v0 M' x7 I
STA $80015 u! n/ ~+ W! _6 d y' o% b
JSR $8000
: [0 J1 A9 i8 |& L. l3 A5 x9 u/ v& m RTS
( J" B9 K! ?$ Z) [( _
& B9 E+ X) V. h7 i5 _+ | .ORG $8000 ;数据复制
% e G, \8 q# k- k. f9 Q/ E LDA #$80; Z' @0 x( ]& g7 U5 H! v% }
STA $A001 ;启用SRAM- V3 K& m" h; y+ b0 |) q; n
PHA7 a; E# w% x9 S! p+ y
TXA
4 {! [) R Q( q% c PHA
4 v# e+ B6 w; E: { LDX #$00
) C0 p' Q+ I7 N- MDATACOPY: ;数据复制
& C7 f( M- d- r9 _: s LDA $8100,X
- f9 D6 m+ Y6 N( |/ G' Q) u3 m STA $7200,X! X5 J6 @2 G# W; w
INX/ \" f6 ^$ U5 s- z
CPX #$00
3 N! r, M3 ?+ W* S BNE DATACOPY
6 h- g, |1 M$ G/ `1 | PLA: G1 d% V% {& n# @
TAX
3 g6 U2 m8 H- {$ \9 \" y PLA. T! m4 N- |3 o% }9 _
RTS
3 r4 J4 _ T$ K/ r
3 u, V1 S) g, y- D .ORG $CD9B ;跳转到转换的切页程序
% c$ ?9 R; w, {0 f a! j4 y STA $70: L' ]6 t; m! K ^7 y& B7 ]+ D: O
JSR $72003 S) [5 [% I1 ^
RTS
0 E# \2 e, l, P ; p- @- ]5 @$ I
.ORG $7300
- n2 Q8 d# N! w) R! lM1_TO_M4: ;切页程序5 V* p( d7 R3 ]
CPX #$00- V9 Y8 Y- T0 w
BEQ REG_SET
: W$ [- F/ ~% l; q% m0 v+ V CPX #$01/ N: j$ N' D6 Z8 |5 s! F
BEQ PPU_BANK_00008 b+ _1 T3 `8 H5 K( @
CPX #$02, W" A6 b7 L- `: b, C1 B
BEQ PPU_BANK_1000
. i6 X) L" Y6 Y& B5 H0 x$ ~ CPX #$03
2 p7 A- t) d, q3 k0 N' @1 M1 | BEQ PRG_BANK/ r8 D: \) f7 b* k8 y
REG_SET:3 t' U- w; B/ u5 S. Q6 c) o
STA $A000
- ^3 {3 }( v1 U g0 Y; F RTS
* x' k3 ?1 |) b7 M) t6 _* e .ORG $7320
+ ]5 L! @: N+ N/ j% X) `PRG_BANK: ;PRG切页$ P4 u, R( W' r8 n7 |, k
PHA7 O/ m5 r, P& I( V6 |
LDA #$06
) [1 l* V# O$ ~1 U STA $8000
! s; ^2 o) R" O$ d PLA
3 o4 z4 K! T; V2 {8 Z" } ASL: m q% s5 x3 [6 }# \6 Q* a
STA $8001/ k) q. w, T! u: g( l8 J; n/ a
ORA #$01
# L6 [! M' C* c1 F) T PHA
# Y# X& k% I4 {7 u$ z LDA #$07) J8 C5 V" O4 ?. }1 X1 f, f2 K
STA $8000
" J4 l8 `3 I. b- Y PLA
4 y3 |& }7 F0 Q STA $80017 g+ |. R- N! Z9 W+ ?# M. R* ?" s
RTS
% _8 J# ^5 `- t" l8 g .ORG $7340 R' f# V5 M8 ^
PPU_BANK_0000: ;精灵切页
, G+ o \2 E: v' y PHA
% P) C! u7 x- i, U, e7 X ASL
. [& ]$ e& w7 U4 D ASL0 [9 y; v5 o; q2 r6 s4 ?
PHA! T$ C- _7 t3 N. w
LDA #$00# |5 |$ O4 Y7 s0 y/ u
STA $8000
3 X! O7 h! a0 M- [" t PLA
; M! o8 s' y k6 b+ q0 H. M STA $80017 I- d9 ^- X4 y8 f) Q) w" S9 U5 T, Y
ADC #$02' i; r( B. E, x
PHA4 K6 T+ _/ T, q! s( b- E9 n
LDA #$01
+ e% O. n6 U% ?3 Q! J STA $8000
% S! H& N% p8 A PLA' b- @& {* e0 k% v' o$ }
STA $8001% q) q% b( A% {" x
PLA- H/ `' s7 j$ F
RTS9 i& ?, d, {/ ~, t+ y) B' d6 `
+ l8 b8 _/ a+ G2 W
.ORG $7360
, _5 ^ a0 U# Z* f% g. w* j, h+ ^PPU_BANK_1000: ;背景切页! Y' y( g3 g$ h
PHA9 ~: P, H7 V2 v& w
ASL1 |! [( B& B- w0 P
ASL# s- y5 D: r# `: `! N6 U* G
PHA
& e) ~2 W# }! W6 R0 s1 Z( X LDA #$02/ ^7 g6 Q1 x! Q$ Z. n- W
STA $8000
' w! C9 z& s+ p/ ` PLA$ z9 _ @( `3 x
STA $80012 r$ z: S' O) q N- e( i% S
ADC #$01
) h* s* l- f* @6 r0 c* O" K, k( z$ t+ t PHA
! @5 T( t! ]3 E7 S; N! Q! g! b LDA #$03' h5 _+ ?6 ~# X( V/ R. m% H# U1 p) ?
STA $8000# e% n* B* c& ~0 [9 g5 w
PLA* ^+ y( T2 Q, k: U) d8 A& r) _
STA $8001
$ b! Y, I* d1 S5 k: I$ |( A% F: @ ADC #$013 N. ^, U) u" q, _' Y3 [4 b3 `
PHA4 y$ T6 b4 P' x9 M* K- T1 V
LDA #$043 _' y. B" W, u3 e+ _9 {+ @3 y
STA $8000
7 H% v$ C& N) i% n+ S/ U" m PLA
: L* A0 K3 v, o$ ]: } STA $8001, D) b2 Q4 X- t: p
ADC #$01
* v B* R" q2 h9 N) { PHA
8 q) S4 Q: J) K* a, j" ^ LDA #$05' i, z: @' V$ s
STA $8000* y" ]: u( t- J( k8 t+ F( t
PLA4 K/ ^6 ^1 J8 c6 d
STA $8001
5 N2 _% J. ~/ K1 u' v PLA3 w8 e9 n1 \9 O0 `7 ?4 \: ]" J q
RTS
' {9 `, l$ `5 h4 s3 n/ d4 V1 n" `! K" g# R
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|