|
|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑
! v/ C0 s- [. n4 b( i% T
9 L6 K _$ _7 \5 E$ g; B* ~" _ [FC][最终任务][END选关]
4 j4 z/ N- D" E7 {! u, Y" n
: J4 `2 n5 A! |4 l7 [' a7 R时间:2017.3.292 ~* O, _6 g4 }. a
作者:FlameCyclone
( J2 l; Y' p( e7 U+ h内容: Y- }* z# l' g. D( j" c
1.关卡选择: 标题时,左或B减,右或A加(1-5关);
) X, v" ~: k$ Z0 S8 C" G/ x 2.无敌锁定: 暂停后,按上键切换;( R* g4 }7 @( y" S) R! X: c ]
3.生命加满: 暂停后,按下键切换;: D6 D7 o( |1 b; \6 T; b( p8 k/ S0 S
4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);
7 `; K5 ]' z( ` 5.子弹切换: 非暂停,选择键切换(普通,W,L,B);
* d! m( o) i! A8 S# `* C: q" M 6.B弹数量: 暂停后,按A键切换(1个或2个);9 g7 x: B) R6 B1 o4 V' J9 k3 A
7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;( g: }. w; F# w1 Y+ G
: `+ s1 I/ ?- {2 ~& v
4 g, C8 R( O( ^1 @0 ]0 _& H
% K K; Z8 R) h2 d% t4 s0 A

; A: T& x2 [6 q* k
+ Z, c' P8 |- S9 D4 S5 }/ j- Z0 Q5 Y0 X8 m% v; i: b1 J3 z/ |* Z
# L9 ^+ r2 c4 c8 s6 k V
FlameCyclone.ys168.com' Y" z, ?4 u( z) G" T7 Z
www.nesbbs.com- ;[FC][最终任务KEY][END]% }" _4 W! d9 U, X8 p8 g4 Y. F
- button = $04 ;单次按键
( }1 B; n- Z* d1 p& R - flag = $6000 ;功能开关标志
' N2 w6 h8 L# U* O - pause = $000E ;暂停地址
) O! }% [/ v/ A$ r9 v1 u - 2 M$ ]/ Q- n% z/ R2 z+ n% X5 N: P
- .ORG $8000/ f7 b) G# w$ Q# P3 w- p( d2 J
- LDY #$08 ;自带的按键程序* D. ?1 b' F6 r) h% m
- ADDR8002:
+ w0 r: @% j X - LDA $4016,X& x# D. H) }1 L% w' @6 l' v! [/ p
- LSR
y; W7 I8 a2 B9 D$ _6 [ - ROL $00214 c) l9 t0 k$ c A7 Y. K
- LSR9 X4 r$ C' d4 H0 T1 {; T. s
- ROL $0029
" I. J' m2 ]% y( Z* ` | - DEY: U, ?: T, Q) d# l) _3 L3 i+ |! e- G
- BNE $8002% E6 H! x9 {" n5 [: s
- LDA $0021
- ~$ F `/ {: C+ `) m/ W5 | - ORA $0029( c0 m- b6 j' R; D/ _" Q1 l
- STA $0021' u0 y* T1 J9 \' t1 Z+ S0 @
- LDA $0020
3 k6 s% R* _/ u- ?8 m. x' B - AND $0021
* N7 L- p$ k; @ - STA $0020
- S& B _8 K: R% t4 F1 D - LDA $06,X8 J. f0 B, `* l1 S( ~8 T$ c: s
- EOR $00204 N$ ^$ p. F+ K6 c1 o* v2 f
- AND $0020+ j3 R w) b Z- K5 x) D9 U
- STA $04,X T5 C) q" C8 u8 Y# a
- LDA $0020
2 Y* E& d( B; Z$ a - STA $06,X
! z7 C/ i1 j; B - JSR KEY_OPERATE- e- Y( \5 C6 A/ S2 h
- JSR Function ;功能调用" h5 u6 W3 K- n6 h6 J6 i+ {0 a5 R
- JSR Weapon ;武器切换调用" f5 f7 l9 K0 {; s! b" Q' o! o
- JSR Power ;威力调用# Z1 u' l+ L6 X- \1 {( v/ F- G
- JSR BULLET_NUM ;子弹数目
& j1 q0 Z/ o) ]0 F0 Z- }4 t/ P) l) F - JSR BULLET ;副武器类型
0 g3 h: a, _$ E/ W1 g9 m# D - RTS7 e; D2 A$ u W5 h$ @9 {
- : n D. k# H0 p' ^" v
- 5 w$ v7 ~# T/ I
- 1 ?6 V# o: z S0 {5 R- ^$ D
- .ORG $80500 E. |( B6 |' l2 O, P1 y+ G
- Function: ;功能% U# H" G7 w' B6 A+ r
- WUDI: ;无敌
, f/ Q# B1 j3 N n+ d* z& n# Y - LDA $6000,X+ G8 c; c- a5 l4 E z, S
- AND #$08 ;开关判断8 s; N% w: Q! U" t% J
- BEQ LIFE
" ]6 x0 l4 n& s. @5 ^) T8 N - LDA #$05- G/ S5 x+ s* J* F: t6 L: ]1 A
- STA $05DC,X ;无敌锁定
4 F& k9 b# z; u2 X, m - LIFE: ;生命% A/ O7 s% H$ ?2 g7 e
- LDA $6000,X
. s+ [/ F. j" F5 W6 e - AND #$04 ;开关判断
6 K& f; ^5 t% f u1 M' v - BEQ FUNRTS
H; D/ W5 b3 C; A. ` - LDA #$051 c v6 [ g9 ^' a: n
- STA $1C,X ;生命赋值- y5 S: Y7 c: @3 k2 ~. ]
- FUNRTS:8 |& X9 M5 i! a1 T) ^8 h0 y* [" U
- RTS; d" X, Z4 C _& j1 T
- ; G3 j4 r4 ~' J! E# Q2 ]
- Weapon: ;武器切换0 |: t% W& `" S* O
- LDA pause ;暂停状态判断+ o9 ^! c' o; L9 D/ G: M
- BNE WEARTS. W: s3 y* x! i. N* a+ ]. L7 F" ]' B1 {
- LDA $04,X
. F! d& m% j. d+ Q# K - CMP #$20 ;选择键判断( ~; W- |) l/ [+ t( F2 S/ L
- BNE WEARTS
9 i. r k8 K7 ] - LDA $12,X/ C0 `& Z% x( |
- CMP #$03 ;武器值判断
! q4 @! o5 W1 j+ D; q - BCC WEAINC
( d) \* ~9 D3 T. X& | - LDA #$FF
, c1 s$ l0 z! ~* R- u2 u - STA $12,X ;武器重置# R& G! G; f5 j" i( U3 m- L# E
- WEAINC:
5 q# `' U* _* ?* n6 P# M/ ~ - INC $12,X ;武器增加# B" b/ _5 c7 Q( Z# E+ l
- 4 C& h5 n6 T: n. y* \. c
- WEARTS:4 M: w# D- L8 i( @7 r
- RTS
( Q* u; ~, \2 ^1 K4 P V" | -
: P E9 y5 d6 k9 l3 Z - Power: ;威力
" Y" ]! G) \# R3 ]; A/ s - LDA pause ;暂停状态判断4 C f. R) X- T# s
- BEQ SPERTS1 U4 W8 w3 {( ^
- BUT_LEFT:
' H1 [ B* A; O0 h - LDA $04,X
6 ~& T& B j1 g' l$ A - CMP #$02 ;左按键判断& s8 R5 _: D. R- w8 F
- BNE BUT_RIGHT
) p5 T: i& p) V3 ~* a2 h0 J) O& \ - LDA $88,X( _5 d3 z0 w$ ]/ T2 b" w2 m4 C$ o
- CMP #$00 ;威力判断
( e( h: x; u. A8 h9 F - BEQ SPERTS
7 `5 `) i0 Z! R: K8 ^/ V' J! S - SPEDEC& L7 Y3 `, q# s2 h0 o5 J7 l2 J
- LDA $88,X ;读取武器值5 E/ Y- }6 @7 C6 d* @7 I
- SEC
# y; P+ W i' D+ J - SBC #$08
- V, i+ H0 ?. `* Z - STA $88,X ;威力减小; `& l' `* e- x2 R: s
- BUT_RIGHT:
% L8 z# ^5 _( a - LDA $04,X5 v8 J6 k* X: V
- CMP #$01 ;右按键判断- Y6 O4 _6 A: J4 R- @
- BNE SPERTS
5 \8 V& \6 E. W [4 H - LDA $88,X* `% v' I" ~# {' l
- CMP #$10 ;威力判断
+ D) @% q* G; _3 r - BEQ SPERTS, X( y( ?. g3 O! f; r
- SPEINC:
. X+ q% R) D5 k" x" \ c - LDA $88,X ;读取武器值 P+ C g. }& W R! t# y
- CLC% o$ w! ^; h/ M7 F& i: Q N
- ADC #$084 [" L% T, Z% D0 b, V$ S
- STA $88,X ;威力增大; S+ m. x3 k( g" p1 ]6 q- v
- 0 q) f: N# j8 `; K5 \
- SPERTS:3 k! i% b1 e* [
- RTS
% i1 L/ u, p! H' Y8 J& L: `% b: p - U* @& h- d: q& {/ I: g
- BULLET_NUM: ;子弹数目
7 }+ A8 z( P6 O1 M5 G - LDA pause ;暂停状态判断
) Y3 G# X7 F# i - BEQ BULRTS; j; {7 ^) W# ]: e S
- CPX #$00 ;主机玩家判断# i! u" m7 c' S/ b; M* @( s6 y! F
- BNE BULRTS* z% j p5 K! _$ h
- LDA $04,X ;主机玩家判断8 E8 ]& [$ k( U+ \3 k2 q# F
- AND #$80 ;按键A比较- w; R# l" z8 N; T6 {0 ~
- BEQ BULRTS2 `6 P' d+ s7 S7 ]/ b9 M1 F
- LDA $87 ;状态判断. Z, K- T) }2 B
- BEQ BUL_2
@. o: }$ i% g2 t! Z# A# q* | - BUL_1:- F6 l6 m" @5 Y: e9 R, Q
- LDA #$00
2 T/ ]' i6 `; Q: H# c - STA $87 ;1发子弹
{: v7 c8 I/ K1 D0 _- { - BEQ BULRTS
6 V7 m, ]3 Q8 u9 p' x/ E( X - BUL_2:/ O" l! u: s/ [
- LDA #$01# a" Z$ w- O& X; G h
- STA $87 ;2发子弹2 `8 r4 G# V1 c1 e
- - o. | `. {9 v
- BULRTS:9 R1 s6 ?1 h8 s' T
- RTS
7 s2 x( C3 x/ @2 y" C9 C- l& J - " D- W+ p, N1 j3 Z8 w
- 0 [5 x: ]* C5 k- b& L. b
- BULLET:6 d3 r5 G& R6 H" z5 L+ B
- LDA pause ;判断暂停状态 j. V: l9 q( Z g1 V
- BEQ BULLETRTS
& {& K9 ^9 ^! t/ d$ w0 f - LDA $04,X
$ q P+ {- \- F" u1 _ - CMP #$40 ;按键B比较% _# M9 D2 |6 U' L" f9 L: r0 o
- BNE BULLETRTS
0 ^/ ]; ?0 j( @9 q& y, | - LDA $6002,X ;读取副武器7 `& X" [ V7 K
- CMP #$03' J1 p' r _! _4 M' Y( z, B7 k
- BCC BULLETADD# F, }% l; {. ]
- LDA #$FF
5 Q9 \6 k8 l6 l+ F - STA $6002,X
0 U% J: s3 v5 S( j2 R - BULLETADD:
/ O6 t5 P% U3 R" u/ l; a - INC $6002,X" D; S% X Z' I! Q* G& X) |
- ! S3 }2 V( j( c' S- B& G
- BULLETRTS:
1 l8 z' i6 U' ^' H* r" E7 M - LDA $6002,X
0 k% R; Z6 b3 J# ~+ x, u# A l - TAY
) \1 X9 |% B' e% a - LDA BULLET_DATA,Y# G, } C [3 y; ?
- STA $6004,X ;写入副武器数据( X7 o# p6 ^1 Y- u8 @
- RTS
4 z% u. a% c5 ?, D3 B - 4 P6 ~# Q9 t; a/ \, l" M
- ( v# y/ ~# ^' ?% {
- BULLET_DATA:: q' C% J7 X% C% O' r* B B
- .BYTE $06,$02,$03,$04; N# h# ~" |$ ~$ D# l
- 6 e+ E, _$ E) n8 d! z3 k
-
; k/ Q( ]; D0 z -
) L6 A2 x- ~6 J- U2 S6 d% z - KEY_OPERATE: ;按键开关操作
; [* o* t1 ~/ d. z) d% a - data_protect: ;数据保护
. v/ t0 k. b' k/ ^! L. `# _ - PHA
V9 z8 V1 ~: }( |( B8 ? - TXA
/ V/ J' ^) k7 Q9 o1 h% Z, H - PHA
2 O V, p @% w7 Y# O - TYA
( s' x. |: {5 S' p5 c- s/ a9 `$ ~ - PHA
2 u* {5 N- }; |' T# [+ {* N
0 L( E* P. P5 j& P0 |* C( Q% O$ u- FLAG_INI: ;开关标志初始化# w9 {, c$ ?0 k4 T" A. L
- - { G1 j% k( M% B3 V* O
- LDA $600F& f2 N5 Q- G0 K' ^! h I1 \
- CMP #$01, G9 \0 k+ L, u* D* l
- BEQ pause_cmp
$ p2 v) _! v8 e E - LDA #$007 t! [; P( c$ A- K8 Z) i3 {
- STA $60008 L& H: H5 y8 B4 @/ h A8 N
- STA $6001
& J% W/ y$ [" U - STA $60022 {) j" n8 M+ W* u" Y
- STA $6003
* K% m8 I5 \$ f. ]4 J7 P - STA $6004
0 X0 h9 [: G: D" \7 @& ]. P - STA $6005
# {2 |& M0 }6 A8 v- t - LDA #$01. H5 g4 ^( X! w+ x8 A- O$ t
- STA $600F* {0 F( d! U$ P5 C# v1 i$ Q
- 9 H3 p4 R7 l) H# P$ L( _
- pause_cmp: ;判断暂停状态. @0 [: J( {: E4 V$ e! k4 j
- LDA pause9 Z$ p: t. S# T8 l1 I" `
- CMP #$01 ;判断暂停状态4 R* v& }- K4 Y# L' J/ S; u
- BEQ button_press
7 q8 X; v9 x" T) z% o/ Y - PLA: ?+ K h6 V4 m) U7 N0 w" {5 J
- TAY, r+ y4 L( a3 Z: Q+ a% P
- PLA3 N0 A8 `: Y3 u" _; G# `/ \
- TAX) Z4 l$ a0 }: e, W" H v
- PLA- |+ n9 C) ]2 `* m) n7 Q
- RTS
$ O: u4 w Z T2 t# R, C/ j
3 D: d+ p4 F/ [% C- button_press: ;按压操作
. V: _. \ f1 c0 P& ~ - ini_Y:
- |8 W% s* e2 C, ^$ e - LDY #$00! \8 O1 |, D( X) f. \2 g
- button_cmp:! b: I$ M9 q# u: b$ t
- LDA button,X
3 D/ x- | m0 @' g9 W( T9 | - CMP ora_data,Y
5 q( K+ {9 k6 q \5 C8 K. g - BNE count_Y_cmp
9 D+ C) E& @# H' E6 o9 x - flag_cmp:
* \% g9 r6 }% J' U - LDA flag,X" f8 M$ V8 D6 J4 B
- AND ora_data,Y2 d4 G! m% p0 p
- BNE flag_and
$ p7 Y% g: @9 I& {' a - flag_ora:
% `' q! K8 h$ t3 M* o* }0 D: ^ - LDA flag,X" g+ K& r$ T# G6 `* n6 P
- ORA ora_data,Y1 N& }* Z( a: Z2 I8 B# h
- STA flag,X
( Q( R0 h' h7 u8 T - BNE count_Y_cmp7 }3 g h' `' J# U
- flag_and:2 @. ~1 ~. T W; R/ n
- LDA flag,X
1 H$ y+ ?( t' F2 z' `6 O2 h; W! Q - AND and_data,Y
. l* T2 h) ^1 J1 {+ G8 u/ x# H - STA flag,X
. I/ M( Y5 o& ?" g. s1 r( y% { - count_Y_cmp:
3 V# O' w+ }. g: i2 H' C - INY9 o, L1 |8 z' M/ Z$ t6 z
- CPY #$086 B" M3 d( T: X! x5 w
- BCC button_cmp _/ N$ f6 Q2 y# Z* e
-
: L2 J2 Y& C7 K j+ P# ~ - data_extract: ;数据恢复
( z" |3 h5 e/ e$ k, M. Y - PLA
0 ?: B8 z0 u7 _3 Z- v1 {- h4 |) I - TAY8 k# y% ?0 l! E+ j! i
- PLA
) X" R+ D7 X* F: U! y, o$ Y - TAX
6 B& v/ s# n# s% A$ D. A: x - PLA
; s; O3 V q6 S* Z -
6 D) Q" ]0 {" H; b% G9 a - return:
8 l, Q0 o" K q! o/ ~. n2 M" o - RTS. U, S/ G" F' Z5 _8 g6 }
- . R) A9 @1 z8 h4 D
- ora_data: ;按键相或数据
[) {! w4 Q( _# K- Y0 t- |, J/ D - .BYTE $08,$04,$02,$01,$80,$40,$20,$100 ]3 q2 R, |8 I! ~) y9 U* K
- and_data: ;按键相与数据( B7 ?& w$ n* I0 L, O" Z
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF
+ r- e7 z# `7 m: _( m4 R) q3 V - ; H9 m, ~: k! q; V2 |) F# ]% O
- / F( N! R: o! m7 @
-
5 I/ v; \1 w- E8 r# m7 t& B( E- i - $ C0 t+ E6 D9 _9 W! X9 L
-
- v! d' x9 l4 T7 z7 S -
* P( W$ T: }- ~- r2 R6 c6 w% @) Y! q) t - 4 U! i, L9 V3 ?7 P
- . y5 L1 O( }5 m: c9 ^6 L r( k; N
- / p2 G7 Y2 p( ?* O$ c* ]) I
- .ORG $C264 ;自定义的MAPPER2切页程序
) H/ ^9 k; O0 x; w5 ? - PHA
$ I) s7 P N% l$ u - TXA
$ C* z, N, _) J- w1 y! f' Z( o' { - PHA
7 ]5 ?' r4 x, m% N - LDA $0066
Y# u" j" S* D6 I- k - BNE ADDRC280' v4 j# J' K1 o& C& v) o
- LDA #$07
! O: ], a O4 S' H - LDX #$030 \% u2 |8 Y0 `0 B# w
- JSR $CD9B ;自带的切bank方法
+ k$ o% \ f' y2 S# i' e - PLA4 i" a: D1 g7 t/ B/ `
- TAX( ~6 ?; `% ]/ x, h) G& I* k
- PLA6 |' \. O* {- h# L9 _1 j, ~
- JSR $80002 M8 c) o$ z4 c5 |) s
- LDA #$06
9 J) \6 x5 W8 ]' A" C% k. b - LDX #$03; X( e& J$ K6 t/ }" p0 I
- JSR $CD9B ;切回原该切得bank(可以不用)
0 b1 t6 i7 V6 ]+ t8 z4 O8 i6 y - RTS
" i: P% N( A7 ? - ADDRC280:5 I* Z9 k) _2 t
- PLA, s& y0 d7 L( F t2 a/ h
- TAX
! d/ a- W5 _# q, h - PLA# i7 B8 l7 Y; ~1 `/ D6 u3 Z/ ~
- RTS' D7 O( ]/ m4 ^/ I; _1 o& k) a) @
-
/ M% O4 W6 D, U- x3 e" Q5 X -
! Q& F/ U$ m4 Z Z) ` - ;[FC][最终任务PPU][END]
. Q2 g) c! v6 {+ R- U - .ORG $C056 ;跳转到PPU重写程序6 S4 A, Q8 U9 U; `. y$ |
- JSR $7000( p! X- e0 K7 _: Z, D b
- - g! D- d: d, M; M' c+ T
- .ORG $CEBF& f3 d/ `/ q$ A: F }4 d+ b D
- JSR STAGE_DATA_WRITE ;跳转到关卡数据写入
1 e# c# B( r; o) T -
/ [. b+ z- d p7 G0 z/ Z - .ORG $E460
2 s1 y. |9 P% v - JSR BULLET_DATA_WRITE ;跳转到副武器数据写入
* j; y0 Z J0 V" r& `5 w7 l* }2 j -
9 Q$ x: W4 c" |$ L - .ORG $71F0
7 p: s, S, a! V0 @ - STAGE_DATA_WRITE:& }2 z4 \0 z6 s7 J* L" a' I0 b1 L: J
- LDA $6010
: k) ~; E3 r; j - STA $1E ;关卡写入
8 ^1 [. }! A3 ]9 z0 [ - LDA #$002 F. H. `- ]- }# d7 e( u! c
- RTS
+ J5 G9 K6 p- v( S4 a( ~( V8 C0 U) d1 m - .ORG $71C0
2 _5 c/ E6 T6 P; f( F - BULLET_DATA_WRITE: ;副武器数据写入1 w6 k# J. x, v7 N/ q+ ^+ ]$ V) [
- CPX #$0E) h: Y8 D# J; P# y k6 H
- BCS P2_BUL6 S( E# r( ?% Y( K" o( Z4 U
- P1_BUL:. G, I' o2 a* l0 Y9 Y6 o
- LDA $6004
( I; U' P. |" y/ U - JSR $D7D0 ;P1副武器数据写入0 H k$ m1 c* n1 d2 ~
- RTS
3 o$ s3 E e2 B7 W2 D; d- c - P2_BUL:4 D5 d6 t6 C. J# q3 |: i* y
- LDA $6005
" ~0 w/ M8 W" o. j, s) o - JSR $D7D0 ;P2副武器数据写入+ `3 k' u# h2 y; F& n a
- RTS
8 T) M0 k) F$ U3 e0 r- b
) K* ]/ N! {" d; Z- 4 y; O, |7 a3 d# | {! H
- .ORG $7000* X# Z# s% R! R
- . d2 |( F* D. l$ ?% Y' U
- STY $4014 ;补上覆盖的精灵写入指令$ G% d5 P( N6 t1 B9 F
- PHA
; h7 t& J9 z$ |" p" { - TXA( ~9 Q8 X4 s! t' S) m( U! P
- PHA( i* a6 h2 M* `: z9 c+ M, j8 k: ~
- TYA* e2 H' w! K/ ^
- PHA
$ H' V( V) B% U9 F( f& Q - LDA $0C8 F5 l8 l3 U& X. }1 \: @
- CMP #$01 ;比较是否为标题画面
' q) W; E7 k+ s5 S - BEQ PPU_STAGE
3 a/ A# I6 |1 r - PLA
3 Q* m- ^' i5 k, z - TAY
- C4 j. z; t% _. v% t% o/ c* M7 A - PLA
' A: y7 e! O. V1 D$ g - TAX
2 r/ _2 z* A& W2 f0 j - PLA1 V) J0 U3 x) Q6 Y# z
- RTS% N# R+ X H( ?+ y+ Q, }5 K+ J6 W6 `
- PPU_STAGE: ;STAGE显示程序
7 O' T3 E8 e u ? - LDA PPU_ADDR_DATA+ g% a. C1 W8 j
- STA $2006
( _- D& K" g4 K5 e) f& ^' t - LDA PPU_ADDR_DATA+1
, d7 z' ?; J; y+ V5 M( Z- Z/ o( { - STA $2006 ;坐标设置
' G; V+ B) u9 v, n) w* e - LDX #$003 d0 U+ h& u2 c9 I6 B# y. w5 [0 L9 `+ c
- PPU_STAGE_WROTE: ;写入STAGE字模, ]0 G& k) X0 v& g; e% |
- LDA STAGE_DATA,X
; w; G# j4 R0 O' M- B& L# B* ` - STA $2007
% i& L# f& L# ]5 x5 K0 W - INX
0 @- v/ `( V% P& X( x! ?" f - CPX #$060 ~$ H' {0 W$ @$ W6 z- o! l& q
- BCC PPU_STAGE_WROTE
. P4 e; ~5 L2 t; L: w - LDA $6010 s% q5 j$ p0 `% ?
- CMP #$FF ;关卡数据初始化条件判断
2 l3 V8 z+ `- H9 U& ]2 k - BNE KEY_B/ r' x9 l K8 ]5 T8 ^
- LDA #$00
* R+ C, y; n7 K/ y3 I2 j - STA $6010 ;关卡数据初始化) X3 Q; |9 C# T) r% s
- KEY_B: ;关卡减少
O+ m% O, F! h: } - LDA $04) Q2 Q; s" l- ]8 ^5 [! V) H! j
- AND #$42 ;按键B或左减关) e* {$ T& P0 A3 e4 O1 m( _2 D
- BEQ KEY_A( i5 e; U6 y, ^# F( H
- LDA $6010
7 w& d; d3 p/ e9 N8 J) x2 q - CMP #$00 ;关卡比较1 }9 A0 T1 o( q8 S4 R* [" p& j. v
- BEQ KEY_A2 J" f. r/ q) B1 c" _' X
- DEC $6010 ;减关& G0 b2 k5 X7 G2 R) @ R
- KEY_A: ;关卡增加
4 L" _5 d* |1 f - LDA $04" [5 [; r6 X7 }
- AND #$81 ;按键A或右加关
! E m$ e2 S& F+ e) X- I/ f - BEQ PPU_NUM_WRITE
" V2 G7 T8 v7 J7 \9 y - LDA $6010
& i' l5 N7 L8 {' Q, I - CMP #$04 ;关卡比较6 u6 o& T4 v l* Z
- BEQ PPU_NUM_WRITE& A+ ^' J) x1 o9 i
- INC $6010 ;加关
7 T8 S' d( F' r/ E5 c! J6 A [ - PPU_NUM_WRITE:6 `: D4 C6 W! x. M% r8 c# U
- LDA $6010! o0 H% Z# N) Q. M
- TAX! X$ Y. H) E3 V
- LDA STAGE_NUM,X ;写入数字
" Q# {! z* K8 Z6 Z! n0 Y4 Q- L - STA $20078 T2 [: U9 g! s( L
- PPU_RTS:! \- g' s; ~+ j4 o. f' N5 Q
- PLA6 e" N% T$ @& f3 X: x
- TAY
4 f# C w: i, C8 s9 T9 \ - PLA# m l$ F6 D6 `8 S0 _
- TAX
" I" W; W! a- B* X: Z - PLA
2 f/ ?8 y% r; |# g" n& U5 n - RTS- l" M) _$ [$ A
- . v; ~0 M/ J/ C( Y7 ^7 {
-
1 V6 ?. S" S" V- L% u9 ` - STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据
& D' `6 R2 r- h: x# L - .BYTE $EC,$ED,$DA,$E0,$DE,00
) D: X' ]8 x( e; H" E - STAGE_NUM: ;关卡数字1,2,3,4,5字模数据
' K; q3 @# [* b$ _8 D' k' \0 _ - .BYTE $D1,$D2,$D3,$D4,$D5( D+ N- U% x9 @$ ^
- . K1 F5 u3 @8 {/ i, \
- PPU_ADDR_DATA:( W4 A4 C$ O, u. J% P& Y" G$ k
- .BYTE $23,$0C
9 B, K# m5 Q) A4 L$ C$ I# j -
6 c1 W: u# s/ h1 q6 Y
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|