|
|
;[FC][最终任务mapper1切页程序]
3 {' x& @4 { K, }5 w2 o* A8 _3 b .ORG $CD9B
# b9 T4 v. T3 Z p4 B6 GBANK_START:
* ` h) }" V# G1 p$ r5 D STA $70) e+ {5 h" ^' e9 b) `7 _
TXA1 Y; ~, e$ ^3 I
ASL
( P1 A) E4 @4 l% ^' h TAX
( u" |7 H; d9 aPORT_SET:3 _( b; X% q7 P* V4 j. o/ ~. V
LDA BANK_DATA,X
9 y8 W9 e! O) ]: s* z' `) D& _- Y STA $6E+ C- x: B. l1 Q7 L7 w' i+ a
LDA $CDB8,X7 J: G- _2 [$ W0 p; C& d& d
STA $6F9 a j. f& D9 o
LDY #$00( M) G; p3 ]# V. b B; @' b$ o$ }3 z
LDX #$05
! l5 Z* \) C# F, s LDA $70
- c, {2 p) |: e1 Y) ^PORT_WRITE:
8 ~# u4 _, _7 }7 j; ~. p STA ($6E),Y
# x# N- O7 c1 a LSR
' K3 F! c( a, S6 M3 [ DEX8 v& E( C6 ^2 @9 o
BNE PORT_WRITE2 z: F5 U, |: r% p( H/ Y! T1 ], h
RTS ?9 d. e# b5 m3 ~( {6 S2 K" G" [
) D1 g# b4 r( N
6 ~+ \- u/ h3 D M2 r1 t! j3 UBANK_DATA:
, ^" V+ @ o& r- \) z7 U5 z/ U/ G+ H. y .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
0 K% b1 w9 [& E3 Z 4 H$ I% [! h F0 b) C3 h) S) r4 }
1 E$ v3 R Q* V, {$ O
;[FC][最终任务mapper1转mapper4切页程序]
; T! N' ^2 n0 ?, |+ V/ a. n .ORG $BFD2 ;初始化跳转
1 m6 e, B6 @. j; J/ G JSR $FFC0; y" M6 h0 H+ \" D+ \
$ F7 G7 v2 P0 G7 W; [1 O+ V2 g6 l6 {- Z" k
.ORG $FFC0 ;切页* G5 t2 G* H* [1 ~5 m
LDA #$06
8 e2 X0 C& u( G1 S, R7 n STA $80002 U' ~- X+ [! L! @
LDA #$0E: a' o; s" E4 r* d" l
STA $8001
0 I, r3 e% l- @+ f* T JSR $8000+ f2 R# c& v& P4 |! D$ i: d
RTS
7 G# p; q. R ]: o' N * L9 C. _* R0 _ \# E: ^
.ORG $8000 ;数据复制
: b/ ?/ ^+ G1 i# i9 U LDA #$80
4 A' q+ L% O/ G6 m% {9 u1 T STA $A001 ;启用SRAM) |' p* m ^! B( |% U% |2 q
PHA% B3 T) C5 G9 b
TXA
0 i, z$ R, ~$ M4 T5 t PHA
/ q# Q; `0 t) w- E7 D8 Z LDX #$00
( p0 g4 W1 ]7 w, wDATACOPY: ;数据复制. k7 ]) j: O+ F, K$ F
LDA $8100,X9 x* s; X; B" q" o1 Z0 Q
STA $7200,X8 L+ j9 k/ j. C6 y# v9 z7 M, S
INX$ U2 l: l4 O- b' N, T, k
CPX #$00
/ ~& A* l0 @* H' s, } v BNE DATACOPY. V* S) g9 \( n3 \/ N
PLA
; G! C5 r; B+ d TAX, X) F% h* m' V" i+ U& L
PLA, O0 w& L/ D& T, ^
RTS
* T! u0 W$ _( b/ Q 5 N: m5 p0 ^3 ?& a8 t9 I9 k
.ORG $CD9B ;跳转到转换的切页程序9 C, L, n7 M9 z7 f' X5 I/ c
STA $70
; ~2 R) @* f6 A& L0 C JSR $7200
5 j- ?; O; `4 Y; {* c RTS9 `( V T; | j2 _% C7 U
, k- C- _- L; Z0 Y& G
.ORG $73008 _% U5 _4 [) I6 ^" M$ n
M1_TO_M4: ;切页程序
1 G% Y0 o! k [% o6 {6 F: C! T* S CPX #$00
: M$ X9 ^2 Z: z% S2 ?6 g6 M* O7 C) Y BEQ REG_SET
: a4 O9 q( y) z! m3 X, A' N CPX #$010 N& L( s) L E# }; J; `
BEQ PPU_BANK_0000
, U% u3 P$ U; n% I: F7 P; T CPX #$027 ]+ `) g( C* t
BEQ PPU_BANK_1000( ~0 ]$ H' w: {. Q! q* m" Q
CPX #$03
5 l5 _5 n# a; q BEQ PRG_BANK- ]# v5 L- N* b/ J( |
REG_SET:* b% f" @0 `- _; g
STA $A000# i) Q( a6 Q( Y* H2 d
RTS
$ ~9 G& N( @: c, M" Y5 q" X8 g+ U .ORG $7320: h2 S$ |3 r, s7 ?4 P0 A6 G! B
PRG_BANK: ;PRG切页% d# j, [2 v7 |0 a/ C
PHA
& F& \; P1 Y+ K/ y. u$ y LDA #$060 h1 ]. |: B1 K8 |% a7 M& t
STA $8000
: D5 i3 w' r# w+ ~+ _6 r. W9 ~ PLA
3 Y2 n' C/ n5 L ASL
' ` T1 Q% e5 _! t) l6 W* | STA $8001' {, c. ]9 I) s+ x% d# E, x
ORA #$012 d* _4 Y. o7 Y0 C9 b9 Q
PHA
- h+ Q( ?( i. D/ F8 ]% a LDA #$07. K$ M4 ~( \3 z9 F* _& ~% ?
STA $8000$ G8 i: a5 c/ g5 B
PLA# Y L+ Z( [2 l, P. K
STA $8001, V4 }" O! ]7 H/ |/ T/ A
RTS0 M. S ^& K) @# W! J
.ORG $73400 S/ E4 I0 z" c
PPU_BANK_0000: ;精灵切页
n0 w( e) l- b" w PHA8 Q% ^/ Q: @) r
ASL4 P, C( y& m; \ x' M# @
ASL1 s' H4 }+ @- \# \9 {( N) k1 e4 s
PHA6 c3 y7 A6 @8 l
LDA #$00; r7 B3 n' }& S9 O2 ?) z T
STA $8000
& }) i6 N" N, f. ]2 b x PLA+ E3 y8 f2 J8 D8 w% E6 ^
STA $8001
. ^# K( H2 U' r ADC #$02, @( V8 R X- R7 J: l
PHA* ~% n/ N) K7 L7 m* ?% Q
LDA #$01) V, ~) ] w5 e
STA $8000
* o) `* r& o0 [9 r PLA
2 E" q/ d6 J0 B; [ STA $80017 I. j G/ \* p4 z% C+ `9 T! J: D5 L
PLA
& p. `0 }. L. v6 p. Q: X; I RTS. @7 W+ P$ Q. G! T3 S# T! z0 M7 g
' @3 A( O7 m. f& X& P' C .ORG $7360. i& W* G# A# z2 }7 b
PPU_BANK_1000: ;背景切页
4 U: b8 b4 j( w! i+ k PHA
u6 Z, G/ }# P1 U' X9 g ASL
" k9 ~5 r+ N# G4 i ASL
1 N; |9 H4 @: I8 v# \8 G PHA
/ t) q% i" f" ]5 a) g& c LDA #$02
( D% r) I) m" _ STA $8000/ m9 A8 u% H6 n# H. Z" _
PLA/ O2 w8 {$ b0 i7 T: m7 [
STA $8001& s. @5 S" ^( e, ^7 f9 p7 N2 S
ADC #$01
. M* u* Z* Y4 p" w PHA
* N2 A) l& v c; b7 X0 O' r& Q LDA #$03: w3 G9 T$ V- \/ p' T. A# g
STA $8000! y8 ~; g% c( s# q
PLA
6 Z2 M8 N6 A3 Y4 r/ ? STA $8001
% z: W& m1 P+ ` ADC #$010 I- \8 ~3 `# l$ ?9 j9 Y
PHA
% e* G3 U5 h, a LDA #$04
5 S" B( A+ k8 @ STA $8000
1 F! k( c2 `, N. q4 Z PLA+ h+ `4 x9 t, U
STA $8001# {1 f, K! z2 j) B2 C- Z7 }' A
ADC #$01; X3 O; T9 U' R4 H1 n
PHA! h/ F/ [ Z) b
LDA #$058 D; U. i F7 t3 b5 Z
STA $80001 v1 J- j- x5 G1 Q- L
PLA
. T9 [6 M* X% r, ~ STA $8001* Q+ F% t6 F- ]
PLA! `' ?+ p0 P1 J; ]7 O- x
RTS
$ N9 i- U8 z* M. y; P2 S- ~8 M
. A S6 P6 v. [. A- M8 D9 j& x# u0 X6 n y |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|