|
;[FC][最终任务mapper1切页程序], b; n2 w- c9 w" S$ \3 u
.ORG $CD9B3 s1 _* `3 P! ?3 f) G
BANK_START:
/ e+ |! k- M" d; l( ]2 _0 t STA $70% } ]5 y7 r% |2 c& H% s
TXA+ U$ Y7 i- H K0 N
ASL
0 d6 j! R7 B/ O2 Z TAX
. l7 V# D1 q$ K' \7 D8 CPORT_SET:' n! g3 Y: H8 F/ W8 G |8 _; u
LDA BANK_DATA,X
: m* y# E/ y- _5 Q& L' F STA $6E$ S8 ~6 n- k/ f0 P
LDA $CDB8,X1 J8 E/ D1 _5 R! N! C1 u
STA $6F
8 d, X- b; U0 w! R r" M3 E LDY #$00) |7 ^% t" W. c$ s, D
LDX #$05
4 Q/ F! y5 t) [ LDA $70
) Z' {: m9 u: ^3 e* yPORT_WRITE:
, X9 m2 m1 d* Q9 o STA ($6E),Y1 y# o, w9 A& ]5 l1 ~- C
LSR
1 b, Y) k$ A) S DEX
$ W# t; L" |8 i) u N+ Q BNE PORT_WRITE
4 l y! W) q4 u! T3 t2 M RTS# m5 K5 W) o; K0 R: [. v2 H
2 c4 `$ D' ?$ `( s2 L' e2 M# x' U
6 a$ c# O' Y; ^# F+ f' \
BANK_DATA:! o4 _- ]" {+ E9 O# x. O
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF0 _/ i3 F; Z- p) h* {) P
2 y6 T5 ^ ~: {
% k* T a! y# y" Q. m* K
;[FC][最终任务mapper1转mapper4切页程序]
/ u, ?! p0 w5 a& Y) p" z+ g .ORG $BFD2 ;初始化跳转* ^* u7 h0 W6 ]' Q1 Q" w
JSR $FFC0
7 ~% g5 ? K+ X" P
( l5 A# ]/ E* p( a, X5 U w: F) N* d% i/ z2 u
.ORG $FFC0 ;切页
8 X% G4 j) E$ N5 m LDA #$06
, O6 X: v+ x( N STA $8000
- m" r$ k+ X, @ y: b" n+ F% Y' C J LDA #$0E
7 N1 z2 l% t' t# `+ h' F STA $8001
+ @7 U6 \. E* w7 B JSR $80000 j I9 `$ L3 O
RTS : ~; R) ~; y: \' t+ r
' h; \: X4 G/ h5 g' C .ORG $8000 ;数据复制+ ~$ e1 [+ ^, L& f* L
LDA #$80
* Y; `! A: ^3 Y STA $A001 ;启用SRAM$ j0 ]- _% `- o
PHA9 j' W; y3 P+ `$ x/ d) h
TXA
6 l$ K; z% R5 B. d: O# ~% b PHA8 p; X3 B0 |! R z
LDX #$001 {' X9 y6 V, Q+ D# z) B0 v5 ]
DATACOPY: ;数据复制& H7 c6 J- ^1 @% L0 l
LDA $8100,X% Z, S: s0 v+ ~& O# f' V2 {- Z
STA $7200,X, n# V ]" M( d1 |& X
INX
# h- Z1 {' e; A8 Z" F' }1 P CPX #$00
+ G w# q# L( S& T% Y+ ~4 Z7 t5 a BNE DATACOPY" w+ B2 O5 [! r5 `
PLA! W) [% M7 S/ P9 I, T
TAX
- S9 d% ~$ G) N0 Z& C: } w+ [+ J PLA
$ A5 G! a: e# f) X. W RTS
$ e6 H1 [( _+ N( B+ Y/ r" C ( s+ ~0 I& ~% x
.ORG $CD9B ;跳转到转换的切页程序
5 E( u" R: l6 {9 v4 g STA $70
# j4 L7 |# w/ T" u E, a( S+ }( x& W+ b JSR $7200
# @6 N( ], e. I& c+ g RTS
8 n) G" b, z L" C$ ` ' E" n; d; i2 y
.ORG $7300
/ [! k+ M3 D- n: X) T* Y5 mM1_TO_M4: ;切页程序6 ^. a# `3 P. _: A( d* p2 R8 ~/ @6 R
CPX #$00
" R# G% D4 W7 _" s# M* v BEQ REG_SET: q$ B' k) T( F7 z5 A1 B7 W
CPX #$013 w/ Q+ e! X! k/ B# J, e' i1 d4 ]7 J
BEQ PPU_BANK_0000
" s; r( J+ H, b- J0 t: Z0 Q d CPX #$02 j% D7 A. @% u( F3 z
BEQ PPU_BANK_10004 a5 ]. w- u$ @; E
CPX #$03
: V, G0 ^9 {3 |) i/ X BEQ PRG_BANK
, X! c8 c, ]& y% x% Q5 [! e; o! MREG_SET:
[2 d+ f& V5 C+ \4 o5 y: G/ p9 k7 S STA $A0008 {3 }3 D% q3 s
RTS+ o3 T8 ]2 g7 J7 c) C# k
.ORG $7320
, g' P0 U4 _& j5 i- \2 d- VPRG_BANK: ;PRG切页: g5 }# h. e7 s9 d8 I% g
PHA; M# V; \% d& A
LDA #$06
- W0 `1 ]4 K: G) p" F STA $8000
1 J( |- V0 R' P0 o: q) ], ] PLA
4 _# c b6 R! {) J ASL
5 b0 O5 H' ^ f. w3 K STA $8001
& s' E- d) x5 v1 U1 p ORA #$010 q8 _' @0 {; o+ a0 b0 h2 K6 [0 i
PHA" ]- C( g1 ?/ S7 y
LDA #$07. T1 H* h# ?9 ]3 J
STA $8000, A8 H. {( N3 g% |, m- o( F
PLA* X5 {/ U: k/ K! a9 V# \% A
STA $80019 D9 O" h3 E7 T
RTS
. N" y. T/ Y, k5 c$ k; m .ORG $7340
+ b. T% s5 U- ]2 tPPU_BANK_0000: ;精灵切页2 z# ~& U1 B& r7 k( G
PHA
* ~$ B$ |# s- ?8 j/ A1 T9 i5 y ASL
z7 M" O% ?3 |$ k; t0 F ASL4 W; m1 D2 M r4 m1 p
PHA
& l* x4 c. v# j. U LDA #$008 ]! a) P- x3 Z& W* I
STA $8000
8 [' ?6 G, p. R PLA3 B u2 q5 w% t# r2 l4 n7 g+ k% C2 b
STA $8001
" [4 W4 S( x4 {5 D* c3 E1 p ADC #$02
! |: D! H0 F( \ PHA" e+ z0 I% M4 v) v7 O ~
LDA #$01# V1 d5 J* `9 Q! e
STA $8000
: ]3 G4 W5 Y+ x! d PLA& S/ q" b. {0 f0 |3 Z* u. c2 n
STA $80010 r( f7 k/ {! R! p
PLA
7 f- }0 w# ^: I( Y" D% ? RTS
3 }4 L6 }3 y+ r' [4 D
4 H& E7 I* q: [9 T D' v! @. b( ~ .ORG $7360
! L h$ L, Y6 S* ~: {0 t' Q2 @PPU_BANK_1000: ;背景切页
1 O/ X: Q5 ?$ o) [5 ^2 R3 } PHA
4 w/ I& n$ f- z+ E$ b) H* u9 ^# ~ ASL& i6 X/ n8 n( z+ E4 e
ASL5 w' |. R: X4 `& ^
PHA$ T+ | f% \* m9 u
LDA #$026 A% v. a6 t* ?/ s$ h/ S
STA $8000
- F) a* f( [ [6 e: i$ Y PLA
' f# J$ j( j, {, m$ \ STA $8001
% I J7 C- I5 a+ T- a ADC #$01
- k" i. E8 W( f; B( {9 G# W5 @ PHA
: I9 T# E R, A- } LDA #$03
' c1 Y1 c; S0 a b' D; p STA $80001 D7 ~, B; v0 j6 h
PLA
- o$ k" a/ F$ w/ t" `, I% q- I/ ^( R STA $8001
$ l+ S2 N. F5 w1 z: w7 ? ADC #$01
* _% x `: e/ ]' J PHA
2 T; k$ M3 Y- V LDA #$04$ s5 L! Y0 s) f$ {- P
STA $8000
) R3 N4 O7 _* a( A* d) K PLA
* e& h, a/ t ` STA $80018 j0 l+ x8 }+ W- k/ D* X# f
ADC #$01
- D5 z/ p3 a0 ]# O) w6 f& O" E PHA
, Z( U# t+ U2 @( U LDA #$05. F7 _3 J1 O7 o2 J3 B( e" B
STA $80007 h* ]7 ^1 W' s( i+ }, G) ?5 W
PLA @; Z7 U/ q' Y% [; ]7 C
STA $8001. @& a( e) n- ?/ Y& ]
PLA9 G- A0 v8 A) v4 e9 B+ S6 e8 m
RTS$ H3 y9 v( b3 x2 ]6 l1 C
) h: a4 `1 ~6 |3 s: I |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|