|
|
;[FC][最终任务mapper1切页程序]0 c! ?: X' P: t& n4 C$ _9 `
.ORG $CD9B
% x" e9 i1 y8 }1 f3 g- IBANK_START:' p0 J1 B7 W! ~. d, q
STA $70
9 q6 l- `, E( X& D9 O TXA
0 t, ]% s7 l, x& w ASL
# t- v6 J; q2 z( X" K1 _+ ~* g TAX2 `0 D* j5 m, F/ [
PORT_SET:- K* x% a: L/ Z! k' v) h
LDA BANK_DATA,X
. v) L% [' M h5 s6 E% Y STA $6E
6 p4 K s: b0 _& w LDA $CDB8,X( \. F7 P0 ]3 X$ l
STA $6F8 ^/ L2 S$ m1 f- }
LDY #$009 T% z+ T6 Q! U2 R+ z
LDX #$05
, C% E; y! w- _' k2 m5 p4 U! }: D# @ LDA $70
. [+ K, N6 w1 `" Q& ^1 f# s5 hPORT_WRITE:8 G t/ R5 m/ ?' W, u% U
STA ($6E),Y/ }% I b- H6 N4 a
LSR
* b/ R! ]% K2 Y* b. \ DEX1 ^: i2 t" c2 \" P9 f
BNE PORT_WRITE) q! u# b0 C4 m- [4 Q; a( j
RTS$ h# h% B \1 M4 r( _
6 j! y! y; h' m! l 4 S" I! W) U/ O+ A
BANK_DATA:$ t1 n# }9 I( p& s
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
1 q1 p; j! X9 R1 ^& x; _
" e/ U6 n. V3 a ( S1 {' S b5 [% u6 { b
;[FC][最终任务mapper1转mapper4切页程序]( r3 @8 t! ^ N4 j! n4 @
.ORG $BFD2 ;初始化跳转
0 c2 F% ]6 s% ?- D: O# \1 f JSR $FFC0
/ _' O% D5 m: U9 k( W, _
) J9 X* k; M) H3 T
& |2 d) P* X5 @, h5 Y .ORG $FFC0 ;切页$ U$ { e0 h% {6 N
LDA #$06
& V5 ]. D1 S7 g STA $8000: h% m$ h" d+ f/ Y+ V
LDA #$0E
5 z$ W( |$ k* E STA $80019 x% J" _3 ^/ G9 o
JSR $8000
% r3 w7 Y( t& b' b9 _ RTS / g+ Z8 k4 D, q. o3 y
1 R% T' r, a7 L' Z
.ORG $8000 ;数据复制. b, u- A4 U0 l
LDA #$80
& S4 D( v1 p9 ] STA $A001 ;启用SRAM
% P% q6 v; { _% s1 @ PHA
: g$ E" i8 ~8 U, p) @ R TXA. S" z9 [; }1 u
PHA- }' ^( ~. Y# i+ R3 d8 z8 Z
LDX #$00; ]2 ^" `: n1 {
DATACOPY: ;数据复制/ n" G9 B$ p5 R9 H4 k3 f+ ]3 |4 _7 q
LDA $8100,X
% ^6 z6 j& d! }7 X* T STA $7200,X
$ T- H3 t# r1 l INX4 @0 j1 [' l: K- _% X0 n/ J, d, j/ e, g
CPX #$00
. y! b2 W0 _1 [" ^5 V9 ^- q4 w BNE DATACOPY' l0 }8 u( \$ }! E
PLA
" M, @% V- K# }7 g+ ^0 W# | TAX
5 I5 Q$ f& y* ]9 f PLA
E4 L( i, m$ U X+ p% X; j" h1 h& @ RTS: @5 C* W1 j5 r
4 r( T( c/ V5 k# H- V' w
.ORG $CD9B ;跳转到转换的切页程序
( e3 O3 R1 Q* F" Q8 v STA $70
1 w1 ~ { q& `4 B% G JSR $7200
" l& X5 s+ S7 U! q# D RTS
2 g/ V4 @' f5 p M* [& y
8 U& m. y6 R2 K$ l* F .ORG $7300
$ z, J. {3 m2 n4 QM1_TO_M4: ;切页程序
5 a) n: P4 i: I9 J CPX #$00
1 s. @/ a/ Y* I! }6 W: L! ? BEQ REG_SET
1 X* [) [$ S& A# G CPX #$01, _6 {2 K* p# h7 j
BEQ PPU_BANK_0000" H3 ~* C6 { D& h7 M# J$ ?
CPX #$02$ ?" @1 [: a/ g9 Z# S* G
BEQ PPU_BANK_1000
5 I( Y8 j# ]- C6 a CPX #$034 f/ v' \+ v6 o: L
BEQ PRG_BANK
' l1 d4 O8 {, ]6 N5 }REG_SET:
# ?9 F' h# F+ Y: b+ B z& U! U$ Q STA $A000
. d# E' a4 Q" J6 m4 x) O' G RTS; H) f3 k8 X. k0 C; y3 M" k7 F
.ORG $7320) Y: {' H( b9 t- v/ Z9 H
PRG_BANK: ;PRG切页/ f0 v1 ~7 }! [; ?
PHA" o4 @! _2 H2 W- V: J
LDA #$06/ L+ T+ [4 D7 ? P- ]. F! `- z
STA $8000, Y1 J, |( f( ]6 q' d; S5 E
PLA
- E, ^" ~ O( M ASL
8 U; r5 a$ J7 ?9 }& z% q STA $80016 B' a0 M6 F+ R8 u
ORA #$010 V6 ^9 [- v: |5 M& m" v- v
PHA+ I# R n: H0 j9 H* p; s
LDA #$07: M5 h, c# Y% d$ x
STA $8000/ {2 D4 B; }# k; ~+ R+ f$ N. Z) k4 Q! @ {
PLA
7 w# Q/ l, s8 R1 {$ o1 Q& p STA $80016 E R- a) [' t% J" r
RTS
6 b6 D5 G8 U& C+ A1 |. f. }. A' g .ORG $7340
0 P( S" Y# L- k8 _PPU_BANK_0000: ;精灵切页* N& S4 V4 ~6 Q& R6 N3 ~; w: g) R
PHA. C$ p4 f! n q1 j, y& c" U
ASL
$ O# h0 A3 ?0 Z/ \8 `4 {# B ASL; }5 {! p9 T. ?2 v
PHA8 K+ c! j: l+ q
LDA #$00
# K P- E! B" l STA $8000
9 S+ n% q! O8 U/ o( y PLA4 S% S) @! Q: V
STA $8001! x& e7 u: Q1 v: q; F5 i4 O
ADC #$028 u, r- E2 A T; `# U
PHA% W \9 J' `' D9 R0 E2 n; M
LDA #$01
& l! L0 s& k! ?) z$ U) v STA $8000
1 B: @8 ~6 f4 ?5 x PLA
9 L$ t! j1 G' A% f STA $80016 A3 a% U# g2 ^- }4 D- y6 S/ ? z
PLA
: q7 ^/ |$ d P1 R RTS9 U: t9 J2 c8 o0 ~$ U, W
! o* N. K. m/ q0 a
.ORG $7360/ c, z) q# g& ]$ q: B
PPU_BANK_1000: ;背景切页
! {5 C# q1 Y# b) G8 P PHA
$ @/ V0 u2 ^ M' q$ D3 D; f" X ASL2 D5 y/ b6 ~9 I' C$ L* B) Q
ASL
! `/ E: d" \( {! i6 q PHA7 }, x% L2 E# l; |4 l! ^9 v
LDA #$02
& \) A* g/ w& Q( r9 ^, q! G1 x STA $8000
- i$ b: |; I% h* M1 f' T PLA
/ P0 T' X9 N3 n8 }3 ` STA $8001
6 c' K/ n6 B4 C, G) u ADC #$01+ n8 e( g! q- z" H$ w
PHA& w' X" [7 {7 w# A5 u2 N
LDA #$03
0 E% Z' t( ^& o7 a1 T. n STA $8000
1 I7 C3 N& |1 j' ]/ F PLA j4 o2 o2 o8 g7 t
STA $80010 s0 U+ J4 G9 T( h5 w2 ?- }
ADC #$01
. F/ k% R s+ C8 U& Q9 p |( v7 [ PHA% f! P' }: B! D7 k' N# a1 W
LDA #$04
: t9 u: T2 p9 P1 k( v I! m' Z$ ` STA $8000" ]5 \5 Z( x, w* T
PLA
! B, d/ j3 Q% J# a STA $8001
; }1 E1 g1 V8 s3 ?" u ADC #$01
6 ^7 z) m6 x: X1 U" F PHA
$ d; Z* @2 b# @: [9 c- B2 H1 c+ ] LDA #$05
. {, _6 q. D- K6 Q$ u STA $8000
$ H3 x: b; i$ j; }8 W, v0 Z PLA
# L0 k1 {' R2 [9 [) Y% Z' S STA $8001; R* U7 i( |* i
PLA3 Z0 o2 P* m7 S. z. g, }9 `
RTS/ ]6 C% u2 _( g2 F
0 N) V% }6 d: d' v' u |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|