|
|
;[FC][最终任务mapper1切页程序]
Y N1 _! T4 X9 K .ORG $CD9B
E: _* Y% o2 SBANK_START:
% `+ R0 C, r+ f3 J$ r1 p STA $70 C0 y) D6 h5 w1 M' r& l: X
TXA" @) t5 Z- s2 X5 L# w, P/ o0 v5 N
ASL
8 }6 M5 g0 h+ c. T0 { TAX6 A' S6 H- `7 t) o: ^2 I0 s( ~
PORT_SET:
4 \, v- C' s4 }, g- i LDA BANK_DATA,X
o; s. k7 |9 Q4 r$ Q5 t STA $6E
/ U% e8 s8 m4 i2 Z( U0 @ LDA $CDB8,X
) I2 ~4 J, S* Y" d STA $6F# z6 L. H7 p( z+ q4 X" X
LDY #$00" K6 {8 U3 ^5 \% k
LDX #$05
1 i1 t1 ^& g3 t# l& W( ^) F" Y LDA $70
9 |! O' U) B, o! h+ h$ APORT_WRITE:7 [8 n5 k5 r% ^9 `
STA ($6E),Y
' v5 F& \) w. O8 d! {# H' A0 |* B LSR8 M/ p( ?4 b6 C. h
DEX2 `; a4 c4 U/ O7 L6 \* m- O
BNE PORT_WRITE
. f/ U( h6 y7 k. {% x& |7 d8 w RTS0 t0 U# ]1 I& L" f! W8 v' T
0 }% O/ A" z( c& o ) e# O$ s0 _# U( {4 |+ O
BANK_DATA:
( p& S5 ~ m) z" ` .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF( l9 G) X7 p" C6 x; _/ X$ p# z
; ~9 _& P. s B* Y* U b0 t
: q! |6 \/ C0 g) [0 _( Z( U- Y6 O6 k1 J;[FC][最终任务mapper1转mapper4切页程序]( r* Z( c, p5 M$ n$ S! y0 I
.ORG $BFD2 ;初始化跳转
( c7 t* ]$ g9 D4 ` JSR $FFC0$ w: |( H, c. T, U! i% \2 ]- o# O# C
4 }: i3 j0 b) ?% g( G
3 l7 E8 ^& Q+ _+ r, l
.ORG $FFC0 ;切页4 B5 u7 F9 Y- v; S: i
LDA #$064 _2 A- C8 @8 x* {: s6 T! p
STA $8000
7 A4 p$ u! P" p. X LDA #$0E" A8 Y2 l: b$ c. |6 _2 u7 A1 R
STA $8001 Z. S: i: R3 x! k- l; b. Q
JSR $8000
$ z( }) T( R) t1 V: o; J) g RTS
6 u% I# S7 i- Z) `( N ( M" m' G) S( q3 C1 ^
.ORG $8000 ;数据复制0 g8 M! G$ }& y. _6 H/ Y: ^. m
LDA #$80 L; b6 ^) T1 B8 F: O
STA $A001 ;启用SRAM
- }( M f1 p" U( m$ L- S PHA
% P G# s% a3 F7 A TXA) f. W A8 }" ~+ d3 v! h3 r
PHA+ P ?$ q- `5 h# t/ b( [& \
LDX #$004 Q# }6 p0 h0 j% ~3 q$ F: }- t
DATACOPY: ;数据复制& g) Y2 j; S$ u) x, J$ p
LDA $8100,X/ u# s( }" |* w5 G7 ?: d# O0 `" l
STA $7200,X X$ c1 O4 C/ K* C1 m8 C8 s# K0 }
INX
+ f) Q# I3 w, d" K+ f6 N. K" o CPX #$00
5 F9 v: e' m: b% R0 b$ u2 | BNE DATACOPY* r/ [" P5 ]) t9 w- ^' x# l+ N
PLA( J: |6 B8 D/ c- N. ]6 ^
TAX
* m/ \" v5 N( u. j! z* a PLA* [& g# J8 l, q1 W" H
RTS
1 Q$ T# C0 ]8 m% ^
3 F+ K( |* Z M$ T- ~ .ORG $CD9B ;跳转到转换的切页程序
" y" Y9 h* j. k. N2 \6 v% ?! v' G STA $70& F6 ?; X5 y# ~" Q ]* Z6 A
JSR $7200& ?" t+ X. n. `! z, U
RTS2 Q4 m5 ?" g& k+ f0 Q
0 T+ u7 P: P, l+ e' _$ | .ORG $73003 `5 N4 h$ \* I1 V, y- [( z4 T
M1_TO_M4: ;切页程序5 |, C& A% t) ~
CPX #$00
/ e& N \( V$ E! @' j: S BEQ REG_SET
2 _0 O7 L9 X( y4 O! b" c0 ?: U# J CPX #$019 I4 @ ]7 y! A9 e& Z4 e
BEQ PPU_BANK_0000 Y3 ^* E# h. M4 _9 ?
CPX #$02
& z$ ~( n. @, i& h BEQ PPU_BANK_10009 z4 m4 F: K/ m" P/ ]
CPX #$03
! v5 f7 Z5 a% v$ y+ Q BEQ PRG_BANK
$ F9 J0 x+ f3 S* |7 Y1 H; T0 `REG_SET:& Q( _& Q1 c" a ?4 p9 l* Z
STA $A000& H* c! _& z( t) {( ?8 \
RTS
8 w' M9 ]0 _/ [7 D- ^ .ORG $7320% X1 E( p9 _1 `. u0 P* b
PRG_BANK: ;PRG切页
& N9 J9 m' w) {2 ~ PHA, ]% W2 p8 d F0 w) ?* C
LDA #$06
. }9 a. G' }3 P4 N( z1 R% Z. Q STA $80005 c+ f8 L0 ~+ t. E% N, ~" p
PLA' \# i- [3 {$ z! X* ]% d* t
ASL
* o1 n! m0 q9 s+ r$ } STA $8001
# N& j( m0 g' U7 h3 i+ j ORA #$01. K2 `1 ^7 c/ Y) j
PHA
' g5 J+ F% Z$ g- U+ Q+ G3 N) R LDA #$07; h* N4 C' _" e4 A
STA $8000
1 f, |+ i9 j2 T% V8 q" Q PLA+ w, W9 ~; n( s& q/ H! p/ z9 C+ |( }
STA $8001
0 B c: }( Q% n F& g' T RTS$ U, @ P1 P6 u
.ORG $7340
& z' N8 H) Z+ Q( s# [& lPPU_BANK_0000: ;精灵切页0 a% M! j4 q% ]/ J
PHA: F8 V. {& v& ^7 l# @- P, y
ASL
# y- v* p. y3 h$ {3 X( s; ?6 ` ASL
3 n1 ^$ }1 X, P3 L% ?; t: D d [1 o PHA
$ p1 P; S0 z) s3 }* u0 @% P LDA #$00
% x2 m$ ]' l m* B8 |" p& A STA $8000
" ~5 H9 v" ]5 d' X% y. W PLA: c/ U X: p4 ~1 E
STA $8001
+ K4 Z1 d' X& `7 q# D ADC #$02
( m; p$ v3 S4 ?& t E6 W PHA
) {7 e1 X- L' X8 m5 k! j5 U LDA #$01
( ?7 q! w' z8 l* D( X/ t) j" [ STA $8000- o, u5 j1 L. D; s+ k
PLA
H2 E; H C: y STA $80016 ]3 y3 u3 ?4 ~, S0 `
PLA" M* q6 J+ O9 L7 y F1 M) D
RTS
& v. D7 `' P! E3 C
6 z, O" i5 b* }9 }4 V. s .ORG $7360
- Z, U5 c9 b& ~6 `8 x8 E- Q1 z5 R; uPPU_BANK_1000: ;背景切页+ w, W. ~4 w6 Z2 U! i6 J
PHA, X3 V8 z" u p' u
ASL
$ @5 t; |. d0 F3 s. d ASL
* \0 e' E7 Y7 A6 i3 I- W/ ] PHA4 o3 p1 h1 T' q: |; X, P
LDA #$020 Q! c( B, I$ ^2 h" F' \3 M
STA $8000" r# j% ~# o5 @4 }- d; I v
PLA, v( H% Q1 X6 k
STA $8001, t0 |6 _1 Q- f9 c; j* _* e$ d
ADC #$017 W$ ?9 ?" u+ l
PHA
- S- }5 d! g) G/ d: F7 [9 B LDA #$03& m3 |3 B8 [8 \ T- @) \
STA $8000; O' Y( A# q8 h" T& ? p& M
PLA
. C% C& f4 C# `$ I2 W STA $8001
+ c5 o9 Q" O" F2 k% G2 ~ ADC #$01- B$ V @2 z9 Y$ R- p$ D
PHA
9 t" p2 J0 Y& N LDA #$04
) p+ ^3 ~9 n5 b" ~% A- A STA $80005 h2 `, k% |9 Z7 }
PLA
8 B2 {, D: w1 t4 O/ G5 F* i STA $8001- E; S7 \1 W% z$ ~
ADC #$01) q2 [, Z# d5 c2 `" H
PHA+ N- ~ z2 \% d2 \5 N0 {
LDA #$05
0 u+ ]; p$ c+ B, h+ ^, j' K) R4 | STA $8000
% ?% |- b/ z$ P& d PLA
3 @8 I2 a, w# j" ]1 Y, V STA $80011 N+ z# N/ e: G" j5 p' Q
PLA+ ?7 W7 _# O4 \" ?, s/ `
RTS
* ?; T, {$ e6 s+ {9 n/ P
' P4 P: \! `- K/ C# R6 |# A |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|