|
|
;[FC][最终任务mapper1切页程序]
/ J" o( o# u: I" L% h: N .ORG $CD9B# Q( k5 g* Y6 i+ p
BANK_START:. G {" ~* V( {/ @1 G' r4 z5 @. U
STA $70( K" ~, a6 `8 n
TXA
( ~, V9 o+ @3 T7 V1 q5 k ASL
5 N* o$ J( {# O TAX N2 H# @+ |: A2 f
PORT_SET:
$ i. |5 U2 E; _/ q! Y) u( d LDA BANK_DATA,X. D& f3 H5 l! _6 a+ k
STA $6E9 B5 w8 s# f$ x' }! |
LDA $CDB8,X* _3 W* e0 ^9 ]1 y6 H4 l! U; u7 |1 h
STA $6F
* |. e/ t4 F* j5 l% p+ t9 q8 c. P LDY #$00
, z! ]5 a) x; Y+ f$ y' a LDX #$05
\) d. e: {' W7 l5 l# ?' i1 }8 B LDA $70+ t. g$ u/ s# h. z; `4 w1 |
PORT_WRITE:: I/ [$ b. r6 V6 R8 B/ o" d
STA ($6E),Y
7 X& w2 Q/ J7 n5 c5 t$ ^' d/ g LSR
1 S4 D: `1 r3 w. N, M* c DEX
1 e9 X) b m$ T1 R* F BNE PORT_WRITE
& [) _$ X; r7 T: v' L' z! W RTS4 L% a8 ]" D% W- N) f: j
7 i: ]% V/ Z' f, G) Q) Y- L
5 M. J8 N. y3 w! \2 L9 Z; |( @1 S/ y
BANK_DATA:& b! P$ u1 A$ R2 f7 ]; j2 \
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF2 l+ l0 A" D: [; Z* Q
; O j0 F, }8 M3 d % R/ \0 p1 Z" Y3 g3 `, N
;[FC][最终任务mapper1转mapper4切页程序]
3 N" ?( {& n6 `" n .ORG $BFD2 ;初始化跳转
$ s9 z8 m2 K0 k, T JSR $FFC02 g4 K1 O2 A3 T! P# B* G) k3 \
: a# z6 z+ K6 m2 P7 b, ?
/ I8 Z/ Y4 Q* ~* e
.ORG $FFC0 ;切页
0 H" ]3 Y3 m1 H! |; o4 h LDA #$06
! `1 e, c1 ?+ ~8 w. h* M STA $8000& R1 F$ N1 P1 G1 f: T+ n) |
LDA #$0E& B' P7 a! U8 n3 j! W& L) E
STA $8001+ K) ?% u' T8 K" `2 K$ b# L* O
JSR $8000
- U, ^1 K$ R& f8 w* ~ RTS
0 M: W" l& _+ ]0 W4 F9 \6 x 5 D3 r% W6 e7 {0 |' }1 c/ ]
.ORG $8000 ;数据复制
$ j0 z: V3 X" f% I, V( Q LDA #$80
3 V9 n# l% z+ O2 S% s STA $A001 ;启用SRAM
0 v+ I& h" ]2 ~0 e2 v PHA( f2 Y g: K9 g, U4 O
TXA7 i$ k0 L1 k$ U4 s8 \# `
PHA
3 V: u6 s Z e4 G LDX #$00
$ @0 g1 }& J+ t" \DATACOPY: ;数据复制
J/ K3 W1 `( Z/ X" V4 ` LDA $8100,X+ Q: T0 u% E. D% c: U2 }; M, G0 h
STA $7200,X
/ m! v3 G" l5 C- z; v% W INX6 U) Y- Q! i* v0 P. ~8 ~
CPX #$00/ x+ c9 N( d1 i( k) a, K
BNE DATACOPY2 q) W1 o+ ^0 s) C' S# {' ~
PLA; O3 H/ H7 z! Z" p
TAX2 p) J0 |+ S. Z8 j! H6 R
PLA
4 I0 w4 |2 d, _3 N9 f9 K, G! [ RTS
, \7 p5 ?) G, i 7 p/ \* o; O9 e% N9 T+ z
.ORG $CD9B ;跳转到转换的切页程序# a+ X0 e: z1 P! ^
STA $70) m6 j9 F+ g! r
JSR $7200
: a" o( X5 F4 }, ~ RTS
' N9 _+ E' F; a, Y7 j# q$ x P& t4 U% b& Y3 ^3 K% m
.ORG $7300
' [0 O1 B" `$ j, G$ W( L* @8 NM1_TO_M4: ;切页程序
4 u) |9 F- H( r) I9 c4 x8 c/ U CPX #$004 j+ s- g: K- [1 q4 \5 o, D( O$ r
BEQ REG_SET) I. j1 P0 ]) R8 Y# w9 i
CPX #$01
+ N. B: ]# z7 t/ ?1 I3 J3 V BEQ PPU_BANK_0000
/ x& r( W& |/ y; r2 q# K( ^ CPX #$02
5 @/ a4 Q7 ]9 ~3 r% \9 I BEQ PPU_BANK_1000- u! z# m0 E: }: Z5 F7 t
CPX #$03& h1 @( n7 y3 r5 o& Z
BEQ PRG_BANK
, a8 _3 T6 @; q0 z- ]REG_SET:1 z: {# E2 B) d. i: a( f& t
STA $A000* D+ T4 z4 q' N( `- @3 |2 P" p
RTS
. V- }6 `7 d9 I' K+ f( y! e3 V+ w .ORG $7320
$ _6 f/ Z j, P g9 TPRG_BANK: ;PRG切页& b) P- H& @: ^( i
PHA
" {3 w5 d ]3 d( I) @% ^$ y8 ^ LDA #$06
4 u8 Z" l" [- k6 n, e! k STA $8000
1 w5 B2 U" g) m2 m$ m& O( }- [# u PLA
* q) _0 K/ a3 T5 g ASL
' f+ v) L4 V0 x& \2 t! { STA $8001
% J, Y. \/ ]5 Q X* c ORA #$01
$ |$ Y- _) R4 b1 f' o3 q( w) v PHA
) [8 v' i, s6 ?: k LDA #$078 f6 V$ P5 W7 d1 B
STA $8000
5 W4 r% E' x' O, v: @, G PLA
( M9 N. z& m+ G. E STA $8001
- M6 k$ t P+ k$ f$ o5 M RTS0 W' i* a8 A/ W; O
.ORG $7340
, T8 H9 V9 t. q6 o: f, [; MPPU_BANK_0000: ;精灵切页5 F3 @7 Y+ U# D( O8 Q/ I
PHA$ a) h" I) Y W3 _ O9 Z& M. K
ASL' k7 d& g+ b! q) X
ASL
1 ?6 b, ~* g8 e* p/ k: a8 A1 h PHA2 Y# D# Q; g5 r' ~; T; K
LDA #$009 g& d, J5 I" b5 ]/ L, |8 u+ v5 d
STA $80004 W. `0 c' G: e& ]( s
PLA
# K/ L w4 G; s4 p& f" j+ M, d% l STA $8001
N. y5 @: k( L3 S( E ADC #$02/ \) |( g! z# a y3 [
PHA) Z0 t4 R" o2 E0 U9 M
LDA #$01
% S, m! i1 H1 W) W8 ^; q5 F2 k STA $8000, L! w! o: ^+ T5 F/ d
PLA- z1 [ s7 G% e6 f8 C- f0 I& m" b" I
STA $8001: k% B: l9 E# l* k
PLA
0 z# [6 O; @" ]$ V8 v% G6 p RTS
8 B! @/ S9 \' d* k: Q% B* q
& v' K) z. ^/ a0 C. @1 ^! `0 J# J .ORG $7360
- G) X$ P$ O. m" ~ L2 T+ WPPU_BANK_1000: ;背景切页$ y i, y/ I' c; @. _' j
PHA
5 m9 b& M* p" c* z5 [3 ]" \ ASL, _! o* W1 h# k6 A _6 A* v0 V
ASL% g) h2 B" [& l/ R) _3 }& }( v8 i
PHA
' O- V/ I/ }' {9 L, V5 Z LDA #$02
# W) c n7 H* V; T! I* x STA $8000
; z; v1 {3 m9 Y. k, ?! W PLA
% ]! b4 A w4 o1 x* ^3 U/ Y STA $8001
7 s2 s) _$ T6 s( h/ p. q( P j$ ~ ADC #$01
. i6 X. Z; t/ Q$ H/ J. ~( `6 U PHA
$ |8 D7 r+ w* W, n LDA #$03
( o( |* _3 h9 W. t8 m% ^ STA $8000% u+ S5 r3 r6 {7 u
PLA
) U8 q' A5 F: [, N STA $80016 U, H# @' T$ }% ~8 _0 d5 y, A) m
ADC #$012 Q/ n- D% r, t- h6 [- P
PHA9 {& i2 Z- k' ^' U2 s: T& N4 H
LDA #$041 R6 m0 ~5 B% X" [$ |$ e- [9 u1 r( [
STA $8000
Q0 f) b/ d! k1 v PLA4 E; x9 ` ?2 u5 Z! U
STA $8001
% V2 V I' o6 ` ADC #$01
; u- y* t% `& c* q PHA" M; e: q d0 j3 @; L6 w/ q0 d
LDA #$058 y$ Z, O; b- Z8 i
STA $8000
7 I( Q' G' D8 ]% f. r. m PLA8 \# o7 [% H3 ?" h% t- B6 w
STA $8001
5 X q. [% N h, Z1 b PLA6 p4 G5 `- F) L7 p% n; n8 r
RTS
5 X' E- i2 X% B' X% l
( A3 o# }1 Q G) M |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|