|
|
;[FC][最终任务mapper1切页程序]
# W* X1 ]' z2 `1 n. M .ORG $CD9B
+ ]: v) _/ n3 Y/ |2 Q( [( D4 K: WBANK_START:
2 ~1 F' ?: h( j3 J# b M STA $70
% w" r* L; h, x9 m% j TXA, K5 U1 `4 G! {( @* D$ S
ASL% z% L$ B) ]2 W& m; E" n5 A
TAX
# f8 E6 D- U0 I( \/ L G2 w4 RPORT_SET:
+ K/ g1 O E% B LDA BANK_DATA,X( J+ o0 @( Z3 Z5 {
STA $6E
7 Z% e% }: y6 D4 ^' P; W LDA $CDB8,X' L. s9 j: K, y$ {5 c, b
STA $6F% Y0 {* I- J8 `8 w6 r0 A% Z: |
LDY #$00' K4 }; A0 }! y( f
LDX #$05
. k5 y/ P) ^# d) B LDA $70
/ v+ h: Y( v5 u4 z( ?PORT_WRITE:( j- `3 v+ V/ w: ^) c6 {
STA ($6E),Y1 @8 r# o [* M3 q
LSR
8 u) i1 h7 E# q! Q0 X. ? DEX
* e9 o2 ]: J/ ^% O% D/ V: D4 C; j BNE PORT_WRITE
# C, I& x8 [2 ~6 ^2 o RTS
$ [: k4 e1 m0 G" J
* K7 E; x( M3 H& s5 {- b
8 `4 U) [* o j( BBANK_DATA:
& Z: A9 R7 Y( Z .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
9 c V9 e$ p' h) l2 e% O U! I a4 T" L9 K7 S4 P% E4 T
c! ~, ~2 k- @9 }
;[FC][最终任务mapper1转mapper4切页程序]
$ E" x4 O* ]/ S4 s$ s- d$ K& ^6 h+ k0 ? .ORG $BFD2 ;初始化跳转5 S9 W9 {: v4 P( h2 O
JSR $FFC0
0 V+ \$ y u* w# ?3 i1 t; A4 t N5 D& v4 v2 } a2 u
2 F- P+ h8 ^4 C# l .ORG $FFC0 ;切页, n" }+ @% f& F) J B+ _: N0 l
LDA #$06' S6 a ]$ q, E" m) N9 }
STA $80005 b, `; d. I% ~% f* f% m
LDA #$0E
+ p3 T/ T5 o6 t4 i) b0 T4 o STA $8001) r' I* A5 M% x7 _$ a! C' a; R
JSR $80008 A* H: { M$ [ T8 [
RTS 0 f1 G& e" b# z$ g( j
6 y6 w" X8 }3 i/ y9 p4 X
.ORG $8000 ;数据复制
9 {8 k- B* H. ~/ ^) S9 |4 T LDA #$80
3 d7 Z8 q X, `7 @2 v& u4 K0 V STA $A001 ;启用SRAM7 J/ c, l+ d# s# f
PHA
7 b/ k3 S/ B1 d, z& H TXA
4 I! T# B4 s) K1 [0 k PHA
6 F7 v, }# g' ~ q' \' _ LDX #$00
( k6 [* |8 q( A9 P7 x' G& y* kDATACOPY: ;数据复制
5 o* _; a) H, T8 H LDA $8100,X
8 P. k; d ], W% ]% O" \ STA $7200,X
! N0 g3 z3 F) r$ F! r INX& [1 K% I7 n1 H( p% O& H
CPX #$004 A: t1 }6 X) _
BNE DATACOPY1 r$ B8 t" T6 a% U, K- M
PLA
# {6 p: X& ]! g7 U9 G# r. E% h TAX
& b/ x0 H9 D( X7 k% h- { PLA
: ^. V( G, Z6 L% v: s% q# b RTS# F3 A2 `* I8 o2 |& @- [
, B2 {4 Z1 N" a0 x .ORG $CD9B ;跳转到转换的切页程序
r! T6 u( b7 O) R( e4 ^% T STA $70
- W* g$ p# i1 L8 t0 I8 Z0 R m+ }0 E JSR $7200! W1 r1 w8 `4 K& {* `! Y
RTS
: y _1 a* G& A$ A) B $ a9 [: l, P; @2 K) y( t! ~1 N
.ORG $7300& v' G. f3 O* E& Z
M1_TO_M4: ;切页程序
6 z6 r8 e" G8 z$ I, d7 |9 {) D CPX #$00+ x0 n7 l! t7 E$ Y0 z1 }
BEQ REG_SET
; H4 i7 l; v1 e4 d CPX #$01* N L8 @; y- i( k0 R
BEQ PPU_BANK_0000- h' U+ z' o3 K
CPX #$02
1 p1 |, d6 i8 q7 G! S BEQ PPU_BANK_1000
8 ^; q1 X; a7 C g( O3 w CPX #$03% A6 O% [* k4 G7 y/ F) I) m
BEQ PRG_BANK7 f& y$ y. {6 f$ Q
REG_SET:
/ i& E% Q, r' c. O, P9 G STA $A0008 k$ Q0 l! D5 i z+ I, N
RTS
0 m2 r+ E3 [7 X/ `4 g* K1 Y7 X .ORG $7320
* ~' }) _7 x5 t: ?! C" b$ PPRG_BANK: ;PRG切页 R. z. l: D6 {! I2 ^; [& S
PHA, ?! Q- ^, ~2 J) d
LDA #$06* g% N4 ~/ X- {- N$ O% j
STA $8000
1 W! |3 m6 y3 n! f* U+ m PLA
, Y- n6 _5 q3 L7 [ ASL
8 U! D( e5 |& a) W7 X, r STA $80010 v3 E8 I! W) E: g/ K8 J
ORA #$01: n% f/ m+ W0 k, u- r
PHA
3 g% U) V! H1 Q1 u4 @' R LDA #$07
& z# d0 L9 ` J9 R: r/ S STA $8000" m% h+ G8 U5 w" J
PLA$ ^0 `* e$ K5 R3 ]
STA $8001
+ i6 N, B1 V0 W RTS
+ {6 W* ~& I. _ .ORG $7340! s1 {* @) h9 W3 Q
PPU_BANK_0000: ;精灵切页4 a- R. R3 U8 p9 ?% r
PHA
* F+ }! S* A# {& [ ASL: O2 g. S$ f5 C( }- {) {! Z
ASL C* A8 P0 r' u( z E
PHA% F- ~/ f' ]9 r. y. I. `2 b
LDA #$00
* g4 `% ~0 ^& J+ P3 u STA $80004 `. m" f. ?" n X& ?' B2 ~5 X9 g
PLA- [/ A; @0 L1 b
STA $8001! L" x6 N+ y* M6 D: N' }
ADC #$02
* T7 {2 h- w: G, f PHA
1 u: n) r+ s/ p% k LDA #$013 A2 U, f# R9 c: G! {9 T5 `/ j9 [; S
STA $8000
, u6 D7 v6 B, \2 H- {; ] PLA {1 s8 c% ~$ o! M+ O
STA $8001
* ^5 _9 g7 }7 j# U3 Z1 P5 C PLA
: c4 H# W# G: |, V. G8 }0 ? RTS+ f# R* `. O7 C) Q& e. E, W5 n
1 ~7 u( E; K* j" x+ y
.ORG $7360 ]% _ T6 h' I: `" R+ o
PPU_BANK_1000: ;背景切页 p& d0 h! x; t8 g
PHA
& q7 a6 B8 A; e, c7 X ASL- j4 S; j1 P2 X. A; e+ S" c
ASL( m' y x- ^$ J/ k" f
PHA
$ g9 R4 [9 t" B9 \ LDA #$02: D: x4 d9 d, L( O+ s7 M
STA $80008 E9 E/ T1 d+ `# @
PLA# G. j: x, x+ k$ r0 ^# i
STA $8001
2 O/ q- ^/ r: H3 C. D ADC #$01
# ~0 W( t' l6 ^+ N# l$ O9 f PHA) H$ i6 {4 ]- C/ E* M$ f
LDA #$03' x. G- ~( H4 E
STA $8000
/ {/ G N- B3 R% P( s& Y& A" m PLA1 N" `/ t5 {. N- m
STA $8001! M$ U3 _, J) n( @) ?% X
ADC #$01
9 {6 O1 D9 z+ W8 c- z# y PHA
: r# Q- S* D$ C6 y% L LDA #$04
2 k, j+ H* h# J) R; x! q# H3 p STA $8000. t5 |- A8 g7 y7 t; X8 G' L
PLA) R {! h4 l2 o/ F' D2 e
STA $8001; P1 S( M9 v) p8 g/ M6 p
ADC #$01
2 K U* E2 K ^' |: ]( _: V5 R& w$ P PHA9 i1 e8 u* u* O$ @0 l' x+ p2 W% d1 j1 r
LDA #$05
( s3 M! s* T z) }+ I% t STA $8000
( Y# G& b5 p2 v1 N3 ~- _ PLA/ e- u+ M' ?1 _; e; V( T& p
STA $8001
1 L( g/ G+ m# d" I PLA/ g0 J0 j! i3 w) t" |6 t
RTS4 N$ H. O* y" N8 J9 O+ [ O
( r* s/ L+ `. E8 _3 H* v4 J- A1 u
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|