|
;[FC][最终任务mapper1切页程序]! S( S7 V7 U. d F, u
.ORG $CD9B1 `$ O3 o' M0 W$ ~( @+ e* n
BANK_START:
5 h5 ]# x" T' k5 y7 E" H$ o STA $70
9 C% `5 v- l/ O. @) }" M: x TXA
, h5 X0 W' i" a; E- Q" H9 M ASL
$ M& ~5 c$ {* U TAX: x3 C6 @# o t5 a& o3 w K
PORT_SET:& C3 B! k# d9 d6 C5 |4 K: F
LDA BANK_DATA,X
: g: d \7 L0 C9 S STA $6E; B! `5 ?/ c! L1 ^% t
LDA $CDB8,X
, {+ y' H# H9 d4 ^+ ~$ V% B) @% g STA $6F6 L" x. j4 R5 N# x+ l
LDY #$00
# Q4 ~" \& D$ d" @5 u LDX #$05
: u. e* W+ L# c) e& d1 k% _! ~1 h LDA $70
1 _6 e. y3 s) `9 ^3 h& }PORT_WRITE:
" K" C: w0 |6 l2 l STA ($6E),Y
1 }5 H+ _) v& g, ` LSR
7 U7 E0 N% j$ ? DEX5 p4 i+ m9 Q* ~ _! p
BNE PORT_WRITE3 Y& h+ Z& l4 b! v$ U: O
RTS
3 j7 j$ V" A E s1 O
4 r6 z% [5 w6 G+ B; J$ R
+ k) x) U3 y; }BANK_DATA: [- z- Q" J3 E8 [0 w
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF1 c% B' F) \9 p4 b z
' P! z3 e* v" e6 y0 W" j
' b/ L; V9 C8 Z* o; ]
;[FC][最终任务mapper1转mapper4切页程序]
" H7 y0 Q( o9 y* c& a( h .ORG $BFD2 ;初始化跳转
/ H1 z6 b! M" r+ s JSR $FFC0
( ^) a5 l1 `0 B7 U, y. B, u7 Q+ X1 b: k0 A
- e, N. o4 C2 O8 h
.ORG $FFC0 ;切页0 P/ b; R9 M w
LDA #$06
* O4 C) G+ k( ]5 b& h STA $8000
9 P3 E `+ ]1 X$ W( B- F LDA #$0E
* E. c' L. Q! O STA $8001) m) T; c- V; e5 R2 e. \0 r
JSR $8000
3 k$ h* u! s1 h! f$ `' p) w RTS |+ [% L; m2 b& m0 e" A4 K, b
% F+ h& D C1 ]; i
.ORG $8000 ;数据复制
* _0 O% {+ Y3 L LDA #$80; ^5 [; d" x8 y( w
STA $A001 ;启用SRAM
: y: g; ~' o9 Y6 j PHA
! v, a% [& Q5 O( u7 I+ {# G b TXA3 Q2 G) `4 Q* o! Y; E: d
PHA
; C5 U# h+ n9 U D" o9 K: J LDX #$00
# U- B4 e) X+ B7 }5 ZDATACOPY: ;数据复制
0 `1 p* N% {/ |5 q# F% s LDA $8100,X
$ J2 Z. ]$ b# D2 F# v1 q) ?2 S+ _ STA $7200,X1 L' k3 P$ x8 p; K2 z7 h
INX! o! D2 }0 Y% K2 T
CPX #$00
+ C3 G) D. f) J( i% V+ W6 l BNE DATACOPY. T' q! Z1 \& s; g' }8 S' r
PLA
- o9 H: F" K0 b& |1 w+ ~ TAX
5 {) g, q d1 B0 M' h0 F( \1 b7 M PLA
! O) K$ b- l) q7 {7 T4 Q RTS
( E; ~# f& i4 y5 t, h1 w
. E2 c6 R* w# s: ?8 p' }: r .ORG $CD9B ;跳转到转换的切页程序3 Q8 c% F2 q( \' a2 a: y; N
STA $70
* B5 d4 [3 k' I- L# T- E JSR $7200
0 Y& j& A& F% Z' \9 c y- ` RTS/ h T n1 ~6 b$ K
1 d# b& V; g( x- }' Z .ORG $7300
/ \9 b; A- Q' s* _! ] jM1_TO_M4: ;切页程序5 l, q% ^" n1 E+ Y3 g, I% |) _
CPX #$001 q# m1 ?1 {' P6 Q$ S7 z6 d2 ~
BEQ REG_SET
$ M2 N1 } q" j4 M# @ CPX #$01& I4 k+ U, v$ {! ~
BEQ PPU_BANK_0000/ P7 n+ f& m5 G, v S
CPX #$023 u0 r* {) q; B( l
BEQ PPU_BANK_1000: w- B( y( P; \
CPX #$03
# `( k$ b9 W1 C- x BEQ PRG_BANK0 P* o, T7 ?& ?$ K0 |
REG_SET:
+ f/ ]- R* D% _$ S STA $A000! ?# z! A+ H/ H3 E1 w, X3 p
RTS
! _, T: M- R" O4 } .ORG $7320
; M3 M$ A- \/ t; r" W7 o+ FPRG_BANK: ;PRG切页
( Y# i! h7 g& F* Y9 {9 O PHA b# ?" x0 m/ k) o$ z F
LDA #$06
0 C& l& N$ Q. O& s STA $8000
* C1 o7 A/ F. N- g5 d+ _) z PLA
: p4 V" Q. f( s e8 h, T ASL
9 t3 c& [. a5 g B STA $8001
% |7 U2 j3 j6 N" S. ]3 H" G9 t ORA #$01
3 x2 |1 w7 l) T6 W- @: @- \ PHA
! {. i. K! n3 t$ e LDA #$07
5 Y% ~9 D" {$ Y8 S STA $8000$ c/ [& X4 ~0 b2 ]! j) X0 I
PLA" K( X# h. X. C+ H U
STA $8001
T7 t' ^1 x: @ RTS& O$ c" ]# M s* P& h# i! Y0 L
.ORG $7340) P+ K3 Q- l: c
PPU_BANK_0000: ;精灵切页
) V) I/ d1 B8 v PHA
3 p, D$ R* a3 Y4 W8 Y ASL: f- S/ z. f0 z0 I. e' v
ASL
8 L8 n* y, n8 o1 q# T6 A7 j3 x0 { PHA0 m6 T& d1 D, @; ~$ V+ f
LDA #$00
# o: S2 d! e3 S- w+ a, g8 _ STA $8000
- |9 z* U2 i( j$ M6 W PLA7 ^$ G' h0 p7 E) x8 S3 b/ E
STA $8001% _$ i" C W& c/ V( x
ADC #$02
! {8 L4 u& q% b* V PHA4 u1 y& g; ]% ?
LDA #$01
9 y4 n: Q8 f O D STA $8000; n$ t4 j5 h1 @3 u& t- s
PLA
$ N& j2 ^3 v0 n STA $8001. J1 ~% b# E1 c& [! H; V+ e5 Y+ {
PLA
W9 t) d/ N* E" Z: ` RTS9 n* M7 O- W; F1 _0 Q! @" M _
- F6 P9 _' A- L( W+ p2 a% l
.ORG $7360
; ?& k+ K% U% S2 j* |% T9 ], U7 ?PPU_BANK_1000: ;背景切页
4 R5 X( c, d1 y PHA
$ r+ O* F# h! h& f ASL
+ X$ Q* P S D5 E3 i( L ASL
0 k; k! }/ `5 i, @' b+ n& m PHA6 g6 q6 k1 E6 a8 u0 ^1 U
LDA #$02
& x+ |5 ?0 _, N STA $80008 s& e+ J( f& O7 y) c; u; y
PLA+ A3 c) ^1 Z$ v
STA $8001
) {8 c. P& y/ N6 M8 K" Y ADC #$01
6 M: \- p) ]' J PHA
2 H6 N8 ~, J" s9 N LDA #$03
8 L7 a+ g* a" A STA $8000, N2 _. U8 ?9 t* c: `9 `
PLA& X: V+ [5 s. I! k+ w
STA $8001
# G7 j! {% a( x! l7 }( r ADC #$015 |2 g6 o0 _1 m& o( X; u% m
PHA; Q0 q8 B/ r. v* A4 y; E1 e
LDA #$04% b8 A+ c+ x' |1 ?1 ~/ T4 J
STA $8000
. G' D$ Y) ~. Q. B0 b4 N: x PLA: Z) U+ v6 S/ H2 n1 R% ]) g* q
STA $8001
( m% R8 w+ F% W) Z ADC #$01
" F* K& | S/ f( N1 ]7 j PHA2 ?- p ^( [/ I) L
LDA #$05
! s. v, h: [$ b* U- n. H! w2 \2 N STA $8000
) K2 W. d9 c$ q3 m PLA
7 t; _, O Z. x$ P STA $8001# X8 W2 n; f' N! X; h2 M
PLA
1 D1 a% E# D" G1 ~. I3 J. w RTS8 |2 Y F' Q( {
: j; Y8 A' g& e _$ m! Q: }$ F |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|