|
|
;[FC][最终任务mapper1切页程序]
. p/ w! Y9 X3 E .ORG $CD9B7 f. F; T, U; C
BANK_START:
2 k; ^6 Z( g5 ^4 [ STA $70
* Z8 R1 `! u/ y- [# H0 g TXA X" ]7 p5 z; r- ^5 W# _
ASL
/ c+ b' n" v' W3 F7 J, p TAX
# }) f ?0 R. w7 |! p* E p$ WPORT_SET:3 P/ B) n9 I9 K$ V$ E! X
LDA BANK_DATA,X6 o- p% D% l( i
STA $6E+ N( J! B H, q. t; b
LDA $CDB8,X
8 `" D0 @8 |* f- g STA $6F* E1 M. O- T7 u+ E: [3 ^
LDY #$00
5 Z1 Q" R/ ~, ]2 E LDX #$05* e. [, U/ B+ F/ a/ O7 \( q
LDA $70
' A1 S) X% {7 d. e6 tPORT_WRITE:9 U* Q. q5 H4 C
STA ($6E),Y
n5 w& C2 ]) F6 y, P$ T$ {+ X# `& l LSR7 ~8 @3 o& K. L' z5 c- |
DEX
3 S7 K% x2 O! L2 E+ A BNE PORT_WRITE6 H4 V( r, z+ L3 L
RTS9 C$ P5 C9 h0 |" w' u
, q% I) ? p1 N; r' N6 o+ u+ Z 4 L4 u* m4 C6 A! ?* M
BANK_DATA:
* F) n- S4 T& H# p' V .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF" V2 z% m+ k! a% B
1 \. W2 S% d2 Q1 F
- L6 }6 {3 O: y# G$ i
;[FC][最终任务mapper1转mapper4切页程序]9 ~4 r9 ?4 d, B) P% T
.ORG $BFD2 ;初始化跳转
7 v3 B+ F9 D8 s ]3 A9 | JSR $FFC0
& g, s0 H' ?! C" [: Z
! d. e9 q+ N4 X* e* Y. Y" E6 {" M" V8 n- C7 ?
.ORG $FFC0 ;切页
: N- Z6 S5 J [- b LDA #$06
2 n: X1 ]& @) R) A STA $80000 y4 J+ J8 U& J- N) z3 u
LDA #$0E
5 L9 u6 o8 Y+ Z) r* ]# v0 I7 F STA $8001
% N# ^# s' g, X# w/ p% B% J5 {3 L JSR $8000
, u) W y5 `/ V4 z0 A RTS 4 L- o$ [$ s' C4 q* [: i
3 S$ \1 A5 H: z* a7 k# ?" {3 e9 I .ORG $8000 ;数据复制" f, Q7 {3 P+ E8 I8 i! X) {
LDA #$80
/ Q9 s8 P# e* B STA $A001 ;启用SRAM
) k- p3 p! E* W7 ? k+ ]: V PHA
, K9 B5 y2 \# i) b3 l9 T9 ? TXA5 z1 ~* b( V; e# W
PHA
' L" \7 _' e/ E0 `3 j LDX #$00
1 Z; {9 Y. b8 m* a8 _$ CDATACOPY: ;数据复制
- ?7 X6 Q. x+ b6 r0 x3 X LDA $8100,X
8 g$ w2 B5 L# a8 ^1 T4 V STA $7200,X$ M, N& B/ o9 \4 C2 @3 k
INX
4 w- j ]( ]/ B; D CPX #$00
! h3 U+ b8 }2 w- t, F5 p" S9 A1 R BNE DATACOPY/ T* y5 k% k4 d$ u9 j1 b3 h# }, |5 k2 e
PLA/ [+ u' y+ z" x+ h/ U
TAX
7 z t. O6 R- k `& O PLA4 G4 X1 h$ }2 r- Z$ A
RTS5 K; r ^' T+ |
8 w7 I5 A3 ?' d6 m1 U- a) u .ORG $CD9B ;跳转到转换的切页程序. }3 u$ ]6 ~5 W- x+ N
STA $70" A3 b: q5 W- m1 {$ |: P7 j% H( |: G
JSR $7200
, ~/ p$ o5 @1 j' x RTS e W! x5 R7 q( i$ M# I% S9 K
$ ]- N, h" Y7 E
.ORG $7300
9 z6 C- K' I8 F/ d5 vM1_TO_M4: ;切页程序
0 W2 v( w5 j& j Y- ] L, g# R& v CPX #$00" S: f' w3 S0 h
BEQ REG_SET7 Y% D1 G+ `. L" g1 ?6 M+ G7 y
CPX #$01, D# U! d5 j, }; E
BEQ PPU_BANK_0000) r( A3 ` r- w4 G; h# O5 K2 }: @
CPX #$02* g% j/ \. Y1 {4 K5 W( w& E
BEQ PPU_BANK_10000 u0 @! {0 M# c1 @
CPX #$031 A% x" Y( L5 [, P; P- I0 `* }
BEQ PRG_BANK4 d& J. v1 S) i+ {/ N& Z
REG_SET:. o9 `+ ~8 S& U( R- {% C" W
STA $A000
0 |# H! b" d; v- v RTS2 M9 X8 O: \2 u5 T. A9 |
.ORG $7320
8 D0 @( l; F( y0 E( G# q$ q, \PRG_BANK: ;PRG切页8 m. a0 F6 V" B3 Q# S9 i
PHA
( D& ^( V! a3 O& b& ?9 m LDA #$068 |6 H. W0 F" }$ a% K
STA $80009 K6 L; w Q. M
PLA& m/ `0 J5 x0 T- B$ p% Z6 z
ASL
: D) F0 ?4 h0 G STA $8001) f8 u j: U5 w' A! _! U
ORA #$01
! a3 K3 C* S+ a4 F* i+ k PHA1 n' S8 q8 ?8 Z Y5 @( M
LDA #$07
7 w5 i! V# v/ x& D" T. u STA $80002 M P; J' Y: m% d6 Z. O
PLA
, y0 M6 ~+ L$ z1 Z STA $8001
% ^9 w2 z2 T1 i! r1 J RTS; }8 y# }/ V8 K1 B3 F' u) C1 A
.ORG $7340( V) j' H( B/ T9 \ `7 m% h2 E
PPU_BANK_0000: ;精灵切页
9 C5 j* T) t4 Y; H PHA
3 t6 e9 U" a' Q ASL
& ~ I& ^7 W+ b( c9 g Z ASL9 p; Z. R) M2 l: P% P5 S' Y+ d/ w
PHA
5 S/ W- s/ v \+ ^: a/ U LDA #$00
8 O* ^/ S1 P3 [$ K8 i STA $8000
. a, f1 ~# u F% f PLA' M( e* f7 \4 V$ Y4 k) j
STA $8001% c; H a- G# y3 S3 ^& E
ADC #$02+ q: a9 M* g% A" ~
PHA; f3 }2 l: `: N! h; b
LDA #$01/ \1 ?2 Y: e. w; C* a3 W0 ?) L& Z* U! k
STA $8000( ^* A1 y$ e0 d
PLA
0 P q8 c+ W6 _! S: q+ | STA $8001
+ [7 }7 y( S | PLA+ \+ {0 j% V, J9 c* d" l8 ~: X
RTS! }) B z1 X/ `: }7 U& D% s
* b! O6 j, w; i .ORG $7360
: g9 V6 D% g* G3 ~PPU_BANK_1000: ;背景切页
; ?$ r8 m* g# ^. E5 G$ W$ S PHA. D8 r. x! b. R3 Z& T/ d: ^& \
ASL$ O3 d. h# `3 F% v! N
ASL
1 B5 z# l7 K8 {" h0 \( h. F y PHA
6 O7 j# B3 l- E2 h LDA #$02
& _- n8 E0 n% n) S o* l STA $8000+ k5 Q8 B& v, b; u0 F
PLA
- g" s% H0 i) f; N9 g STA $8001
( g) D. e5 p w4 E: y ADC #$01: s+ k. @5 {6 J" @6 q2 R+ e
PHA
. r2 C% E; L6 Q$ ]+ b LDA #$03
. U9 _; I6 B( b+ T: S/ V1 n8 v STA $8000
# Y. ^1 {' K" n+ |+ d) X! U6 V PLA3 R' J$ ~9 s: E! G z) c, q
STA $8001 `# b$ E4 G# d5 B
ADC #$01
+ v0 I, [; P3 w; v PHA
, d& _' I. d: j7 b- h; e; b LDA #$04
/ R" q9 M9 l+ C+ ?! U {& N STA $8000
8 Q1 W2 h! V6 \ PLA
' q3 M: H% A1 M& B STA $8001
# f& ~8 a' T9 I' `4 ]- F ADC #$01
1 I1 ^. T8 B8 ^( V PHA5 `" C6 o2 o: Y: F! ^- |
LDA #$05
! d+ u8 f, L5 ^8 A# I6 v* O' d STA $8000
6 Y- x# B* W" M1 l; o PLA
2 S3 [$ E) O2 B, l0 w STA $8001
: p$ ?- E# i) d PLA
# ?. P* g$ O4 b0 a RTS
/ d1 z: ?, c) I
+ `6 b4 _" Z% ~- G( S6 @3 Y |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|