|
|
;[FC][最终任务mapper1切页程序]
4 p" t8 ?0 B& }. u( C( Y$ S .ORG $CD9B
7 X7 E& W, Z& _; K9 lBANK_START:8 x8 z$ Q0 x) b( o& ]: h i
STA $70
# q& v' q5 k8 Q$ Z6 z0 h6 N; k TXA
9 A5 n7 v$ ~) ~, a& m. C5 Z" | ASL1 n, V, x& G5 ~7 Y: H
TAX
2 P, Q1 p' \6 m s8 |5 i2 oPORT_SET:* P' ^8 Y, g- r+ b. @( [& H0 t, ?4 Z
LDA BANK_DATA,X
: @: c3 z& y" b( Z9 x: V, y STA $6E
" e$ w0 u. m. |. V; u6 p/ t0 Q8 H LDA $CDB8,X
6 u" L8 H7 U2 | c" |- @7 i9 Y STA $6F
! ?: A/ p5 D( ]: r: h$ B5 ` LDY #$00
8 w; @. v/ ^6 K, J( W8 N LDX #$05
$ a) p# T4 N: ~2 \. M LDA $707 W$ l6 B. `2 v# I7 p. W* g9 v
PORT_WRITE:
: q6 p! w# ^' N# A# @5 s4 W! { STA ($6E),Y: ~6 @, z$ {" w
LSR
* J* b$ }& X8 i- @1 n, B. e DEX' O- K: Z! k5 k: n) G9 y" K$ q, i
BNE PORT_WRITE) s/ H& v$ o# D0 C
RTS8 L l4 g$ d' \5 w# g) j
3 c' X f: o" a: r/ Z
& d" h4 z' z" H! lBANK_DATA:# ` k- Q; B% S G; S
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF+ @- _2 {: x9 ~. D' n6 n
. g& S3 A3 F) n" l" p
# Y+ l8 l# b' h* ^$ u1 W5 y- y
;[FC][最终任务mapper1转mapper4切页程序]
4 J' u* x0 R' |/ L# @: ^. B8 j9 s .ORG $BFD2 ;初始化跳转* P& N) H4 X( z5 J, f( e M- {
JSR $FFC0
: g( D! {6 E9 U+ x0 q# U( H
. s! }9 r% s/ x5 J( p2 W
! s2 C4 S9 e0 J, P6 j .ORG $FFC0 ;切页6 T% s7 P( v7 a/ [" ^8 B
LDA #$062 X5 u8 R7 v% d0 [ J
STA $8000
/ v) p; h- d& h2 Y% m LDA #$0E
& Y+ X/ @6 [; ` STA $80013 X `, p& t s9 U. j
JSR $8000 i4 p* l$ _6 K p" S
RTS 1 F. M* ^7 T1 d) L" D, P
. B; u/ r' ?. b6 \' C
.ORG $8000 ;数据复制
* B8 U. x7 L X; z9 G LDA #$80& h3 D/ V. L B% H9 U* t/ \! x
STA $A001 ;启用SRAM
8 J' h3 U) d' @$ W& ]6 O PHA/ k& d: p3 {8 d) G' k; ~8 d: c
TXA, L4 x0 N3 R* r+ K) p/ o
PHA
& h* v5 Y. p. F6 {! i LDX #$00) `2 b8 [# s0 ?: I, G% T- A
DATACOPY: ;数据复制0 E% B$ C- k* m( d
LDA $8100,X! z0 s0 C: @. u% p
STA $7200,X
. { r a) W0 G7 ]; p INX( a9 |$ L/ i, N6 Z- M, @9 R: n* ]
CPX #$00
( g& f) A# i q7 \ BNE DATACOPY' p7 M+ _4 n) V6 y+ Y
PLA, F2 h3 F% n9 q2 W9 a9 ?/ i( Y
TAX- M7 r. k" u0 [% q# r L5 g
PLA0 S6 W9 h" ^# B1 O2 z {
RTS* I, y" G( o* V2 R: e5 ]
; f5 t* z- ^5 M7 k# C' N
.ORG $CD9B ;跳转到转换的切页程序, F. O' [4 a! I$ T# q& |; t
STA $70
1 q2 }+ e% S2 T3 k JSR $72006 I1 K8 u7 L1 r7 t$ t
RTS
8 H, }& {9 H4 O . v" Y8 j* p& _3 b) O- Q w. F
.ORG $7300
" ^: a4 P$ x1 ~& I8 L+ p7 hM1_TO_M4: ;切页程序2 o: C# o* |# V
CPX #$00/ ^, V, q0 y1 O2 P" T) B
BEQ REG_SET [0 ^, ~! E$ M! I6 C7 X' C
CPX #$01
% S" {4 }) p4 t/ p: k8 O9 Y9 y5 J7 ^. o BEQ PPU_BANK_00002 i X0 N6 H; W7 a, t
CPX #$02
* l1 j: W. K8 e2 \ BEQ PPU_BANK_10004 P. ~( N4 l Y6 S$ L: q
CPX #$03
+ T7 o, N3 ^( p BEQ PRG_BANK+ ]6 u2 v ~# E9 w% K
REG_SET:: q8 G0 p' h' U7 r5 z$ Y' N
STA $A000
* d' O7 F( `: \) s7 A. d- K RTS/ R1 E3 l! V& u! L! d @
.ORG $73203 l7 m: a, ?) Z' z* \
PRG_BANK: ;PRG切页" a& W/ v2 S V, N$ x3 H% Z
PHA
. a, a+ g& p5 a& T+ \. H LDA #$06( s$ d6 ]7 \9 n% `. t5 Q
STA $8000. O6 Q8 B+ N; `3 f8 I! |
PLA! ~3 o$ v4 k% N+ ]
ASL! u% A- S4 z( D" h- [
STA $8001
, N9 D5 p, F+ L/ [' t" D: k ORA #$01( T& @: X$ w# l# b
PHA( S% z; ?2 d# i5 I3 b6 \
LDA #$07
& p) L; q- W: g' F' M STA $8000
. M2 U7 @) w/ ]$ d; @3 C PLA
7 p+ V! _3 U/ P' Z8 I! ~9 ] STA $8001
- s& ^% M& w! X7 |, G2 A. H RTS. a9 F. v) H- x- R, ]2 ?9 r9 U
.ORG $7340# I* [- x: D, l
PPU_BANK_0000: ;精灵切页
* M! ?, q7 N9 ]1 F ? PHA: I L; _( \. a7 h3 ]
ASL
7 E, i/ m3 H3 r( r+ Y/ w ASL
- c! Q7 F0 s% Z9 e9 I PHA
3 o" f ?3 z" J$ P* q# t' ]; f0 @ LDA #$00
. \( V+ T# q8 P9 r7 f. A STA $8000
, @) V) k' g, l9 K; S, d PLA
' n# @+ [0 R' Y0 `) b STA $8001
) }# @0 k1 Y( w( z+ [' \$ Z ADC #$022 T1 v/ o* C$ l$ l# M l
PHA
- T& C; H& _0 I3 y6 z" m) n LDA #$01
' A: K x W; q0 w/ G% V STA $8000
( U; l* d; L3 i& m9 D PLA
4 G1 \" v8 _* c" A STA $80018 s7 J& t: p( y3 |$ U6 m
PLA
5 X' p5 Z7 a, J& h0 l6 ^9 |. d RTS
) |2 X; J# R$ w* N7 x8 }
! I) T& `2 o9 M8 T2 L, w- ~+ X .ORG $73609 F$ u; ]8 K. P& Q9 U. R2 X1 X9 R" L
PPU_BANK_1000: ;背景切页
5 }( D. }5 A, c- D3 P3 H k PHA
' I5 ~+ k' G8 X ASL, B, h6 v& K8 @, q7 \( _/ Z
ASL: ]# s1 {4 J$ B' m* i% A/ B
PHA
3 n9 e2 |8 d. I; E" p3 x LDA #$02
7 I0 q: a5 w( D6 L i STA $8000
/ _: n% P* k0 | PLA
6 a4 T# C* |6 W2 i4 B6 { STA $8001
5 c0 q6 r8 R4 k$ E7 K ADC #$013 U( f# q$ S& p8 l9 [0 q
PHA7 M# @% X6 |, A$ `) w
LDA #$03# ?3 S" \2 N0 n2 o$ |# G; ~
STA $8000
4 M( P+ o9 r9 ^1 J; U0 J7 Z PLA
7 Q3 ?2 {* d8 O STA $8001
' Y& H# w2 A+ ]" H! }% F ADC #$01" {* F( X- s/ K: b. W9 Z
PHA& H% o6 V( H8 j' _
LDA #$04& _7 Z8 y8 m6 p/ ?
STA $8000: u T B6 Q, m, Z: W
PLA( Q( e6 c: E8 s* V: t4 B3 k) u
STA $8001
! m, @( O, m# X ADC #$016 l1 p* U/ B1 D, d' K' I# M" X1 w
PHA- _8 H* \5 o$ B1 i, T/ w
LDA #$05
2 {* Y, a* j+ j4 O3 j% D STA $80002 N- Y8 R0 E2 J7 j- x5 h# y5 b
PLA
/ H7 W! y) t$ _1 \. u# m STA $8001; j2 x. F0 `8 {. C. z A- Z6 L0 |
PLA
1 U O a4 j) M RTS- {3 ^1 ^" ] e0 Z9 x7 k5 D+ M6 T
( D" u$ f5 ]* z; o7 ?* E5 x8 R
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|