|
|
;[FC][最终任务mapper1切页程序]
7 S6 p p2 P9 H" u. ` .ORG $CD9B
7 w" o* e" G; N( v1 sBANK_START:0 d' K" P5 j9 r0 [- B0 [/ {* Y9 a$ P
STA $70
" U( r+ ]7 {5 W$ P% ~+ Z3 X TXA7 a) {$ v; S7 G$ O0 A3 H
ASL; X/ S# E) Y0 r# T/ v$ f5 g$ \+ _
TAX
E6 I& p) L1 K. ^5 yPORT_SET:
3 n8 @) K# r6 Z1 V$ r/ z* } LDA BANK_DATA,X8 t6 @) q3 W: }0 E
STA $6E/ d- r _) q3 d$ v1 x
LDA $CDB8,X A5 a8 t; |" a
STA $6F; d' m4 ]/ H0 k% V" T3 {2 p
LDY #$00
$ [/ n' b5 W% O4 o2 b LDX #$05
' z$ c/ U( T# Y' F: E1 d7 r' F LDA $70' X6 L9 o V" J/ L0 p$ d" N# X
PORT_WRITE:% ]5 K" j2 C/ C# P3 Q8 \
STA ($6E),Y6 f5 q, j8 Y2 t; K6 Z
LSR
$ w# _$ W4 n2 _, W0 [( t5 E& u DEX
8 {5 h3 ]8 A4 l1 [6 r+ k& d5 O, x BNE PORT_WRITE" \, ]& z8 \- J
RTS
- R6 K( W8 l% `- A
6 m: N s' K) x* z6 ^& G; @ # V: P( m, ?0 g1 |+ p. a% A/ F
BANK_DATA:
4 {. |; l3 Y, X$ c7 ? e2 c- }- C .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
7 p' l# F7 F v& M5 a/ {% Q) b6 c
+ ` r! E0 t, l6 N " _+ F e) B3 X4 w' w9 f
;[FC][最终任务mapper1转mapper4切页程序]
~9 H1 U' t. j( M .ORG $BFD2 ;初始化跳转
8 O; K. T- m1 ~5 r3 a JSR $FFC0& `1 b" l; U* m6 ]6 x- j5 K- ^7 _" b
4 s, W8 d3 x I
$ C' H6 `- W* W. _+ g* l0 ?* N .ORG $FFC0 ;切页4 |! W3 V( H8 E' E
LDA #$06
$ `/ v; R4 e c) D0 ? STA $80008 U t( G$ i8 W; }* w+ k2 Q5 N
LDA #$0E
% [4 b# N+ I) h% J4 J9 N STA $8001
" w( e) m2 x3 ^9 @) s( r( [4 q JSR $8000
" y6 I0 Y7 ?2 |6 m! Z RTS , C! H' {3 Y- S6 Q, O) w4 g
7 g* F& L0 ^- N* U/ R, Z .ORG $8000 ;数据复制" O7 C9 ?$ g) d& V h6 V8 A4 \
LDA #$80
% C1 D3 L; L' W8 V# ~" z+ z STA $A001 ;启用SRAM& C' l+ x0 f/ ^/ D4 G: ~1 [
PHA
% M' p+ k. ^: s, F TXA. u% S8 f( L9 B: N) G8 `
PHA( A" b( S( }: b; r2 F
LDX #$00
S- Z1 m$ ?5 \) Y7 JDATACOPY: ;数据复制
; O* r. Z% S% i( s9 W5 ^ LDA $8100,X& y6 b1 \* r& l7 \/ s5 ?$ I0 Z5 E" I
STA $7200,X
7 q; s, x& W4 Z' u INX0 ?; U, j* j5 |+ c
CPX #$00/ R% h( t* V) R- z* p2 s2 K
BNE DATACOPY
* o+ K9 W& g7 g7 l PLA9 c% G3 V& O# {7 i# Y7 Y
TAX
* Z+ Q, a$ {2 ?8 p; k4 n1 V: D8 r PLA# p+ I( R1 D5 C, a% H
RTS
. Z1 H7 G+ i+ d5 K* E# G C 2 G9 G7 D' b" ^4 ]; ~+ T* y+ o
.ORG $CD9B ;跳转到转换的切页程序
, }- R1 u# O z P; |9 p STA $70
" O1 \" J J; R8 ~; e9 w8 [ JSR $7200
7 b# q1 ?; U, p. t4 a& |( i2 L RTS9 j: l4 l( z: r- C5 D! k
' s1 q* y# Z1 n6 u, M' @ .ORG $73005 p& g, r3 @2 f4 C
M1_TO_M4: ;切页程序
* {4 H! }2 O- B$ K CPX #$00
5 K7 _1 w+ U4 g# K$ P BEQ REG_SET
% a: r0 v8 i$ n2 r, X3 Y. Q7 M8 h# e CPX #$012 c/ }0 k- N! P' U+ d
BEQ PPU_BANK_0000
. Y6 c. G" [# R. |' {! H CPX #$02 F8 \( B/ K7 n' g9 c- D
BEQ PPU_BANK_1000
0 L o' c& a6 g* N1 a N& a9 H( V CPX #$03
4 [9 b/ B s, ^0 V$ e* L BEQ PRG_BANK! B, A" x5 o T' [
REG_SET:
/ v8 G, S& `! \( V- a STA $A000
# g" B3 l9 Q% g6 ?* l$ Y RTS G! M0 K0 L7 M3 I' }% z
.ORG $7320$ a* ~* N0 s# ^. c! z
PRG_BANK: ;PRG切页
( x! Z+ T& ]5 V" Y& { PHA
" C6 V# Q: \2 I( _0 p6 L LDA #$06
; Z7 b. f8 t& H STA $8000) K, N2 A& `- p7 c
PLA* u N' e+ V# a; g6 d7 `
ASL! O$ ~2 I- Z1 a" r% F9 O* `
STA $8001* U, L& h9 R& `! `; d; {( Y e0 f
ORA #$01
+ w9 B6 G. S$ I+ Y6 |9 J+ O PHA0 k. L- F% J, b: L! Z6 F
LDA #$07
" {& a: Y0 \) e9 M! a- } STA $8000
# i; }, d( ^* x8 C, u+ @ PLA
+ w8 C t) z4 [0 s* n. d STA $8001/ [( o- U1 J9 a* d; X2 }: L' i6 P
RTS! }4 L+ p6 {7 J H3 e8 x( n
.ORG $7340% T+ l4 P, D& D7 x( \
PPU_BANK_0000: ;精灵切页4 q" F9 ^9 N& e# _1 j: `
PHA; y3 Z0 i C, z6 ]( S
ASL' W* r" a& ?6 Y
ASL
& x3 x& f' E/ e5 o6 S8 L! M1 F4 Q8 O PHA, F/ L3 k8 c9 Q5 w% C
LDA #$00
! x3 h1 M- V& t( ^ STA $8000: H# I- K: @: p$ p
PLA# p' N' K4 ]& ~4 H8 U
STA $8001( v1 e% E, O: v" S+ M+ B" a3 o
ADC #$02
* e8 F- y0 x7 t4 d0 R! Z PHA1 c% U# W5 T7 l) e
LDA #$015 ~+ S- L( f! Y- S' N* |
STA $8000( c& }3 p# h( @5 f7 `5 N! o! a
PLA+ h7 k5 t5 U" N9 R$ H: d6 D
STA $8001
7 p. C# ^3 j4 Q2 b+ b' i+ N3 v PLA
; V1 d2 ~, w3 k5 d! b; L2 l% Q RTS8 Y! H v& \5 R+ m6 r2 l3 S
) t# q, R$ J8 z# V# i m9 B' p .ORG $7360
2 U. o* a$ {: z4 R9 N( _7 YPPU_BANK_1000: ;背景切页: O. d+ g- P/ X3 i6 o
PHA1 w2 M: V8 S- s, j0 e+ K
ASL
5 G1 f) }4 O1 O$ K/ a ASL7 I; k# N4 r7 d3 I. z5 {3 p- y
PHA
. e) d* G1 k8 |6 C. M9 t v0 P5 } LDA #$02
; w8 W O/ y9 j STA $8000, e/ `+ M7 y# ?0 P8 P2 a
PLA2 b% N! w3 C1 @' m. C2 i+ k
STA $8001+ y: d& h; t a8 |. U
ADC #$01$ c8 e+ D% Z& g4 J! q1 d
PHA$ _' B! N0 |% m, N
LDA #$033 |1 R- T+ X! h) s4 s3 D
STA $8000) |) n, W8 _$ F# g* l
PLA8 ^7 }, b" M& H' K
STA $8001
y! Z' ~0 k( [3 L( e9 R+ W% b! _ ADC #$01
7 ~5 ]3 s+ K0 S9 K( c7 R( e PHA1 L# I8 L$ J! h& x
LDA #$04
0 K+ }- V+ A, `# Z2 @ STA $8000
. h+ c: h K8 w$ n PLA
$ d6 ]+ h W5 Q+ v1 N5 j" a+ }7 K8 m) o STA $8001
( o, G1 l0 L) e8 Z8 _: v ADC #$019 N) F: B' @- s5 o! w9 O
PHA3 E z5 N0 q0 K! t) V1 i
LDA #$054 X: {! s& p% Y" @/ G7 G0 }" ~( H
STA $8000
1 T' J% f5 p( ?& Z8 c5 r PLA( E& R1 O, Z E0 E: Q1 J6 J3 J
STA $8001
. _: p. `% d8 j# ~ PLA w3 Q( B" `* S H+ J& q/ m
RTS
; ~7 Y4 E6 x0 q; C& ^0 y5 l$ [% }% ]. [1 {% c
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|