|
|
;[FC][最终任务mapper1切页程序]0 V, M( z, r0 _& m& q, x
.ORG $CD9B
1 g/ \7 v5 j* wBANK_START:
$ |" c2 A& `$ B+ n1 K8 t STA $70
- ^& w8 i. y6 p& s, L* f& m8 b TXA4 H: M1 C5 _: O3 I
ASL3 i3 k4 m9 e0 o) Y8 l8 n
TAX R+ \6 g p8 \$ s, N3 ?3 {: m% \5 W
PORT_SET:+ \) ?; V0 a7 E: a
LDA BANK_DATA,X/ U4 @ U+ R2 D/ e. w$ [
STA $6E
# n9 i7 e: h2 ~4 H! S7 ~/ a LDA $CDB8,X
6 d% g8 f6 s6 u7 ~ C. L" U STA $6F1 |* J0 w% z2 ^. F7 }* _
LDY #$00/ ~# G) s6 Z$ S) G. j" Q
LDX #$05
- x9 N* B% ^ g! [0 ^ LDA $70
( p. L. W: M. U! K9 x' y |, [PORT_WRITE:2 r6 {! Y0 J- E. C1 S% F, _$ k
STA ($6E),Y$ W0 G5 J+ \# a) [
LSR
6 T, f8 k6 n+ |: } DEX# A; m2 T P* z+ c" {
BNE PORT_WRITE
. J! t- v$ U5 x' }( t RTS7 U( V1 X/ Z+ Z6 T) N3 }
* W) A( K8 v: K' M' O2 p
/ P# D. x8 _6 c9 K* `
BANK_DATA:
) `9 g' a: T* D .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
7 N5 i7 O" e% @& E/ k5 |/ g; s
5 ~; s4 U$ f; ?% X. E ; @; [# q" c8 ~8 {( _
;[FC][最终任务mapper1转mapper4切页程序]! M; U3 X+ ]2 p4 g
.ORG $BFD2 ;初始化跳转
0 S0 O+ w9 ]$ X) j) Y6 Q' f% ?8 B JSR $FFC03 F9 O. [% Y% p1 p
3 i' {4 F& G0 v( o6 y& Y( o
6 P7 j* z8 m+ @% C, I! n/ k- G
.ORG $FFC0 ;切页- H+ F; {. p$ E
LDA #$06
5 l+ @1 H2 i5 S STA $8000
/ @: }* l$ ]- L8 \- S9 d5 Y LDA #$0E
+ r% ]5 W l- G m STA $8001
; \3 t5 n: O# Q6 Q8 K JSR $8000; H! e8 c; F: i9 b/ T
RTS
4 v b5 w3 F4 S: _( m! i+ m 3 a0 n8 g$ D$ t7 m
.ORG $8000 ;数据复制6 }9 g# f+ f1 O# x0 w+ g. e/ @8 j
LDA #$80! u- T, w- Q5 P, J6 `2 P6 A9 c
STA $A001 ;启用SRAM
6 q/ u( @/ B* X PHA
|7 Y' u$ a5 i. _4 \( B TXA; x: a4 a7 q! @% p2 m7 ]
PHA2 J v' G6 {; T; A( L& R5 q
LDX #$00
# c7 E; B* I3 g* BDATACOPY: ;数据复制: }8 x, O7 X! } B- C1 @4 O" g
LDA $8100,X) N0 t4 E/ \! F, p& F6 A* U8 r( A
STA $7200,X
) ~/ c3 T: k) s& S1 ]# E) G INX. j; K) l' T. D7 @
CPX #$00
; x& m8 \ r$ y7 A6 [0 H& | BNE DATACOPY5 ~3 t3 k) A* y$ P# K1 b! B1 N2 q
PLA; e5 w1 w! s. n5 k; Y
TAX- L$ b2 D$ v6 c, m
PLA4 w5 y8 [2 Q0 c* u
RTS5 m2 r5 u/ q$ ]+ x
0 a/ ?0 Q+ C- z8 F. e! l$ D1 z! x
.ORG $CD9B ;跳转到转换的切页程序( y. @! a, x0 {* a. M
STA $70
2 D! T8 p' @. W4 r7 g. V JSR $7200
" X' s$ G% i4 m" y. L% o: n RTS* ~5 c; J$ e2 P7 T) i
0 k- i" g6 |4 p1 s9 ]6 y1 A! V9 r
.ORG $7300
4 u, U6 X: o h+ x3 K% HM1_TO_M4: ;切页程序
5 f1 W( r+ \/ B" X& c CPX #$00
6 Q w* q. U. X) ?% x BEQ REG_SET
1 h3 [ V) C9 p5 k! l. X CPX #$01
' \4 \& o! G% l _! z- B BEQ PPU_BANK_0000
! L3 l! V/ a* L/ q5 B CPX #$02
7 O _; ?4 M+ d; ~: v2 ~$ ?0 C- m BEQ PPU_BANK_1000 x( x- `3 H# S/ v; ^4 F
CPX #$03' M2 E* u- J+ ~, S
BEQ PRG_BANK5 e$ t: ?- y8 i, g' G" ?( k
REG_SET:
3 Z; L* ?3 g2 g, Y& k STA $A000
+ X d1 p* h f& ] RTS( q2 [) N' J. v7 h. M# ^7 v% n( T7 c
.ORG $7320
, Y/ B8 S- p- P. \) y- V) _3 MPRG_BANK: ;PRG切页' z5 \0 d& f6 d/ P& D
PHA2 o7 r: v6 ]8 Y5 |# ^
LDA #$06
( t# F' z" I6 C5 X1 b8 Z( ~ STA $8000, d* b. n" A: B
PLA
! ^ c8 ]4 W9 ^9 G5 C ASL" ^: }9 S- [& m9 [9 F; ?
STA $8001
7 |" F1 s% ?3 e7 U ORA #$01
5 k. h8 U% v3 K! Z \$ R PHA* X2 f4 b4 @% ^
LDA #$07
2 `( S2 X. R0 B+ i* N( v STA $8000
" z+ r9 [7 ]" X: `# h$ p PLA
* l: M9 [; B# @, H7 I% l% j4 Y5 G% l STA $8001
7 P3 F: P+ Y, @8 o9 f RTS! @3 @ o1 {8 Q' {
.ORG $7340! h/ E: `0 K: \5 S5 v
PPU_BANK_0000: ;精灵切页
" [7 ?- S0 u' b( C# f, K, A& a PHA
/ \4 `: R+ m. Q; U ASL
* H' L3 W I8 U6 L5 r% r% K ASL
8 ]& ]' j6 a# d+ `/ V PHA& N( n6 V" i+ ?4 a; m
LDA #$00
5 v j0 U* q+ |2 l; \: F& Q7 v STA $8000
4 e) o6 j, Q/ U! j# \ PLA, r, O% F5 ?, C9 a* T4 r+ A
STA $80013 A$ B- W: c P& y+ h
ADC #$02
! `4 s) [ w$ W- a2 ]+ D PHA8 s F# D! w: U
LDA #$019 I8 g+ b0 {$ |+ q
STA $80006 V8 K" V! P' ?: S, f4 z
PLA
! b9 S) b; X- ]1 l! M0 j ~ STA $8001) i" J% u5 i! B7 Y
PLA& F _ ]! ]/ [- e1 l5 W
RTS
# O, Z m* p9 u D: y+ [2 u5 r
}4 K" r, c/ X& }2 j .ORG $73609 e/ X6 {# J3 i" R% O, k
PPU_BANK_1000: ;背景切页! t/ U, a. ?# k6 R8 M3 r2 H
PHA3 y7 S1 r7 p8 Q4 H& ^9 T0 t+ s
ASL
[: T; o. l3 X8 o9 D" G( | ASL
1 V3 \2 U1 B) O7 l PHA
- L0 D H) d6 {4 p LDA #$02
3 X. ?! S. p9 T; ^3 a9 z* ^& B STA $8000) ?9 I/ ]! p) ~6 F9 o
PLA# T7 P- k" c9 Q( d$ i i% c
STA $8001# J7 r5 F. b) s+ c% _
ADC #$01: B8 W( [3 y1 N7 P9 P
PHA: D9 c4 B( |. d: E* F3 R+ c
LDA #$031 Y# }' I8 N% r) O) v; q! x
STA $8000
6 d: v/ Z' p; `: p% p& V1 ]8 y PLA, g# {( W( v" I+ s; {5 B: @
STA $80010 z* B. d9 b6 Q& L2 d
ADC #$01
. \1 l g- J" X/ r! U7 c; n& \. T PHA
( K1 {/ D0 q4 l6 m7 M9 B LDA #$04
/ h. {% e2 w' H1 g) V STA $8000; g% Z, c# W' | E1 l
PLA6 d' w, Q; J0 _1 {
STA $80013 t0 |. ~- k5 O. v8 E7 n
ADC #$01
( K( V. }& L) m PHA4 F/ O0 d7 [# A
LDA #$05; Y2 a; _; B6 h9 [6 k' w1 y" M
STA $8000
; _3 f8 f: O* o/ Y! B PLA
0 {1 p" {+ X. J9 E/ }7 ~ STA $8001 t+ Q" d, e) j' l1 a4 ~
PLA: @/ w" S- |1 Q$ I5 t! _) o
RTS' u' B4 H' O$ d, o3 Z4 _
% o, O% V2 W5 O/ M; \
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|