|
|
;[FC][最终任务mapper1切页程序]
H! E/ @% n7 \/ u# ]( j! }* u .ORG $CD9B9 k, S4 f" p, \) q7 [6 i
BANK_START:( x6 W4 Q% f. Q8 u7 D$ x
STA $70
9 N+ [/ B* Y7 R; p5 r TXA4 Y7 P7 d* B, j) E
ASL$ `6 V- \7 e$ h7 f4 N6 W1 ]
TAX% R! R& U% K# K
PORT_SET:
# g& k$ U# Q4 A% e) z LDA BANK_DATA,X5 i4 m( ^% g# F3 M K) f* D' V: A
STA $6E
* C8 F- V% t F LDA $CDB8,X
8 c; I% ? e8 {0 j6 U STA $6F( t+ f- ^% E/ ~9 X" M+ u
LDY #$00' _. y! |! e) _$ q
LDX #$05
1 @: @4 v5 K/ o" `# v. Z LDA $70
1 \# n E7 Y1 VPORT_WRITE:
7 u, w' e7 X# R; _% P/ |- { STA ($6E),Y
+ F! P6 e z- k# \! k o LSR
: v+ ]1 c, h0 H/ z w' u# T DEX
) X% @: |$ d2 T5 \ BNE PORT_WRITE$ `6 w1 k) }5 C3 d& E( `
RTS' H/ m1 {, `( C, M
- U: G$ W* q0 [8 D* M/ |
* _7 D! f. k5 g, i# S3 ^. E" c
BANK_DATA:
$ A5 \- I: m: R. X .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
0 m7 m$ B, P7 c% @% H; \ * V# D: h& [( M/ G" D
7 f: H4 R1 e. k2 C1 U;[FC][最终任务mapper1转mapper4切页程序]) o/ N. ?! ^( h; {$ u/ v" d
.ORG $BFD2 ;初始化跳转
% f9 p* G( s, d3 W: r JSR $FFC0
8 X+ n# `; {! ]" `
6 |$ l- K4 q5 d/ W. Y. v: ~% P& q+ v2 h# T
.ORG $FFC0 ;切页8 ]% X/ A9 K! Y* e0 ^2 x' _2 v
LDA #$06) l& Y1 R2 }$ t8 {) g
STA $8000
$ Z: a% X2 P" e; v7 c/ j5 B LDA #$0E
; {3 b7 q7 d+ K( N$ x) D. t STA $8001( {) R6 j8 R# r
JSR $80005 T/ l1 v& j0 r% W: M7 O# m
RTS
0 X- a) `5 `0 Q& N/ y \
$ u' s+ M4 p2 @) p1 j& \6 T: p$ Q+ W# [ .ORG $8000 ;数据复制' Y% J$ v% d8 D5 r6 H
LDA #$80
A7 ?& `) z% ]1 l. z# o' m. _: T STA $A001 ;启用SRAM
, x9 n s/ j0 @: R0 n PHA5 M! I5 r8 K' B9 V
TXA
" ~, Q" V4 x4 Z5 J) F( H PHA* l6 c9 i S3 p
LDX #$00
3 l1 ^$ d; t% t6 b* {3 f2 H2 tDATACOPY: ;数据复制
8 z$ q4 h6 o$ b LDA $8100,X# T: Y. m0 F" U
STA $7200,X
/ [% f: z; `& {* t+ g INX& w; U, O7 W3 j
CPX #$004 j6 n7 J7 O8 `( o5 `2 s5 k3 d4 I
BNE DATACOPY
0 u. I+ t# B* R3 \/ t: {: [ T PLA9 M; `4 ?1 l. s
TAX' z- [0 M3 I8 e! p7 Y
PLA5 D' j; |( z" ]/ W& I7 |
RTS
1 o, m1 k- x7 c l& R' ]5 l
0 O0 S: c$ M5 q9 Z+ e .ORG $CD9B ;跳转到转换的切页程序) [7 z2 z4 c' B
STA $70
9 n, h7 `: I* d8 U- M; G9 ` JSR $7200
v' M9 N2 ~7 r, K! o4 s5 M RTS, k/ K* A1 H, i5 W# X8 f
0 t& m6 |/ x7 S' [* W .ORG $7300% n% o `5 ]6 H
M1_TO_M4: ;切页程序
) t7 X7 n8 |+ L CPX #$00- |( x- D! `2 X T4 \5 o
BEQ REG_SET
- K; s5 e: Z5 l CPX #$01
1 I, x& \. P( |9 U8 u; W BEQ PPU_BANK_0000
; f. s# H. j6 b' b5 c% W& @ [ CPX #$02
$ I6 i8 H' U) @8 T/ V, i% H3 E/ b BEQ PPU_BANK_1000
) _) G/ X1 e1 L$ `6 S/ R CPX #$03
7 s0 C; `' V% p2 Q1 J# x BEQ PRG_BANK7 S7 E2 U. O$ W( l3 G( G5 p
REG_SET:" C: P9 p ^. I+ j
STA $A000
% F& s: \' ` Q' j RTS6 y9 q* q' `& P
.ORG $7320
9 J7 f, t+ I( e7 }8 g# iPRG_BANK: ;PRG切页 U" y' V4 U5 ^
PHA: l% t# x6 m1 ?% G# c [0 y, Q
LDA #$06% O! b1 R4 \* @) q3 C6 M: N
STA $8000& V" k3 o& \' y# i
PLA
' `5 C' T% {. i ASL0 e, ~4 E4 H: K: x4 A: ?- {
STA $8001
$ s' U6 r- W s2 I& | ORA #$01. A9 j# Z. L8 i) V; _
PHA7 R# Z C U+ B
LDA #$077 C" Q8 M8 Z) a7 S3 [) j
STA $8000
Z3 x- p. Q6 u! Y" c0 k PLA
& K" {2 V+ Q* Y8 K6 t( L( Q( f STA $8001" M/ D* J9 ^3 W. I) G" P5 }0 T
RTS
- Z3 w E+ d8 j .ORG $7340% }0 J- E+ b# O
PPU_BANK_0000: ;精灵切页- v% g* U1 c5 q( X( t8 F% L* W1 t$ w! M
PHA
& Q g; I2 ]3 p5 W ASL
5 D* e% e; |' k3 u7 w+ @ ASL7 t/ L/ O2 ^8 ?; A( L
PHA" f: }; o+ F x5 F/ T% N
LDA #$00
) R) U' N7 i" E" a1 I STA $8000' R7 n4 z/ U# R
PLA& f+ u, f9 k3 V# q% Y$ A, i
STA $80012 U' A; p4 y: u7 S( r. |- F* h
ADC #$02+ z: R; Y1 p$ a. t5 k
PHA: F% I) F7 C" e+ h B- S
LDA #$01
5 J+ ~( e: Q8 n S! k, s) |+ U STA $8000$ L: n7 t' W+ J# q. z* s4 F
PLA
1 i f/ R+ \! D' {' J STA $8001) F5 l0 b" V2 r% V' t$ v2 D
PLA0 {8 c4 K3 F5 C2 h! q- I
RTS
8 X8 h7 b+ ^- e) P2 Y; l + }" r# A& V |
.ORG $73608 H% m8 I4 ?4 s6 l6 x( e" p
PPU_BANK_1000: ;背景切页7 l7 s% {: S! A
PHA
4 p2 _7 y. J! ]8 n, u8 r ASL
2 `" p: k+ `' b) ^+ ] ASL
5 _5 r* Z2 y/ F, Q- `( v0 v+ X. W PHA4 \% K" c' I0 t% K5 @
LDA #$027 y; v9 P' G- |" G
STA $8000* E }; L0 w' ?
PLA. h5 y9 \( A3 {% o: _/ t
STA $8001 ^2 u, s5 Q8 v8 ~$ X: t% L2 s4 F/ B% m
ADC #$01 J% G, R* N/ D9 C5 \
PHA
" V' ~6 |1 _8 I6 R. R" O LDA #$03& ^0 C4 I0 H, v( r# }0 s
STA $80009 V' e4 Z e' \; [% o: p/ X2 v
PLA0 J& o# g {( B
STA $8001( t1 t2 N/ {- Q. O
ADC #$01' {8 {- e `* A/ r5 c
PHA
6 v9 g8 L! j& i/ v4 H0 B LDA #$04* y$ B: g7 l0 ^3 {5 ~' S
STA $8000
3 V! V6 x$ B4 k" { PLA: ^9 z' C* U! s) {+ u( v! K
STA $8001* R7 O; w7 ~' d; z# E9 C
ADC #$01% C8 F/ F4 `- \; k* n; { _
PHA2 T1 L' v5 ?- Q) u- T1 e! i& c* v
LDA #$05
/ u! a9 G, ?5 h( ?7 M9 q0 d STA $8000
2 u: J! [9 C6 V' v% |7 C' { PLA8 u9 ^. }0 @: j5 t' T; L8 a( M
STA $8001
( k. J% n- g3 R5 u M5 H {0 ~+ x% n- ^ PLA1 ~6 ?/ j, Z0 p8 L
RTS
9 O. w/ }( w0 j, O9 f) z( h+ ?9 {" y( J% U2 y
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|