|
|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑 # K( \) Z5 K V. l8 `3 D
2 \8 c9 {/ z1 Y- Y [FC][最终任务][END选关]9 Y( H8 D/ t1 t
2 r% z4 \( i* }( W3 ~' V时间:2017.3.29
8 | l3 G; m& j; s# F) Y作者:FlameCyclone4 J- q& G. f; A1 I. m7 W- p; g! u
内容:
+ F7 p6 R2 \2 w- ` _ 1.关卡选择: 标题时,左或B减,右或A加(1-5关);2 {# f- a+ J9 p5 I
2.无敌锁定: 暂停后,按上键切换;3 l* m8 \: J! R% S
3.生命加满: 暂停后,按下键切换;
& |& o- L7 }- f* T7 W 4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);1 L3 b+ X F; E9 p0 {7 I$ V
5.子弹切换: 非暂停,选择键切换(普通,W,L,B);# l7 L* g* I* S& O2 i; ?0 j* \! Z2 z0 x
6.B弹数量: 暂停后,按A键切换(1个或2个);
8 y' o9 R3 n6 [- R- \ 7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;/ X; ~( } [7 y0 }
, ~ Y# \# G2 r3 ?# a9 q$ F Q+ g + [" d4 a! N- s; T
" k U0 d( ]! m4 V+ {! i

5 {/ t9 u. [% n. Q
4 g* d! X& V, W/ M" F( i$ m3 J. D& R$ I7 E v4 B
/ {) E) h# H" [: F4 T
FlameCyclone.ys168.com
6 D z, } q. H' `www.nesbbs.com- ;[FC][最终任务KEY][END]" j# H6 L6 J) `* O5 \: w5 d
- button = $04 ;单次按键0 a& g7 W: T$ Q" u; e
- flag = $6000 ;功能开关标志2 ^7 t, e) B; \% A) k/ ~" j
- pause = $000E ;暂停地址
9 ^) P0 p) t% R; P
6 u' [: _2 M' O8 A8 e- .ORG $8000! X+ q) m6 @4 u$ F1 E5 ?* X" }7 g+ D
- LDY #$08 ;自带的按键程序
# k2 j1 n0 N7 t: F2 S7 a; l - ADDR8002:
5 R! h4 t' X6 {8 ]( h+ X+ a8 z - LDA $4016,X
4 E" Q M. Q6 i - LSR6 [% B# j, e2 K, l. f+ B% g0 [' Z
- ROL $0021
( w* H; F: i+ h0 q2 a - LSR
5 M4 r4 k) x1 X8 N4 Q0 F - ROL $00299 M* T$ N; A1 F0 X
- DEY
5 w' P# Y- I7 h8 B6 ]# [ - BNE $8002
$ m4 _' L- Y' R - LDA $0021
" ` v6 D P Q; m$ q# R* f; m$ o - ORA $00290 W% y6 d: B1 ]8 d% }" V. o" M2 \
- STA $0021
- F6 p @- |; v, S; U8 E" R/ }4 ~ - LDA $0020+ Z u: L- D& I* X1 k9 L" r
- AND $0021% j3 `$ K( M- W
- STA $0020# N- Y" r$ o5 [
- LDA $06,X0 k4 w6 G6 x3 e1 A! E6 K( t
- EOR $0020$ C1 ?) e5 p z. f1 a0 A3 V7 ?) v) W- i
- AND $00207 |& g6 i3 f9 q8 @& T6 j9 P M i1 E
- STA $04,X
, [. E5 ^4 K6 D$ l' Y- Z - LDA $0020
- Y2 ?2 [, s/ z6 \( K" D. T z - STA $06,X
5 }! F: N1 C0 C- h4 }5 n; ^ - JSR KEY_OPERATE
! o* w* W' u9 g - JSR Function ;功能调用2 c3 Q) I' A& f9 U- Q) N: C
- JSR Weapon ;武器切换调用! K7 u& q+ `% P; Y: S, a
- JSR Power ;威力调用* L" m: S& y& `# j: l5 h4 O
- JSR BULLET_NUM ;子弹数目/ I# Y; K$ \- f- q
- JSR BULLET ;副武器类型
6 U1 ^+ O* w, B' u9 p - RTS. C" p e% J1 O
-
) W9 r/ [" v0 u* z% R; ]5 B - 0 G/ `6 F/ s& _# j/ V" S
; L# A8 L' z) Q4 d Y, }- .ORG $8050
1 G9 ^( V% j O0 f' S/ X ^! b - Function: ;功能
3 }% ?2 j! H. } - WUDI: ;无敌
& w3 Y7 A- X4 z& n$ d* p* V% W - LDA $6000,X
: _" h* g5 Y# q" a7 b( y3 J. x - AND #$08 ;开关判断
- E* X, @) _ c @+ [! [6 X - BEQ LIFE
! |! H2 u% Q* y9 y. [# u# d - LDA #$05' D% \) ] K$ D2 [- Z% Q& h
- STA $05DC,X ;无敌锁定
/ E" g* l4 j& D0 o3 E( {4 r - LIFE: ;生命
; ^5 t- C+ M+ e5 E2 ~ - LDA $6000,X5 W5 W* z) D& c. D
- AND #$04 ;开关判断: u# ?! u4 o7 @" z5 ^5 d
- BEQ FUNRTS
7 l. m8 _! ~/ v$ Z% h5 K% x - LDA #$05: P4 {" S2 G7 P
- STA $1C,X ;生命赋值% M0 F' d+ | i- U8 X" `. Q+ I
- FUNRTS:, ?& J* @4 z2 P H+ E3 q' U7 V5 F
- RTS
/ W) O1 ]) ?5 N# F O$ J' P% b( e - " E% u. q: V% ?) M
- Weapon: ;武器切换 ] n3 U2 e* d, X \, E8 D
- LDA pause ;暂停状态判断# `% L7 _0 t" S r9 P
- BNE WEARTS
% ]8 |2 ^- ^$ P# t - LDA $04,X) X# c# U# L. l: M; w4 E7 t7 m
- CMP #$20 ;选择键判断
. O. i9 V$ c k% _$ N - BNE WEARTS6 Q5 m( d+ Y+ b1 [9 K2 |
- LDA $12,X. V* D: Q) k4 s% t7 \, y9 p9 b) g8 s9 P
- CMP #$03 ;武器值判断 X+ E4 v5 b, \! Z
- BCC WEAINC2 r5 A$ x- g0 _; b5 _$ b
- LDA #$FF
& K$ c1 K& R7 @" t" ^0 z - STA $12,X ;武器重置
: E7 o1 \% [% N( L9 s# m- z0 t - WEAINC:
; T% f9 N4 o# l: K/ v! | - INC $12,X ;武器增加
4 W) Q9 z; D2 _ -
5 T# k, [! A# T; F! p1 Y - WEARTS:
1 t9 j l" p" ` A" K: G6 t - RTS) u% ]3 j+ D; ?2 ~
-
$ A* B7 F* Y. k: g - Power: ;威力6 C& E/ W" X' v) a2 E% L5 p
- LDA pause ;暂停状态判断
) R0 v! B/ |+ f( Z7 g; o) F& i - BEQ SPERTS2 W) g6 \. {- m& r5 [
- BUT_LEFT:: I, o& N; O3 n( q! }
- LDA $04,X% F' D- G) ^8 e# Z9 X: v- y
- CMP #$02 ;左按键判断
& ^5 C# t/ J& S$ ]- G. s - BNE BUT_RIGHT
* o9 W! y% {1 j0 ~4 T0 F$ Q# V - LDA $88,X
6 K! }3 R, I0 N9 N9 k0 t' o - CMP #$00 ;威力判断
) K6 [: `) M- a4 \ - BEQ SPERTS1 J+ u' d1 c0 f2 d
- SPEDEC
; z5 g7 F! u7 H0 t* i- g - LDA $88,X ;读取武器值
3 r1 z6 v5 W$ P2 m) @, ~+ Z1 ] - SEC+ |( Z( W. u" L. L- ^7 L
- SBC #$08
. v2 x& K: h2 S, n% P - STA $88,X ;威力减小& g. z8 j0 j e! X" @8 D( z3 I- T- m
- BUT_RIGHT:/ @8 J" Y4 B" G% p
- LDA $04,X8 z1 _6 Y1 E5 {8 Z
- CMP #$01 ;右按键判断
! L7 N( S7 ]$ s* E: e. B* J - BNE SPERTS; _" z, h7 Y2 c3 A! j" N N
- LDA $88,X8 B, s1 M. N, H3 U6 v" i- ]2 e
- CMP #$10 ;威力判断$ X0 Y9 ]( v* h8 W
- BEQ SPERTS
# Z- u- Z0 N0 f/ y; E; O - SPEINC:. Y) T& N1 f$ Q) _3 S9 C* L
- LDA $88,X ;读取武器值
1 ^; j6 p3 m5 l. M - CLC( a2 w4 @/ _( b* y% K$ j; [
- ADC #$08# E2 N6 s1 Y7 A; m
- STA $88,X ;威力增大) A* Y7 T& {- o
-
. M; F1 M1 K1 l3 H - SPERTS:2 s+ n% L3 b3 Q7 x1 c* G
- RTS
7 u) J+ C9 y4 r4 d
& ~/ C0 [2 P6 I1 q {9 f. b8 t- BULLET_NUM: ;子弹数目
" L) ~- l7 [, [$ K* L - LDA pause ;暂停状态判断
- w9 Y2 ]) l7 c1 @/ h - BEQ BULRTS; P% n# J/ P' C7 Q/ v i; w& L
- CPX #$00 ;主机玩家判断8 U+ k9 U- @& u, c5 u
- BNE BULRTS
, H. j& T+ }# U9 B0 M - LDA $04,X ;主机玩家判断
h! a* S( [. W) v+ H( c1 e - AND #$80 ;按键A比较
1 h2 D3 h' W* w; A9 i. e - BEQ BULRTS
- M# g: O T9 T$ o) Q" e/ p - LDA $87 ;状态判断; E$ H0 E) V! Q8 `
- BEQ BUL_2
0 v% \7 p/ O3 T S - BUL_1:. p" \/ u7 ]( q
- LDA #$00
- z" ]; o, K. x: F' @9 S$ G - STA $87 ;1发子弹! G$ F' ^9 n/ S6 h# X% z
- BEQ BULRTS* X' h& I% j. O# _
- BUL_2:: I/ v" r$ x3 ?+ t1 R4 k
- LDA #$014 @/ ?: J+ x6 h! o
- STA $87 ;2发子弹! C6 u2 n: G! ?0 q. ~+ h5 O0 P/ r! v
- # a Y! x- B T, Y! ~. x
- BULRTS:. W. {+ o k" X0 @: Y
- RTS9 p3 j. I5 U7 W+ D9 e+ M, C( s
-
# L" g$ e( I# Z% ]/ i2 M - ) J' g- l) ~0 w" L) w5 s% w
- BULLET:
( A) h+ r) _; T' {$ H' I - LDA pause ;判断暂停状态 K$ M# j% M6 T9 i. ?' ]5 m
- BEQ BULLETRTS
; k0 o; P9 g! Z. t: b5 d6 p - LDA $04,X
; M) ]* w2 G* T: ?8 \6 |- _( P& d - CMP #$40 ;按键B比较/ |* F4 Q- c1 L. K* i5 e
- BNE BULLETRTS
$ m5 o9 t4 \* r' u) ^4 T: Q+ ] - LDA $6002,X ;读取副武器
3 b% d" U" A1 ~' W% ~; @ - CMP #$03
& [# G8 Z0 F0 `7 N p7 D/ M. H - BCC BULLETADD2 p% M4 [" @) o9 c6 I7 i
- LDA #$FF9 r3 H* B9 [9 o, O0 ^
- STA $6002,X
" ?& |! p- V+ Y3 L! Y - BULLETADD:7 e2 T$ e3 p8 _( y! C1 c; Y0 [' K
- INC $6002,X
% D `2 |* y& k5 J% W' L( d. O -
5 U; N6 v _6 [3 g7 d2 l$ I) u - BULLETRTS:* A5 d9 }7 C# s
- LDA $6002,X% v$ A/ M9 ]) w
- TAY q+ [8 {; u) g& ?1 D9 t' H
- LDA BULLET_DATA,Y
$ k/ L* M5 _. d - STA $6004,X ;写入副武器数据2 e1 k$ f$ l! ?/ x( e
- RTS
; H! w) f% Y( @) M8 r -
' r5 r4 c% I* s- z - : s# ]+ w& s8 U# R; J/ T6 b
- BULLET_DATA:
) S2 Q+ l- x$ i7 M8 @2 S, W& G& l" ~ - .BYTE $06,$02,$03,$04
2 D, W# A# u+ V: X -
' B8 p8 P0 i9 U1 l4 {' |6 B -
: x9 h; b$ G# ^( X5 f( y+ ~8 c# _ -
/ J, ^1 I8 ~( s1 W - KEY_OPERATE: ;按键开关操作$ l4 @$ B3 T6 {2 {+ x' u$ Z% L; O
- data_protect: ;数据保护3 f" E9 F8 X: ]$ a$ l" A) x. u
- PHA
) ]( B Y6 \" P - TXA
' r2 l( Q8 D3 q C - PHA! t; Y1 \/ Z# t0 b! X, \
- TYA
& S1 s1 C. w" L! _5 G# n - PHA
) [4 s$ y+ q7 V3 {5 y1 H9 I5 r4 { - ( v3 ^8 y3 b6 n$ N
- FLAG_INI: ;开关标志初始化# _2 a' U- | x8 M. V. f
" ~$ M( O$ N9 {. O- LDA $600F
, _- s3 C, u8 O: {8 v: ` - CMP #$014 T8 L. w: ~8 C& F# C/ p9 w7 m( F
- BEQ pause_cmp: U- E& x* \' j3 x5 B+ s
- LDA #$00$ j* v4 |) q: X: x7 |
- STA $6000
, O- t9 n8 k) Y$ G - STA $6001( G6 u4 ^' M& u- a- m5 B" G t B
- STA $6002
- U1 y$ s; ^4 s5 s - STA $6003
. E7 e1 W) l7 v9 `& C: J8 c - STA $6004
, {! q! C5 w6 Q P' E. n- c: C - STA $6005. h5 P) ~2 u X' {8 ]0 p5 e
- LDA #$01
, z, l m+ [! p( [$ o( y& P6 Y - STA $600F
7 ^8 M6 O# h- j+ x! o -
4 R u( d- z+ Q4 H; q9 Q7 M4 H5 a - pause_cmp: ;判断暂停状态
0 v- ~. o: ~9 e. d7 G" X - LDA pause& I6 f/ N+ e, E! x/ Y
- CMP #$01 ;判断暂停状态' j; q; s4 l# E; m' R' m6 l6 ?
- BEQ button_press, W& k$ u% t$ U' _: [3 B9 R
- PLA
7 _! \+ Y/ O2 i8 o - TAY
6 L+ i8 s! Z1 A p4 D( R# u - PLA' E/ [. @# K$ z9 O/ D% i: z
- TAX
; A) W8 N4 e Y0 C: J - PLA6 b$ t' X( A# P, z0 ~
- RTS
) \: ]! y, n. Z - 2 W+ @* C" k: Z/ X9 r1 p
- button_press: ;按压操作
) u$ }, \8 G7 M7 T& t# o) g* A% y - ini_Y:
8 X3 |. L% S& z8 n - LDY #$00, ~3 f b7 T8 \. Z) @
- button_cmp:
* o. A6 y7 ?1 O A - LDA button,X7 {5 E. B! }" x4 p5 }" |
- CMP ora_data,Y
6 ]4 H4 h+ F; i$ z7 Z J. a - BNE count_Y_cmp
9 C* z/ m; r/ z6 X- S; C - flag_cmp:
* [7 O. l# r8 o - LDA flag,X. W4 x7 s+ w0 T% v
- AND ora_data,Y9 p, y8 B2 O$ P- G) P
- BNE flag_and
0 T6 p( r9 _. z! X - flag_ora:+ g+ c/ F7 n: Z; v* C
- LDA flag,X
, D8 V# s0 M0 v - ORA ora_data,Y
9 N: S; @, m% _' M1 z - STA flag,X6 ]6 R$ I- O! g9 |; ?! h# D
- BNE count_Y_cmp
& d. K5 l1 o3 r - flag_and:. {# o, H$ S1 Z0 i; H$ R
- LDA flag,X- }5 j( N9 Z. a8 U" ~
- AND and_data,Y' O, c5 L. ?( Y* k
- STA flag,X! z" u% I6 B/ e. f
- count_Y_cmp:
) {0 D1 p7 j6 T4 R; i+ T1 L - INY2 u5 E. i4 V" [1 L0 f
- CPY #$08( z. ?9 M$ w; l5 A
- BCC button_cmp, O8 O% \, R" `# g: q
- ( J3 }! {0 w, ]( D: d
- data_extract: ;数据恢复6 a2 x- S3 p3 s. q2 [
- PLA1 |. S6 R; R, g A. y
- TAY
2 H6 f) h3 J& n - PLA. j) h9 h7 W5 P; Q# X* C
- TAX7 s6 T, K6 x, j/ s6 E
- PLA+ @: a9 o5 ]/ g) }
- / P. W5 D; b' S' O9 S
- return:
! o5 f. k1 W; I# ]! M! a* v0 q* ?8 ` - RTS
; V$ A& I; Y/ k/ M' |2 [. t. n - ' o+ I _7 B5 @
- ora_data: ;按键相或数据
2 P! |. `0 A: Q7 m/ i6 ^ - .BYTE $08,$04,$02,$01,$80,$40,$20,$10# d' c" U3 y' p
- and_data: ;按键相与数据$ U4 p- B# `# y. Y+ v
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF
* G5 y- J5 m, t7 {2 l. L, q - - ?: `/ C/ K2 Z6 i
-
! ~ N- h& {) W1 `3 P- x9 V& |2 p -
# L& u1 L2 R- `* b5 h( X -
4 W! Q5 M! w# _6 c m' R9 K - 6 B. @' h9 g9 y& Y. |
- ( k* T: p o& X. p b6 y
- % h2 e; n% [* c; y5 o
+ Z- T/ ~- }0 U
: ^( N" j- c% F- {$ H6 f8 F- .ORG $C264 ;自定义的MAPPER2切页程序7 g8 L$ U: {6 H! M# e5 m8 T
- PHA
. Q$ p# m; d3 C - TXA
7 ?0 w% h+ Z/ _' |: U; v& j - PHA
% C* R; U: m( q- B - LDA $0066# t3 m$ W4 I' a6 M
- BNE ADDRC280% a5 l/ A# a* |, k9 M6 Z! f
- LDA #$077 x, W0 w3 ^1 z, `+ ?. }
- LDX #$03
* L" K* \# X" M" ^; f+ f! s# K - JSR $CD9B ;自带的切bank方法
( l5 I8 P* T: `0 B/ } - PLA
# k7 K- L4 a2 v `* A8 X - TAX6 t3 _5 V1 F% ^$ F* d
- PLA. l2 T4 y) m! u; p# z; a6 J8 w& S
- JSR $8000 t% ?- O5 e j/ n0 M: f
- LDA #$06
7 }& a/ w3 d9 m) C7 G2 H. L - LDX #$03
4 }0 j3 W& d) A# A* }' R0 D% t - JSR $CD9B ;切回原该切得bank(可以不用)
9 j, V2 c0 F: Y9 {( h0 E - RTS" J6 y6 s7 I2 u* x2 y9 Z2 _" t, B$ N/ c
- ADDRC280:6 l! k& x1 E: G8 Q, R& {5 U0 B
- PLA( l ^( K) O* p# @' J
- TAX
6 d* ^, F7 G( j2 K$ E9 K0 i - PLA# L8 E ?' k* x* p/ I: |7 x3 a5 g. l
- RTS. g o- a* j9 T8 e6 ?: v) P
- + h" Q, Y, M( G* B
-
& u3 G6 O# s+ L" k) Q) w y - ;[FC][最终任务PPU][END]
/ B/ R) J* u5 f r$ k6 | - .ORG $C056 ;跳转到PPU重写程序
% o% `5 Y; ~) `! } - JSR $7000# m# |% n1 ?. d+ p2 [
% A5 ^/ g( ^. ~4 J1 l. a- .ORG $CEBF
' P: G: z! q: ?% g* j' e7 G - JSR STAGE_DATA_WRITE ;跳转到关卡数据写入9 m7 g# c$ z& S/ \) o
-
+ L$ i- d# O! f- z1 z - .ORG $E460) P3 J; v% G' a( J9 w
- JSR BULLET_DATA_WRITE ;跳转到副武器数据写入, `' _/ G, _& E' t; O6 F' U
- ; I' i7 U T. k' s9 Q
- .ORG $71F0
4 O7 H) K4 j4 m3 w - STAGE_DATA_WRITE:
2 L* X4 X2 t3 g - LDA $6010: G5 [9 p4 f% T0 Q+ ]; g0 N$ e
- STA $1E ;关卡写入! i& r* [. g2 ~- Y1 r" J, P2 }
- LDA #$00. s, C }, x7 t8 C5 r5 f' [; f
- RTS
" h2 u' h4 z3 C7 B$ z - .ORG $71C0
% H7 Z) d* a2 d. o - BULLET_DATA_WRITE: ;副武器数据写入4 S* X( S2 q& n# _
- CPX #$0E
( k- L8 f/ D; ?- h - BCS P2_BUL k/ [; J0 H: r
- P1_BUL:! V& R- `) h6 w6 q1 D, l* W
- LDA $60049 W& Z+ J4 B* b9 a* o
- JSR $D7D0 ;P1副武器数据写入0 S% h. n- K x! y" d
- RTS
5 j9 m& ^( k2 C# N - P2_BUL:9 b5 Y, N8 r) Y6 w( K$ w$ g6 Q+ L
- LDA $6005
' C7 `: b$ }4 X - JSR $D7D0 ;P2副武器数据写入
( L$ O i0 F& I1 `8 }( `7 \, t! { - RTS
) n! {2 D! \+ |1 p- ? n - 3 W) G2 M v- u8 B# U
- 1 R9 Z! Y2 _; g9 A
- .ORG $7000- Q! l2 [1 F, T: b# C! A0 i T* ~& r
-
3 J* { E8 Z' R - STY $4014 ;补上覆盖的精灵写入指令
, |: @4 m! ]% W& t) l - PHA
, I. J. D* `: X3 J/ u - TXA6 j& G% G* B8 g6 E t& N& }
- PHA0 f0 ~8 R% U# g8 e
- TYA
* d, H# D! F! J/ S - PHA' u8 x" D+ t, w
- LDA $0C
& G! f; z9 I/ r) Y5 ` - CMP #$01 ;比较是否为标题画面
" `: U5 s# d7 Y$ G4 o( z* R - BEQ PPU_STAGE. s9 G2 d4 n% c6 J9 [
- PLA
7 J# \1 y0 B3 d* I - TAY
) U' X; L0 F4 s. h: u; T( D - PLA0 i$ W2 r( Z& a1 S: ]
- TAX
- t" h& g, i6 q$ o+ G - PLA
. G' w9 }) K! ]' X( q L* k8 F! ] - RTS
+ r1 I, g) C, ]* k - PPU_STAGE: ;STAGE显示程序
# ~; {4 U7 s9 Y1 j2 W7 e& ^4 x - LDA PPU_ADDR_DATA
3 `. _) M: N9 b- ]: o7 ^. I - STA $20062 v3 e/ p2 y6 m9 i
- LDA PPU_ADDR_DATA+18 S) |) E4 n- X* g
- STA $2006 ;坐标设置
) d c2 Y \) q8 d( f+ ? - LDX #$00
1 n" \) V" a f4 l& `3 s6 d3 c. T - PPU_STAGE_WROTE: ;写入STAGE字模
& {" j# z1 K2 d7 E5 ?7 E! W - LDA STAGE_DATA,X1 }, E8 g9 k: l* B" }& N% b" j; _( m7 V
- STA $20071 h+ n8 b" v {; ?( X J
- INX
/ A* S5 {) v5 ^5 w - CPX #$06' u. h0 F D% }" r( B- s
- BCC PPU_STAGE_WROTE
% \6 R: ~6 L3 b7 Y! x' ` - LDA $6010- J; W/ {& k$ m8 U& D6 I4 V5 ~% O
- CMP #$FF ;关卡数据初始化条件判断+ S ~- |& }8 O9 ^" M1 F3 W
- BNE KEY_B
; B/ a- j, s* {3 W3 f - LDA #$00
% ?! Z! x9 I' m0 ]7 b - STA $6010 ;关卡数据初始化
9 z& e7 S% p) V; w6 U - KEY_B: ;关卡减少# L. X) d: c$ [4 o. ~6 r8 U
- LDA $04/ k4 Y; |7 {2 B2 O$ N& H
- AND #$42 ;按键B或左减关% Z# Y! @9 r7 H
- BEQ KEY_A
) X+ _6 T' p0 L: w: `4 O$ D: [5 \4 q$ u6 z - LDA $60109 }1 ]$ B- s1 I6 a: A, \& \
- CMP #$00 ;关卡比较
; C; D' i5 `" z- }4 n5 P5 ?0 v/ T - BEQ KEY_A+ c5 b. }8 r* V6 z. O- g
- DEC $6010 ;减关
# ?5 j7 e, c( ?3 s/ U/ n; e8 O" N$ s - KEY_A: ;关卡增加
% Y, r7 b Y' {. I: i - LDA $04% ?/ ]# o- T+ `4 U6 }% C7 |
- AND #$81 ;按键A或右加关* T4 u8 F$ Y& o( u6 v8 n
- BEQ PPU_NUM_WRITE
; q7 z5 s! l9 q8 _- u/ h - LDA $6010
, [7 {9 S U: a* e/ S- G; A - CMP #$04 ;关卡比较! x# |1 r% u& N1 q x9 n+ p* C
- BEQ PPU_NUM_WRITE
5 ~: ]$ g; S& J q: ?0 B - INC $6010 ;加关 C8 z l" v: L7 s; @2 y. h
- PPU_NUM_WRITE:
3 I, ~1 y& V/ P- m3 s6 | - LDA $60105 j3 R, l7 [- v) y% B& V% D1 F3 [
- TAX
7 O0 h4 |8 ]" X0 _" y( s - LDA STAGE_NUM,X ;写入数字7 c( @, l. e# d- B) I) w6 W
- STA $2007/ `1 a# Y. W ^1 ]+ q& f! H) d" s6 }
- PPU_RTS:, ~8 V `3 p* v# S! ]% v6 ~! Z, B
- PLA
" c9 G$ A/ p p } l1 V# p! N/ j - TAY
% k" B! `5 }7 v/ k9 Z8 G - PLA
: C. Y( O/ S3 C3 `9 h - TAX7 z1 ]4 m5 t& Z# S; N8 z
- PLA
9 x, w$ K7 F4 m" d - RTS
% h( I# e' Y5 n -
; H) c/ x5 _$ ]# k6 Z -
1 D* |4 n+ M6 H+ E6 E& N! u8 S - STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据, T7 p. K( X! u
- .BYTE $EC,$ED,$DA,$E0,$DE,00
, P, C" H' r2 X) E/ q - STAGE_NUM: ;关卡数字1,2,3,4,5字模数据% x X) X2 Q7 G" E t8 _; T
- .BYTE $D1,$D2,$D3,$D4,$D5
0 h1 _+ w' b2 t& F, ?- W N( `1 T -
. Q* M& I" z" T" @ - PPU_ADDR_DATA:- m2 [" C' W( v0 y9 Y
- .BYTE $23,$0C
* t/ f0 O7 o3 T. i/ K( i. U% g+ i5 T - $ C5 p; r! }0 v
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
1
查看全部评分
-
|