|
|
;[FC][最终任务mapper1切页程序]9 G4 e9 y7 o% Y1 O; f
.ORG $CD9B# k/ z0 n+ A1 r% d
BANK_START:
1 M) X0 J( s$ d( ] STA $70
( R' |6 N; z8 b. g9 r! t& E TXA, r+ m2 e$ i) u* o$ P
ASL3 j, S, a9 |/ t# ]
TAX/ j9 D% V0 t j* a) g" h9 ~ d$ G
PORT_SET:
* {% S% b- o4 R( H' i1 ]1 ^ LDA BANK_DATA,X
* ?" F2 m. {' I2 [4 c6 z. Q7 B. q' u STA $6E* Y+ I, K f/ L6 |" x, w/ ?
LDA $CDB8,X
+ L% i) h0 U; j A* ? STA $6F
- g! w) [- j4 {$ ]5 l LDY #$00( H& A) z& d1 d% @
LDX #$05
j2 b% c! d; u) e( j' E$ a LDA $70
7 c7 N; j4 U7 OPORT_WRITE:% B# s. Q& ~! \$ p
STA ($6E),Y
" [6 a. y. ^7 J/ n$ x" o6 B. P* F; `5 m LSR
; W0 N7 s$ [+ [0 o1 ~ DEX
1 E" r4 L) K/ N3 T4 T BNE PORT_WRITE
* a' i3 ~6 W/ L RTS% c% {+ T* g, w3 `- ^. {# \! p
6 \% K3 e- s# L% _; w
0 i' p! q* y8 F! n# h( S3 yBANK_DATA:
4 @+ a* S8 c4 N' l1 F .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
. I" U$ ]: \, H
9 V$ k9 Z) g1 F% S
" M9 i, x# m' [( z' X5 ^;[FC][最终任务mapper1转mapper4切页程序]5 o- ?+ Q' q# z
.ORG $BFD2 ;初始化跳转
" b& n0 K9 C5 j3 s" \: ~7 l, |* j JSR $FFC0
# y$ ?. j, B9 X; T% | i% ^3 L. h" ]
! J V, E0 W1 K5 m2 O
.ORG $FFC0 ;切页8 e. c. Z5 r) `( ~8 d) \
LDA #$06, X' j8 _' x N" l
STA $8000) h" L" n6 k! r, K; Y
LDA #$0E: x2 f `( m6 K7 a! E; c
STA $8001
: t p3 o' ~5 v% X6 j JSR $8000/ c, J, T% D/ W4 n- P
RTS 0 R3 c: X5 @. g0 u, b
0 a5 u1 n% G s1 z: z% s( K* t, {$ s
.ORG $8000 ;数据复制
& L, f) R; M2 n5 P G9 ^$ @4 O2 h LDA #$80
7 J, e/ q' p: W/ E A, H g STA $A001 ;启用SRAM) p9 V. P6 C1 W) b' u6 w, M
PHA
% w# R; Y/ r* _# T9 w+ R- U* x TXA. s9 N9 I: Z9 F
PHA8 S! k. {, K& Y* L# I( X
LDX #$00: d f3 I: g& i+ D
DATACOPY: ;数据复制
1 S* M% ~. v+ b9 E, V. m LDA $8100,X
+ f" ?3 f& {$ P) W# ]1 I STA $7200,X
( m) {1 Y- ^4 O4 F& i7 y& v% T INX1 r- T. g6 P' S8 z& R
CPX #$00. E( [! T( M6 s% v" u
BNE DATACOPY
$ X3 T6 x6 V4 I+ s PLA% t) k- _2 n& n. ^& g. s0 Z8 G8 M5 k
TAX
6 T* k6 C+ H4 m) f+ w, }9 c PLA
0 M. ^# E( l8 d0 Z! z RTS1 N8 t8 q/ a6 p% l8 H8 u C8 n
% l# S9 o8 e Y m# l
.ORG $CD9B ;跳转到转换的切页程序
5 n5 s# _ Z0 Q( u' T/ g2 l STA $70
; A. H- P& q$ Q0 V* r( _4 J7 A. } JSR $7200& k, e% A- R# J6 R
RTS
* }6 F, B1 q7 K1 } g8 w
- r( g' x; e7 d; Y( Y* q .ORG $7300
$ u( l% H) c; z% v) u% uM1_TO_M4: ;切页程序) o& f$ |6 B8 t1 n- `
CPX #$00; Z q+ ?5 O+ } D
BEQ REG_SET
8 j5 t- I, n. G* p& n, p7 y CPX #$01
' p" Y! s* s) p' Z* h: N, R BEQ PPU_BANK_0000
: a" ^5 v6 @2 @+ | CPX #$02/ n7 |$ N3 } Y7 s: d
BEQ PPU_BANK_10001 P; @/ h. {$ I; }
CPX #$03
. _* j5 K/ f5 P; V' z8 {! g$ _- c BEQ PRG_BANK, D# L. `) k$ S. V2 g2 i" H; e
REG_SET:
8 p) F3 ?# j* r* H- L STA $A000
" b0 L/ H5 `, Y# W& g/ O RTS
1 n% ]; R" ?- A .ORG $7320
5 v5 F& U V2 _! t5 XPRG_BANK: ;PRG切页" w% ? S _) Z% c) ?0 g% B
PHA
F6 j; l+ m8 g, T+ n8 C4 T LDA #$06# t6 Q( C' Z/ e
STA $8000
6 b1 a, W9 p: Q' k5 u& X) i PLA3 O3 A( x3 M, M
ASL
* C$ n9 F; x' t# J4 H% }( l STA $8001& E' m( g/ d- O# F- o0 _
ORA #$01- \. b( \) N9 k8 Y/ p! u q7 y
PHA
4 r W1 K. Q% ]# |: X3 q LDA #$07; u& w* M5 p* t l# R& b3 C+ p
STA $8000
( `2 [2 J9 a, B' q& `5 v& c7 [ PLA
$ m& S3 u) v% K- D5 S STA $8001
5 W. b9 n1 T# W% T9 m5 R RTS F% ~# {3 T0 o* I% Q
.ORG $7340& c6 f7 Z' F- ? g/ f
PPU_BANK_0000: ;精灵切页; v% W# L6 ~, y% [" i4 T a! C
PHA
& x2 w9 O0 H, h6 b4 ?1 ~' |1 ] ASL
4 g% t* |1 U. Y4 u, ^; y) y" e ASL1 ?6 S( g6 U5 _9 V
PHA
, Q5 a8 h% I% X, |! L! K+ q LDA #$00
, C8 X( _5 R# W3 }8 `3 T STA $8000
8 }9 U2 b& D8 M! q PLA
0 K x4 D8 j4 F- l2 t" I STA $80018 A* X0 t9 ?/ \
ADC #$02- S+ s, D3 r/ K6 Y! y& w3 H
PHA
% N; r. U/ d) m' M9 l" `& y! q3 _4 X LDA #$01
* ~' w$ N3 H+ u STA $80005 c, P$ P+ Q5 ?* f4 k# a+ }
PLA
. @, l1 p: n# A; x; _ STA $8001& [' p2 m1 i2 Y% E% ~. t+ {
PLA1 M2 z6 [4 l U# t6 a1 Y
RTS
- ^/ O/ ~* K: U2 ?, l 9 G' I* N5 y& n; w8 v1 P c: W
.ORG $7360
; I6 Y2 |" c; t2 J4 [PPU_BANK_1000: ;背景切页, _. z; u% ~% V& D- c- P: B
PHA. C1 F5 c0 y1 U, d+ T% ?; A
ASL
4 g3 n9 X2 [+ P+ N2 G, Z ASL# m4 u+ b, `. G/ }3 F/ [
PHA
8 \" C) n" Q8 F+ L# e, \8 g+ s LDA #$02
9 b* u) g+ q; U8 M$ A STA $80002 Z6 c7 b/ r! `- B1 N( n) B
PLA( y. F' V8 l6 d4 g) O& K
STA $8001
$ ~, Q! a- H; D2 F, E( } ADC #$01
# y6 s8 v4 P. R4 P! n# V6 d) P PHA
" y8 i- }+ Y4 O" ?" l) A% j LDA #$03$ K8 s7 k6 {+ @. t% d
STA $8000
5 ~$ S* E$ {) m. P5 [1 Y9 I PLA
* z" t2 ~7 V( C" H STA $8001
, ~3 U; Z" l, D ADC #$01
( Z q6 Y% ]$ B K9 Q* k9 c; | w PHA5 Y2 y+ \( K4 O: z j) O9 n
LDA #$045 e+ [' C: {" [. D* N
STA $8000- S) k& M: P# w7 U4 Q$ K: `
PLA
) w3 K' \- v) F' v" E STA $80013 x2 ^' N& \, t: O* Z) e
ADC #$01
- L5 I* G& |0 o9 y& j PHA
, \' k! P' C/ W& B: j/ C LDA #$05
) {1 a, G: Q5 P! M# { STA $8000
6 J0 O& b9 o0 b8 U7 Z, Z" r3 S* \1 l8 M PLA$ J6 V, [' C* T( o: E$ N/ S3 h7 P
STA $8001
9 y- K" i, P, H5 K U+ f8 T/ l PLA
$ L+ T) v" p% M: y) _: T) Z r5 z RTS+ i/ F- F& S3 n5 P8 @% c
% Y3 u! J* w% }
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|