|
|
;[FC][最终任务mapper1切页程序]/ S( L7 s! E, W; d3 N
.ORG $CD9B% ?4 P1 o( y" w
BANK_START:4 I* r \6 m9 f& `: U% l
STA $70: N# _" a' x O9 O2 J0 j- V4 a+ g
TXA
' P: g: o: o, [ ASL
( p5 S0 c4 T* B% k6 e h5 g TAX, x% B+ c* o% C" v m4 C V
PORT_SET:
5 Q8 B; X( M+ U( ~ LDA BANK_DATA,X
) _' E( b; x3 D STA $6E# W/ A6 y2 \+ s) [
LDA $CDB8,X' z Q" T0 X; s4 a! o
STA $6F
6 ~6 Q* Q$ n5 F) u& ] LDY #$001 z% h% P! h+ Y, o
LDX #$05
$ r5 c b. ]+ I7 X. B3 f$ i LDA $70, e1 q4 }( }9 {2 U5 o3 r
PORT_WRITE:! [& [9 {4 L* N3 F" G
STA ($6E),Y$ [! Q0 @- o+ C
LSR, @, O/ `( V, g! P* j0 \
DEX; k- T/ N2 T( d0 v7 `
BNE PORT_WRITE
* r) ~+ _$ T/ O5 i L# q' g, @ H RTS
: P E# [, P3 u2 W" \3 k$ G S2 d
" N+ }( Z8 g. D) r- o
( Z+ b: e4 N5 @# `BANK_DATA:- b0 s" Z* I$ J) V5 S3 c
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF( a/ w9 c: {& e* M g
* R. I& L) }, l! r
7 ^' ?: ~/ x% e" |- h% t;[FC][最终任务mapper1转mapper4切页程序]% ?8 k0 a; P( M$ Q- P
.ORG $BFD2 ;初始化跳转
; U# m4 y% s, p: G JSR $FFC0
4 B# v0 ^ I, x* w: j5 B% d2 c- {0 e
- t- P; y( h9 ?: Y .ORG $FFC0 ;切页6 T' `8 Z; Y- C
LDA #$06
4 q% E0 O; H7 @+ K( E0 C STA $8000
) S/ g- \/ _1 g# ?2 z# M LDA #$0E
2 q. d9 ^* ^1 q2 `: w4 X0 e' G$ | STA $8001
" _+ `) L) B$ H( t* y { JSR $8000
6 K2 g3 ?) _5 a0 r) _1 W RTS ; ~* |2 x' z* s+ K! l# p
$ o- l! O. v! h# v6 L2 |# `# S/ m .ORG $8000 ;数据复制0 X( N8 U+ F, c( g9 p$ @& q+ k
LDA #$80
+ N+ t4 [. V5 g2 a, q STA $A001 ;启用SRAM$ d+ m7 K, F$ N/ X& d- H- c! c
PHA/ N* M) {3 c. f5 z- o
TXA7 e) c! I$ r# U4 z. _1 b
PHA9 r6 F% h$ E6 U
LDX #$00, }' E& D% j% l: r$ v$ Q3 W0 \
DATACOPY: ;数据复制
0 B& A. a5 t: w" C% H9 A LDA $8100,X+ R* U5 r1 i* R# S& a7 N% W
STA $7200,X
: a8 t* t, L, x- m& p$ D INX6 L- G: d1 U- y2 i
CPX #$00
- w" K( v) e' C* F2 {, u BNE DATACOPY
' F6 P" Y% H9 I2 W c( `) ~ PLA* ]0 Q, i$ D4 d1 j. }! E" l. F
TAX
1 f0 h4 x; z) z( b9 y* c8 v1 h* C PLA
- e/ X5 X7 G0 u0 [& Y- R RTS/ N. e/ i& g% @* x; t% G( m
. f- m: v* P5 B, o2 I+ y .ORG $CD9B ;跳转到转换的切页程序
, x* U3 {& T. U# z& T. z# X STA $70) Z# }1 ]/ p( _9 M( j8 i% [
JSR $7200) ^ d* g% C" i% e
RTS' W I& s G) |) n! w& h# f$ I
. ]/ j, K3 I9 X6 q .ORG $7300 b" ^$ i H( v' r( z) s
M1_TO_M4: ;切页程序# r, ^: o0 Z* r) Z
CPX #$008 @' D: I' j$ y0 C- N4 T: [3 P0 ^
BEQ REG_SET
1 R6 {, d$ L/ i3 q9 c6 _0 m/ G7 W CPX #$019 Z( A! @$ y* A# o; u0 h8 F2 ?' c x" D
BEQ PPU_BANK_0000! [& T1 i! w0 G
CPX #$02
6 P( r4 ^& J3 L: h& p: k8 Y* F BEQ PPU_BANK_1000# U6 o0 V( e8 o: Q4 |' x3 j
CPX #$03+ t4 U7 c% {+ I- E
BEQ PRG_BANK
5 L* d& Y$ Q6 c M5 T- v/ nREG_SET:' ?! J4 L; |1 X" }
STA $A000
" f' L1 y: h3 J+ m3 m RTS
1 O/ v! k7 J$ F4 d7 A3 P .ORG $7320! ~6 g1 K4 L2 y) l+ I3 k
PRG_BANK: ;PRG切页
- a# Z H8 }2 v9 r) J! y PHA" {& N# D3 x; ^- {# F* B
LDA #$06( J# m6 i9 G4 |5 |. @. P' a
STA $8000( L$ ^) C, B% z# R! w
PLA
( T0 q* R' a8 o ASL
9 |$ w8 d# Z9 U) }0 i3 L' B STA $8001
- s0 j* `: W7 [; `: g; M ORA #$016 p l0 |7 U1 u3 t' F @
PHA) W' K8 [" @5 |
LDA #$07
) F8 C1 d) Z# Y6 P. o STA $8000, @9 p6 [2 z; c( X
PLA! Q6 p0 W: \4 ^% u$ S, H
STA $80014 n! a0 a5 ^0 O, o4 o; \5 b
RTS! f0 T+ @$ s8 J' s$ Z- M
.ORG $7340# b5 e' h7 K% p, o
PPU_BANK_0000: ;精灵切页
( A6 Q! w) y6 L, }9 C8 R9 D5 { PHA6 ]$ Q" } `1 }0 G; H; L5 ?* w$ U
ASL% E0 h' _. b; L# O% {- l3 w
ASL
' c; w+ U) `9 B* s- G7 q PHA
# q4 i2 ? S# w0 v# y. Z LDA #$003 }! ^+ }) j/ O7 ~6 v( n
STA $8000
4 H) x" H7 f+ n! n' L PLA* v+ K- L1 a1 V5 B! n3 E o+ @
STA $8001 _" B+ b1 Z- d
ADC #$02
% J/ ^1 ^2 v' J+ V+ f PHA
) @: W, X2 Q, a3 l4 [. p LDA #$01% y& W# ~" d/ O0 z4 U$ M& T8 a
STA $8000+ e! f. v$ ?" v( b. r. u B
PLA
" v1 q$ L6 d4 M+ U. S1 r STA $8001, Q/ B- r2 @9 m4 \
PLA
! C: B: J. z& [% L- E RTS6 ]" `+ V5 X/ N5 S) _+ l
k8 S4 }+ G; X9 i+ \+ ~ .ORG $7360: ~0 v; ]# E y! c R( @
PPU_BANK_1000: ;背景切页
$ \* q* C. c$ j8 m& I' D# _ PHA. _4 k: d+ k. s, K6 B* E) ?5 r
ASL
: k4 K4 M8 S) N0 {* M& W ASL% I* N; o3 x+ ^& ]; N$ j; A
PHA
/ A, c" ~& R( Q O LDA #$02: M3 _- J" @! n9 E# V1 Q) Z
STA $8000
8 ^& m& c% f2 y! \9 f9 [7 ] PLA
; H" l6 \. Z! h+ [! U, O& S2 V STA $8001
9 P& u# \+ [. Q, A# v ADC #$01- J) _! i; q( I0 q" k' {
PHA
* I4 U. s! K% C5 e3 k LDA #$035 ~* x$ r- H8 M2 U- r3 C
STA $8000/ S# K; p! @8 V/ L! F8 h8 G
PLA
1 z- x: T$ I, A% \) R6 [) O STA $80016 z$ H" }; X8 q' b3 J! y5 l( c/ M* k
ADC #$01
* \1 X+ V; i9 Q+ M' P PHA
g- z, @; r7 S$ w# c# G LDA #$04
) o( K! Y. C* r( Q' u9 @! g STA $80006 {) r& e/ L2 Y8 A" I9 ^
PLA
" d* [" d, @7 P% m7 ?- B STA $8001
3 `, _% \; g" {' ^: c ADC #$01$ Y1 O; m1 t/ P/ T/ u; u" a
PHA
4 ?8 E$ z# [/ \% H9 n LDA #$05; i3 X ~+ ~- `6 ^" J& Q9 m9 ~
STA $8000$ b z" h( d( T0 `$ Q, }' Y
PLA8 e% J3 y1 T* m6 r5 n, a$ q
STA $8001, W- Q, H4 ~; o
PLA% i7 w- C: Q8 `5 H/ F
RTS
$ a" l: m( W: s
5 ?8 d* J0 v. s( a, r. V% g |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|