|
|
;[FC][最终任务mapper1切页程序]$ O1 ^2 t, N( y1 A# |
.ORG $CD9B
2 c) C% C3 O/ M9 zBANK_START:
; Z* a* Q& j! v, y4 V$ u8 ? STA $70- s6 A; n; H, }& |. w1 }# j
TXA6 l/ r( k& C. C/ J1 p. e) i
ASL
! X2 a/ x5 S; U+ w! T: X$ r. @ TAX+ F Z* X4 \3 V5 u+ j
PORT_SET:
5 c& O9 g) m4 _- K; x LDA BANK_DATA,X; ?: A5 @" Q" Q! ^1 `9 }
STA $6E
7 Y. V n& k% x7 x5 | LDA $CDB8,X. |9 b8 f3 y5 G# m7 @+ _2 y
STA $6F
' E0 E) a! ^0 Z/ W/ Y) a. f) ?5 y LDY #$005 q$ k4 w; r( M- V3 h
LDX #$05
. l% d2 u! q( k$ K0 y k LDA $708 y) `, z! r( e% r# T, a
PORT_WRITE:
, n8 F0 W6 B: `/ n STA ($6E),Y
7 [0 L; I' n+ |5 u/ ~ LSR7 T9 k0 k' X, r C- W
DEX
: k) X( D" |* o6 E; h BNE PORT_WRITE
3 k; k( s. {, Y, n0 j1 A RTS' l$ ^8 c _7 _ N
7 e! ]+ c1 k& a7 b& j
2 |* u) `4 y+ fBANK_DATA:2 w- n5 x$ S4 v; W2 Y9 ?4 v
.BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
) a" P1 v! t% z: K6 \ " |, G7 ~; I. K' n3 c# Q' Q' W# W
3 N# `( Z( M# w0 B& n
;[FC][最终任务mapper1转mapper4切页程序]( h5 G- a8 [3 F, {& ]! `2 _
.ORG $BFD2 ;初始化跳转$ R9 U/ ~2 K9 [2 H
JSR $FFC0, Z! `% q7 J. J' g+ U) V
3 I1 w0 ~: F9 e# N& g9 O* D2 {3 F& B0 Z4 J0 o9 r
.ORG $FFC0 ;切页
( N9 z4 P, D# B8 D+ b+ x: O LDA #$06
7 O0 j' G n5 {* b7 v STA $80007 }2 \# B3 z; V6 M* G. i* _
LDA #$0E% a* o! T9 M2 B* s, P7 o/ E
STA $8001
, J4 q( I6 X m: J5 a: W JSR $8000$ { c* K5 A0 a" \
RTS
; m; K8 n0 ?4 U" [4 d( ` 4 O ~! {" H7 G$ D+ d% l; M# d: M
.ORG $8000 ;数据复制
- F. @! O: d* |3 ~ LDA #$80- P2 r a$ E( y% u% c
STA $A001 ;启用SRAM& } B2 Z: `% U- a
PHA
" Q k; ~% P; z TXA
7 p+ E0 A4 L( A# m6 V. W PHA. ~( l) u3 ~% R6 y, g7 N/ O$ z
LDX #$007 L' w% e! B2 f: c" | ~: _
DATACOPY: ;数据复制
( e2 ^, b+ M; t LDA $8100,X: k5 e9 o3 J; S" f) ~. g
STA $7200,X" l& d# C1 f6 A6 H2 m
INX
' N$ u* q( a1 q( M: f! d X CPX #$007 m* c* z. ^/ Y6 E, g, Y, r
BNE DATACOPY
* r8 m( P; S3 d: @; x PLA
' N4 u- w/ i9 O TAX. G0 @6 j- K" j, b5 P
PLA! w3 l) r" Q1 r7 A/ t3 N. [& u: W
RTS5 K. i4 l) P, U [! V3 D
7 V& t& Q: t* P' {3 G) B; f .ORG $CD9B ;跳转到转换的切页程序
2 Z1 T8 i" Y$ |5 \# Q STA $70
h( o6 W6 S% g! E' J' R' q JSR $7200+ X$ [- K2 B! [7 ~
RTS9 l: c: f6 H1 i" A
/ t; @8 I4 D" M, W2 B0 @) r
.ORG $7300; n) Z4 F8 q. f3 J
M1_TO_M4: ;切页程序
3 C7 Y& c6 Q& L; f! C CPX #$00
/ G( i. X' N: ~; K# V7 v/ @) i BEQ REG_SET$ c3 E+ w" q# _$ {5 ? b/ F) h# Q
CPX #$01
# b9 V. A/ f; U. O8 G BEQ PPU_BANK_0000
; k; U- n) o4 r" g CPX #$02
2 T0 D. Z3 d$ \3 q5 N- a BEQ PPU_BANK_1000 z$ A* ? M: A' O( t* g5 }
CPX #$03; o$ e! C4 y# A5 u! J4 X( L: K7 ]
BEQ PRG_BANK, L" ]1 x, l4 |4 j' C9 z
REG_SET:
" D) `7 E; z* t1 C- C7 { STA $A000
8 t2 ]* N2 T- {) h RTS9 Y# q; ^5 L T
.ORG $7320
9 ~ I3 T' Z* A4 }5 M$ RPRG_BANK: ;PRG切页
9 M' P$ ^" w4 J- {" E) i1 A PHA# t* Z! m" H! @: `" v* F% m; b
LDA #$069 [9 e( S' H0 D5 Z
STA $8000
( F" |6 h& g8 T3 D# M/ O2 s' m0 W- m PLA8 p7 `" j- |8 b, S8 L7 V
ASL1 i& ]4 L5 T+ [8 H* D
STA $80013 c- q7 G, m" J: D* R4 \; V0 @
ORA #$013 [) K8 y m7 e
PHA# S |1 y7 v$ v( k" A( m
LDA #$07
/ X }5 t ~+ C+ p7 D STA $8000
1 H$ w3 |% p: N, p* j z3 @4 | PLA
; x } ^, C, k& S- r9 m1 p2 Y Z STA $8001
0 D! W: a, b* w) w( u. O RTS, F3 x/ H4 ]' w! ` f0 s# k* j" C
.ORG $7340. Y- L: h1 l9 E# q+ H5 ]2 I
PPU_BANK_0000: ;精灵切页% S- q) N& M" C. C
PHA
: W6 B3 |0 R0 A* {+ _. q ASL
8 o* T# [* p% f( V" z ASL9 R) `5 B7 ~6 I1 W5 I
PHA# p( Z5 r) ~, ^* c1 ]- {& y
LDA #$00$ @( j3 k5 Q% E1 C& @
STA $8000
2 D) ?9 _4 \0 f PLA$ \% r& R) C# x i5 w" I
STA $8001
$ o v4 R# W2 Y$ W7 S* P% v ADC #$02* r# X# h; _6 W9 E; n$ R3 ` q
PHA
& u; w) c* f+ e! g; B LDA #$01( B; T* V2 T+ r- w3 f3 B
STA $8000 y. H9 q$ N* t8 x
PLA- [8 p% l) ~9 w9 r7 M/ l" e, ?$ ]
STA $8001; |0 l+ F- v6 f( ]' b2 q5 m
PLA W- C5 b# S2 i9 o4 i
RTS3 f) b6 b3 m9 I" y. H* U+ w
* T. ]$ m6 D) P7 c- z
.ORG $7360
. ]; Y' ~& Z! _) {4 B! e; MPPU_BANK_1000: ;背景切页
3 h7 s) E- q, [% j! x+ z2 a3 r( Q PHA& L) a" m7 |6 h% \
ASL0 r( \( g; O* {5 o- V, ^, A
ASL6 W! D& M% u2 v0 ]$ i0 `
PHA
+ k5 P W8 G0 _" u" F/ L LDA #$02
, W- b" t* S- Y% S( K% ] STA $8000
* X' u' k7 y9 b% D PLA
5 G7 w/ }5 V& W5 G7 m* N STA $8001
; H! `$ w5 Z8 Q9 D ADC #$014 i5 K6 l+ ?* k: { T
PHA
1 {6 ] V4 m* \/ x9 n" n LDA #$03! [% {4 W3 W2 [0 Q+ L# }6 m
STA $8000/ _1 H+ t7 b4 h: w g, s
PLA/ B1 U4 s" ^# H- F8 Z4 m5 S
STA $80017 [' {6 M' I9 ^3 J( R% k; P M+ C
ADC #$01
3 h* ^8 C# r; m PHA
! ]0 N. W$ v) g& h1 z4 E: j# q) |4 l LDA #$04
6 U m3 Y2 S) i/ L STA $8000" d: k6 u! M6 C) t
PLA
3 ~; I8 E9 e2 y5 G' N% k' ^& S/ O STA $8001( K; {% |5 q& X" Z$ G
ADC #$01
, t7 H9 h; c- O0 }5 C. U; g PHA$ d$ p1 r, g% v t, j
LDA #$05
C. M0 q( J: f STA $8000
5 F) _/ I+ ^" U% {) z( M PLA% t, d9 h8 O9 |3 i% Q$ ?
STA $8001
( p( P$ q! v$ h4 H7 W% d PLA( @$ b1 K/ f7 R( D6 w# Q# R8 [
RTS; O( k# \' z. |5 l; v
8 q a8 U4 u6 @, t
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|