|
|
;[FC][最终任务mapper1切页程序]# \2 l) S- t [- n
.ORG $CD9B t# \) R7 y4 o" h
BANK_START:
# O$ U0 |5 p( u: y STA $70
8 y6 B1 \* n8 r$ e TXA
9 x; F* J: Z# c2 M) w6 {8 B ASL5 ~0 s$ X5 v4 x, D
TAX P2 o6 h* T( x6 k) Q2 {
PORT_SET:
. [% f4 M7 K' u8 L) ^ LDA BANK_DATA,X
2 E/ w0 Q+ b$ N4 l* E1 {9 N STA $6E: _2 w8 g8 k/ ~1 y4 a/ F& T
LDA $CDB8,X' ~. k: \7 j3 V6 j
STA $6F
$ X9 V, c# s! @5 \( C8 g LDY #$00/ y. `! [) ?+ o7 ~% o
LDX #$05
% R& W* F. K! L0 L; {7 j LDA $703 y$ T) Q) \2 ?
PORT_WRITE:
0 W S" X: g& l& G STA ($6E),Y
( U. R/ Z) X- ? LSR9 O3 x) Z: v/ H$ G! F, r0 E
DEX
, s5 j& X; H K1 o3 f% b8 }, r BNE PORT_WRITE
% W& x* B1 T& R( _ RTS6 k5 @- c" c7 G1 c2 b ~% h7 n- g
! a6 k, C: V* T % G* C/ F1 h D8 K9 X
BANK_DATA:
9 f, K( P* E( U% u .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF) d9 u& T4 u) z4 a- I& s
8 E% H+ Y/ Y" p1 {3 z) H1 s" O
. A: A/ j* _8 S& V( g
;[FC][最终任务mapper1转mapper4切页程序]' x+ y% `3 {% ?$ l
.ORG $BFD2 ;初始化跳转
5 t0 E e" Y6 B1 z ` JSR $FFC09 R& B% Q ^: k( r; X
& }, u4 Z, J6 o: c, M& g { c
& u& \/ i8 k; j
.ORG $FFC0 ;切页) C Y M- `; t. r# B* F+ J$ G) S/ M- X
LDA #$06. A3 Z0 ^. }$ w$ \- F% x! X
STA $80007 r) T/ T8 g1 f; G/ F; j, U2 x
LDA #$0E
# ~% P" _- g, k4 ^0 C$ N STA $8001
$ y1 c4 E) K3 Y7 H& z JSR $8000
! ~% T/ {# d, S4 m v+ w3 G RTS 2 f6 P# i! k9 r( Y' T
( I% d' `/ T" M# Q; F .ORG $8000 ;数据复制
4 _' W& }7 x- m5 J" | LDA #$80, s C) q7 _8 y# C, W
STA $A001 ;启用SRAM6 Q3 {0 T# ?, B" t& D
PHA/ b2 b( y* ], ~* }) r# u0 _
TXA
7 y, ?- d8 o/ j j, X/ _3 Y5 } PHA: n2 l1 Y( H1 Z& G+ }' L# l& I
LDX #$00% O- g5 [6 M, p4 ^
DATACOPY: ;数据复制# }6 k2 l0 R5 [8 }2 f2 o* v
LDA $8100,X
' A. \7 B9 q1 u STA $7200,X
4 [, v3 I. Q" p7 S# x INX6 T% Z$ p. c9 R# E& e% j. l0 E5 {
CPX #$004 R2 A. d& v* L @
BNE DATACOPY, b5 d) N, i7 p$ H3 P) s$ }* Q( R7 @
PLA
# m: r& S7 s$ t+ k& s% X TAX
& w5 w: _! T( s$ h/ U2 k& a PLA% D' @" e" y7 D. l ~3 |- z
RTS
4 G. ?) ^' O1 l v8 F# G/ h + m' N1 I, n/ A( B
.ORG $CD9B ;跳转到转换的切页程序
% J8 b/ w. g4 u5 `9 G STA $702 }9 j- `% x" M' t1 j+ n2 k( J) ]3 o$ ^
JSR $7200/ @0 v- S, P4 @5 u) A! r
RTS! T. Z( c, E D
* y# g4 t6 F5 Q .ORG $7300/ R% p0 {; C- q$ O8 ]- `) u1 g5 g
M1_TO_M4: ;切页程序
- \$ u9 t5 N ]* \0 M CPX #$00
$ n* k1 P) M/ e H1 j9 A BEQ REG_SET
( K9 H! t& F! @8 Y# q CPX #$01
: @8 \' A, x4 S# f1 }2 b5 W BEQ PPU_BANK_0000
! _* E5 Q1 t, a ~. _% H CPX #$02! L+ T* e( Y# \) x8 z( w) h% L3 M
BEQ PPU_BANK_1000/ M& I, [+ \1 S$ J/ n6 Z
CPX #$03. ~# ^8 S7 w' v! \
BEQ PRG_BANK( J1 Y8 V# D# R7 U! o
REG_SET:
! n6 Z7 V2 d1 h' M( F STA $A000
. b* f9 L) T1 r& s* L, t RTS: Q0 t0 [2 y4 E2 W
.ORG $7320( [5 I3 U2 S- s! x
PRG_BANK: ;PRG切页
& o2 Q0 I+ }( e3 R! J4 C2 Z PHA
- M2 o& P6 V$ T( z' B LDA #$06
3 _, t. w0 y j Q STA $8000
+ V: N( B+ ]& L" u PLA7 {3 ]/ L+ M9 l' e- j8 I
ASL0 z: _. b: `1 ^6 a7 u2 S J1 |1 A
STA $8001
: v0 Q) g$ r# @4 @- }" l+ y ORA #$01
; z2 L5 a. p3 }4 F& G7 ] PHA
& a T4 s; M* E LDA #$07- E+ r" q$ T( D4 J0 b' [
STA $80007 o9 E# x( d" F; L' h
PLA, m, P& W# B* B3 n
STA $8001
) ?2 F% I) y( t- L: u RTS
9 @0 P; _! D5 g# U% c .ORG $7340( q+ W4 O5 s% ?
PPU_BANK_0000: ;精灵切页: `4 P0 T# f, z# m3 q
PHA' L8 P' V6 w3 j# ]
ASL
9 F- L$ j7 D! g* A$ B7 Q2 Q ASL
& g4 k* l9 A2 o+ U9 I PHA
c W- m' {& _2 p; i0 x LDA #$006 X. b& N" K8 c0 T: u6 Y
STA $80008 b2 `6 M/ ^* t4 @
PLA
1 r/ |* M( j; g5 H STA $8001% c( j7 g2 }* w k
ADC #$021 I$ X* x/ p! _
PHA; o; A3 T% ~& E# `0 M V) Y& e# c8 j
LDA #$01, K8 X% c' G& n
STA $8000
' {3 \7 S' g6 L9 d: N# h8 q PLA0 ?7 D! w0 j8 F- m; a; S* k; T9 X
STA $8001) w s4 F( T5 ~- j! _; {
PLA( }# {. C8 y9 D
RTS/ h, Z8 T8 A: K
T$ y8 |# R5 o .ORG $73603 U3 T& i5 s* j) ?$ Y& w
PPU_BANK_1000: ;背景切页( @2 O1 X7 J% s9 I+ a& Z4 q' g5 y
PHA$ {% F1 \6 ?* o6 c* }3 H$ k
ASL1 F1 ^* G1 J8 y+ P- E/ s6 \% ^( X$ n1 `
ASL
7 O" z: x* t' I0 i: Q PHA
' L& Z3 K7 ?+ Z* R0 z* D. B LDA #$02
. x( i" |) f2 _- s4 r- O2 L STA $8000
9 |- o4 E1 L, u5 C- [ PLA; ]" @) I; ]2 B
STA $8001
' q1 a! o3 A' K; o3 | ADC #$01
! a& _1 W% b7 G0 G( X PHA, T) M2 E; n! u& Q2 z
LDA #$03
j9 D- G3 F9 p; O! E+ n STA $8000) m$ [5 M# T$ |5 A" ]9 c% k4 }
PLA8 W. u( w" I3 [6 s/ Q6 `
STA $8001
4 L2 J8 D8 r! f# W ADC #$01* }% W) p* V% x8 a) o
PHA, H) a) ?7 d$ G- E
LDA #$04
: S0 s u9 J4 y! T4 L STA $8000/ ?6 x; K) u; Y* M, ^0 N( w9 h
PLA& B5 |; o/ `4 H3 _, V. `
STA $80012 x: S1 O( n8 R% z& G7 N
ADC #$01% c9 @4 V- Z, L! N: s8 `7 Z) F
PHA7 a4 P2 P, n0 }( Y* Z8 z
LDA #$05
' R* m( z2 t. P% h0 w3 v/ ~2 R STA $8000& F2 S2 M1 ~; D# r
PLA$ g2 p# {: x7 s3 t: Y+ k
STA $8001
. u- W$ ^& V9 v& d PLA
1 S: k& C" k9 [# X a0 L/ V/ e RTS1 X5 B) d6 g3 c6 }
3 Z( r' \' H* o |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|