|
|
;[FC][最终任务mapper1切页程序]& O* B# D3 e9 q/ n
.ORG $CD9B
; d3 z* F R* l* J% ~! J+ i$ ~BANK_START:. V2 q: v. j: y
STA $70+ y# S8 g2 Z& D
TXA& V; Z3 [ \3 {+ V0 ?: w
ASL; w/ Y6 U9 J$ e& v
TAX) A; ]& t5 O, j3 H2 L" ^ Z0 V. A
PORT_SET:
5 {- a5 s3 e6 `$ R, w LDA BANK_DATA,X1 n; h% {. k5 H e; K
STA $6E" p0 E) M7 h4 L7 e2 v# X' T0 I; i
LDA $CDB8,X
3 P4 M3 L4 B( z8 Y: J4 R) `; p' a STA $6F* {! j. F/ K2 Y: k! Z
LDY #$006 s4 Q( b2 ^# N6 Q( k& S6 F- G
LDX #$05: r' \7 S: l9 E N8 E$ q$ s
LDA $702 o% y; a4 _, v3 G1 @9 J1 \0 `
PORT_WRITE:
9 o3 y0 ^, }& k8 E$ {7 T7 N% X STA ($6E),Y
# f1 Y1 L3 U* M/ ~% d LSR
7 E5 M$ c! l5 ^# d/ ^& H DEX( j2 \+ V9 f. D/ J; {, Q/ I
BNE PORT_WRITE: I0 @( a9 y1 ^# I
RTS
' Q& a U$ K8 f* B, O9 R , | } n0 N1 k! D
" U; t; j5 V0 [( H1 ]! _" b
BANK_DATA:& K" l7 P* k0 D& S/ }
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF5 {" ?8 m& D' M7 K9 N( P2 P
& \3 `. T% E9 O
5 u; G! w: w/ [6 o: u/ w( s Z;[FC][最终任务mapper1转mapper4切页程序]
6 ?5 `$ v- l( @6 A .ORG $BFD2 ;初始化跳转" m {! D( U+ [
JSR $FFC0
2 W9 w6 u, u4 U2 f0 K2 s6 V R9 h4 E( U6 F0 v
5 q9 V2 r/ `% G2 I1 v( S, i
.ORG $FFC0 ;切页
0 N2 i& g9 k9 [% \) U LDA #$06
% L7 K; [# z7 s8 h6 E* V% n! C: \ STA $8000
0 z5 ?/ G6 b& R, l- F/ W/ Y LDA #$0E, }! Z) d0 e8 A) a/ o0 c( `
STA $8001% W i9 Y6 M/ _9 o! @! ]! D0 h
JSR $80004 D, a# n5 @% b) c4 i5 z! R- d
RTS ' Z0 C- j- B5 u( C6 l1 N& V
5 f# I }! P {$ D; J/ z% F .ORG $8000 ;数据复制
* y6 K( H' R+ { C2 `; M: e; z LDA #$80. l0 l+ ~2 ^. w6 Z2 }/ Z6 m8 S
STA $A001 ;启用SRAM! u' f3 H5 ^9 T3 l- G; H$ Q
PHA3 k7 I' T) S# V2 G; v. }
TXA; Y2 [; o. z' v1 P6 V
PHA0 f5 ~) ?' f2 U& p# y( [3 c( p
LDX #$00
4 g; f8 s) P. C4 v/ nDATACOPY: ;数据复制# y1 I B. v& U6 ]2 A
LDA $8100,X
8 `, S/ Z) Q0 z4 w/ h* p {9 _ STA $7200,X2 Z( {; a% c% X" O3 e/ _
INX
5 K% h+ Y! @1 @. W4 f" l+ I% ` CPX #$00
1 }/ T' W) F1 U1 G* ~$ ~+ R8 c: t BNE DATACOPY% L- A1 i/ }+ c1 ~2 a3 C
PLA& [6 p( X+ B+ E/ W& t
TAX
0 J3 {* e t) m PLA
8 C" b6 x1 b2 n/ x RTS
: N3 Y0 R8 \" c# K& A, H
+ F1 N' {2 D* A. [ .ORG $CD9B ;跳转到转换的切页程序
$ Z ^6 S/ _5 g5 @# c6 p STA $70
7 D! _! n! b$ u' x+ w$ E JSR $7200/ n) f- F8 u* I: k6 F
RTS6 j9 v- t- |. g
3 n0 f0 r. Z( C) L: S( t .ORG $7300
' Z: V4 p5 | i. q0 F+ [& O' D/ JM1_TO_M4: ;切页程序
7 g/ ^7 E a# N5 u$ [0 @ CPX #$00% G/ j. a0 c, I4 i2 v% ^
BEQ REG_SET
V7 `; P0 |9 \8 Q CPX #$01
& b, ]- m- S: w# E/ ]/ s! [5 I BEQ PPU_BANK_0000
& M1 N+ B2 {0 l2 [- `: C CPX #$02
- t- Y/ K2 P* E' j+ i, E" {& Z BEQ PPU_BANK_1000
8 C; |* R: y* B7 H6 D CPX #$03
+ I3 f) |9 E$ t2 e: t% G' j BEQ PRG_BANK8 W: k8 y) p2 J+ s- B2 l0 Q
REG_SET:
5 m$ t2 O- f( \. W STA $A000
4 R3 r2 \& h, p, R, K: a o% ^ RTS5 }' Q. r2 [8 w* C% a0 L$ t
.ORG $7320
. B: y: ?4 [6 l6 mPRG_BANK: ;PRG切页
9 Y" C0 e7 ]5 x2 Y. Q: v8 V+ |( E PHA
! l/ v* K x4 q/ @% Y/ M4 }- b' X6 G LDA #$06
/ D; K/ x# l3 ?3 u# e STA $8000! n! Q4 U0 I* |, d
PLA
' u' I6 P y7 T e+ A* ~ ASL
* g7 C% i* H6 y. ]" d1 z e1 H STA $8001
% w* {& j# V4 N6 {3 R ORA #$01
# ?; m8 x& ^4 q6 j' E' g X PHA N( y: u2 q5 u6 a
LDA #$07
% n1 X0 F8 G7 w% N( B- I$ } STA $80005 d0 A0 z3 X0 ~2 n8 H
PLA
. Y7 o& d Z& q( K1 e2 Q STA $8001+ @" {, k$ z M% ~/ n4 d
RTS
$ D1 f1 S( I) t" K3 z .ORG $7340 U6 e- a& Y# N% b, s2 ~9 ~, t
PPU_BANK_0000: ;精灵切页
7 k7 F2 w# j8 { j3 V PHA$ q: H: Q& o8 @
ASL
: x; `% t3 K0 d" U' R ASL
+ _) \+ s3 O+ |9 `( I' w( M PHA
. {, J1 w1 L) L LDA #$00
& Y6 b4 s6 U' T% J5 ^4 e- ^9 t STA $8000
5 M* a) i; `/ ^# q PLA
1 a5 L9 _3 y( X* m/ ] STA $80015 | Q9 }% G3 h8 U6 @ O7 j
ADC #$02
' Y' |1 y+ B: Q3 b( @' x) V! f% u PHA5 S- A9 j r1 @& U; @
LDA #$01. g' [; U3 J- _+ m' P
STA $8000
5 S; S1 J: A" f2 F* J2 S' r PLA
' C, |5 _' M: o8 ]0 H8 d STA $8001
! u. @7 v5 c/ L2 I PLA
; |6 X( r# n1 I RTS
6 E9 M1 Z- E! c$ J, _- V6 v : i/ X" O+ z3 D* R# A1 R
.ORG $7360/ y, O2 U' [3 N5 z% F: c
PPU_BANK_1000: ;背景切页# E0 ]$ B* T I5 Y/ t5 B) }
PHA
6 g* M. ]8 d' ^2 D2 o ASL
8 s, }+ ?2 a, G* h, |( R ASL
/ a$ M9 _) R/ u. D4 i3 Y PHA
9 Y- }) h9 {0 ]3 Y LDA #$02% p8 w9 o5 g4 y U$ I9 U, o% s
STA $80001 S! s( S# Z4 P6 [$ A4 n1 F
PLA
0 V2 x, n! T. ?. M, a, R& j. }3 h1 S STA $8001
" e- \: X0 Y$ T& d K4 ~ C7 A- _ ADC #$01
2 d- H; N3 O1 y. e- W2 B6 E0 S PHA
' A( z9 N2 s, u( N2 [' m LDA #$03; k' X5 @4 k' u. }, J
STA $8000! b- V9 g' _/ n6 h
PLA( q3 S; f9 u6 T. i* Z a
STA $8001
3 j+ r7 z& o1 P' u ADC #$01# s% q @- L! v
PHA/ r& L6 Y: l) _( L' U
LDA #$04
+ H* z" x+ O, `& S4 n- ]; s% D STA $8000
2 k8 O3 @3 k5 \' N PLA" L- _ ?" y4 v* v$ x
STA $8001: X- X5 n: S/ K$ _
ADC #$01
, ?/ n7 P8 {5 N8 G7 v& Z. T# | | PHA# A3 \; ]. q! B) N. I
LDA #$05
, v2 u3 V5 c' Y% d7 U. c3 L( s. z STA $8000" i1 v) q" k# r; o3 h1 r
PLA
' }8 S: {7 E3 m2 L# s STA $80019 z2 y: t5 ^: [3 P/ F& D5 x4 D% _
PLA
% ?% G* W, {; E9 s. L RTS
, w) I! h" u @8 ]7 |, P6 E2 l1 }. G6 ]
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|