|
|
;[FC][最终任务mapper1切页程序]
9 \6 u; V3 S$ I" l$ N .ORG $CD9B( W; ]& ~% H$ \4 X2 x
BANK_START:
$ Y1 x5 z4 x2 z0 j: i/ `2 E/ I* ? STA $703 N6 a& Q) Y) s; u8 W( |
TXA) N, i& }3 \; a0 | `- ~" U m0 O
ASL& [% ?2 w1 y7 i
TAX& o+ |, Q0 \3 U6 u& D( `9 Q
PORT_SET:
' h2 D8 m) t3 Y/ U( t/ e LDA BANK_DATA,X
# F4 Q0 A K+ f; Y0 |- Y STA $6E
% F- {) s! F" l5 n U LDA $CDB8,X5 r2 E" a, f$ ]# [4 u
STA $6F
( A& } R8 Y0 I; e2 u0 N/ N) ]- y0 r LDY #$00+ B# ]( C6 z( O6 _2 ~
LDX #$057 x) N8 D, F F
LDA $70- E8 V- Q7 P1 _# s! m5 ]% F4 ^7 _
PORT_WRITE:
0 s! R: Z) y& ]5 P* I4 U STA ($6E),Y3 R% Z5 h* f' Y! O' |; C5 e+ C
LSR- t% ^; ~; N& o
DEX+ u! F" r. [' M7 ]7 r5 g% A
BNE PORT_WRITE
; q5 I3 ^6 d6 n) W RTS
4 C/ G( f! Y( F2 @! W. Z
* h4 I, A" {# g1 ` 2 \: X0 a6 u/ E+ T
BANK_DATA:. g1 B4 P. X4 [4 S, Y
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF) E0 n4 ^+ h4 D1 x. r+ @: y
7 ?8 x; n8 H, |; ? ' _8 j s9 V* t! [
;[FC][最终任务mapper1转mapper4切页程序]+ X! Q) B# X7 h4 X4 p
.ORG $BFD2 ;初始化跳转& K5 u+ w7 d$ `2 @4 l
JSR $FFC0
9 V5 z8 m$ c# g- ?$ ~/ B
! ?5 L/ T: e9 N% c+ Z# {9 V# K5 q# f# \( v9 M t
.ORG $FFC0 ;切页0 i' M# P& G) {& q- m# B6 V8 Z
LDA #$06: M8 M' U! ?& U u3 j& o& p
STA $8000. }2 {+ s# w3 o$ t6 F# r4 J
LDA #$0E
c: z" g, _; Y; e. ^ STA $8001
" C: `% { V8 A! \8 n8 O JSR $8000
( e# n; n. e0 y0 o RTS 3 f6 Y$ g7 e$ A) o7 u4 L5 [0 w
: _; ?4 @9 l) a8 L3 k% ?4 a% j$ A .ORG $8000 ;数据复制. t( [6 H' e4 V7 t, X9 L
LDA #$80
6 o) o' e. I9 a* ]6 F2 i* G. O$ q STA $A001 ;启用SRAM" Y0 m f* g1 q1 S
PHA+ ?6 e" b w' q
TXA
& ^# g4 b6 o o2 y6 O/ C PHA
7 o! m8 c/ K+ [5 V. b! l6 J' n LDX #$00. Y8 b3 `% R5 F) {: D
DATACOPY: ;数据复制; g1 W, t- c7 V- q1 L
LDA $8100,X9 O( ] f) \ G' f* f
STA $7200,X7 @- F8 N7 B% ^6 L9 K5 }
INX
q: r+ V& j8 }/ B7 Y! h CPX #$00
' d, Q* d$ l2 W. [. o5 Z BNE DATACOPY
' ]( x8 ]& h# B5 k3 F, I9 { PLA
6 j- o, t# J* ]( h3 S, r' }: r# X TAX; \0 E4 {! n" q. h G" i
PLA2 C2 L7 `& Z; @" t
RTS
' y# X: I; z* A; |/ B; m. {% M
8 ~7 t: \2 {9 A+ U2 q .ORG $CD9B ;跳转到转换的切页程序
W* ^2 o+ D5 l9 P0 O# V/ l STA $70
}; ?, Q* R! n( { JSR $7200
J0 g: d1 O7 O, g. O RTS2 ?5 ?) m; i' j
5 I ~" |9 N7 J6 [4 U9 T) ~ N2 E .ORG $7300
" U3 a3 t/ c3 l: ]$ GM1_TO_M4: ;切页程序: p( X2 Z) V4 x5 z" w
CPX #$00
% f2 o$ A( U$ A+ Y BEQ REG_SET1 f( N1 l# \3 S0 M) ~3 ?
CPX #$01
D3 ?$ {9 u" B BEQ PPU_BANK_0000
, R5 }$ \3 f* m2 V CPX #$02' W/ @& n: j; s7 z' c
BEQ PPU_BANK_1000
5 i1 r9 T: p/ v7 G" i2 ?, F1 a CPX #$03. R* S; o. }6 S2 X
BEQ PRG_BANK# l6 D- Z9 |$ l6 }* H
REG_SET:/ L5 \8 |$ ]- f
STA $A000
r, [( A5 s4 R' k" h+ F4 s RTS+ K6 H. d. k8 j! X4 Q
.ORG $73205 c2 [/ O! X# s. H1 s
PRG_BANK: ;PRG切页
& S9 i _" w4 y' L$ m PHA
9 d2 b: M: r+ S# r LDA #$06# o4 ~& c: q: C
STA $80001 V: V; L/ C: v! v) [
PLA
: t" U7 g' |" x ASL
# Y, G" `1 T3 U' }$ u* d8 x STA $80016 d7 M) @" K5 b% _
ORA #$01
4 U8 ~! u, u" r: V2 y PHA: [1 J( t Z& f; p% H! Q1 Z( Q
LDA #$07
% V; Y/ j' R0 q) t; ` STA $8000" u1 h+ T5 A; o8 d
PLA, @5 F0 Z, I3 V& a! I2 ?% q
STA $8001) i# l" d4 c7 o# X/ O; j
RTS1 S, g8 X( v5 f2 |! B) @
.ORG $7340$ _' l0 o; N9 N, d% q# x, @
PPU_BANK_0000: ;精灵切页6 s8 s1 B6 H+ y9 ^
PHA/ X" ]' h1 r+ F8 b$ R H
ASL: _2 l8 F: R& k/ Q. |
ASL
; J5 i9 ~6 u9 J; e6 i7 B PHA
4 }6 f' c R3 m9 d" y9 ? LDA #$009 U2 Z7 S J7 P- c8 @( j
STA $8000
0 k8 k, i' n/ Z2 i+ J3 ?' B$ @ PLA
1 e$ i! ]4 E9 k) k7 V6 M# r STA $8001) j0 V6 e) g( M# ?$ J0 j; |3 C
ADC #$02
, P" v7 d- B# ]; P* J; M/ |! c% E PHA
" {' w6 z6 ]. _ l; M1 d0 F; d LDA #$01/ D. V3 Z# D$ M, @' t7 E" z7 K
STA $8000
9 R7 E& @3 D: F% ]% _' w PLA" H" t+ z, E, Y( Y3 I, r) {5 [) M
STA $80013 T' [# G+ T3 i$ x, y
PLA9 X+ d i. N3 W6 n
RTS
( ~# \- V# `; N. F6 K- {5 { * \9 C7 C# _. r$ g$ Y
.ORG $7360' } v5 v3 x+ P9 U, x* h! s* c
PPU_BANK_1000: ;背景切页6 I3 B- b# d6 Y0 W- K
PHA
3 v" y1 K" h# j9 m; ~ ASL6 _" p2 Q9 ~* w% R
ASL% _) d2 |& i* }2 B& R. H- B
PHA
2 D- Q4 V+ F" ^- \+ h0 L# U; I6 B LDA #$02- v$ m3 `0 d! H) A0 m
STA $8000 k# V% X- I. r3 r( R* U! [0 y
PLA
4 H& {% g& c0 O# T+ r. ~9 C* H& E STA $8001
' a6 \0 {/ m- y ADC #$01' }. V! J4 H( `( p3 h/ D3 N" r
PHA/ |+ o* k3 j/ o# I8 t" G& S
LDA #$03! o- }( t4 I' V4 ?7 p7 L% ?: S' C
STA $8000
3 }/ h$ A/ I. c3 n& ]% V& g PLA
6 q7 v( B0 N1 W! E: s1 J! w y7 t, u STA $80015 T( I) E" o6 w3 @5 x! n0 Z2 ]
ADC #$01
; [! V% b" f3 u PHA5 K4 [; d0 S: G) G
LDA #$044 X8 J+ U( M5 Q9 w& O
STA $80003 X) c' [% J" f: s' z4 e, P
PLA
6 W( H6 K4 J0 E M5 v& ^* u STA $80011 `4 K' h4 `8 j: x5 V3 B6 X; `( ^
ADC #$01
7 [0 ]3 u/ p& a I. }, k& ~1 X0 s PHA9 x9 j# p) c$ W# N8 i
LDA #$05* B7 n/ M9 ~: l
STA $8000
. w7 P) Z- }" b6 F2 m2 N PLA8 L' J3 Q, I9 h7 T1 k" X
STA $8001
/ n0 g6 g4 S/ M" u4 p PLA
. p& [4 {1 V+ E, v$ y' k RTS0 @: l8 H2 g2 H+ J* ^) d
9 N9 }3 e* |% `% P w6 x |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|