|
|
;[FC][最终任务mapper1切页程序]
; @$ j0 B1 q& y8 n/ J; Y4 t .ORG $CD9B
7 ~3 P+ r- l7 b# V- M* ?BANK_START:
9 V7 {. a: ]! B+ |9 `9 c STA $70
* K& b$ \4 `' J) h TXA5 P& T9 V" L$ r+ L1 h+ t: t o4 ] D
ASL; l% G* H8 f: l2 M0 B. [
TAX
! ?* p8 i8 e- Y+ n% E! J3 p$ B+ ~PORT_SET:
1 y1 i8 J. K+ C LDA BANK_DATA,X
5 S) c" ?3 [ F- _+ H" ]) j STA $6E: K w$ D& Y" \7 E- w# d
LDA $CDB8,X
X: X+ E9 h/ n/ G. J! d STA $6F
) H) W: C. v- o( j; W7 F LDY #$000 }! ^& T5 J$ Z4 c$ w# |3 Y
LDX #$05& ] ^! a% {" g- ]6 L. C0 K
LDA $70
' h5 y/ J3 ^, N$ a* @& EPORT_WRITE:% k# _% W9 ?! p
STA ($6E),Y4 D' u: a7 N$ C1 X6 C" `# ~- `
LSR6 t. g, a- _/ ]$ Q
DEX2 m% G8 P+ k8 ?( F) N6 b
BNE PORT_WRITE- |0 r, Y" \2 [" s+ z4 Y4 ~
RTS9 z4 E+ \* J; G
8 x! E8 m- t0 r0 g @
: ^7 t8 T: j4 d2 ]/ c& _0 @BANK_DATA:
) N8 `( M( T7 D0 r+ C .BYTE $00,$80,$FF,$BF,$00,$C0,$FF,$FF
* K7 v; m* D, m& J8 `9 p
6 f2 Q: H; M7 ]: t3 _
6 N& j+ J; W0 C( f! |;[FC][最终任务mapper1转mapper4切页程序]$ ~+ ^+ K$ o9 y8 T+ ?
.ORG $BFD2 ;初始化跳转
- M+ } G1 r. T$ ~7 V JSR $FFC0
) R! J `# i) K
1 N' f/ ^0 {8 C" w+ W" I0 K) Y/ h$ \
: E c7 M$ e1 M5 Q% m' J- f .ORG $FFC0 ;切页$ ]4 M2 y7 J: z# |
LDA #$06
5 Z! ^$ j6 u/ X' M0 B+ E( @ STA $80000 F5 I3 I/ J8 l0 b, @, o" q
LDA #$0E
- e( J( u0 d1 D5 I# w" } STA $8001- D! r0 J: z9 [& J
JSR $8000
1 q. k, i0 `' h4 L% ~- S RTS
* n6 x' j1 }# J% ` ' v- Q" A$ G7 {7 B* G
.ORG $8000 ;数据复制
& j' A# T& b7 i4 A! `! L LDA #$80! o6 x7 I0 u$ u& [" ]! v
STA $A001 ;启用SRAM% |5 o/ q$ c" i0 p
PHA2 }* ], t2 B O
TXA
' R6 L. ^2 K8 T" U2 i PHA3 O! s; z' o* z' L, N
LDX #$00% B. ^, I, p2 H, a) ]/ A
DATACOPY: ;数据复制
& `5 @/ N* n- l8 S7 ^( R LDA $8100,X) D# Y3 T" M. F: s
STA $7200,X# Z* p- T3 N/ Z, m! ^, ~7 k
INX2 H9 c! \. G! X& S9 J: q- N4 J! t
CPX #$009 P6 n/ _/ C0 ?
BNE DATACOPY. v! n- v e c. V
PLA; e) { w; k2 D- r# M2 G4 ^
TAX* j* n1 c+ @# v0 Q1 q# a
PLA
) F; ?6 e* O& }: B- C# i# J& e RTS
8 H4 Z( |' X4 o$ m4 o6 f" q 8 Z/ V3 Y( U M
.ORG $CD9B ;跳转到转换的切页程序$ H* t8 F. I0 `3 ~
STA $70
! f1 e# ~$ H3 o* |. r" X: X0 R. c JSR $7200
7 ?3 }" h. e0 c3 O6 e RTS
# k; a0 V; E, T' Z' U" q' c " W6 Z: T- f4 c+ v! H: Q
.ORG $7300
; O6 X5 O3 t3 ]; ]- G: G4 _M1_TO_M4: ;切页程序% l6 J( Y- E6 |
CPX #$00
7 b' K" o3 @+ v$ g8 M BEQ REG_SET
7 r( S3 v) y- |/ e CPX #$01* `* E8 @' z6 a' E; C
BEQ PPU_BANK_0000
+ Y7 f; j0 x; q- A+ ?- Q CPX #$02
0 i) z% h( O2 L! z+ { BEQ PPU_BANK_1000! g+ k& k8 H- f9 O
CPX #$03- r+ w; c2 v4 [' t# p1 H2 g
BEQ PRG_BANK _. S g4 }) H% A+ Q$ s
REG_SET:
% p* h7 R9 X5 Z7 I$ @( q STA $A000
; ?) J6 W5 S2 l/ `5 \/ _* G* ~) C RTS
0 b" e$ C8 ^5 e3 E8 L _* T6 V .ORG $7320
0 N0 h# [ A [+ mPRG_BANK: ;PRG切页2 u d$ v1 N2 q0 I
PHA
, s" Q& p+ X4 J) C3 o* } LDA #$06
7 i5 U8 x3 H" M/ ?( n STA $8000
0 U! ~* [3 N- \+ N) O. S PLA
9 n e c* f" H; p ASL
; F7 T D' R; u$ u; _ STA $8001
' [, C- D1 L, b ORA #$01: y% Y3 j* y3 E, A1 k. n }7 T- q
PHA ~, P( E `' a' p" Z2 Z
LDA #$07- E6 z' @5 y% x* M, n9 x$ b! M Q
STA $8000
8 A/ M: u. [. S6 j3 j1 ?/ u PLA
0 t, Q2 S2 T2 C( c0 V5 H$ z+ } STA $8001
% o- \8 y' N4 k% \( w RTS
{" a# G; ^0 O$ | .ORG $7340) b7 a2 N! L7 f) U0 }3 M
PPU_BANK_0000: ;精灵切页
" L' v. B( G8 I# ^ PHA+ ~) e B2 N- k& v o/ o
ASL
0 ]' s! }* R, J: S S! |+ X5 h ASL
& `# O, J1 C7 ?+ ?0 x) _0 @0 F7 O PHA
; `! y2 {* n% S3 L3 i9 F3 a LDA #$00
9 s( v6 G% K5 @0 B STA $8000! x# g1 X& I3 f
PLA9 i: z. Z: k. d% @2 u' d x
STA $8001" u, S7 R* c" E+ J% U. M
ADC #$02 O3 u# `/ X0 l# U6 z% R
PHA2 l8 G$ G$ C! C1 I( l
LDA #$01$ {8 W" ?" l6 n5 _: K* @( I
STA $8000
3 H) n2 f& O a- M2 f7 Z; `0 v6 K2 B PLA: ?! G7 E' k( w6 r, j& V$ A" r$ S0 _
STA $8001
i2 A3 T% ~4 u PLA+ S& \$ l# h- s1 ]5 L4 F
RTS3 n3 @7 D9 Y7 y" A6 ~. ?" g
; [1 `) K7 z+ w
.ORG $73601 I1 P- ^4 F1 Q9 }) I0 i
PPU_BANK_1000: ;背景切页
: S) ]2 w/ C; |( m PHA) A% ^: C8 p# }! Y7 `
ASL
) |' }2 M9 u: V' v' c7 S/ [& y9 I ASL
' E/ i+ a& @0 E1 e1 H, b PHA6 \- q8 y/ c+ y) C+ j3 R- G
LDA #$02* {& Q& z: I, Y4 G V6 V, I# ?
STA $8000/ o; j x8 G0 ?
PLA
! Y# S+ A) b. n2 }0 r, E- c STA $8001
; \9 n- _9 g3 f1 e0 Y9 g! H ADC #$01
5 X* J% T/ ~; @6 N% d0 ^7 a PHA
1 O0 R# {8 {6 C9 ?; w1 ^, t7 O LDA #$03
1 Z( I; i) |- w! J STA $8000
0 S' _1 A/ ^. [) |4 H4 a PLA6 @# {+ J ?# Z. d e
STA $80015 l& u" v& J! H- c! [7 C$ F8 E: C
ADC #$012 T: Y0 O* m* M. I4 h) m* e8 ~
PHA! X5 ?6 H3 k8 H3 \+ F4 h
LDA #$04
0 Q* K6 y7 }! d6 p) a+ w1 z+ d STA $8000
+ S1 A- F7 c$ v" {1 _0 f PLA+ F2 ~/ ]; H. v
STA $8001
7 u; y+ e; J, n) Z2 E1 x ADC #$01
9 }( A- ^* Z: ^, E( [9 o4 a z PHA
0 K" P3 j* U! H( H4 w8 e2 C LDA #$054 I7 a U5 }1 M% t# r2 V
STA $80008 t) x* B, n5 z) B: C- p# t( ?
PLA
2 t5 ^2 V1 v# [7 x, | STA $8001
) F% G: f% B2 W3 a3 M8 ~ PLA2 v3 g- o% Y3 N5 K. \; l& v
RTS
# x: g# ]/ ]/ R- |2 \
5 a- p( [( n. o- h5 p+ Z3 S1 h |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|