|
|
;[FC][最终任务mapper1切页程序]7 i, _; r; |0 G; q% {
.ORG $CD9B
; {) W; y6 Y" W5 V; VBANK_START:
3 g2 t; i1 E+ o) [ STA $70
5 G X* V! e# w2 b: P TXA
0 z- D% \( I. ]: e! W ASL+ q: ~# p# r9 f0 m; a
TAX
: N) N* O+ G! V6 S, D4 Z5 g' ?PORT_SET:2 }3 h, F0 Z0 f) c4 t P- Y3 x% L
LDA BANK_DATA,X# l/ o# Q" u e' Z2 J
STA $6E1 ?+ D5 ~1 e$ h% z' ^
LDA $CDB8,X7 ]% T( \) Q n! R) L X. ^ N
STA $6F' F* Z4 G0 g5 Q% X' F
LDY #$00: c! _4 j% H1 v7 q8 |7 q
LDX #$054 x. q7 n0 O6 t$ D, H) Y: o
LDA $70
, [8 B- U9 G, X. W$ d/ a- WPORT_WRITE:
/ a5 c' U. C" P+ n% G- r( O STA ($6E),Y
, j: N9 G0 T9 a: z0 ]! e3 W0 L LSR6 Y. l! d" }0 n/ k7 h6 d
DEX% j+ k/ Z* Q* g( o1 t: Y
BNE PORT_WRITE
* v" m9 q' U* f8 f, g$ v RTS
: J9 \7 c5 m) c5 | V' Q, ~; R* P! f# K0 ?. M' `; j
! k, Y* j% m+ {9 k( x/ L
BANK_DATA:, s$ w' ^1 r$ M. u$ F4 E
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
s5 b( W! ?, L$ t
% a" `2 L. Z" S3 |
5 K2 A8 f9 l1 k; H; W \;[FC][最终任务mapper1转mapper4切页程序]$ X# W O4 Q" I$ c# K+ @. T
.ORG $BFD2 ;初始化跳转+ b0 E5 M+ Q* `* ^, K" H( S
JSR $FFC0
0 R' k6 `) y; P1 |4 I, i/ t/ Q" ~5 }6 e
/ t/ L: {- k& _- C |; g .ORG $FFC0 ;切页
- u1 d2 b w+ C3 a4 r" X& e" v7 z& S. l LDA #$06
0 l+ v& {: l8 q4 r& u2 h STA $8000
' ?5 O" c8 Y9 H LDA #$0E
& L* F2 A; d/ i: J# {% t STA $8001
8 [6 f2 Q6 y; n* H1 y2 a1 Q6 ^* D7 k JSR $8000
+ K4 ^/ ?1 @. y F+ m+ x RTS ) v n# S0 D" Y+ u+ l% [ f
7 C J( ?) C, U9 C. s( ~! z
.ORG $8000 ;数据复制
& L3 t2 Z4 R/ M+ S, M: S LDA #$80- c5 L' w( s1 _1 V" a, q. j
STA $A001 ;启用SRAM
0 i) G% ]6 b) W+ C* d2 b) @3 \ PHA6 v" {6 ]+ Y) y: ^" T' }% m
TXA
) ~! ?- D9 ]: a0 p S PHA+ x' M6 {$ U2 }- c* [) \! f
LDX #$00" l# W P- A2 L0 @* ?, o
DATACOPY: ;数据复制
9 s) X4 }2 T7 s9 c2 U2 ` LDA $8100,X
# S; u8 }# K& n& n' B% ] Q, f) O, v4 F STA $7200,X
1 A, B' u* [" w INX
# G" i+ I. s# d2 K" y! O CPX #$00
& L. i$ C# i$ ~: f7 j5 A5 v BNE DATACOPY
/ x6 K! d: M2 X6 X: `4 ` PLA1 a" \; |" L1 E1 z( a
TAX0 e- L5 G* i( Y- V9 I: A$ X0 w
PLA
0 E9 R- L. R" U. @: w- {- d1 ? RTS$ |. ~4 }. ]% L
, O3 G/ t1 F( S: x, w' Y4 l" C7 K
.ORG $CD9B ;跳转到转换的切页程序
* k0 \" ]$ X: R: }! ^+ f STA $70
; t- W: ?: o2 Q JSR $7200 N/ r i5 @' w0 n) ~2 v
RTS* y+ B# h- k! v t3 M
' t- c1 M1 ]( P. F, A; M
.ORG $73000 J% Q; S. [4 q3 z5 J' E
M1_TO_M4: ;切页程序
, k, @: d# r1 U# l8 L- w& w CPX #$00/ a3 Y% y; X5 ~6 w% M* F r
BEQ REG_SET9 N! F- A' j1 }1 i9 _
CPX #$01& ^6 N% v' @" Z% P. f$ _
BEQ PPU_BANK_0000; d1 p. N2 P* }5 M
CPX #$02
) r4 V9 ^8 U2 Y7 s6 K1 ~4 D BEQ PPU_BANK_1000
, W7 |: R2 a I' }0 e3 c) ~, p X CPX #$03
; K7 Y0 }* ^6 p BEQ PRG_BANK
, g& f! @8 E$ ~" B5 F0 eREG_SET:
" L3 p! X# B4 x' ?/ r STA $A0003 I, `5 z4 }- V3 i
RTS g" N p( H9 q* u% v
.ORG $7320
. j+ E- |( H8 ?* \: g9 C: PPRG_BANK: ;PRG切页
$ z' A9 B3 X8 u* y PHA' `! u: q9 h6 h. T& p. @$ f. {
LDA #$06
2 d. _$ c8 ~" u9 \ STA $8000/ S$ `2 m; J! s& Q' w( [( C- T
PLA
7 |6 T" g1 Z0 H6 `) i: e& f/ p: ^ ASL' c" H; z% }$ x J5 p( J
STA $8001
( W% m+ O; n2 S* b, }9 U% U ORA #$01
+ g. O8 l4 g s2 |+ v: [8 \, s6 I8 t- S PHA4 `# ]9 O) w" y8 i& O2 V" p
LDA #$07
% E4 S1 f/ G% E8 }% Z: E. L- _5 f STA $8000* ]3 R/ \4 [- Y# c- `
PLA8 a, Z8 o# [' L T
STA $80012 j* U7 _! c1 p# {; L: {$ `
RTS# q: B z0 y+ @4 z3 c- ^+ l
.ORG $7340- {$ V# n& s" L# n; j0 j3 S9 b) I
PPU_BANK_0000: ;精灵切页
, @6 b+ n0 G0 I; f( | PHA
4 @& O9 y0 ^0 o$ s3 H( A9 v- `1 u ASL
, u! }1 R: U% B) ?$ q0 P ASL
8 g1 L% b# h/ _9 Q PHA
9 C. S2 b/ I' q LDA #$00
5 [% ]! {6 d( y- b% E9 ~ STA $8000
& X0 I4 f% y/ z' ^ PLA
7 `6 P4 f0 ?1 t# b" f1 G6 M9 r& O STA $8001
" r3 K' ~5 A" Q# C, V ADC #$02
# X" ]9 \' L, S. H* y PHA
& G1 w) j O. {7 @1 \ LDA #$018 \( }0 Z/ z# |/ L5 w4 O
STA $8000
7 f3 b3 }: g/ J* f) ? PLA% ~$ I: I& U" {4 Y" Q
STA $8001
2 y! D! Q8 P8 Z" _" P6 m- S PLA
4 H. A7 I } @& B! s7 u RTS3 V5 G) ^+ {( ]# z
; t9 g4 U* F! i; A3 d+ ?- ]' ` .ORG $73602 B4 h7 m" c1 A% e1 k, T
PPU_BANK_1000: ;背景切页& I' \; C ]/ O7 y
PHA7 |0 M5 u! w7 L. k
ASL9 m2 r% P5 i' t A
ASL6 ~/ z* o5 l% M4 s% S. a* Y
PHA4 S p# X' G" `0 F& ~& n
LDA #$025 E6 T: k& h/ e. j
STA $8000
: a: {0 k+ X! U3 s1 H PLA' [. l6 C7 j3 t" h- v$ n! C t3 z
STA $8001
; [ ~% D+ G1 Q X ADC #$01
; t, ?0 d9 w, N8 X- x9 x PHA
+ r3 Y6 k" U* y+ {3 }# ^2 E LDA #$03
/ l: @8 [ i6 z% R' H STA $8000
& F6 f* R: j* e3 p* k" Z PLA* K1 ]* ~3 u/ ~
STA $8001
1 N$ K! X( j) q% Q5 p ADC #$01
1 ^% X) o. L. }* G% Y* R2 [: C+ q PHA
! |0 S" s* `4 g2 ?; ` LDA #$04
( o% H T+ E/ Z3 Y& x STA $8000
- C2 |2 f6 u' } B: F PLA
5 a- [! j) b5 o# S8 t STA $80016 q) N7 O, v. v) z' ~( |4 u- a
ADC #$01
3 @4 _/ q( D4 c( B |% h PHA% Q6 {8 z$ V2 E% @& c3 U
LDA #$05
$ D, G! Q( a7 s% ?, ^% ?" O5 y STA $8000
: p% q8 I- ^/ k5 L2 D6 ?: H PLA
% {* v1 E, ]/ o/ Z& B! S STA $80015 b& ]& H% t+ B& b
PLA3 P4 Q7 Q: e; t/ S
RTS& u, w4 T+ W$ M# w9 w& G" @
6 m8 N8 d9 U% Z# B; V |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|