|
|
;[FC][最终任务mapper1切页程序]
+ [# J8 Z# A- o, Q .ORG $CD9B( {3 [* I# I! l; F
BANK_START:
2 i* O; C& [4 M; u6 ~ q: @ STA $70
n1 y/ j6 @/ E/ B TXA
' E% E8 X4 w% `) S) G ASL
2 @" J: [# P, C: Z' }' o* q TAX
! x$ } C: g+ X7 A0 @# J7 [PORT_SET:8 M# {. {2 S# O
LDA BANK_DATA,X; ^, [5 g& T8 D
STA $6E
1 g1 M8 {) h) ?7 q' L LDA $CDB8,X8 s" c" R7 V% x2 ?
STA $6F
2 w5 z" `( g u7 F* D% d$ i LDY #$002 x% U. N- M& r) L1 M: N
LDX #$05
0 P# _5 }5 Z) w U% f+ C LDA $70
( U+ j l( U7 {- ~3 l4 OPORT_WRITE:
l! A3 H _9 `4 z1 {& W# S STA ($6E),Y
, V' y# t1 F7 Z LSR1 M3 l* z2 f/ K/ I! t. G. i7 U
DEX
- i# K$ y; w# p; V& t BNE PORT_WRITE
3 d2 @$ {. ?3 c, L RTS5 E. H; R2 O; y- g z! e* |
# p$ O4 H! l' A7 [ $ ^2 \/ e7 H- O/ h& s. R' m
BANK_DATA:8 K/ L* d" V; b3 ^; A( C2 ^4 y2 Q
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
# k+ L/ [+ G5 e# C R
- c5 z- ~8 g# j3 T+ K
2 m- ]: d* k4 {! B;[FC][最终任务mapper1转mapper4切页程序]9 j$ ?% ?# ?/ B1 r+ M& Z
.ORG $BFD2 ;初始化跳转( u9 y. p, t! V. o9 B
JSR $FFC0! y$ c1 _: u6 i9 X$ e! w
. t& S: @$ g& u, w. v/ P4 W5 N* }* l& c, _
.ORG $FFC0 ;切页5 o9 }! T: M9 V, b% T
LDA #$06- S; R3 E2 Y. l U! H
STA $8000 V8 J; c# G% U9 X6 R& z" w
LDA #$0E& D! \! |( }4 R/ Q: F
STA $8001. J* N% Y% [/ v8 u+ ]) [8 Y
JSR $8000
% E% N6 Z6 h1 h R5 C RTS % L- D3 ^3 p- o7 B. e& b4 Z
? [' P' s& h! c* c3 H
.ORG $8000 ;数据复制
1 Y7 b3 U. ^- N0 C$ ? LDA #$808 \4 l5 w8 @1 A9 _
STA $A001 ;启用SRAM
2 O( u6 |* m, X+ E- G PHA' A4 @. |! k. V6 Z i/ ]: r* a
TXA' m% c+ {1 J1 C* \! X3 J) A
PHA4 u9 h; W: C5 J& G1 w$ r
LDX #$00
7 p- D6 C& ^$ R1 o" ^, g# ADATACOPY: ;数据复制: S& r W9 M3 r& N; F) A( D @
LDA $8100,X- q. c/ ^/ [ ]$ v
STA $7200,X
* k1 B2 Y6 z1 m9 C# d/ ^) f INX
a6 @0 S& [8 Q+ B3 L2 V7 Q& [ CPX #$00/ E( b3 C, ]) D: {. \
BNE DATACOPY
. u5 e% {0 H1 C6 P& k+ `) ?# S PLA
) P' \( V1 R4 L* P$ x, | TAX
' z3 z# Q0 Q6 x# S; D PLA# K, p' E% a) Q: j% L0 x7 r
RTS
. w. G P& C; @: R( g $ [0 ^3 Z9 A2 Q9 j7 W. d `6 r$ G1 ?
.ORG $CD9B ;跳转到转换的切页程序
g/ O. D; ]$ ~" V0 z7 z# L7 h0 p STA $70
" [; V0 s. g' y+ M8 x JSR $72009 H& S% \8 C! ]: ?5 x
RTS4 l4 T/ A0 C( o0 T4 }+ p9 W4 U
+ d% X% D1 ~1 s5 f1 v5 x .ORG $7300 u. s- U4 V, Y: j
M1_TO_M4: ;切页程序
: l- _. [* F8 E# T7 T CPX #$00- C" Y, x; o D, i
BEQ REG_SET
3 ~" D1 n+ h3 p0 G" g* `) ^3 r/ g CPX #$01) s3 b4 @9 {4 P& ~* y
BEQ PPU_BANK_0000) w: B- y+ P) x
CPX #$02
/ F/ N9 ?) Z8 i: f5 }7 _ BEQ PPU_BANK_1000$ C! P$ w7 q4 u# Q
CPX #$03
, b: \3 @8 d4 E) A# D BEQ PRG_BANK
3 ?; o! {! I2 ~2 K" J% xREG_SET:
+ c1 _# u6 P6 [5 g STA $A000- f U" p+ [. O L0 n6 ?5 V
RTS
; I( g# |5 c' i4 l .ORG $7320 y2 w0 x: I% C6 l. f# K
PRG_BANK: ;PRG切页% ^5 O$ i1 Z' |1 o* g
PHA
- S$ E( x0 K2 }- ^* V LDA #$06
+ @& J4 ?8 r0 V+ Y STA $8000
( Z8 t) s1 l U9 a/ Y PLA
F P* q- S8 f' l# T. R ASL
! c' F, X1 }7 J' b STA $8001- z6 N0 @' n: N
ORA #$01/ a4 U; \: T; ^% R% E. z1 X* t
PHA
! i4 d6 o. H" I; O1 m9 [ LDA #$074 {) \9 w6 Z1 N& F" L
STA $8000
( |" s- f$ Z7 E4 p3 @# F PLA+ z" z' p+ {/ {) ?" _; T
STA $80013 B" F ~. V( F2 t# ~# k5 W
RTS- ?7 I8 L4 g* r9 p
.ORG $7340
, u8 o+ i) W4 M, z2 tPPU_BANK_0000: ;精灵切页
2 d" A9 b; s2 i: T PHA
" C+ V( c7 _' s1 C R! c: r ASL
, ~) C1 L/ Y5 h. h% A7 I" l ASL
: L: |' }1 F# ]- w9 Q PHA$ u& p8 Q* E4 ^4 c7 H8 D0 t
LDA #$00
]- @! _; q8 ] STA $8000
+ U+ ]. S3 x0 J6 A. `- r* t7 v PLA
5 ^- ?* L5 }# y3 e+ H: Q" g4 e STA $80018 f! v! s2 A% j; `) @- @
ADC #$02
/ K5 t0 X: \9 L* z1 t/ K* ]" m7 y PHA
% j1 g+ [" \/ R; a LDA #$01
: L, J( ?2 l) _/ C; d, Z! h+ f STA $8000
( q x, \7 D, a. Y3 E" `. V PLA
: d; N- t1 b! } STA $80014 f# [3 c, q3 K2 w
PLA) k P3 X9 |6 F: v/ o! y
RTS
! O* c+ k9 l0 H+ _+ i, j $ g: Z5 [( u3 e. y0 ~: H
.ORG $73603 i$ E2 E5 B2 o: G8 Q: V
PPU_BANK_1000: ;背景切页5 q; ]; `9 K( M- G" D# ^
PHA$ w" V& u) m6 f
ASL
3 B8 q" T. _- ^& b6 c ASL
5 t5 C3 [5 k5 }2 U$ N2 }6 b PHA7 P( ^; C9 e7 h
LDA #$02: N4 |# B2 N4 l7 O
STA $80009 M/ u, U; W$ Y9 s
PLA
' y+ q4 r; K8 o' _ STA $8001( _4 Y" Q& J( H9 u+ J
ADC #$01- L2 T/ [4 a) X
PHA& `9 g0 u5 a& o' G# |/ Y
LDA #$03
0 [4 V$ c9 L) F: u STA $8000' f& P$ w* z1 f& V. Q
PLA
w! }! o! Q) u+ H3 Y$ p" V STA $8001 U3 N" e( z2 N. U
ADC #$01' n1 }8 G+ r! L7 h9 I- h
PHA! ?: C/ L/ G7 f9 a& d
LDA #$04
% J% O( |) c c& v9 U5 I1 U) Y STA $8000- P& Y: E+ j% e! N0 j8 r$ K
PLA8 k" H# k z+ `' n5 H
STA $8001
1 z6 }- o, M) ^( @# P5 o ADC #$01# x* R+ C) R9 _$ Q
PHA
* u8 ?3 ~" a) }' f' ?3 O LDA #$05, ] U# v, v5 _; Z
STA $8000" h! M! x0 V% \2 V4 Z. }
PLA
: K9 D% n6 |8 o5 T b; P STA $8001
+ L8 ?/ y& |; G8 A# x) y! { PLA
3 h V. K$ A. S2 V; @ u Y# Q RTS
% [! r- X/ {6 d+ D& o& b* v6 }" F" U* c
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|