|
|
- Contra (J) PPU写入程序
- I# G ?' Z/ r. n - 作者:FlameCyclone- H$ {+ ?2 T6 E3 \0 x3 I6 D4 a
- 时间:2017.2.12
8 ?9 ]7 A g w" F7 `2 n - 2 X' J% B& M' e) [6 x
- 按键跳转:
% n r# X3 P: c3 c- u - C1EF:95 F5 94 F1
5 D A4 z: E% I% u1 [: o - C1EF:20 70 FB EA' v/ ?. D& o4 Y* e0 C
- 7 r6 j' s9 m; W" V7 ]' l# m
- 滚动偏移:) {2 x9 a3 D3 w5 W. m
- F936:A5 FD 8D 05 20 A5 FC 8D 05 20/ s' N+ R7 a7 Q" T7 K7 F
- F936:20 C0 FB EA EA EA EA EA EA EA+ n" { U% V3 D2 N7 n
' h" A" Q/ \; v- Y! H- 背景调色板:
d0 x: j5 p8 k l - CF20:9D C0 07' o; a- ]/ K& g+ L( G! F2 j& a
- CF20:20 A0 FB8 w/ Q! \9 E3 h- S
- - |; o3 T/ p+ V- Y0 X
- PPU BANK号:* ~) g( u, Q6 f2 {
- C8C9:9D F4 07- N' C4 ]& w; x- z$ [9 q
- C8C9:20 B0 FB7 Y0 S S. ]6 X& }- C; I0 b3 _
6 g/ T/ \3 i2 j% m- 按键跳转:
% k+ [. g) j1 M U/ n0 b - FB70: 95 F5 94 F1 48 8A 48 98 48 A5 FF 29 7F 8D 00 20
' E- u! F0 {1 H% r- p - AD 00 80 48 A0 00 20 21 FB 20 00 A0 68 A8 C8 207 S) }& m( {5 \$ S6 Q* N5 T
- 21 FB A5 FF 8D 00 20 68 A8 68 AA 68 60 FF FF FF# F% J9 v1 g; q0 M' { f1 n
- , R+ q4 ]9 U$ ~, A# j% ?
- 背景调色板:% ~8 b: n! r& @0 K
- FBA0: 48 AD FF 7F C9 FF D0 02 68 60 68 9D C0 07 60 FF
+ Q; H. X0 R' y) S1 K
& o$ m9 q6 R+ ~- x3 W" u- P- w- PPU BANK号:
; H; j6 q l/ {: ] - FBB0: 48 AD FF 7F C9 FF D0 02 68 60 68 9D F4 07 60 FF3 Q* N j7 g4 t5 m
2 ~; z+ H6 p( @* Z$ [- 滚动偏移:
4 m" { r, }, r! r - FBC0: AD FF 7F C9 FF D0 09 A9 00 8D 05 20 8D 05 20 60
- ` A( ~0 [' H$ T6 ^& i - A5 FD 8D 05 20 A5 FC 8D 05 20 60 60 FF FF FF FF& C/ s/ X) B0 D2 `+ ^) _& Y' ?
- 7 Y$ i3 r J# ^
- 2 R% @' K4 _0 k/ r
- 切BANK后A000:
^! ?* `6 s r+ n1 R& F9 Z2 B- K - A5 FF 29 7F 8D 00 20 AD 02 20 A5 25 C9 01 D0 0A B5 F5 29 CF F0 04 20 8C A2 60 48 8A 48 98 48 A5 25 C9 01 D0 07 AD 0A 01 C9 00 F0 03 4C AC A1 AD FF 7F C9 FF D0 19 AD A0 7F C9 00 D0 0B A9 FF 8D A0 7F 20 3A A1 4C AC A1 AD FF 7F C9 00 D0 DD AD 02 20 A9 00 8D 01 20 A2 00 A9 FF 8D FF 7F 8D A0 7F 20 6A A0 20 3A A1 4C AC A1 A5 FE 8D 50 7F A9 08 85 FE A2 00 BD C0 07 9D 00 7F E8 E0 40 90 F5 A2 00 A9 00 9D F4 07 E8 E0 04 90 F6 A2 00 BD 2A A1 9D C0 07 E8 E0 10 90 F5 A9 3F 8D 06 20 A9 00 8D 06 20 A2 00 BD 2A A1 8D 07 20 E8 E0 10 90 F5 A2 00 A0 00 A5 BD 48 A5 BC 48 A5 BB 48 A5 BA 48 A5 B9 48 A5 B8 48 A9 00 85 B8 85 B9 85 BA 85 BB 85 BC 85 BD A9 00 85 BA A9 20 85 BB A9 00 85 BC A9 60 85 BD A5 BB C9 28 D0 06 A5 BA C9 00 F0 27 A5 BB 8D 06 20 A5 BA 8D 06 20 AD 07 20 AD 07 20 91 BC A9 00 8D 00 20 E8 E6 BA E6 BC E0 00 D0 D4 E6 BB E6 BD 4C E4 A0 68 85 B8 68 85 B9 68 85 BA 68 85 BB 68 85 BC 68 85 BD 60 0F 28 28 28 0F 28 28 28 0F 28 28 28 0F 28 28 28 A5 BD 48 A5 BC 48 A5 BB 48 A5 BA 48 A5 B9 48 A5 B8 48 A9 00 85 B8 85 B9 85 BA 85 BB 85 BC 85 BD 8D 01 20 A2 00 A0 00 A9 00 85 BA A9 20 85 BB A5 BB C9 28 D0 06 A5 BA C9 00 F0 20 A5 BB 8D 06 20 A5 BA 8D 06 20 A9 00 8D 07 20 A9 00 8D 00 20 E8 E6 BA E0 00 D0 D9 E6 BB 4C 69 A1 EA 68 85 B8 68 85 B9 68 85 BA 68 85 BB 68 85 BC 68 85 BD 20 8D A2 60 68 A8 68 AA 68 A5 25 C9 00 F0 12 A5 25 C9 01 D0 0B B5 F5 29 EF F0 05 A9 00 8D A0 7F 60 AD FF 7F C9 FF D0 F8 A9 00 8D 01 20 A5 BD 48 A5 BC 48 A5 BB 48 A5 BA 48 A5 B9 48 A5 B8 48 A9 00 85 B8 85 B9 85 BA 85 BB 85 BC 85 BD A9 00 8D FF 7F A2 00 A0 00 A9 00 85 BA A9 20 85 BB A9 00 85 BC A9 60 85 BD A5 BD C9 68 D0 06 A5 BC C9 00 F0 24 A5 BD 8D 06 20 A5 BC 8D 06 20 B1 BC 8D 07 20 A9 00 8D 00 20 E8 E6 BA E6 BC E0 00 D0 D7 E6 BB E6 BD 4C 0E A2 A2 00 BD 00 7F 9D C0 07 E8 E0 40 90 F5 A2 00 A9 3F 8D 06 20 A9 00 8D 06 20 BD C0 07 8D 07 20 E8 E0 10 90 F5 AD 02 20 A5 FD 8D 05 20 A5 FC 8D 05 20 AD 50 7F 85 FE A9 00 8D 00 20 68 85 B8 68 85 B9 68 85 BA 68 85 BB 68 85 BC 68 85 BD 60 60 20 B9 A2 20 C0 CB 20 DE A2 20 FD A2 60 20 42 92 8B 8D 95 80 8C A3 80 90 96 8B 97 8F 8D A3 8D 96 99 98 8F 80 93 98 80 83 81 82 88 FF A2 00 AD 9A A2 8D 03 07 E8 BD 9A A2 8D 04 07 20 91 A5 BD 9C A2 C9 FF F0 08 9D 05 07 E8 A9 00 F0 F1 20 AB A5 60 20 28 A3 20 C0 CB 20 56 A3 20 C0 CB 20 7D A3 20 C0 CB 20 BE A3 20 C0 CB 20 EF A3 20 C0 CB 60 20 3B A4 20 C0 CB 20 69 A4 20 C0 CB 20 90 A4 20 C0 CB 20 D1 A4 20 C0 CB 20 02 A5 20 C0 CB 60 20 A3 9A 96 8B A3 8F 9C 80 81 82 FF A2 00 AD 1C A3 8D 03 07 E8 BD 1C A3 8D 04 07 20 91 A5 BD 1E A3 C9 FF F0 08 9D 05 07 E8 A9 00 F0 F1 20 AB A5 60 20 E3 9C 8F 96 93 90 8F FF A2 00 AD 4D A3 8D 03 07 E8 BD 4D A3 8D 04 07 20 91 A5 BD 4F A3 C9 FF F0 08 9D 05 07 E8 A9 00 F0 F1 20 AB A5 60 20 EA A2 00 AD 7B A3 8D 03 07 E8 BD 7B A3 8D 04 07 20 91 A5 A5 32 20 42 A5 AD 03 7A 8D 05 07 EE 05 07 AD 04 7A 8D 06 07 EE 06 07 AD 05 7A 8D 07 07 EE 07 07 A2 03 20 AB A5 60 21 23 A1 8F 8B 9A 99 98 FF A2 00 AD B5 A3 8D 03 07 E8 BD B5 A3 8D 04 07 20 91 A5 BD B7 A3 C9 FF F0 08 9D 05 07 E8 A9 00 F0 F1 20 AB A5 60 21 2A 00 01 02 03 04 98 97 90 9D 96 A2 00 AD E3 A3 8D 03 07 E8 BD E3 A3 8D 04 07 20 91 A5 A2 00 A5 AA 29 10 F0 07 A9 9D 8D 05 07 D0 05 A9 8D 8D 05 07 A5 AA 29 0F DD E5 A3 D0 06 BD EA A3 8D 06 07 E8 E0 05 90 EC A2 02 20 AB A5 60 20 B3 9A 96 8B A3 8F 9C 80 81 83 FF A2 00 AD 2F A4 8D 03 07 E8 BD 2F A4 8D 04 07 20 91 A5 BD 31 A4 C9 FF F0 08 9D 05 07 E8 A9 00 F0 F1 20 AB A5 60 20 F3 9C 8F 96 93 90 8F FF A2 00 AD 60 A4 8D 03 07 E8 BD 60 A4 8D 04 07 20 91 A5 BD 62 A4 C9 FF F0 08 9D 05 07 E8 A9 00 F0 F1 20 AB A5 60 20 FA A2 00 AD 8E A4 8D 03 07 E8 BD 8E A4 8D 04 07 20 91 A5 A5 33 20 42 A5 AD 03 7A 8D 05 07 EE 05 07 AD 04 7A 8D 06 07 EE 06 07 AD 05 7A 8D 07 07 EE 07 07 A2 03 20 AB A5 60 21 33 A1 8F 8B 9A 99 98 FF A2 00 AD C8 A4 8D 03 07 E8 BD C8 A4 8D 04 07 20 91 A5 BD CA A4 C9 FF F0 08 9D 05 07 E8 A9 00 F0 F1 20 AB A5 60 21 3A 00 01 02 03 04 98 97 90 9D 96 A2 00 AD F6 A4 8D 03 07 E8 BD F6 A4 8D 04 07 20 91 A5 A2 00 A5 AA 29 10 F0 07 A9 9D 8D 05 07 D0 05 A9 8D 8D 05 07 A5 AB 29 0F DD F8 A4 D0 06 BD FD A4 8D 06 07 E8 E0 05 90 EC A2 02 20 AB A5 60 8D 00 7A A9 00 8D 03 7A 8D 04 7A 8D 05 7A AD 00 7A 8D 01 7A AD 01 7A C9 64 90 13 AD 01 7A 38 E9 64 8D 01 7A EE 03 7A AD 01 7A C9 64 B0 ED AD 01 7A C9 0A 90 13 AD 01 7A 38 E9 0A 8D 01 7A EE 04 7A AD 01 7A C9 0A B0 ED AD 01 7A 8D 05 7A 60 A2 00 A5 FF 29 01 D0 09 AD 03 07 29 FB 8D 03 07 60 AD 03 07 09 04 8D 03 07 60 85 21 8E 01 07 A9 00 9D 05 07 A9 01 8D 00 07 8D 02 07 60 FF FF
" G r" w- ?0 l0 [" p
+ s* K' |7 z) S- v/ g$ z& S7 G
) J% }8 K' ?6 r7 N, }/ R, g; W- 6502 simulator:
$ V# x! \! C# x5 z - PPU写入程序:+ t# I$ e% }# `2 b' o) N
- .ORG $A0003 T4 d" y# y! b
- CSP = $80) ~9 l/ W( [1 d7 _* }" A8 M/ Y+ ]
- C0 = $81
9 \) S4 z* p; h6 Q5 ~ - C1 = $82# e5 o3 K" U0 z! \4 ^# I
- C2 = $83
* d5 H" Y U$ m( ~, A - C3 = $84- l, S) _- L9 Y: b1 S( Z( J0 {
- C4 = $85
7 I3 V. c+ r3 E4 J - C5 = $86
, y% m! N6 T- v5 S9 W- m! X, b# n - C6 = $87; k+ ?. B' C- c6 f( s$ P6 X
- C7 = $884 r3 u6 [# I% B9 P. s
- C8 = $89" [0 i% k8 `: S9 f6 o9 u/ C
- C9 = $8A9 ]' \: l- E, J' {. r
- CA = $8B
6 @4 x% j& f7 b% _ - CB = $8C
4 f- \& O+ D+ w6 C - CC = $8D/ _" H$ k4 I( ~0 W8 z
- CD = $8E( v' `; H, T5 H
- CE = $8F
$ ]; C1 U2 F4 `8 | - CF = $90/ Y! f8 m3 H% F: e
- CG = $91
# Z& a |& l8 \# O& ^ - CH = $92
( o) Y) O9 W7 D9 ~0 n' z6 m9 w - CI = $93
8 s. K2 u5 c/ Z$ s4 d! \' k* F - CJ = $94
* R, y/ ]5 { D+ _! ` - CK = $95/ y5 h. m. \3 u: V
- CL = $96
' c6 J. e8 u) d0 `1 Y, [ - CM = $97$ n/ B$ G: y" E& U0 I! {
- CN = $98- K& v$ Q7 C/ \. E$ S
- CO = $99
, {1 u. q8 h. N. H" N+ | m+ |8 E7 `0 C# e - CP = $9A
2 U6 t9 u6 ^! P9 M- D" g9 l - CQ = $9B* t8 ?3 H8 j+ C" n2 V2 P
- CR = $9C* |) M8 s' h6 R E5 f
- CS = $9D7 c- t" n" o6 F: k7 G, L+ e5 d
- CT = $9E
$ ]/ b* Q0 E9 T9 d1 `# x7 z - CU = $9F
0 f# m C1 X$ q5 \ - CV = $A06 [' o' V% a, p& N# B; _
- CW = $A17 u1 e; Y8 }' c4 Y
- CX = $A2
! l1 p) E2 j, {0 B- ]6 R, T - CY = $A3
# M* ^6 l# ^6 T& r% e - CZ = $A4
! r3 u( Y( O: T, {' Q, F9 v - CEND = $FF
% l5 v% V m+ ], q" G1 E+ x# ? - : S _7 A9 e3 [& ]! w
4 l9 ]% {% Y; ]4 f8 a( {2 W- CMP_RE:- R3 R5 \& Z0 { ?0 S
- LDA $FF% J4 C9 S6 a/ B* Y1 B
- AND #$7F
s8 _7 z( `3 b; H. [7 @/ P - STA $2000. q; V2 Z1 @/ H# t& t4 |
- LDA $2002
& i& ], k+ L% ^( V - LDA $25' F+ d. P$ k0 o k
- CMP #$01
3 F: l+ [/ l" D* @: _- ]/ ] - BNE PROREG
/ W- y) z3 g1 T$ l3 l - LDA $F5,X
A3 X! q* P+ f* ]4 F; ? - AND #$CF% u# [' w0 h: n1 p& G* S9 C3 u
- BEQ PROREG
, S" N* o2 e0 m* v. }2 B - JSR PPU_CMP
$ j8 Y Q' c( W6 c8 R' ^2 ` - C_RE:5 u$ r5 ~- ?1 \7 b2 S6 _
- RTS
; H9 k* m* [8 j% O4 W - PROREG:
- d7 `. k! t7 A( r$ g) I% ~ - PHA h* B4 x$ d$ f) c9 k! x
- TXA
5 c' g* b0 H; `% G, H+ J - PHA. X s: C9 q. S8 c1 Y
- TYA( N0 V: J8 H. Z& i& s
- PHA# q) k, j% j2 ~$ p. K8 \# G
- LDA $25
& d7 ` l7 n7 k1 Z( d3 R/ ~ - CMP #$01
* a. T7 J; I: d# M2 d7 E - BNE RE8 x5 U7 x$ y' D- ~! v
- LDA $010A* h$ Z! W3 K9 n
- CMP #$008 i" [( q: c4 R
- BEQ P10 b* {2 j V! ~* B7 y2 U
- % ]. P; g1 m3 v- M3 P6 G. o; q
- RE:! \6 B' P4 h' n" n w+ `
- JMP PPUWRITE
0 M- U" d8 L0 L1 M6 ^" w" ? - 0 Y6 T6 Z2 `7 B% \! a
- P1: ; 条件判断
7 m3 t! e/ K" K& E: Q7 B* E - LDA $7FFF, Z, q: {/ K' i8 O5 c- `
- CMP #$FF! f4 \$ J6 `$ D. Q
- BNE P1RP
. \4 N, q l2 [4 `( u - LDA $7FA0) l8 b8 K* h7 l" V9 N; \
- CMP #$00
. F$ Q! T) w' G' r8 d- U - BNE P1CMP
7 W& T m" Z- k$ }% r+ d - LDA #$FF
! O& Q& F. M, O" ^' I& z ` - STA $7FA0
5 ?/ t3 B/ I @! z# M - JSR CLEANA
! K1 K9 W9 h/ a1 W' f - JMP PPUWRITE
/ }$ M9 S, V S# q9 x# b" m - P1CMP:
s3 s; e; T- h! |, J: v - LDA $7FFF1 `% S7 i8 p: v. g- s6 w
- CMP #$00- D2 M: o7 i4 G' g. g0 g
- BNE RE( W+ F$ ~% ~' a/ b# s: E% \0 d- i
- P1RP:, ]- }7 x; J- \8 A- }- j/ W3 T8 H
- LDA $20029 P+ }/ ?4 M( w) J) m
- LDA #$00
" m5 v @3 d0 `4 r- T( r6 ~) I5 b8 J1 v - STA $2001
/ c# ~6 I0 l' `) L( _ - LDX #$00* v% e: I: Q5 P8 O6 u
- LDA #$FF
|9 g/ e* f0 |" Q$ `0 W+ T d - STA $7FFF
; a6 o: P9 c$ R/ I6 f - STA $7FA0& D& E* u# p! I. x5 }
- JSR COPYPPU
) n1 E0 `# X1 ?4 A - PIRP2:
4 W' {5 x K3 @4 \( E1 b - JSR CLEANA6 u& d" g ?$ x' w6 o: C$ Y
- JMP PPUWRITE
) L6 o; T5 [9 L2 |: ?: \
- V; y: V- y3 ~. @- COPYPPU:$ b8 z/ V# y! l
- LDA $FE
1 _3 x! T; p# ]( L - STA $7F502 u% `0 @/ R# R2 ~9 Q
- LDA #$08
) M/ @* J/ l: { Z8 r - STA $FE1 v) f, H5 ^* R0 w' }7 a6 c. v
- L0:
7 D: _& W- L2 l* B - LDX #$006 C8 Q# L7 {8 R% n, R4 g& t
- COPY_07C0_07DF:
9 L( g6 m* g, V - LDA $07C0,X
0 m5 r& f4 `4 @0 ^( } - STA $7F00,X
0 ]" E: u+ k: K# A5 n# E1 `/ h% [ - INX
/ Q, d$ Y1 f* b- N - CPX #$402 \! \, p7 e) J
- BCC COPY_07C0_07DF
% k+ O. Z2 \% p' x, l - LDX #$008 ]2 B, e" ^$ D/ ~4 D8 O* y2 L2 O( ]+ p$ w
- PPU_07F4_07F7:( B) Q9 g" R) H1 m/ o
- LDA #$00
6 U+ T; B1 y. K& [ - STA $07F4,X
: A2 J! O' t q ~, l% o2 l - INX2 e+ R7 |" w$ M) T$ P8 i$ v4 d& A
- CPX #$04! q, m j* ?+ E' H
- BCC PPU_07F4_07F7' }" D8 U L% n) T$ H9 H2 R
- LDX #$004 c3 g9 b- e Z6 ~. D1 d5 ~6 F
- COLOR:- h; A f# e( r1 m
- LDA COLOR_DATA,X
% k' k1 ^# e5 C+ ?+ J* i# P - STA $07C0,X) d) {/ S, b* n4 k
- INX
* Z( M) I# j: H* T p2 B% x - CPX #$10
4 S; U1 h1 P1 W, B9 ] - BCC COLOR
$ e6 U6 |, Y3 P" s( J+ B - 3 Q7 q1 t1 d. a# V6 w- R/ V" D$ S
- PPU_COLOR:
+ R1 y* z6 s$ K+ ] - LDA #$3F/ O! M6 ^ l: P# [3 W6 ^3 Z! T6 Q
- STA $2006* @2 F) N! V7 O6 J
- LDA #$00+ `% J/ W6 `6 h6 _: |# e% t
- STA $2006
$ v" R( w9 ]6 x: m, z" W - LDX #$007 i& X6 g3 {; y& U; G( `( f/ W
- PPU_COLOR_W:% ]" @8 A$ e, |$ `
- LDA COLOR_DATA,X3 l/ Y# m3 ^( t5 S. W
- STA $20076 G" n0 ^' ?; f8 N" p8 {% n q
- INX
( ?' E5 F! D" p - CPX #$10
. s6 V/ E6 o$ A - BCC PPU_COLOR_W6 W$ k6 F" U& x% l" M
-
6 ~: A2 J) ?" G% q9 d3 F8 ]' A2 \ -
0 M' K1 {% l% x& T" A. {% Q* e/ C - LDX #$00; L! t3 H# `) Y$ z1 Q5 g0 m+ m
- LDY #$000 p3 ^5 t) n Q' x! ]( k% W
- LDA $BD3 x: ]$ [+ d, ]- u+ h% s3 W# p7 l4 l: ~
- PHA
$ r% {. A* w3 b! ]0 G9 a6 w1 a - LDA $BC4 U5 l) f' T* m4 U: g! I9 Y, n; Q
- PHA
! i1 a( A% G: Y2 v7 H" I - LDA $BB
5 V* p2 h3 i$ I8 |4 @ - PHA6 l; L5 G* V( P2 E0 B1 s! u
- LDA $BA) A( V+ D/ w4 v" J8 q
- PHA) d# [4 `5 i# T3 p7 J& \4 C6 U7 K
- LDA $B9
9 O, |) O4 }. q- m; e - PHA
% R- R7 v* w8 G. `7 g( Q - LDA $B8( O p4 N9 e, H# x
- PHA
" W! `4 u8 G* |5 B5 a - LDA #$006 R0 W% D4 a' C8 k" [
- STA $B88 @; a* }3 v1 h+ l9 \* L; P
- STA $B9
# o4 |7 o& C9 w" U' s$ v5 ? - STA $BA/ |, U& y8 R- a' m
- STA $BB
0 D* c$ F$ i. M+ ]4 x/ E - STA $BC
: Z' h$ n; y. d6 W' e - STA $BD0 x# j7 E6 N. _
- LDA #$00
% H3 n) q3 ? l - STA $BA
+ B6 J9 W6 `& A9 V+ O. @ - LDA #$20/ N* v8 y5 O2 f' a. E' u
- STA $BB
) `* o7 Z, r& N' j" a/ Y$ Y1 [/ Q - LDA #$00* B: K- J7 V9 H- E9 Z1 V/ ?
- STA $BC( b% W) @, J/ ^; L# ?
- LDA #$608 h0 o- O* Y: ?7 C1 Y( ]
- STA $BD$ I% j+ g: ^7 W% P1 n1 @2 ~; F
-
) K3 Z& y9 d6 u- X6 q8 m- z - L1: ; PPU复制
9 p# H( c" m( e4 f - LDA $BB
! V& |% C' [5 n. y - CMP #$28
. s) s5 i" [1 C2 \9 B& { - BNE L2
3 X8 M9 @2 \+ S. O* ~' t - LDA $BA1 x2 w8 K8 o' Q$ y$ g! V- z3 D7 N9 L
- CMP #$00
e# W+ Y& Q$ z5 u3 B4 \ - BEQ PROADPLA& Z& b8 a; M. h9 G3 S
-
3 O- o7 ^; G$ J4 l - L2:! }& ^$ W! ^9 j2 I7 ?6 u
- LDA $BB3 ^( U. _: L8 R# ?- x
- STA $2006" Q# J: |: l! R( d8 D
- LDA $BA6 B) }) i; X1 J' e4 A: X3 h' w( U7 [
- STA $2006
$ j2 k2 {7 ]4 Q% N% P - ) L( N& \. r7 y- f9 {( [
- L3:
9 k( h7 x6 \ V6 v/ C5 s/ L) o - LDA $2007( T! U7 S7 @8 g7 W9 a" ?0 z
- LDA $2007
, \) n3 q' [9 ?! n' a - STA ($BC),Y
( m- i: u6 _& m) Z# |: ^& @9 r
. b/ w N: h' ^ O- L4:7 w- d v* V2 f2 G& _* D
- LDA #$00
4 _! \3 i6 z+ W5 E - STA $2000% q, ^' e+ I" @# L/ H& p
- INX
, [% F% Z" T$ F* z - INC $BA4 C' K K! ?8 _7 Z2 u1 D
- INC $BC
# N9 s+ \ y* l - CPX #$00
2 Z6 u' k3 K4 D - BNE L1) j4 k; D7 W' P8 v! [
- INC $BB: S: T* S; Z$ i+ Q$ Q7 u
- INC $BD( D: H3 U; I: P6 b& M
- JMP L1
y; T" B3 F- u+ ^$ F; o
# O' o% g1 G, `) s& e- PROADPLA: ;出栈1 c/ D1 m: v) \7 Y) l0 H
- PLA1 g1 E5 e3 m& Q% d
- STA $B8
, K- e; v1 c5 m/ I2 c - PLA
6 t$ g/ D) [- ~( J; F% s" D+ s) a - STA $B9
Y/ V- G7 @+ K - PLA
6 P8 \+ p1 Y; y5 q9 s4 V+ Y* O9 r - STA $BA' v! e2 h4 L1 a0 A+ _ |/ m" c& @
- PLA( z% d9 x/ `% L
- STA $BB
- @$ S# f) z. ~" w2 C1 I - PLA
& V: F" l2 x' O( R - STA $BC/ v7 F, z% x4 o' `6 A1 l; V$ Z& j w$ e3 a
- PLA
) z L2 C L( U/ ~7 d* ` - STA $BD( O: e Y; r% A) N: }2 O
- CPRE:
- F& q* E* \& \ - RTS
) B1 l& @! b: `; k7 V
& c5 n# F, U- i4 d2 U+ R0 `- CLEANA: ; PPU清空
+ @8 T; C% R/ o# c5 V6 K. _ - LDA $BD/ y1 r6 L# \8 Y
- PHA# Z" v7 ?" t3 H1 r: F9 E5 J
- LDA $BC& z \; l% B- e# P
- PHA
& V* |$ T6 Q2 X: n - LDA $BB$ ~2 R j* e8 i; D/ S6 A: d1 A
- PHA
% E. l7 l* o; v# G6 k) P; K - LDA $BA
% i0 f7 V9 y5 ?& C; b# p2 ~) X* U - PHA3 [$ I- B w- x1 n/ k7 w' p
- LDA $B9
1 w1 C% E. J( Y - PHA! K. O" D5 l; {, z
- LDA $B84 j$ j0 P3 {' `% ^1 C, x6 o& W
- PHA. }3 V6 `: P/ |3 o* \
- LDA #$00/ |, Y; m- r+ j# c
- STA $B8+ _: U; c5 @/ `2 x" x7 ^% g; N
- STA $B98 Q {' A, F1 v, X+ ~2 M3 k
- STA $BA' s2 d" K: f9 T0 [, h" i
- STA $BB% {5 R5 P6 O" V6 H7 ?- ~+ R2 @* N
- STA $BC7 q V' C6 F3 a3 Q7 E- N
- STA $BD( @& a- W, m/ M# O* S
- STA $2001& D$ t5 y8 P3 p# {4 z5 o6 \# V
- LDX #$00
% F. e# G( j+ x& O/ z/ p# R - LDY #$00! ?9 A6 ?9 z3 ?' ?" ^
- LDA #$00" \8 R; P, ]; Q1 l
- STA $BA) H+ t$ A" E( T7 T1 x
- LDA #$20
7 F8 Y9 J0 V; \: p3 j - STA $BB9 h* p# k& K3 k: F' |
-
- p" J" x s2 E, M - CL1:3 [+ R' A! e, Y: \, L
- LDA $BB
! C- Z; M% H3 A, {5 | - CMP #$28
) _0 ]3 K' v5 z% Q - BNE CL2
, ?2 l. f& _4 ?, t4 ] - LDA $BA
' x0 h2 Q1 U, A: D z3 q - CMP #$00
' h& B) U* B6 R; m; } - BEQ FREEWRIYE# L, L9 k( P5 j1 b7 {+ e
-
9 N T `4 B* P7 Z! u - CL2:* B3 Z( p' V, I* Q
- LDA $BB2 l, a7 J8 [+ f3 u+ J+ w! N& q
- STA $2006
+ o( [1 V7 N& r1 @ - LDA $BA
8 G& T6 S! r7 V0 H7 E - STA $2006
! l$ B2 d3 j, V8 y% z$ ] - m5 R# N3 c4 g/ l. h8 w. x" y
- CL3:
8 U- ^" g- `& _' V+ T7 f - LDA #$003 D8 U3 W* z4 F1 o3 q
- STA $20076 S3 O0 m* C1 ]! c. E3 g0 Y, p5 q
- 6 I4 y/ H: r/ Y: q: W/ H/ {
- CL4:
( n0 i1 p' F+ H - LDA #$00% p E: a/ c8 S- H
- STA $2000* O+ @5 u/ B* \2 ~. c! i) ^5 `
- INX* C% R/ j6 k, M$ i# Q) E
- INC $BA; O! M. Z$ k/ ~% Z5 c
- CPX #$00
0 u3 ^1 y+ A& g1 Q- s9 k5 M; P% K - BNE CL1/ r6 W: @( f1 ?; q9 z7 P( y* @' Y
- INC $BB
8 `" ]' l2 A+ s6 @, D( v0 S: J - JMP CL1
/ Y5 P$ T I4 [$ B( T1 ]* j -
/ J" }6 [' C/ H, O& A- i - ! [, }( \5 l# v" ^% o( Y
- FREEWRIYE:
: F5 t7 Q" M: D) y% P& j
8 H/ D1 A5 v4 ` T& M( ?* R- NOP0 }, n* n) h5 ?+ g5 [$ D
' q: z' t$ e$ ^- s" V8 u
* j Y& G- D5 N* C A- ]
* b* C2 N- T# O# z& c) c4 A; G% C- + @6 h; P, q/ m
8 J; c; j Z8 m& D- CLEANF: ; 恢复现场
* b- _8 J+ U0 P) m& g: a7 K- m$ E - ) T! K6 K T# z8 }: q$ U& N
- PLA
. b) C) A: J1 O4 y) p, F5 T8 Z - STA $B8$ t$ T2 R0 _! l
- PLA
' l+ H: J0 a; Q9 E9 W - STA $B9
4 u O; [5 T& O- K# W8 E+ V - PLA
: D8 l) L, r: n. A+ @ - STA $BA
! y1 n( h4 g% v# \# ?+ Z; a - PLA
/ c' t2 ^9 p4 `7 g. E5 c - STA $BB
' |4 l7 C+ w" ^- ~ - PLA
- j$ T4 V \$ a - STA $BC U4 g1 P0 y/ V' O8 |" J
- PLA
; Y% q& @" w: y- h2 m* Z - STA $BD
- Z1 y: L2 t( \& g - CLRF:
6 v* h9 S& _: J7 K - JSR FREE_PPU
5 t8 v2 q8 C; \$ T1 i% F - RTS
3 @ N, ]. r$ G/ `* G% n - 0 H) ?9 O! j O k2 S
0 J' H: R4 K) Q: Z- PPUWRITE: ;PPU写回
3 U# i# K7 c8 u- Q( P& { - PLA
" h$ t" z6 r4 Q5 p( q - TAY1 V, e# z: ?. f9 ~
- PLA
[* ?1 W6 R" h& r# @( | - TAX4 X: s1 N5 }* ~2 o
- PLA
6 F: Z" F' _; U, X+ X: n - LDA $25! e- F6 b8 ?6 l% ]0 ^" X
- CMP #$00
5 U% `! M% H! l' t - BEQ WP1
4 {, J: k9 Y+ {* i1 O" c - LDA $259 s& `6 e! G. W8 u& K
- CMP #$01
' ?% y5 D$ k+ e, ?7 y5 R8 f - BNE WRE
1 e( @% o4 `: X1 Q - LDA $F5,X3 F ^, P% S9 p( d0 O0 A+ h* ^0 J
- AND #$EF' V; n7 G5 @1 X
- BEQ WRE5 u A4 H+ L( ^: |" v! W9 ?
- LDA #$003 x: N5 l: S& e/ Z# V/ R
- STA $7FA07 G" z) F' f6 _; i+ m& \! J
-
. q4 U! V( ^3 a+ ^+ L; x - WRE:/ V4 f! Y& B1 G: r d4 [* y
- RTS
! Z( u9 `' L3 w1 Q" ? -
, ~; {, M, {4 j0 c - WP1:
1 C" }% I9 E- Y - LDA $7FFF
! h. W/ W7 O/ d; J- J& M - CMP #$FF: v! ]: d. ]1 D/ d6 x8 y8 u5 U% w
- BNE WRE
7 Y. f4 f4 r8 n" U - LDA #$00; E0 P* A. p# Z
- STA $2001
; a0 h% b2 g0 }, t( k - LDA $BD* f; B; q9 I- O2 g9 X* u8 {8 g: d
- PHA
2 d( B* x1 s' C7 r! k! p0 f) m - LDA $BC) v. w% f: V8 G2 |# t& }
- PHA
6 A C7 |% [- ~' ]; S/ M# b9 U - LDA $BB |' }# L; v( c, n9 q% j
- PHA5 S( X( L3 r" N. x& o
- LDA $BA
7 o% g! P3 n% k/ T8 j3 i) A - PHA
! p& ], N3 V2 w D V - LDA $B93 |5 w! I* [; y! r
- PHA1 a! ?6 w$ h* t6 s6 d8 Z+ ~. Q
- LDA $B8# L! J$ p Z- _8 ]% k5 J0 c- c
- PHA
% f0 a: h: _( {7 d3 ] - LDA #$00: g: g: P, I2 N9 h4 ~1 f
- STA $B8
# V, s; B, N2 m" m) [1 c1 X - STA $B9
: d( ]+ X x7 F. T4 d - STA $BA* C. s- N7 C4 Y! s) v" @
- STA $BB
2 }+ x, K3 u" Z% i0 O - STA $BC
0 F7 O5 F6 d- w# r1 v - STA $BD3 m% n4 W- B5 B% r5 V. i! o
- LDA #$009 t. Z$ H! J) T9 ]3 R0 Z
- STA $7FFF
: Z6 _1 X2 ?3 r; @3 }$ I" K# ]3 p - 6 x' ?1 l: _, m9 \
- WL0:) D1 i4 Q7 p. I g
- LDX #$006 l: w; e- B+ v* G8 r/ G7 c7 v
- LDY #$00% M' s6 M0 u: W2 E( p
- LDA #$00, [" m/ ?1 V( t# z9 H$ K
- STA $BA
) R5 l2 v- v6 `9 o3 Q6 ?# l+ {& ] - LDA #$20
, S. h# m- K& I; G0 o: v - STA $BB
) w* h3 a' C$ y5 ?6 f' i - LDA #$00
+ n" v9 n1 r0 ~; a& x: j" [1 w - STA $BC
) y( ]& b! f5 G1 ? e- d - LDA #$60
" C3 {: ^ P7 H6 o o% S) G1 K - STA $BD
( }- v# G9 w6 s: a& u' @ -
6 k% X3 {* A' ?' t% r& d) R4 ]( T - WL1:
, r% t7 F# c; [2 L( b - LDA $BD
! X8 o+ p3 v: q - CMP #$68- P8 }# t( u# Z7 N8 G7 }9 L
- BNE WL2( D4 G/ b* T, O$ Y
- LDA $BC
3 L3 T' A t3 {- d/ @0 L - CMP #$00
4 `, _, b' P* Y9 p1 F - BEQ WLR" w; o h# F' t J, f% v
- 2 ?9 L) r* a! O9 x$ d/ ~/ l
- WL2:6 k8 H+ E% W) X; U# T8 X0 z! v
- LDA $BD$ Y1 G; s) [6 M5 E
- STA $2006
, c' p4 U, m) F' { - LDA $BC
- T1 l) o1 P3 G$ z. Z" v" T2 P - STA $2006
8 b( {( }) m3 @' i$ b( Q4 Y2 e - # l- c$ p* q8 p/ o1 j
- WL3:
! g$ o6 Y8 Y. G0 v - LDA ($BC),Y
, e- M6 u$ D1 I2 \; Q - STA $2007
F$ k4 r$ L7 @1 @* Q
- r: [0 E- k. _- WL4:) y# B: ]. }$ O' y: i
- LDA #$00) @! V5 `' L7 b+ i7 k0 W* v; H- N. X
- STA $2000! b. S) N& t" K( X9 E
- INX q& k/ \( s, M% P
- INC $BA
4 l, W! P* F9 { - INC $BC6 H, n0 \/ f" N H( [* [/ U
- CPX #$00- I. b$ a6 X; [8 a' g0 {0 N5 q
- BNE WL1
m& L2 \9 d, J, @7 H2 D4 W$ S - INC $BB. Q9 l! {* f& _8 _0 u ?$ n
- INC $BD Q: M# u" p9 B2 ^2 u1 e! G% S) v! E* e
- JMP WL1
1 x, `) l4 M, a& @7 c6 b# ^) z -
) u: s& B' w1 i5 h7 A. p- t - WLR:
. V; C. H% X) }, ?9 P6 A% e - LDX #$00) }2 k- V5 n) W5 r+ |! A
- COPY_7F00_7F3F:
/ i: H# X/ q" h7 Q - LDA $7F00,X$ v9 b( \: F7 g1 F( v( ?7 c
- STA $07C0,X W7 X# D- i$ _
- INX" e' D2 z9 q* `! h' J$ g9 i
- CPX #$40# C" U {/ Z+ F$ }- z" l x
- BCC COPY_7F00_7F3F
* `6 Z0 N+ ~) V# ~: n
2 b0 S V7 b# R- G$ w- LDX #$00
! ^5 {6 N# S/ j5 E2 Q4 S4 L& f - LDA #$3F
) y4 o8 l4 F9 D$ n, A5 _! _ - STA $2006, B% e8 `& F! @1 v5 l4 z3 v
- LDA #$00
7 @' e/ }/ @# n9 v w, w# W - STA $2006% O) q X. _# V
- COPY_7F00_7F10:1 @- v) ] g7 M @3 d W+ l/ w
- LDA $7C0,X
+ h8 i6 a& G6 p% N2 r - STA $2007$ G9 z9 [; U/ o+ l6 w1 T) d
- INX9 l& v( p: C/ q: S, w! @( Q
- CPX #$105 L" n* i$ N% k
- BCC COPY_7F00_7F10
3 V' ?0 y6 D: k4 G. \0 m% a - 4 d& L$ `# D# m% U0 f
- LDA $2002) |, g1 @. j V9 S) {- j- C) U* `
- LDA $FD
) P. [6 x! o4 ]$ m - STA $2005( {' m; T: |2 k: Q5 S2 B% N
- LDA $FC
* g2 V$ z( r6 d( L9 i, Y - STA $2005
& h0 A4 {7 x! f0 _
$ B1 J* {& p2 q' R, E; ^5 ?+ |0 r; n) K- LDA $7F50
4 m: B+ `: y7 E - STA $FE
# n! B% ]. f5 `( f3 f - LDA #$00
: |* o: d5 ~0 [7 d - STA $2000' p- ]9 M! W8 `- U9 z( t0 a% m1 n4 W7 h
- PLA
0 u- b7 T: ^. z+ F! \0 K% ^ - STA $B84 \* `/ q) c6 L$ C
- PLA% ?, ~1 _2 C& b$ h1 ~; F
- STA $B9
0 I0 {3 U' s/ c8 [) k - PLA5 p9 D" p# z7 u% h4 T
- STA $BA
- H" e: b: V M0 C6 Z Y% W - PLA# B% f# h4 y) J' T+ e" h/ W! q
- STA $BB
! |7 S# J5 B2 s( q/ |% G) j - PLA4 M* h( N4 `9 \0 b! m
- STA $BC- `# j+ p: g2 |/ Z0 s
- PLA( u& v2 i2 L5 D8 K( I2 |
- STA $BD
9 l. r5 M. `& F; l -
) D7 a1 n. L, Q - RTS
, x9 p3 s; e/ D0 R/ e/ K
5 n) k; D6 c% f' M6 C1 n) W- L- PPU_CMP:$ W: e$ h( g4 Z+ o, _" f
- 6 ^8 U b1 l. m: x3 h
-
; E, {& ]; @ v! G& ]! L+ R - PPURE:
; H F+ P) a/ T! j - RTS* X8 y5 r" k4 b c
6 ~' U) G2 d o3 D/ Y& M* i& @- " q- n; F2 e" [5 d) E0 Q4 K, Q
- FREE_PPU:
8 k, i3 r& U3 `% h
% X9 h$ g8 r6 M% g- JSR TEXT01_PPU
^ L, |5 U8 d- z - JSR $CBC0
6 v9 j/ F: G/ ~ - JSR P1_PPU
8 l* ]% @1 x" `* C - JSR P2_PPU
) O* u: f% d( U- S2 t+ e& Y% l - RTS( e# ^: I, `6 \, M
-
# w( t; h; G* U4 P' z# z6 ] - TEXT01_ADDR:/ x' c5 }1 g6 I) V" N
- .BYTE $20,$42
' m4 E- v9 I3 R' {0 P; @ - TEXT01_DATA:
& u# `1 P+ |2 {0 h' Q: y. q) T: l - .BYTE CH,CA,CC,CK,CSP,CB,CY,CSP,CF,CL,CA,CM,CE,CC,CY,CC,CL,CO,CN,CE,CSP,CI,CN,CSP,C2,C0,C1,C7,CEND
& Z( @ |" {5 q' a9 m; q# t - TEXT01_PPU& @% q2 B; l+ v. T1 g9 U0 I+ z+ q
- LDX #$00
9 N+ b% Q$ k/ j9 O$ L5 @8 f8 Q - LDA TEXT01_ADDR2 {, h/ J: L9 C. ?+ G* B; J
- STA $07037 A" y9 e0 B1 Z) f
- INX+ B9 k7 D% M5 g9 s/ m0 ?
- LDA TEXT01_ADDR,X
5 S5 l+ a8 _9 |+ q, v - STA $0704
( T7 v1 z' `( B( B - JSR PPU_PROCESS
; |9 H6 E$ u Y# N. A% T: E - TEXT01_W:
: m' H8 `% M5 |8 u - LDA TEXT01_DATA,X
1 B6 K2 N# Y: f: q1 Q9 R/ A - CMP #CEND, C7 e* x+ O2 h; } V: v$ h9 D
- BEQ TEXT01_START
3 d/ G& i1 B( Z% M% Z3 ^0 } - STA $0705,X9 m4 _& L* m2 |
- INX
$ r* C7 f* ^5 A9 K - LDA #$00
. b: \. ?/ i( {0 i7 ] - BEQ TEXT01_W/ i& [0 C0 r; D' `
- TEXT01_START:
# I' O. n: i5 a* X - JSR PPU_START
0 E' t6 G+ \9 [" @8 n - RTS" Y5 _4 z' u, _7 d
-
: [0 k0 ?3 V# y' a) @; Q; i9 V - 5 V6 Y# e' A. F V# U" Y7 z
- COLOR_DATA:
5 ~. g/ f4 a! O1 h7 R4 Q. e1 B$ G - .BYTE $0F,$28,$28,$28,$0F,$28,$28,$28,$0F,$28,$28,$28,$0F,$28,$28,$28
( G3 B6 S2 k# `3 z1 h1 ` - - k; Q/ U ^% v( G
- P1_PPU:
9 C5 z$ Q! I1 B, {! W& @ \ - JSR PLAYER_01_PPU
6 I' q0 M( C' h - JSR $CBC0
- f6 `. r7 s$ T7 y( n3 J - JSR RELIFE_P1_PPU
+ J+ x% R1 T# M4 g2 f+ A& P, i# J - JSR $CBC0+ O2 Z% o7 ~! V0 y, G+ o$ g' l
- JSR RELIFE_NUMBER_P1_PPU
k0 P% Z7 [3 i0 M! i - JSR $CBC0( _3 P% w' `0 f6 E
- JSR WEAPON_P1_PPU0 X2 p+ H) Z/ I: p4 ~ \
- JSR $CBC0
7 X/ r7 v7 W( ^4 y - JSR BULLETPPU_P1_PPU
# J9 S3 n0 {5 f2 a0 r2 D: Y - JSR $CBC0
! O6 x1 q( d. S% U+ L9 r - RTS8 F: T$ _& }, G- ]# `, n/ L4 y
- 3 T8 d( f1 `$ [' c! H5 K/ ~
- P2_PPU:! E z- h/ ^2 j* D
- JSR PLAYER_02_PPU+ Q7 Z8 d% v7 B1 ~
- JSR $CBC0
l ~; e3 h! b& F - JSR RELIFE_P2_PPU+ x& H; t& I/ v; a+ Z
- JSR $CBC0" o: {1 X# B. T* o3 x" o a
- JSR RELIFE_NUMBER_P2_PPU
" f3 g6 \# s0 y- ^! {2 J - JSR $CBC0
* }9 r( {0 W; u. I$ s - JSR WEAPON_P2_PPU. O. q" |' q! r
- JSR $CBC0+ ~. c! J/ w2 w7 u$ M8 n2 S* y7 @
- JSR BULLETPPU_P2_PPU
' ^6 v$ A' [' G- x' k - JSR $CBC0
2 r; b4 a; F5 h6 R - RTS5 m- f9 C9 ?0 |
-
2 P/ U1 Q3 g* R - 8 H( U4 m6 S: @% U2 S- I0 A
0 \$ n' ]0 D$ p2 n( N" W- PLAYER_01_ADDR:
) y* i1 u6 d \) d& d. L8 t: E - .BYTE $20,$A3
" |# }6 ?7 h/ h( y2 y - PLAYER_01_DATA:2 s h: P# u/ K5 H" ?8 I% T
- .BYTE CP,CL,CA,CY,CE,CR,CSP,C0,C1,CEND/ B* M3 z7 r2 |$ [. T3 W
- PLAYER_01_PPU:
1 }; ?8 g8 V5 E% v% a - LDX #$009 C# S+ t$ W8 J) f
- LDA PLAYER_01_ADDR5 q n* B+ q6 A1 @# v
- STA $0703# v0 ]" d R# \1 m
- INX
+ Y. j) A8 e3 b$ @# B - LDA PLAYER_01_ADDR,X
/ g' I2 c4 c) l& J1 p ? - STA $0704
# z6 n0 p; v, s - JSR PPU_PROCESS7 w+ {# k" s1 k, A1 P% G6 i: Q
- PLAYER_01_W:5 u. Y, j4 w) s7 G% f$ k7 O
- LDA PLAYER_01_DATA,X
5 a1 S ~ }* S @6 e - CMP #CEND
9 o _9 l6 P4 p8 p- a* B* C! Z - BEQ PLAYER_01_START% e/ m) C4 E/ X7 H8 F
- STA $0705,X- I) A4 s: k# A. R9 a( `
- INX6 m7 n' X# L, A
- LDA #$004 q$ g4 l D0 `* k
- BEQ PLAYER_01_W0 Q% N* D- o0 G. H. l, M
- PLAYER_01_START:
. }. C$ _6 T( v" j9 b - JSR PPU_START' F% p9 |$ f0 J# u* f4 _. x
- RTS3 n+ m, A4 ~8 i; N6 K
- , M" _4 S& D! ?( \4 R
- 5 p( Z' {' H% C$ N. w
- RELIFE_P1_ADDR:
/ c* J; e/ R+ k! g- P h - .BYTE $20,$E3
: M7 e, S* v7 ^5 J5 p - RELIFE_P1_DATA:* ~" v5 \! `: z# N8 d* o& S8 @* M
- .BYTE CR,CE,CL,CI,CF,CE,CEND |: W; P V# A. a& [( x
- RELIFE_P1_PPU:
3 [ E4 J0 x# v, Z - LDX #$00
! T( t3 y% o, E' K! c- Q: q1 p - LDA RELIFE_P1_ADDR
% a) H# s' `, e - STA $0703# p' C9 k3 D* y/ A- G/ y
- INX
, R5 W/ E) f0 H/ [* F& m - LDA RELIFE_P1_ADDR,X4 M4 w1 ]7 w) n; c2 o
- STA $0704
9 J# }4 B8 i1 V2 U" A - JSR PPU_PROCESS
# B4 M. ?+ Y& r! z" `9 I - RELIFE_P1_W:
# s( G7 b4 h9 a# D) H - LDA RELIFE_P1_DATA,X
& C$ r8 F. O7 y* I - CMP #CEND9 h' ?' n- e9 `7 G# m4 v% L
- BEQ RELIFE_P1_START
- d4 w u5 U6 T4 |2 X, Q - STA $0705,X
! G2 k* y' m! t8 I" D' i4 h8 W - INX
$ s1 h$ O' u& r4 K0 Z$ F }2 @ - LDA #$00
) V9 u# _. {# f0 ~/ e. N - BEQ RELIFE_P1_W
n+ I, a! k5 `2 J- q! _/ y - RELIFE_P1_START:8 W" r9 V' q) {" u
- JSR PPU_START
( ?, M* o" ?: X. l/ D* q0 c1 j, ?. V - RTS0 A* M5 @' Z6 P- M) J2 s: J" N, e
- + ~6 Y- E; k' r* u; L2 T% Z$ c
- . @: Q" a5 O1 V: }# O7 M# ^. Y
- RELIFE_NUMBER_P1_ADDR:: n& j+ s, M6 D/ v8 U
- .BYTE $20,$EA5 V% O6 c% v4 y9 \8 a6 ?5 n. K5 l# l
- RELIFE_NUMBER_P1_PPU:
. d) ]9 K4 V* U0 E& D, T/ w& S8 U - LDX #$007 a" V6 {" N' L! U. S
- LDA RELIFE_NUMBER_P1_ADDR
9 C9 C, `: o% t6 X) M - STA $0703! A1 O7 q7 w( p- f x
- INX
0 u8 R' m5 ?1 K) X1 ?' k! v( Q - LDA RELIFE_NUMBER_P1_ADDR,X
: P6 R; N9 n) s3 N3 j, a- K- Q - STA $0704. G; @$ q' `. Y. F. K+ x( v) P
- JSR PPU_PROCESS4 ]. _) i. t/ Y
- LDA $32
. e3 x7 V8 y; @4 U' R - JSR LIFETODEC) \1 J2 Y4 p& S
- RELIFE_NUMBER_P1_W:! G/ `( f1 a2 o5 R% o0 E& b
- LDA $7A03
3 F9 d B- K% B& y9 ` - STA $07055 z) d1 \" k/ w8 r/ s7 H) z
- INC $0705
1 ]: o* Z, X, x* f8 C7 e6 f - LDA $7A047 @- d/ d$ C# C+ Y4 d- ~
- STA $0706
, m0 C3 m& e; j5 F - INC $07067 y% B8 l7 U: l8 T o6 R# s
- LDA $7A05: O2 a1 A4 I; x* ~7 O
- STA $0707
+ C. O' N& o$ |7 K4 Z { - INC $0707& Z* q, X' H# G0 ~3 y
- LDX #$03
" G1 H$ o1 g( I/ v0 \5 ~ - RELIFE_NUMBER_P1_START:
2 V, B' G7 u. e) g7 |* w. c - JSR PPU_START5 S1 F4 l. n* l4 R
- RTS
' Y5 p" V; p! |6 s g) l
. N$ A! }* A& E2 C8 y. Z5 ?- WEAPON_P1_ADDR:+ f1 W( N1 Z/ X5 z6 B( v
- .BYTE $21,$231 l$ Q# {. V6 y5 A3 t
- WEAPON_P1_DATA:, K; @" {3 N1 r* Y
- .BYTE CW,CE,CA,CP,CO,CN,CEND+ h3 x$ O0 z* ]
- WEAPON_P1_PPU:+ R( u; `: [! H( v
- LDX #$00
# N4 n$ H& M/ E; T - LDA WEAPON_P1_ADDR
, q/ W7 q* s7 Q) P2 X* D0 z6 F - STA $0703 }. n9 j9 E* n" R) V6 k
- INX
4 B N, |3 i" } - LDA WEAPON_P1_ADDR,X. g+ f4 {# b7 p6 R5 M$ V
- STA $0704
- ~. G9 A. v) c - JSR PPU_PROCESS
& ^: v2 Z5 _- A+ o1 E- p- k - WEAPON_P1_W:7 j* ]- W1 y7 g: Y3 {" t* i! O% Q* }; |7 D; [
- LDA WEAPON_P1_DATA,X: N5 Y. n& w+ h% d' g# m* X0 B" T
- CMP #CEND
9 K5 ~2 Y0 b9 w3 m) M5 f - BEQ WEAPON_P1_START
( e8 W; z" u- Q+ x# Y+ \ - STA $0705,X
+ @5 h. ^# o+ F7 e1 Q( l8 {% @) H, K - INX8 C6 @4 C1 Y$ R5 n7 _
- LDA #$00
% D1 }8 M6 h O E+ e# m - BEQ WEAPON_P1_W3 d9 c E2 I# e5 q- h9 G
- WEAPON_P1_START:
( z0 e7 ~7 D; J- P - JSR PPU_START
! @8 I5 |6 `4 p( l+ q( t8 b - RTS
3 {+ {& Q$ p2 f5 w
9 D* Y) }, Q- t- BULLET_P1_ADDR:7 m Q. s" @1 W( J5 ]+ R, {
- .BYTE $21,$2A3 J( ^/ L2 O: w8 \# c$ f& A( U
- BULLET_P1_DATA:
* N8 o- F1 e& T! x9 G; e - .BYTE $00,$01,$02,$03,$046 j- I( q- F I3 u/ F' L- Z# x
- BULLET_P1_NAME:5 N o, j( j6 N9 r" h R
- .BYTE CN,CM,CF,CS,CL/ P: S C. V& u/ m
- % b5 n- W/ v# m. P5 k
- BULLETPPU_P1_PPU:2 U6 O* h" g5 s+ Y/ x( c
- LDX #$00
8 B- L7 I6 d5 M9 [ - LDA BULLET_P1_ADDR
4 I5 w' B$ p% ]1 X1 O - STA $0703. {1 A8 o4 y, K; ]. q$ e) L5 d( G
- INX
9 R( |$ d% e [6 o( b - LDA BULLET_P1_ADDR,X
9 p/ }, j" \9 P9 ~+ o - STA $0704
: o) l- d' B3 J0 V" u5 y - JSR PPU_PROCESS6 m( X/ O0 a( T5 }5 @8 Y0 s
- BULLET_P1_WRITE:3 F% m( L, N3 x5 V5 l1 _
- LDX #$009 A. c& a2 F9 [8 L7 A2 n
- LDA $AA
s- Q7 j3 F* c3 v7 v+ | - AND #$10
9 n: Q8 n$ d% _; s3 [+ Z; s - BEQ C_BULLET_P14 q; a8 z8 n, a( x4 @/ K
- LDA #CS& @8 i+ g% c+ i$ I, F$ ]9 D
- STA $0705
4 X5 l. y, ~5 ^0 Q8 k - BNE B_NAME_P1
; f% a3 M+ Z$ U - C_BULLET_P1:
% o2 l# O. Q: w; b - LDA #CC
, `" w9 _) W" h5 I6 W - STA $0705* p6 z9 b0 p2 A8 u, x9 |( \1 G/ [
- B_NAME_P1:3 r$ N; a$ w0 \" T$ k8 W
- LDA $AA1 ~" n0 X; Q. g# I [4 ?: ~, O
- AND #$0F: V1 @4 \1 W% G) o
- CMP BULLET_P1_DATA,X* y1 R4 B8 S7 p1 R) T
- BNE B_NAME_P1_RECMP# t! x5 L+ {$ g1 |0 `9 c
- LDA BULLET_P1_NAME,X( m5 w# l; F" f6 g& Q" h
- STA $0706
7 D3 X' D, F4 A8 W: r/ t/ B - B_NAME_P1_RECMP% C5 S4 i0 o; W$ V, D4 G$ z
- INX% [& g4 }; \+ G2 [3 x# Q1 q
- CPX #$05
- k5 p M9 f* B: k+ o6 } E - BCC B_NAME_P1
t( ?! e+ N; Q- [+ S" L - LDX #$023 I4 n2 G1 C H1 E: F% I
- JSR PPU_START
& h8 T% z5 O; U - RTS
& k, z6 F8 h5 x% P% b% N' | - . M2 h0 B7 M% h/ d4 |3 ^
" s+ c# K2 n5 T4 X1 Z1 m- PLAYER_02_ADDR:) v3 w. l. V: i) T# V
- .BYTE $20,$B3
" ]& x( H- Q) D$ V* ` ^ - PLAYER_02_DATA:0 f u8 J/ \* c. X
- .BYTE CP,CL,CA,CY,CE,CR,CSP,C0,C2,CEND
[3 W% N2 q5 N! t3 s6 O5 y5 @ - PLAYER_02_PPU:6 @- z# `! i K7 P& n
- LDX #$003 N. C( }0 M9 y( s8 s& p
- LDA PLAYER_02_ADDR* \+ Y f6 Q( k# G( N
- STA $0703" n+ N: y2 ~5 i! k! W7 K
- INX; t+ q+ P" K1 S6 m6 W
- LDA PLAYER_02_ADDR,X
" y, D- D1 ^# u3 k# F' d2 ` - STA $0704
* g' t9 x! e1 P! b - JSR PPU_PROCESS
, |* S0 y5 U! D& [% |7 l! V" u* E - PLAYER_02_W:( x: l. g' \! `6 |* I
- LDA PLAYER_02_DATA,X Q E+ H9 J; Y `% e
- CMP #CEND9 z7 y5 S: E9 I' k. q: ~+ g
- BEQ PLAYER_02_START
; I+ p" x, U J: k; G/ F7 |% d; G - STA $0705,X
5 _) c) |# v3 }; X8 b - INX9 g% |8 |+ B: l, w" W' ]6 H2 |+ i) Q; L
- LDA #$00$ ^/ t; U2 h7 ?- T# [* a+ h
- BEQ PLAYER_02_W' `" q4 }. r! O' |# F
- PLAYER_02_START:7 o3 Z( g# B- M( ^% d# F9 C7 M
- JSR PPU_START
0 v: T7 n0 B( ~1 G! d - RTS5 W7 ~0 H- W% P
-
' H& v& c! g N1 @2 d
! t0 T0 D. `0 |) B2 X4 }2 P! Q' {# {- RELIFE_P2_ADDR:& _1 n3 i9 d0 y; H% L, c2 ?, y5 D
- .BYTE $20,$F38 l8 {6 q2 p" K4 ?( B
- RELIFE_P2_DATA:
) Y- b4 r/ k& ~' W# u0 r - .BYTE CR,CE,CL,CI,CF,CE,CEND
) D; P" N! f. `6 I& h6 E; E B - RELIFE_P2_PPU:; s* x1 Y' F& P. Y
- LDX #$005 @ X+ ^. u( d0 o5 l
- LDA RELIFE_P2_ADDR/ i, M$ z |4 r! E5 C
- STA $0703
* Q0 B0 @% r2 |, W - INX. }( D& G+ ~# M; Z! \
- LDA RELIFE_P2_ADDR,X
" U. e8 J' Z8 O: r9 q' q; i9 Q2 d9 T - STA $0704+ ~0 d" P$ l- J3 r
- JSR PPU_PROCESS
3 j( f4 x3 J0 t3 M! P1 { - RELIFE_P2_W:
+ B% ]9 E9 w" F& g5 b# C D - LDA RELIFE_P2_DATA,X7 @ ^0 K0 H, g# j( v
- CMP #CEND
3 s) _; V% @( V/ T - BEQ RELIFE_P2_START9 s- ^5 E( v: S8 T
- STA $0705,X3 ~5 d* f, d9 b) }
- INX: S; y9 q9 @- C* H
- LDA #$00
0 r/ I2 M; P1 i" O - BEQ RELIFE_P2_W$ }) E& Z$ R- A' G3 _+ \
- RELIFE_P2_START:
0 I; {8 W2 m7 B; y1 G - JSR PPU_START
5 f3 {" p6 ^8 R4 n/ T7 ` - RTS I; d; A1 ]: n* I) E
+ ~7 B4 X& k- I9 J- 3 G. u* N$ J/ I" C/ |! G" V
- RELIFE_NUMBER_P2_ADDR:7 p7 g% w/ _0 t+ h0 t. R% r {/ c
- .BYTE $20,$FA$ _4 j. v" e" A' |& X1 p
- RELIFE_NUMBER_P2_PPU:
1 f _! ~$ K% i - LDX #$00
' H0 d6 Y7 i/ L' [3 s - LDA RELIFE_NUMBER_P2_ADDR
; d; W! B6 v) i E - STA $07031 t2 e' A, B) ^, [
- INX; `' L5 l4 m& _% a" |/ B+ T/ C+ S k
- LDA RELIFE_NUMBER_P2_ADDR,X
I1 t+ K/ I2 g0 p* C* P - STA $0704
# ^5 V5 s: d, m - JSR PPU_PROCESS# c! b4 Z2 S7 }7 N) N# R
- LDA $33
" c' A' A9 a8 ~7 M' B$ V/ |) V - JSR LIFETODEC
: B9 H0 E% r, v$ q ] - RELIFE_NUMBER_P2_W:7 D/ s3 `' }) _! j% q* m1 ?
- LDA $7A03
$ p8 k) Z5 I% { - STA $0705: S, W! N3 K+ ?, z8 l! E
- INC $0705
7 h" u4 J0 m4 M; T) w - LDA $7A047 e6 ?9 n' V% Z& @5 g/ A
- STA $0706( }) h! R, Q( F
- INC $0706
% h" a* g4 a. c1 C& `& p9 H6 I+ R - LDA $7A05
1 u I$ t( L$ Z8 b" }* M - STA $0707
0 m5 _4 z8 J0 V' v4 a' v - INC $0707
9 G) x4 B7 V: T- U6 G; q - LDX #$03) \" Z/ M& B# k; Z# Y& i% h
- RELIFE_NUMBER_P2_START:
U' v5 C- F4 b6 c/ Y+ b - JSR PPU_START
: \, U5 P& A) v* x - RTS- j; s( U& b4 M( f1 D. H! z8 q: Z
: |0 Z3 F+ l$ ?/ u# o- WEAPON_P2_ADDR:+ U3 C) U5 B5 Y
- .BYTE $21,$33
3 s( e. J& a" c5 N r" I - WEAPON_P2_DATA:
. s9 }0 n( M: G- R, N - .BYTE CW,CE,CA,CP,CO,CN,CEND: c- t% S- c$ x9 M# j
- WEAPON_P2_PPU:
, i2 F% I1 r3 ^+ u - LDX #$00
0 H2 m j8 K4 G - LDA WEAPON_P2_ADDR8 _9 B$ }. Y* n6 B" ^& i- }) _# J
- STA $07039 W2 D' O u4 L& s5 ?
- INX
) G( Q5 z, P4 |( s, q - LDA WEAPON_P2_ADDR,X- Y3 d$ |, F/ |- G( G
- STA $0704
3 P& i9 r2 H6 V% h" E; K - JSR PPU_PROCESS, W8 L9 d% s" }; E/ }( K. T
- WEAPON_P2_W: a/ o- [+ x& {' f9 I* m
- LDA WEAPON_P2_DATA,X. S" |' r: @. z- J( h6 f
- CMP #CEND
. R9 I) H) X0 t8 a. h - BEQ WEAPON_P2_START6 `% w; s- S3 L2 _9 G( S7 }0 f
- STA $0705,X5 F/ [. v, | `; K
- INX% t }" M$ C2 m Y p8 X) q
- LDA #$00
( W1 }% w" V4 P- U( J* G - BEQ WEAPON_P2_W
Z& e" ^& s; X+ ~9 V; H: A - WEAPON_P2_START:
: z+ u4 t, l( o+ G9 n# m2 G - JSR PPU_START
8 ]) C! Z0 [/ Y4 r - RTS/ n1 q& t% z$ V- ^
8 r3 A1 o5 J! n7 Z- BULLET_P2_ADDR:
6 N. I. b8 j. ? M% f8 }, e - .BYTE $21,$3A
% d. ]8 Z& x, T( ^$ g4 {" S - BULLET_P2_DATA:
6 o, c( ~ e H - .BYTE $00,$01,$02,$03,$047 [" x4 G2 ~6 y" P5 d7 d
- BULLET_P2_NAME:
9 l! G5 S+ z2 M3 R& l - .BYTE CN,CM,CF,CS,CL
6 U2 l3 Y' Z& q( Z* b. W+ r - $ w4 T# v9 o5 ^8 O1 Q& q1 p
- BULLETPPU_P2_PPU:
. L$ [% R; d6 N3 T - LDX #$00% r& [3 } g: z0 b6 M! t' \ F
- LDA BULLET_P2_ADDR- d6 l# U4 S. ]
- STA $0703
; X. R8 @" x4 C9 G0 x3 X - INX
+ J0 ]5 t$ K! H8 [( j( N, h - LDA BULLET_P2_ADDR,X
# m7 h1 A1 X# Q+ }& M. E) N: Z+ _ - STA $0704
; Q+ c2 \# Q3 t - JSR PPU_PROCESS1 c4 u$ y# r' m3 F3 `9 w' U7 k5 j
- BULLET_P2_WRITE:* j. v" v$ N( A$ F4 X2 D
- LDX #$004 t8 r! T% A7 U4 T; B0 \
- LDA $AA
; d( J* ], j3 v6 e S8 e - AND #$10
8 @6 C. {; e+ q4 E, a; e - BEQ C_BULLET_P2
/ v* S* Y* R% q; h' n/ f' m - LDA #CS
1 p. I, M' d9 O% W( p( t+ [ - STA $07053 k, }& K( o; t& Y
- BNE B_NAME_P2% f5 d3 Q7 Z9 i; d* ], y4 y
- C_BULLET_P2:/ n8 e+ _; N( Y$ j
- LDA #CC
6 q5 w! t# L8 [ - STA $0705
5 N; N, b s' }. @8 `5 Z' H - B_NAME_P2:; e+ X2 a5 T+ T( P
- LDA $AB
4 P) S; d m/ N4 e. _7 ] - AND #$0F
2 b1 \5 B. R! J" u( z( U% W! d o - CMP BULLET_P2_DATA,X
1 H/ L+ \/ c- D8 p - BNE B_NAME_P2_RECMP1 h. Z- s7 C1 D8 z4 z
- LDA BULLET_P2_NAME,X6 h E9 X b: f' V% U( R( b& F
- STA $0706; @* A/ { z5 \: E- M
- B_NAME_P2_RECMP% m; ^; c* G# f; o8 _( G O1 R
- INX1 I* q' |! h2 G0 z8 a8 D
- CPX #$05
& u; Q& V% P; ]; m( O - BCC B_NAME_P2
5 X' A4 _( D/ a7 S5 T. ~7 b( t - LDX #$02 x- x3 d+ V9 v6 n
- JSR PPU_START) y2 K3 L# F" B9 z& m
- RTS
/ X) @# Q* G" g. j. G' r -
7 B) R5 A% x* B, O9 P) u' l" T M -
9 ^6 `$ O0 ]2 R! u -
( a- h3 _3 a6 w C+ f$ g1 O- v( l - + l( Y8 d% O: G
- 8 Z2 l# d6 f8 @. _1 x
- . w$ E. `( Q! F1 Q
- LIFETODEC: ;十进制转换
5 \1 f( p: x" l z6 P7 C" w9 z - LIFEL1: ;initialise
4 Y- k: l& C# y) q4 n, ]& a; u& g- w - STA $7A00 ;$7A00=F36 n5 P$ `* J' [' _% f
- LDA #$00
7 [! T" `, T+ L2 B6 M6 b8 v; E4 J - STA $7A03 ;$7A03=00
/ s0 b# _, P A. I k |- N- U, G - STA $7A04 ;$7A04=008 E" h' m# [3 ]: @" W) S
- STA $7A05 ;$7A05=00
9 H R* L8 K( c7 ~) q - LIFEL2: ;copy data $7A00 to 60018 r0 N5 {9 ]' N' u6 ^: x) S+ a8 A
- LDA $7A00
% @& p9 z! q: i" M - STA $7A01
4 _4 b8 T" X& p3 [ - & c5 o1 P! z F# q6 |
- LIFEL3: ;hundred
& |& o) j" h- l - LDA $7A011 S& M$ J5 Q7 k0 v6 a* d
- CMP #$64
! j' r! l5 l1 ?9 l$ I - BCC LIFEL6 ;$7A01<100 goto L6# q% ~' x+ a' }6 n- n
- LIFEL4:
4 [' |! V: s" @# O' G; v4 i' t - LDA $7A01
% _; c8 q7 y: V" C# t" `: J" k - SEC
, I8 d: Z# I7 E - SBC #$64 ;$7A01=$7A01-100
$ ^- B: W/ Y. M5 d$ m; n r4 s q - STA $7A01
. x: P0 {. s N+ M( }5 t5 u, S8 C - INC $7A03 ;hundred++2 l `# u) C8 R" |! h1 ]! n* ` l4 _
- LIFEL5:& {' X% k3 k+ E5 n6 m! E h
- LDA $7A01
0 j0 l# e5 H; c+ K - CMP #$64
6 p! S! s5 d/ j/ G: t - BCS LIFEL4 ;$7A01>100 goto L4
4 f+ q! }' f5 s
+ x0 u) U1 I. v- LIFEL6: ;decade! E! W8 D5 y0 m5 a( D3 e; D" I; l: f
- LDA $7A011 D' T$ D, B. _* Y# f! V- ?
- CMP #$0A: ~3 f/ v( A6 |+ Z- \
- BCC LIFEL9 ;$7A01<10 goto L9
- h$ O3 D. a! @& L: x+ _ - LIFEL7: 0 V3 v; v( z& ~" j1 o9 x
- LDA $7A01
- |1 i* V- ^ o h+ B' _: @0 ^ - SEC; V1 h0 ], }8 J( r2 A* |
- SBC #$0A
' o7 ]) y5 l. |# R" l2 o1 p - STA $7A01 ;$7A01=$7A01-10
B& [3 x; _' \ - INC $7A04 ;decade++ f5 y0 ~. T# q- x
- LIFEL8:5 i2 |2 E9 j$ W
- LDA $7A01" E! ^8 ]/ g- ]
- CMP #$0A
& G: x. ~! o9 ^1 F2 T6 s) R# L - BCS LIFEL7 ;$7A01>10 goto L76 P' ~, c% p/ c5 u5 P! g3 y
- ;unit8 c1 N/ o/ m9 v2 V3 i2 H
- LIFEL9:1 ]( C) F# P! E$ H% E8 O
- LDA $7A01 ;$7A05=$7A01
9 ^1 h/ H/ c5 N, @ - STA $7A05 ;unit
& s" d' y% @( j9 o9 {4 |+ m - RTS ;return1 x) \$ o. g6 [, z9 y
! m! N: ?2 z8 b( m; z- ~/ w- , U- c2 Y% Z" y7 r; D
- a6 D' @0 ?. l- a0 U k: o3 I
- PPU_PROCESS: ;PPU地址处理程序
, _; C9 H* s' m0 i - LDX #$00) ^$ J+ l& x! O/ e: B
- LDA $FF
& q5 G5 ]( i6 |6 i& D - AND #$01; T* g* r1 y- z3 u# ? s& p
- BNE PPU_2400_27C0
' U2 ?/ ~# A: W6 ?* F. ] M) Q - PPU_2000_23C0: ;命名表1. h* o+ }9 i) X2 K8 t
- LDA $07033 C" F1 ]) D/ u0 P* o" O
- AND #$FB
# R$ i8 Y9 S% Y! R. O$ r) I - STA $0703
: M: Z" Y' O0 J4 x1 x( \7 K - RTS
" z- }$ P8 J& y# F. K0 w - PPU_2400_27C0: ;命名表2
; A) }' ]/ z% e J - LDA $07033 E9 s j( k* I8 r2 H7 T0 L
- ORA #$04
, P" u" d& Y6 V) I) w$ O - STA $0703. I, M( X% a6 P8 r7 E
- RTS: Q* n; x& }' ~- e8 ^: d
-
4 d6 F" X) |2 q3 V! w4 K( m - PPU_START: ;PPU数据写入7 P! `9 W: `5 Y
- STA $218 h# m1 `# d) S# G8 t
- STX $07019 L$ b1 b' N- Z6 j4 Q8 A
- LDA #$00/ J1 j O: S P2 X
- STA $0705,X$ r# q" e# G& R' U1 b
- LDA #$01
) _: `& `8 c, ]% A* m/ ? - STA $07000 S+ q8 w B$ K4 {0 y
- STA $0702
o* B* `, j- X; ^& | r& d - RTS
( ^ u M- X& Z' \. ^, K+ V# H
+ Q4 E% B+ o" k6 F- ; Y* @6 z# V% b* y
, p3 \$ m1 ~& `; _
7 |" W; o6 I! {$ }- |0 _5 o4 _6 i
( e; d* [/ l% ^- s7 E6 o4 @- 7 N7 K5 D0 r f! P( i
复制代码 # ?# ~2 `) W- D
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|