|
|
;[FC][最终任务mapper1切页程序]# Q% w7 O& I2 z k2 _8 F, Y0 S
.ORG $CD9B
1 n6 K2 B! O& W+ m6 `1 |BANK_START:
7 ]5 Q8 W' A& Y STA $70
, N) X' M$ L8 v9 I TXA# X0 g+ F( B& S L# d
ASL2 ]8 U0 w1 v) c0 @
TAX- C+ y! L+ i6 x9 y( w" l& S
PORT_SET:
$ k5 Q( {" f4 T% l1 x% E LDA BANK_DATA,X4 Z' d" L" L4 Y0 S
STA $6E
2 l7 G+ j: U: Z' W LDA $CDB8,X+ N6 V$ N$ x2 [0 X
STA $6F
+ o4 m: k4 {) a/ [$ }' ?5 } LDY #$00
! C* g$ l1 O9 L4 M1 F- T: j LDX #$05
6 V4 F( c) |) g* W5 Z LDA $70+ t5 T; B0 c" f H: i7 |
PORT_WRITE:
* W# m1 H; z6 ^. ~6 f8 j/ k( @1 v5 O8 x STA ($6E),Y" e! S/ U' z8 w& ^( T7 M
LSR# K. O6 C9 m4 P( f2 t1 Z
DEX% A" j1 y( p3 }6 U" }
BNE PORT_WRITE
' E& G/ |6 B2 g5 _8 N& x2 Y# _0 y RTS* S: E0 B; U' S1 ?7 E; B
* A' k y8 m, ^ j* }& H
! I: k/ G6 ]! W. v, a. L3 CBANK_DATA:' N4 o* I1 u* ^8 k+ z& o
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF" [. d! p. h9 T7 r) n5 ]
9 K! y6 A5 }% }, Q# G/ i$ [ ! i) a, K9 p6 \) ~- {) A) h
;[FC][最终任务mapper1转mapper4切页程序]. x. Y+ I, r( V
.ORG $BFD2 ;初始化跳转; _6 ^+ _6 Z) q5 z* x6 |& o2 ^
JSR $FFC07 F% R" D( b% ^0 K s( F
2 ` K) B/ h/ C C8 r" K/ Z
' R) K6 B- u F+ v
.ORG $FFC0 ;切页1 g1 P2 W3 h+ v/ r1 P- T: V* O7 y
LDA #$06( g k' U3 l+ z: a
STA $80003 S8 h) n" y; a0 e T. Q7 G6 Y2 F
LDA #$0E& R* V( I! e8 |5 \! e4 G
STA $8001
/ H2 S" `0 J- }8 b+ e, X JSR $8000
+ b+ [! G7 E& d$ q! j& q- x: | RTS
7 U" s7 z. ~1 K5 z9 H5 v
" v" K& x4 }$ d5 I6 K! i- o .ORG $8000 ;数据复制% A$ p& O3 w5 U4 c6 Z; a \* D
LDA #$80. |+ m$ l& V5 g; p; P# X7 m& |
STA $A001 ;启用SRAM
* Z& v0 R0 V. c PHA# K# c# n) N2 ~$ H
TXA% Q3 t4 P) l4 p: [1 V
PHA
8 r4 L$ M# L$ U+ V3 i. U# q; y LDX #$00
0 H% u# m2 i+ Y6 ~3 ^" F( v! TDATACOPY: ;数据复制4 F; @9 t) g/ [: L+ G C, E. e
LDA $8100,X
+ k" s* x2 f$ D1 c5 z ] STA $7200,X/ G9 F) ~, Y4 W) h- j/ Z
INX
( ^% T8 B6 l. ~5 Y+ x" ? CPX #$00
2 G$ B4 g4 B- I4 [ BNE DATACOPY
, F. d t; G0 y9 O: j PLA* N# X# _5 a/ l- ?8 H8 W2 Z1 j
TAX
4 K+ X; U' y. S2 @/ I PLA4 ~& Z7 v* A8 t9 m
RTS7 ~! o, U+ c$ ?) S2 g* J/ B5 z; c
* O B( K& K- C( \8 p B .ORG $CD9B ;跳转到转换的切页程序
6 v1 a8 t' t$ a STA $70/ ^9 @ [4 W% r1 i4 x( t
JSR $7200
9 G! G. Z$ _9 r F! e: F RTS) d0 k% O; J% e3 ~
& f. }0 N' U0 w& k P1 D0 |
.ORG $7300" j9 N% A6 J* y1 l. J; t
M1_TO_M4: ;切页程序
- z5 m" }3 {+ t, x* J+ s; m- A CPX #$00* T! b& f1 A9 q+ F. z
BEQ REG_SET
) k' S( }' N! J CPX #$017 t, s0 f4 u3 ]- [" k9 R, `
BEQ PPU_BANK_0000$ B7 ?9 u& R1 @' p3 \
CPX #$02- z$ T+ a- F7 |, r
BEQ PPU_BANK_1000/ i( A# }! [& c2 |0 c
CPX #$03- H! @0 G* x# Q& }
BEQ PRG_BANK# e* S5 @& f" H1 m. L" D. g H
REG_SET:
2 ^6 q/ V; K0 J$ f STA $A000
( W9 g! L7 ~- f4 t( @2 V& N RTS
" S3 |8 ^/ h- A* e .ORG $7320
+ E4 [5 j" p- ?PRG_BANK: ;PRG切页
P% C. p6 m3 m b0 } PHA
4 o3 Z5 k3 B j" T1 J! j& d, O LDA #$060 o. c/ B. J) s3 W. |* ~
STA $8000" s3 Q* z& U6 a
PLA
1 S8 ~ R" ~" j/ L; Z R! p ASL
. H9 {- {3 l4 q* Q9 _( e' H% J STA $80013 N' K: q- ], _/ U4 Q% T$ [# Z4 W
ORA #$017 Y C1 C0 z+ s. I
PHA
* W! T, U" n) f2 b LDA #$07
% ~( H( T5 m& N1 L( f STA $8000
# F( g- [( W' n, x# s9 T PLA
+ Q% n% o* d% Q: Q8 Y! H STA $8001. J+ R9 |* I$ H1 X. v3 X% W
RTS4 ?( w2 A' l9 O: L1 N: f- o
.ORG $73401 P( R* x7 U7 F# r5 _5 Z
PPU_BANK_0000: ;精灵切页! \5 W$ e6 Y/ ^; l% c2 I! o1 ]
PHA
5 ]6 w! {) p! W ASL
2 C O9 ~, k8 q. \' H ASL
$ E3 ^0 c+ m9 y& R5 g+ y9 _ PHA
; W2 Z- Z& g X/ D V& Y# a LDA #$001 i' K# l* P- M+ E: o( B( V L
STA $8000
9 m, ?' F; i t9 v PLA F/ _$ k5 W+ T, n; F: ^4 W- w1 A
STA $8001
; m4 }+ t7 i, M ADC #$029 \6 ?. ]& p0 r9 Z5 k8 b
PHA
' y, j; y+ @# u) M' B$ |3 B$ _( q LDA #$01% v0 J1 A, J! u. z1 V
STA $8000
. B. h- m1 b% x0 F" R PLA
0 K2 g- [9 |) }3 O5 U) M STA $8001
' [2 e" Y0 u& A* @7 w9 A' z& C PLA% _/ e$ q9 j9 A
RTS# W. x" {0 Z5 F0 Z
/ Y) Z7 v; R+ W5 F! e .ORG $7360
- z% M* f: v0 q! G4 \- y+ VPPU_BANK_1000: ;背景切页
; L( U' n* q+ `# u( ~+ _ PHA
, i' Q) _$ w* L3 ^ x: { ASL
% L2 t2 {. w, }$ S. h: l! y ASL
0 f8 s" Z: {6 P" o2 _; V6 J* N PHA
6 J+ T1 x2 B, A8 T LDA #$02
0 O: e# y: L! m# j9 ~' a STA $8000
. n- C( F/ J# t( V! w; H6 v PLA
$ }5 [7 T* y6 K% A6 V" }6 N) d STA $8001. @! U/ m; X r# P+ `
ADC #$014 q7 ~" {6 c9 G" x: D+ c
PHA) u+ I. J+ ~# W7 S8 ]
LDA #$03
8 Q/ c; n5 Y: C1 L' ~( V5 `9 O: N STA $80000 E+ i3 l( b5 h5 l9 Q2 d8 Y
PLA
$ E" L7 Y+ s, {7 O STA $8001
$ j5 H7 n# \; J* ?, M: D ADC #$01' K* a. G1 m7 S/ V9 I# {7 E
PHA9 S" ^% Y2 z0 f2 U( z. b0 ~
LDA #$04
4 T* c, |/ {" h, `/ F* L STA $8000' x) Z/ Z. u! ~* w6 H% K: ?9 \
PLA; N, q* \/ l5 _3 W5 X4 J/ W
STA $8001; H9 s, L7 B; r! N8 M$ R
ADC #$01
( t. u+ g) w: D/ X PHA) H o8 @+ X( t0 f' J4 J
LDA #$05& K% @* [! B9 \1 c/ C4 w+ s+ X) _! q$ H U
STA $8000" {$ E4 V0 s+ K! K, B
PLA F* l8 q- x7 o: y* y0 H4 I7 }; L
STA $8001
: ?8 q" A0 D( f f PLA7 ]3 U$ d! J+ X* K
RTS# l/ Y+ T" `& o5 h. ~: }* s$ C9 N
/ ^ D0 O) |* g) K0 S: } z+ ~' A |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|