|
|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑
6 [* h! f# F$ o8 z, Y8 c8 E0 [' i9 A- s( H$ X: A e
[FC][最终任务][END选关]
+ D. @1 F( V2 E7 D, s+ ~/ X" s" H$ C$ w7 [
时间:2017.3.29/ W1 c: T# r- ~+ b
作者:FlameCyclone- o& Y3 e: o- _3 L4 V: w
内容:
" E2 h8 D+ L E' S4 c' e' h2 Q8 d 1.关卡选择: 标题时,左或B减,右或A加(1-5关);
1 U; p3 N! R- {) _- \ j 2.无敌锁定: 暂停后,按上键切换;
! R7 R2 M9 Y% F2 {9 v# f$ ~ 3.生命加满: 暂停后,按下键切换;
% q$ Q! v( A" D$ Q: T0 @6 S 4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);
' z' {: L. a' b% `+ k# Y 5.子弹切换: 非暂停,选择键切换(普通,W,L,B);) }4 i5 l$ K/ ?. T! J
6.B弹数量: 暂停后,按A键切换(1个或2个);
6 |" f- m$ t+ B8 e$ ^3 Y: g 7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;1 v# D; [ B# f& ?. M" e
0 H. b( i6 R# z9 i. I O- }

! H9 [- T- A" @3 J3 E( v7 e' v
+ x( A5 K% k# u1 h# R: a! n 5 _4 k C% v. G2 _7 ~

- ?' p" L, J8 V( A% P! a) z
2 n0 {' b; C$ d/ p$ q. B
; T$ Z t2 a) X% g: S N6 U0 y" hFlameCyclone.ys168.com
/ @$ C' p4 S' Q% v7 J V0 l# P7 Y, ewww.nesbbs.com- ;[FC][最终任务KEY][END]
1 q6 I, w1 v- h6 B$ A; k O o - button = $04 ;单次按键3 `" |4 z! _+ s5 S
- flag = $6000 ;功能开关标志- Z5 \3 S2 t$ o* r2 r
- pause = $000E ;暂停地址" I0 s4 [8 r$ P8 ?+ v' W
6 {% a$ T K8 e- e- .ORG $80002 X2 O" t/ L( i, A: p ^5 u
- LDY #$08 ;自带的按键程序
$ { {2 q+ \6 N) o8 K - ADDR8002:+ c. H: a, s' l' c: _ Z# ~" y
- LDA $4016,X
9 \$ `7 Z9 g0 v - LSR( j: E1 X: ^0 k( l
- ROL $0021
# o; l; N" `- }6 e# X - LSR
* Z# d3 q. c+ T7 Y" ~; Y - ROL $0029. k+ Y) e0 e4 n( @& c# F
- DEY. n( n8 V# ?9 d+ d; T' ?& Q; R
- BNE $8002
. f9 @. ~( t( `$ h( n - LDA $00214 F! @* a3 k4 k8 R/ x O
- ORA $0029
4 Z; Z: l& E* Q+ Q- |2 W( J - STA $0021
: b7 g; [3 Z1 @" g- t8 J" e - LDA $0020
. x! D; `+ W# n0 u: s6 Q8 _ - AND $0021
: A6 q3 Y+ |" P9 X8 F2 Q5 ?+ S6 g - STA $0020. @- L* S6 |% [. N' h& s8 V- I' h1 e
- LDA $06,X
9 B. q; e4 ~5 N" h0 Z' B+ G9 Y8 E - EOR $0020
* n. W/ x7 Q) z. @2 X1 l - AND $0020
U5 C2 f; x% b6 {9 A - STA $04,X' M+ |5 Z7 J! e+ x
- LDA $0020
( K5 D7 { t* J! D" m. N2 y1 U: F - STA $06,X: b% @! H! i) a7 E0 p
- JSR KEY_OPERATE% H" z$ g( H, w7 k$ K
- JSR Function ;功能调用
' k. P* g ~% q" H) p - JSR Weapon ;武器切换调用
! }8 l0 O2 ^2 x! y1 _1 Y/ I: Z; c7 I - JSR Power ;威力调用1 h3 h) n1 S, `
- JSR BULLET_NUM ;子弹数目
4 t- e, ]( T# z& v4 T - JSR BULLET ;副武器类型9 s2 j2 Q6 m% L: y9 l6 V: Z
- RTS
: P; { A2 n, o2 q2 T) Q+ u - * A% Z% G5 ?2 L2 \( I
-
/ D0 k% A5 j! J. b5 E
- C$ e1 t' w1 ]9 I6 D$ `- .ORG $8050- a5 j1 L ~" x" ] M. X- ~
- Function: ;功能
, Q# y# `, Q+ o% U - WUDI: ;无敌$ l" q6 J; Y' U( W* k5 @% J
- LDA $6000,X
# {4 C, R8 ]& O* H; L. U1 N0 x - AND #$08 ;开关判断/ S. \" T& D+ r% m
- BEQ LIFE
0 Q/ p5 S2 ]% W - LDA #$058 E/ E( y) Y$ O5 w: |8 D0 c& O$ q3 O
- STA $05DC,X ;无敌锁定
6 ]- b1 @, n1 ~ - LIFE: ;生命
: @, F- P# p6 j7 j/ C( X- z - LDA $6000,X/ ?0 u* F, [2 f& J
- AND #$04 ;开关判断
4 {4 z9 [. ?$ t1 e1 p) D) o7 D+ l - BEQ FUNRTS( J' {) b+ x* b7 M1 z4 R
- LDA #$052 a s* n% U' q
- STA $1C,X ;生命赋值9 |9 L o5 Z/ z3 q, ?6 r
- FUNRTS:3 q, `+ q. w- ^9 d
- RTS
& W' _% G& D& _ - ( O! b& ?. K1 ^/ l, }8 d
- Weapon: ;武器切换
: o/ d$ \8 ?% B - LDA pause ;暂停状态判断
. {+ {! w$ `* T* G% A- e - BNE WEARTS
' ~2 x: j% V7 N4 N3 b - LDA $04,X
2 z% y" w0 a1 V3 n% ^/ l - CMP #$20 ;选择键判断
6 ], i- o& B/ d5 F - BNE WEARTS7 y! |# s4 j' M& t
- LDA $12,X5 i9 C9 H9 y1 Z" ?
- CMP #$03 ;武器值判断
f! X! i* g, z0 g! q* | - BCC WEAINC. S0 v% @- n; i6 }# P7 r' ^
- LDA #$FF
3 W( `2 m F) C+ ?8 G& J. c - STA $12,X ;武器重置 H# @% _. u* j6 |( ~$ u
- WEAINC:/ J- i" v9 M# J* Y# l; {- I v; K
- INC $12,X ;武器增加8 M6 R* f* d5 J6 C2 |
- % i/ e( t- s$ }' |! X' F+ B3 ~& u
- WEARTS:# [7 d5 T& x! T) U& Z" U% y, w8 W* J% a
- RTS
E1 k0 {7 A2 G' R% Y6 `2 B - - J* B2 D7 U" P
- Power: ;威力8 {7 r" g% D3 \8 P. s+ b
- LDA pause ;暂停状态判断$ Y% \6 R. K" c8 Z* }: m8 D
- BEQ SPERTS- Y3 c e* a8 w) P4 I* `% R
- BUT_LEFT:
6 ^* U7 `2 ?7 d$ B2 P - LDA $04,X
: `) g6 m. j5 ~# H$ v5 \ - CMP #$02 ;左按键判断$ D. K" L x Q0 {4 C% I
- BNE BUT_RIGHT& Y$ H+ N: |3 d
- LDA $88,X
6 L$ p' c- K/ f& N+ [* m - CMP #$00 ;威力判断! E4 C- _3 n, B0 c
- BEQ SPERTS
+ o( {& c7 ?) t; A - SPEDEC
( e& q6 ^# f" E9 f* o6 o* k - LDA $88,X ;读取武器值
+ U3 ?+ f# ~# ?! Z2 x& t! s# H - SEC
- C& O. u8 `3 d" R/ } - SBC #$08
0 N, [8 D* L* M( l) I* r: q - STA $88,X ;威力减小 P' }% w# Q; `" I, a1 P+ ~; t* n6 l$ r( j
- BUT_RIGHT:4 C q: t; b) r( k: D; C
- LDA $04,X, i* B# M* P3 D
- CMP #$01 ;右按键判断0 Y* Y3 Q; l! x5 j
- BNE SPERTS, G' j& ?2 M/ T* E3 @ h+ ` G" e
- LDA $88,X
* W/ u5 _) a+ ^! L( s9 M - CMP #$10 ;威力判断9 L8 I) r( S" g( l
- BEQ SPERTS3 S! k( X9 g! U; [/ s" e, H" F
- SPEINC:5 E3 b8 K) k1 H5 r- q* r8 y8 \
- LDA $88,X ;读取武器值3 |& D1 k5 O3 z) O
- CLC
9 A, r6 P; y0 { - ADC #$08
, @ C1 X! l' E' w. h% C. W9 s - STA $88,X ;威力增大5 N1 }7 W1 @9 X5 B. ~" ]4 V
- : S$ v' h" E0 {) S- p) Y
- SPERTS:) j% e9 S* E! {% o7 ~( c" y# b
- RTS$ ]) T( p# z# ?: U6 A+ d/ U6 {
. O. E% O1 P* U- BULLET_NUM: ;子弹数目
+ L$ p1 J+ j5 c3 \: D - LDA pause ;暂停状态判断# v' \" |% r) T( i9 I& S: t
- BEQ BULRTS1 Y _$ G c8 O6 B5 z9 v
- CPX #$00 ;主机玩家判断/ T& j H$ }4 w; n2 ]% v
- BNE BULRTS7 ^) G6 W, |- J# R, ^
- LDA $04,X ;主机玩家判断
( A) N! h+ _6 W4 _- T - AND #$80 ;按键A比较
* G8 j5 X% ]! ^/ k; K& N" y - BEQ BULRTS7 F% F' C* I4 H Z7 R: w
- LDA $87 ;状态判断
/ ]8 q! x4 y$ o1 e( M - BEQ BUL_2) [5 ?8 B- W2 Z, u
- BUL_1:- `, d# D3 j( \
- LDA #$00
4 w9 }% F2 S8 u' _) b - STA $87 ;1发子弹, M" h9 Q& P# k2 g
- BEQ BULRTS& t0 m5 M5 W/ ?! i8 w; s. b
- BUL_2:
: U$ |9 R8 O3 B3 a' y/ s% s: r+ _, y - LDA #$011 |, H# U: d6 ~/ f* L$ U
- STA $87 ;2发子弹
% a, V C! c9 P- h7 d7 E -
2 }- g5 X' {0 o3 `, q) L - BULRTS:
4 H0 U4 ]5 H$ y% Q5 k* s7 G - RTS
7 e3 N. v+ f! J; N1 w/ b -
5 Q' ]6 Z9 O+ `* Z0 ]4 O: X - 1 N& K/ p7 M8 n* ]4 q/ Z
- BULLET:$ k3 N4 U# b2 X Q1 b& x: i
- LDA pause ;判断暂停状态
, x& d& M% L" d+ \" c - BEQ BULLETRTS
% z& k' R7 P% }/ O - LDA $04,X1 E4 v' l: o% \/ W
- CMP #$40 ;按键B比较! b1 D! \) ~/ M3 _' J& U
- BNE BULLETRTS5 A! Q/ I* a# H$ U! x
- LDA $6002,X ;读取副武器
6 m: G' N+ G: y/ R9 z! ^8 f% V - CMP #$03) @, K3 }# T q+ F0 F# ]1 y
- BCC BULLETADD$ D, S$ v& F- U) A' ]
- LDA #$FF; c" l8 \3 n; ]" w D* c
- STA $6002,X4 e3 ^# f: n. c( w6 c2 g
- BULLETADD:
3 V. R( O+ ?# G) b$ R - INC $6002,X8 Y9 T/ F# V4 E x0 W- y6 _
- ( w; B8 [3 X$ M" M1 V1 ]
- BULLETRTS:5 R# B C4 U/ Y2 U$ D8 f/ h
- LDA $6002,X
+ u' C( B. r. V5 n0 A: y - TAY
: w2 K D5 Y8 @: u! m6 O" r1 Q - LDA BULLET_DATA,Y8 i( m% W4 C0 N1 }* ?
- STA $6004,X ;写入副武器数据
7 I. F; X; ~: Z; |) r) `# q0 S; x - RTS
: d1 m5 d* R; h1 i4 } - , T% _9 s% w0 |/ U `/ ^/ z
- $ c+ ?1 n1 j/ \, @5 @
- BULLET_DATA:* W. m8 s9 b2 y; C4 K( b3 ?1 F
- .BYTE $06,$02,$03,$04
& T9 p5 U) _- A5 k6 e& U/ @! Y - * I& Q }! x' e* U3 a4 K
-
. S' T( q" H& `$ t4 N& Q - $ L: d4 N; v5 i
- KEY_OPERATE: ;按键开关操作
F3 N9 s& C( _ - data_protect: ;数据保护" T% Q, F8 b- c
- PHA2 H& W) ^# |+ G7 d5 o; V- @+ f4 m
- TXA" X- z6 V8 h' O, L$ e* Y7 d/ M3 O
- PHA6 F. o$ Z( T7 A+ c6 ^
- TYA
y& P% [6 }. k$ W - PHA) {9 \+ f+ r1 e y! g3 H- {
8 W3 J: `( a+ U+ P" P( k0 z9 s9 y- FLAG_INI: ;开关标志初始化% G' b; A! X& \( ^- X
- & z6 g& n2 c7 N
- LDA $600F, G0 G- c- R7 F1 y8 {9 b
- CMP #$01& C$ g# i' C$ V0 u
- BEQ pause_cmp+ N3 h8 ~: z4 ~6 O, S$ v4 @9 E
- LDA #$00/ }0 [$ G2 j# F s. y( [% t
- STA $6000
" e8 R. j2 v8 B# p, V5 o* b) A - STA $6001
1 k. {: _: { t+ e% a' U - STA $6002* a) r" C d5 A: S: Q0 t/ p
- STA $6003" d( J, h8 _* B+ e9 Y- d
- STA $60048 g- y# G [# t! R, c
- STA $6005
" N2 X6 ^5 ^7 ~$ A0 J) x# z - LDA #$01
R' I D& }; t |( E( H# d - STA $600F6 M0 Z2 O7 Q* F, ^8 |; y8 J3 `
- 1 y- V h6 ]0 d6 _' x. p% U
- pause_cmp: ;判断暂停状态
( J1 n/ R) d& p; F - LDA pause
, [! m6 K* O4 t$ d, i3 J - CMP #$01 ;判断暂停状态" N- h' ] U; B8 O$ T0 r& X* |- H
- BEQ button_press
8 m) w p; v) t. c. @ - PLA
/ g+ @9 K7 O& m, N% |! k) Y1 J - TAY" U& b4 T- P6 f' y+ `5 K j
- PLA9 i1 n `# } F& M; y( I
- TAX4 ]( E t; g+ d% B6 W; [
- PLA
" ^* I B8 S& r8 O - RTS+ U9 [( B7 T; }! P- Y
4 J$ s3 @7 `" o. Z2 {- P4 F8 o- button_press: ;按压操作$ ] ]' Y/ ?; `
- ini_Y:
0 p% [+ g3 J8 I! K! ~9 [ - LDY #$00
+ a! T [9 e S2 N! c - button_cmp:
) E% O& |. z( h7 T7 g( S - LDA button,X
4 Z O( j) _+ M- ]/ i9 j - CMP ora_data,Y; f+ z( \: `: B
- BNE count_Y_cmp2 E5 H/ d1 e2 i3 Y7 r
- flag_cmp:
, t/ O h, F1 J& \5 g3 D# ] - LDA flag,X" T; S( _ {: g$ [& W k3 h& I. h
- AND ora_data,Y1 }# S; L; m! ^. {* t* `
- BNE flag_and
8 i& a. f: L9 y - flag_ora:
. X7 L& g4 z6 W& Q$ } - LDA flag,X7 b" V) B: G% |3 x7 [5 ]( V
- ORA ora_data,Y
7 O! w) Z8 _% f% P6 G - STA flag,X
( i2 K% y4 @" D( V - BNE count_Y_cmp' X3 m/ P& q0 b. Z3 v# a, m
- flag_and:0 E; i5 L T: a' N
- LDA flag,X
) C$ Q* m, c$ m" d) T - AND and_data,Y* R! i4 U( O+ Y9 |6 q q8 W. k% R: i
- STA flag,X3 W% N$ k n0 H. l u6 U
- count_Y_cmp:
6 T" d/ F+ g' N5 C' W - INY
]0 U. E# u/ P6 \ - CPY #$088 [8 c8 e/ B$ s9 @2 L' C8 \4 n
- BCC button_cmp$ H7 Z2 J" q0 N1 d5 d2 S
- R" W% F+ t7 D' m7 X" ]) y
- data_extract: ;数据恢复
# }& S" a: W4 Y/ K* j! D+ k/ D - PLA
5 u! k7 v3 Q- }6 T9 v - TAY: D+ K/ V) R& U6 j% ]- \
- PLA- r% p5 o1 B G% Z( J# l
- TAX1 E' w9 K# k6 b
- PLA
' E; m. ?/ @, r* T/ N. k9 Y2 h -
; |+ X- H# ]- v - return: b4 G- I: L- @# @0 X
- RTS
; h1 E; u, G' Q: G" P6 M3 ?% e -
Q" e" r( B6 m! [ ^* i - ora_data: ;按键相或数据
2 ~3 d. R& b( K9 S6 G4 p - .BYTE $08,$04,$02,$01,$80,$40,$20,$10
2 {- U' _( u- I3 ~5 R - and_data: ;按键相与数据; e9 z' R: S0 r/ O3 ]/ Q. M m
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF
* {% z0 s5 a; t' r! Y - 8 P- b# U- ^. Y
-
7 w2 r. @; S: T& l2 z [ - . K C0 q0 l' |. D9 z, w. r
-
; A( G* H- \! U -
% C3 y5 {/ @, u0 o; G -
/ T1 X1 b7 s+ [& P: h - , u5 h9 I" d+ k) p+ Z* ?: ^3 a
1 U$ T- m! u; Q6 m- O
: t7 T8 c4 [( k$ Y8 V/ a- .ORG $C264 ;自定义的MAPPER2切页程序( m; s3 |5 f; J; R; _3 J- y9 p
- PHA2 U+ P2 ~2 ]- Y: e$ B$ _/ e! T
- TXA
( O: [0 ]: G" N8 x7 R2 C) v' h! Q - PHA6 W8 B/ }* [& g6 r
- LDA $0066
+ d# l* L e6 h - BNE ADDRC280/ ^& N( D; U p* j
- LDA #$074 I2 K5 _6 g! D" k/ t# H
- LDX #$03; N! Q/ \+ k i6 H& }- V
- JSR $CD9B ;自带的切bank方法
) M" f: W4 \7 i/ J$ w; D' w( A - PLA; j6 b5 L& I" I* b0 y. D
- TAX" k% j$ E" r/ ~" D/ u% |
- PLA+ v, S, h1 P+ x9 e4 U
- JSR $8000$ {2 q5 W- d( C
- LDA #$06, b8 \) o0 S0 f3 b) X
- LDX #$031 M" N3 P9 L/ a8 @
- JSR $CD9B ;切回原该切得bank(可以不用)$ e0 O% v: v' `* i: V7 \' t6 n
- RTS
+ f( A% a& @6 ^$ \0 G1 O5 G+ A5 P; p - ADDRC280:
$ B) \1 p. @' Z& _# s1 q* U - PLA6 i& i8 O9 x! W2 h! H0 j) z. a
- TAX9 v! C6 n1 K) c4 `; C+ l
- PLA$ T& }: i! N5 [2 h
- RTS! j- O& b% G" H3 H4 \& o' _& o# N
- & G) U5 A& }4 }, ?- C6 R7 S7 |
-
, n0 Y" O) S( d - ;[FC][最终任务PPU][END]0 h" I$ Y- M* x u. N- ]
- .ORG $C056 ;跳转到PPU重写程序 Z6 l# T* k. l* f
- JSR $7000
z9 R1 m/ o- b* x& D- H9 B% @# U, b - 4 K0 Q- d4 f; r
- .ORG $CEBF
* a8 T+ b7 D1 I) u& k I b) V9 r# o2 v - JSR STAGE_DATA_WRITE ;跳转到关卡数据写入7 _4 H/ y. S8 i( T7 |5 r1 `2 Y
- : v: v) e! d4 e7 ?/ h/ B9 s1 ~
- .ORG $E460' O0 g( M% }- c6 y! Q& q5 I
- JSR BULLET_DATA_WRITE ;跳转到副武器数据写入
! z3 b; D6 N* {4 V' y -
' |. Z3 `2 s/ W% {8 e/ A - .ORG $71F0 W* o2 \" d! q, a. i; R
- STAGE_DATA_WRITE:
8 u4 n8 s. E/ M" @8 c7 Z7 c - LDA $6010
8 }7 W H' S E" R" K - STA $1E ;关卡写入
) q1 P& T0 ? B, B0 d+ d3 ` - LDA #$00
0 ~; b( l+ \# X; K) ` - RTS
6 _% t8 |5 {5 `7 ]& l" u - .ORG $71C0
* J0 f9 s M/ {- l - BULLET_DATA_WRITE: ;副武器数据写入: q3 D! S$ Z0 [: {) @
- CPX #$0E, I8 x. {/ d% X7 c/ [0 `+ |/ g. A/ @
- BCS P2_BUL0 a% K3 X% {; H8 m' G
- P1_BUL:
5 h; @; n3 u& p* s8 n; b! H3 } - LDA $6004
# {# z) ^# ^, c1 D+ G! V- Q - JSR $D7D0 ;P1副武器数据写入
: V. q$ c* I/ z1 ?- p - RTS
6 m* E, F. c2 U! x - P2_BUL:
. K1 C/ `. {. U; m - LDA $6005
+ K4 O, D7 @$ x% W/ Q. |5 ?) E& w - JSR $D7D0 ;P2副武器数据写入8 _) L7 l3 s- `& E
- RTS. g; b N) | s' J
% b, @4 e5 b. _1 q; ?' x- , D: T! Z$ c8 F/ N4 T/ V+ i8 l( L
- .ORG $7000" L. J* K( j/ R
-
5 D7 ?- l" i4 i1 x - STY $4014 ;补上覆盖的精灵写入指令
* m( Q& Z" ?/ H/ ? B; V& E - PHA* @. H9 x7 K5 l" r3 |# z
- TXA1 [; S# _! m& i* D) o. ^) d) U
- PHA# m: a0 r; e% b- u
- TYA
1 e3 c; U' \* `7 k* n - PHA
- u" H: s5 g* m( G6 @' u - LDA $0C
: @6 ? Y8 O7 {: l - CMP #$01 ;比较是否为标题画面" [4 z/ k+ y+ D7 j, l
- BEQ PPU_STAGE
6 i; z& A# ]9 ?- g' Q2 t - PLA
' b9 @! `3 L7 j, H - TAY
. M* M. r" ~1 L! Y, J - PLA3 u; U% V8 D& V- D8 o8 b
- TAX# h. O t1 P& j9 u' ]
- PLA
2 p' i' C. F& S - RTS" {6 N" y1 w8 ^/ ^. J4 F
- PPU_STAGE: ;STAGE显示程序: R6 J# P2 h2 y& p* N- {
- LDA PPU_ADDR_DATA
( ]! V' z o q - STA $2006
5 M" X/ I2 L( h7 f9 C. {. Q - LDA PPU_ADDR_DATA+1
$ n }: G& G% ]7 I6 k - STA $2006 ;坐标设置
k- b$ Y$ D- U) _$ x - LDX #$000 Q6 c2 m1 s4 s
- PPU_STAGE_WROTE: ;写入STAGE字模1 x2 g1 W& c( |" |% V4 O: B0 |* D
- LDA STAGE_DATA,X
) @- b4 a; R: G# v- _ K2 X' N - STA $2007
0 ]& f7 E- w) o) m4 Q D - INX1 o" h% R1 \- V3 E! \) A7 K, n* n
- CPX #$06
s1 B( O' x, u; g. |4 R0 b; t) Z m - BCC PPU_STAGE_WROTE2 N1 \7 Y8 t9 Z& G' X7 z8 \
- LDA $6010
$ T2 n$ h: l5 q( s0 ? - CMP #$FF ;关卡数据初始化条件判断: E% z: j* Z4 {
- BNE KEY_B& Y. B' ^ G6 W
- LDA #$00
& ?* P3 A1 R7 l/ J2 I. j* c: Y2 E - STA $6010 ;关卡数据初始化5 K' Y/ e& x: `* n# B
- KEY_B: ;关卡减少
( g2 |3 p+ x# w2 t7 P$ t - LDA $04: H# m9 x- I* [- f
- AND #$42 ;按键B或左减关0 o \/ p; \$ G T) q/ l( i6 X
- BEQ KEY_A
3 V. x% m% @: X8 l5 U2 k - LDA $6010
: d$ U# c# M$ ^ - CMP #$00 ;关卡比较
$ N1 }0 m2 \; |( |3 t' X+ f - BEQ KEY_A
( C h9 _/ o- L8 P - DEC $6010 ;减关8 V$ \% O- q% O
- KEY_A: ;关卡增加0 |. l$ S6 N! s
- LDA $04' q2 }% a# C1 l& e# r8 U' x& Q* [1 m
- AND #$81 ;按键A或右加关6 C" B" Z* N; h' H/ U8 J1 Y a0 C
- BEQ PPU_NUM_WRITE
- O2 d$ q: s$ S1 o - LDA $6010" B6 D+ [) a9 P. |5 E" ~. w1 C) u
- CMP #$04 ;关卡比较# A# b7 P4 y- M% ]# y1 y1 I R
- BEQ PPU_NUM_WRITE
' E5 b# ?5 M8 X+ A7 a7 }6 p7 u - INC $6010 ;加关
3 C! L7 t+ U& ~8 H/ ~ - PPU_NUM_WRITE:8 Y+ y4 r3 ^8 L1 W
- LDA $6010
) Q1 ~& H1 u; h: n$ F( p" Y. B - TAX
& c( N. p r3 O k4 x* j( X - LDA STAGE_NUM,X ;写入数字
# Y# n/ w! S% F5 Z/ V$ c - STA $2007$ t/ ~$ x/ t( ~* p5 _
- PPU_RTS:
" `: C- B$ u( M' S6 J - PLA( W8 M6 e: h, Z2 P
- TAY
( Y8 {" A4 N, i" T7 x" X. P - PLA& J2 B/ t% i" i( t: \
- TAX) k6 j1 U/ R8 r, P
- PLA4 e2 S: }2 D5 y+ ^* y0 q
- RTS3 q/ r" t1 c. ]/ n" N3 b
- " s/ @6 m1 t0 }0 G
- & A) N4 K- z* z" C
- STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据& }7 U1 b$ @* l
- .BYTE $EC,$ED,$DA,$E0,$DE,00
) h3 x. h3 j* H, @- F c - STAGE_NUM: ;关卡数字1,2,3,4,5字模数据
F" g) n( \1 L Z - .BYTE $D1,$D2,$D3,$D4,$D5" b7 x- r/ w, e: K
- ; L+ d" S. p. B+ u- ^
- PPU_ADDR_DATA:
* z5 _! P& M6 y5 M& i1 h* v - .BYTE $23,$0C0 o, I0 h8 ~( G. d4 L3 I( r9 ^
- 5 i n; X8 b. g" M; d5 ]/ f
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
1
查看全部评分
-
|