|
|
;[FC][最终任务mapper1切页程序]: t k1 U! v2 e( [$ a% E
.ORG $CD9B
: e8 f; D1 X F7 u/ J5 q8 VBANK_START:7 a- b5 j. o n( |3 p
STA $70
# p3 ? F( ? L4 }. C TXA
) ~# h8 V ?" @ U$ i ASL
$ r" D. J# X( x TAX
' `" f" S. f4 k x) BPORT_SET:9 P5 J3 d; K, c) P% Z N$ D
LDA BANK_DATA,X1 ?; d: j& ?$ ?3 F
STA $6E' x4 t! t7 F1 E* q. `1 ~
LDA $CDB8,X
( e4 [5 E% P3 [' F STA $6F
1 f2 U+ i& U& j$ S! T LDY #$00
0 C. G' S9 `! U* D8 ?( { LDX #$05, P' f e# H/ e8 }4 \# r
LDA $70
# ?: I0 z. B- C$ a: @9 {PORT_WRITE:
5 ?* G* a5 w7 a+ I9 ~$ _9 R8 X STA ($6E),Y2 o7 n3 x c; \, I
LSR
8 H( x7 R& S+ Q DEX6 B: `) X4 i8 R. r: `
BNE PORT_WRITE
, I3 C1 O; E# b. ~, ] RTS
1 j+ f! ?0 ~' |- k5 Q
: x! m2 `( \3 E2 C+ i
+ H+ c, l- E0 l! ]! yBANK_DATA:
) b) q F, B+ \3 w8 J& Q .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF, S& v, y" m6 \& o. t- J4 m! W
1 K9 Q5 P2 }9 P" E* E ?
1 ]- _: S% \1 n) C" j
;[FC][最终任务mapper1转mapper4切页程序]5 i* v7 v5 E9 s, K2 x" n8 U) r2 ?
.ORG $BFD2 ;初始化跳转. x U s, G: v+ A. S! l2 p
JSR $FFC0 D" ^3 F! X3 y, ^! H' t0 z' U/ ?
% S, C2 ~0 S/ k/ ~
' v. F6 w. q' }# N& p4 q* t! w .ORG $FFC0 ;切页! K$ c: C, g$ V- \
LDA #$06
+ s: c) l9 p) k r3 K STA $8000
9 g6 }; ?" Q- N" ]# K LDA #$0E* z: i; m$ ], y7 l
STA $8001
1 O' I- e1 r$ T! R7 {1 y JSR $8000
; N8 T2 M: ~" R' h RTS $ `8 Z; q2 G5 m# `( g- P' u
; v2 M- E) @0 | .ORG $8000 ;数据复制
! \) T5 |8 J' v* G LDA #$805 Y+ F! p, `8 Y- o) W/ k
STA $A001 ;启用SRAM5 ?5 ^* i# b/ _" A1 [; I2 ^
PHA% }, E/ a8 z9 P" L7 g* j
TXA5 [; g9 }4 m" t" ?+ v
PHA( `; h+ @2 |6 [6 q
LDX #$00, B6 [9 C% L1 x0 o
DATACOPY: ;数据复制) T8 W5 ~# p& L( ?1 }* ^
LDA $8100,X' z. O" ?! s5 e% S- e2 C
STA $7200,X
1 n' o2 f$ O' {9 D# t; V! t! g. h/ ~ INX
4 J: L9 C. }2 D" A5 e CPX #$00
* X" H/ u7 A2 c( s' S4 b BNE DATACOPY* l2 C; I; R. P! p* v( U! B& R
PLA
. A8 A9 _: D- K" C* U. J3 p TAX
% H& c4 E8 N# C9 L' P4 s, U PLA- _6 I. K. g, I& t$ b$ Q6 i$ m
RTS; X( \7 b8 a% n. z5 J: e8 `
& K: Q9 P0 r2 m' q7 P) Q .ORG $CD9B ;跳转到转换的切页程序% e: F; g$ Q4 I7 ?) R! y
STA $703 b3 D7 U ? }& w" f
JSR $72000 z- E6 I v% ^
RTS; W- j9 h: s# e) W! n' C4 i
( X/ r. I2 V2 Q# U# q; d, Q .ORG $7300
7 I+ J" n3 n/ jM1_TO_M4: ;切页程序
8 E7 T( @5 f# ? CPX #$00! j: j3 i. ^8 l4 _( _
BEQ REG_SET
}- O) B2 t$ O/ F% @ CPX #$01" v) n0 c& J) q/ Q+ c E( e/ M
BEQ PPU_BANK_0000. l1 C8 q0 F; t+ ?" Y3 Q; z
CPX #$02! i0 _0 I9 C; N5 ^7 ?2 e
BEQ PPU_BANK_1000' ]# S. A. o" W" r6 n7 m
CPX #$030 i/ V5 t7 w* c% L6 d" N- x1 o! \
BEQ PRG_BANK ]2 s, R0 S4 b6 `( K# D- T
REG_SET:
: n$ n8 @9 a4 w1 X# O, D STA $A000( ^( E& Y) x! w# O, P3 u' F D9 N% E. \
RTS/ h- S! Y/ M0 R% l% ~
.ORG $7320) U& ?, \* N1 E5 I) m8 |% ^* b8 I; Z
PRG_BANK: ;PRG切页
6 E2 b4 I& P y( Z' O PHA, N) e1 x% c8 [' A. c0 T
LDA #$06
5 P0 \5 b& ^: v2 A) z3 C# ?8 }: x+ d STA $8000
- H }# Q: u( l) e PLA8 ?& ~- y! j! W) i4 x8 ]: j1 B
ASL' @! G f& T) y. Q2 Y
STA $8001
2 R/ R3 t/ I' q9 d- K4 S; O. H; }9 f ORA #$015 P, @: Y) B" D1 W- ^% H. p
PHA- k: R$ v5 n4 n+ U' S; h
LDA #$07- @; `( P- l; a6 W: m
STA $8000
: d2 y3 J; c) {5 r PLA4 Z0 N6 B6 c! ^
STA $8001
: u( y+ j! \1 g B2 C7 R# f& S, w9 ?3 ? RTS/ Z" ?4 E) I' B
.ORG $73407 s1 T' B! b( E8 F- H/ ?/ @
PPU_BANK_0000: ;精灵切页
6 o: R8 ~0 K9 @" U% F: X4 V4 R, F PHA
. q; ?$ J6 n l" Q ASL
3 g6 c( K# R) Q* h) R ASL5 A! O3 J& p$ t( ~6 c: ]
PHA$ s1 z. i" u/ @' _8 p
LDA #$004 O1 {6 b/ O& F3 d9 g: q
STA $8000
- _& p) r* d# T7 j) ] b: T9 O- h PLA; K5 B" `# f* N% T1 N
STA $8001
: e, B" e6 w$ }+ F2 g ADC #$02: B% O6 j4 q' `5 \6 q8 N: ^
PHA) h# M7 g: N1 {" d. q
LDA #$01+ f0 [4 K8 w; X8 O
STA $8000# w6 L5 R% G3 A7 k! {0 O
PLA
7 ~: G7 y5 d5 C1 I STA $8001
0 g. b# p% | a. N- }+ m/ I; c% Y& Z D PLA
8 `3 t$ l0 j! u0 R' u: s RTS
( ^! O& n, E% a" |) N5 U
& z0 P1 S0 J/ ^/ H6 h, U2 [2 T .ORG $7360
6 u. s# S# A! A) DPPU_BANK_1000: ;背景切页
6 x( ^+ a9 @2 Z- ^4 l PHA
% Q1 u8 \6 ]% q$ ^5 X3 D, g ASL
: \0 U3 k; M4 D/ A) t2 F* y ASL. B6 x5 G+ U6 G
PHA
; H4 K q5 }4 ^& \ LDA #$02
0 @& b5 _, f( f$ k. {7 \' d& A4 n STA $8000+ H4 ~2 e2 c1 Y& I# X
PLA
, }, p. [" @8 N STA $80013 [3 w. [; j# C" _1 Q) r$ {
ADC #$01! [5 {, D) t! Y; T% X; q8 P1 Q% j5 u! m
PHA
# Y4 q9 \" |7 f- Q' x+ Q6 e, c LDA #$03
5 e8 _* r9 a( R; q! m5 w5 g STA $8000& q* L y" y8 d1 a
PLA7 S5 a# N' _+ O9 s3 V5 K
STA $8001" u3 B1 r& V- P/ d) s' P( [
ADC #$01$ b- L# o2 V) R
PHA+ \5 t) j8 g8 t* m! a0 X" {4 l
LDA #$04
6 z' C! s' d! W* H STA $8000
/ c2 {, ?% Y& s: Z; n PLA( x! @6 @- C- T. K6 T6 S! R% s P
STA $8001. \3 a5 J9 \, t1 h: h6 E
ADC #$01
D1 e7 |- I; M6 v* C5 ~. ] PHA8 [+ k2 _4 o9 ^4 i: F& ]2 ^
LDA #$051 B( ?$ j0 X) e: p2 Z) P. T
STA $8000" H) q! K: p% S. J' w, u
PLA0 A5 V9 h# I a/ X8 N2 ?
STA $8001
. n8 W* k: ?/ {( T, c1 W& q" ^& Q PLA& G g; r4 g( _/ a3 h7 y- p- b
RTS
$ v* b" {+ H& [2 b: H7 @' }$ u4 b6 I2 A5 c: t0 |; p! I9 i
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|