|
;[FC][最终任务mapper1切页程序]; Y- p z7 i" P% E
.ORG $CD9B8 B2 g5 d6 V' t, G/ `
BANK_START:" @( A$ G6 t: t5 s5 U
STA $70
' J6 F: r9 M3 c, u: K TXA
3 V! l, A7 u# k& c4 H/ i ASL
& g( I }* a& {! }6 k, ~' q TAX
+ o1 ^: C l0 uPORT_SET:
9 v) w# H/ W! _1 H8 s0 k' F+ F LDA BANK_DATA,X$ P; ^' Y* f; b3 x, E
STA $6E
+ k1 S0 G1 }2 D! ] k& B+ t/ ~ LDA $CDB8,X
9 B, S' Z; X- f' ~ STA $6F
6 h' t1 Q2 j, t0 Z- N( j* G: p; x LDY #$00& J) G8 _8 J) F% @- E
LDX #$05
) Y0 @- R8 h2 N. q% J" ~ LDA $70
3 w, P+ ]1 ]% x iPORT_WRITE:3 A, K6 A- |# u( F! I" j0 P, B" t
STA ($6E),Y2 y" d! M# N! N* s
LSR7 q) @4 [9 a+ F% s
DEX
9 ]7 `: U: U5 L& J BNE PORT_WRITE `# y$ I G, ?' p0 e6 M
RTS$ M! J1 N6 \0 `
" Z% h2 q3 q) c) G. o- k& q
. d8 \1 Z& Q* eBANK_DATA:
1 U8 k1 m" W7 N' D8 v3 j% p4 z .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
- C0 l1 E4 w, x0 ?4 B& u
5 d: _* c: Q3 m" i. i; S ! G& u1 E8 T3 v3 M! V% G
;[FC][最终任务mapper1转mapper4切页程序]0 x) Y) u9 @- _
.ORG $BFD2 ;初始化跳转+ M. B! |" w: Y/ u, ]* G1 d$ j. R
JSR $FFC0* c- K9 {: c* f; u
- L2 q T e- t9 o1 f
) |) h) I7 ~# z. M
.ORG $FFC0 ;切页
- Z4 A/ O( Y3 `* @* ?) h LDA #$06
% F/ c- `/ _' d& |; o3 N STA $8000
+ h6 v* V9 T0 Y% b, P( d LDA #$0E
8 E" m2 s% F8 q' V STA $8001
: r+ l& r: H! {% n8 S5 I JSR $8000& A+ B+ k6 Y' D# [/ x+ V
RTS / |) n+ I) ?7 c8 F F/ i! u
1 y) R; m6 l+ _2 r .ORG $8000 ;数据复制
* G: m; s3 S: O+ D LDA #$80 Y" O5 g7 ^+ h
STA $A001 ;启用SRAM
# U4 c" n5 \9 N P/ E. y PHA
+ N$ y" S; p# t6 z# r TXA4 B3 g2 ]0 V6 k5 F# e
PHA
- Q& ~( k7 V! L. v5 K LDX #$00 y* ~5 E r7 p3 |; R$ ~) P
DATACOPY: ;数据复制
' C# X# ]0 F$ M4 O+ a9 v) U$ k! V LDA $8100,X. k$ [* h4 i k
STA $7200,X) M0 i" h' [) l1 f
INX. i8 P+ A- V6 | [& _
CPX #$00$ u& ~; h$ U; Y4 f# M, n3 b' f
BNE DATACOPY. v8 |& p/ K# D- q% o
PLA
4 c: ]! f% \3 Z: H TAX
) g Z2 U" F6 F" T9 C) o PLA# n% T9 `# r$ A) y0 b4 l0 G5 ]6 q
RTS
% [' U1 X1 l0 Z$ g1 {0 u' s
5 J# n. W8 q+ ~7 R' H& b .ORG $CD9B ;跳转到转换的切页程序( e1 p: R6 i/ m! }" Z: q [2 O( P1 p
STA $70
+ w# W8 W& _. _3 c e JSR $7200 W; \* L$ p; W) g6 g
RTS
$ v( W6 g1 K; \2 ^5 Q7 }4 k ( z6 w5 j2 M+ ]; Z) w, A) ^
.ORG $7300! T, [+ E5 f* Y. |- Q9 }
M1_TO_M4: ;切页程序( V/ U2 m2 r. v: R' K1 B( p" c* X- U
CPX #$001 M7 j8 g; J/ [5 n+ C4 B& T
BEQ REG_SET
3 y8 Z3 X; p; F6 v CPX #$01& T! q6 L$ A2 ]! @ r- \
BEQ PPU_BANK_0000 a+ @( i- a- u4 Q3 q
CPX #$02
; k2 Q* O' ~' E9 p: t- {$ ? BEQ PPU_BANK_10003 F: A. N5 c7 t0 B
CPX #$03
D$ J/ l3 r5 |1 n* q BEQ PRG_BANK
( K( `" j* D- z. SREG_SET:
5 ^& D% _" ~/ I# ] STA $A000
5 v/ O5 e# X9 S$ B L' H0 c" v RTS' H9 P6 q+ L* h7 p* B- y, l% e
.ORG $7320. r0 v- S& `$ I
PRG_BANK: ;PRG切页
1 d9 s& `( I* b8 P& F% @ PHA2 Q& q' B5 L6 t" w
LDA #$06
& W( A3 R4 V& m" N2 h* O STA $8000
' p4 Z+ X; q8 N' j4 r( X PLA/ p, K5 N4 U; }0 b
ASL0 z' J5 n5 l. M0 w
STA $8001
# o# X8 M6 @6 u p8 |/ Y7 `' U* m ORA #$01
9 `/ ?1 R v8 c* J PHA6 \$ n4 \9 R& v
LDA #$07
; z! [2 }- X' V5 `6 m( s; m- G/ {: S0 N STA $8000
; g* H d# O; @2 R/ s PLA
: ^- x: }- |/ {& ~+ Q STA $8001; z. b# _/ r; b. {/ s! ~6 h$ Q
RTS
+ }; U& P. c/ S/ D7 e$ k8 w .ORG $7340
) I' \! y, j* L$ T0 jPPU_BANK_0000: ;精灵切页( X" J0 `$ L( w2 T+ V
PHA5 d: s) {% q: q
ASL/ ]3 b+ v5 l# T3 `4 @
ASL$ ?3 Q. Q% v! `7 u7 J
PHA: a# n' Q. y/ f) _& s% Y
LDA #$00- w# X& } b- v3 ]' v4 n
STA $8000
. N* e( Z: B: \8 r0 b PLA7 U# {# ^) v& g3 g
STA $8001
d. `- E+ J; ~6 x1 |% k; \ ADC #$02
a/ J0 l3 U/ Y; k PHA
c; h' M: `- a& l LDA #$01
; i4 }6 ], M1 G STA $8000/ k3 V( {3 e$ `4 v7 |7 b' n5 k- \
PLA3 m0 p- @ x& x7 \
STA $8001( V( s; p2 V3 N! V! f$ `$ ^' a
PLA
$ S9 G4 v: X- @8 t) W RTS
1 P0 u. G- ]+ n0 F9 N
6 v8 s: R8 S# k) { .ORG $7360
4 j( a/ X$ c) U* |# K, IPPU_BANK_1000: ;背景切页: C0 s' N& W" \1 ?* u/ T- G
PHA
" _( f+ Q& K8 X. @2 c ASL
: T* e! x$ A' M- ^3 J4 ? ASL. c0 z- s& p' [" d( L
PHA
2 G( m+ d- E, v, f LDA #$02( L Y, P2 s& \
STA $80004 f) R# e7 a" L h1 x* M5 e
PLA
1 s; P# y0 k9 g STA $8001, \5 j' f. g: |0 ^
ADC #$01, f8 a" C. r! N0 I7 g j& P/ g+ Y
PHA: q c" U4 k- `
LDA #$03
$ q/ _0 c) [) N, I& S! n- R# p E STA $8000
9 S& {8 ~6 n3 X PLA
0 f& v7 } h4 H* R+ H( T STA $8001( ~: e; A6 \- W9 n
ADC #$01# C$ M; a% P6 i- i% `: b! M
PHA
1 Y4 u- C( |" k& e7 T LDA #$04+ V9 t, t4 Y5 k# B
STA $8000! m, J, H1 Y" k) ^( H7 x; I9 L
PLA
& u7 k3 @2 W6 J/ y; ~- a8 D STA $8001; X- T9 D( n6 x! `/ J
ADC #$01
- U1 n. k' s! X. Q PHA$ ?+ d; T, `' t2 _
LDA #$05
4 r8 @0 S( U/ z6 m STA $8000* _8 {2 j: ?6 f1 m0 O2 a7 [/ a
PLA
0 \' g; Q( B3 @8 \ STA $8001* V5 ?1 J+ A. u$ M0 J V& ^
PLA, i' k y2 ]4 R8 s8 ?
RTS0 x1 W+ H7 ~" a0 V* u5 Y
4 r3 u1 l/ V2 y8 f |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|