|
|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑
2 |2 S/ B7 f: b/ e( R
+ Q7 L) K0 v; P K; P& N# r [FC][最终任务][END选关]4 O( S- g! s9 c+ j* U" U3 j4 q
7 I W4 U; r$ K2 w, m# I
时间:2017.3.29+ Y. M* {4 n/ Q" U V
作者:FlameCyclone
5 V; _/ Q" G( v1 a$ q内容:6 o0 i9 ~+ h) }. N
1.关卡选择: 标题时,左或B减,右或A加(1-5关);
9 g% e: Y. x$ h. B3 t 2.无敌锁定: 暂停后,按上键切换;
9 z m) ?, t }& P) j, e5 i4 W6 A 3.生命加满: 暂停后,按下键切换;
* j& e0 A# o, y+ X7 ~ 4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);
; I2 d8 z% [1 _" j O% Y* P' a( x 5.子弹切换: 非暂停,选择键切换(普通,W,L,B);( X3 Y$ H, R, d4 F. u, u
6.B弹数量: 暂停后,按A键切换(1个或2个);8 C- H% K3 o- {& a! x
7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;
4 K& \4 Y: c, [' k( |; |9 ]" B/ r& @- a; P

K- U* @9 s1 k. n0 n
; k: M/ Y. h- Q7 _1 ~5 w 2 j! h4 o3 u( e

& U) _$ U- ~3 m% G* f1 m4 n" |- q8 S2 c9 t) y* T! L+ K5 ~
" z+ t, \: g2 F
FlameCyclone.ys168.com
7 g7 ~' ?6 a m. \2 Qwww.nesbbs.com- ;[FC][最终任务KEY][END]
, M6 h. T& t2 e% O; ` - button = $04 ;单次按键
" J* c7 o8 _" N/ r) K4 J) T! I6 f, t - flag = $6000 ;功能开关标志! a( m' q' d* a6 E$ f( r8 d
- pause = $000E ;暂停地址8 x8 P: W8 ?+ P7 s6 z0 x; Q
5 V% M/ f7 v! t1 F- n/ D- .ORG $8000
2 C8 o* M7 a4 n - LDY #$08 ;自带的按键程序
+ W6 o2 b" u$ ^) P7 E - ADDR8002:
# |( Q6 w7 G! t- ]: c - LDA $4016,X
3 X+ U: u: q8 {! N - LSR
; |, S- k: w+ T {2 _5 N - ROL $00217 E, i/ ]- \7 d$ q# w% x
- LSR
0 g8 F$ Y& c. L- s( D# d6 x. ~ - ROL $0029
4 y1 Z7 S5 r. |9 ?: X - DEY
) N* s3 F) \+ G& }4 t/ a0 S( N - BNE $8002+ Z" ^4 h# [# f
- LDA $0021
0 `. Z9 ~4 X" w: |: ] - ORA $0029
4 z: i! V9 \6 e0 S, s/ | - STA $0021
2 ?# T8 M+ }* q+ E% @0 Y - LDA $0020
T+ X8 L) I6 p% U) g# @' V - AND $0021 |( c0 a. n3 n1 U; _; N8 i
- STA $00204 j4 t; E; Z* ^1 x1 Q( c: L
- LDA $06,X* |2 p8 p) p7 Y# \' A
- EOR $00206 P* }$ V n( \; _; P/ H7 c2 T
- AND $0020
, p3 Q1 q* q- J$ D - STA $04,X
5 {! f# j' q v- ^+ [. V+ s - LDA $0020
; N6 J/ R% ?" n' J# e - STA $06,X8 E2 ]( l( ]% N
- JSR KEY_OPERATE
% \" W4 ^& _( t& b1 a* r y" `) B - JSR Function ;功能调用
2 ]6 _: n: v) r4 H- ?4 H' K: G$ p4 r - JSR Weapon ;武器切换调用
) E/ D) w9 B/ ] x# x7 |$ @ - JSR Power ;威力调用
+ @& |" A/ A4 O* k6 S+ O - JSR BULLET_NUM ;子弹数目% C3 [" }; y7 t$ c* \" S( v
- JSR BULLET ;副武器类型4 x J7 w- Q4 v/ W) M
- RTS% ]3 K( w! A2 f3 h
- ; x2 ^# D( Q C3 ]
-
4 o' s* E M! Z) J- ^9 ^. ^+ k
+ A0 q- d- L# p- r) j- .ORG $8050
4 z$ O4 y/ v- ?) ?* W- \5 C6 E7 `7 G - Function: ;功能
& a$ G. E2 G' x B7 s$ q - WUDI: ;无敌
1 G# }9 \+ r) ]* C$ @% R6 f - LDA $6000,X
& v6 J- J" r4 t- i: q5 [$ Q* l" F6 G6 | - AND #$08 ;开关判断5 ^% A/ l+ C/ k! Y3 m* z Y/ ]/ o
- BEQ LIFE% i b. u$ d, p' b5 b4 d; m; C
- LDA #$052 P9 F, s; y$ M- \
- STA $05DC,X ;无敌锁定
! x+ f% y# f- g! ]8 P% F+ j6 s% F - LIFE: ;生命3 X& @! Y( l- O/ \- u* N# F
- LDA $6000,X
D9 f! X7 Y" z' F& _ - AND #$04 ;开关判断2 i# @, G; N+ @' k+ {
- BEQ FUNRTS8 C! a( U! y' ?+ i1 S; g
- LDA #$05
2 K$ C0 [, }( {, I( N5 _; m - STA $1C,X ;生命赋值
) @/ k( l# ~& f- z2 t f0 u9 Y - FUNRTS:4 X8 [# C1 z! v
- RTS
% m {7 B- D* ?9 I5 f( c - " f; k! G/ P# Y
- Weapon: ;武器切换
% O) c: I) A( N3 ? - LDA pause ;暂停状态判断
9 C: o0 @" J1 H! L0 k! ^ - BNE WEARTS
! _+ g, ]" |/ U. g4 U9 S - LDA $04,X1 Q- y) H* Z1 W3 E, E3 G9 p
- CMP #$20 ;选择键判断
7 E( p% |% Q" V' N2 V) F - BNE WEARTS
3 [$ D R6 }- h7 ? - LDA $12,X
( k4 E+ H) B5 L: h* F/ `3 |$ y6 { - CMP #$03 ;武器值判断" r' K& F. I* [; u# c) O8 I
- BCC WEAINC* l, g6 O" n- w( |* |3 ]3 M. o
- LDA #$FF3 F+ u; g, B7 z; Y, O
- STA $12,X ;武器重置
u. I! M6 U& D, S - WEAINC:% N$ k8 C' \+ B# e( U3 g r
- INC $12,X ;武器增加) ]( b+ }+ s5 ~* ]
- 6 L/ u+ A8 s8 E7 S! f* f6 L
- WEARTS:
; p$ c& V5 }7 ^1 Y$ a V1 N - RTS
! ^5 H" m- R* a* w - # ^4 Z. P; @1 y0 d
- Power: ;威力2 F4 t8 Y' l; a) I# R2 z
- LDA pause ;暂停状态判断
3 e1 O' ~6 w" ] - BEQ SPERTS
9 x2 _+ a2 }* e4 [ - BUT_LEFT:, o6 L4 w5 a5 b: \6 k% Q( ^
- LDA $04,X
3 e5 {8 P7 P# |& C/ [2 s8 ^ - CMP #$02 ;左按键判断
5 ?+ E* _1 f0 a3 G, y - BNE BUT_RIGHT
/ w( G S) b4 X* @! T8 @- _ - LDA $88,X; m* C" O3 M+ B: b. R% P0 J3 @
- CMP #$00 ;威力判断
. l1 o2 d- n( E6 x, y - BEQ SPERTS+ k$ W/ ~- w( J& G( A
- SPEDEC
1 H; o0 z6 w7 M4 h - LDA $88,X ;读取武器值
* {2 U7 ~7 {" q, l# W2 } - SEC
8 k' q; m: t# x. I0 i7 E9 o$ [ - SBC #$08
1 T. u9 X! p* P1 p5 M, Y - STA $88,X ;威力减小
$ r9 [6 y2 ]7 R, ~ - BUT_RIGHT:! V$ F) b4 C! s u
- LDA $04,X( U& R/ R- a& S0 X3 h$ C
- CMP #$01 ;右按键判断! G/ P: a0 l1 ]$ I: y
- BNE SPERTS
$ F# @0 }) U* U0 ?4 ^6 h* o* _ - LDA $88,X
" ~) t! f3 l* ?7 b - CMP #$10 ;威力判断
" }6 r* W; P1 W! B4 i - BEQ SPERTS
: @5 I$ g6 b# E) ]3 c& t: c - SPEINC:
* g7 d+ F, H4 D H- j0 e - LDA $88,X ;读取武器值6 ^: r. i2 |; H; a r1 C
- CLC
% `* F$ R. N Y4 p% i; m - ADC #$08 ?% @ ]+ Q- |; G
- STA $88,X ;威力增大$ @; {$ x) A6 m8 c# ?$ u
- $ T4 q6 L+ K3 Y' u7 y
- SPERTS:4 z- x+ {, B: H I& a+ Y
- RTS
/ L8 B% V' \$ P6 z* a
, L( L. ^0 p4 t8 s" O( f* s8 D- BULLET_NUM: ;子弹数目7 H( O0 ]/ @0 `3 f9 ~
- LDA pause ;暂停状态判断: A1 b( w% ^2 u$ |4 J0 v
- BEQ BULRTS) ]" f! l9 O" L
- CPX #$00 ;主机玩家判断/ Z* F. v9 a2 a& i6 O) E
- BNE BULRTS
; N# W0 J8 F$ _! l; k - LDA $04,X ;主机玩家判断
% s: U, g8 \2 v K - AND #$80 ;按键A比较" v7 ?$ k$ q* W3 }, q" j
- BEQ BULRTS
1 J' u; j) `7 u4 t! F- Z - LDA $87 ;状态判断7 r9 ]5 i9 I' x$ p1 ^3 N* M* _
- BEQ BUL_2
3 ]2 V& H! n# t4 E7 T. ^ - BUL_1:# ]' [! l3 K9 k7 o) u. n n7 J2 y
- LDA #$00
9 s2 |( U4 R0 d s; Y9 _ - STA $87 ;1发子弹
% B# [2 L1 ]( O - BEQ BULRTS
; S3 J2 m- a4 j" `$ G - BUL_2:' _/ M( v* `0 z* `6 ?& W
- LDA #$017 B9 K g' L9 K! S, `" L. [/ G2 J* e) ^
- STA $87 ;2发子弹1 _1 E8 b" r9 x( Q: U
-
- `! M$ }0 ~0 s8 k+ `5 x7 X - BULRTS:- j2 ?8 w, [6 c3 q# D
- RTS
# {; S1 t% b3 B0 h& D$ F" O V - % s% V$ T* h4 Q+ O' B, N& {
% _1 G' S& l! C0 ]- BULLET:8 m5 s" q$ Y: S' H# u% b- I, V, x
- LDA pause ;判断暂停状态
! `/ F/ E& b% @* Q - BEQ BULLETRTS B0 p' k5 p6 P3 ^% ?0 |$ s7 ?
- LDA $04,X
$ X+ {6 [: W! u* t0 F/ x4 R: p - CMP #$40 ;按键B比较
/ c+ f" C1 h. i2 U9 u' N5 Z - BNE BULLETRTS" }! R; F" |9 B) n, s1 ?
- LDA $6002,X ;读取副武器) ?& Q0 D" r- L) c- K S
- CMP #$03
/ _# F5 Z# i5 b3 `( g6 u9 G1 [) a - BCC BULLETADD5 W; t5 Z( ~( o6 u
- LDA #$FF% ]! p" R1 E" f& H" a7 C* P
- STA $6002,X- S/ w+ r# m% r3 X0 Y# r1 ~) K- s
- BULLETADD:" S: l8 w6 k6 p
- INC $6002,X
5 G. o ~8 g' H - - @- G4 n4 j1 @0 Q
- BULLETRTS:
) C3 S4 n) ~% \: r, {$ N# B; a/ F - LDA $6002,X
. z0 i" T$ ]) g: K - TAY
8 }5 |$ r& x1 d" O: h! k. R - LDA BULLET_DATA,Y
: d5 @' f3 j% ~$ O, Z - STA $6004,X ;写入副武器数据
# Z! e: U8 V3 {! n) u - RTS7 `6 W/ i$ V8 a2 E. G- k; _' Y2 W
-
- ~. v8 E4 K4 P5 H* }$ ?0 j -
6 S* I" M4 ~7 p2 z* s5 |: ` - BULLET_DATA:5 ?; c4 Y; v: S& O
- .BYTE $06,$02,$03,$048 j3 u1 H6 y( X9 _
-
& K6 |8 A- _( y) D -
" U G3 g3 g' `% K5 g! K - % x5 U6 I& w. A# W" a" N$ H" m/ f; p
- KEY_OPERATE: ;按键开关操作3 I4 P W( C2 Y0 S! k
- data_protect: ;数据保护
1 a: s. `+ r& }0 K3 K - PHA
5 l- l8 K/ z7 Y - TXA
^- j& _/ e) E - PHA& K4 S0 h5 H; x7 o8 I7 `
- TYA/ P% ]/ ~' d8 W, N) @
- PHA" D9 l5 J. l5 Q/ R" Z$ D( x/ y
8 j, a& Y# G* R+ p+ H: N! b- FLAG_INI: ;开关标志初始化
. G7 T7 |# h6 O! p2 A& o - - L$ L$ b) E/ C
- LDA $600F% r, n* S# K4 W6 S8 E
- CMP #$017 n" Y, t. p" o" U
- BEQ pause_cmp7 p5 y5 K0 w* P3 D- \+ P3 F# T. `! B: n
- LDA #$00
, N! @' X6 [2 d# D* ~( T/ V - STA $6000
& [0 o5 F1 I2 Q; ], d |- S" n - STA $6001- w" l; Z6 V" t
- STA $60022 }- J5 ~7 a, M
- STA $6003( h, \4 R# u2 r* i
- STA $6004) v% X5 C8 h" P- T- I* f
- STA $6005
F! x, P% D1 h& C3 G! l - LDA #$01
4 R5 l3 @, Y" O! n" |' l - STA $600F5 p z. \: ~* ~& E" }
-
" X: a& f% p# ]: N% q - pause_cmp: ;判断暂停状态
/ K8 z# g u% Z2 S% { - LDA pause
% o0 P5 A. \. U) h3 V Z' ?# S - CMP #$01 ;判断暂停状态
0 t% B: \4 v# M) O. X9 F - BEQ button_press
' P+ l( x# v. V5 z3 ^ p% l1 P - PLA
$ T; V* g: a% U - TAY
6 k8 I$ o2 k: P% T% H! i4 h1 S4 r - PLA
# l& f# l! C+ J, P, H- D, w! ^ N - TAX, y0 D% p4 K0 ~7 @4 B# i
- PLA9 k! A) h( ?6 k% `6 l, n
- RTS
, h7 j8 I$ q4 L `5 y: [
8 F: ]! U1 A o" a c& L- D' Z- button_press: ;按压操作 m8 f2 T# C' S) ]1 f
- ini_Y:3 X1 B. H6 I8 p3 Q" N" M
- LDY #$00
9 j4 B6 c" ~3 j5 f; h - button_cmp:
' o/ T" X& D3 _4 K2 e - LDA button,X+ e0 P2 N+ G. A: r
- CMP ora_data,Y
1 S+ @, M3 M% I% z$ o% u - BNE count_Y_cmp* y! q3 D2 \" L* @: b
- flag_cmp:
' O0 P& q' q/ y `" M - LDA flag,X8 V% h4 b% g* k6 g3 h _, G
- AND ora_data,Y
* k/ B6 h0 S- P w - BNE flag_and# ~1 z0 Z4 U: o, W
- flag_ora:
3 u. u' c/ f7 Z0 T: y# _ - LDA flag,X
4 _8 ?, T* J5 z - ORA ora_data,Y
& s C& |" c1 V. X: |; U" k/ Z - STA flag,X
- Y$ X) X! v% f& I - BNE count_Y_cmp6 G, P! u( j; Z: H+ a3 I8 T7 c
- flag_and:
& l' @/ b0 C0 F$ K- ? - LDA flag,X2 Q5 Z! I3 D8 ?- E N
- AND and_data,Y' M, [& _8 C/ }6 R
- STA flag,X
2 K; o' D5 r. b& m7 l - count_Y_cmp:5 [% \/ w/ F/ a+ `
- INY; b8 ]9 Z9 V6 E ~
- CPY #$08
0 X9 [0 b/ s& e" f* o/ e - BCC button_cmp
" z- o' E# {3 m9 o3 a -
3 U+ C2 ]0 t9 a% Q& b - data_extract: ;数据恢复# e1 \( s) I3 z% J5 V. {+ e& {7 @& b
- PLA
, `3 A) m7 W) W) R2 B# D4 m3 R0 N n6 p' c - TAY
7 ` @: Y( B# N0 [# o, S& g - PLA
5 S. R# t. a+ q - TAX
2 z: ?1 H( b: G+ ? - PLA# J$ x0 J8 P! u* t0 B2 F
- 9 s ^( @ Y* z7 M5 g
- return:
. V9 ?5 T$ Z) Q# R4 ?( Q1 A - RTS
3 }7 b3 T3 b& i, ` - 2 }, \6 H4 x% `: i0 ?- m
- ora_data: ;按键相或数据. A7 S. m1 u: W& ]
- .BYTE $08,$04,$02,$01,$80,$40,$20,$107 S+ s7 h( @+ b* D5 Y( f
- and_data: ;按键相与数据; `4 X1 ^8 {. z3 k3 N
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF. W& M' ` t# x/ c5 W* c
- + a e& o0 e* y; Z$ m) c& O+ K
- " q7 g4 c4 n3 Y5 o
- ! O; Z5 C: \9 f
- * N7 g- ^' {. p9 C! X8 X
- $ G/ ?/ Y/ C; d6 R/ a& U2 [! { J
-
4 @9 }3 ]5 Y, R1 {8 j) v
# l1 Y5 S# D# F
: q4 k; J- @0 E) x8 l- ! }! p8 q, z O4 y! ?1 W0 Q E/ v
- .ORG $C264 ;自定义的MAPPER2切页程序% M0 g* H: r" e' S0 K9 r
- PHA
) D7 G& h: p o! u! G2 y" T4 w - TXA$ x8 Y) O& d; V) V/ }( G
- PHA
, C. r% D2 a! c" o - LDA $0066
: V3 d1 t, ?3 ~8 V' d/ S - BNE ADDRC280
- x/ }' h- N" ?4 B* R% w. [& r& A2 \ - LDA #$07' l$ V9 z1 F9 G1 `" Y8 l
- LDX #$032 t; }2 l$ \% L M4 M
- JSR $CD9B ;自带的切bank方法. M( w% g( c( i, S2 `
- PLA$ }( M6 j, R& k, m. o+ u3 `; E
- TAX9 ]4 W6 u% Y# ?0 N* c% _) T
- PLA+ a# Z6 E. s$ Q5 L
- JSR $8000/ }% c. U7 _* K3 ?
- LDA #$06
* p( v# @! |, {4 I- L% M: g. B - LDX #$03
2 t) H# M# C- y: Y) q) { - JSR $CD9B ;切回原该切得bank(可以不用)* e. y! V9 _3 V
- RTS
f$ X0 ~. B' n1 I6 Q" g+ F - ADDRC280:
) o6 `6 e$ b; F - PLA
% i4 t' E% g: H - TAX
9 U+ C' j$ } N; { - PLA
/ h0 y* j. a S2 m$ C- v - RTS& H; w5 z% ?: _) O1 R1 ~
- . C3 {* }5 Y% y1 b. U- u
- : w. l, ~: A0 ?4 n5 t6 h
- ;[FC][最终任务PPU][END]
7 D/ ~6 _, S7 r* O - .ORG $C056 ;跳转到PPU重写程序
! T: A p2 Z/ T; m; P - JSR $70008 j; [+ G Q9 S+ O- v! F
$ y" j% q1 ]- S- l% ]3 q4 o- .ORG $CEBF8 I: |9 G. @+ o0 w( X8 I7 k3 r
- JSR STAGE_DATA_WRITE ;跳转到关卡数据写入
; e6 D, d7 I9 G - 0 E' w) ~! j# Y: A! U9 A: C d
- .ORG $E460( S t3 j& d& H0 N7 e! f
- JSR BULLET_DATA_WRITE ;跳转到副武器数据写入. j* i8 Q; h6 L8 F* V3 G3 |; H
-
5 @/ @! e1 P: k% c0 ~! h. s - .ORG $71F0
! ], }" {# A2 L3 H( U+ O; x - STAGE_DATA_WRITE:
& j! f3 V/ g Q: }3 c& L C! p - LDA $6010
3 q4 j2 U# b0 t; `& N& o0 Y - STA $1E ;关卡写入
8 t. o% t, x5 I3 s) r - LDA #$00
$ g: p* p3 h& \9 _+ D - RTS
& k5 N3 S, o2 u' o - .ORG $71C0$ @1 N: X8 Z' ?
- BULLET_DATA_WRITE: ;副武器数据写入
9 P' N+ @6 A O) ^2 w; G - CPX #$0E
* c Y* n$ U1 @3 L - BCS P2_BUL
! R2 v+ C8 U1 g( n - P1_BUL:. Z- V% c# K1 K+ ^" B# J$ {
- LDA $6004
" I3 u9 W% q" W$ v - JSR $D7D0 ;P1副武器数据写入+ e: O; M X- E) ]+ Q9 [% x4 |1 X
- RTS
3 b, _' }. X# G: i! C - P2_BUL:$ w& _/ b2 h/ q' b
- LDA $6005
" b, z4 T3 p0 F% |- @ - JSR $D7D0 ;P2副武器数据写入
I7 F9 E5 p( `& x O$ w N - RTS
/ `& U& e1 E) B4 s$ m+ P
; @' p$ n& [6 G) ]
3 N* @, ?2 h# o6 y5 B6 i$ T: y7 K( ~0 g- .ORG $7000
& O/ y" m7 A$ f* o' E -
) @: v0 }8 J# I/ { - STY $4014 ;补上覆盖的精灵写入指令
; s" ]# e" Q0 w) P - PHA
( F4 H- A1 G. B% U; b. V: L9 m9 j - TXA
+ x( l! v% u1 p) J0 s* U. M - PHA1 G' h, z0 i) m( s7 k
- TYA3 {5 S0 c8 K2 x$ _0 i/ a
- PHA
9 W" j* G7 v; b! o7 @ - LDA $0C$ F8 T( q/ i# s! Y
- CMP #$01 ;比较是否为标题画面' g( S$ Z' A& z8 o2 q- s7 K3 C6 o
- BEQ PPU_STAGE
. ^3 [* |; `. p; o$ H. d5 X - PLA' T" Y9 B, N3 H0 P1 J4 V# P
- TAY
/ H4 r% @2 e! k# k# F" O8 F - PLA6 f, d1 E9 f% N
- TAX
, s% e) ^5 K9 ^( X8 b9 u - PLA
1 r9 D/ @9 U; Q% z5 L& Q6 W - RTS" ]0 R6 e$ A; N9 H
- PPU_STAGE: ;STAGE显示程序6 C3 f( r4 v6 p* d
- LDA PPU_ADDR_DATA
* \" c' Z4 \: u5 f3 y - STA $2006
% X1 m4 }1 ~, s5 V/ L+ r) j - LDA PPU_ADDR_DATA+1& r5 _6 K( e; k: B+ |4 m! x, g
- STA $2006 ;坐标设置2 c- t5 ?: K( ~5 u5 ^+ b
- LDX #$00
3 z( M# w" f$ u! r) Z& g - PPU_STAGE_WROTE: ;写入STAGE字模- A6 ]/ A9 m' r7 n) q; K
- LDA STAGE_DATA,X: l. O7 c o. o& N6 J' B
- STA $2007
7 p9 J: n& _) @' @" m. P% e - INX0 P6 W+ o; I% p5 ?: E
- CPX #$06
( w' ] A. B' c' K - BCC PPU_STAGE_WROTE
9 H8 I, Z) A7 O5 f5 u - LDA $60102 w0 S9 Q. {3 D# y( d: ?5 v
- CMP #$FF ;关卡数据初始化条件判断% O, i' D" m. Y1 X0 i
- BNE KEY_B3 z3 x# c e( U
- LDA #$00
+ G' b; p. n5 H2 P - STA $6010 ;关卡数据初始化
5 X( o4 L7 g. e# Z4 ? - KEY_B: ;关卡减少
, g6 |& v- V% u( Z; F3 |8 x: e - LDA $04- G9 X3 p0 A/ ?8 z6 r2 k' I# c0 J
- AND #$42 ;按键B或左减关$ B9 N+ z0 r. l" F, ?3 K
- BEQ KEY_A
% }6 _2 X, Z1 H+ y - LDA $6010
+ F3 O" T+ V/ W" c - CMP #$00 ;关卡比较+ C' o* d* [ Y1 x' L1 a9 w% A1 T
- BEQ KEY_A% t4 d k) V- p# t! o3 ~5 p
- DEC $6010 ;减关, T7 [6 A/ X* C7 w
- KEY_A: ;关卡增加9 t' v( Q) Y8 `& S
- LDA $04# E. a" `7 q: F
- AND #$81 ;按键A或右加关
) }1 m$ i { A6 J8 ], b - BEQ PPU_NUM_WRITE5 H% w2 S% D4 m& Z! i ^) K
- LDA $6010$ q N: d4 i& q! y7 G- s# \
- CMP #$04 ;关卡比较$ L# u$ C* d- P" {+ i
- BEQ PPU_NUM_WRITE, Q9 D& e: }- c! L: m) R
- INC $6010 ;加关
+ ^- c+ u2 q" ~6 N1 O1 ^ - PPU_NUM_WRITE:' W2 G! F& t4 C: O# k
- LDA $6010
, V/ b/ [5 j7 J# o- j! U8 s - TAX
$ D# x# {2 w2 Y0 Y+ f/ p% x' f - LDA STAGE_NUM,X ;写入数字
: f0 i7 x6 l' u) b+ v+ S - STA $2007
2 u; u, ^ K! y. v1 J - PPU_RTS:4 \. T! _" x* _# |- e9 c' ]. F! g
- PLA
5 ]3 u* B/ B% C. [. h - TAY
" K1 A2 U2 _9 _# d - PLA, p5 w" ~% Q' {) y
- TAX
/ F/ N M8 r/ u - PLA
) F" A8 L# k% G j - RTS" S& g# \8 B: [1 [# {
- # t+ ?* w2 q5 c+ H
- - g$ _ b$ G& f2 J1 q1 Z" C
- STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据
, f% s7 S5 }! Y3 t3 K1 h% E$ C - .BYTE $EC,$ED,$DA,$E0,$DE,000 |/ b1 ~; Z2 `, I
- STAGE_NUM: ;关卡数字1,2,3,4,5字模数据, w% j( ^+ ]. ]: P, @
- .BYTE $D1,$D2,$D3,$D4,$D53 N8 ~1 W9 M2 Q# r
-
1 c( Z0 ]! ~. X9 m: l - PPU_ADDR_DATA:. I! E* H6 k: ]. Q6 ` i
- .BYTE $23,$0C# r0 f3 _8 J7 p8 ]. D: m
-
; p2 l! A7 [) V
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
1
查看全部评分
-
|