|
;[FC][最终任务mapper1切页程序]
" [0 E" i, V6 p- W .ORG $CD9B5 `: @8 N' P6 M$ B; c: z5 ?6 t. Q2 Z
BANK_START:* R/ {) J% r# x! Z; H
STA $70
* {; _: d8 D: N TXA
, M% Y. P: P" s$ |4 @$ Y ASL3 a3 b7 @9 ~5 y+ ?
TAX3 R2 e) h+ O' `! f& ~
PORT_SET:
& _: \7 {1 f6 j( M9 @ LDA BANK_DATA,X
S3 w w9 z4 C$ M, C; H+ h, ?% o STA $6E
$ J9 l7 c) ]8 ?7 Y LDA $CDB8,X
! f9 j' S& [3 j2 j5 y; L; p2 l STA $6F, i4 M/ S+ B( M4 T" k* s* t" ]+ C
LDY #$00" T# K# u4 \( K: a5 F' z( j4 M1 h
LDX #$05
( p& D3 Y: N3 f: U8 b- L9 }; i LDA $70
! j) h3 ^6 r" h! h# `PORT_WRITE:$ S- G' A9 x9 g% _
STA ($6E),Y
1 _. M* S& q# s+ n5 l2 R LSR
9 j3 M7 K8 q6 q7 ^9 Y DEX
% N+ ?" ~8 H, ^( h0 i% ? BNE PORT_WRITE) j! k: h3 X' @/ Y
RTS- d# a& j3 g9 S! R+ G+ [
7 z' f3 w( X" n2 z, Q7 Q
" Q0 t! g4 d& X- I4 b) L
BANK_DATA:: b4 Z/ h$ w( X$ |. A) m6 o
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF" g2 d7 _4 I' D' k( {* ]8 {# B( E: `
7 G0 ^3 y' L9 q& H. S1 L % o. g1 s- j z% U
;[FC][最终任务mapper1转mapper4切页程序]( b. q2 }8 Z( l; ]) @/ ?. S
.ORG $BFD2 ;初始化跳转
4 h a) Q8 v# ` JSR $FFC0( V7 j2 p. F; ]3 j
5 O3 p: E& T. K$ I- l2 v
* y0 B, z/ j, r6 L1 o7 l
.ORG $FFC0 ;切页- J% k2 c0 K, X
LDA #$06
! i; W$ ]& X' h STA $80004 Z0 b5 X3 k) I! T) F/ Y( j
LDA #$0E. D! f/ [. ^$ s) Y' v, F
STA $8001& q6 g* W/ x* N
JSR $80004 O2 Z% T. q' I# C6 R/ U
RTS
2 D6 P9 E' l1 `8 |! y" A. W, `" U; q # U: j' g; E! Z
.ORG $8000 ;数据复制6 m! Z. e9 `& T% g3 H# p
LDA #$80: A# l' ^5 k- J9 x# [! }/ `
STA $A001 ;启用SRAM
% x% Q# u* E: E/ \ PHA
5 K: x' g4 K. }+ b& Q# o# N+ p. s TXA
+ [; H1 P! I1 G PHA
$ O, `9 f+ ?( c1 E# d L+ v LDX #$00
+ m$ T) ~: b1 G( a7 QDATACOPY: ;数据复制
% G0 q& l7 c0 m9 b LDA $8100,X# e& _! t" ]" f* e$ i0 t4 D1 T! E+ X
STA $7200,X
7 |6 ~+ S5 P6 S( H INX
* u' v: i# [4 R7 @, t2 Z; s CPX #$00 X) n5 I0 x( B! K$ V* B
BNE DATACOPY
8 v' F/ `0 x* e" _ PLA+ @/ W' R/ F# F0 C! p' B3 W
TAX: T. X, y7 Q! K2 f t
PLA
: |" W* s# n3 N9 n+ t RTS. z% v, L8 ~0 u. v3 I* ]: T
1 p d2 L) a+ Z6 t5 y .ORG $CD9B ;跳转到转换的切页程序
2 E# f/ L B7 W: i7 n7 v0 D STA $70
# [4 _# Y, O! j) J1 t" [ JSR $7200: V& `! b; t4 [9 U) R8 z* s
RTS
" }$ }* B- f" Q5 C: K, X
$ d: J2 y7 P0 o, `3 S9 p0 c' `/ E9 a5 o8 J .ORG $7300
$ |6 E9 T9 l$ m- G/ C" ^+ QM1_TO_M4: ;切页程序
8 M% D2 u: ]. P; s% ` CPX #$00
- V* J& u) ]3 k8 r0 d BEQ REG_SET
( C" y3 {$ b4 u1 i- y. S CPX #$01. r6 ~8 S0 H/ E$ f2 y
BEQ PPU_BANK_0000
2 A" V- {1 Y/ H CPX #$029 k, j' f D( Z' s+ m/ E
BEQ PPU_BANK_10003 T7 g7 J) U( i6 G8 W
CPX #$035 q" T& L0 t9 ~" e
BEQ PRG_BANK
; o# f. b4 Y8 d) A/ @REG_SET:
# g, |# Z$ H0 b7 O STA $A000! w3 c2 M. q* b- I; r! |
RTS0 h( P4 A# _) h) i9 L
.ORG $7320' r5 L( q# N- E% ]
PRG_BANK: ;PRG切页% v4 X+ d8 Q- Q9 X$ K
PHA
; H4 ~* o+ F. N. _# {2 a/ r LDA #$060 U. a) A- a' N) L- ] @9 A6 D
STA $8000! O5 O' l# E5 B9 m0 v
PLA: v# B8 {1 P! L1 {% ~
ASL E% { ^# D- c
STA $8001$ N; X" y4 l! }( d) y: r5 T7 T! _- G0 n
ORA #$014 [5 { |7 Z6 \) l/ {
PHA, P3 A, ^9 @) F$ y# U: W
LDA #$07
* S7 s5 Q: ~# N3 D STA $80009 h( ~" F' V/ o
PLA; ~: ?) v7 j; R; ?6 \' `
STA $8001
8 ~; X( g4 N7 M6 Y1 O5 O RTS
' Y) K: @* z2 }# C% `; p. m, h .ORG $7340
) c5 `$ Y% Q0 v- W+ c$ p' H8 jPPU_BANK_0000: ;精灵切页
: H+ u# e% b+ }1 | H7 u3 ~; Q) r6 i PHA
; c- Z' W" ~, X# J' ~" O ASL0 M& B/ U3 P: `
ASL1 r1 t! [4 k1 v0 M) q
PHA
/ r2 u) [$ e5 S/ ^% @6 o0 @6 h LDA #$00
: A2 h( p6 |: o' i; h3 R STA $80007 s1 d b: Z, \
PLA8 J, K* s6 i! O4 A
STA $8001
. B: L9 {2 p _4 P9 d2 l' ? ADC #$020 S" @ @! E6 _
PHA
: F% D2 y% i, J$ f, }- H; l LDA #$01
* a/ M! @ H! {5 k3 q. c* z STA $8000
8 P6 q+ I: {5 P PLA
! r3 M$ f# u" s4 ~4 M STA $80018 Q6 |5 P" q! C, X: Z* \3 B
PLA' {, |- g J2 i# Z5 O- H
RTS4 Y, c4 U1 i4 p ?2 y+ Q
$ W8 j; j% h2 C- w% u- Z1 u .ORG $7360( Y7 `: Z% s/ g2 _* [9 y$ b
PPU_BANK_1000: ;背景切页
0 t6 l9 R& ~- `. c! E PHA
9 e4 e+ g4 T7 ^ ASL
$ G( L/ x" x0 k% h$ z0 U9 g ASL
+ b, y/ w6 K8 ^ PHA
6 |; l4 f! ^- u( g! B LDA #$02
: }* ^+ t( N4 T* R' _ STA $80006 P, {2 S( n6 r) X. |" K, l6 v. H
PLA+ N* Q4 X4 l/ m
STA $8001
1 X: i$ U( n/ @2 @: P ADC #$01
/ B8 m, S) S2 t& E3 V PHA0 c, q" Y( x+ m D8 e% G
LDA #$03
! Y- n: Z$ Q! E: K0 { STA $8000
; G2 s! H% e7 ]' Z PLA/ N6 L6 @1 I' w% F# O+ d3 w: ^% C
STA $80018 W# c$ ~& k9 h8 e( H* T
ADC #$01( m1 B2 `1 m3 |( F, Z5 {# s
PHA8 x A) R+ R# \6 z( p( M
LDA #$04
6 b" w X( B$ ~% T STA $8000
/ n2 y4 j8 q- r: m, ^) E* ] PLA
/ p" C+ q+ p h0 i# e# t STA $8001
6 u( y. f! t$ N: J V ADC #$015 z; Q1 e# w% L
PHA
7 d u e" _! M# f LDA #$05
! |. A3 G: X1 m5 l7 J! n STA $8000, V" N, ~& {! D9 j
PLA R. r4 m: ~* H% |! S
STA $8001, k$ {8 E* n) T& W i. B; u
PLA- ^& {0 ^! J# V' f
RTS
# s; u% L4 _+ Z1 e8 L ?- y
2 [3 E- @' j8 m+ b* P, @ |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|