|
|
;[FC][最终任务mapper1切页程序]: `# i/ _( c) m
.ORG $CD9B( Y. c/ a( \6 |6 _
BANK_START: {% G/ g# n3 j
STA $703 n" P: Y9 ~5 n. Q2 }# p& z
TXA7 u1 O, g7 ^3 g: Q3 { P, Q
ASL
5 ~6 C1 T; B6 ]8 F- y- q% u TAX m. n* P# q$ d, Z
PORT_SET:
8 x# ?1 c9 u8 t0 k LDA BANK_DATA,X' Z+ X b, w) [ x8 Q: ]. P
STA $6E# r* c( h) K/ s- a) p% ~, m
LDA $CDB8,X- s* v8 ]- W9 u' @4 x
STA $6F
: L" o5 N3 d! r2 k' ? LDY #$00- h1 y3 L# S- l5 K1 Z& Z n
LDX #$05
4 K; ^) `$ O# P% T LDA $70# z2 t- l9 f3 Z" I% `2 M" F4 \" A
PORT_WRITE:
+ S) u9 ~: r; L: j( B8 F STA ($6E),Y3 E$ b1 D5 H8 b" @; C& I
LSR
# d4 F( S3 o: I& {& i+ u DEX: v- N ~! O: K, m' g5 M4 y
BNE PORT_WRITE
q7 z _, }) C! [! c RTS
5 o1 m! v m& R0 f5 ^1 n& f9 D
2 U* Z# K2 b! c( q0 S5 k6 w0 d9 \ ( L7 o% F$ u) d$ J9 m& g
BANK_DATA:
# Z7 y* K1 Z, f' p$ l& S+ L) D .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF! e% b, n) v5 _: t. L
3 p) \. p! w) {/ \, e8 H; s
2 S+ S# O) t5 V5 R+ J: `5 ^4 ^+ u
;[FC][最终任务mapper1转mapper4切页程序]
1 ~9 P4 @, f. W$ L! D; f9 b .ORG $BFD2 ;初始化跳转" C7 _% |3 m" k. q6 C: ~: L x8 M
JSR $FFC0( M( w0 x, k, [
% `; o; |! R& K2 B: e2 Y% o! p) ~" _4 J& J( h
.ORG $FFC0 ;切页
q; f: x$ `' R- s+ U% w LDA #$06% m% m8 [! D8 a2 X+ }' u' s
STA $8000
7 g3 I: f/ R d8 w! z LDA #$0E
6 b" w; Z; L" u9 ^ STA $8001+ |0 W( Y; A- U7 _. ?1 ?
JSR $8000# d( y: |1 S$ N0 k1 a5 {7 T
RTS ; x0 N- M: Q3 X, r
9 n! R% g3 m8 k' v, E/ _
.ORG $8000 ;数据复制- ^9 e. {: u& X+ U4 \0 u$ W4 D
LDA #$800 n- h' O: G2 d% J3 S2 H. M
STA $A001 ;启用SRAM
$ ?( m5 |2 W5 v! z$ B PHA- m- [3 {7 r5 _7 c7 U: g
TXA
7 n9 V/ [/ }1 U# `6 r7 Z2 _4 t PHA( t; S* |" y# U7 I) J. C
LDX #$003 b. a; O; I& ]6 X0 }
DATACOPY: ;数据复制
) \. N6 E% Z4 T- J+ O LDA $8100,X
; @! g+ y9 I! U. u5 K STA $7200,X
3 q Z; g4 w- q7 {3 F INX0 L" z7 _1 H! S3 c
CPX #$00
6 D8 \8 Y5 \6 V0 z) ]# ~1 ? BNE DATACOPY2 w+ o. B7 D/ h* F# ^, X8 ?: z
PLA' F% e7 h. j4 |! d% ~$ m5 u0 B
TAX Z, E& I. B- X7 p X; F# Z
PLA' U9 j+ u6 C% D0 [: t5 n8 }8 D
RTS. R5 _1 \4 |# W5 Q% s6 ?
. ?1 s9 r$ H! [8 d" K% I .ORG $CD9B ;跳转到转换的切页程序- H6 ?+ A3 n# s
STA $70' l- ?( p; f. r/ e
JSR $7200- r A0 l: C& y* g; {9 @9 E* r7 K
RTS/ \& ~" p& n# V0 R! l& _# E
. h* s5 ?7 ^6 p& A2 e# F .ORG $7300$ T0 y( Q" _- C; W' P
M1_TO_M4: ;切页程序
! y( L: Z8 J. d, ~( R CPX #$00
: E, e9 F- j z9 q9 Z. Y8 F6 W! X BEQ REG_SET
& ?6 ], k% {2 ?+ a9 a# a- O4 z' j CPX #$01
' h( r3 `, @$ k1 @! ^ BEQ PPU_BANK_0000
1 L) N; V! e/ D CPX #$02
( d5 i# m" j0 X7 C BEQ PPU_BANK_1000 n5 j7 F5 C. o, {0 T2 H* Y& _
CPX #$03
" T& [* N2 a* E BEQ PRG_BANK
) ]( q) i$ c& Z6 {0 s. `" e9 @6 x/ t, MREG_SET:4 S3 _. h$ F7 Q2 G/ [" j) D4 l
STA $A0006 D' a6 a3 @8 [
RTS& S( ^& ^+ j! Q1 a& u& V$ E' P1 C
.ORG $7320
4 U0 j' q3 C3 ]5 u2 @& lPRG_BANK: ;PRG切页% F* p6 z& t+ c9 h- h0 f
PHA
/ p& t3 i5 Y& l LDA #$06
6 ~. O0 D/ t0 N- ~/ I. U STA $8000
7 ~' y( i8 @8 c" f: B! ^+ i& ?* H1 J PLA
, @9 O, l' @5 @ ]+ d; b0 p3 j$ w n ASL
7 M% N- j6 O" r$ G, q STA $8001& R- @3 N8 U: e2 |6 H
ORA #$01, w B/ ?# |: W
PHA
3 J$ x2 E0 n4 r% ]- _1 b+ e LDA #$07
# J j$ s4 | m3 Z! u+ v1 _ STA $8000: @/ ?, J+ B) f2 @
PLA" k1 E( v) {" g- L0 X5 I
STA $8001" q/ }0 ]2 k. `' `& w/ b' \
RTS
7 A, ~5 y$ o: F2 U' s: E .ORG $7340
% R- E1 @# }( v" B: w, XPPU_BANK_0000: ;精灵切页
, O& m/ v. v. |# E. t PHA
0 Z, t0 v6 i+ Q1 Y- L, o A ASL
$ ^; ?: h) _0 [ ASL7 t1 d" s4 r5 s( _
PHA9 ]/ M( j8 l7 F( t M
LDA #$004 E/ Z- O3 c1 D; k
STA $8000
+ D8 E% b; Y l5 B PLA
: Q4 K9 }. b9 L. c# Q+ u! b+ `- _ STA $80016 ?2 t: E* i4 x) f5 ^3 D* B4 X
ADC #$027 A+ b; ?3 Z' w7 W9 d& y
PHA+ R8 ^% {) s L5 [+ b$ d3 p; z7 A
LDA #$01
" e) V$ _: X/ |! M; h: v+ u STA $8000. y0 r1 i1 N& a# l$ |( [/ B4 _
PLA
+ ~' e. t1 u6 B: L5 d STA $8001+ L; V8 y+ V4 v' s- i
PLA
* K$ T6 U) m% C, m6 q RTS
$ L5 g8 `! D; g" `" ]
7 _$ ~- \ @9 x) g4 e$ h. F4 x; O2 ~ .ORG $7360
8 z- @) S- ?# }* x" ePPU_BANK_1000: ;背景切页 T! Q& g( @6 [0 F! S6 x1 _6 ?$ I
PHA- N/ Y X. P+ F1 i
ASL
! V( Z: L, a! q- I8 x, z" y$ m# E ASL
5 g# N: F# H0 Q+ @6 g4 f6 y1 \ PHA* Y P9 W& x/ ?4 R; `9 S2 T9 C/ J2 |/ Z
LDA #$02
h4 u0 K' G$ }( m1 k8 r+ Q STA $8000! N7 u! h Y6 B( X7 o; J
PLA
6 O4 X0 V- O# ?& L) y: H STA $8001
" W# _; F( p0 ?! @ ADC #$018 f6 S, G1 @5 \. S
PHA" P* |2 g2 L+ g7 d
LDA #$030 \' o* y% B" _2 C6 V# v
STA $8000
, ~% q5 g5 C/ F" z0 Y$ I PLA; }% e* v1 M ]0 A7 e# k7 @' h. A
STA $8001
2 s* U/ @5 e; F. R' H k5 \- J6 j7 q ADC #$01" H1 n# s, M& x* q5 T" m4 w O
PHA# @; P4 g Q6 ^ c' M1 S1 E
LDA #$04
$ T+ ^% j' Q. D& n, d9 O S3 Z, n( f STA $8000" s2 F2 Y- q) a$ e3 [
PLA
, U- M# V1 p% N N0 a STA $8001
, h. ?( U5 D4 Z# ~- T5 X% k ADC #$01' m4 `# N/ b/ Z6 U2 ^% g+ Z: F
PHA9 J' H: |+ H! c8 p% @
LDA #$05
7 L+ P( `9 K6 U3 X. w0 r STA $8000
4 P" |: B. U0 R# H: s PLA
- B2 J7 t$ e6 X1 H0 i6 S0 w+ J STA $80017 W8 q2 ]0 a$ z5 }2 \1 h
PLA5 n g$ v9 m5 y; d ^( ]* U9 E. x6 _
RTS
. }. ?9 @ H! |6 \3 r7 w" m5 D9 i+ X3 a" r& J
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|