|
|
;[FC][最终任务mapper1切页程序]( |+ [( u; R, o6 J- G3 J& R) m& i. E* l/ y
.ORG $CD9B* E$ E# P# z7 l4 \$ Q
BANK_START:
" g. X+ ]4 m# W% |+ P0 R( ^ STA $70
1 k7 |# b* i2 v8 P" s TXA
% D3 t3 s, n( m ASL9 g& V$ L" w0 N/ ?3 }" x
TAX: V5 @0 b! G4 T2 j& G5 M$ t) a
PORT_SET: ~9 @- a8 U/ b3 y. Z5 [) L
LDA BANK_DATA,X2 T- h& v5 @; L$ k
STA $6E) u0 D8 Q1 q8 `$ [
LDA $CDB8,X
8 o$ {8 m9 y E# E3 m% O6 C STA $6F
5 S, u+ [) P& x8 W% P d. \2 X( t LDY #$00
* P" N0 P0 E) N: u0 u LDX #$05
3 S s1 V- F! K/ y' f LDA $70
- F- U6 }* K1 B: r, h# m1 }3 V- E& D, }PORT_WRITE:
; G* f$ K `' y$ }' n' x6 e STA ($6E),Y6 F8 [, I, q- k* A6 g
LSR
6 [ n( E; N7 L2 j a9 s2 T DEX
/ {; q0 F# `& m0 \% I5 d BNE PORT_WRITE
, }3 B: U, R, A) m- V RTS" x/ @+ C& ], i7 |1 S5 {; a2 ~. o
+ _! g& Z% X# m, `$ y' J7 s# T . I( I9 f9 {& `5 ?* R2 [/ Y* @! Z( U
BANK_DATA:
; J, D1 D* g" _% A' \ .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF* Z2 J" u8 V6 S
* v, c Q# Q! ?/ D
9 [2 D3 R3 K x+ p( v;[FC][最终任务mapper1转mapper4切页程序]
# T# L1 _3 }6 h) ?4 R, k! ]2 u5 e, G .ORG $BFD2 ;初始化跳转
# }0 F" `. Z F5 ? JSR $FFC07 C7 ]* ~/ p- |( M/ P
( N& v- @* F( C8 x" E; W
$ y: E, K$ v V. g9 j5 ] .ORG $FFC0 ;切页% @$ F# d x% Q9 W S
LDA #$06
' J. ]# i8 W5 h; \" h q STA $8000! I: y& G' p$ }% d# a! f* j& ?7 c3 L
LDA #$0E
& t9 W4 N( t& E+ e& |& X STA $8001. y" A- @7 { s1 N( W/ l/ e9 u
JSR $8000
* `7 Q3 |# E& { RTS
% U- b+ h I q: d + f3 b; G1 v0 m& }
.ORG $8000 ;数据复制
( l% C `( b" y0 M& ?- L LDA #$80
1 _2 E8 m `( \1 q( ^! {4 z STA $A001 ;启用SRAM+ @. }. ~2 d2 L& i. B) s
PHA( ~7 C; d- Y( G; l+ R; w" u
TXA1 ?; x$ b) i2 ` G7 O+ u4 E! C
PHA
2 ]* Y5 w% [7 Z4 X LDX #$00
# Q- o# h9 b- d9 {+ J( T0 CDATACOPY: ;数据复制/ x7 w5 u: r3 ]% k$ K7 y
LDA $8100,X
7 p/ P6 [# D5 S- |; x& d STA $7200,X
) v8 R* c+ Z# F, ` INX4 Y* ]9 f, t4 s6 ^
CPX #$00
! @, A5 `: a Q" _7 S BNE DATACOPY9 l9 P$ U9 q3 n* b
PLA
t; j$ z* p4 I" n7 D; ]7 t TAX
4 S5 Q' |( [2 _; o1 r8 ? PLA+ g+ K9 k2 W8 ~$ O" U) e
RTS& I# |: ~; S# h
) y. r& C- G4 A% t. j .ORG $CD9B ;跳转到转换的切页程序
' U6 n6 z& s; X, [; d" ~- H. H% d STA $70
( C# \0 p7 A: [' L JSR $7200
, h8 w" [8 X$ E% E- a; z B RTS
5 I" v/ Q% [: C" Z2 ^9 B ( _( v& O# J, {+ `& i2 ?
.ORG $7300% r! D* E' u: B+ W9 Z9 a# ]
M1_TO_M4: ;切页程序
/ F1 x+ w4 ]& t3 X* N' l' c" i CPX #$00
. i8 \* b+ c0 J) L BEQ REG_SET7 D. e! y \: C, X
CPX #$01& C& o6 S0 d8 ~" J$ i& O% C2 G
BEQ PPU_BANK_0000
- }' u ~& ^1 E CPX #$02
; ^3 y9 q0 R/ j5 V' V, h BEQ PPU_BANK_1000
, g. C! @* i8 o1 k1 ?, K. ~ CPX #$036 _. b& E1 `$ t' q' c# r
BEQ PRG_BANK
. M9 P9 M Y+ |2 |REG_SET:8 C# B' w8 A9 Z* }
STA $A000# [0 T) U4 G0 m1 g5 N
RTS
- W$ G7 Z2 }! S! f: d .ORG $7320! z+ L. |# p2 Z8 }
PRG_BANK: ;PRG切页9 Z( r$ ~3 T2 z& d1 K
PHA
3 `! A$ k0 l1 s4 n/ c LDA #$06- ?" [/ Q& b& c b
STA $8000
! j4 c0 Z$ x" G9 L; J( v4 e PLA
! r# G' K# {, A3 Z/ r, I, F ASL7 f# ?- y* l, O) i% [9 C
STA $8001
( j; c4 |- t8 i8 v9 o; F ORA #$012 |# @/ v% j0 i
PHA4 l# G O" Y% ]# H- S0 [1 L1 ~- f
LDA #$07# N! e2 m; Z1 ^( x
STA $8000
! _2 A9 m& @8 n% O PLA
: ?% M a' [4 K4 m5 j: K% Q STA $8001
! S7 r' S: Q: Q. v1 J RTS2 e5 d6 Q7 O, n& i
.ORG $7340
# O7 h- z7 ?5 Z+ F! KPPU_BANK_0000: ;精灵切页
) C( x0 F) z! \; ^! d/ R PHA
2 O8 V% |8 T' s( D: l& \9 ?" ?/ v ASL- j6 F- Q" {# M
ASL
9 S, v4 T" }$ R5 e2 v! Q. D: y PHA6 d# }( U4 e4 C2 l
LDA #$009 C7 [( V/ N: k8 U( j
STA $8000
' |% |" [9 g1 R8 C PLA4 T$ r$ w1 G2 ]/ B, Y. v6 d# [
STA $8001
# H8 u0 c* W- k4 ]$ x7 t- X ADC #$02& p& H9 L, l4 J# Z/ h
PHA
* G7 t7 w* p* w. p LDA #$013 l6 I! _- h4 g* ~+ S5 Y+ k
STA $8000
3 t: t$ r5 }1 O$ z2 q* P* h! q+ i PLA
( p: ]* n5 K% D! p8 }5 T9 N STA $80017 J! \$ C4 ?- n' }$ ~, y
PLA! y4 s& }4 u3 R* j: I* B% h+ O0 f- r6 j
RTS
8 ^5 q; Q6 H* t ) Z0 [7 K) J/ M2 w7 X" M# R
.ORG $7360
+ O8 m3 A9 Z: w+ TPPU_BANK_1000: ;背景切页, J9 V6 d) y5 E9 a
PHA
; U2 K Q: I4 K: Y4 b* @. z3 i ASL
; F% _" A/ i% q2 }- j ASL7 j5 I' Z, w* X& h1 v. _" G
PHA8 k* Q) H) Q* \7 U1 L, B
LDA #$02# W+ h) D& f: {! [6 [( e8 U
STA $80001 u0 j6 G8 Y! V' c/ Y* R6 @
PLA8 I, x" a& _: [) ^9 R5 [
STA $8001
$ [9 `9 v9 o! q6 S ADC #$010 @& {0 f. _2 V5 Z
PHA
; O$ y( i K; t LDA #$03
; S# e+ F3 a- U4 ` s) W$ L) l STA $8000
+ f5 i, B9 r) S, i PLA% ^/ I# d' a$ K7 v1 m
STA $8001* f" F* L- J9 r4 r+ J% I: e
ADC #$01
" P# _8 p# ^+ ~* k L C PHA. @$ z2 T# h" u2 K: I& H, o
LDA #$04
1 p5 d% T9 y8 t: m# Y) E& P STA $8000
k1 W; y+ `' P5 j7 i* F1 A. v1 \ PLA( n9 _2 t; L8 K7 X% [4 K! o
STA $8001
$ m: a% F! Y. J) x% x2 X ADC #$01" d( Q8 ?, u, f3 w
PHA9 G1 N0 E' y% B: H
LDA #$051 m p! z/ p! R+ d% \8 g9 b
STA $8000
" ?0 i2 [/ `0 @8 } PLA
7 y! Q0 J5 E2 K8 z; h- X1 D STA $80016 }, ]: p# v" d$ a& }
PLA6 S+ ~) [1 i2 j6 o6 T' i
RTS
9 X2 e6 a$ h- X& [0 v' f( n
+ w5 v- i: I8 o& E! r+ ^ |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|