|
|
;[FC][最终任务mapper1切页程序], X5 P7 Y, Z6 F
.ORG $CD9B; I( g7 {( f" e4 `: I
BANK_START:9 [( `% F" j. t$ ?
STA $706 ]$ N' ?, I3 I4 N
TXA+ W8 l7 H \" g" E9 X9 c
ASL+ s4 f" k7 D: R; ]$ O/ G4 T0 E, [
TAX
% R* o% F! r, ?PORT_SET:3 I, v6 U, i( C; h- X9 O4 i1 W
LDA BANK_DATA,X& H2 U- A4 |) L3 H% e# `+ D: S$ Q
STA $6E# D$ E) P3 l) `& S m& q
LDA $CDB8,X
" R' `: |% j0 n Z" H _ STA $6F
) C1 Y+ q( y+ j LDY #$003 p" T' ^- @! V. t
LDX #$05
* M0 V. R, a. a2 v1 [ LDA $70
3 R- y5 h3 m9 Y8 p! NPORT_WRITE:
: J* i( O3 O' n" N/ x STA ($6E),Y4 {7 U6 L/ C9 E6 Z
LSR
7 g9 i; C& |6 ~2 f+ R( M) q DEX
e7 q4 p/ e: L0 M6 Q4 |: Z BNE PORT_WRITE- {1 @ J$ J5 [# G
RTS4 r& i. C, ]/ {0 t4 B6 Y
B& b) {: J% }; m8 O
% k% J: n* t1 K' o( rBANK_DATA:
3 z/ o; H' N9 l) x .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF2 }; m% Q8 c: R' E& N( m
]- Q* t3 h& F( y2 v. E
& m; W+ k) j6 ~5 m/ ~
;[FC][最终任务mapper1转mapper4切页程序]. h$ _# n/ j' J. g. T
.ORG $BFD2 ;初始化跳转& C4 U0 v4 ~) D+ o) L3 i0 l# ]
JSR $FFC0( c9 @ d5 F& _% N/ {
: R) F0 T# |; [/ n0 H) X1 g* L0 b# u( _5 c
.ORG $FFC0 ;切页
$ G( H+ q: o6 C( T LDA #$06
. M O9 C: H4 a% c4 M STA $8000
1 `4 q/ s9 t$ F! @6 e8 j+ h LDA #$0E+ c; C; t# l* `- a7 U1 w
STA $8001
+ g/ H }; X) H JSR $8000* ]# g! q6 H0 z' u7 n
RTS " b4 H, g* O5 R' ]( u! @
! O1 t0 k) d9 Q .ORG $8000 ;数据复制
8 O6 g5 x' y! D- K2 p% i4 ~ LDA #$80/ t# q! n1 M, E& @6 l
STA $A001 ;启用SRAM, r( ^! t. t9 x1 k, G' T! |& a5 e
PHA7 Y0 m& Z+ c2 |" u4 o
TXA
. P( Z( n* K+ ?/ C: |1 B, x' b PHA# l! w& e! @+ l) |4 ?7 Y
LDX #$00
3 l, t: T i+ a6 u }DATACOPY: ;数据复制" V w! B: `( i! }
LDA $8100,X
, x" x& N4 g; B6 m STA $7200,X
, e6 d+ T5 U; v' ~8 E INX- C( G& z: L9 _$ d: R; ^
CPX #$00
- _" k: p& n$ I0 ?3 Q$ Z% }6 \9 M BNE DATACOPY/ P! U) R, h" t
PLA; m7 T# y9 u. X( H4 Z7 l I
TAX5 h R/ ?) m( w$ E7 G. p
PLA
& o# u5 \' N1 Z( z7 {) m' y RTS! o& c; k; b5 g) j1 O1 L, g2 G8 }
1 l' n* m1 q* S6 c
.ORG $CD9B ;跳转到转换的切页程序
8 l D) E# V# |! C% e3 P$ D7 | STA $70
9 U9 F2 k) f2 m9 O7 j JSR $7200
" k3 j4 I7 [; L# b( q7 f+ k RTS9 _" x9 x7 A5 N' F9 F: z
2 F& E" @. m4 I
.ORG $7300
" H. ^1 h \( w, n! c/ z2 t6 @M1_TO_M4: ;切页程序
1 q, h2 \& l2 W7 \) H3 t& M CPX #$00
6 V: K& t0 T1 A0 l' K0 X- q BEQ REG_SET
$ a. d, P n' u- y6 a CPX #$01( I, c: A+ O6 E
BEQ PPU_BANK_00000 ?7 p! O4 e7 z2 R( v: B
CPX #$020 O( {2 V* c* {& v, V
BEQ PPU_BANK_1000
/ H/ Y6 X: v. ~$ Q& ` CPX #$03. ~+ d6 p+ N8 P( P) v% I
BEQ PRG_BANK. g; o8 [0 g( ? `4 O
REG_SET:+ G: P+ I# `" g) W1 r1 t
STA $A000
& g7 a' B8 x3 Q( y; A# L RTS" H% Y3 }5 u# W4 H
.ORG $7320- Y; g: I5 k( h& U& C4 r5 H
PRG_BANK: ;PRG切页
8 I: P, @9 l9 @; ~" [$ R2 S PHA
" B# L9 W8 G6 U0 c2 b e LDA #$061 G# T0 }9 a; `" B
STA $8000
1 N% v l; f8 T0 P7 L PLA
) k+ F, [7 ?8 Z! i, ^ ASL) m+ ]( @+ u, y8 a" R
STA $8001! w" b/ B: k- X- p F
ORA #$01
8 U! `- Y; A; [! @- c* d# K5 m PHA
/ M0 P( I. T9 K1 u9 J$ z; J1 P LDA #$07
4 J. k7 q, F3 {0 w7 c+ s& E$ {6 @* D STA $80008 i) C0 z0 `8 } U. t: {' P
PLA9 \8 d$ Z/ n2 e, N' @1 N
STA $8001' R: |9 u5 J+ V& q) d
RTS
" {% N j D( ?* F .ORG $7340' ?+ F1 |* i3 P& a% w
PPU_BANK_0000: ;精灵切页: O5 `/ Y" R! r7 h) L& J
PHA
* W" M8 l" d3 o$ @# u( y9 M ASL
3 {- m2 N0 d1 h$ e* I2 r& y ASL
+ \# t% _2 z2 y PHA2 k" u+ C: J1 c3 |
LDA #$00! j# m) w5 O3 A! V
STA $8000& H. A/ O* f: V9 Q: W3 K
PLA( V- o$ d2 ~# j5 m
STA $8001
' `$ O# K: H. I ~$ [4 P0 e" k ADC #$02$ g% S5 Z. Y" Q' ?& D: w- G
PHA
9 l( c x9 M; B8 \! l LDA #$01
3 H c* h' V. U3 W9 X8 Y4 h% U STA $8000* r& z4 h" {9 d. ~
PLA
- l# R+ r/ S+ j0 W7 K3 A STA $8001
2 e, @9 h, j. V- N6 \6 g PLA; B9 f7 L) [# ]4 ?8 n+ l- m/ E, e) \
RTS
8 W8 ^. H3 k2 V( d
- [# {2 |0 |, m: [. D .ORG $7360
6 \1 I. C+ G; w4 e O& O9 vPPU_BANK_1000: ;背景切页
: I! I. R l! l* O6 `& D PHA
( P9 _# E: T O" v* J$ k- e. b ASL
2 q9 B( G) C o+ ?* ^ ASL7 v* K: |- E5 o: T" F: Z& }
PHA
: W: e0 q$ K' \" Y; M LDA #$02
( o+ J6 C4 N- `' c4 J9 U STA $8000
+ ?$ s: i/ ?; R) j# Q0 H PLA0 r6 F8 r; Z5 ? M
STA $8001, l; @: I( _2 J2 a0 Z
ADC #$01
2 U8 [8 N( S" Z' s) Y8 A; |4 j PHA( ~% N2 n, [6 k; X, ^4 U: V6 I
LDA #$03
& U& P! R4 \0 B" d! l; ~/ a3 o STA $8000
7 w4 Q/ m' E2 p4 |( @6 b PLA) j1 a4 R; ^ d5 P/ @& G7 m
STA $8001
( U) l+ }6 I; @% @- V ADC #$018 f: R1 o/ O5 B
PHA( A0 U: q) b9 Z( P- s$ c
LDA #$04
" D$ G0 B* i( J6 x* |0 L( v) M$ y STA $8000! R+ b9 L8 J1 A1 n; J0 h! ^, h/ v
PLA
( ] N. w3 D; ]) f/ N STA $8001" l$ m3 I, y( |- n& v! J- Y a
ADC #$01* E5 I. l. h1 a8 o' h2 @& r
PHA- M% Y/ q! Q! t9 ~0 R6 F y
LDA #$059 _& S2 W9 z+ s1 n. @( N @/ K) H
STA $8000( I: H* F( m) W
PLA( n7 ?4 [4 X0 C+ w) p j0 r6 i6 X
STA $8001
- T8 S+ H8 t* E u" V# r PLA
$ R6 F/ M- t3 t$ q* l' o RTS
; E' g! h5 f8 p; G8 U) W% ?$ ]) C. A! i0 K1 S5 v
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|