|
|
;[FC][最终任务mapper1切页程序] C1 Q8 P$ ~; }" M+ N4 ]0 @; U
.ORG $CD9B
9 g/ d! K( J+ P) ZBANK_START:: A: m2 l# w& w7 {% l# m! ?
STA $70/ Q" f6 o# G3 ~
TXA
1 Q4 M% Q: z+ S6 I$ A6 Z, d ASL
: b3 s. K% O3 U/ R% ^% z TAX) p3 `6 G. Y7 U
PORT_SET:3 I) T/ k! x. j
LDA BANK_DATA,X
) w; Q3 l' z. z# |8 ? STA $6E8 h9 t9 ]' M0 h9 f
LDA $CDB8,X3 @+ J3 l" Q9 G2 N4 R: |# M X
STA $6F' [ h) r/ G' J+ s* |2 a
LDY #$00
* G% X* n9 a _. N5 T LDX #$05
( w1 S: [1 l/ [! s; C3 j LDA $70* Q4 _* \* W! ~; W+ Q8 T
PORT_WRITE:5 `4 N6 P" f+ n" S
STA ($6E),Y
& T$ r; c2 j0 k LSR$ e: z2 X# A+ g2 T, w
DEX
$ R( ~ m! u, t8 }. _. z2 Y% T; o BNE PORT_WRITE1 Q* n. S" S7 ^1 R% x, J' W
RTS4 e. h. h; J- `' X% H. }, G
8 R |$ ]* {6 O0 M' }: r- X
4 }1 O/ W8 q3 X( U- @
BANK_DATA:
[1 ?* @. }( N& `( Z4 J .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
9 Q- Y- g2 I; M2 K
5 N- [0 X) j9 w7 d: `' ~! q a& k 6 F# e% Y4 e4 D
;[FC][最终任务mapper1转mapper4切页程序]3 P& g4 V2 C1 g
.ORG $BFD2 ;初始化跳转; @- o- @3 V# x( a
JSR $FFC0
+ |- g* [: j1 _. h! u7 _5 o [* @/ \+ k* _4 h
% I' e B2 F2 y% X
.ORG $FFC0 ;切页7 m# T1 R( Z8 d0 N
LDA #$06& n6 |# ^! \+ o' Y) {
STA $8000
( ?* Q+ t" I1 e0 U7 \ LDA #$0E5 t( d4 C) w. b5 D% M2 d
STA $8001
! h$ j3 n" V( t# b6 c2 R# t3 p9 W! I JSR $8000
& R" O* [* F) b RTS
: e6 m4 n3 g& I( K; v! Q/ | 3 j3 T0 q( a" ]5 t& J+ c w$ z; V
.ORG $8000 ;数据复制" i% m6 E4 j# a/ _3 h0 d
LDA #$80" S# @; g3 g. R4 `2 m% H$ ]
STA $A001 ;启用SRAM
7 o& U) z1 O' L( O- Y T8 d PHA
) D9 ^3 y& S* N3 v TXA
0 @8 Q0 D; `7 C PHA
# n9 D( {1 Q' F/ R; t6 W LDX #$00
* `/ A* s6 h) u' ]DATACOPY: ;数据复制
, Y# E8 O F6 Q/ R7 t LDA $8100,X: R" O# t' i8 G i& [
STA $7200,X) s( o4 {8 |3 H" W# ~0 y; X8 U
INX& B" W& D$ @9 G! y9 T: O' W. C: Q
CPX #$00
' ]! |/ @8 u4 ?2 Z. ^ BNE DATACOPY
, b8 i3 G2 c& P# s" C$ f PLA
) a; f. v0 n' B9 l TAX* |3 c& i% `' m5 P |- L
PLA
q0 h$ W# ^1 R% y RTS4 ^/ Y5 H8 j$ h' ~9 C2 i7 j4 O: x
1 Y$ y* M. d% o. T. D) o5 B .ORG $CD9B ;跳转到转换的切页程序. w$ p# V/ l. G$ B
STA $70
: Y- r: T5 X' n! I$ n. c+ p0 i JSR $7200) b" ~& r( E- ]4 Z1 z
RTS
# e8 P: A! k8 X, s8 j0 i: Z - [. k$ H0 u4 a8 y; T
.ORG $7300- ~& U+ r: `0 }0 `7 I
M1_TO_M4: ;切页程序
3 ]# Y) ^- l* m8 \3 z) ? CPX #$005 C% ^, \; Q$ B {% x R9 r, a
BEQ REG_SET
4 i. \% e# C6 X# X1 W! g CPX #$01* k Z( n. z8 _4 w0 K
BEQ PPU_BANK_0000$ ]6 u6 s2 w% r- O9 E
CPX #$021 S; N# o \6 _# f( k) U
BEQ PPU_BANK_1000
* x9 Z. |1 U( O6 v CPX #$03! J8 k d# f7 @) ]2 K+ R$ w3 k1 `" C
BEQ PRG_BANK5 n$ ~, G; Q5 @) h9 K) d
REG_SET:. H# J: u% x$ l" p' y# {2 \
STA $A000: e, P4 {* P) g: p$ B
RTS
. D9 `9 P R8 @! u8 ?. M! j .ORG $73205 W& r- e2 _) b+ ~: w4 S7 X" S, a
PRG_BANK: ;PRG切页9 \+ n# u, e& z; d. \
PHA' \( b0 \8 ~6 \+ [, e
LDA #$06
0 x9 g8 X1 i/ b3 ^0 S3 a& ~0 Q4 a STA $8000
) F/ B# J1 Q7 i. a- N9 r9 L1 |* G PLA1 b0 v' z! Q: P! ~& v
ASL
& r5 {" P4 P' e1 X0 A& K& C- g! a STA $8001! C( }7 }: }- M, \- V% Q' A
ORA #$01/ i. a4 C( _ G5 S* a7 P* P
PHA
6 h7 N% w6 {% z9 Y0 F LDA #$07% ]. o9 E5 a! X9 V6 u; ?7 I! d
STA $8000
# t8 E( s. _3 s% e. M! Y1 T6 s3 { PLA
6 B/ Q2 {8 W" b7 K STA $8001$ P E) W& O6 Z+ w/ y
RTS
. E: M& l9 ~ x+ }! B .ORG $73408 k9 X5 a1 Y/ H: e1 \3 i
PPU_BANK_0000: ;精灵切页
0 m! Y& C& v+ {" [3 M7 n* ~2 n PHA
' x# B- r4 `2 f" S1 C. h5 L ASL
3 e' ^4 Y8 i2 L( @ ASL
3 N( C0 s6 w) n' k6 p9 v PHA
! _6 z* e. l% H5 j LDA #$00
* V c2 y0 E4 j5 F8 G6 k5 Z* b1 v STA $8000
, s' G% g- l4 ^% A0 Z PLA/ W w) n. ^5 i0 U4 M
STA $80011 R+ n* ~8 U8 z) Y Z6 R! h% J$ b
ADC #$02# ?- d7 j q" T, [% g
PHA% k: z2 d8 Z) e0 n
LDA #$01
! w+ d( _0 c# L5 a8 Y STA $8000. {( W' d8 K3 b; }( @
PLA
c ?& U( j9 ^% M& L STA $8001
! s" W4 Y3 j+ }1 p. ]0 _6 c PLA
$ n5 l$ c* d; P, ~: T RTS: a2 L* \ l6 H% H4 G- P8 d
7 M7 l3 n6 z% S$ w# M9 [: v6 G
.ORG $7360
0 T X2 i+ M; n' r# I( |! n. z% [0 fPPU_BANK_1000: ;背景切页* N R* ~9 ]6 I+ E0 u$ z% X; a
PHA
7 v1 }' O' j8 P( n. e( Y' o ASL/ {! u c) [% V; l" p9 e3 z2 N$ |$ g
ASL
6 [( T! F% d1 { PHA; {8 C' y" S' s" H' p9 U5 l
LDA #$02! Z5 u% U, {6 w) b4 e4 ^* Z$ d$ _
STA $80007 @& W3 L" m( f H$ \7 u
PLA. B& D8 Y' E) Y! N
STA $8001( g- u" D8 p# }
ADC #$01
3 F+ a, U* U0 ? PHA# C6 f. m% `/ G2 U4 Z5 d+ [
LDA #$03: g8 e& F1 }! X# G# t9 u
STA $80001 b$ e/ S" y" c6 [2 ^
PLA1 N/ u, i0 p0 j2 u$ h
STA $8001
: G1 ?0 C5 [9 u9 Y1 U1 ~; u ADC #$01$ o& `; F0 x- O
PHA0 f0 l! q. {* y- C B* {# ^
LDA #$04$ g+ ?4 y' ?4 {$ S8 m3 b
STA $8000
! t3 q) I, @2 c/ M6 X& m; H PLA
7 I$ `# y4 ^& |; l" `2 ]+ a STA $8001
; a6 m, w, Q- ~* z$ s9 u+ f ADC #$01
+ ~( ~/ J) |4 v PHA/ Z, C: E8 X: V$ F0 w! F, `
LDA #$05
7 ]7 T0 A% k$ K STA $80004 b, @" U+ m! F& |$ E2 X n
PLA
1 j& k: U+ q4 H' E) u STA $8001' N9 {0 J: |6 s: O3 h5 }
PLA' X7 I8 ], Z9 y* t
RTS
! c& ]1 \1 x6 y6 Y5 w( x. m; m. k$ K* H* k$ b2 C
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|