|
|
;[FC][最终任务mapper1切页程序]
& P% Z! U" i% |7 ^ .ORG $CD9B& p) }7 w8 S9 _6 w9 \ w) U3 S R
BANK_START:2 @" D2 h; `4 m, N! z" p4 k
STA $701 W; f& k7 L- p' I
TXA
6 `0 k: v& l \- O& B ASL4 a8 C1 W0 H$ B% N! ~6 z
TAX+ C+ c' U# T! p. k2 s9 `) L4 a1 r* Q
PORT_SET:
( N9 S: ~% o+ q; F( Y LDA BANK_DATA,X
U: e, v! z# g' m+ l$ b6 T STA $6E
( {3 \0 s# H! Z5 C% f LDA $CDB8,X
$ O' a; ]5 e7 r9 [& f STA $6F
' j- l N: T2 f6 i- _, n LDY #$00( g2 r& z2 J9 a$ |1 e
LDX #$05, f! {6 H; g* S4 r! ?) k% n: C
LDA $70; B- ~: d; m0 F8 a8 R- U( a+ i
PORT_WRITE:
9 J9 G( K" V$ ~, d STA ($6E),Y, `" K$ H$ ]. X' h8 ?( Z$ d
LSR
, L6 _6 j0 J( x6 w" z1 l2 @ DEX |0 j0 g, o2 E4 o, i
BNE PORT_WRITE
/ ]; m. G. `) v) j RTS
- w9 L: Y6 n6 E \) G( [3 I
2 B7 v* S: A. a& n' R/ p N
& d( f! u8 W/ g9 ?BANK_DATA:
" }/ I7 B3 a8 R( k7 o .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
7 `! O; M: C* F- C
5 ], y6 k" Z: ?/ [+ u
3 M/ T1 u" _8 I0 H u;[FC][最终任务mapper1转mapper4切页程序]
! ^4 Y% m% k! r6 h .ORG $BFD2 ;初始化跳转; j& n: d: j0 t) d8 _9 _- e# r
JSR $FFC0
. E0 J. o, o( m2 }& i# C7 }6 X6 z1 W% }. l- v3 ?* D
2 U$ i9 ]8 Q2 f) l7 n2 R* N, V
.ORG $FFC0 ;切页
7 N( J- U0 q, x% L2 J3 g) v4 d( I; ^5 j/ p LDA #$06
" t2 X) c9 Z) Q$ g, p STA $8000
. o4 j s! O7 Q2 |3 a1 ?; | LDA #$0E
& X V7 ?/ G. H+ ^ U+ Q STA $8001
0 n) V2 N8 g( R4 T: X# A JSR $80006 I. m. a7 ^. j" J3 ?. n7 c9 w% o
RTS " B6 K K7 R: q* p* c
( K1 X* o, ?$ t2 u( E .ORG $8000 ;数据复制 i8 J0 o7 k% G3 L
LDA #$80) h+ c: q0 _3 |0 H/ p3 K+ q
STA $A001 ;启用SRAM
- a1 }7 v! M& ? V PHA
. ]0 d7 K8 Z Z9 q TXA
" P: W* y6 E+ u! X5 N% p1 T# A PHA
4 _9 X8 o* R7 }+ N9 B LDX #$00 _6 V' }: O: [$ }
DATACOPY: ;数据复制: I! P( A+ a! B" e7 _( l+ W! y
LDA $8100,X
/ V8 |7 ]$ z: P8 b8 R* k0 q3 m4 `& O STA $7200,X
+ K* P" K6 k( Y& [ INX
( C3 {0 M; L9 v0 G CPX #$00
& q5 v1 @ r1 u0 i; R z BNE DATACOPY. ` f" F4 @& v& j% V! H8 h
PLA
% M5 N Y4 P) C TAX: _" r# ?8 l B+ X2 L+ g1 t1 \
PLA# ]- W# J7 J. B# ^# a$ e
RTS; B% C+ o" s/ [! m- s
% R1 X6 r/ y/ Q/ W/ N) V& Z! G' o
.ORG $CD9B ;跳转到转换的切页程序$ K$ v( [. z* k) ?$ y
STA $70
, F3 M2 E1 @1 j; b0 z JSR $7200/ h2 w" j7 a- v5 V2 k3 O
RTS
) C5 d8 L) f2 x" y% p - k) [. ^; U% {* D3 k1 P7 K7 R
.ORG $73004 u2 V6 Z" n9 ]0 C, t. o% T: [! E
M1_TO_M4: ;切页程序, P, [( Q3 R* b" b
CPX #$00- L/ Q9 R! W$ A& t8 q
BEQ REG_SET3 Q, f+ i; B' u3 y
CPX #$012 K) u, P* n) f E
BEQ PPU_BANK_00005 k) T# a' B, b) _# m& j' h8 L$ G
CPX #$02- D& @' o0 n% X3 Z5 e2 P# X; L
BEQ PPU_BANK_1000
* d X6 e! d- Z. R( q CPX #$03* \) `9 e3 \' m- J2 K1 J
BEQ PRG_BANK
4 g8 P7 A( U" [3 w" F9 {1 _REG_SET:1 M0 f8 a) I! b8 ~
STA $A000
" G1 N# i, X4 s( {" Q) D! k RTS5 |. f: C" K# z+ l& v) G; r
.ORG $7320
$ m4 E+ F" f# YPRG_BANK: ;PRG切页% L! s+ f( H8 l+ @$ O+ X2 k3 {; E
PHA- G; S2 j6 n7 R+ u% w: A% Z+ \, x
LDA #$06
& I" G5 [+ n4 \+ K8 |5 F5 M STA $8000
* f" u# r) J( }: C7 C PLA
& j3 w) t8 l, ~& l ASL$ N& g% d d/ r% M! S9 B6 H
STA $8001
4 T+ O3 b9 `! r: Y) b9 b* L6 }* k ORA #$01- N* ~ F: K V1 c. X
PHA7 H: E, K2 M% E
LDA #$07% K0 w0 S: M# q6 q
STA $80003 ^. p; Y+ ]1 m& M/ ~: S$ R7 H) C
PLA r+ S d# H; l* Y4 e4 V
STA $8001% V0 J% S- t( t( ]1 U/ a1 g
RTS
- ]# b& p4 w. j4 y; H .ORG $7340( X, E$ G: `+ W' [
PPU_BANK_0000: ;精灵切页6 r3 R ]! b$ h
PHA1 g2 O/ Y: ~8 N0 U- g) B; _* K
ASL) I3 h0 \% g9 |1 D% o
ASL7 U/ M8 N7 \7 M7 [, [
PHA
/ S r3 S/ Z( m; [ f4 M. ~ LDA #$00
q1 b" F4 _" o, Y5 G STA $8000
9 G' ?* I9 \ X4 A: j PLA. L; Z; G+ b; A, j, L* d1 d9 H, \
STA $8001
' K+ K0 V8 b9 [9 g9 { ADC #$02
/ {3 u& b* |' E PHA
4 d6 l! E$ h+ w8 m5 L LDA #$01
" W* a9 M$ d* J2 U( |% b STA $8000' O: h! _5 L" D6 Y3 T# \
PLA* D; V b' D1 p8 l* C& I
STA $8001; ^. H% H, \3 v/ Y( z! e
PLA
; C. l- y) g# {9 t6 ?/ U) y7 f( ?: \ RTS0 E" U. Z8 M- e
- a( C$ K1 A4 A" p J
.ORG $7360
9 k% q5 E; K( g3 O; o2 Q' w0 L* APPU_BANK_1000: ;背景切页
4 ~/ Q* f+ d2 o' E PHA U' v2 @$ w2 G
ASL
3 f9 {) d5 H) m W9 S2 c ASL U, E) B" L: d; {3 c2 |7 j
PHA
# E( i+ t9 J8 R9 y" ~ LDA #$021 P# f0 S( P p
STA $8000$ y) Q3 k, H8 Q% a* g+ V
PLA& h! Z& f+ T, u* H
STA $8001
& Y, Y' N: h, g: z ADC #$014 h% T) i% F; _8 S0 V' m0 v" q
PHA8 ] z' c& a m/ s [& x& C' o
LDA #$030 {) g4 Z, J3 _* V- @$ ]5 `0 L
STA $8000
; p+ F. j) c4 i2 T) G7 R: k# t2 P PLA
6 e' ~# T9 G. K STA $8001' t. [1 Y4 G& ~, G$ _$ B
ADC #$019 {3 b( g9 ?" z3 i
PHA& [. M/ }( R' @* K H ?
LDA #$042 e# P2 O: k( ?! u1 v
STA $8000: W9 k9 n. ]7 D5 _$ m
PLA5 K$ U$ ^' B/ y6 s5 T& [& p& V
STA $8001: f+ L) f) P& D; S. m
ADC #$01
" D0 r( ?7 B7 w6 J. R- s- Y6 L! v; } PHA3 ?- a2 X' p2 Z: n, F) u7 m$ ]
LDA #$05
. w, G g$ u$ \: X STA $8000
% o8 a4 S+ E4 B. E9 Y0 Y9 s PLA8 \! d+ u; ^' o* P) b5 ^
STA $8001
8 n! [" r- a/ B3 ]; ^ PLA) l2 f4 [6 l; v
RTS+ r% Y# x: K! `
) ?* G9 I+ [8 e( [ |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|