|
|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑
* l: t. y' `2 [3 o+ j5 [7 {( Y! a
[FC][最终任务][END选关]7 T* d+ n' H c7 L; G3 g! U1 T
% Z, @ ^& L, j8 H0 g时间:2017.3.29
" }, L; ?5 d$ \% f: m* F: B3 I作者:FlameCyclone- R5 w7 m& ?& ? d' Q" x) J1 N8 K
内容:
1 t7 \4 l3 b$ U& C. }1 { 1.关卡选择: 标题时,左或B减,右或A加(1-5关);
& k/ t8 I: J; u* A0 t( f8 Z" o 2.无敌锁定: 暂停后,按上键切换;
7 A, [: g& o% R. D4 ]$ C 3.生命加满: 暂停后,按下键切换;
# W C* ^' x$ d' I4 t 4.速度调节: 暂停后,按左键减,右键加(1,2,3三级); S0 y0 M K3 e8 `' R* L$ ?6 _7 F
5.子弹切换: 非暂停,选择键切换(普通,W,L,B);
+ \) v( G' c: y0 p8 q 6.B弹数量: 暂停后,按A键切换(1个或2个);1 g: T3 r {6 j% W
7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;
8 t# z5 v' B' b4 G0 N8 n# m/ O. j' L5 J# J& T5 V/ b

1 b+ q0 ?+ V) v& T
- |3 k6 p8 K2 T8 g3 i h: S- g4 z
" R4 h! ~7 c: ^3 S7 ^* w
- P6 i/ p" w) k- f4 |3 q& j# S8 j g
4 a& L3 n' V& s; x1 n
FlameCyclone.ys168.com
! ?3 y" p# u/ T" v; `7 Fwww.nesbbs.com- ;[FC][最终任务KEY][END]
0 P4 W1 h) k, i3 c) W v# ]4 ` - button = $04 ;单次按键' O5 ?- n5 {) P9 n s
- flag = $6000 ;功能开关标志
+ i# p" o; d& F - pause = $000E ;暂停地址9 s9 ?2 @* b- C6 e
- 2 L4 z2 C" H' A! q/ I W, Z
- .ORG $8000
; w. K% c# T$ O& [/ d- f - LDY #$08 ;自带的按键程序0 |2 S# w0 U# I& O* ?; i# B
- ADDR8002:
5 n) u! W2 V! N3 l) H - LDA $4016,X
' r* i' I( o, }0 o% x1 T - LSR
5 F9 f4 m" x4 S - ROL $0021# S7 v: E+ |$ R6 U/ \# h
- LSR' w, c( j' O5 c* K
- ROL $00294 A* C7 Z2 z$ O1 d8 q
- DEY
! v3 O1 @) \+ u2 Y: P/ K - BNE $80024 n7 v- p7 j6 V
- LDA $0021+ O7 l6 C. ?9 z- q
- ORA $0029
. n& \$ ]% ~2 _ G! B: d - STA $00213 w7 Z4 M1 [9 A) f' g
- LDA $0020
3 M0 @8 t6 f/ F( |2 d - AND $0021
" t- J/ Y5 P! ?" Q. l! u - STA $0020/ S5 q- b* L/ l: D A* W
- LDA $06,X3 c& |' f% ?5 p# y# \
- EOR $0020
8 T: [; D J) F( M7 E7 \ - AND $0020
1 g2 i, W( F. z/ \# T2 k - STA $04,X
1 I* R* u1 @/ u - LDA $00208 z. C0 Y1 `0 y7 i6 f U6 ?
- STA $06,X) a" \9 H: L5 X! v/ X
- JSR KEY_OPERATE
: J& K; ^% E& F) ]5 A - JSR Function ;功能调用
2 R! [0 ^2 L; `8 V7 }, B - JSR Weapon ;武器切换调用. x0 F9 J1 @5 D5 { S( g
- JSR Power ;威力调用
' n4 T) D! ?' S8 B - JSR BULLET_NUM ;子弹数目
R1 W5 t2 r- m& s/ p% g9 O - JSR BULLET ;副武器类型
: O5 \ V2 P& n: | - RTS- b1 i; m8 I; R$ P) @" A
-
. G2 R9 Q) |0 n- l -
4 T4 v- E+ l5 e* l - 3 d- P, R: @2 t. z
- .ORG $80509 \3 c, p( n: f3 c1 ^1 v
- Function: ;功能
+ z3 q* I h9 ? V7 P c - WUDI: ;无敌 ]4 f; E# l/ G/ N, ]
- LDA $6000,X
$ K I* T# K4 k0 r - AND #$08 ;开关判断& @: ^ j% O7 N- T
- BEQ LIFE9 R3 q+ E/ ?3 q9 l8 {6 c0 h( R" B& t
- LDA #$05
3 y. K2 h' P3 ]7 v8 b/ v+ y4 q - STA $05DC,X ;无敌锁定$ J5 p* h8 _' i! N
- LIFE: ;生命
9 y+ B# r$ B$ y& ]! b - LDA $6000,X8 o2 J% Y) a4 ]3 T; }6 a% @
- AND #$04 ;开关判断5 ?6 s- g: r( k( u! Y
- BEQ FUNRTS6 g8 F1 d2 F& m$ Q" _3 M& X% E
- LDA #$05
. |7 n) V. N* Y" [9 [ - STA $1C,X ;生命赋值
/ o8 R: p. ]6 v+ c2 _ - FUNRTS:8 ]; k/ {+ f6 T
- RTS
- A; j4 ^% R' _) j2 \' f -
% t! m' K4 Y8 c6 L; r q - Weapon: ;武器切换9 k' a; Q: K4 H8 B( Z
- LDA pause ;暂停状态判断
" Z: b0 n5 v$ D R. ` - BNE WEARTS" |( s& A: j. {9 G# ^
- LDA $04,X
# y4 o, ?1 y! J- q4 I$ n, P - CMP #$20 ;选择键判断; U8 z! o. @1 W" q, o
- BNE WEARTS
( _- ]4 u0 s# _1 U/ D( L! F - LDA $12,X
* w% C/ k% q l! S* m- ]# D3 z( A - CMP #$03 ;武器值判断: o# |6 Y, X* f. c# b7 E
- BCC WEAINC, m9 A7 ]2 c) t2 |
- LDA #$FF0 _2 g. V$ j# N( N
- STA $12,X ;武器重置2 b. l4 y' p4 E# {
- WEAINC:* P- `7 A* G. _/ Z" @: J
- INC $12,X ;武器增加. m, }. W# r Y1 N
-
! d) J* M" a: [ ~: R0 W, X - WEARTS:: A" @4 D0 r3 M: X
- RTS# |6 x! k6 R4 }* T6 N0 a
- " P O" G# X! V0 t! q% a) S
- Power: ;威力
& e# B5 i0 i4 z( {1 |* X - LDA pause ;暂停状态判断- n# j: H5 A# U; |/ S/ h& g7 d" t
- BEQ SPERTS
8 `* W4 ?( }. s4 m3 k7 d# f# o# i - BUT_LEFT:
- H; a9 P5 a# Z" h6 ^ - LDA $04,X0 w2 ]& S5 o5 V) H
- CMP #$02 ;左按键判断; N' r: u6 P) I: n& J7 p( T- F' L
- BNE BUT_RIGHT
: }2 \" ?; p$ g. K3 i - LDA $88,X4 T: y! X# R7 h6 Y
- CMP #$00 ;威力判断) [1 i* k9 P9 P; b: z- K5 b+ ?
- BEQ SPERTS
/ f+ t! |, e- Y; v - SPEDEC+ {& g6 L4 c2 M
- LDA $88,X ;读取武器值+ Y# e( L7 D/ f% z: @
- SEC3 \4 u$ {9 l3 f3 u$ b
- SBC #$08
( W5 [$ u; l5 `! q. v; R - STA $88,X ;威力减小' O1 s$ m& Y2 y
- BUT_RIGHT:
& f3 R2 E( ~8 Z) U% C - LDA $04,X, a* [5 r) A7 k& Y" m2 B: E
- CMP #$01 ;右按键判断/ ~3 j% g- V) d. }4 s
- BNE SPERTS3 h: f* n4 c) y% J: C9 B- I, v
- LDA $88,X
# `* r) ~/ N6 i' w' N - CMP #$10 ;威力判断2 W r: v* G! O
- BEQ SPERTS3 t6 t+ i9 \8 a+ o' I' Z% _
- SPEINC:
$ @+ m, T1 f9 D* h/ U1 V7 U8 Q - LDA $88,X ;读取武器值
3 P6 f' b: N+ ^8 \- B! B& ] s - CLC
3 o7 E& w8 |! X( Z+ ?- |' ] - ADC #$087 p' d, u5 P9 m7 A9 g7 v
- STA $88,X ;威力增大
' S# A% v# F5 J- A - ( a( c/ |. y7 P' c- |
- SPERTS:: X: o9 }8 {6 l9 n! s
- RTS" g8 i5 } [, y% E S( j
- v( @% s7 B5 N6 l3 Z8 A
- BULLET_NUM: ;子弹数目
+ G' U. _6 N) z! l/ t/ o0 c, ]) \5 L - LDA pause ;暂停状态判断
: \7 E3 d, s* G+ b6 H& f: R. o - BEQ BULRTS
4 V! d7 V5 W$ I# D B7 { - CPX #$00 ;主机玩家判断' W( O5 R1 L& T' P Q) Z" Z2 {
- BNE BULRTS
1 l. N! S& Z* Z1 U6 e - LDA $04,X ;主机玩家判断: x. o: W( O4 @- s4 v5 l
- AND #$80 ;按键A比较
$ p G+ r( _8 A4 K9 c - BEQ BULRTS" ^- K1 b2 T: f9 ^2 C% |% c: T; M
- LDA $87 ;状态判断
; {8 y9 d7 r1 O8 Z - BEQ BUL_2% M# D1 K( H$ U L7 G3 `" |" u
- BUL_1:
; {/ u G2 q; v/ k/ n, y$ F - LDA #$00
9 |; |8 ]" e* s5 T! G/ b0 q% I - STA $87 ;1发子弹8 L7 |5 _& \6 x, n8 s! W2 k
- BEQ BULRTS
( o$ f2 U( `/ R0 c# x6 x2 n- Z4 b7 c - BUL_2: ^6 c( E) D$ t2 A0 `
- LDA #$012 D# f3 }9 W" Z2 V
- STA $87 ;2发子弹1 l2 l" ]# R- p C% m# K! w
-
* {9 R3 ~0 @0 j+ F - BULRTS:
1 s* I" N9 m8 j( P4 m- u. C4 | - RTS$ x6 p& r0 e. {- _7 b7 p9 R
- " e1 _: C. e- j, u [
8 D x8 R4 p' C- H5 Y- W- BULLET:
8 N/ H* b5 `* S - LDA pause ;判断暂停状态8 e3 c Y* G2 v0 [( t3 |$ G; `4 E
- BEQ BULLETRTS
1 O" U4 _8 Z' l+ c6 x3 \ - LDA $04,X$ w, z8 s" S4 b/ r
- CMP #$40 ;按键B比较
8 G9 {9 ^( K# D5 s- `( x9 C. K: K0 Q - BNE BULLETRTS
$ c2 k' `: W5 b( `+ k - LDA $6002,X ;读取副武器) z0 L- f2 S5 W" e0 n1 Z
- CMP #$035 p' W3 v# n; g% ]" Z+ z. }- H
- BCC BULLETADD% S( M, f3 s1 Z9 Q
- LDA #$FF3 D q6 o8 J: n5 d7 Y8 v
- STA $6002,X
/ A0 P3 n8 V. z9 v B - BULLETADD:3 i" a! n$ R. F
- INC $6002,X* t2 S4 G' e' s/ T7 m
- 8 G' L. J- b# B& d0 a4 h ] e
- BULLETRTS:. h; H% q- {) f# h
- LDA $6002,X+ Z. J6 d, W2 g, {& @# j
- TAY: j. ?! M6 K& t2 D
- LDA BULLET_DATA,Y# Q$ j. D, c7 i. @! t3 p7 v9 t
- STA $6004,X ;写入副武器数据
; s+ q% s2 C5 b0 u8 e4 u - RTS" |; N7 q5 ]" u2 b/ O7 o
-
# N7 \9 o$ m: K1 Q# X/ j - # _) Y& @3 N. i( Q' P
- BULLET_DATA:0 I) K: X6 W5 Z. F$ Z2 u7 F
- .BYTE $06,$02,$03,$04 @/ u& `0 g1 f7 I9 Q9 N* c
-
; D/ F; R# G! V7 S5 L -
; m2 @% K3 d1 N) |3 C- }* A3 s -
- u( @! y- Q; s7 S7 T8 o6 y - KEY_OPERATE: ;按键开关操作/ [; d. R+ k8 R$ m
- data_protect: ;数据保护9 f5 w+ j, I! n! Y% K+ t* X
- PHA5 w; d; p/ K! X( T( N8 p) k0 H/ Z+ {
- TXA4 e' j! c( a: d/ H
- PHA
8 R V C# j* h2 X9 s - TYA
1 T) {) y! @/ v2 T - PHA9 m# @- c; F( Z
- 1 y7 U Z$ l- w9 l3 A: v7 O: {# I
- FLAG_INI: ;开关标志初始化 ]1 ]2 ]6 o' l2 s
- ! C8 o( e* r7 W1 Z: w" |
- LDA $600F6 F1 |: R* ~2 [ o
- CMP #$013 F2 O% @! \3 u# C* r8 ]
- BEQ pause_cmp# f) W8 k M) Q
- LDA #$008 h4 _( R1 d0 i- W: X* s7 r9 S
- STA $6000- v, ^: }! {5 l
- STA $6001/ o A- J0 c8 x: z- F! s
- STA $60021 D' U% P" d [9 T$ q
- STA $6003
" L, j" ~* B9 T - STA $6004. K: S4 |" }3 P
- STA $6005$ S1 j1 C7 |* U5 m( m
- LDA #$01 w5 P" Q+ c! u i/ h h
- STA $600F
7 ?$ _" W7 F1 o. F! I+ S - $ \$ ~. T0 I' G9 [7 ?7 E. J
- pause_cmp: ;判断暂停状态
5 C2 V" y3 O! X3 t$ E9 Q: d7 `; z/ m - LDA pause
; p5 J7 c$ `; E - CMP #$01 ;判断暂停状态9 ~ x9 C; V) G5 g, `* c
- BEQ button_press
7 A% K( h% d3 u& n G( C - PLA% y- I& P: D7 X# G! l
- TAY' L- D; I2 R; [; m. f
- PLA1 u9 d, u$ N3 l5 K' b$ [- v y+ `: {
- TAX7 ]- _* }" C) S) X
- PLA. }) }( K2 _/ l6 \ n) [7 U4 p
- RTS0 Y- D' H8 o, W7 _
+ ^' Y: Y) m1 b, O* J- button_press: ;按压操作
' y( A- ` N+ y' n _* h - ini_Y:2 i/ x8 L; u: m' o6 \
- LDY #$00
- V, U6 H5 z% L( |: {0 H- ? - button_cmp:) b. @% q. G. ^9 Q- S
- LDA button,X, ~+ r0 g5 c2 a1 ~# ?- l! w
- CMP ora_data,Y
& ^. k0 Y t' p' s, y! c: ] - BNE count_Y_cmp
" Q# Z2 Z$ A/ U1 p - flag_cmp:
6 x. I) h$ m9 |4 y) H+ L - LDA flag,X
7 P2 n( f8 y: x: m8 U& q/ n - AND ora_data,Y9 C+ K6 ?; f) D, P# H
- BNE flag_and& m+ E# ?4 m; i; D8 O7 K, X# n
- flag_ora:0 M/ p0 G4 o8 p& {9 E
- LDA flag,X
" \+ p" o( q" d; l! N+ K - ORA ora_data,Y
( n: G" _. F/ ` - STA flag,X
* F: _' `$ J: N1 n; a - BNE count_Y_cmp5 n6 ]8 C" o3 N( U8 K
- flag_and:5 @3 R! `0 C6 G8 S8 v5 M' r
- LDA flag,X
; i4 i W3 D8 k5 ]7 c) `( |2 u - AND and_data,Y
9 D4 g; [( I: I' z) [ - STA flag,X
7 Q" G1 s7 M5 u. \. @0 D1 U0 d$ j0 e - count_Y_cmp:0 n' j5 k) l7 X9 a4 v8 [& @* z+ S4 w
- INY
$ j9 O* }# N. ]+ o( Z - CPY #$08
) q$ H2 L [, b# o" _' \ - BCC button_cmp
0 x% G; n: P3 Q- `0 [ -
7 `1 [: `1 a0 ^ - data_extract: ;数据恢复4 X. r! m/ g% |: H
- PLA
6 f) W; g5 E! j v/ M# k9 b, x h - TAY
! R1 R( _0 k+ R* R! L - PLA
: {, H2 l2 p0 d' P/ H! y - TAX
% A; d3 ^8 E* H - PLA
0 F/ `$ J8 i9 s' l. V( W - 8 q& n" H6 k0 r" v0 b; E1 b
- return:# ~. C1 @1 r1 v6 U2 A
- RTS
4 X4 @4 ^- n5 {5 M+ U - ) W I1 h+ u, c& Q: p
- ora_data: ;按键相或数据: T/ L+ x' V Y$ \
- .BYTE $08,$04,$02,$01,$80,$40,$20,$10$ D% u, @+ A% v6 j3 A. v* r
- and_data: ;按键相与数据
7 m7 q4 p# O: i ]5 o1 i0 s - .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF7 H; |1 _- ?# c1 v# X6 I6 b
-
3 ^8 c. v' D4 A2 }& p+ k6 p -
+ ^6 {2 y: o+ c& l! v. f -
0 \! p& {! [$ a- ~" e0 V -
& G T( ]+ h: ?4 m5 a/ B - 6 S9 ~$ x6 f6 \: p- @
-
E+ S O+ U- L4 j - 5 g8 t) W+ l6 }, M$ Q
- ' j9 d8 z' ^$ l# S1 ^
- % A) B, H1 r/ |
- .ORG $C264 ;自定义的MAPPER2切页程序
8 T6 ~& j" g5 k8 @7 K& E( M j - PHA
! ~6 n/ u2 E. N# c N+ m9 j - TXA6 [' A2 t0 S/ V( B
- PHA7 n* i2 w5 r) d; C8 @8 [8 R
- LDA $0066
* ]; X. N* o6 Y4 {# X - BNE ADDRC2802 z" s9 w' W( E0 y: Z, w; W
- LDA #$07
0 t! h3 i4 X' T - LDX #$03
5 H7 A: a+ u u! g3 a- Y" I. ] - JSR $CD9B ;自带的切bank方法 X1 b c8 e/ Q9 i7 N" Z& {
- PLA. F% O1 y( I9 F) B3 U; Z
- TAX
, p5 P7 J7 w# @* U: [2 C5 i2 K - PLA' n5 r; |* g) k* o; O: a' i$ H
- JSR $8000
5 t L- l! |) J9 `" r - LDA #$067 u5 `5 B% ]6 v. _. A$ G6 F0 U
- LDX #$03
0 [8 M1 H: w* n0 C# _7 t' v) Q - JSR $CD9B ;切回原该切得bank(可以不用) k) [% \$ l- B+ a1 w3 u. ~0 x$ H
- RTS8 v2 i/ w/ x( C! o4 H
- ADDRC280:
( i) o7 T# V" l4 G8 z) b - PLA7 q2 i4 X$ Y9 e: ~4 I
- TAX( {" f5 d2 Y5 x" d6 w0 g' c' s9 i
- PLA
9 j" k; R; q6 S - RTS
" V/ y! b% |5 Q0 U) P - ( t4 B; Q& x9 I
- 9 j6 Q+ o d4 x" G' Y# K; c7 T
- ;[FC][最终任务PPU][END]. j" L. S; F# ~2 J
- .ORG $C056 ;跳转到PPU重写程序3 P" k C0 a0 m& ^& N- }4 C1 o
- JSR $7000
/ l: u6 F! d* r" J N- R: c$ B
! D- E$ X& C( N1 q2 N( \+ z- .ORG $CEBF, C2 ], V$ V& l0 h5 P
- JSR STAGE_DATA_WRITE ;跳转到关卡数据写入
0 s Y! Y: ?7 [/ t -
/ D+ {/ k% G" y: q - .ORG $E460
- o/ f/ _% s) ~ - JSR BULLET_DATA_WRITE ;跳转到副武器数据写入
. Q( @* `' _4 Q1 T - 9 L2 J4 }0 e0 ^. J0 D$ H- I. V
- .ORG $71F0) r. m) d+ C* ]- ?# f
- STAGE_DATA_WRITE:1 N9 T8 i' }( h& t
- LDA $60103 [, Z2 k, b) u8 a$ N6 f
- STA $1E ;关卡写入7 i6 @1 b v0 [6 g. ?1 l
- LDA #$00
2 ]0 T8 x3 T( D9 D8 y/ z - RTS1 ]8 K, q( u( u9 z
- .ORG $71C06 b A3 i' v2 |: n3 O; K. K+ U
- BULLET_DATA_WRITE: ;副武器数据写入( y& @# ?( _% Z5 _
- CPX #$0E
: g. X; @6 N6 C) ~, q - BCS P2_BUL F. W" F6 E: O( c' ?# S& y
- P1_BUL:' ]$ b8 p, h, R ^' }
- LDA $6004
$ I5 H8 d% ?4 b5 \8 R - JSR $D7D0 ;P1副武器数据写入$ G/ T+ D) I5 _. h: L
- RTS% ?- m7 G% o; ]* g5 f& r1 W
- P2_BUL:
' y+ @, M d8 `: |9 k6 ]# ~: ~% n - LDA $60059 D6 a, C& Y6 q! u& X) l
- JSR $D7D0 ;P2副武器数据写入& x G$ {. n5 j4 N* o6 P2 y0 u
- RTS
/ g- h" M9 P- `6 G
6 A# w7 _$ o- k* M
, a5 Y! e( O4 [# N4 K6 |6 U4 v- .ORG $7000
0 t. w; R8 l v! b/ o- v" @ -
' \1 u7 ^6 c6 Q( ~ - STY $4014 ;补上覆盖的精灵写入指令
; V6 |2 Y* q, O* m# [- Y4 z - PHA
$ v1 u W6 X, C! K - TXA
' z+ t; s9 `7 d: p& e v - PHA
/ C5 W5 ? F/ _8 |2 R' B - TYA1 s4 R- O' m( Q( ~# t
- PHA& U7 q B) v; |: l- u, L) @9 I
- LDA $0C
1 [6 F" ~, D: y; |. a1 M5 I - CMP #$01 ;比较是否为标题画面+ a) M) s# |5 H- I" [, K
- BEQ PPU_STAGE$ S8 `( [$ l8 @
- PLA) M' |9 I/ M) B, N2 }
- TAY- f2 V9 N. t7 Y# e
- PLA
) [( S- e' f3 g8 Q6 R# Z+ { - TAX7 s6 v/ {* b7 l5 ?
- PLA$ ?) y: L8 @. ^, _7 q8 N
- RTS
4 {- T( G$ D7 e1 C' N7 X. Q - PPU_STAGE: ;STAGE显示程序3 A! ?/ o8 U7 A# e5 z- h$ S6 n
- LDA PPU_ADDR_DATA& T4 S2 N) O! B+ F2 ~8 ^1 [$ G
- STA $2006
% j9 h+ u- c5 j, c7 } - LDA PPU_ADDR_DATA+1$ h1 `! ~& A8 F& n
- STA $2006 ;坐标设置# v- Q) w+ V# ?. u! \2 `% J, e) m
- LDX #$000 _& h6 q2 G9 f+ {+ [
- PPU_STAGE_WROTE: ;写入STAGE字模- a5 w% i/ |% t$ q, e+ y8 Q1 ~
- LDA STAGE_DATA,X4 s) k6 n- s0 w x/ O% T7 N* q7 o
- STA $2007
" K) E' D. n# L3 Z: E" J - INX
2 j3 t" S9 P2 Q - CPX #$06
d& [$ R8 a+ X; x5 u: Q8 ]0 ~ - BCC PPU_STAGE_WROTE
1 f) t1 B, P# v$ l7 f5 e7 _1 e - LDA $60102 e; a! A* T/ z9 W8 b
- CMP #$FF ;关卡数据初始化条件判断
% ~& o* O5 y$ M% J% W - BNE KEY_B
$ d" H u& T4 t4 K$ F* S8 i7 d( E% F - LDA #$00
P& _# t" L! w3 W+ h - STA $6010 ;关卡数据初始化0 a$ G3 G; T% e8 Y1 d, c
- KEY_B: ;关卡减少
" ?- d1 Q i! q9 x- z( ~ - LDA $04
% F" n. W& g9 k - AND #$42 ;按键B或左减关
' \1 R2 J3 D' A4 z - BEQ KEY_A
2 ]: d! U6 j `0 ~2 z - LDA $60107 V/ a4 z' i. c% A7 [* {
- CMP #$00 ;关卡比较 y$ ?/ S2 j' o- P4 f
- BEQ KEY_A
: }6 n' M- j ^" i1 q - DEC $6010 ;减关
N/ c+ K( {5 a$ n8 O6 V3 D- I - KEY_A: ;关卡增加
! L7 ?$ }) |: J0 A {6 S: L( r - LDA $04
7 R8 `* P: T4 s( h - AND #$81 ;按键A或右加关
2 B4 [$ s; M3 U: H- h - BEQ PPU_NUM_WRITE/ K& A4 I5 L: B% x9 V
- LDA $6010
. y# P5 m( K$ G, i+ W% b# { - CMP #$04 ;关卡比较% K, s3 G" B( K# K, m/ G
- BEQ PPU_NUM_WRITE# j$ P+ e1 a% u0 u0 x9 v
- INC $6010 ;加关
7 x( Z. b r9 P. u* O5 l8 U! O9 O - PPU_NUM_WRITE:
8 s7 Y8 s( g8 F( X2 _* Z - LDA $6010
6 o( O$ y, V, N; s% ? - TAX5 z& n8 x' T1 {4 s5 [: e
- LDA STAGE_NUM,X ;写入数字
) @! q' S5 K& `9 S - STA $2007
) A' d. T. u- {, K8 ]6 b - PPU_RTS:* ~) w7 t* h# K% L
- PLA P1 w$ m5 z& W, _1 p8 l
- TAY
6 S2 y4 ?3 q' D - PLA) ?0 i1 ~( |$ J, u2 [5 p) b
- TAX
) K7 ~; Y5 T( M3 \4 @( f; @ - PLA
7 T: J8 |, ^# n. E* p0 h - RTS
4 O3 \4 o C Q$ x - . L0 A( f' S. a, j
-
$ O' y! u; M( B) E% t" j/ y+ } - STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据5 f# e2 L7 M# ]; N7 m* l" w
- .BYTE $EC,$ED,$DA,$E0,$DE,00
+ u9 C l. Y; q" Y* {$ h7 n - STAGE_NUM: ;关卡数字1,2,3,4,5字模数据, A: n( R" P! V( |
- .BYTE $D1,$D2,$D3,$D4,$D5
7 O3 A5 D" B- m" `& F - . B' A4 x7 d, G Q1 r4 v0 `
- PPU_ADDR_DATA:# p' s2 m U; P
- .BYTE $23,$0C
, d8 h! ~' a7 n: } -
# c- p* \6 x+ D0 W: w j( l
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|