|
|
;[FC][最终任务mapper1切页程序]: f B. q* C) v6 n* X9 T1 t9 k
.ORG $CD9B u6 }8 ~0 K6 T+ K. N% r
BANK_START:
/ g2 f$ ]2 f+ z9 V z STA $70( L$ w+ ?$ Z$ f; s( E$ T: Q. t
TXA5 x, F$ t3 l2 G9 \7 _: a& C% G0 i
ASL' e2 o$ v m$ n
TAX
7 c1 ?" o( C0 f; D: EPORT_SET:3 L& ?2 X: \3 o9 K8 E
LDA BANK_DATA,X
# Y- o6 k/ W& D% M3 G/ F STA $6E
. _3 j2 c- [# t) W LDA $CDB8,X7 ^/ h3 k5 Z2 g" z( A, T" n
STA $6F. m) A. h! [1 k" f
LDY #$007 C* Y( P: n, D
LDX #$05
4 l ]; h1 D: G% i& j$ e LDA $70
4 ^+ O- a1 y) m7 d- i5 b$ EPORT_WRITE: t- q4 U4 Y- f1 Q4 v. }1 i
STA ($6E),Y* \( U" P! W8 _ @1 c
LSR9 G4 P5 n5 t+ e7 H
DEX
7 C/ {+ A. I% v4 d BNE PORT_WRITE
O9 R: `/ l) Z- j RTS
( O9 w0 x. T& a2 {
7 C% {6 E2 P: r2 t( I ( ^1 H; b. m/ |4 p5 T. `/ R3 H7 T
BANK_DATA:
J, e0 U7 R. @& J, z# Z d9 { .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
4 P4 G) m0 x! p0 a V/ e: K : n0 K. J9 I6 X. N+ E2 y g4 @. K
. B4 O7 S5 U% M: k- ^
;[FC][最终任务mapper1转mapper4切页程序]
0 F& g4 k& N0 Y) a2 I .ORG $BFD2 ;初始化跳转
5 m/ M# o& O& K' ^4 N8 g7 r& ` JSR $FFC0" `; V q3 p Q: | t
5 O/ v( ?0 G- Y/ S% R, r A8 i4 k) }$ M8 ~$ H3 ?
.ORG $FFC0 ;切页, ]1 f% v, m+ X7 A
LDA #$06
; K: u3 r& g$ }- g; j% T STA $80007 `/ P3 o5 A1 W; `5 I
LDA #$0E) D) j9 _. {( U
STA $8001
! I6 ]1 z4 d: I JSR $8000
3 m% T1 H8 Q$ j6 [6 Z: A: W+ D RTS
+ I0 w/ H+ f7 ]7 r* G2 K1 S5 V
: R: v! W. k5 | .ORG $8000 ;数据复制6 e$ r6 I/ F- C: b2 y/ i
LDA #$80
" V1 o, X s1 j STA $A001 ;启用SRAM
9 P' I0 p3 C1 r" h PHA* V7 M& q v, Z1 k: [( _
TXA
: g7 F* O& J$ N PHA
: W' [0 o. _ ~9 a1 O0 ] LDX #$00
4 F+ h& P; {9 p) i' A2 l6 HDATACOPY: ;数据复制
5 X' u% @* K. }# a LDA $8100,X
0 q: n; c7 ~4 k+ W# b0 i) I7 O STA $7200,X% W8 i. M* B8 v" ]6 d
INX
. y( _( p0 @. d CPX #$00+ x, k' |# u8 @
BNE DATACOPY3 H6 W# x. G5 y
PLA
' o/ d5 B5 m8 Z, p. v TAX
2 V7 H- |* x* d% e, ~' | PLA
5 _9 i" q* i/ p: C' U8 v8 w8 e RTS
4 d# t% P4 N" s. Y/ g. N( t ?2 v / r$ @, J c9 C# G0 d) [
.ORG $CD9B ;跳转到转换的切页程序
. [. F& @3 r4 J. Y! u$ d STA $70. `8 M8 r, V/ _
JSR $7200
/ P$ {6 c+ ~* G% j RTS1 @. M# e: I: B) }) E k
$ S+ Q9 H/ J1 [2 [! B' T' v
.ORG $7300) O* U, O$ Q6 t6 g+ b# g
M1_TO_M4: ;切页程序8 F U1 z9 g6 b- [" ?/ p( F
CPX #$000 `- Y* U% {- T0 [% z6 u
BEQ REG_SET/ `! E/ M7 V! H3 F5 r
CPX #$01
7 t3 S7 ^" U7 M' d2 r BEQ PPU_BANK_0000
) t* _, A5 B: L1 P CPX #$02
# w/ U9 g+ c2 \! R: f$ J/ L0 _ BEQ PPU_BANK_1000- D. H7 L- N+ ^7 f4 z+ n
CPX #$03( } W/ S, K( X' o3 S {
BEQ PRG_BANK
' p8 M7 H/ H7 P- s A2 zREG_SET:
) j( G) T5 o4 ^* {! e STA $A000
! g4 p. b4 u% T- i: d Q RTS
- x3 @1 k$ h q. ]. | .ORG $73200 f" z7 u) G" {, V
PRG_BANK: ;PRG切页
( \4 x% E8 q5 R5 t. B! q; O PHA$ \) N) u: w! ?
LDA #$06
1 h7 \" h! @1 ` STA $8000
$ Z+ V/ |$ K, e7 Z0 p9 g1 e3 Y PLA; @* _/ G* f0 f+ w+ T; S, z' s
ASL
7 k7 c. B2 Y; U/ [, g* T STA $8001
8 v3 i! ]) m5 U# r ORA #$01& D& |) h6 t$ L" J% a& |( r
PHA
7 N$ ~, ~) F, S2 Y+ x LDA #$07
& u# I( }& W. O I9 m0 o: r# x STA $8000
, C, a& G& B: r: u' T, D PLA
! j1 Z( g6 t4 l STA $8001$ ~' t4 T t9 t; a# b7 X/ r0 I, x7 D1 m
RTS' k; N+ [5 ^+ E7 s
.ORG $73407 \/ G" Q9 M! g/ F# i( x( I- x5 M3 C5 K
PPU_BANK_0000: ;精灵切页
& L+ N9 i. }, T+ ^4 G7 F1 C PHA7 k6 z$ W( ^4 ^8 B, u9 I
ASL7 D6 Q8 S& `% w$ G, d& ?
ASL
9 i) H5 T$ n) W! v PHA" V3 B2 b. f8 g3 g* x9 l2 R: D
LDA #$00
1 s; U4 k' m8 b6 M0 U STA $8000
. l1 r! p' d1 { b. r! w PLA3 H7 z: S' Y- J5 J3 r0 A
STA $8001
7 h, h4 n+ C% G- t9 { ADC #$02 r2 f. l- a1 z5 K: c5 T
PHA
# m8 o% p4 W$ D LDA #$013 c; ]+ C; Q8 Z/ B3 |/ T+ T
STA $8000# F# K- r8 s7 @7 ]
PLA
+ l, X- Z2 J: }2 B# ~: D3 Y1 w: ? STA $8001: [* K7 w: I o2 l0 p8 D0 g0 `
PLA
. `5 U4 l4 Q4 ^( t- O6 B7 }! P. W RTS6 s: Y: U; V* [% x7 A# [; v2 U" w0 c
' g* p9 z4 m( ]5 U .ORG $7360
2 A5 h! X8 X1 M* hPPU_BANK_1000: ;背景切页
. D) B" N3 O1 J! G* u PHA
9 D$ V, \) [( M- T ASL
2 J+ K4 D5 p$ q& W ASL! `2 a3 ?( i2 R; `1 a& B
PHA
* [- M+ M+ ^$ L; G/ O LDA #$02; U8 q$ M7 M; ~& D1 I
STA $8000
% o9 Y2 Y6 F g# \ PLA- t: w+ U" L! [* N* T4 _
STA $8001+ h3 s q& |' v, k+ P+ m: W
ADC #$01
- Q2 ~& x. O; z# \ PHA/ B1 {% }: E$ f
LDA #$039 ^' U- x+ v+ A3 [# s+ M
STA $8000
8 F7 ]+ b' k( I- J3 A' X* V0 | PLA" n" y# z, }4 S
STA $8001) r9 ]+ T/ {% V1 v! M A
ADC #$015 i0 z: i) D; [2 P \7 f
PHA
$ O. D: Y# D8 x$ U3 K LDA #$043 ^- d7 Q; Y& s* O1 G
STA $8000: [0 @9 B Y1 ]
PLA' E/ K7 d! P% K q& H- |+ P3 `' e
STA $80015 V/ K- p; z% z+ t4 T
ADC #$01
% d8 m) p7 r# e) n# k PHA
/ |& P2 q" Z7 I i, V LDA #$05( {. q; |& M; k. Z+ L8 B
STA $8000% O" l5 v2 D1 q. V) G- I
PLA% a: r2 C2 n# k
STA $8001
5 n5 z: N- l2 ]( w: t6 V$ J PLA/ E/ ^$ r+ Z% A9 M: {: Z5 L
RTS( f1 W& ?" f$ o$ M) L
% T/ _( k! n- `9 @ |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|