|
|
;[FC][最终任务mapper1切页程序]5 w- p5 Q* J! S5 E1 j
.ORG $CD9B
9 R, y1 j8 N# X; tBANK_START:
7 B W5 a! @4 I$ z: G/ h STA $70- l& F; j5 K0 P& O, V, n& J
TXA# a8 @; G1 q" w# P1 z6 C( R( z' R
ASL# Y: f6 Y- }7 _: P
TAX
3 N- s/ D7 K* V7 J% E4 pPORT_SET:% v6 u; e8 Y: e6 F" p% n
LDA BANK_DATA,X k5 [- j9 y9 y9 t. ?% Q
STA $6E
* _1 v1 F$ [4 w6 G LDA $CDB8,X4 k$ v: K* r& o1 U9 b X+ \6 e
STA $6F, j8 P5 y, T0 s( L) N
LDY #$00
6 [1 Z/ k/ `& [6 h: D1 n LDX #$05
; E2 H$ u$ \# l# A/ |; ~6 ] LDA $701 o9 Z0 m5 T+ E
PORT_WRITE:+ C6 N! U) h" s( E5 }" M9 F H) W" l
STA ($6E),Y
, \- P4 j) @7 G8 F# P LSR
# s2 W* s7 c/ m DEX
5 B' m9 y+ t1 M BNE PORT_WRITE+ d, P6 p& t0 b/ i
RTS
- N! d: Y7 x% u2 f7 q& o
2 l- }/ L3 {; `. {$ f2 s
5 G# ~" I: r4 O# C' h! N' RBANK_DATA:
! u, M3 c& a5 @% g& S8 ^ .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF2 K e8 K% B( ]$ a5 e
5 j/ o+ r% U5 y3 R0 S" ]# Q- t G
H; e. n! U8 u; d% h! n+ P
;[FC][最终任务mapper1转mapper4切页程序]# w5 h, {% `0 W. i
.ORG $BFD2 ;初始化跳转
3 e# @' w' `0 R* u# D JSR $FFC0( G @' N( M+ I0 t
$ z" B5 P$ }: l7 t. ^ n7 B. z m5 K3 Z7 h
.ORG $FFC0 ;切页
) C. e1 A) r7 n, A" H LDA #$06% k; E0 f: v M! n1 J
STA $8000' Q# X4 c, ?6 c3 m+ r2 O8 f3 h
LDA #$0E
1 z4 H ^! a' L) V9 _& L% s0 k1 j STA $8001+ E: ^$ W2 }6 @$ E" l0 I
JSR $80002 r: r1 s/ L" H2 Q; B
RTS 1 _3 f- s, r" y% M/ X. k
! ?0 g+ D6 u9 ~8 P
.ORG $8000 ;数据复制
6 s1 G5 \8 X; d9 D& N LDA #$80
: c# G% `1 o2 _8 Z0 j STA $A001 ;启用SRAM7 [0 z- A, K; ^9 J/ |' l0 ~% a
PHA
9 Q3 S- w! X. P' N& A TXA
' |$ p; X5 X/ c( V" D) f PHA
+ |+ A& I) s* V- z( R; T$ P7 \0 O LDX #$000 u/ X _3 m) u/ ^4 ^7 a# m
DATACOPY: ;数据复制
8 ]8 a& ?3 s/ ?; y; P' ~ LDA $8100,X- J( I2 T% z6 ^6 t( h
STA $7200,X* O% O/ _3 ]# P
INX7 z+ F: n4 x4 F! } ^) a
CPX #$00
# q; Q& R, v/ e' B! O BNE DATACOPY
/ R, D7 U$ d) p- X0 p% P PLA
* _8 E9 ]4 G' Q+ D) ~: [- n# k TAX8 D- } S3 {8 e0 R9 y$ F+ r2 }
PLA+ T; p0 W$ t2 }7 i E; _* I$ ~
RTS
: t* V8 I% w7 t1 v. ?
1 y7 X5 p. v$ }2 d% t! I$ { .ORG $CD9B ;跳转到转换的切页程序; Z- q$ E$ ]. v% q* h9 Y+ u+ N" [
STA $709 o# ~7 Z1 m) }3 y
JSR $72006 L* z4 |: l* F' ^1 V# }
RTS: k3 T& \/ Y% F8 u" Y; Q1 {) A; p
2 R. f) f6 [- k7 h2 c5 D v+ O .ORG $73000 ^" _- G& Y$ F% o. r/ U
M1_TO_M4: ;切页程序
5 Q6 _- b% r4 ^* [$ n$ a% N5 p CPX #$005 ]: M" `( K# n8 ?/ t( y# s
BEQ REG_SET7 s/ V3 b& E/ G- e: F" S
CPX #$01; b) T3 J h* r& l
BEQ PPU_BANK_00000 I+ J+ D, s' E& v' n6 z+ {: E3 W. H
CPX #$021 O5 D* v6 Q) @ A5 q4 N- S" x* G. @
BEQ PPU_BANK_10009 L: D+ Q: E& O# E
CPX #$03
) `9 U% V4 \! M, s) K) j$ ]' w BEQ PRG_BANK0 w) [/ X8 D. W4 W/ Y
REG_SET:
/ l% O, H6 V) m$ p& L+ _. L STA $A000: m$ o4 E) y% y! u, l& J( w( O" Y
RTS
8 B4 _* Q2 v# S8 j- H! [& U .ORG $7320
\( T3 p; D9 q( B: G' U1 MPRG_BANK: ;PRG切页" C+ q' K+ M- x- G
PHA
6 v& B: \; p* H( x# m2 m% a, {4 l LDA #$064 y$ L5 b& [0 M# i
STA $8000& {' I) h& X# S' s+ ~
PLA
: {( D- ? g5 R+ Y, m* y4 F- V ASL
3 w# g3 Y/ v7 y7 J7 \' G+ o STA $8001" {0 T Y8 E0 \& @
ORA #$01
) R# K/ X8 e `+ D8 k' `! Y; m0 ] PHA
$ ^4 Q8 {+ F' K: V8 y. Q; _ LDA #$07& ?) D! A! N& D8 P( j! c* C
STA $8000
* s$ z# q9 ~4 c, b" K) B PLA4 S$ J3 D1 }3 E) L" x" N! r
STA $8001
1 V; i+ L5 ~7 D8 N4 f RTS
& G9 o9 ^* ^: m8 G .ORG $73406 l- x k0 o% A* ~
PPU_BANK_0000: ;精灵切页
! ?; c# u5 J# Y* X. w7 O PHA* c% G) I( O. m; d. R9 s
ASL
2 _% q K1 h; s w. L ASL
" ~- [- y4 ? x0 T* c) f: b/ j PHA
! C! K. B# L: W: k k LDA #$00- M0 a$ Z t E
STA $8000
' [' L, m8 j5 f PLA
+ `) z3 g4 H2 G STA $8001+ _) I" T- x0 T& t
ADC #$02" D/ }; B8 r" i$ J
PHA
, r h/ e: F$ D7 U4 k' n LDA #$017 F! k5 W+ j( z% }. E: n3 Q" Y2 k
STA $80006 U5 }* A, ]% L5 a' w7 ]5 j
PLA
, Z' z! U# s% X# L& m9 i) \ STA $80014 u0 b7 c8 r1 _$ d7 a
PLA/ @" O+ n5 z5 Z+ L$ L9 ]1 h
RTS+ i o ^9 c4 u
" h% N9 G/ k, P/ N9 Q
.ORG $7360' F% O# j9 K$ C, M/ r6 N( o
PPU_BANK_1000: ;背景切页
$ d8 y/ a& j5 o& a- Z; L4 M' f1 A! ~ PHA
* D- K* M8 t' t, l% G8 E9 _ ASL' y: |7 Z" Y. j8 T% p
ASL
- a$ G# I4 V6 ?3 V PHA
" h. ]8 y1 f! ~ LDA #$02
: u0 M! ~ N7 S. g STA $8000
3 S5 r" w; X9 C" H3 i7 n PLA( H1 H) [1 U5 _9 X
STA $8001
% N& S7 y$ j/ E2 m, a2 Y& g& u4 X ADC #$01) C' J5 N+ L Y$ u; y- n' S0 X/ o' _
PHA
7 ?& c5 p' ~8 L6 G2 @ LDA #$03# m" t& D/ }+ Q# g0 ?! t" r: t- T. H
STA $8000
. `8 X1 w+ J8 w6 u. z; V. K PLA
# x& Y, J+ r. c& h* U. O STA $8001. _* E8 R1 B9 f
ADC #$01
3 k0 |; C; U. K* s1 Z PHA
) M3 n5 f7 ?3 ^/ L( f: v. A, s" E" q LDA #$046 |/ C) n7 K+ L* N' i, K0 A( f
STA $8000
( ?+ g0 P$ y6 I, Y PLA
- M2 Y# H& a& S8 e! N STA $8001
, T, S9 ]2 L2 w Q ADC #$01' d6 I' |, e# Q t
PHA( W/ Q% e4 A6 ^4 N) Y5 d% n
LDA #$05
) a4 \1 t3 s# X8 t% o STA $8000! a* @$ n+ Z) |6 @3 S, X- t
PLA9 ]% W8 N% E. h/ p
STA $8001
$ T8 Z* o/ a; _+ b/ B P+ C PLA
% o' g+ B1 t- W% h+ e7 g- p/ i RTS
: a8 c2 {0 O; k+ o
( F b) M6 H5 q# H: }( I |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|