|
|
;[FC][最终任务mapper1切页程序]' g( T" H+ ^" I$ }
.ORG $CD9B6 m- Z. ^8 P. r& o# K" F8 p8 x
BANK_START:# M, l4 O& z& f- S, U0 ?, G- Y
STA $70- q- E0 T' m4 v3 [; r
TXA+ x8 m4 j3 I& D R( i1 o
ASL
) D& C0 I3 t- ]. ]/ M$ F# A TAX
9 H: v% O! y! b9 S: r( @% mPORT_SET:6 W+ n4 O0 ?0 \6 L% |3 G/ i
LDA BANK_DATA,X- g5 W3 v! [, R7 Q& k: h
STA $6E
3 P: J8 e7 A5 t1 G LDA $CDB8,X6 j! t# h! y/ `$ }3 n" X
STA $6F% b4 E+ d/ T6 k
LDY #$00
( ?: v$ v' s) z: x" J- f6 J LDX #$05 z9 c7 o( B. H1 m. S
LDA $707 _2 d: ~( B* N" |& B- n
PORT_WRITE:- j: A% F1 u; ]5 J$ b5 u
STA ($6E),Y; M2 o" q) A3 d% A
LSR/ ~4 |; A7 Q7 o$ }
DEX
3 r& Y) J, V( O$ S% |9 }! {* a BNE PORT_WRITE
, i- m% B C6 @7 k RTS
4 p1 ^# g9 k& Z& w. u
: Q8 j$ v. c5 i8 ]# p# c
4 _! B' T+ X0 G2 wBANK_DATA:: a: I1 b8 {+ O/ \, x
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF; ?" ]2 v; C/ _5 g: H; a' Y
( P6 K6 ^8 q1 D* d, V. S" \! W& Y
, @) ~5 |2 M \4 M' v# a;[FC][最终任务mapper1转mapper4切页程序]2 ]* u( C8 l# M
.ORG $BFD2 ;初始化跳转8 V2 r7 g- y( K! i
JSR $FFC0& z+ \5 A: C; A0 Z
0 O }% Q+ _# ?) X2 c' g" U/ J" S
- D' G# k+ I! h4 t" s6 Y1 U3 {5 \1 ^ .ORG $FFC0 ;切页2 T0 ?! C3 i( [( G* B
LDA #$06
& ?/ H1 O% N$ A3 ?% l. u9 y7 V" B STA $8000: R& E# b( O1 M% Z4 f
LDA #$0E, W5 ] e" ?5 [
STA $8001
! F: V7 S+ ]5 D* B JSR $8000
" t+ }# z) q8 I u# @9 B/ ^6 h RTS 0 C2 |% C6 e$ J# N( C
, S2 d9 A' g8 G, |3 k4 w, Y T( k .ORG $8000 ;数据复制4 a% |6 P z i5 G/ q- Q
LDA #$80
8 ?# K) F, W9 L+ M9 Z9 x STA $A001 ;启用SRAM: Z0 i0 b2 y7 M2 l3 {' \; i
PHA
0 B- G& G! Q' a* q% G- O# B9 d TXA
) k q: `, i# j# ?/ J; L4 }2 J1 D PHA
( T1 ~1 G- E" R# @8 p LDX #$009 |! T: v h- Y
DATACOPY: ;数据复制
1 n6 F N- T2 v LDA $8100,X: K, O2 z6 L* s2 l: Y$ i. b( f
STA $7200,X {9 t, w, o7 E: {- j8 Z3 e4 }
INX
3 @# z. N$ p& c* x! `. Y+ E4 ~" a) C/ z CPX #$00( Q% c# V: f7 z* P% Q% m) t) T3 S
BNE DATACOPY
6 b7 d9 ?5 Z f3 s @2 M PLA
% B7 B F" @$ V3 m TAX; P z4 e1 @2 A
PLA
/ x3 \7 t' M( w9 i( X RTS
1 u) ?8 {; w' U7 {. O# [0 ]$ L! O / X6 I% M/ s# t% M
.ORG $CD9B ;跳转到转换的切页程序: M* W- v2 m) J7 ~; r! i
STA $70
( T' _9 V3 g& W" o5 f: z9 N, J JSR $7200( N. V5 F3 P. e
RTS8 D( H6 h9 ` f" ^' G9 [2 c \
+ c+ {( G# L5 Q9 P; ^' r# h8 `
.ORG $73009 y. A9 [3 n1 `6 `# r1 n: ]$ F
M1_TO_M4: ;切页程序3 M/ w6 b5 U3 Z! n
CPX #$00& S# l% t5 Z( U3 e) t5 p. H
BEQ REG_SET. A7 ^3 q% a4 K$ R
CPX #$01: Q& M$ E3 p$ v7 [2 o6 A
BEQ PPU_BANK_0000# J3 Y4 Z) V: r- P
CPX #$02
7 j' k2 Z+ \: k BEQ PPU_BANK_1000# X2 q6 j8 p1 I9 K% q2 V
CPX #$03+ U% e3 _0 S4 N1 P: N! S1 p% w
BEQ PRG_BANK$ V, C( I7 L2 T& j
REG_SET:; Z9 S4 }7 ]) J, a5 g
STA $A000
$ n! B# [ Q, Y9 p% n RTS& i+ t! l' K+ v! W* ^" k2 B
.ORG $7320
$ f% f- T% D4 O Y3 X' iPRG_BANK: ;PRG切页2 Y: S, P" [7 E8 V u
PHA
9 t% n8 {7 h8 @ LDA #$06$ h' i4 W' f$ I3 b) O6 n- a' t' O
STA $8000& z- W5 d1 j* x3 @4 M
PLA9 X7 a' A% f2 S: o
ASL+ o; {1 W; C$ ~1 Y9 r+ B; w
STA $80012 C0 V. y4 Y' {9 s$ x
ORA #$01
8 T5 S+ A9 ~- J. d3 G PHA
3 u2 T: o- q; S: y9 d0 G LDA #$07
6 a& _* Q% T1 C( R& G: t4 k% K4 x STA $8000" e: A/ {( j* j3 P+ j$ q( E" G
PLA
: S. S S$ l: g( d- Y1 e STA $8001
& t9 L" I! d r% N' L RTS
' Y V6 o0 Z! R2 Q$ m- D2 c! E .ORG $73405 V. q2 a" u$ X& H% B/ `
PPU_BANK_0000: ;精灵切页6 P4 c' X* X% q5 A
PHA" q+ x S* v/ E# i8 x, f
ASL! u0 b6 S- o* [ Y$ [* m
ASL- x6 c! w' U3 P$ |; D1 q
PHA
$ b& l8 b/ T. P% f. t, M% f LDA #$00) X; q* q5 y9 z( @4 H' c
STA $80000 }: \. L+ W% H; F1 |2 C
PLA' V/ U$ X9 X' J) H7 q
STA $8001
6 I7 N8 ~+ R" d# D# x1 S ADC #$02
$ k# u, S. h4 W PHA
( z- k4 `% e' l6 { LDA #$019 K- P& X, @- @! A/ Y
STA $8000
7 x9 [; ~9 z$ p1 O6 K3 W PLA
& \! O. x `3 r: f7 } STA $8001) M, m* W4 j8 h4 P7 B
PLA
! N& ~& @$ q% K# ~6 W RTS3 G5 _7 H/ r- Y8 K! C* X* a8 c4 a) K
- v: ]7 v/ {- ~- X .ORG $7360" B |% ^+ r, I* c" Y: t
PPU_BANK_1000: ;背景切页
, T5 ]/ d# p* C) s; ` PHA
+ ]2 {5 A" @1 J ASL
& k/ ]: G T; ?& H ASL
: P5 J x& u$ H8 [8 U( ~1 m# } PHA
+ P& w% T7 t2 h$ o1 B3 \2 s3 [ LDA #$02$ Q+ R D. D/ V8 f8 b
STA $8000 K2 ` f% S' k) x# U) P2 q- x& A
PLA& E' X$ \/ z b8 `% M9 ^
STA $8001- q2 O/ q% B( a7 ]+ Y" O$ i* O; c9 u- q
ADC #$01+ H9 e9 v& @( g" o
PHA
4 x- h5 t' h. [. J+ j LDA #$03
% L" d% t- ?9 }8 _6 {0 X* t" }/ |5 T STA $8000
5 Z- h7 G% L7 r% o; l PLA% P" J* Q; `2 Q
STA $8001% j, T! P( u! @8 ^: s& u' i
ADC #$01! L4 k" Y2 Y9 Y e& }! C" C* n1 \8 ]
PHA4 x8 d! e3 `9 [$ {# v& N' {
LDA #$04+ X% F2 }8 Y/ ]' { A
STA $8000: B3 e& D/ A- e3 f' _' K U6 f
PLA! n9 H; h2 ?$ B9 A2 a! l+ f( F
STA $8001
% D" b4 _; @: v6 b! I. l7 w" @ ADC #$019 r& \: r2 R6 S4 f; ?: g3 u
PHA# _! v' k0 V% {# a. b; {; d
LDA #$05
5 J! L' M4 C. O1 k3 [1 A STA $8000
7 H& h M. T( A5 J6 T PLA6 ~; y: s6 _# r$ T: I. j9 I* ?( y
STA $80014 z5 Z1 [! i! v- F$ z9 y) `
PLA
K. Y/ y W8 u" m- T' s RTS! Y* B. Y! H/ {" R6 ~" S% Y! |5 b
7 T0 }9 |9 o9 u: o4 M/ R |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|