|
|
;[FC][最终任务mapper1切页程序]
- N( D4 T) d, |# [/ h9 Z .ORG $CD9B" O! \, F# z4 u" a3 V9 F
BANK_START:
7 I( ?+ ]% t4 w4 @! h STA $70, u! @% C4 y: }) `5 r. O/ D
TXA6 g3 F& w( g+ ~' k0 l
ASL
: u, R9 v4 b4 \- g% f TAX
" f( R" h B* m: ]! v4 n! ^6 b6 xPORT_SET:% _: ? ?; V6 G1 ?
LDA BANK_DATA,X
' \' _5 h7 `( e5 Q7 C STA $6E- F5 [. W! |0 l; A
LDA $CDB8,X. o9 w& C, M/ X" K* F- c
STA $6F" W/ j- r) d8 T4 [! ~6 K' P# ]
LDY #$00( ?, f, T# j5 D! n0 t* u3 X
LDX #$05! J+ z! i8 h* q* u6 t3 ]
LDA $70
1 K% ]% M; s( A7 |PORT_WRITE:' l) B( J0 O4 K7 ~0 A5 G* h8 A; k
STA ($6E),Y
5 ]6 S* `" k! s: `7 h8 p0 E' W LSR9 }1 a' [- q* Z) \8 P
DEX
8 P; b' C6 \4 a BNE PORT_WRITE; Y: K4 `! n5 r1 M, t9 E. \
RTS
! v" N6 l$ H+ e$ E, a9 D
$ Z$ j( h1 b! y( g
3 Y7 y |( J" m, HBANK_DATA:
2 W5 o' B: Y2 Q* [ .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
9 f5 u" R6 `7 m' s$ A
& r' H l* n" V7 v3 y + `7 V8 g( ]: W+ C& G8 }
;[FC][最终任务mapper1转mapper4切页程序]& Y. i+ \/ U+ O
.ORG $BFD2 ;初始化跳转1 w" R0 A: t3 ~% G/ |5 T) M
JSR $FFC0
+ | h' u/ \: u5 D* R# w0 v C
( N0 O% K' f- E; U9 s- t/ ]( N
& d8 V9 I7 { r, l( b4 }7 J6 v .ORG $FFC0 ;切页
4 o6 u4 X$ X8 x# n. p LDA #$06
7 B p" |% `4 o STA $8000
3 x/ C) z) @* H+ B6 c, { LDA #$0E
1 U, d( k, i% P# @6 |% I STA $8001
7 V% r" t% O& p1 ]8 c, D JSR $8000
2 |: V- B- V/ R RTS
4 v7 [7 O2 {" c. m& N3 h0 p$ p
7 F- M2 r& [* }, R7 I) k6 \ .ORG $8000 ;数据复制
$ M% b& T$ n8 n. t+ Y/ V LDA #$80! s) R7 i! C5 F! q- N
STA $A001 ;启用SRAM
; X/ W; p: p$ w. h# R PHA7 z: s: H" X' A4 x
TXA8 k- F$ D9 `# {( b) y9 `
PHA
7 _1 T' R9 ~/ C) F" y! ]" @ LDX #$00+ `! a3 N+ X- v% X3 X5 m2 G" F
DATACOPY: ;数据复制
8 L* U+ S3 _* v1 i0 @* j LDA $8100,X v" u* P2 `' a3 ~: }
STA $7200,X# x- V: }: R- K5 u! t; K
INX
0 C/ \# |; ]$ s2 t4 `) @ CPX #$00
3 Q& O5 X$ r( Z) S: k BNE DATACOPY
2 c a/ o# y* y5 l% k PLA! z) J5 H. m( x! d0 |
TAX S7 U w- y& D7 N: Z
PLA/ [ U% R" {" m9 y# G
RTS; C$ w8 M+ `1 x' {
* N( I' i; x. A
.ORG $CD9B ;跳转到转换的切页程序
' Q1 I" A4 O* c) ], K2 Q STA $70
- k D) z; b# R k6 C JSR $7200
0 Q4 K: H% i0 j, O8 T RTS5 F# _$ C$ n$ c. t
! o1 t: b: W& w+ {: H9 P2 Q
.ORG $7300' E6 a9 h1 P2 G `- G" U
M1_TO_M4: ;切页程序( s1 j% n- O6 [" `, _; O
CPX #$00
! B2 @8 _, l, q o BEQ REG_SET9 x% W- X" G: [$ u* N w6 ?
CPX #$01# Q/ B8 f5 O" U/ a6 Y
BEQ PPU_BANK_0000
. K& ~, P1 f. k4 w0 G5 [, {" P! U! ] CPX #$02
8 ]& \( J# ^- u+ ?0 W BEQ PPU_BANK_1000
& t5 t9 X& Y2 ]0 Q& l" ~' c; L CPX #$03& s$ N" n2 n/ h% e! X
BEQ PRG_BANK# s4 N, v4 U5 N/ w8 A# B4 }" @
REG_SET:
, q, Z, [/ k# C: s* ^) n! j STA $A000
1 l. _8 ~! i! m RTS6 a$ e1 c o0 X! W2 C7 m
.ORG $7320
8 u! h2 J! t( h, `# v8 NPRG_BANK: ;PRG切页
: i8 Q: M4 A& V- g) b: m PHA% f3 e2 \# R2 e2 r0 E
LDA #$06! b0 T& H7 M6 Y& m e+ c* e
STA $8000
( @- c8 g5 M( s% j: {' H2 O; g PLA: K% r9 O) m. v9 r, k4 v' V, w$ ]- D& Y5 P
ASL2 P. d+ h5 @4 N
STA $8001
6 m4 r7 C* ?) B5 m ORA #$01$ i( E/ \1 e) `7 ^: @
PHA
* ]- j# O; B5 {; c9 [( a1 g LDA #$07# _* G' ?9 s% |7 W1 [
STA $8000
+ ^9 L: Z d4 O% k* g+ U2 F# Z0 I o PLA& B0 B6 A8 A/ Y# h3 W/ |) ?
STA $8001) K5 z) g; P! Z0 G7 P E
RTS
$ a. s f# L/ i2 @9 S9 j J; v .ORG $7340
8 z; P2 ~+ p! j8 ?2 d7 {* g/ l9 D R; uPPU_BANK_0000: ;精灵切页
5 f$ v" P3 y$ F( W4 y3 n$ A PHA
: ~2 Z7 J! |- U2 Q2 a) h6 X1 o ASL3 i- K9 k) D2 R
ASL7 e8 e. ~" i5 H. o
PHA
. P' k7 m$ ]2 P4 ?$ d2 B LDA #$00
; t) W$ }1 G2 H3 i STA $8000
( F! r. l$ c) l- y* \' @8 W PLA# u. j7 a8 V; O7 }8 S
STA $80011 s7 f k1 D M; V- Q2 o5 D2 e1 o
ADC #$02 i2 {# } x6 A" E: T& D
PHA
; e% V; p/ h% u: ^8 Q& b, Q) e$ ] LDA #$01
1 q$ |- V; N! k2 ]4 q1 z STA $8000
+ q. k0 ^: D% B7 b, p PLA. ?: H5 n" Y# H2 O2 P
STA $8001' A2 a- v+ I/ u+ N5 v" R
PLA
6 n v. D* w l/ L8 Z0 r RTS
/ x, P* T6 f2 i5 H2 n- ?
3 v, T: i1 \1 s5 g2 N0 K2 R .ORG $7360+ k3 o, Q' s- Y, g9 z+ O
PPU_BANK_1000: ;背景切页* J* ~% S' N; M2 m8 d @
PHA2 B! @5 h. b- Y, j( Y
ASL1 v! z0 s/ K; _* h7 r2 T5 C* ?
ASL" G9 `) i& N" d. Q! ]6 Z, z
PHA9 d4 h9 J) g4 S- G8 A9 a% ]2 c
LDA #$02
% f. {% {) _6 X% Z/ o STA $8000/ a% R/ [. A& ~
PLA' } A7 G( Z: x! z/ a0 ~1 ?
STA $80012 s! s. G& Z# `7 W" J# a
ADC #$01
. Q7 d# O: h+ O& B* ^# a, Y PHA
, C" J, E3 Y3 O& ~; V LDA #$03
7 n' s% S- f9 Z) J/ I: R STA $80005 Y6 N6 C( _& {1 |0 {5 P
PLA! m: u+ q) W/ }0 o4 M
STA $8001
/ N3 s# R1 r$ B( b [6 Z' X ADC #$01
" h3 R0 @7 W* u PHA
- x+ O0 Q5 Q9 q" ]% B9 ] LDA #$04' ?' V* K- Z H7 X2 E
STA $8000% i2 Q1 B0 w, ~0 E# D' r$ s4 [! V
PLA
6 `9 D9 T% [9 o: ]0 e STA $8001
! W s8 u, Q; T; F1 a5 W% q ADC #$01
* u$ ^5 A8 J# w) w; y! X7 P. n' o PHA
8 B1 V/ g4 s$ w2 X0 B0 i5 m LDA #$05
+ L: T3 ~, F( _& e% ^( ?$ Q STA $8000
1 {$ T1 {# }% x9 s. s PLA6 t& v# b( @* I/ X `+ p
STA $8001+ t' e+ X, ? l: T& {' z$ x5 }
PLA; l7 b2 ]' f2 W7 t
RTS+ M! ?' ]/ X1 e% @2 U* \
4 p Z: Q) [/ d$ ^+ @3 w9 t# c) G |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|