|
|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑
( z1 E, o# j# ^
1 N, X1 r) A! W8 [ [FC][最终任务][END选关]
+ E( B0 R- V0 Q" `$ {" E
4 E4 q+ ?1 U# ?1 u" o时间:2017.3.29% S- H; [( g2 }3 v) v
作者:FlameCyclone- ]) M1 @+ @* m* N' g% T' b
内容:
. n% J J+ m1 a, v: @' S$ G- D% t 1.关卡选择: 标题时,左或B减,右或A加(1-5关);
0 y! J) M0 o% j$ q& s% | 2.无敌锁定: 暂停后,按上键切换;
. A7 i1 s- X8 z, R8 J 3.生命加满: 暂停后,按下键切换;
5 B9 I6 x& j, H% _0 C% N" D& g$ f5 p2 y 4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);2 Y9 n6 O6 z) c+ }& k
5.子弹切换: 非暂停,选择键切换(普通,W,L,B);. V. `* C# Z1 S) z- n
6.B弹数量: 暂停后,按A键切换(1个或2个); N$ [* n @8 K) k, x! c
7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;
& ?# O x. `7 F! Q8 z5 J8 V! m6 U) @) S6 u$ {7 o+ f. C7 X0 P

- I/ Z1 p5 a) o3 w* Q8 g9 o# C ' [) t/ d- c4 b' y9 K& M

