|
;[FC][最终任务mapper1切页程序]9 }: s7 ]# Q; w3 {% j
.ORG $CD9B
; i8 q* f8 v @& I% \9 q: NBANK_START:
X* P9 l+ @& d7 x/ @- ? STA $707 y6 |2 _" K0 ^9 p
TXA
8 K/ {( D9 k0 A* Z ASL& M: ?) R" g/ x
TAX/ U: f. h+ \2 T7 m
PORT_SET:
% n+ ?; A. [. x* b9 ` LDA BANK_DATA,X& C4 p* C2 d- k0 k3 `1 n
STA $6E
1 L. n3 ?* q/ e, M LDA $CDB8,X1 T4 \$ _+ I2 e: R
STA $6F1 t& y- t& S H( r' f
LDY #$00
9 U; w4 @. i, j# ^. c/ e) c LDX #$05
( S4 i& z7 i, @0 q6 `& G1 H4 ? LDA $70
; V" c: o# H8 s7 T. VPORT_WRITE:
1 M5 ~0 `' k u+ t9 y% g! F STA ($6E),Y u9 f1 g' d+ D$ r. h' E
LSR
7 A5 n" M1 U0 S- W& k- z DEX) \ b% q3 y) }9 W
BNE PORT_WRITE
) c; M- f+ Z2 f! L2 e9 i RTS
) h2 a9 U2 g7 }' ~7 Y 7 f5 }& m9 t4 z3 L2 I
8 J6 ^# x9 n% W1 k) Z6 [BANK_DATA:1 i) }6 c, f) ?5 [) |; z
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
8 N4 G6 @8 M) L
7 r# K W* y: J2 T* {+ c0 j ~
7 t& W2 R( u6 @0 t# L* i;[FC][最终任务mapper1转mapper4切页程序]
& c! c* z+ ]7 Y" _ .ORG $BFD2 ;初始化跳转( Q! i7 j2 c2 N
JSR $FFC0
5 A/ L8 H5 j( T& ~, |5 B" y# M+ T$ @
. J1 D4 X* P* m% }- `0 c' }: Z5 p" s# B a! T
.ORG $FFC0 ;切页- d, @% t0 E. F: K5 O
LDA #$06
& P3 M3 _. Q& U% j& t. Y STA $8000
% R8 M4 b6 N, ~+ Y5 [ LDA #$0E( m$ @, e9 o! u' c' \( ]4 P
STA $8001/ @9 R- d' ?: R$ n9 q
JSR $8000
* J7 w( i; _* X RTS 6 k% T. K" z+ E6 ?# R2 n/ q1 f
6 X0 l- p* Z1 u/ f .ORG $8000 ;数据复制/ u+ V1 Q! I6 I" N! _- C) R; f# C
LDA #$80
5 E4 U* O! K0 ~: @ STA $A001 ;启用SRAM
( S4 M9 y. y4 z" a- U( H* P PHA1 p0 t2 N; `) V1 A# Q) v3 P: v
TXA9 t" H% {) S' e$ R
PHA
; J4 v2 I/ K! G# J' V. ?8 E LDX #$00+ [) m X5 C/ Q& a3 F
DATACOPY: ;数据复制% ]! N5 i, Q2 ^4 X: M
LDA $8100,X
" h% Z4 [1 o. G# h STA $7200,X7 u6 g. g) s# ?2 y6 z, V. B
INX3 b3 {8 j; ]) m8 \) W! B+ r
CPX #$00' x4 N T$ C0 ]4 P% T
BNE DATACOPY
0 }3 t6 R2 Q: D PLA
1 C4 `5 Y9 X! O y w TAX$ f& K6 n; b, g. |! \5 p2 n3 F' { I
PLA
& a K. l! n6 x7 Y RTS% p" G6 H$ t, Y* E& W: H0 k
( Y a) @; o3 ]
.ORG $CD9B ;跳转到转换的切页程序
7 ?" |8 J& x0 T. X. H6 D5 b STA $70
% L6 I: e& d$ I; j3 \8 ^; l/ p* W- J JSR $7200
9 I7 z, K4 j. K4 @; ]# O RTS
, H9 A. R! {) u3 U0 V6 [
+ J$ \8 t. i1 o. b) S .ORG $7300# c; I- Q5 ^; Q* O" ~# @
M1_TO_M4: ;切页程序
, q2 E& \, J4 s- ]4 j" h1 q CPX #$00
6 B" Q* Y* r5 F5 T ^' D6 R BEQ REG_SET
# s: g% {5 d# a' r2 n G& Z) {" { CPX #$01
" j1 [' E" c+ Q* \ BEQ PPU_BANK_00001 B& h* V5 U0 J" t1 ~% m) o
CPX #$02
Y6 B2 P8 B$ k7 V) O2 A9 h BEQ PPU_BANK_1000
" I" l% ~* c/ Y2 M8 F' y CPX #$03% Z: a0 N! l; z. g
BEQ PRG_BANK% e ~: Z/ ]* z5 ~4 n; T
REG_SET:4 ~6 ~2 V! p0 I. p
STA $A0007 M8 S; P, g- ?8 k% a
RTS
+ M" x) q. `# g- K' [ .ORG $7320
( `6 Z! O; l% t8 GPRG_BANK: ;PRG切页" n& _6 R4 h U% o
PHA; @- _. s8 G6 k) W( L5 O) U
LDA #$061 d& y8 J- v j8 y; A5 M3 X" A
STA $8000, Q8 L, O( d" t
PLA7 P5 y+ x# T9 M5 O- ]
ASL' |& z" s; Z+ g2 U
STA $8001) K9 Y/ M3 k( y/ r; ^
ORA #$01* O9 C: B% G. m
PHA. p, x9 ~+ a: |$ m5 y
LDA #$079 j% D& V) L& M% V8 K; A; B
STA $80005 P. o5 P( p& l* F( \, X( O4 t3 H
PLA7 t4 \9 O2 b: s- _$ q- G& O
STA $8001, O, l- I- q6 w$ P E
RTS
/ `8 n4 N. M( \- z; j1 M( M! n2 A% ^ .ORG $73401 B5 w r: e1 P4 a0 E( q( C
PPU_BANK_0000: ;精灵切页
; u$ Z8 Y1 j8 l/ O: e( [5 O9 X PHA
P: B; o: l) ?* K4 x, I. b9 _ ASL& R# w, k' h" t8 a3 x
ASL' A0 w0 P" B1 D, p) ^% a
PHA
, i9 `1 Q6 r4 F. a5 q9 T5 e& R# t# C LDA #$00$ ~5 y) }/ h$ }9 Q3 M1 |- ?
STA $8000
# ^/ H4 l% R, W PLA
' O. w& r6 P+ h$ u) `+ h STA $80014 K8 r% M9 _* f8 d/ ]
ADC #$02
- U) j: Q/ T- S. W! O PHA
8 L1 r8 [( N/ ?) g LDA #$01
1 b% i8 s# ^. w STA $8000
5 x. M. M" O$ j8 ` PLA- W) i! e2 z; V: x" k
STA $8001
) W# k7 ~" t1 v% t0 ? PLA6 Q0 E L" t, [/ O l, K
RTS1 d6 w- c/ U1 D6 u7 i t) p
0 v* H" \$ M& V# d6 o4 _
.ORG $7360- ]6 E. X1 X1 O; d4 c" k9 d' \
PPU_BANK_1000: ;背景切页. B' _( _2 S9 ?( |4 X
PHA
2 T% G4 p% `2 R ASL' f3 z" S! N# J% l7 R6 Q. I# x' \+ u
ASL
( E( j, [, y) s- J$ W* V5 L PHA4 t3 y5 Y- }% s. Q0 E
LDA #$02; m! T' F% a/ p- f1 ]+ ^
STA $80007 u5 x, o( S% A
PLA
( B0 Y" |. v7 ]/ Y0 G, f STA $80012 Z& @: N# J; J' S5 p
ADC #$01( c* R2 I+ e; m, `7 Z) c* Y' R, e1 {
PHA" T ` m& w, [* p
LDA #$03
+ A" Q) l9 [ o) _ STA $80007 L, J( |4 ]/ d; Q% O2 J* ]
PLA) P( c$ W1 H) J# G; o' m9 A
STA $8001
0 l/ z5 M5 A: @* B ADC #$010 y& R* o! `& U8 A7 M
PHA8 N d! a# J# }3 \
LDA #$04# N' }0 [# c a
STA $8000& a4 G0 c5 }* L+ P# T9 H
PLA% Q4 ~8 e. P; g/ K4 a! T
STA $8001 L7 `3 t' Y2 C
ADC #$011 X5 p% \8 l* @
PHA
% a: Z8 I0 g$ [( K3 X1 V3 J LDA #$059 O) W2 p/ R. E; H/ l
STA $8000
% t- {3 Y6 H+ T PLA
2 ~3 d2 n4 O# m* |: u! N STA $8001+ H. w& x, b# W' ~) D" e8 V+ o
PLA
! w6 S2 r o7 {( ]- D9 J RTS
0 ?; L' Y! c- |7 h1 L, l; [! i( I7 i3 `" E( O b
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|