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