- y5 T2 q4 b' u( f: K# o" } 4 f( h: ]6 k; b; h( F2 s1 I2 s- ~
6 W3 y, k8 s% ?/ V! `2 }7 }! u6 M6 M* q* b
FlameCyclone.ys168.com2 j( M- m$ w" e$ V
www.nesbbs.com- ;[FC][最终任务KEY][END]
' P g" j( ~( I - button = $04 ;单次按键/ T. [% H% p$ T; ]! I
- flag = $6000 ;功能开关标志 @; [' l$ Y' i) q" c I# y3 l& Y
- pause = $000E ;暂停地址1 G% H$ U9 H! \4 F/ r, ?
- . C) Q% s( E& o9 R& J
- .ORG $8000
* W# ]" |) T5 e* T$ Z$ p+ D7 H# I, e - LDY #$08 ;自带的按键程序
! L$ D" z: Q( K" C" `* m - ADDR8002:
# b9 g/ B5 I0 @ `7 d$ J - LDA $4016,X2 N& \/ n% e# j- I8 R/ e6 O
- LSR
( t) x3 j; G. J. { - ROL $0021
2 i! {! i; c/ W - LSR) R; C7 h) u1 k! `; t/ J2 W
- ROL $00296 M: e# I# P0 F5 C& `# r) t
- DEY
. d( P& q% r1 Y+ T) K# P2 [ - BNE $8002
2 T K1 ] Q2 ~" R* `6 E1 A3 l - LDA $0021$ y% J- F e+ _2 g- G( i; Q
- ORA $0029! _- C" V' V7 ]: u0 ^ t
- STA $0021
% O) I( r" g7 W, z - LDA $0020
) u0 m: Z; _1 W0 ]+ c. I6 q - AND $0021% ?8 [* ]2 [# P9 }
- STA $0020
, d- u2 b1 z, L! V. @- C - LDA $06,X( k1 E9 M& J; @1 a+ e
- EOR $0020- `' J1 C: a' s
- AND $0020
2 Q2 @* O2 N2 |; c - STA $04,X7 h) ]# h# j6 b. g t
- LDA $0020
% c3 q* w& k. |; D' O, N0 Z - STA $06,X
$ e7 t- Z, [3 O3 |+ P7 Q s - JSR KEY_OPERATE
( A+ S: u' v* ]4 S; i5 a) h) R! e& ` - JSR Function ;功能调用* z; m5 V, a" j! n2 d' B7 u L
- JSR Weapon ;武器切换调用
" L4 t1 |# l; i3 y7 L5 Z: e$ y - JSR Power ;威力调用
% E5 h- j4 E6 b- v4 V( n - JSR BULLET_NUM ;子弹数目( U0 @ v4 i+ O) ~) s2 V
- JSR BULLET ;副武器类型, o; ?- v: N1 z2 O, h. O
- RTS0 A2 i" {8 k2 H; y
-
- s# D3 n. j; G2 z0 w3 @, ], M5 y1 [" y - . t- d" q- K/ K) U2 F- s6 q. k" u
9 V9 x$ h8 j4 [; c$ M- .ORG $8050
( U; e& _' h" H. ^" H" s5 s - Function: ;功能
2 R2 S) h2 ?1 i# G - WUDI: ;无敌' N1 T" ^$ L. Z+ w
- LDA $6000,X
; H* f$ Y9 [3 U" G - AND #$08 ;开关判断
0 Z+ h# M( }- X. @ - BEQ LIFE' \ f8 r- w" F
- LDA #$05
3 \8 z- ~" Q1 b! z y - STA $05DC,X ;无敌锁定+ q$ j( P! B9 P8 g; N
- LIFE: ;生命! i; ~' I# U" F F. K3 U2 I$ g) T# G
- LDA $6000,X8 x; b/ k% u; e2 I$ O
- AND #$04 ;开关判断
5 i( m- p( N5 o7 y- K, V - BEQ FUNRTS# l5 T% z" [, Q$ B5 t/ o5 L
- LDA #$05
; ~0 t ]& m J; A- G0 Q f1 |( X - STA $1C,X ;生命赋值, e0 l) \! \+ [( S3 N/ l- ?1 G
- FUNRTS:
- X8 | E; X6 a% H& n" v - RTS
1 q$ |! t' P7 q/ [5 D/ v+ J! p - ! |* j# u( [! h" ^
- Weapon: ;武器切换* R( D" N S2 G# j5 ^7 n( T
- LDA pause ;暂停状态判断
9 ~# Q, b. j) N. B - BNE WEARTS
& H+ L& d; E* C+ Z - LDA $04,X
/ q& o, O& X/ v# \7 p6 y6 S - CMP #$20 ;选择键判断$ ?6 n! ]- e( n/ c' F' p. J
- BNE WEARTS8 d0 z+ a) Y" H9 N( e) P7 T% r% G# R
- LDA $12,X4 f& T( @3 k7 ~! R5 T9 S
- CMP #$03 ;武器值判断4 d+ I/ p. a* y& V/ U
- BCC WEAINC
" ~' [0 Y5 j0 H" r4 r3 p - LDA #$FF3 T* v F/ [4 E) P
- STA $12,X ;武器重置
~; l* q# `5 m! t - WEAINC:
U7 p, h2 _9 d: x9 j, r: s/ r5 S - INC $12,X ;武器增加+ N/ W. Z1 m+ y
- % c Z; q9 F: o& L
- WEARTS:
t( d/ E I6 D/ r4 e. \/ |1 J( J - RTS
7 B& B/ r+ b- Q6 C& `; @ - d: C0 H) D* v" ~+ j8 l( ^
- Power: ;威力; z+ X5 v% b) p: D" A1 W1 {! Y
- LDA pause ;暂停状态判断
) d2 }( b' E6 a0 P8 U - BEQ SPERTS
! p! Q1 C7 ^; U3 r& E! c' Z - BUT_LEFT:
& G3 F Z4 Z. e, _/ f4 N: C - LDA $04,X. d8 m' L+ K* M* W) i" S V
- CMP #$02 ;左按键判断2 S6 _( i4 G) z1 {* l+ q
- BNE BUT_RIGHT
B$ i: g9 S" K6 G1 z6 v C% ^ - LDA $88,X
9 o6 I1 S v! W4 I, ^# `* {# U - CMP #$00 ;威力判断
6 {/ W8 g: t4 q4 D1 I' B x/ A/ ^+ k - BEQ SPERTS0 D# d' I P/ F q; M
- SPEDEC
$ [9 L: u8 h6 F1 _& A7 j! P - LDA $88,X ;读取武器值$ h) X9 K2 J4 l/ ^; Y1 A% h
- SEC. |' X2 ^5 \9 W& F" f
- SBC #$08+ t" ? E6 {; `) o) r1 U) `
- STA $88,X ;威力减小
+ ?$ y7 t, N8 _: Q) L+ C% [ - BUT_RIGHT:6 x9 L- N6 c( B9 |( ^
- LDA $04,X, {0 D# Q/ F' X! B0 ~. v
- CMP #$01 ;右按键判断
4 F/ c5 h& d$ g9 m9 r% ?. q - BNE SPERTS% d1 W; Y& L2 [( h* u, V
- LDA $88,X
6 ~, V, R _! Q; b, O - CMP #$10 ;威力判断
{0 g) { J6 h* `5 C" v& s$ } - BEQ SPERTS& H& k7 F* R! j2 C$ P
- SPEINC:
# b( z& s% W8 u+ C3 S6 H& | e - LDA $88,X ;读取武器值4 C* w& B+ N- }) S4 A X+ G
- CLC) b8 J7 [, U6 g) Y
- ADC #$08: f5 Q) Q* p4 O: x3 g' A
- STA $88,X ;威力增大! J6 _! [5 a4 Q+ ?
-
; E) [5 ~" ]# z; ~' X - SPERTS:$ w$ K" K2 _7 N: Z3 @; ]& X
- RTS! v2 K7 ~/ c6 A' |1 l
- : L' B( f8 A2 v
- BULLET_NUM: ;子弹数目
$ d0 l0 e( n5 T$ C6 I6 E1 a - LDA pause ;暂停状态判断) e. O1 q7 F2 n+ Z) P1 J$ K0 A; w
- BEQ BULRTS
* k& C* H w! P+ K0 Z- Z+ B5 I - CPX #$00 ;主机玩家判断
8 V% u8 z- _7 F; e, d8 s - BNE BULRTS/ y( r" V2 N+ Y+ V u7 \
- LDA $04,X ;主机玩家判断0 ^$ Q( `9 X! k; @( n! r; N
- AND #$80 ;按键A比较
8 }1 |% l! Q" @$ e9 A. C* s' O - BEQ BULRTS7 `5 _0 M5 N! @ F1 ^
- LDA $87 ;状态判断( p7 J* A$ b7 N2 R8 N
- BEQ BUL_2
m$ b) e3 h8 i2 ?1 ~& ?/ C - BUL_1:
$ m* V( t2 [8 U+ i( i( M - LDA #$00: U+ P6 p- G# [/ c3 r/ B% c
- STA $87 ;1发子弹
* F, [0 R% c0 W" D; h - BEQ BULRTS A4 f* w `9 M( c' u) c( C4 h' g
- BUL_2:& J' z% P" r0 A$ t" x
- LDA #$01* _ z, E( R5 w/ ^% ]1 n" L: T( A. q
- STA $87 ;2发子弹
: N% Y, B7 z" {" q - 6 D3 r0 ]! O* J' y
- BULRTS:- x! ^0 P) t5 k* F5 b2 G9 V* z( s
- RTS( Z4 Z- M! L( g9 t% f8 w
-
7 H# `# G; M) J. ^0 O, S5 Q! r
% Y$ `1 Y9 r/ J9 @" j0 A2 ?- BULLET:# C" ]( i4 F5 I- L5 K( s
- LDA pause ;判断暂停状态
$ G1 _- P! ^5 c5 @- H: k - BEQ BULLETRTS
: `, |% O4 i( v/ R, m+ l - LDA $04,X$ y. h& p, r4 x# p t3 t% k8 q6 T
- CMP #$40 ;按键B比较4 T8 c4 M5 R* f6 W) X( B
- BNE BULLETRTS
7 r6 o Q c8 y: |' R/ Q: L - LDA $6002,X ;读取副武器: o& i, g [* r- V' w o2 u8 c
- CMP #$03
2 k- X* Q4 F' S+ g" d; f. S - BCC BULLETADD. M0 K7 D) T$ c; }( A Q. z
- LDA #$FF9 X5 k% b& y5 s3 A! r. S
- STA $6002,X& r2 e: ^/ G6 |0 y" w' A5 f. e
- BULLETADD:+ ~9 u, z1 a8 j4 U0 {' q
- INC $6002,X
+ _* M% S& g( g3 Y -
( b! p- G1 T m7 @+ k: B* u - BULLETRTS:
* Y) B/ O5 W" P% t& K - LDA $6002,X0 @' C. m. _* i
- TAY
) Y7 C4 M: P: N$ Y/ C - LDA BULLET_DATA,Y' c: \! O; b9 ~6 W! s0 r8 y
- STA $6004,X ;写入副武器数据
4 G; u; u& n5 C8 L* c S+ C - RTS
- n; D; B% N: L1 D' y! I -
- d' S' `2 b/ x0 x' ?( } - N9 G1 P% E' f' L
- BULLET_DATA:: T% U+ Q, Q; |) d
- .BYTE $06,$02,$03,$04' O; [9 K7 [* w: u. c
-
2 R+ R$ Z" e% B+ _) \# d2 j - 8 [9 ~" O. p- f# K) {6 r
-
) @5 z1 O% g9 H4 O: I - KEY_OPERATE: ;按键开关操作
: C1 `5 i; g- @/ f% B4 q- ^ - data_protect: ;数据保护' H; p) {0 S c
- PHA3 x4 \" g; v' T+ w0 C* ~
- TXA
- w" E3 f1 H1 I6 s - PHA6 O3 M, _7 y, u0 [0 X
- TYA. z/ m: r1 i# r9 J6 y
- PHA
' b( ^4 l$ Z* S) [8 r - 4 Y+ O# T% c' s/ r7 J' f) T
- FLAG_INI: ;开关标志初始化
O# Q. z# h6 ?# Q$ W
9 d/ J7 i6 ^; y- LDA $600F) G+ q9 t- E$ E# n/ l: }& s/ W3 `
- CMP #$01
4 {4 y5 I: d+ h% x C - BEQ pause_cmp9 W' K, j) U) M5 w6 D8 g5 z# H( S
- LDA #$00
" E0 x3 z Y7 i4 t - STA $60008 S2 n4 p) w& }7 X' z4 p9 t
- STA $60013 o( m# o9 ]+ V& ?$ c2 `- M
- STA $6002
! k1 D% @1 k6 ~: ~7 Q - STA $60031 C9 Z/ v9 q% U9 \. l% p
- STA $6004
1 C- P4 J% ^7 I - STA $6005
( ?9 K- n. m h, w - LDA #$01
8 j2 v* g6 z/ C! }/ x1 B" M6 s - STA $600F
/ O! ~/ l7 d+ F -
" U4 y) z7 q2 |, ~. \) l2 O) |2 n, } - pause_cmp: ;判断暂停状态 R. C$ A2 y* G( d" [- e* U
- LDA pause+ L2 a4 t) u$ d3 V
- CMP #$01 ;判断暂停状态+ x" g! Y3 Q9 Y6 g% U
- BEQ button_press
5 l5 L. V* I, u - PLA: k! y m+ ~- i, J8 L. M
- TAY& [( x8 h5 ^+ ? E. N: c
- PLA
- O9 R1 o7 ?. @3 \2 m5 d3 Y - TAX9 D- v1 i7 ]( V, V' A- P% n$ F
- PLA3 a' r2 Z. F' d) ~( u( _8 g
- RTS
a, s- _* V2 s$ d6 N
/ x8 l# z* a8 x( O, a' W- button_press: ;按压操作& K+ z1 A) @- @4 z$ [2 k
- ini_Y:& W0 J3 Y c0 Z0 w& w
- LDY #$009 ~& O D) J3 i# J9 w+ d
- button_cmp:
# y! P' F% b# [- ] - LDA button,X6 S/ y4 Q" B& [8 r8 p3 A# J8 C
- CMP ora_data,Y8 p! {: b$ H% _, k+ W
- BNE count_Y_cmp, O- W/ q# G. ?3 P' Y0 p
- flag_cmp:8 |$ o7 b( j0 @* w! L
- LDA flag,X& [# L. R$ Q; `( O; ?; D, T4 Y8 {0 f
- AND ora_data,Y
! a' l0 [6 ]3 {$ S' I, \5 {- p" }8 S' E - BNE flag_and) U3 q; T* W8 g3 \4 u0 m/ Y( x
- flag_ora:; f5 t- N9 C2 T8 `
- LDA flag,X
/ c" r- V+ D( P X1 w; a& l0 h - ORA ora_data,Y
0 a8 p2 U# c; r K) Y7 i; N - STA flag,X
8 T5 a2 }! ?6 I. }- |& t; d9 l - BNE count_Y_cmp
( s2 Z7 P4 b- M! d7 V. s( y2 J+ S - flag_and:
7 u1 I1 ?% S, K$ D, S0 `% U5 C - LDA flag,X2 x% S2 c3 y$ k& j* u
- AND and_data,Y
/ @! P: r: ]1 A- Z9 |# M - STA flag,X! |( X) f& y$ a- \% ]! Z+ W4 N( W
- count_Y_cmp:+ |1 M; N/ A, J9 _
- INY
) B) q2 j9 \* f3 [+ f# H - CPY #$08
9 T+ j4 u7 F. K - BCC button_cmp9 j9 S: ?/ x6 ^2 A
- 6 A/ F. ]2 _, p1 k
- data_extract: ;数据恢复( Q- K) S4 G# Q
- PLA
, i& T7 B2 x0 J* c$ | - TAY
( |' D3 u4 m- k - PLA
' e$ o) d' P9 h+ y* _# b - TAX$ [8 w& h1 _* k+ H7 c* |
- PLA [3 w: N+ G4 p& u3 V7 Q
- 1 q* I* v: x) e" K4 L M6 p" X3 m
- return:
( j3 z5 `+ a! f- W - RTS# C/ t* n/ x) P# y
- ! S1 T( i3 l+ E' _+ U G
- ora_data: ;按键相或数据
- ?& p1 q, o& n3 \ - .BYTE $08,$04,$02,$01,$80,$40,$20,$10
' [' F; F& z" N4 ? - and_data: ;按键相与数据7 H4 L6 O$ S& e5 v: X2 n, K
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF% }. S. d" ~4 S! l" W8 l* h+ | |
- $ D' U) d/ o4 n* U4 ]) D
-
1 c z4 \8 w# \* Z# ^9 w: t' y -
0 _4 c- Z5 d5 O; x5 a& v- ] -
; N/ `" K& t' q - , o2 S; j5 U* Y6 S* S4 k# h
- . E" Y& n8 S: r, W
; t2 A6 {" D- B9 z4 u( |$ d
) d- S( H3 _6 t7 N6 I; p& e0 j- 7 K- B8 g" W6 ^4 h* g! J9 ]
- .ORG $C264 ;自定义的MAPPER2切页程序
( G5 k9 W8 Y2 [+ H. r4 M0 ` - PHA
! ]8 c8 V Y2 e( b" `) ~, p2 O) T - TXA' m+ }( j: Z4 y# n9 K% c
- PHA) e- R/ ? C) Y2 g5 {: E) T
- LDA $00666 f. k. v; l0 p. }" Z( S. `
- BNE ADDRC280% J4 l- Q! _! e+ U" v. R0 U
- LDA #$074 ~' p* Y* {& k1 L- r
- LDX #$03* v5 s& q# A4 w3 A
- JSR $CD9B ;自带的切bank方法- k+ E7 e" i0 ^, K2 B8 i W
- PLA
2 M6 |' Y# B) j1 F, y: D# a( x4 Z; w - TAX
$ m# M3 q- t& ~ q - PLA
. j9 x5 x/ h! c5 ?% K v - JSR $8000
& G& B4 w: ~% U# Z9 J* P - LDA #$06
9 `" r# ?2 g1 d+ f1 ~8 _% e# z% D9 [6 j - LDX #$03
6 A: U& r k" ~ Y( R( f6 F. v - JSR $CD9B ;切回原该切得bank(可以不用)7 d+ X) n. l4 \) f
- RTS/ ?- m( L& @7 u6 M |+ k' u
- ADDRC280:6 a, [9 @; l/ j D% n
- PLA- {/ o1 F6 U% i J' n/ c( ]
- TAX
0 d }% Q; H% b1 k - PLA
% ]' b# C. ]/ G5 ^; J - RTS
" ?7 G: M/ _- |7 D -
% r9 P7 }0 e* {- X# N% `8 ~* F% M$ g -
0 h1 p* ]$ }1 D7 X - ;[FC][最终任务PPU][END]
4 L$ d; ?) B9 m( p) C - .ORG $C056 ;跳转到PPU重写程序
2 W, R" z3 w1 C2 u. Y3 q5 Y; [ - JSR $7000
9 u9 g/ L! b2 s+ b8 {+ R
& X8 y4 h7 [. |1 x3 s- .ORG $CEBF- `* z( E# o; w8 E) ` ^* O
- JSR STAGE_DATA_WRITE ;跳转到关卡数据写入# |' b! ^# }, ?% K1 f
-
& ?! F# T0 V) p - .ORG $E460
2 t+ O0 H) y5 T: N, G - JSR BULLET_DATA_WRITE ;跳转到副武器数据写入
8 s+ Z: t3 p, t0 m3 l3 x - ' e% t# C" M/ ~- U- k
- .ORG $71F0
; k2 x4 b! ?& e- I/ L7 @- ^7 M - STAGE_DATA_WRITE:
3 E7 x h4 e2 ^2 ]* Q - LDA $6010% d# b) T; d# E# ~9 B: d
- STA $1E ;关卡写入) M$ P1 g& u% ^& M! [' Z3 H" d
- LDA #$00$ M9 Y1 Y# v/ J# f
- RTS
" ^, T" _' s% X3 A - .ORG $71C05 i- {& O, q% K
- BULLET_DATA_WRITE: ;副武器数据写入! F. W _. r, l) {
- CPX #$0E0 _! [2 Y- J# @% f+ P7 M* F6 ?( \
- BCS P2_BUL1 m: j2 C6 G. d7 ~
- P1_BUL:
4 O: h) e$ O5 E2 b2 E2 ] - LDA $6004
# g- U# n# ~' B' E - JSR $D7D0 ;P1副武器数据写入
4 j- J9 z, L# q- e( ^ - RTS* w" v" E { q& L/ g
- P2_BUL:/ X. }8 N9 E+ ~& u5 w
- LDA $6005
. g2 o/ c- [4 u$ T - JSR $D7D0 ;P2副武器数据写入
% R8 {; K& S; r8 b4 T - RTS! N" L& f! Q+ d0 W0 ~+ u7 Q- f
3 ~0 ?1 X# W4 }# [% M- 5 T4 i. h3 V" `1 I6 L
- .ORG $7000
4 \4 P& `0 [1 z% K" p0 u. w -
& K. Y; M8 V- Q* W- b1 b7 d - STY $4014 ;补上覆盖的精灵写入指令' p9 N" x+ b; D1 [, f7 D% \
- PHA
1 p& ?7 B# \: T: m( u$ r - TXA& X( g7 Y: ?% d; \
- PHA4 r" R7 {- `. t. O6 s
- TYA; w- o5 h q! x! Z* I1 P
- PHA* m0 N3 Q$ n7 P) P* g2 b
- LDA $0C" }, |% }2 ^( B5 d5 l3 d
- CMP #$01 ;比较是否为标题画面
( F5 s' v$ F2 R d9 A% ^ - BEQ PPU_STAGE) p- z2 N9 i8 z+ k* \& |/ @5 c
- PLA
. {# P& ]4 T6 D ~: A$ k) D# q9 m+ v4 r - TAY
4 U7 s" C# X, ]2 e - PLA1 a4 X8 a1 m- f/ K0 m: W' w7 y
- TAX
8 p9 ^6 L- }) w S7 G - PLA8 g5 C, C. j9 T/ ?1 H" N
- RTS
* e: v! @2 U7 r( O. d2 f - PPU_STAGE: ;STAGE显示程序5 |: J k3 N# @1 A; p
- LDA PPU_ADDR_DATA
. |0 F# T, v. t& \ - STA $2006
. V) y& R# k. l" [/ g - LDA PPU_ADDR_DATA+1% I. v. G) Q. ?8 T+ n
- STA $2006 ;坐标设置
4 p0 z* z2 I& [, q$ v - LDX #$00+ Q0 N0 D3 |, w9 v
- PPU_STAGE_WROTE: ;写入STAGE字模. z% s- Y1 _0 M# I! _2 s
- LDA STAGE_DATA,X8 q, `! M& N, U; E) p5 K" \' ^* t
- STA $2007
! D% j7 I1 S& X! [+ b2 p - INX' c( c, Y1 S0 j7 ?/ e
- CPX #$06/ z* y. x% e% [/ R0 e6 S& K
- BCC PPU_STAGE_WROTE. K9 \4 F5 w1 A/ R5 Y/ Y
- LDA $6010
7 g! i7 v8 f0 @2 X* m7 y0 O - CMP #$FF ;关卡数据初始化条件判断3 G* [/ t. B: H! Y* g" o" ^
- BNE KEY_B# G, Z5 m6 O" ~0 B5 g1 f7 R
- LDA #$00
' {$ |0 q! _+ h: J: _ ^1 R - STA $6010 ;关卡数据初始化5 @# [- f" h* u' f$ @
- KEY_B: ;关卡减少
( P; ]+ J% m8 E - LDA $041 Y- G* v9 w* W4 u+ Y1 U$ W( e
- AND #$42 ;按键B或左减关
8 F5 @: ` n( |% ?- u - BEQ KEY_A
& N5 X( b2 V/ F! w - LDA $6010% E/ R/ A# J" t j! _1 f% ~
- CMP #$00 ;关卡比较7 c6 b5 X1 ~3 B: H3 g# s/ S
- BEQ KEY_A" U" D" w" @/ f8 k" M- R- R* |; @
- DEC $6010 ;减关# V7 B ^' c+ s) [$ ^
- KEY_A: ;关卡增加
0 `5 e( K% }1 W4 T& o - LDA $04& [ w" I: f) H$ g( j" X
- AND #$81 ;按键A或右加关
( O9 K5 P& }+ {/ a3 X3 T - BEQ PPU_NUM_WRITE
) E- }6 L% [2 f - LDA $6010
% x! f# \- o% Z9 O) s# v4 j4 s2 g - CMP #$04 ;关卡比较
* Y& ^7 [/ b1 M$ |8 w4 a+ [- b - BEQ PPU_NUM_WRITE& ^/ F0 ?+ J" Z# D& x* y
- INC $6010 ;加关- @' L7 }; U7 V! u4 w1 {
- PPU_NUM_WRITE:
& H* `. s g( q6 n - LDA $6010
. Y5 H0 e0 T1 ?, t& I - TAX& p& ?0 A+ a0 h% m6 r/ l, E
- LDA STAGE_NUM,X ;写入数字* J; O o. Y% @7 y! ]
- STA $20072 H6 A+ ~! v% I
- PPU_RTS: G. r# \" A3 q6 y8 J
- PLA5 O( ]4 g% ]; W/ ^
- TAY" {3 `: a2 E' T% A q
- PLA
: n! |6 W9 V* s* l @9 u) B" ^# S1 V - TAX- j2 \) j @" ]! W. g9 W" M
- PLA9 I' {4 M1 G: u3 {' u$ s( |
- RTS
/ k: w% K, g0 q( @9 Q - ( d$ |% i x+ e; b6 b+ N
-
* M6 A7 f( m1 h - STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据/ s1 ?& t% m7 B1 h
- .BYTE $EC,$ED,$DA,$E0,$DE,00
( T1 e. K! [8 `9 x& J1 c$ Z( y - STAGE_NUM: ;关卡数字1,2,3,4,5字模数据
# v8 N2 y. i% r* ?5 V# f - .BYTE $D1,$D2,$D3,$D4,$D57 ~: ?. ~4 Q1 S/ j- v; N' s4 ~& _
- # K+ ]! N8 r3 Y" d
- PPU_ADDR_DATA:
; w" t; L0 D! s% }# |& z6 } - .BYTE $23,$0C7 s+ b1 F2 K! r$ n4 W4 c
- ( _- J" r. k' k( i6 H$ y4 I
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|