|
|
;[FC][最终任务mapper1切页程序]
) a- I7 S- Q! w* y .ORG $CD9B
5 j0 n, e" {5 J( ^) H! G- F! J* cBANK_START:
" Q/ K- j& L g7 W. u' z) ] STA $70
* C& }. Q. B( Y8 G! P" K TXA( O1 ]- O" ` z: W- Q5 w
ASL
( T) h- q, T- C6 p7 R% g7 C$ Y& g8 y TAX- {% R) x3 k4 W" E; n) m
PORT_SET:* ~9 }. b/ z% k3 U
LDA BANK_DATA,X
- i G& R7 Y( c& u STA $6E- ~& \8 H" d- x
LDA $CDB8,X5 N. q+ H5 C. }( P6 c
STA $6F
. l* c; I$ u$ }) k0 |8 T% Q( D LDY #$00
% t( b) D- w) f; K, m* v* o LDX #$05
: \' m) b& |! U3 Q1 {) u LDA $70
/ i) _. r ?1 t' K9 c/ ~0 nPORT_WRITE:
! b8 _& V+ d$ G; K1 Y8 r STA ($6E),Y
: ]9 P8 J! L+ R3 V" {4 R# I LSR: b: {. J/ _ z, g( l
DEX/ p8 X. ?2 p3 u" ~& U/ G
BNE PORT_WRITE9 S# }, a) U y
RTS
; z6 z' B' o: B, Q9 v ?* M+ j% W1 \; M7 X
, a- T+ r. F9 F) b- b, dBANK_DATA:
4 T( C* w* a6 o$ N0 N .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
6 B! u' A0 X+ G2 q 4 ?$ {% F* n) D6 V! H% j- D4 p! b1 `
5 B+ o7 I- n* ^+ N
;[FC][最终任务mapper1转mapper4切页程序]* P6 w- a; U5 ]0 z* ~& d
.ORG $BFD2 ;初始化跳转* P. W- H! _. W3 o7 |4 v
JSR $FFC0
( l& a" J$ }1 w/ @7 n
) i, A; f2 X% m4 m* ?
; {- M1 x) \! b; \' U; E .ORG $FFC0 ;切页
( E& |6 `5 ^$ B, T LDA #$06
) n8 l. B$ C4 [( I. i" S5 A( O STA $80002 H' {& {0 Y) o
LDA #$0E
( |0 h2 d5 o+ r( o STA $8001- S3 f8 ~/ r8 G# V8 y
JSR $8000. O5 X0 {# h$ X" U! x, o; A
RTS 7 H. I9 J! i" G5 f( @
5 P4 t( v* H' Q2 X% l! C B .ORG $8000 ;数据复制& m: y! N$ O2 t5 o7 M( y
LDA #$80- ]& N/ a6 [ |% e
STA $A001 ;启用SRAM
, U3 r; p. N& }: \ PHA# q* F" g7 m" X8 t! g% D
TXA/ O! D7 ^9 P7 M p
PHA( w2 |6 i8 X2 F4 l! ]5 N4 r' _
LDX #$00
. C$ G" H, G1 xDATACOPY: ;数据复制
1 o3 ?( D0 B2 t& M0 v LDA $8100,X
6 y6 J3 p/ y4 h3 K" r+ n STA $7200,X
2 c( o) F" L! i5 ] INX
) z. X( j3 t* S) s# ?0 Y+ h CPX #$00) q3 h* G: }- g I. L9 ~% m( Y
BNE DATACOPY3 {- [) R* b9 X+ T) J
PLA
k4 b5 L4 `# t+ Y TAX
) y c5 v" Z4 B4 P9 Z" _) [ PLA
8 V: K9 T5 C% H+ I RTS
: B# p4 z- n0 R) V" n1 P+ }- S
* Y# `* r! E) ?; T) Y .ORG $CD9B ;跳转到转换的切页程序
* E/ Z4 v: \: l) T7 O; q( L) c STA $70
- r6 A1 o! e' @% i% N JSR $7200
, F( @2 |' ~- t" t( { RTS
' f& ^2 d j# \/ |5 ^7 e' Q
# y4 s: T2 W6 [, B& a. Y$ U8 n( R* q .ORG $7300
q k, ^8 r- o2 Y H7 ?M1_TO_M4: ;切页程序
; L! T1 C) Z% D: Q CPX #$00
$ h! O( r) y+ k3 W! W, w$ y BEQ REG_SET, b" |- x$ }5 D# |* t9 Q9 G+ K
CPX #$01
; }5 M$ a( E0 s3 C1 ~7 q6 T BEQ PPU_BANK_0000- m2 Z/ o B& [) j
CPX #$02, N) ]0 G+ h2 {2 J
BEQ PPU_BANK_1000
5 c( G) W6 r: ]: b- z/ i CPX #$03$ c. y2 L3 U* T1 s9 s" L
BEQ PRG_BANK0 B% S+ y3 z" }+ I% P* W; J
REG_SET:
9 u: I$ d7 c* G STA $A000) ?& O: j( K9 H5 J
RTS! ]0 c+ Z4 @7 \* e; Q5 t
.ORG $7320
. k9 b+ ~3 j$ |* X' }+ m- _4 x" {PRG_BANK: ;PRG切页
) m4 Q/ ~0 X/ N+ Q/ V PHA
( n$ @) a1 `1 X4 A6 } LDA #$06" `2 X8 ~ m% V/ ]" `
STA $80005 n0 K' X& d G- j3 u# b9 H3 e! p
PLA
" K8 I$ f/ \/ L/ j' q! S* n$ j ASL
6 U& k* g3 e& J) P STA $8001
( T; N4 M" C3 a6 `/ y" e$ q j/ ` e ORA #$01% c/ L1 Y" R, i& b( z6 g2 L0 n
PHA. W4 O1 o# s1 E4 h0 q1 X9 I
LDA #$07
. y9 ], y. ^; |! c4 x6 w STA $8000
2 T7 ~$ M+ [9 i! U; m: \+ H0 N PLA, g% D1 x8 U \, t( I
STA $8001
/ E p" p+ D% ]1 P$ `! ` M: [ RTS
, g1 W3 e, n- M! a* V: ^* l .ORG $7340, N/ r. ]& z5 W W5 z \
PPU_BANK_0000: ;精灵切页 u, m4 A; p+ L: q
PHA
3 ?: V# G2 F# K1 i6 m ASL
% V* M0 k8 s0 x. I1 E8 O: O ASL
4 O# l6 w7 C" s, D! H6 [3 Q PHA: U' j$ H7 M, [% T4 @9 l% V( v0 u/ F# N
LDA #$00$ F* G0 U1 t' L( S% [) q7 Y
STA $8000
* a+ Y8 `3 b# \+ w, D* K3 u6 ]* D PLA1 a! N, K- G: O+ {' q, G
STA $80016 d* d2 Z3 d% j: S2 i
ADC #$02# V/ P/ ?( B/ Y- F# y7 c
PHA
0 ^2 C8 p! J) v0 x. Q( C9 ^. o LDA #$01# P9 I1 T7 ?: l( g
STA $8000
L& r/ J. }: V+ ] T1 V. Q: k. U( U PLA5 X b8 P8 j5 U
STA $8001
# J6 D9 c# | i% n( ` PLA( c2 n/ u, w0 g5 [* r
RTS
# }* y% J0 L6 w s V3 \: ^
: t& L% X6 ~0 n$ f0 d8 H .ORG $7360
. y# @( L" I+ b; a x. n: `PPU_BANK_1000: ;背景切页6 t! _) L2 B0 A' k) a
PHA
) Z; I! c3 M o% f1 r- a ASL4 ~! g- |+ M& B( {
ASL
# a6 v$ N/ K, n PHA
. z1 x8 h! h* ?! d4 J4 W1 H0 r; ^ LDA #$02
, x! K# f/ ^" B) k# c: ^- @- W STA $8000) _3 b! T: B# N5 ^) k
PLA
. v! J/ e$ ~6 h STA $80014 H+ d0 ~% u( |
ADC #$01; F2 i1 S+ h5 H* x6 a7 Y
PHA
H. S3 Y( v4 d4 v: ] LDA #$03
. n: p3 d; `8 m' [ STA $8000
% l8 Y! O2 o& H# c5 ^ PLA! ^9 C, u$ E. J! u8 {- {' N! R6 W
STA $8001
2 w7 K) A( K6 T- @* ^' G- X ADC #$01
2 S) Y* S0 F7 t3 }7 W PHA3 }) T3 r, Z ~1 T2 R7 g
LDA #$04
# i" F" Q# F/ F6 @, i STA $8000
1 n. V5 c% H3 P3 \ PLA U& H% J: B1 K+ y9 d( A1 e0 o
STA $8001, S5 F( D* ?9 ~) s9 l2 @; r
ADC #$01$ S* Z* O5 u! T4 K* E" k" q( H
PHA6 L. g9 T' w' w# l1 J
LDA #$05
( R) |8 i( y! `7 F3 v1 v2 p STA $8000) {- S! h r8 o5 i& {0 I" F
PLA7 W+ N- {8 D! n! D
STA $8001
6 O1 X* K* { f' T* Q5 D# U' O PLA0 ]! q6 X4 O, B @; C8 Y
RTS0 _) s1 y6 }8 U4 `
1 T; U8 V$ u8 L7 Z# J |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|