|
|
;[FC][最终任务mapper1切页程序]
$ `. j& J4 _4 y. s' {5 B .ORG $CD9B
! F/ c/ r& l7 N! iBANK_START:
& i/ ^! J8 R% B3 Y0 S3 D$ N+ } STA $70
$ k* M0 U& A0 j- c- d3 ~# G+ o TXA
' S' \0 N9 B8 `9 O. y ASL v, u6 h U# L8 o
TAX* Q( i# S9 W' o2 V' V! a
PORT_SET:( j3 X3 {& [: z2 r
LDA BANK_DATA,X
* _. q6 e# L' e9 n, {# S STA $6E% I, A" ?) F: F/ _7 n: f/ x
LDA $CDB8,X9 t' Y, o! \# F @3 C
STA $6F
j8 m& R& O- u! X) W; v2 o LDY #$00* t/ Y5 G# _; H, e; u
LDX #$05
/ H' F/ |$ z# T3 ^) S LDA $70
% _' i7 K$ Q) W* @5 Z" T! @$ |PORT_WRITE:6 p5 V+ [9 L4 c5 m4 p
STA ($6E),Y
n E9 Z3 a# l5 k2 a LSR
: R8 _- |5 o9 h- [& N6 }5 `3 U4 T' @2 ]* X DEX+ S% J' g! s% s0 @! o3 Z; y- z
BNE PORT_WRITE
" v; x R8 l/ U3 @) r RTS
1 Y( v9 r, Y: U3 m* D
$ K& m' y4 M. N" I % g+ z5 h$ U# f
BANK_DATA:2 ^" J0 v) m3 W' q
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
8 w8 u& p- W8 k0 y! p4 l. w J
G4 @, h# j* Q7 S
# `' j( c3 a7 Z" v/ u5 k;[FC][最终任务mapper1转mapper4切页程序]* ?! w2 w7 k9 O4 O. X. _$ F8 ]
.ORG $BFD2 ;初始化跳转
3 z! q" l C( c: u9 ]8 g" ~* {/ y+ M JSR $FFC0
. }4 e8 \6 b8 L: u8 @( ]7 P
6 W& } a4 A- A7 o0 @2 ]# _( L. D$ f( h+ ~
.ORG $FFC0 ;切页" T+ s: F3 a% f; E2 Q: g
LDA #$06+ K) t. W' t' Y" W; T0 W* E+ Z
STA $8000" w6 r8 B f2 r7 f+ p$ L4 V
LDA #$0E
4 `) C& K8 A9 A* }/ J STA $8001! z3 v/ n* e3 D7 ~
JSR $8000+ O6 E! s4 t1 A) H: I, P% p7 ~9 p
RTS
Y( [# C. Q6 E, T/ L- q1 l! G5 [ \ 0 G' v' }2 @# P+ B6 Y
.ORG $8000 ;数据复制
6 u/ y" w) u3 z" \ LDA #$801 K( {8 [/ f4 w. n6 u! R
STA $A001 ;启用SRAM
% d7 {: z* J- H5 o; M$ P0 C* x u PHA( X- I6 A- J+ \
TXA0 z/ ?+ @ Z1 I8 r! |6 R
PHA
) A& S1 @/ ]2 n S* c/ e LDX #$00
% ^! R2 l: I3 Q+ H5 jDATACOPY: ;数据复制' J C% ]1 q5 ^) i( [, p
LDA $8100,X
$ g8 n9 \4 u8 J6 z3 `/ ~# Y STA $7200,X% Y4 [5 A- ?3 ~5 L
INX
7 [5 z1 k; A: X n' v# b CPX #$001 e8 E( y, V/ F4 t/ F0 S0 c
BNE DATACOPY- C: M" L& w! n, S1 X+ L6 [" _
PLA4 B2 p* V }. ?" R
TAX7 H" I& @/ I3 A3 ~0 Q, A
PLA X+ T# c4 f9 B, Y' x6 K1 z0 u
RTS
- U- D7 ]% c" b9 \" W/ f+ H
! s0 c5 [! n: \! m- B2 w ~" C3 x .ORG $CD9B ;跳转到转换的切页程序" K: J8 |- }( D0 ?7 G3 J7 O
STA $703 J! B. g5 U+ f' @( {
JSR $7200/ l0 r2 @1 W9 G# E7 n, |7 A* k* C
RTS
0 }) q6 c" G @& v
6 v" @3 O' T3 c+ O7 z+ b0 |. \ .ORG $7300
; q5 a3 O& u5 b, Q# c' LM1_TO_M4: ;切页程序
, T/ c7 n6 i/ K7 E5 d* i9 D) y7 J3 X CPX #$00
: u( C7 S, Y2 @+ U1 n6 ~ BEQ REG_SET) D; q6 e4 \& k6 |
CPX #$01# b8 ~3 l6 `, A# W
BEQ PPU_BANK_0000
. h! y, u; B2 m' o CPX #$020 ?) k6 c3 r+ T7 f* u q# G G ?
BEQ PPU_BANK_1000
/ H. Y7 T5 i! m! K8 n+ @ CPX #$03
# P4 J' p; p" T BEQ PRG_BANK+ G! F! O1 F( G$ A0 k' e; Q% Y$ a
REG_SET:
3 `8 |- J9 {+ \1 X1 n STA $A000; N/ y! B) k: x& k$ _5 g
RTS
7 W# H+ y, ?( r .ORG $7320/ U' D2 U1 `* e$ [( x
PRG_BANK: ;PRG切页: ^9 a! f/ R) A
PHA
9 j" e- @5 L) p7 N' s LDA #$063 S2 j9 p1 w1 S$ B8 m$ Q$ S j
STA $8000
2 G4 S' Y# A; [- b/ T7 _) ^! a PLA2 v# W$ [) [$ l* A/ E
ASL
E- _. `6 U' A: {- i STA $8001* M/ ~3 F% P& P! g9 e( F5 g* g
ORA #$01# G3 Q" C7 s6 ?6 G# U
PHA! k! E1 A( _# B5 J1 ~3 s5 j& i
LDA #$07* @' n, M6 E% I0 b
STA $80001 y6 E; v' K* x4 q I9 z; H
PLA
3 W+ L. N) I _+ j f STA $8001
# y z/ e, S) X6 ~ RTS
3 J0 N/ W/ O! f7 ?3 P .ORG $73406 I+ G0 `% p0 ]6 d, c7 I
PPU_BANK_0000: ;精灵切页' y4 H! U2 N8 H5 O
PHA
) ~: D! t8 ~6 z" e# C! R7 `. P ASL
3 c; r) O1 f! r' U0 v. ~7 G% X ASL5 z/ \# P, L. n; n# q+ K6 e
PHA1 v! n' c, C V8 L/ } `
LDA #$009 ~% ^3 O: n+ E6 @2 V! h
STA $8000
5 R, n1 o% b7 |5 o PLA
: X" c5 s- a8 o& G STA $80015 u& f/ [! G8 U/ n
ADC #$02
6 N+ N! R$ `" _) a) k2 l& h0 R( T& w PHA! e8 j) X$ }) S, E7 L6 T( P5 ^1 }
LDA #$01) c: A$ F, c v7 o
STA $8000
5 D8 Y9 ^; j1 ?2 F" h PLA- V& T/ o* G" D) G
STA $80018 P5 m |) q- \) w
PLA3 }# L6 Q& d r& B9 s* N
RTS- r$ w& j, L4 J' y' S& g" L$ m
: R8 R5 |6 f: B7 G/ k" D2 i
.ORG $73604 k) `8 k1 \- C ~" x$ K
PPU_BANK_1000: ;背景切页5 P( o% l C4 k* V- P5 d- U' _% Z
PHA
: N0 r; Q% G! f; n! z9 \$ o ASL$ v/ }' f6 A) D" H. E: A& Y- o
ASL
8 y, l3 m, M5 A1 _0 s+ C PHA' Q( R( y1 W6 h, C
LDA #$02
: V) V$ j, G) c* H/ X STA $80004 |/ ]3 u0 b5 m4 S
PLA
6 q" }2 G# x; b7 u. N9 j3 A( v) J S1 a STA $8001 l& l2 P2 L! b$ u9 `8 F
ADC #$01
5 C5 p+ P0 X$ c/ I- @/ a# o PHA1 T* P' ^% j! V, X. \1 V3 D
LDA #$03
: f2 E) q/ s9 s/ h STA $8000
$ q, G: {" {/ }* y% h4 j; z5 q, E5 ^ PLA
/ P9 Y8 G' ?3 c4 j STA $8001
9 k1 p, O& j/ [6 P. N# \ ADC #$017 M; `7 e+ T5 c
PHA
" w4 M8 M: X" B" ~ LDA #$04
' {, U) |! l6 e! q4 C STA $8000
. c ^) ]& o, J+ L1 m3 i) } PLA! |, T w; r5 M% A
STA $8001
; Y5 D9 M4 x1 A, D4 h5 A! c ADC #$01
' T0 y. G5 d# j2 V" y% |' H N/ x PHA
5 ` w2 R/ D: i( z; N7 A LDA #$05
" W6 r" w- v' n3 v& k" ` STA $80000 G" I& B, N% ^5 t9 r
PLA
: W& X' ^! U- p/ F3 y STA $8001% R2 ?: N0 g2 N1 `0 P' m2 X
PLA1 l8 j# S0 h5 X$ ^; y
RTS+ F; m( q: b6 _8 C3 q A
9 ]( H/ u3 u+ h7 L |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|