|
|
;[FC][最终任务mapper1切页程序]
/ s; m% Q3 u5 j6 }! I0 B .ORG $CD9B. H8 V7 n) Z; t+ @
BANK_START:6 j- j2 L6 |. \) ~/ A
STA $702 A) R: l+ _5 E1 {" p7 \1 `" u& h% r
TXA
+ ~$ y! H2 e( F% ?- R; R J. [$ u ASL
1 Y6 z6 M& e( c6 Z( H" T TAX" c; J9 f% ?( w5 w0 ^3 @& H
PORT_SET:
@0 d2 P6 V1 A: r: }* i2 X2 y; B LDA BANK_DATA,X1 n, B! Q+ E; ^+ w6 o6 P
STA $6E C% s: C# [$ x5 z) N
LDA $CDB8,X
; n+ k3 ]' w, G7 x STA $6F& ~& O2 E; i3 V9 x C! Z/ o; Q$ z
LDY #$00
3 A- J7 t" |% p* W. Q LDX #$05
7 z% \! ] A" i# V LDA $70: Y. Q! m5 _% Y
PORT_WRITE: o2 N; ~& b* J8 t+ s8 N1 S
STA ($6E),Y- g8 b; N ]3 L, q3 B
LSR
" X3 k( S6 Q1 X' P% S! v DEX
6 a/ k8 B' X; O& W5 Y) a BNE PORT_WRITE1 j7 a1 y' T$ S- I/ s
RTS
# ^% }. W# J4 m
8 ~$ `' I, h, g: t# X 8 d! q( S8 s* w/ E
BANK_DATA:
8 M4 e/ [4 |& a* ^9 p) Z .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF8 d; f% d) L8 P1 f f
( x1 E4 A: d: q1 \
' t% R9 Q( U2 s/ a% [;[FC][最终任务mapper1转mapper4切页程序]* h: R; ]% N( l# k' \4 O I
.ORG $BFD2 ;初始化跳转( J& l; g0 ~. R6 w$ Y$ A
JSR $FFC0/ e1 T4 o) r' b+ R& {$ F* I
1 _! @5 [. X6 \ b8 N% {
3 }/ N; N% P4 m) Z& N1 Q2 v0 G .ORG $FFC0 ;切页* ? g9 v5 |! U2 ~ \- c8 D
LDA #$06
% _ c0 a* v9 `, c1 F STA $8000
$ u2 P8 q# a# O/ x. e0 m& y LDA #$0E
5 Z5 x) d3 i1 B- F0 J9 @ STA $80015 j9 P8 d' t3 ^$ J0 r9 s
JSR $8000 _) @! A. T" X7 f
RTS
) Y% x3 `5 f9 @ 2 S1 J7 q6 m+ I2 C( S& z1 ` A
.ORG $8000 ;数据复制
. T; |9 k6 `) m1 L: l1 K8 E0 U LDA #$80
5 a: E1 ]6 }8 L STA $A001 ;启用SRAM
. M; {6 H' E4 _. d4 X PHA, M; R/ ]0 T& j
TXA
0 Q+ f) D0 u; Z! E PHA
( g# N0 r' W) c. s- s! P LDX #$00( N9 L* @- ^$ ]" P' E! V
DATACOPY: ;数据复制
' [' B8 s: V7 v; l LDA $8100,X
" {: r0 ^+ p G# P# B \ STA $7200,X
% G) M$ K# L* F" k( N- t; O- v( H INX u8 N+ ?' A. m% j, y
CPX #$00* k& e. _5 g9 T7 ?" u( ^3 w4 a
BNE DATACOPY* ~( V" I& U! d7 C* |
PLA
) u: c7 i9 G7 X9 I# `4 { TAX
" A- z# U; j7 n7 B PLA4 \# |% f( U3 }* c8 r
RTS
2 a' T4 ~9 z; J: L
1 [$ u' C4 b3 k, D2 e2 R .ORG $CD9B ;跳转到转换的切页程序
0 B9 Y% N7 D+ R4 |1 \7 ~0 _' @ STA $702 L% F% V' w8 F4 L5 Z6 y
JSR $72002 Y* F. T$ b2 V$ B' I
RTS
( c7 r' C A. |8 |" R5 f k- A( l0 z
9 S/ |% ^4 k; { .ORG $7300. s. Y( }* \, k3 e
M1_TO_M4: ;切页程序
/ D$ u7 g& h' T* Y1 N CPX #$00
5 K% a/ {+ ]& P: X% N BEQ REG_SET) b- L6 I3 Y; o- m! j& v
CPX #$01
d; t* n0 |+ ]8 |3 J3 X3 g BEQ PPU_BANK_0000
3 g% |8 d& I ~2 P* p$ [& c% A w) z CPX #$027 U4 [+ V2 A! p' q
BEQ PPU_BANK_1000
5 _# X7 o, ^9 \9 X" y- L CPX #$03
6 S$ F1 Y: X5 @* ]3 L* V- R BEQ PRG_BANK: ^( ^8 P; ~: Z% @% O! s( E
REG_SET:) V4 A0 h, e% R) j* E
STA $A000
7 G f, a) P+ e8 s. B RTS
8 k. Q: D7 p, [8 ]. v, L: V, L .ORG $7320
) r5 q$ v6 D+ y, z: \% s% y" rPRG_BANK: ;PRG切页5 \9 c, V, W1 u D6 r8 k
PHA
{- I. l; F' V# o! P6 U LDA #$06( j( c% C4 n# M: q6 D3 `! O1 z
STA $80002 v7 U) e. p) H& B/ Q) Q
PLA7 Z) B( j N. \7 A) G7 Z
ASL2 o! \( o |: s* A' U
STA $8001
8 j8 {8 ?9 G8 O& f2 k ORA #$01
- F4 d ]+ Z* k2 m) ? PHA
( n0 S, {" k! C0 f LDA #$07* k4 T6 c& Z0 e& [7 [4 R0 L" q
STA $8000! G# D1 n6 O. j6 m: O3 h7 a( C V
PLA) H9 ]2 I1 p! b/ R
STA $8001
6 c- z# u4 { q; i* p' R& R RTS
; i7 }3 K9 c) k1 J' ] .ORG $7340
0 D* {" A% M5 B& HPPU_BANK_0000: ;精灵切页9 G9 x! X" b! U' j! _9 K( @3 w& z
PHA0 ~! v/ X5 y+ P( G" n K9 M
ASL
. n& j9 I* D; R3 R ASL, {! J3 U5 a, I' f8 S) _
PHA0 }( {8 y7 P+ \6 ]+ j. E' O( _
LDA #$00
7 ?) S& h( Y' E) Q STA $8000& _* l# x3 S- p
PLA
2 n q7 F. z4 p) r4 p$ Q8 o2 ? STA $8001
2 K% t6 \# l" q6 d! k ADC #$02
( P1 Q" G. o# J; x1 g; v PHA! t' y$ u8 e+ e z( ]7 R. @5 y
LDA #$01# Z4 k9 q+ `1 ]( T3 ^
STA $8000
: [0 B3 ^" U. |5 R PLA
1 q) d/ [$ R0 f3 [$ F/ ?4 B; v STA $8001
4 D( p5 Q: {8 y" W/ B2 @: u PLA
* }$ k4 @; _3 D2 O: A RTS) ?4 l' t8 c8 t. m9 ` Y6 _
3 d, i" ^6 ^& _& m; { .ORG $7360
+ Z: l S t9 o/ v/ z" c% H* U y, l( mPPU_BANK_1000: ;背景切页
5 M: r- Z% P8 l% s/ Q w PHA" j9 E/ y+ R' Y- U
ASL, z, o* i* n- B& V8 j
ASL
$ O+ X/ G. c& r4 O7 r7 }7 ` PHA
. p6 n: G4 W+ O LDA #$02
- d$ n* K0 b- D STA $8000
/ s7 j$ [! L! q. ]* E. ? PLA
; Y( @3 Y. }" q& Z; L9 { STA $8001# [+ w2 Q/ g) b, w
ADC #$01
, A+ n2 A* |" X PHA# C T5 c3 y9 A- X
LDA #$03. }+ x% D$ l0 ~( H8 l* W
STA $8000
9 [. v) p/ ^5 ?- [ PLA
2 [+ u# ^3 d; i. j' v STA $8001& @% X: L0 \" ]7 m( P
ADC #$01( B' X) ?/ s) Q, @
PHA6 ^* y$ D0 ^ O L# M
LDA #$04
. ~& V$ C5 U$ w1 l2 n$ w% ~ STA $8000: T9 I' D# I9 l. s
PLA
) a: y- t i* g' |0 W% x STA $8001& x8 d g; Y! N. k* a1 d- I' d
ADC #$011 g4 \/ L/ `4 O4 |0 @ d
PHA
: U) L5 \# ^' k$ U. ]+ K9 Q# H LDA #$05
9 r9 C8 X$ ~3 I. G% P4 i# n STA $8000
; i+ b0 ]8 M& N: k0 a6 q) G PLA' G7 v/ v' P) Q! P; m
STA $80015 N5 j7 |" G* i7 u9 f
PLA
+ n$ R8 Y/ {) k RTS
+ z5 C0 S3 D9 V" \1 c0 ~
o9 }; }8 A' E. K |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|