|
|
;[FC][最终任务mapper1切页程序]
5 @9 ^8 ?) O. m _ G9 t$ K0 n. S .ORG $CD9B
) r" P% z9 ~ \1 |1 @ ?BANK_START:
, I) z' F+ b+ E% Q& A4 p STA $70
+ K1 a' `- a; [$ @! X' G1 i TXA
& t) b0 c& c7 a/ V, x1 a; b ASL# d9 Q9 c. S, b
TAX' k b6 E! v# G# @
PORT_SET:
' i1 O* i7 J* T | LDA BANK_DATA,X
( k/ M3 M/ H$ y2 `6 D- g7 W STA $6E
* ^/ m6 v. X5 t LDA $CDB8,X0 i2 L0 }' B; }4 N+ _! ~, b7 p, Q$ y' ~
STA $6F9 |7 s3 M( C; U4 h- Z0 N" Y. q
LDY #$00
: r# N: Z1 Z/ [: t- K1 V! G5 L) J LDX #$05& o! c" b& N4 i# L% q
LDA $70. [( |8 N4 L: ?7 Z* ]% Y& q1 z
PORT_WRITE:
( |& I1 T* H6 R* g7 v3 a STA ($6E),Y1 ~4 n3 T* [# o1 H
LSR$ g# \! Z0 Y* Z4 \
DEX" w! g/ X3 \) T3 u2 H/ [- t
BNE PORT_WRITE
! ]$ c, Y4 e v6 }% F0 G RTS- s3 R: Q2 Z# A1 o) W
+ i0 M* L2 i5 |% u. ^
4 o3 Q: n$ v Z' A7 n2 s3 s+ m1 H' }& }8 _
BANK_DATA:: F. r! t' F% v' `0 Q" T
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
c& E( L& L( ~$ H/ }# ~& s3 p A
( A7 f( B" T. s- i
( H9 i1 ?% ~' W+ j;[FC][最终任务mapper1转mapper4切页程序]
4 G4 M" f8 n' F V1 |6 c: S .ORG $BFD2 ;初始化跳转& A: v Z' u+ y& v( o- k+ ~- i
JSR $FFC0
, W- Y2 x. q4 T0 F" e3 W6 K7 }9 q8 H3 z. u
2 m3 N0 {8 d+ C$ D3 i2 k .ORG $FFC0 ;切页) z& _& d: o2 i# l _: `
LDA #$06
$ H) x/ l0 g1 U. ~( |/ c X STA $8000 O* q+ q7 O( p& `3 u+ o& j4 m
LDA #$0E
; t; O$ Z1 f4 d3 | STA $8001
* J$ ^. m9 }) p3 v/ {, U$ i; H JSR $8000
1 O; U$ n6 Y3 [* w3 E, F0 S RTS 8 |- h3 |$ k. r1 B9 e: Z
, t% h! ?( ~' d# N
.ORG $8000 ;数据复制
1 h; K8 V9 O" y& W( b& ? LDA #$805 {3 @1 J8 H v, Q2 \/ K
STA $A001 ;启用SRAM% r5 w! m7 J4 v: k* W
PHA7 W5 X2 ]6 q( x4 a6 I
TXA \+ |' [# [) a |
PHA4 w; z0 F/ J# B9 O; i5 W* Q, I' u
LDX #$007 x" ~' X; R& [% H: E& q- ^
DATACOPY: ;数据复制
i. R* L& z6 b; n+ F5 [ LDA $8100,X- o+ K4 s. [: x
STA $7200,X
3 w9 p( j& F6 S1 f INX' R; X3 H' x' r; @) Y; D3 g! W
CPX #$00
3 y( x/ n* P: V BNE DATACOPY
, Y+ t/ k2 }# E$ V( A' _, A PLA. E h: \' W( H) }
TAX
8 n- U* K$ m9 [3 R0 R |+ P PLA
; A- D g- p3 @- \, L RTS' L: B q6 `6 x( R8 D0 N
}0 b5 B# v6 Q9 |& U; d .ORG $CD9B ;跳转到转换的切页程序
( g& b, R% a* I5 `- M1 r6 P STA $70
7 L+ ^: J, O m0 e9 h JSR $72001 H2 A+ Y1 }/ q& b8 A1 {+ T+ g
RTS+ F# o5 Y' G: R
# m# Y+ g T* U( S+ e8 i6 U* |
.ORG $7300* Q6 g F V; f$ h8 P0 R+ D9 z. C
M1_TO_M4: ;切页程序
! \9 f Y7 \& f' J3 R CPX #$00' Q% J8 M. I0 ^6 u# C
BEQ REG_SET
8 u9 i9 M, T2 m a6 L; z! ~ CPX #$01
) N) s& A0 d; J3 Q BEQ PPU_BANK_0000
) C* O( z* T% V5 x3 A CPX #$02: J ?/ z5 Q2 s
BEQ PPU_BANK_1000# D+ Z" L7 i/ Q+ c3 a' w
CPX #$03
5 r, h8 L+ P6 g5 J% w$ O BEQ PRG_BANK
. {+ W& T9 {$ z1 c! YREG_SET:" z" y) r! q$ f) F, c: z) r2 M
STA $A000# w7 A: p0 q7 Q) n! o* t
RTS
+ k5 u: ? f5 r% x& y- ?0 m' e) ?2 I .ORG $7320
. C% o& j: y* d% TPRG_BANK: ;PRG切页7 S$ ~; F8 T+ S! Z. E; l" b
PHA
. C8 ]; c$ p# b6 M. C: \" t LDA #$068 D; r A3 L4 ^: Y6 C h) r h0 k
STA $8000
6 _/ y5 q/ w5 ?1 K' K! e PLA% `+ f0 i A+ @3 e, l; w# d
ASL d7 A" v+ x1 G4 H
STA $8001
8 |5 G' W; C! h! m# u- K. y/ m ORA #$01# @, x! d7 Y! s3 c {
PHA. @, U3 H6 m0 r) S
LDA #$07. Q( F1 e, e- N- O& h0 Q
STA $8000
0 T& ^0 t: J0 ~; x PLA) U" n4 w/ z4 M' U
STA $8001
1 m6 s3 `! v+ `; |; ]( w; F. m5 } RTS3 z8 V# o r. ]5 |/ D r: p
.ORG $7340
; j; x6 \6 _+ K8 t- j APPU_BANK_0000: ;精灵切页( ^* j, U( T" E$ Y
PHA. J0 ^' q, _; f2 F
ASL
* N5 f2 v' l6 s! M! X ASL
) e* u' w- H, ]& o* k. s8 }5 m F PHA# M& n/ Y) m' X3 z
LDA #$007 n N+ V# T4 p* u$ c! q
STA $8000! Z1 ^- m1 n& Q& t. A: z4 L, c$ V
PLA n. [( Q3 V# l0 \1 n- E
STA $80015 {, H0 Y- u% }$ ?8 r- a
ADC #$02
a& l" F/ n) {! B' L PHA# L6 p( H2 u& \# G" o M
LDA #$01/ Q2 S- L8 |' s9 v3 }2 e( `
STA $8000 }- B/ }& Z* i' q. W5 _/ n7 \
PLA5 H8 k9 k7 G% t. H3 _+ T
STA $8001
. e h# O; E' u* B' _ PLA
$ q" K/ y9 c' I, M) o6 A RTS' M, s1 j9 o$ X
& f2 b. [0 X1 u7 y2 O d" N; I* p
.ORG $7360. |) ~: Z* K8 e5 B
PPU_BANK_1000: ;背景切页2 z/ M5 ^( v, y! F; N! L3 [" j1 }
PHA
. n3 f4 Y* ^1 R4 U- s6 A ASL
4 G7 M3 x3 z; W9 W ASL* J) c T [' \3 L& o* [% s3 Y @+ X, L
PHA$ s7 h' T" ~2 x. N3 ?: J
LDA #$02' B- t* b, m2 F5 i* A7 |: l h
STA $8000" @" z: g3 i$ \4 z- |
PLA. Y- ?! m! U: y+ R" C0 O! T
STA $8001
s6 z2 q8 J' o" V2 Y/ L ADC #$01
# ` O, G: q! _2 A PHA* ]+ U+ ~+ r# D- E7 \4 z ?
LDA #$03* L4 o! L" I( o' P! A8 i: i+ P8 I
STA $8000
. e( z" f/ G. b+ ?: p9 v, x: } PLA
Q* Y' u f6 R% P' k! g STA $80019 ~2 X+ ]" n1 ^; x( n; G
ADC #$01
5 i/ m$ y8 ]% } PHA
1 `! O `. ~# V0 u LDA #$04
' |: h% c! o G% Y5 I STA $8000
; d7 J0 m% j$ m4 j) }+ q9 M PLA
, d4 y. Z1 W/ p" P( t STA $8001% i% c6 r, f$ Q# m
ADC #$01
5 ~$ Y$ y1 K; F4 D PHA
4 w1 j5 r& {: Y# ` LDA #$05
* N# u- D# B' T# s+ l, @ STA $8000
8 a5 Q0 _. L5 F' E) Z PLA
0 E4 p+ i1 |- E S6 Y STA $8001) N7 q. D1 L) t% Y+ X7 d1 t
PLA
+ ~+ | e* B+ r7 {" |- h7 x9 Q RTS
' Y$ H5 {' I% a+ z& {, @& Q4 Z) l) E) q, P2 b, Y
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|