|
|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑 / T. Z* F/ }8 D" \
; `) G0 v2 o2 B0 ]6 e4 ` [FC][最终任务][END选关]/ t8 @) @& A( t; d
4 J" ^' y' E" F. p& L" j' c
时间:2017.3.29/ P7 H4 }9 b7 \3 {
作者:FlameCyclone' e1 y- D* K7 M" h/ O
内容:
6 ~+ W4 X, D0 {" _0 |% G6 q9 g( h 1.关卡选择: 标题时,左或B减,右或A加(1-5关);
% Y! {+ K6 p& c1 C( j0 R+ l A3 M 2.无敌锁定: 暂停后,按上键切换;
- Q# @" z8 ^1 _6 p( T# @ 3.生命加满: 暂停后,按下键切换;& h1 p8 T f0 M, D: I
4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);# ^- q: v! X1 D& w
5.子弹切换: 非暂停,选择键切换(普通,W,L,B);
. N. D7 s) v! I2 F( a 6.B弹数量: 暂停后,按A键切换(1个或2个);
% M5 C! k: H' L, e% q! ` 7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;# n P) ]+ u0 C* {
" ?, {7 @- Q2 u, ]" C
% [6 K. v4 J9 D2 h! k

; W! s9 l7 ~6 s. D& |6 D+ F3 _3 M / `# W+ J* Q9 S

2 Z( p# ^. u1 d1 n* Q) s5 k. U8 p; R7 j' A5 J3 |- q
2 E2 r1 z: X4 Q: V3 i! L$ g! `0 _FlameCyclone.ys168.com
0 \8 ^+ K5 Z# y0 qwww.nesbbs.com- ;[FC][最终任务KEY][END], o- R$ C+ b: |# X( r- w+ n
- button = $04 ;单次按键- U6 p p8 P( D8 Q/ i
- flag = $6000 ;功能开关标志
3 k+ l" T1 d6 b# T w6 ^) T - pause = $000E ;暂停地址! M; D+ x8 U4 T' J
$ I+ m0 J/ i4 l/ n- .ORG $8000
3 T; U" s h( F - LDY #$08 ;自带的按键程序
5 M% G J5 K- T - ADDR8002:
! V* }3 Q' m& \3 k* L# L" l - LDA $4016,X
6 _* G! l# l2 J0 y# H6 ^: c - LSR; V1 I- |1 U, @4 ~4 J8 p3 Q
- ROL $0021
- c- f5 C; R; a) M& l$ { - LSR, w/ l$ l! Q. H
- ROL $0029
1 U9 c3 r/ d! t% h+ Z2 y% O - DEY
) U4 o8 P, s! d5 _2 P, ^ - BNE $8002
; j, r4 n0 M5 {' v$ G5 B) C8 w - LDA $0021! _# [& W% F+ ^' p7 b, i5 Z
- ORA $0029- D. C# l, c4 U/ J
- STA $0021
3 ~8 l+ |8 i0 r) }; s$ V - LDA $0020/ k1 [" Y" ]2 D% W& g7 q
- AND $0021/ S' q7 v8 G1 X& p2 p) G
- STA $0020
: [" l9 ~1 @, y8 W: p# l - LDA $06,X
, k8 ?! b, a) t( B5 `! N: t3 I - EOR $0020
; D% n& X3 l$ x4 z7 R* F - AND $0020
. U5 A5 Y( i0 N0 _( D/ R - STA $04,X
8 A" E, x- E$ b- B7 u( U3 [ - LDA $00204 M2 A. Q; @. e+ {
- STA $06,X
, {3 |9 f5 Y& S |0 M - JSR KEY_OPERATE
2 K! A' B6 [% x! h J - JSR Function ;功能调用; `9 s9 t( C6 `) S2 y! D
- JSR Weapon ;武器切换调用
( b% |$ `5 W5 ?7 b - JSR Power ;威力调用9 _& d8 b0 ~* Z9 {" z$ k/ v
- JSR BULLET_NUM ;子弹数目2 \$ Y' X# v& r% B# t2 g$ |9 [
- JSR BULLET ;副武器类型4 R: T& m% j3 u1 U- Z
- RTS
& M0 _7 b3 [: r2 m - 4 V0 r* ?7 f0 n$ C9 ^2 N5 {* T
-
3 R% r8 \( C8 k% B - , S4 G: _0 ?6 y& K, |1 I( q
- .ORG $8050# u; ~" d! T- ]' ~8 e
- Function: ;功能" e! V7 t% A) S2 b1 d U( B* t
- WUDI: ;无敌4 [; X" N# j# ?- z7 S
- LDA $6000,X, Q9 G2 |9 b9 H; v; e
- AND #$08 ;开关判断
* I6 \5 e+ R) l* K |, b - BEQ LIFE3 ~& x3 ~% ^. R
- LDA #$050 ~, q" H: Y! [. G2 I; r
- STA $05DC,X ;无敌锁定
" O% c# |" f( a/ |- [! B: @ - LIFE: ;生命
9 r: A4 m6 P$ X3 O! f - LDA $6000,X
! a8 o- D+ Y# o5 f - AND #$04 ;开关判断
* N2 |" e7 e* F; z9 p9 w0 s/ E/ a - BEQ FUNRTS
4 `& q0 {$ b* a - LDA #$05! J: S9 U; {6 n
- STA $1C,X ;生命赋值
/ q- N& i, @3 v) H( w; ?9 e - FUNRTS:. @+ P. r8 R( R3 a: p; T% h
- RTS5 Q* \$ N3 L2 e6 r$ w2 U2 \2 J) S
-
: ~! G; n6 x' Q% q, K5 l8 Y/ O; F - Weapon: ;武器切换3 w" q- p; J# b
- LDA pause ;暂停状态判断$ f$ y5 z$ Z4 b' H1 X
- BNE WEARTS$ s1 w7 j" A2 H0 v Q+ {& `/ [9 b
- LDA $04,X& d) Z, X; R% |( J1 M* |% ^0 f, V" p. `
- CMP #$20 ;选择键判断- l8 s# |8 J/ J9 E/ f
- BNE WEARTS/ D6 ]: o, o! M- P
- LDA $12,X% B w* g9 f3 w" |' |
- CMP #$03 ;武器值判断
. @: w0 V! V R! x2 Q# I1 W9 d5 q% P' J, f - BCC WEAINC$ y9 c' C* b; W$ ?3 ]8 |, t
- LDA #$FF, p. R3 _9 d; o i) p
- STA $12,X ;武器重置
7 D( k, H. V: _: h8 N2 R6 D! p - WEAINC:* y3 ~4 Z, q) u
- INC $12,X ;武器增加
7 Y" s* j' w; y( c: h* e -
/ L s. n5 `# H T W1 E - WEARTS:9 G! Q9 q" Y& m5 F4 l3 T, E. Y
- RTS
9 K9 c% s: b# B! X* S; l -
, C& Z0 N8 d" b5 S7 f" \( Q! ~ - Power: ;威力
+ P1 L* E9 r! z9 ]- h+ `3 \ - LDA pause ;暂停状态判断3 X0 K3 X3 I" G2 _0 M
- BEQ SPERTS- \+ k. }3 A! a$ E: q2 b
- BUT_LEFT: X# u0 g( a+ [8 i1 Z
- LDA $04,X3 Y8 T$ d9 y6 ~. H/ a
- CMP #$02 ;左按键判断2 I/ N0 U& c, x
- BNE BUT_RIGHT
# v, {" D6 ]5 o" C( i1 o! b j - LDA $88,X
( C/ _1 S, S4 s" p# p: } - CMP #$00 ;威力判断: C9 G! p1 n0 f3 f2 G" h2 \ _
- BEQ SPERTS5 s6 p9 w$ H& ?3 H4 t: [& U0 N& x* D
- SPEDEC
+ r0 C% _ @+ o - LDA $88,X ;读取武器值/ T' |, q9 \9 Z3 W# _
- SEC
0 @$ `+ I# U1 T% A - SBC #$08
4 B- h, g9 [ d j - STA $88,X ;威力减小
9 Y; R } N/ |9 t - BUT_RIGHT:
2 F; v1 V+ n6 C! f - LDA $04,X
0 S: K5 X9 w* s4 f - CMP #$01 ;右按键判断- H( i/ ?5 `4 a+ R$ m0 V1 N
- BNE SPERTS+ S. L* z5 y" U) T
- LDA $88,X! w- T5 ?" R G1 J
- CMP #$10 ;威力判断
* G' n' c* T5 p* s& d; T - BEQ SPERTS
& b5 L+ b. S6 R& M - SPEINC:* A: {- w$ ?- E( D3 ]
- LDA $88,X ;读取武器值
! [0 s! J: B9 w0 `, A - CLC
' _- R: ^; e7 p! m0 \ - ADC #$08
. ]2 `, [/ N1 d% Q: D4 W - STA $88,X ;威力增大, T3 j! W! N, q, @6 p8 b
- $ L; R) K2 d) {' T) K P
- SPERTS:
7 _3 ?6 Y, @9 W" e, k - RTS- k$ h! t; k- p* W& X- j. |
- ! D, F- B: T5 b
- BULLET_NUM: ;子弹数目
' e* f7 M% m& ~4 V! T; d - LDA pause ;暂停状态判断2 r* W4 A% Y' B* [& N5 J
- BEQ BULRTS6 A' ]2 ?+ A! \& Z5 N+ i
- CPX #$00 ;主机玩家判断
& x! F4 w8 m5 R% h - BNE BULRTS) }6 A% ^+ C5 z o
- LDA $04,X ;主机玩家判断; m0 U1 l; C' z, L$ z T
- AND #$80 ;按键A比较
3 E# F, G! u5 X; z - BEQ BULRTS
6 B, h2 M7 K. d8 _0 S - LDA $87 ;状态判断
3 w" \8 g9 }" \1 F" B" S - BEQ BUL_2% v# X1 R6 T5 A2 G
- BUL_1:
7 G9 J! N5 p4 W, C& }6 X7 ^; T - LDA #$00
0 ]/ `* e( Y! W! {/ k - STA $87 ;1发子弹; H8 i% n7 H0 Y5 R
- BEQ BULRTS
' u; ?8 u" z& o/ i6 v- \" J - BUL_2:
2 i K! H; [, i O! G3 b% e8 {$ p - LDA #$01
2 @' d1 |. y" H+ ` - STA $87 ;2发子弹" ]! N7 G G( J2 F2 u+ G
- , b4 K+ U J) k. q6 M
- BULRTS:; F5 {' m, `, ]/ v. l5 z1 Q
- RTS) [5 d* R. j" x N- P
- # \9 u. r G. ^% c
- / p; T. `) i8 E7 @( z
- BULLET:7 Z9 X7 e+ ~3 l0 D
- LDA pause ;判断暂停状态9 `" F: ? C9 g. ^6 c0 s
- BEQ BULLETRTS+ h, K, m* b9 s; B2 ]
- LDA $04,X, Z3 z" y% S& c5 j3 Q9 R
- CMP #$40 ;按键B比较1 K& z$ q) ~$ v% C
- BNE BULLETRTS
7 y# A' L( x% j3 z! D. h. ] - LDA $6002,X ;读取副武器
* N7 ?9 M) y0 g - CMP #$03
7 a' i3 X3 ]7 Y, j0 l! N t$ T - BCC BULLETADD
, R8 N8 b9 x0 q; l% I3 k; U1 [ - LDA #$FF
( R9 a# D9 l. t, k" B - STA $6002,X7 x( t9 V9 I; t b( I
- BULLETADD:
& ]0 ^5 K- a9 A% E& C - INC $6002,X
& M$ j; H i1 u* m# q - R7 [# J8 @& G+ P
- BULLETRTS: ?0 y+ L4 d6 W4 x
- LDA $6002,X
# |+ F- W( k1 ]1 ] - TAY7 u( v$ J3 _1 c5 L
- LDA BULLET_DATA,Y
: D7 l3 m2 _/ q* z - STA $6004,X ;写入副武器数据# X7 Y# P( w' }% Z0 l% u* B
- RTS
3 h2 I4 r' j" _) M# i$ ~' _ - C4 y) \4 ]7 x
-
8 f" t4 Y5 R# x# D* B W2 d - BULLET_DATA:: J! e5 @1 b/ c3 n3 y @( r4 [* E
- .BYTE $06,$02,$03,$045 O+ K) A4 i$ k2 N
-
# ]; D' {- E0 a4 n -
9 b+ w! l- w* i3 }; x- G+ k8 H$ `- K -
7 D2 Q( C7 ~. w/ F$ g/ c - KEY_OPERATE: ;按键开关操作
# G% O" J- t' j1 G - data_protect: ;数据保护
( e1 a9 w. t- ?# m/ X; H$ p1 y6 b: X - PHA
, H8 D; i9 d7 N3 \- q" G - TXA: d& u' v, L# N7 R% v# d
- PHA
& O$ p, O& Y; \& ` - TYA
; e- g5 d2 T- `6 {+ D - PHA
2 ~- i% m6 @# W/ p2 s' B) D - . q2 E9 P s- I( p+ `" X, f
- FLAG_INI: ;开关标志初始化
( B6 K. t9 ^ f y* j
1 C/ V- q6 L( M- LDA $600F
9 E0 s; Y0 s6 y7 I - CMP #$01
' B9 I5 q2 D8 J, l9 ^. k - BEQ pause_cmp# }9 ~6 u- i6 G- r6 J7 j+ K% c
- LDA #$00 U9 y8 i5 u% M# R$ G
- STA $60007 Y0 T6 \! n4 o( o! A
- STA $6001
, c0 P; t4 e1 V: ]3 c - STA $6002
% e& e- U" X" P; \" i0 { - STA $6003
1 {, v" L b7 T' _* P) Q8 \2 U. V - STA $6004
0 r' | o" z# {( `/ p3 Y - STA $60056 D% }; p/ b8 ]
- LDA #$010 ~7 A& Z% E. B! V, _7 N; a
- STA $600F
0 v. H, x7 I% f- h -
! j7 d, U% |8 {7 I - pause_cmp: ;判断暂停状态 w* Q/ N# M. a5 i% H
- LDA pause5 e6 V, h; c3 B8 p
- CMP #$01 ;判断暂停状态! ^/ F- O& i# V9 i( g$ e! d
- BEQ button_press/ R; C5 q7 W s, }" o* c. k
- PLA6 _. p k8 J9 I8 r# W7 b
- TAY
7 {$ |) Q B8 x- u2 W - PLA) U) E. i8 f% P# Y
- TAX0 g5 L) ?2 H% p/ K7 J. Y. h. B. {
- PLA
6 w; Q: W# [4 i+ U - RTS# t6 }/ R j' a( ]* a' G6 c$ ^
" ^: Z2 }* O1 h, C4 L: v- button_press: ;按压操作
* L$ k- F( }( h0 \ - ini_Y:- c* w$ e3 m& y5 C8 I
- LDY #$000 ]2 Z1 P0 B( A9 o( z$ p4 O5 j
- button_cmp:
4 E) |! H3 P+ X; ^7 d9 b - LDA button,X
0 e+ R8 ?3 A5 t; ?: p - CMP ora_data,Y
/ E- w; R, q9 ^8 Z6 n+ t - BNE count_Y_cmp3 w/ A! S/ d( X3 K
- flag_cmp:( R+ k5 A$ d4 O& P6 X- f4 b, b5 B
- LDA flag,X# p7 Z2 m2 q( ?3 Y7 V! Z2 _) g r
- AND ora_data,Y
5 R8 T. [- |" p5 X- D$ Y - BNE flag_and
, B) V: W$ }# J5 ~2 j9 u - flag_ora:' r8 U2 P8 ^' I( G
- LDA flag,X
( ~* w$ z7 p, w - ORA ora_data,Y! T8 O' `7 k% u2 R1 s) N" t/ \
- STA flag,X
9 V; C' x7 ~5 W - BNE count_Y_cmp. Z0 m2 `# j: |( i) w' Z5 Q0 K
- flag_and:
3 `6 f0 d; r( N7 A3 n& H: @. A+ V* R - LDA flag,X
; N$ G: x) D' e - AND and_data,Y
0 w' R! i6 V3 U - STA flag,X" P7 s* g/ f, d+ T
- count_Y_cmp:- T" e- Z7 s: a
- INY
: [; A, J) X) ?9 u- @/ { - CPY #$082 ]1 R+ n4 g' L5 S3 p9 ?
- BCC button_cmp ^5 |/ U) l; t0 C& L! C
-
F' p3 K- K6 I' P4 j - data_extract: ;数据恢复0 N+ S2 ~4 A8 r& W
- PLA
' H! A: h, y1 h# F# `2 k - TAY3 _! \! @( D7 |/ [" p$ E# I8 |" O
- PLA+ y2 F9 P$ w1 Y7 p
- TAX
: E( C- e% t2 G' e$ x" P& L - PLA
: H$ I# N4 H% o3 l, q - 5 [, T+ R$ B+ w' c ^/ p+ ?
- return:
! z( \5 l9 N6 W4 H6 y( Y2 ~ - RTS
/ a) p. Y) K7 |& x9 r x; C+ _ - : b" e9 {$ t& h* `7 n
- ora_data: ;按键相或数据! v+ o; @& a$ a' D
- .BYTE $08,$04,$02,$01,$80,$40,$20,$10
4 ]# Y8 i' f, O& n - and_data: ;按键相与数据. u4 C: H9 ^3 K- e+ v1 R
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF! t4 F! s' K# O' s+ [, q
- 6 r" d0 n: U+ _- K' J7 k; O; f
-
& @7 k- O5 H# `7 L* y -
3 L( S$ e! ~6 \- r0 b, t - 8 v, O0 A/ [) X0 M
-
, r: z/ Z' T& z) z R; [, f8 r - ) |& ?; H; @- T2 i# k$ g* L
. H& B( f* m& b. P9 p: u3 o
0 f& F' R4 Q: V4 y- 3 k" v- B, t. s- w$ ^
- .ORG $C264 ;自定义的MAPPER2切页程序- {/ n% a' I) m
- PHA
9 ?' b0 N0 l3 F3 W - TXA
. R U* P0 n6 i - PHA' S3 K; X7 y: X! l1 H5 Q6 V7 f8 g
- LDA $00663 @/ ]; `1 w: M- x. @& i1 g& D
- BNE ADDRC2807 e& _% N' P) `3 b! ^! o
- LDA #$079 P" h& h# e+ q0 b. j |
- LDX #$038 n S" k: g2 [0 L
- JSR $CD9B ;自带的切bank方法# _4 a( N" l: m" D, A* o6 a `
- PLA, ~: n1 ^% N- T% Q- n |3 i
- TAX
, ]: Z" A* @2 |$ V - PLA
, n6 N" f' ^- L: v g% S - JSR $8000
1 U1 T' k8 _# ~0 ?6 o - LDA #$06
8 K Z/ z7 s( S, f8 i- |; ]1 { - LDX #$03
6 m( K: c7 s# c/ i3 O/ [% N* _ - JSR $CD9B ;切回原该切得bank(可以不用)
* U8 _& M1 r6 p- ~$ B7 b - RTS
/ y& z( | j1 x' x4 O. ` - ADDRC280:
3 H q. u2 E/ [6 H; S( o - PLA/ a r" t) H9 {& [
- TAX
8 P5 ]7 y: j+ W" {. x# D+ Z' ~ - PLA
+ t( o& i. a! S1 h* f4 z5 {. p - RTS
8 y/ y6 h E. o- S4 V* R [1 Z - + {2 g4 p: W, x5 C5 t# Z! Y7 i
- 2 W5 E. u$ p& S6 k
- ;[FC][最终任务PPU][END]
/ H& _' P6 x \6 A- u - .ORG $C056 ;跳转到PPU重写程序3 C8 W, [; N, G5 w2 Q |1 x9 c
- JSR $7000
" N4 s, {$ w2 f( E - # ^% M% ~# T! l
- .ORG $CEBF" C% U- l- D8 A0 i3 @& G1 ^# M
- JSR STAGE_DATA_WRITE ;跳转到关卡数据写入: q1 ]3 W& d' x5 L
- 0 B8 r; \4 O3 Z* C2 \6 e8 `
- .ORG $E460/ X6 y1 Q S3 v) M1 [ G3 \- U
- JSR BULLET_DATA_WRITE ;跳转到副武器数据写入6 g1 E% m! i+ p2 T* U
- 4 h: y, ^3 b+ u/ a. H1 Y. [* }
- .ORG $71F0
6 i" F& t" @+ H. s- `( | - STAGE_DATA_WRITE:
/ C7 q9 ^3 Y$ D0 j' k* l6 e - LDA $6010- {8 [" X& f* f" T: p
- STA $1E ;关卡写入
) }) C4 U5 w4 R% B- y+ X - LDA #$008 R/ X1 E8 J# K" z- B3 @ u
- RTS1 w h& A/ _8 O% l/ r
- .ORG $71C01 x3 M! X) C7 L: P0 H, i, R7 i8 G
- BULLET_DATA_WRITE: ;副武器数据写入
( m0 v3 F7 f. g8 m4 ~8 p. k# H; r - CPX #$0E$ Q0 q- j. s! f# B* ?9 _
- BCS P2_BUL8 k5 i7 M2 q0 g5 t* x* g& f3 U
- P1_BUL:9 q0 ^& c+ ?! v
- LDA $6004
! h% W& _6 W' Q% F - JSR $D7D0 ;P1副武器数据写入, U% Q. g7 `/ |& b; c' a! Z1 n- B
- RTS
: e7 q2 q) g' x x) t( \6 F; o0 V } - P2_BUL:
- \* U7 _; `# X. M h& f$ p; R - LDA $60059 l% c. R7 D( I, C) q
- JSR $D7D0 ;P2副武器数据写入9 d1 \; c4 V o) b# `& w1 G
- RTS% L: y1 ~5 J9 d
- ( g8 z$ ` ~9 l7 F9 _
3 J; P0 k0 K$ \- .ORG $7000
/ v3 w6 G( `* m& t% P - : \1 j# Q+ @$ |7 Q
- STY $4014 ;补上覆盖的精灵写入指令
2 \# M5 E- ?, C0 U6 g& {: y - PHA
4 L( q4 F- q2 k - TXA$ ?9 u4 ` j+ b4 [$ f( g
- PHA) {! ?" `! R1 j- ]
- TYA1 `( R* K8 f: C4 Q9 l. X
- PHA
1 \, H6 k5 \% W) E, _, x - LDA $0C
: m e+ ]7 `; `4 p* @# F - CMP #$01 ;比较是否为标题画面
1 a* ?7 m& z0 l, P7 s - BEQ PPU_STAGE
* s. a. u, [7 p; h4 R( ]" u% J - PLA
& ?$ h+ l1 f( h4 p2 l - TAY
% o+ g0 _. ?5 d - PLA
_+ v8 Y9 f v& Q0 A9 Y/ n! c - TAX) S" a8 B+ ]. \6 x$ y
- PLA
- h% G1 _4 g' l. P+ p# R: c8 O% E - RTS4 \$ y3 \" G. s/ R
- PPU_STAGE: ;STAGE显示程序& u$ i" X1 l3 m+ j* F2 G* J
- LDA PPU_ADDR_DATA
# x: d$ K8 b$ t - STA $20068 E& c, w- ^# }1 ?5 W: W7 w0 u
- LDA PPU_ADDR_DATA+1
/ }( z) A5 R* i# D6 H p' F, l - STA $2006 ;坐标设置4 d: P8 F9 i. c. d, D; n5 Y( v+ B
- LDX #$00% x: }$ Z: T1 W# g% O( k4 Z
- PPU_STAGE_WROTE: ;写入STAGE字模
$ r( D% `3 I$ d: K9 U! Y. O - LDA STAGE_DATA,X
7 J- K2 k: B( m5 S. X! R) P - STA $2007
6 `; ], E r7 R9 P0 { - INX& g. N0 a& a; m2 L: s& _1 R5 t
- CPX #$066 I4 ^* f3 h$ v) S
- BCC PPU_STAGE_WROTE
; w7 J# I$ \8 `7 R M( P n! J - LDA $6010
" g9 k* Z% b; Y- R. N1 j - CMP #$FF ;关卡数据初始化条件判断
3 \5 P7 S/ E9 _4 H& o! q. N. ~( G - BNE KEY_B
9 _/ m( K N3 p$ { - LDA #$00. n! u2 y; C, A9 G
- STA $6010 ;关卡数据初始化
* S" @5 E x" j - KEY_B: ;关卡减少
$ M* T4 x0 a$ G3 K - LDA $04
. F; F1 _5 r0 \! [) ?( L - AND #$42 ;按键B或左减关3 Q! e' g0 z1 h# e* \
- BEQ KEY_A
% Y/ [3 m7 y0 ^/ P) K - LDA $6010
. D2 z. F. ~, K3 k G% D% ? - CMP #$00 ;关卡比较7 J) w" l# p+ e, R; @
- BEQ KEY_A$ I6 f3 i& {% B$ Z
- DEC $6010 ;减关
. j8 G7 U4 ?/ l. X+ i - KEY_A: ;关卡增加* t' L/ O1 A8 u% G3 i
- LDA $04& t1 Z0 l+ t) O: C5 `9 P6 {
- AND #$81 ;按键A或右加关
! K" a$ g0 ~. Z5 R1 x7 M, u( b+ h - BEQ PPU_NUM_WRITE; F& N" U7 `+ U. C- Y4 B# V+ D0 r' O
- LDA $6010+ }0 b" c; I6 p, o
- CMP #$04 ;关卡比较( L# E% C1 a. Y L1 Q0 N) n
- BEQ PPU_NUM_WRITE. J7 F* Q$ h, ]. ]
- INC $6010 ;加关) S2 i$ _6 A0 v' A( B
- PPU_NUM_WRITE:# Y: e$ P% K3 P. N2 u/ c8 w
- LDA $60109 O4 K$ C2 V7 G1 n! \; ^( s$ v
- TAX
% F; j' F7 n+ f6 g - LDA STAGE_NUM,X ;写入数字
" M- h1 J1 |3 O2 x - STA $20074 P8 m" N8 D. r' F& S+ j: {4 Q
- PPU_RTS:
, i4 [& _) ]! _0 r) }( w4 i - PLA
/ m4 V6 k6 @* L3 |2 {1 f5 Y; P7 Z - TAY
1 x/ _0 c9 ?! y- k$ m/ I - PLA
6 z4 |. u, O9 M4 J7 ~ - TAX5 F5 [9 E" M& T$ M( {+ |" Z4 |
- PLA
- R, ]: R8 b8 Z) g5 u( Q - RTS
q- J5 X' m! C- V9 N - 7 [9 x- R, A" H3 s: N, d( {
- ) {# P3 ?; \ r/ F; v, y0 ~7 w
- STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据- {: T& ~- j7 |* a+ i# g
- .BYTE $EC,$ED,$DA,$E0,$DE,00
7 F9 _. P6 v4 I3 `- Y7 Y - STAGE_NUM: ;关卡数字1,2,3,4,5字模数据. U- y% x) a" V1 R9 U- f* }
- .BYTE $D1,$D2,$D3,$D4,$D5
! c9 F/ @" I+ ?1 l3 n) f# i% Y# v - 1 \7 K9 J9 P$ E8 ?
- PPU_ADDR_DATA:7 K; E* N4 c! W9 n/ D
- .BYTE $23,$0C! t( b( ~) H- {3 K
- : R8 h6 e$ O4 B9 v6 x: w& H
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
1
查看全部评分
-
|