|
|
;[FC][最终任务mapper1切页程序]3 i" r' S) u% i+ c; a
.ORG $CD9B+ J! N8 b- u# Z9 B9 @) B7 ^3 ?
BANK_START:
2 a: l4 }. u2 s: [) A: N STA $70( X/ |: |6 ~# N; }& ?
TXA
7 ]) S. M7 P4 v# t- y. x( T1 u ASL% x8 l9 r/ w6 v8 V! | z+ D2 u: C7 H1 [
TAX
+ n' |: Q5 s. bPORT_SET:4 \0 [7 p6 V- z1 T! S
LDA BANK_DATA,X
4 E1 X: F* ^0 S! u5 i# e- a STA $6E
1 ?. z% e; @) q5 p* H5 c) H1 I LDA $CDB8,X
0 A9 F& |2 L' V STA $6F
4 c8 l' R; T' i6 V7 [4 t( q LDY #$00
& h2 g9 n6 n7 V3 i3 v LDX #$05
$ V; b* P p; m; G- O LDA $701 s) t ]) t1 v8 w7 p& ^5 s# f
PORT_WRITE:
+ K1 m4 O/ W2 f) w: z STA ($6E),Y
. {) w* R7 R! ` LSR2 t6 _& ~/ F7 w
DEX
7 n4 f8 R/ [/ s BNE PORT_WRITE O+ S9 J# z# `2 \1 B
RTS9 M* ]+ u2 i$ n; \1 Y9 L+ K
) c) H* K. L5 F# S# }
! O5 j! K1 I* M) BBANK_DATA:. J/ F9 c+ ^; B0 j+ {$ h- U1 s+ l
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
! C2 [: }; w2 _3 @) r2 s7 r # k- e- E! s% c$ ]' k5 A6 f6 M4 W
1 v ~" G+ t( b# `
;[FC][最终任务mapper1转mapper4切页程序]# S6 t4 x9 `9 Q( |
.ORG $BFD2 ;初始化跳转
( t5 _( X. @, `) X% g- j0 z n JSR $FFC06 p% ?& T0 v7 p# Y; ]
; q0 Y9 a ]( Q
+ X% R2 ]$ f% ]2 m$ h
.ORG $FFC0 ;切页
1 P+ I0 C: E. L. q8 z2 ?, e LDA #$06
. m0 T; G* W& v. X! W& ~ STA $80000 L$ n( o+ I! w! I) x
LDA #$0E. t7 s, c6 r4 d. d5 v
STA $8001
4 H; V- Z+ n8 H JSR $8000
. \, e. n8 @3 b- g: e4 P# B' { RTS
) X( n& Z# G7 O9 p8 e2 I7 X( l: ^ ! d; z; c& K) m" j1 K" I3 S0 S1 v: L
.ORG $8000 ;数据复制. F2 }+ t9 \/ o3 w3 ^+ B9 g+ V
LDA #$80, O E+ j) i$ f2 i y7 n. Q
STA $A001 ;启用SRAM( G ]/ C; j y) \9 x: l. X
PHA" R7 g5 ~. b" l" e
TXA5 G! z' S+ c! y0 z2 {! x" x1 K7 {
PHA/ Q0 [* S: M, w6 l: q
LDX #$00
$ L# T$ {$ e9 j# p9 XDATACOPY: ;数据复制* D/ N/ z, ?8 n5 M( z# A+ O
LDA $8100,X
2 |' i2 N1 y8 N STA $7200,X7 ~/ T0 ~- Y7 w; T" F
INX. K. V$ g9 \0 `, s" n! D
CPX #$00
/ I) W( X q! _& ~5 h% }2 { BNE DATACOPY. @* N7 g+ n+ C
PLA9 r7 A. _0 q- i2 h
TAX4 F& W, j' E: s; G! ^/ z
PLA8 T% U0 {7 w2 T$ C) ]' V( ]; w# c
RTS
9 y8 }' c7 z9 z; q# P- L2 A 6 T% F% D( H4 @$ e
.ORG $CD9B ;跳转到转换的切页程序+ P$ o& h8 O; b, T
STA $70
4 g# l y2 S" g. H$ I7 n3 | JSR $7200) e, v$ ]8 } g
RTS( ]7 c# h& q1 l7 ?
+ O9 N4 c" E+ y2 Q
.ORG $7300
L8 a5 b: h+ H2 D7 z- ]! _/ FM1_TO_M4: ;切页程序3 p9 d7 |' ]. ?/ \( O
CPX #$00# @# j' s! d/ M4 i' J _1 ^ o+ A
BEQ REG_SET) w. `1 i# p, ^5 u/ M) c1 w
CPX #$01
O+ R; K! h2 B4 d9 u# n BEQ PPU_BANK_0000
7 c) u; ^1 R' k! i# w CPX #$02
( n1 q5 u' P: ]( ]9 W" b BEQ PPU_BANK_1000
$ m6 K R( |7 g6 X! x CPX #$03+ L8 k- s" L* f! z1 m1 U, J
BEQ PRG_BANK
: R& M; Z9 z0 o eREG_SET:$ v: p5 g& I4 X" I
STA $A000
- t% R* D5 L8 K7 Z RTS
3 V6 ]2 u; A. k/ Q .ORG $7320( {& v, r. b1 k
PRG_BANK: ;PRG切页% j z& v; C+ _' h/ g# B0 w! c
PHA
% n5 R6 n; R3 C# J LDA #$064 @% J" x: y( y6 h8 E
STA $8000' h* [: q, ~( Z$ h: v
PLA; ^) v& ?/ B. J6 C
ASL5 Y" P7 J2 t# G$ b7 O5 O
STA $8001; s, l2 F5 L- s
ORA #$01
) V4 m$ x" N' ~ c, P2 B+ m0 w5 t PHA% ?' @( t2 W/ L5 x& k9 z* f
LDA #$07
" b- D9 ^9 X/ i8 Q STA $80004 n% W' ^3 H p9 v @/ L+ t
PLA
/ ?6 c$ o: O6 J( x' |" j STA $8001
+ N1 K& ~5 y. f* ]* E) Y RTS: \( ]1 M3 C, }8 \
.ORG $7340
, Y* n& [7 ?/ t; o. y" r: ePPU_BANK_0000: ;精灵切页! q/ f# O# e5 K5 d5 S& I+ B
PHA
- B9 w" V; \+ \3 v) m ASL
; l8 g* s4 v2 ~4 e ASL7 y+ b- z$ O* j. q# Y# n1 b) P. [
PHA* k; q; B$ s6 _7 G
LDA #$000 D! Y0 | A2 ~8 P' w* z" Q" Y
STA $8000+ A5 N/ J% y! t t0 g+ t8 ]
PLA% p; d& K* C1 Z; y, G- X' h) I* v
STA $8001! X6 @$ \+ P, Y5 P" ~- g: |
ADC #$02; ^4 L! Y! a2 d1 N# @& i
PHA9 z/ W4 q0 i5 Q# _2 S' ~
LDA #$01! J8 ~/ \1 M2 b
STA $8000
7 N7 D1 x' Y7 Q0 H/ R& c PLA3 x5 h8 l9 ]2 V( F
STA $8001% K/ f8 [& n4 y5 H8 g
PLA( m j# q2 @" i$ P; J+ K
RTS& p; J: [$ @2 S
5 C' A; x0 L. ]" q7 J' i# U- S .ORG $7360
# A2 ?; R* h! v* fPPU_BANK_1000: ;背景切页
2 c" D$ u$ I$ h- j& Y6 G PHA
1 b' m% |2 \$ j' ^& s. P: ] ASL
' t: Z! z) d% {8 C ASL, r1 ]" S3 @" h3 H! L; r
PHA8 a3 c7 y3 |# T+ s# X r- \' U
LDA #$02! ?1 H; c! T1 B
STA $8000
, M5 M$ J' t% T# D PLA! X4 |& `3 I% D
STA $80016 B. }0 q5 J, V! n; a
ADC #$01
+ C# ?: W- D: l/ F5 Y PHA
! ?6 K6 I6 C8 \) z, v( \, M LDA #$03/ m2 s* R( C. J
STA $8000
% C% w. F! r9 l' E1 W PLA
6 a( F* c8 X5 {. {# g STA $8001
$ _3 _& r9 y' E( E$ \& j* v8 U ADC #$01
6 W) ]' x' W& e/ I3 @ PHA. G! d$ Y0 Y5 ?3 R3 ~( T
LDA #$04
4 x* N3 q! B( K9 \1 t STA $80003 q" O; d$ f8 b" B' G1 u% d( r# h
PLA4 z: x" g+ Y5 T. e9 E
STA $8001
6 k x( e2 N! a ADC #$015 ?& h. ?, v& j4 N: ], Z
PHA: `* n3 m) f: z8 T# w$ O- g
LDA #$05
) V0 X7 A' B p) O STA $8000
! n5 m" k5 B2 j$ S5 k PLA
; U! P( x5 x7 k! A7 q' {" v STA $8001
; j6 o, q# }$ Y3 P PLA! G& M4 g B! T1 X: c8 ?; V X
RTS
4 M: x# E4 L9 [4 E2 M: {6 ?( } m
0 }, ~; b {5 S3 ]3 f; @( o" U1 ] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|