|
|
;[FC][最终任务mapper1切页程序], Y( _- ]$ ^* Z
.ORG $CD9B
9 @! P* _* r9 p; \0 PBANK_START:' F$ X9 s0 y k! n1 ^$ }# X
STA $70
2 p: p7 [8 Y& x/ K TXA
* K/ p- [% ?/ O J' O% c0 x$ T2 l2 b ASL
1 K. r$ @8 @5 G% M" E0 G TAX, v2 i* j- \. t/ B) d
PORT_SET:
' f+ p, s/ \* G" n; u LDA BANK_DATA,X
0 _) W7 l3 c. U; Z! {# [ STA $6E0 O) G0 B/ a0 B, l: l0 W" R: G
LDA $CDB8,X
) C! S$ x, t) Q0 l+ X8 ~ STA $6F% ?* V% `# _ o5 ?
LDY #$002 z/ p1 z4 u. V, w/ }! G: A5 T
LDX #$05
9 m) R) U! T# D( ]" \! | LDA $70- T1 U1 c5 ~, k' ~) V
PORT_WRITE: n) d' E7 n# x9 S4 F, l
STA ($6E),Y3 |4 `5 P. h# H: r
LSR
3 L8 `; I4 Y5 x% {% ^4 X0 z DEX
2 X+ b5 g: _0 d8 B BNE PORT_WRITE
( x- v, r% I2 H: j RTS" u7 A% x% d. G9 g9 W! p+ |7 O1 W
! y8 }4 {8 N0 S1 x# `1 @0 w, c% @& k
: h2 `# F$ r) Z# W: u Z, g0 DBANK_DATA:* j. G8 f, w( [: I" K" ^2 t
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF/ B7 P, W, p! V5 k( [* T1 y4 Z
# J- v5 s. C' u9 U3 S1 N
7 E; V" ]# d. [' L7 `' C8 H3 @
;[FC][最终任务mapper1转mapper4切页程序]
( R6 e- U. p* S6 M+ w* d9 _ .ORG $BFD2 ;初始化跳转
: E" b* L. H y) m8 v0 a3 z; [ JSR $FFC0& u8 u' a" u8 r. C& A
2 x' b7 v' L/ g% W0 U8 q$ s) ^4 v4 Z% m+ x9 _4 b* O4 `& k! B
.ORG $FFC0 ;切页
2 E& o) w7 {5 i: L LDA #$060 e: g3 H# _0 {
STA $80008 l" r3 }0 M! ?* \
LDA #$0E
( U0 g! W- n- E. x STA $80015 P' g8 t! k5 u0 O( X# {
JSR $8000
5 g, K) I: d; L/ z7 r6 p RTS
% D7 U: R8 X0 s/ ]
5 P* N6 R3 Q+ ^ .ORG $8000 ;数据复制
& o9 g2 d# G6 t LDA #$80 W' y2 g# p% ^6 O/ f
STA $A001 ;启用SRAM
+ u( ?3 L, `& K: V G/ P! H PHA
9 ^0 @& M; e* Q7 x+ b TXA" \3 [3 D8 s. R5 k1 c/ N2 i
PHA
2 R2 r7 Z; V! h! H LDX #$00, q4 ^0 \/ p; F. F' ^7 c9 Y
DATACOPY: ;数据复制
- {" {6 u" s0 }) o7 { LDA $8100,X
. A# @# R8 X1 g- h, A/ l7 [! [ STA $7200,X
# J& `) I! O! Y* `- g1 M( d% \6 M INX2 E2 ]; K0 V i
CPX #$006 _# {% }# w2 E! @3 p: P! w; ~
BNE DATACOPY8 z. b8 F1 g- X* F1 k
PLA
2 g' G; n- d4 j m; v5 ~, Z% g TAX
* E% s+ ^0 X0 ]- ]7 \ PLA, a, D# P+ G$ r C1 [
RTS/ v5 ~: C2 s. y. v/ e7 f. }
3 K3 ^: n+ ?) T& j4 m
.ORG $CD9B ;跳转到转换的切页程序3 ^ J8 `" K7 v u* Z/ x! [
STA $70
1 e: G2 `5 q6 N JSR $7200. _# h. H9 v: v
RTS! k4 H5 l) _" ]% l, b# o
) o; Z+ n" \, v .ORG $7300
% v- e6 m4 i: H2 d }7 G* B/ c- MM1_TO_M4: ;切页程序% W7 S1 D% l7 }
CPX #$00$ o$ Y' u& ?) W+ A, Z' E, D
BEQ REG_SET
5 M! a* g( J& ?5 N' L7 N; s- z CPX #$01
3 \( v2 g x) Y. L BEQ PPU_BANK_0000
. O. {( J: Q3 K& F' ~ CPX #$02- A9 }# E* A* t: T& L
BEQ PPU_BANK_1000
0 W, r/ W9 }6 R5 ?4 E/ x; A. f CPX #$03
% l6 B# p% k5 q- f5 ?9 x6 F BEQ PRG_BANK, a. O) E# m- _2 c7 K8 I
REG_SET:( n2 `, t0 b# V4 @
STA $A000
/ `! ~ |. w4 \0 D% j RTS
9 O1 s! ^! E( c3 V6 M5 H9 w# i .ORG $7320, H* |; i+ `% Q- O
PRG_BANK: ;PRG切页
]1 V( z( M6 H! w8 n8 F& R PHA3 n, j7 q- h7 I! u9 D
LDA #$06
7 l6 f5 C! Q6 Q7 l0 m' S STA $80001 O( P$ a. D& {9 z( S& u! v
PLA
# L. P* F l+ Y% c/ }7 o2 T ASL
$ Y* E6 J x7 K. } STA $8001
, x7 `$ j$ l) p5 w ORA #$01
; q% H/ T' U. _- v PHA6 H; K. r0 c. x2 {8 c1 U; P0 H; b
LDA #$070 j5 W' W7 m# S# ]5 F+ A
STA $8000+ I5 H. w; q2 P$ s9 G
PLA9 [+ A' c3 g1 `1 O+ K4 V
STA $8001
- ^8 k" c; ?3 C" [. x6 h RTS$ s4 E" \* r! _+ D0 j( j
.ORG $7340( K. d! M- d; J+ g- Z
PPU_BANK_0000: ;精灵切页( C D9 [9 s, @" v+ t
PHA
3 O4 h) f' X, Q; Z ASL/ z# w) y- {, N. _3 ^1 K$ d
ASL, N+ r, ?2 n$ X" I* V# @" i* q: u/ a X, y
PHA
# D( f) B& Y) y" a9 Q! C# _5 X/ c- U) \7 x! O LDA #$00
e6 ]4 a7 ?" ] STA $8000
/ G6 R1 A; n; i/ [. A9 r. o' Q PLA/ i0 X: _. h# P6 I% s3 N* [+ f
STA $8001- i$ G5 E l2 O4 r
ADC #$02
/ @. m& ?' E* |5 C3 r PHA& i" m! L6 B' k
LDA #$013 s7 a, M" O. a8 @6 k$ n0 l
STA $8000
' ?2 L! x; O# S* m+ S PLA
, T! l, z( p3 k* E* X6 r- t STA $80013 I2 d) R( Q5 k8 s! ]
PLA. d- y$ `& G& a) ^ r0 I0 j
RTS
' U( e( X/ w/ [, F. a [- V0 ?0 F4 m4 u; b: M
.ORG $7360
D5 T0 B" H; L$ YPPU_BANK_1000: ;背景切页
. [" M' P9 f# O0 P) ?' n$ ^7 D5 q PHA* ~4 `0 G# _9 k* E0 y" R7 a
ASL
% E8 Y/ a B' P5 r3 t ASL5 F; i5 V6 Y+ `! a8 G7 ^
PHA; ^" G$ o( [1 z5 W2 X% h; ^: B/ Y
LDA #$02& r, Z& |% f9 X& O& g) J3 k
STA $8000$ V: u4 R2 o5 f% l' h/ d q
PLA! C( S) w* N# L! j0 Y" @- O: m
STA $8001
8 `6 E8 j) y1 Y; O& n: e8 f ADC #$01
% [* U' c% v8 G; p4 b Y- C# f PHA3 s! R% i! ?. o, f( ~3 Y
LDA #$03' R9 w2 S) z( F( D
STA $8000
6 _, E0 m0 W7 ]% S$ F PLA% e& X' U, W1 x
STA $8001' P' r6 P# t1 G
ADC #$016 J9 `8 X2 B6 I( q. \8 `4 i+ }" F( A
PHA% M P5 M& r2 a/ e5 U$ e. B
LDA #$04
" y7 K8 }$ F+ w1 g Z6 @# H STA $8000) S* ?9 z2 [7 _+ V; O* M
PLA. j0 u% ]) E* S% _8 Z
STA $80012 K3 p6 a1 I) h- |
ADC #$01
/ d9 H. Y; j$ j, E; ` PHA5 t' T6 [( M, r; ?2 \+ B
LDA #$05
/ F" L; ]3 F. |, t( x5 c STA $80009 x Y4 j- F$ b
PLA
" Y; A1 f9 Y. c+ g. U STA $8001
- i' q& t$ E- M0 z, Z8 u, x1 w PLA
1 [ H2 ]. j4 n; } RTS
" n% d* w. |4 Z, [ a; H* K' } G( t ]% f. @
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|