|
|
;[FC][最终任务mapper1切页程序]
" b* ^3 l9 H5 j0 A, s+ G .ORG $CD9B% P' I2 B& p2 N/ N2 c) V# h- M* I
BANK_START:
0 Q- i$ C( P/ B2 w6 d$ J1 T STA $70
. I1 L. R* H; K TXA; i/ H; z2 ^0 k# ~
ASL' S& X: l# v9 O8 j' g' [
TAX2 e: f, _6 u9 G, ?2 [7 ?
PORT_SET:3 Q! j$ M; M% ?7 \; I4 C$ R' M- @$ R
LDA BANK_DATA,X# T, w. H$ Q( Q; X
STA $6E
3 n+ i- Z5 {# h& _ LDA $CDB8,X* x ~& W" _% C" e* C4 \0 p9 r
STA $6F( E7 z6 n6 j7 \1 I) H' w
LDY #$00, S5 H V" R2 L0 _4 o
LDX #$05
( N7 ?0 ^! g# o, `5 P% R3 X7 T4 P LDA $70
6 \! J/ E4 u5 Y O0 d8 {3 dPORT_WRITE:
# ~) N; Z( h1 a5 F STA ($6E),Y
3 z, K1 v p8 u8 Z/ T LSR2 i; f# _) w+ C+ S$ W
DEX5 V5 ^& {0 W/ E3 n7 M- `5 b
BNE PORT_WRITE
: B2 ]$ _! T& T& q" A* x# v1 w RTS
! U% L u6 |& D' n5 X5 [ 6 A( |5 r3 Q0 y1 e$ i
3 v2 s6 V- K, k8 H2 t) p0 x) _# sBANK_DATA:1 S5 p# i1 I& w2 ~0 c. ?" ?2 Q9 e
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
. {$ p& l5 _- P5 T: \. r
$ ^, Y& P' g/ e, |( Z' n% e7 m . c1 r8 `' B2 P3 G/ f: Q
;[FC][最终任务mapper1转mapper4切页程序]' X. z' i' U1 C1 W, j0 ^
.ORG $BFD2 ;初始化跳转/ q7 L' b5 a: n- a0 |& R$ m$ X
JSR $FFC0( F- ^" [: q2 v6 e! ^
* ^: I# c' b+ J( ~) i+ d0 P7 P( c1 `! J. h
.ORG $FFC0 ;切页% p2 t0 c6 `( u+ B X( y _+ n
LDA #$06
7 [0 F3 |2 ~8 i# F s8 `* f STA $8000
% Q7 [2 w% `+ C3 `. { LDA #$0E2 |/ g: Z5 R' Z7 @+ ^0 I' L4 Z
STA $8001( a+ m1 C; P: V, D" G! Z
JSR $8000
; ]; Q4 y* d" t+ @1 W0 @ RTS
' d2 C; j" F( P
9 q# l! w2 r7 K% _. Y/ o) T7 G .ORG $8000 ;数据复制
6 W' a. j* l2 Y; V LDA #$807 B4 ~: V1 G9 l8 }" Q! o! b* J
STA $A001 ;启用SRAM; F& L5 p5 h- M% g$ }% P
PHA1 E* J# b7 Z5 Q
TXA
) p- g7 j* ?2 W: p PHA
5 G6 D# {) Q8 w7 z4 w4 g0 _) I) Y/ Z) | LDX #$00
# e" m: k- x1 ]; m) [: n" |DATACOPY: ;数据复制& e7 M% [; o9 Y7 H
LDA $8100,X
& _9 Z/ |$ k+ Q" }* S STA $7200,X
7 `6 M+ n( @9 Z8 d0 m) T; v INX- T2 H6 Z- L) ]+ N2 ^
CPX #$00* a. F$ S! R9 N, e d) P
BNE DATACOPY9 ^. |8 g$ E/ D- B( J
PLA# x4 T+ _# g% Z8 M8 k
TAX- K. E8 G: m7 f/ ?
PLA" H# P, j) q$ L! P% _ Y
RTS
5 I! l5 s j& k& z8 @, i) b, d" N% z 4 Z1 ~6 r: K% j! _: b+ \) v
.ORG $CD9B ;跳转到转换的切页程序3 ~/ W/ ?) I+ g- S; ^
STA $70
# @% G( `' ~+ I) G" W. o JSR $7200
6 S, o2 b" v1 r3 a) z5 _/ @9 K: ~ RTS
8 A" e, |! q" h' J/ i8 B" _4 W3 } # h+ T8 H' X/ h5 W1 ^$ E/ ^
.ORG $73008 j. ^0 Y. P5 a: s
M1_TO_M4: ;切页程序* h5 `3 H, j. L
CPX #$00( R; |, @7 E n; Y6 U* Q [
BEQ REG_SET2 W4 r0 s% Q* f- }9 b
CPX #$016 C) l* s4 f; ^1 k0 s" m" L3 q0 C
BEQ PPU_BANK_0000
+ W" s% E8 {1 H7 }6 | CPX #$02
+ e# [. t" _7 F" r' [1 @ BEQ PPU_BANK_1000
! G4 _9 `6 m' u; K$ _. ~: e CPX #$03! m8 B7 }9 k: R' p0 z3 `
BEQ PRG_BANK; o/ G8 ` O% {
REG_SET:
# N, X, C9 {6 t5 \: ?* a0 {4 S* m7 G STA $A000
{" h1 J! ^& B/ l! o4 O RTS' P0 K; k0 U2 c' I0 W. r
.ORG $7320
" e, u9 g+ ~7 [: l3 c& xPRG_BANK: ;PRG切页9 R+ f2 E3 U/ S
PHA2 f% S. f' |/ E* s
LDA #$06# c! g; C/ H# l3 r5 r" O
STA $8000
; w, ]& k( I7 ~$ u4 D$ {+ T* P; D PLA9 Y7 J1 Y9 x+ c
ASL
8 A, M1 x* v4 ]/ p STA $8001. ~( H; N2 ` x" w
ORA #$01
. t( _) a- I+ m) b* k* j0 L PHA
6 P( Q% s4 p; T6 a# `! W LDA #$076 K9 h) p8 n* g
STA $80003 o* p; i7 M6 Z! N K& g1 L
PLA4 T8 x/ W) U0 L% `0 F, f; u% d: R
STA $8001
* C" J; a' C: t. x/ T RTS! N8 V) [% T, Y4 f6 T
.ORG $73407 {; N7 H+ ]2 {: I. g5 a
PPU_BANK_0000: ;精灵切页0 W6 c: s! B5 ~6 z
PHA. ?8 P! r5 f* R( @
ASL
) {5 V( I1 O3 e5 S% r c ASL
! V' J |+ O- s+ w1 A9 N PHA
) ~0 G1 r E- z8 V6 ?4 a* h7 M LDA #$00
. B/ A E/ j6 }% _ STA $8000
7 j8 h, B) K% a: R/ n PLA
, }% X8 m: [& L* J1 K- C STA $8001
! K9 {0 K5 E4 q* V; N ADC #$02
. E$ a. d3 D( V PHA
+ Q5 q% j |) ^! P, L7 V LDA #$01
& R6 _ y8 T5 \7 P+ `2 N STA $8000# v: ]7 U: j9 C5 `1 a: b
PLA
+ ]0 c) S& B% X) H+ B STA $8001
2 Z+ ~, \& M& g3 n. \9 @2 { PLA
5 y* p2 Y1 {; ~' Y0 F( m ? RTS9 ?6 M( _ \0 K& s
8 K X( f" s5 h) o
.ORG $7360* F1 W. P0 p/ v {; Y: S
PPU_BANK_1000: ;背景切页
. J- H5 U) K: J5 T1 W PHA$ j( G- k* }& a: _4 T* V, T2 l& _! M
ASL
9 a9 k4 Z5 |- } ASL2 |& |' {5 w! R' p* A% A
PHA# v* {7 I d5 w0 E8 x
LDA #$02% J0 B& B& i3 `, {9 P7 F& C
STA $80005 U/ x2 G: l* ?' J l
PLA
2 U* ^7 I2 l) i7 L STA $80014 L! ^. b% b) G$ `$ f- n
ADC #$017 P: N" W0 }) H
PHA
+ `/ K8 u) O7 u4 J: G2 e {1 u, X LDA #$03# ]5 ~) O5 O. ~! W. p* M6 C
STA $8000
! y& ~8 S# k9 e; y$ Q" N( y- z- { PLA
* N/ C* l9 w6 t; y0 U, L+ V STA $8001% a3 k* [; V6 d0 f2 k' F
ADC #$01
; J2 J- P: T7 o. Q5 H2 K PHA
, b" h( h$ n$ r n! I. [ LDA #$04
6 ]5 [' U5 L0 o# { STA $8000
7 n L, z: b' a. X v1 H" A PLA6 s8 d: o7 P k$ a5 @
STA $8001
( H8 @6 ^$ U, w+ a8 P ADC #$01& z+ w- y% E9 ]; g! M" O2 ^: y
PHA4 I* F/ y6 z- q B7 K! v+ v% Y( G& j+ J
LDA #$05
% Z) u7 W4 \ K" p/ w STA $8000
! c5 Z& M7 k& S6 q F7 x PLA0 v$ L& ^$ M% ]: K9 M1 k
STA $8001
6 Q0 ^# i; |+ k2 u4 ~/ o PLA
' O4 b* z+ R( W) i RTS
/ } Q1 ] O$ s' W3 y
1 k2 |! i" t* f. s- ` |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|