|
|
;[FC][最终任务mapper1切页程序]
; m# l2 X- S! h .ORG $CD9B
, }8 w! L o" yBANK_START:% T/ G1 A, j* `1 h( H
STA $70
, h+ l* v- c3 n: f! O; J. t) T+ R TXA) j6 E$ b4 ^, E5 s8 Z V! ?
ASL
9 J4 F- t. b1 y/ [8 |4 n TAX
3 e a$ L- v* B QPORT_SET:. G Q. I0 @2 [( z* k9 B
LDA BANK_DATA,X
" p0 J7 S" H( J" z% N1 ?/ c: D STA $6E4 m5 M) L( Q1 y$ b) f- v7 ]
LDA $CDB8,X6 U1 `# |9 L7 h
STA $6F6 {; h4 ?9 e E. B
LDY #$00 l) F/ H6 ]# h2 b$ O' a
LDX #$05
1 a8 [7 d# X5 N9 e4 X1 E- o% ^ LDA $70
# C, E% A" X# m) g1 i6 nPORT_WRITE:
7 A6 h4 p' N. y STA ($6E),Y E$ ?, v/ o3 f/ e- H
LSR& k4 v% G9 e; T8 w
DEX% K- m+ _& H. O* X0 j
BNE PORT_WRITE
8 l1 ^/ h* r7 _4 D RTS
& u5 _+ Y; M& ^. h
0 z8 f1 X. {' b" ?
' v4 d' j* ^& `0 X9 zBANK_DATA:. I1 ~ W% b8 X% `
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF# Y$ P0 a1 G: C/ v
* [2 X: X- T: F1 l. R2 P; ]1 a
7 n9 A+ @7 H* @$ J;[FC][最终任务mapper1转mapper4切页程序]8 {: F4 k$ r/ U& h" _. g+ m% G
.ORG $BFD2 ;初始化跳转4 Q/ X5 I- R' W4 b
JSR $FFC04 G: v, v" D1 t6 ^
) ^/ a1 {7 S! @
8 R% ~# m( P2 e .ORG $FFC0 ;切页
. ~9 K; R5 k2 \2 w v9 s v! o LDA #$06 ^' X W% B) S+ ^% F. k
STA $8000
, G- s0 n/ Q: [% \; Q1 D+ _4 J LDA #$0E+ V9 V! K# L& O6 z1 F- n4 o4 }
STA $8001 K& S/ ^4 ~8 w
JSR $8000, M" D8 ?$ a/ N( E( J( S7 W
RTS
6 u, b: ~+ w$ [! s
$ Q ?8 E5 z) x. H ?) i2 o0 B .ORG $8000 ;数据复制
8 L1 m) S& D2 r' E! i3 ?: P4 q LDA #$80# E) u3 j4 e; J- h) G
STA $A001 ;启用SRAM
b3 w5 v6 k" K# T- f, h( g PHA
]1 V/ w v, d5 K TXA
/ v8 D, O5 o7 r; ]" X! S' j( L PHA
( E5 G) T0 j+ Y% y" ?& E+ G1 A+ f: s. f LDX #$00
# k* i- ]1 F. A+ qDATACOPY: ;数据复制
1 b5 p0 C" j1 j4 G8 ^! J, |/ h% e0 J LDA $8100,X5 A7 G# v: B+ Z! T
STA $7200,X
. X) l+ t e* g% Q, Y INX
6 F2 J7 i; ?0 `: O! M& t+ D CPX #$008 w( A3 F' e! [' \3 I5 U( Q1 h5 K
BNE DATACOPY8 A8 x: k1 G* G
PLA9 J ~( e& ^1 ?+ N1 C" o! K3 S/ \& E, k
TAX
3 Q# N6 j; z; r4 V1 [ {" b PLA
q8 D8 b- d' @+ V1 l J3 @ RTS
' H+ X7 I/ @2 N1 b & `# K; u3 S9 L* p4 u1 e
.ORG $CD9B ;跳转到转换的切页程序
6 V" X' t+ q) ]( ? STA $70
[0 o4 n& l- f. K$ d; O JSR $72006 }$ ?4 w7 L6 d; T9 x# ?: K8 j
RTS" v% Z* I& z4 z/ D" a b! P
2 b3 Z v0 G, @. r5 t .ORG $73002 N! g) A% p: c i
M1_TO_M4: ;切页程序, e: f7 M7 n& H# g
CPX #$00/ {% `/ ^; l: M6 n: p
BEQ REG_SET& w0 B/ P5 K& V& S
CPX #$01
: Y- g! \7 e5 {6 m( N2 I BEQ PPU_BANK_0000
" {. ?7 `& i; v+ z) U# a% s+ ?9 D# w CPX #$02$ H( ]/ m5 J* }5 J+ d
BEQ PPU_BANK_1000) O4 S" U7 [" V& H' V
CPX #$036 J& l: ~" I0 X) H
BEQ PRG_BANK; C, q3 Q2 I9 l7 w- D
REG_SET:3 w n' [0 C0 b. ^& \
STA $A0004 Y, E1 E5 q. h1 v7 p
RTS
W3 Q& H: }; b/ L .ORG $7320
) h- @! Z( r" ]% rPRG_BANK: ;PRG切页
9 ?7 b& w1 M! _4 F6 U PHA
5 b' B8 r5 { | LDA #$06
- Y2 Q: Q. O% a+ c5 Z* w, N STA $80006 U2 u; c& W# k" C/ a
PLA
6 Z- s; D# ^' b5 Y% P ASL
) R$ T9 @7 B( p STA $8001
) f* X# h i( j) d: h ORA #$01
_+ w- w$ F" h+ n p PHA9 ]7 q" \1 E: |( Q
LDA #$07
9 C8 J$ z, X3 n. e6 ]: ^( T! o0 x; t STA $80006 g1 T, E0 t, h2 k- R
PLA. ]- c0 I( G0 ^( H# i) y
STA $8001
* B8 U3 T5 g: D5 j. z6 S, [) t* S6 N* X RTS
1 H7 @% q" G: Z1 B! J .ORG $73402 r0 a7 }8 @1 W1 E5 B
PPU_BANK_0000: ;精灵切页, m% Z1 }; B; N( ~2 W2 F, ?$ X
PHA7 J3 H1 R! C0 o/ { F6 Q( y
ASL8 a7 V) c3 R3 r1 N# T% I7 k* f
ASL
' _0 N( N- q( N! H PHA9 a, S# U& z* n2 e
LDA #$00& m. I/ d" L9 `1 k7 t k6 c4 S/ V
STA $8000& z3 i8 J. D0 D8 b
PLA
4 v: G& k5 l" }" x STA $8001
! J% T6 ^" l+ Q) u8 f ADC #$02( U. z0 c/ K/ b$ G( b% f7 v
PHA- p5 c# }& z6 Y. j; @2 Q
LDA #$01
$ B. }( c+ @$ h, x. { STA $80006 X9 `, d6 @( w' C9 S0 v5 B& o
PLA
+ L' m4 ?1 x) T% b' q4 i9 d STA $8001
1 y) h" m7 c. y3 L6 U PLA2 Y8 R0 Y5 |+ ]- D3 J2 J4 h
RTS5 j3 D% i8 l0 U- I
- }9 v4 Z* z% Y! V8 g# u
.ORG $7360# t+ {9 h j: @" }+ Y
PPU_BANK_1000: ;背景切页) j. l# t3 v5 `; q
PHA
! W$ ~; z+ a( z ASL
# s* l2 d8 f* `+ E" t ASL
$ n# {7 I' W/ _& t) G PHA
' x) O6 }5 S4 Q" i& R LDA #$02
1 q& _; j' r, ?/ } STA $80002 A* U9 \8 F, _8 w3 k6 E
PLA
0 `) c0 P# P' u STA $8001- u: [9 H- {1 c- P
ADC #$01
5 n8 g# A9 E+ z, H4 { PHA
6 Q& [! p% O/ g% T1 @3 } LDA #$03
/ j0 z( u/ _) i' L- ~7 }/ C9 I6 | STA $8000
, A. H8 K, }; n* E# a6 K PLA5 q! }- {# O+ M' k6 U- P7 s$ I
STA $8001. S- m. B3 ]. ]/ H4 C
ADC #$01& \9 l2 f4 J$ m& s9 @ g, O; P. N
PHA; b# d- f$ D9 J- z
LDA #$04
1 q/ G4 H' ^: M( m+ |1 }2 x STA $8000
' i7 {- Y# R7 V) R; Q8 l5 Y PLA( j0 \% a# R' I7 x: l
STA $8001) I( W) x$ I0 ^. g
ADC #$01
" [; \8 r. A' _9 L PHA
5 ^! [7 W5 e* x/ r7 |& G LDA #$05
" h' N: X+ P! }5 \; O STA $8000. x( L: t; A) P* m) U9 E J
PLA
% r. v) U* c, h& z2 ` STA $8001% z3 r. J& a: p) H) f, _
PLA5 E* p* Z% _6 @/ d6 w: V1 k, J0 M
RTS) Z8 G6 D6 O; w' Q: b# [
9 C5 }$ u$ i* v4 t |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|