|
|
;[FC][最终任务mapper1切页程序]
* B5 {+ ?4 [- Q3 V .ORG $CD9B
: b& l- Q" f8 z j. jBANK_START:
% v( _: R4 _: {( W, J. K9 K4 c STA $705 g, k; j: t2 ^2 {7 G
TXA! z3 r$ X9 G" @# m/ P/ }
ASL" i2 R3 T& W# }4 j, E' X
TAX2 O& y/ Z; R$ V$ l; N$ z4 {3 e$ ^0 ?
PORT_SET:
" q7 X! w7 D- ~ LDA BANK_DATA,X
`4 ?2 v G& x6 k& q STA $6E
8 Q% s$ q1 n* s# E LDA $CDB8,X
7 E3 q. S1 d% k) j* V8 U% \: F STA $6F% t2 Q3 @6 c# {) D9 M2 a
LDY #$00
, e4 w, _ `& O) Q& ` LDX #$05* Q+ Q: I0 S7 I6 J6 F
LDA $70% c. }$ ]- i2 R1 z
PORT_WRITE:, }/ j: }* @- x0 J
STA ($6E),Y% f* V5 ?* F% [$ U6 N
LSR3 Q& w2 }9 d3 |/ ?7 e- {2 w) ?
DEX: x8 N0 ?9 K1 E+ r2 u
BNE PORT_WRITE
- J0 F' a" X& x- B5 L9 l; x RTS( E- ]; I# t( N* b; _/ n
" j: ?: C9 z8 u9 g m. Y
" |9 i+ T8 [* f/ m, z# \BANK_DATA:3 q7 f: ^, t* {* R! x: d. [$ c1 k
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF. `: j; j. @1 |- [" h! ?3 h- \, Z
* [* t. _- }6 y4 ] , x4 H. N- K9 n3 {$ o) ?
;[FC][最终任务mapper1转mapper4切页程序]
8 T6 k* Q8 J4 Y8 E/ T8 w8 r0 m' j3 W .ORG $BFD2 ;初始化跳转
- K% F7 @( H; X, A JSR $FFC09 \( C/ J& \* \; D; A; n) g
9 p6 J; X% C' x
5 D$ b# {! }7 k" a2 j2 ~ .ORG $FFC0 ;切页* ^& s3 h8 @( d0 ]
LDA #$065 V* n* p- m9 J, p
STA $8000- ]9 N! m) F) Y: M# N1 Q/ E- c
LDA #$0E
/ Q9 I) @, W3 e0 W8 D, |) n9 p7 m STA $8001/ }# @# V( R4 Z2 v N& d4 b6 C
JSR $8000: ?9 s7 @. s& I
RTS \) C5 Q& f5 F' @# |( b7 M- _
@! [ g9 r: A' B- B) ]& m
.ORG $8000 ;数据复制/ g* R& { h% S/ g
LDA #$80: _! [# a0 C. R# m6 p0 s
STA $A001 ;启用SRAM0 e6 K$ U- s7 J6 a; V+ o
PHA) t4 s H3 V5 y& i% i) T) {- V0 p
TXA) Q- b" v0 o0 C5 G" }
PHA7 K7 V4 B t) u' m# C
LDX #$00
; d' S8 {6 z* |3 Q7 N/ SDATACOPY: ;数据复制, d; P* H0 U: g- d: {0 `& y5 I h. x
LDA $8100,X
0 Q8 S" E( Z$ d" J0 I8 I5 k STA $7200,X
7 ?* C# i/ L7 S INX
Y3 ^+ |' a4 L1 } X( J CPX #$00
L5 L! A/ l9 |0 U3 W' e BNE DATACOPY9 f, a8 X2 w) D: ~% A+ K
PLA& g( V, ~; o" T$ a4 C
TAX
+ ?# h, m) i. K: t$ p7 D PLA! \8 q0 K7 ?. r7 w
RTS
- D+ C+ A6 {: c' [% }
1 `3 N8 _2 A& e2 ^" Y0 ]) W9 E+ s: _+ X .ORG $CD9B ;跳转到转换的切页程序! T0 P; J( k1 J, ~( W# j
STA $708 A/ c5 q7 b8 u' b
JSR $7200
( K5 D" A! ^ M/ H, e" d RTS2 A% U3 ]: C% T. ~
8 _% @0 ~6 t8 O" @: S, ?2 e .ORG $7300
' d. C+ ]2 d, T3 f0 O7 pM1_TO_M4: ;切页程序' f3 I* d) d; @: M4 e. f
CPX #$00
; R1 W1 B; T/ m' {' _9 m+ v! f BEQ REG_SET. d& x: v8 p. Q, i4 S Q* k
CPX #$01$ `- u5 _( o$ L/ d; x
BEQ PPU_BANK_00000 m- Q6 m5 U5 L0 m: ?3 a6 V
CPX #$02; f" q" j# t. ]
BEQ PPU_BANK_1000& J/ {: ^5 R- c5 Z) D/ n ?& z
CPX #$03 Z: L- ?2 u) h1 x- \& p* l
BEQ PRG_BANK y# O5 n. K3 Y: h! J6 V- h9 U
REG_SET:
- K t% ?1 m- @3 g4 a STA $A000
3 D9 _2 J) {; K4 {# n+ a RTS, q3 W) `, J* M- n( _1 m6 U4 D
.ORG $7320
, n5 Z# _( j& y7 e" Y( x& O3 @: UPRG_BANK: ;PRG切页
+ b/ h- e6 I0 ?% X PHA
, S% [* W( Q2 v# o LDA #$06
2 U0 R+ z. x4 o/ v STA $8000
$ `- b: A1 Q6 g6 ~ PLA0 g. i+ ?0 z E! E# S6 _! C
ASL
; A$ x( L4 F% V! n4 m$ F3 }1 o STA $8001
; X! Z) O% q; q* I ORA #$01
" x4 ?) u. c7 k# P PHA
4 ~4 @. e. [" e8 P3 E LDA #$07
) a5 T1 i0 w* }; G; ~! {$ ~/ R- A STA $8000/ F4 ]& ]; m7 H
PLA6 N# e% g6 p. W3 g7 t
STA $8001
, p6 V, z! z# s% A0 A* {! q. N RTS
4 h- v, u- D4 w, h/ i5 c+ h .ORG $7340. p- C4 M/ p0 q) J6 m( w1 A
PPU_BANK_0000: ;精灵切页
3 {6 A) U& N* ?$ {* P3 { PHA
6 P% l, ^$ ~5 {( |9 [! ~ ASL0 ]/ w# B& `1 U. }, b( ^ e! _- F
ASL
! O2 e* C% Q/ S0 a( V6 K# b PHA
$ b, i- F" d1 M( _8 x; I LDA #$00
& } `1 \) Y1 g# F0 [ STA $8000
$ B, f2 x! K; g* {) G9 [' A2 t0 W PLA
7 s! ^" e3 S7 s9 U3 I STA $8001+ A- v0 E" U# s' i6 m
ADC #$02
5 O3 Z; \) b' u5 P" K PHA
! }) U! b3 t2 w+ B, j- J9 n LDA #$01
' E3 e+ W+ `# d' D STA $8000
$ e2 m# k8 O/ B PLA
# h3 u* W4 W' ` STA $8001
" ?+ n" S& i5 F; M: |2 D PLA
% e" E# y0 B! B3 u! a+ N9 v RTS. J) O* @9 O! b& p5 i
& B, Q; k2 p% N1 O; b4 L* x .ORG $7360
0 `# @' }) k6 D- cPPU_BANK_1000: ;背景切页
2 q; O8 y2 n Q PHA
" [9 {, K) h0 H w+ I ASL
4 F3 ?0 c! A8 l4 p' r. g: ?/ @ ASL/ S: O. N1 e/ b' u, R7 R7 w0 a
PHA
3 k1 V O+ h* X2 C( o6 K, P4 {7 p LDA #$02! |7 l1 i3 V) J" d: Y
STA $80002 z* v6 z' V: S B
PLA4 ?, R, h' Y. i, Q+ s+ r( \+ O2 K( }
STA $8001
3 j) U9 Q9 k+ a$ n' \ r ADC #$01* x- J6 k, j% g* m# c$ W
PHA
$ u, v, x% |2 v- l, f P LDA #$03
8 X, T# ?. Z( R, b. ~( g5 z STA $8000
: f# b; |8 c# O# r PLA$ d$ E# A3 r s5 ]/ {; v
STA $8001
: \7 a: {2 S( T& w. W ADC #$01( H. c3 C) o* x
PHA
' Z) e0 p: h9 J# T7 |2 D LDA #$043 F. x9 f6 n4 R. W
STA $80002 w( S( t( C% ]0 R
PLA
- }5 j s2 d4 W0 x, R9 n- e$ J STA $8001
! d. A/ w9 S1 m& l: c5 w1 [, P ADC #$01
' O1 @# Y( H! R" u9 h" E" i6 B PHA. l2 X E- D4 o0 |
LDA #$05* l9 V; ]6 c0 ]( v) y) I
STA $8000" f) h! N$ [, v2 l# P
PLA. h' j4 ?. s" [9 w' x) i
STA $8001
4 e; h0 j. s1 E& G/ T/ C0 d, D5 @ PLA
8 a9 v) Y% R: p. |& {' { RTS
6 B* s8 M- }9 \# | v h2 S, d) t: V8 [ b" M/ u4 ~% d
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|