|
|
;[FC][最终任务mapper1切页程序]
0 P2 f) e* C( w .ORG $CD9B7 O# V2 ^* J- @3 B/ i; M/ _- ]
BANK_START:
, Y* X1 q# u7 G; g7 D STA $70
) K2 r' u1 G M, V9 Z/ v8 {8 z TXA
, M; x9 o. U/ P+ j( J) s ASL
) w A. I* u* }( z+ ?. w# l TAX; m2 V9 S7 h+ v; Q, ^7 q
PORT_SET:
& ]0 W7 W! c! E+ @5 i7 U3 ^! I LDA BANK_DATA,X
" j" t4 ~" k% W$ G( ~0 Y$ }+ n STA $6E
5 A& k( Z0 D; q# C LDA $CDB8,X
. D* y$ S8 U0 |# \% I STA $6F
4 B* U7 K( N8 H' I# B1 ]( x: B LDY #$004 q; e4 L9 g e2 C- F
LDX #$05: L( u7 C( R6 r9 D# E1 Y* [6 ?
LDA $70
3 |* j* \) y: x: RPORT_WRITE:/ s2 D+ J: N% [4 ]: d
STA ($6E),Y; ?' N/ l2 U$ B. j
LSR
! `7 f2 v3 L1 F5 Z) H* k& B* G5 z DEX' {; R$ h2 `, K( L0 p: D
BNE PORT_WRITE
5 a, m+ b( s8 o" D+ J0 _ RTS5 o) U1 G# V$ q5 ?
- m1 b, l6 d9 Z/ K, T& w' J
- Z' B1 R) O/ ~* \: PBANK_DATA:
& }" Y% G0 {' I( ^+ U, \* v .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
) g5 H) z& ]* a6 l5 G* S
# c6 a* j. w2 Q8 z
5 [, K6 F; }5 H3 Z: p0 \4 m, ?* V;[FC][最终任务mapper1转mapper4切页程序]) y9 ?, ?1 a F! P0 s# U
.ORG $BFD2 ;初始化跳转 s' l) i2 l1 g4 h A3 ] r# m2 l
JSR $FFC0
# W2 |( D/ v9 ]; j$ @6 A* Y
8 s) i; E" a: z0 p# E
) Y% V$ j; B! u3 V, f .ORG $FFC0 ;切页
% y) `9 D8 q$ n2 S" Z# ^ LDA #$06
: u7 A# M9 A6 W* |& a STA $8000
4 Z+ ` _( a9 [# C; a5 F LDA #$0E! y. o6 f1 x9 R( `0 Q0 C
STA $8001
0 x% _5 [9 P1 }/ h4 x s9 ]3 D6 C JSR $8000$ _, F( O" z" ^+ h2 R
RTS
9 q# f) i5 m( ]2 F* ^1 L
- |# l- @6 q# z4 n) _. T .ORG $8000 ;数据复制
3 y) J1 P# b9 [: t, J2 N! f7 _ LDA #$80
& C5 j0 w Y7 `, o- D2 | STA $A001 ;启用SRAM
/ D+ `1 ` x3 D PHA* ~5 Y7 |4 f6 N! [5 a9 m+ r3 q( @
TXA5 m: E6 G7 u( H
PHA& p8 t. f7 a) _ u
LDX #$00/ T6 g0 o; H2 S# a4 a
DATACOPY: ;数据复制
/ ~- y. M; ]9 r k/ c) V LDA $8100,X
6 ^3 C: O: B4 R' Q STA $7200,X
6 N9 p5 C4 _, \0 l; V8 c& g I: C INX! K; Y! n$ I, S- f( h
CPX #$00! G! \5 w+ C( y) v/ H. O
BNE DATACOPY
& i; h6 I* l6 L8 ^2 w2 I1 S PLA' Z, b% Y( k: }: q6 b9 O E
TAX
4 K Y6 W v, ~; n- F6 N# ` PLA& V, }7 V% _6 O0 D
RTS4 H- h( N. E$ c+ H* e' p
( C6 B/ F+ w K3 H .ORG $CD9B ;跳转到转换的切页程序2 Y; e* a: J4 D+ ^
STA $70
% a/ t$ C: u0 w/ ? JSR $7200
7 r; B6 c0 U3 x RTS- J: a& V2 c9 H% S" w
1 z% u# D) w# }5 j" g .ORG $7300
1 J( f! W; J+ ^" ], p f lM1_TO_M4: ;切页程序3 w7 f. J, e& m+ a, ]
CPX #$00
& G c! L4 X: J, y9 i _ BEQ REG_SET2 M: k7 Q$ ^/ Y$ c8 J _
CPX #$01
I" g. _+ x# Q4 o1 R' | BEQ PPU_BANK_0000
2 p2 `) Y& q g CPX #$02
3 U- `; F* N' m! O, F. l( O/ D BEQ PPU_BANK_1000
/ Z: F( y2 P! Z0 A& l CPX #$03. ~ P3 K# c7 i1 I1 l
BEQ PRG_BANK
6 n: n0 [1 t0 [2 d4 ^REG_SET:
' @& v. u- u% M! n, \& x0 ? STA $A000* h# J9 p' ^" m6 o
RTS* A( [ `' x2 K. G# b a( [ s
.ORG $73201 i1 i" p- o' P, T- O8 [
PRG_BANK: ;PRG切页. Q/ B5 h, l7 P1 ?$ d
PHA7 y; R& T' Q: B6 v+ n# ?
LDA #$06
7 q& x* b+ W& _3 d STA $8000
, e& {/ J2 h; x& W8 _ PLA
* w9 n9 r+ Z; i3 X. e- {" ] ASL6 G- P: ~4 U8 B- O2 R
STA $8001
6 u. d4 Y4 j. | ORA #$01
: s5 u" B* n4 J# q. e6 f( e0 l7 | PHA
" }: f' a! ^& L, g. T LDA #$07
: l O- Y& U$ Y* Y. \* U STA $80009 J4 @3 m7 l) o# I) g
PLA. b- J! G5 s3 `/ J. I+ y* c
STA $8001$ s* c' `! C+ E" W3 N$ B1 t
RTS
9 d# l! k: H' \# |: Z- J .ORG $73400 ^& N& r& K* r. a# P
PPU_BANK_0000: ;精灵切页
) m% R. S" C8 R# ^8 J PHA
1 ? p8 h! \- ?. ] ASL' ~$ w% B. Y% ~# w
ASL7 J) z1 z. D; N/ s9 H% r( q( t# L; m) m
PHA4 A8 Z |* u3 d
LDA #$00
+ ~& Q( a0 V" p& ^ STA $8000
4 |; f% {2 I# e" O) q PLA
) }! k2 b5 l) Y' m4 o6 [ STA $8001
0 I7 ?8 Q: x$ j" R3 S6 w+ _: Q7 v ADC #$021 c( h4 ~, g3 _2 R, m0 y+ X s
PHA
/ Y& X8 M" v- s4 ]! a LDA #$010 b; P& w& A# }: ^+ Z, z
STA $8000
/ \* E4 B8 q" p3 \. M9 F$ G PLA
$ z" o) h7 p0 o STA $8001& L+ E& S1 _' \, [5 y8 C2 b( p
PLA
2 g. l1 N# _# L RTS* Y- J/ `7 o" l2 d1 ^# d6 U
0 v$ O& ^. X8 m; e3 K2 U" N4 \
.ORG $7360+ r- k6 y6 c% e1 ]' T' K
PPU_BANK_1000: ;背景切页
# z; U* Z/ `0 Q5 V6 P+ Q3 M+ v PHA. l9 ~. L/ d: z5 v) j6 k5 j6 J
ASL
( e9 T0 I( p: X# b$ a# { ASL
2 R1 N/ A. g' ~$ M3 ~ PHA
3 M: w0 C0 H' P LDA #$024 T) }5 N0 O; U* S6 W
STA $80007 H3 N' e+ T! |1 `6 l4 J) [ `3 t
PLA
3 j; U& W0 K5 c: A STA $80018 `# E% P% P, e( w5 N* S
ADC #$01, [. J' v% Y4 k- s
PHA
9 r. h$ ?' y) n& q; H* l5 x LDA #$030 g; {: L2 H# ?, T0 J- x
STA $8000# E7 K& {, w9 P3 w# r
PLA4 P$ j2 F6 E2 g0 f3 s, K: Z$ v9 y1 T
STA $80017 a" d$ k. ^/ O O! H2 M* r
ADC #$01
# O) h1 I4 e( _! ~! v# m3 X8 y PHA
/ o0 u2 ]* u% \ D* J! E) @ LDA #$04
1 L D" _4 T& D STA $8000
# z* T4 x; M1 W3 L PLA
; R) e; U- W9 h5 z* [ STA $8001
, U( T8 f. g- E ADC #$01
2 M [) G2 c) ?! m V) b PHA
( W1 ^- F* `5 [ LDA #$05
' ?, h% Y: H% k) V6 \ STA $80008 `2 S3 s2 B; H* Q7 X8 r
PLA* Q; }) u* J' [; l) @7 i& f/ Y
STA $8001
7 K* m3 J9 b: R+ o7 ] PLA
. t% L; E- {' l# M+ U. q% S RTS9 X, ~$ u. Q `/ L
% `# n. S. x7 J; W/ X$ F7 g2 n
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|