|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑 ; a8 b2 r- y4 K
) T2 Q6 N8 M2 U& H/ d
[FC][最终任务][END选关]
% S- Q4 M0 T% o5 s2 D5 O, W5 I# L2 Q; j) q+ R3 r3 U5 \2 p
时间:2017.3.298 U y c, G9 } O( T
作者:FlameCyclone
" S* V/ u i: E内容:# _! o' q5 J0 D9 u
1.关卡选择: 标题时,左或B减,右或A加(1-5关);4 F8 _- G3 J ]2 X/ U8 F
2.无敌锁定: 暂停后,按上键切换;
5 i1 V6 Z* P" b- j* ~5 o# u 3.生命加满: 暂停后,按下键切换;! d! u3 v: e d4 B" @
4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);( n$ ^" c0 _2 J) J0 }2 z5 G
5.子弹切换: 非暂停,选择键切换(普通,W,L,B);
* A# M* |9 w$ b4 f: _3 o 6.B弹数量: 暂停后,按A键切换(1个或2个);) M! z! c, E& ~ y$ H% N
7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;
" x3 X) b% x$ z6 O9 ]6 b& j' ]- l5 _* M# g, K7 f

: v: h; m6 h6 c8 ~+ p+ a 2 ]4 C, r& G! V& O
' A/ l* F5 Y& o0 F: r6 k! ]

; k3 f8 {5 r- |1 z. y( I. y7 f; I! [5 i5 [# D$ a
2 W% w/ U. W7 e r( B4 q. i9 wFlameCyclone.ys168.com0 z/ m; u" D% m. {- `( j; u
www.nesbbs.com- ;[FC][最终任务KEY][END]5 V9 n/ [- ^7 ^3 [( Q% w+ F
- button = $04 ;单次按键( u# H3 h# G, ]' G* Y
- flag = $6000 ;功能开关标志
' W2 Y" i' J! X3 q6 b' T$ M - pause = $000E ;暂停地址1 I5 `% {* J! i S5 i3 \9 `" Y
- 4 n4 a/ Q1 M7 |2 v
- .ORG $80008 k' F9 Q' Q0 _! J0 z# H) G
- LDY #$08 ;自带的按键程序
7 J1 [: a) J6 u1 f, v+ B - ADDR8002:$ r( i/ d$ a& e) }6 a. ^* a# G
- LDA $4016,X- X. U3 _* z! m' ?9 v+ y9 D) b# ~
- LSR/ d' | d3 V) ?3 T- ?
- ROL $0021
" I$ W4 `- Y9 M" G* Y \ - LSR* X- E; C: g4 b3 e4 _+ u6 ^
- ROL $0029
* w1 q! F1 `$ G5 K: ~* y - DEY
$ t- F/ M' m8 e - BNE $8002! ?+ Y% [- M* M3 A& p' N
- LDA $0021, S W2 G: J" B& C. S1 N7 \7 p0 M, g
- ORA $0029
2 p6 k+ A9 x4 [% p1 Q - STA $0021
. h ^% h* e8 {0 Y# m @; J - LDA $0020% ]/ ~" t3 q) u
- AND $0021% \4 C# S$ y5 @+ D# H6 R
- STA $0020
B ?. c0 W7 u' {: n) ] - LDA $06,X
# c. K! U" \3 \0 d - EOR $0020( F6 D) d ? G7 H
- AND $0020
4 W" C* b: r$ `0 f) P - STA $04,X0 K2 [ R3 H& q/ \9 m
- LDA $0020
& B" Y% P4 \ ] - STA $06,X* E' X2 @' N2 y6 f5 T$ P) l( g: M' ]
- JSR KEY_OPERATE# @3 _6 ^' e. s* P) E9 s" U
- JSR Function ;功能调用
& i" T) S# e1 {$ v2 _ - JSR Weapon ;武器切换调用
' n- x6 c, _7 A: l( W) r ^8 e - JSR Power ;威力调用
; V$ |( x& l% i1 s3 }( A9 G- N" A: h - JSR BULLET_NUM ;子弹数目0 v; n6 Z: a& |4 D t( L/ p3 X6 s( P
- JSR BULLET ;副武器类型
4 a* n/ u- a& v2 H$ o2 V - RTS/ M, I0 q2 }. M K1 m5 }/ a
- # v' l) _9 O# k) |
-
- P7 ~; C+ [6 L+ G! r/ J: i- P7 V - % H6 H/ E# R, S2 L
- .ORG $8050
1 k \# p8 _9 w% _6 V- K. L - Function: ;功能
. [6 s) v4 b2 ` - WUDI: ;无敌
; d1 B2 Z% b# V8 U5 m6 U - LDA $6000,X
2 ]8 V6 J- w8 | - AND #$08 ;开关判断1 F1 H. B0 F* {* T8 I6 o. n: h
- BEQ LIFE
, G4 Y- ]$ ^' ]8 q - LDA #$05( [- N: N7 E; W# c$ D7 ?
- STA $05DC,X ;无敌锁定
0 z% E# Y; f. b/ z6 n - LIFE: ;生命
' \, p2 I0 D0 i - LDA $6000,X
& @" a5 X$ Z" }- N - AND #$04 ;开关判断
L9 x; m9 m0 x9 G# {2 x - BEQ FUNRTS# Z- q0 C: H5 B" O1 h
- LDA #$05+ I/ i1 R) P0 \8 c/ Y' p; P7 Y
- STA $1C,X ;生命赋值
4 G6 K7 G6 e) z0 w* `3 r' E* A2 p4 U - FUNRTS:
# W/ S% t8 x2 f2 ` - RTS
- [* u s: N; q; \0 }: W* Q -
+ s8 w$ ^1 M9 ^2 N% l8 s - Weapon: ;武器切换
& H. W% W$ \6 y - LDA pause ;暂停状态判断! A. ?& n1 ^1 @/ ]0 [. v
- BNE WEARTS! }/ f+ V1 u6 J; G9 ^5 r
- LDA $04,X
8 X) E, d5 w0 R6 s9 b: \ - CMP #$20 ;选择键判断$ b' v, h% x7 Z* z9 _: q
- BNE WEARTS$ o) S/ b6 K# X; U! W2 G
- LDA $12,X
3 d( c, I' T/ f5 w/ u2 }# p* j - CMP #$03 ;武器值判断
! I+ S& I4 P" K: t6 O3 ^! V - BCC WEAINC3 R2 Z' n* ]* A: c+ X8 _3 M- ~
- LDA #$FF
# l) i( `5 h; \$ T) P5 v - STA $12,X ;武器重置& l5 S( m6 X: J- K
- WEAINC:5 A, E D4 e# _2 i
- INC $12,X ;武器增加# ]$ Z \$ i, y& x7 h; p/ ?+ I
- " y6 Y# V( o+ h* @, C8 E; |% h
- WEARTS:6 Y4 v, [/ n z5 O
- RTS
; X% Q0 n" l3 ?1 i, [' r - " e; a$ g: [4 m+ p# d2 B
- Power: ;威力
$ I( T4 D; g2 w+ n2 Q# u" A - LDA pause ;暂停状态判断3 S) K* q# S1 U+ Q& _8 [# d
- BEQ SPERTS0 ]" l+ W$ p7 J7 Z
- BUT_LEFT:
7 \9 @8 Q1 U3 J - LDA $04,X
) P; I( ?; E d G8 y8 } - CMP #$02 ;左按键判断
5 l4 p0 ~2 i$ s7 P) I - BNE BUT_RIGHT F6 ?% _, U5 Z j6 H
- LDA $88,X. r0 s. T- d# Q ]1 W4 M
- CMP #$00 ;威力判断
0 F, i! q4 v. V2 l1 D' C - BEQ SPERTS8 b/ u; N# y8 @4 u6 V7 T
- SPEDEC
F3 M8 p$ n$ @9 X - LDA $88,X ;读取武器值
3 |" A, s0 o! \0 H - SEC
1 G% I- R' @. N6 g# H9 T8 E - SBC #$08
7 c8 m! q3 b( Z6 @ - STA $88,X ;威力减小4 @- c" z+ i& }7 W8 J3 E5 m. |# o# x
- BUT_RIGHT:( Y( d, p1 E/ H; L) z& [
- LDA $04,X
$ I1 J8 I+ [: j: r. x - CMP #$01 ;右按键判断
. X+ f0 r) ?$ E9 L2 \ F) m - BNE SPERTS% V6 w$ Q: q6 b* h5 {3 r
- LDA $88,X& q4 ^. }4 L6 _8 c* K, e/ i& P
- CMP #$10 ;威力判断
' y' k* \9 H) I+ Y) T+ i - BEQ SPERTS8 o" J' ] }, A- `( E
- SPEINC:
9 ?8 I. s% D9 w8 X1 | - LDA $88,X ;读取武器值
2 d- r6 b8 w. n1 |7 t - CLC
9 ^7 c) |( X# Q* d( O - ADC #$08
: E: o, j7 @' C2 n" D8 V7 a: Z, e - STA $88,X ;威力增大1 \: [4 f& t+ J9 X7 D1 u9 z
-
; c; D# [7 ]3 ~9 ]9 T - SPERTS:
# Y5 X) K& v/ o. k" F U( {- ^$ P - RTS& e4 y6 ~& O" v! q: p
- + w; ]' t6 x3 N- i4 \
- BULLET_NUM: ;子弹数目
) s$ f! Q9 c, G3 X$ q - LDA pause ;暂停状态判断
4 K# `1 ?0 t4 A- v. z) Z - BEQ BULRTS
0 c, w* y1 c( v( ^; ?% Q u - CPX #$00 ;主机玩家判断
% k/ u6 b# Q( ?! L" ~ - BNE BULRTS
: P1 G: H) m( r - LDA $04,X ;主机玩家判断* g& g6 `/ j" i* N- _5 y
- AND #$80 ;按键A比较
! J# u( _# J3 B6 T4 I# [1 ? - BEQ BULRTS; U2 R' }8 U, d! a6 x
- LDA $87 ;状态判断) U Y: L0 q! O6 U
- BEQ BUL_2
- L* f- w/ T: K: H; E - BUL_1:# U! w% C( F7 w
- LDA #$00
* @& r, q# I. Z0 i5 q g - STA $87 ;1发子弹( q8 E* i6 Z. z
- BEQ BULRTS
: U$ V4 f$ g. \5 V0 h6 v - BUL_2:
7 m3 Z& m0 d2 U - LDA #$01! S, V8 S/ |8 T) ^, t" K
- STA $87 ;2发子弹
! Y: l8 a2 \7 `& I7 Y- W- v" L) c - 6 j" P' \ @. z- V# x) m
- BULRTS:( U& y4 } u* ]- J$ [
- RTS9 A V$ r) ?2 n# Z$ p' y _
- $ b4 B* z) z% v- i( r2 q I- f
* [8 a9 o! w8 Q# x* ?- BULLET:
( W5 c( H0 H. `$ U - LDA pause ;判断暂停状态9 e4 \8 \# k4 J/ ^ w: Z$ [
- BEQ BULLETRTS6 O, r. ^% z4 y# {& t6 d, Z
- LDA $04,X2 {. V; A; V) n2 i
- CMP #$40 ;按键B比较" s: k$ S+ y9 w5 o
- BNE BULLETRTS
. V) o# |. v% ? - LDA $6002,X ;读取副武器2 e* S5 x4 T5 V4 Q( D; D; O
- CMP #$03
' g9 Z! J4 x4 Y% z' K! q" y - BCC BULLETADD
, h8 e9 v" A( V/ g - LDA #$FF z0 p2 O+ i/ L1 ]7 S
- STA $6002,X
( V8 k2 D( y& D$ t - BULLETADD:/ [1 j; O# y' u' @
- INC $6002,X8 B' w6 D u' W0 i# ?
-
. ?7 i+ }- X" |7 Z - BULLETRTS:
/ E4 P1 k3 m a$ ^& _ - LDA $6002,X( _& a" Z: g5 s& e" D5 u
- TAY
' J0 p. Q2 G% L1 d% ]0 r - LDA BULLET_DATA,Y
2 m7 j; \! r. v* o: R2 f% A T - STA $6004,X ;写入副武器数据2 E9 \2 I/ ]* {0 |* }4 K; _- q$ y* E9 C
- RTS# ^+ k/ E/ F7 `: u7 B9 f- n7 K0 O
- - A5 D0 a: Y4 m' S
- * I0 N3 {( {9 ?* k2 X9 s! d
- BULLET_DATA:9 d% G2 x2 n2 |0 \0 _; C
- .BYTE $06,$02,$03,$04/ S& W, j% a4 M, r3 [' W/ @7 @
-
1 |2 R4 Y" S- |+ O0 K; b -
5 q2 B8 j/ z2 H1 T" n+ f - ; K0 R7 _3 W; o: J# b
- KEY_OPERATE: ;按键开关操作
7 t' U3 D- S) N4 O1 Y7 Z - data_protect: ;数据保护
7 N- D: B8 e9 t# j D1 g - PHA1 }- X- [7 A' `/ d
- TXA
3 ?" i0 B# j2 t4 u0 x - PHA5 D; b( A1 Z* V1 F
- TYA9 L; ^" V7 _0 I: a; A! J
- PHA
1 _% k% x1 R1 q* Q8 u7 r
6 H6 k$ ^2 |% m) ~% \0 Z- FLAG_INI: ;开关标志初始化
; \. x) [8 V+ O6 ^ - # y$ H8 a! l6 c% Q
- LDA $600F7 K" e1 t$ }# G9 S1 B
- CMP #$01$ `, z. J' l( _% z; {
- BEQ pause_cmp) |; |- c5 F- @! I' V
- LDA #$006 F- f, T5 E0 T1 X6 N+ F
- STA $6000
8 U" U- V i6 v8 n* |: t - STA $6001
* U( L3 x6 n$ o# h$ ^ - STA $6002. O3 j. z4 L. a/ s) n
- STA $6003
" E* R. F6 O& g4 r/ K, K% C - STA $6004
4 Y4 y- U( W1 V5 s/ u1 \7 z! h; U) | - STA $6005
6 q3 r3 G$ _" Q1 I3 V" x - LDA #$01
2 }, J) q! P3 p5 E+ _9 Q3 { - STA $600F4 V, u: V! z9 {4 x" N
-
5 E9 K* b. H2 s - pause_cmp: ;判断暂停状态1 M: ~+ L3 a8 o0 ~$ \5 n& u
- LDA pause6 {: e3 a9 R' L6 {# _1 l2 }+ S: Y' M
- CMP #$01 ;判断暂停状态5 h/ f% X1 f6 l
- BEQ button_press% M% _4 H0 o3 d B6 ]! ?- d }, u
- PLA% M1 W) g1 \6 k- e9 j# G
- TAY
, {6 @- w2 g8 {5 y5 }9 p* g4 N - PLA2 r+ B* j& K/ a7 Q
- TAX
0 C; I# s2 `# z% y# b* e - PLA
J& W' M6 t, _ - RTS! T$ r1 n. ?7 q' j0 z' Q
: u; }& G; N& f( J" w; j- button_press: ;按压操作$ ~4 D& a) t1 U& ?+ ~( |
- ini_Y:
7 V$ Z2 X) |1 ?" o - LDY #$00
3 Y W; [4 u2 Y - button_cmp:
& ~/ H. [4 g) Y' k3 I - LDA button,X
3 V+ P o5 F' p0 k" { - CMP ora_data,Y% i' t* p# @$ y" Q
- BNE count_Y_cmp' T3 o/ G) L7 O% U: y1 O
- flag_cmp:
2 K0 }% ]: f$ A% N! K( f4 n - LDA flag,X& Z' B$ D2 n8 \2 I; n: `
- AND ora_data,Y
3 G$ j U- T* x - BNE flag_and3 q+ O$ m. s) V
- flag_ora:
0 x: U. ]0 B1 s - LDA flag,X+ {$ D; o" P7 t4 e; z
- ORA ora_data,Y
% ]; a: l1 f1 B6 h2 K. q - STA flag,X
5 v8 M( K% |) `* F" u' z - BNE count_Y_cmp! f+ C3 i6 Z" D, i* B
- flag_and:
' ]8 U5 d' j* D* O - LDA flag,X
" R }$ C" |0 S3 e) m' E7 e - AND and_data,Y
! E6 V, N, V" z9 n - STA flag,X
1 k9 L* e* N" W# j% S' v - count_Y_cmp:
: g% d0 ^; h, L) N7 L+ A& @* @# s7 x - INY
! Q; C2 m3 m3 o) S( I; M - CPY #$08
' b/ [8 i, G2 q$ o - BCC button_cmp
) ^8 c+ s8 Y' Y6 y, i - , X' p, C& _/ C7 G& @
- data_extract: ;数据恢复
# k$ \7 N' ^" _4 @# {' r6 T - PLA, y8 [; @0 @& t
- TAY
% E8 P# i$ X1 b$ z - PLA* @' g5 B# y; L5 b/ K
- TAX
* `1 ]6 O$ X9 H1 i" R+ G' k - PLA1 J2 U* s9 C2 F3 Q* ~* S& f, U
-
4 _4 ^- Z9 q( Q X9 s - return:
9 H H4 S0 K6 {+ H1 N; g4 I7 s - RTS e: O l+ x3 u: O+ A$ b: h4 K
-
9 R, ]8 s) e# v, A U& v/ v! z' p - ora_data: ;按键相或数据
& Y: s: `( Q* D3 T' J - .BYTE $08,$04,$02,$01,$80,$40,$20,$10) j, j2 q+ M) B: v* r3 k
- and_data: ;按键相与数据9 O0 v( V: s0 [2 x
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF1 z& x, T# r, A
-
. L% Y, c" i( S3 }" n -
9 q& X6 O) M. b* k$ \) \: U - " R$ m* J R( @" r5 ]5 l
-
6 c+ e) V5 m* ^. e( a" a9 i5 ` -
! X I; j( E5 ]4 w" @3 u! o! D -
' f3 v! r) d u3 ~, h9 T - * `3 r, o& v: q! D
K& Q( N& L+ f: A/ U% M- ' p, m- ` E: k; E/ j4 f$ b6 W
- .ORG $C264 ;自定义的MAPPER2切页程序
- F0 J8 [. @. t. E" | - PHA
9 D# E3 r- q( s, ^& E* ~ - TXA
% ?8 L4 \' H0 Z) P' X x - PHA$ c+ d, O. `" B( p# H+ D
- LDA $0066
' j4 c4 e, e! u7 Y) L7 z% h% ^ |1 e - BNE ADDRC280
7 ~3 K# w9 W; P% s - LDA #$07
+ K: p5 c# B9 {; B' p - LDX #$03. e* }/ ~. z$ E* a! v1 A( M. u: i' D
- JSR $CD9B ;自带的切bank方法3 k6 s3 t5 X& R: ~! i% y) v8 L3 X3 P
- PLA
0 a9 `3 q8 G9 h" p, j - TAX
' |9 x; o6 v# q& k: ]. i - PLA
( q2 f3 Q2 f, P2 C7 Z7 }! h* I - JSR $80008 N5 [ C3 k8 g9 V4 g
- LDA #$06/ Q X+ z2 U% n4 Z9 c
- LDX #$03
, P% a. X! [% [8 _$ u; K9 N. k2 P - JSR $CD9B ;切回原该切得bank(可以不用)
/ i( b' I, b9 D K, p7 v - RTS
, M9 p8 X$ M: y6 _5 p* e - ADDRC280:! `# s; s$ U2 P2 B2 D- B- g% @
- PLA
0 Z% }. C# [6 d/ s - TAX" _; a% d, t3 Q
- PLA
5 s K( c$ C8 Q. O - RTS- U5 I! L' m4 e* A' b: ^1 k6 t
- " K8 g( ~4 f U3 w ?1 r
-
& C$ T% W+ k! b. @7 c3 U$ X/ ~( L - ;[FC][最终任务PPU][END]8 I9 n) n# e! [
- .ORG $C056 ;跳转到PPU重写程序' F! X9 |0 F E/ @4 R
- JSR $7000
% Y5 P! p! k. T3 U$ i - 0 X& v6 W9 ^+ ]
- .ORG $CEBF
' ~ x+ T/ z6 e2 h1 c1 ?0 h' x - JSR STAGE_DATA_WRITE ;跳转到关卡数据写入6 k) Y6 S) C# j0 T% {$ ?
-
! r6 u* v' `% p8 S0 t5 h1 J( P& Y - .ORG $E460
Y; a" y) Q( k! v. ~$ ~% W2 B# @ - JSR BULLET_DATA_WRITE ;跳转到副武器数据写入$ q7 j [+ M* p" |4 q
-
% i% m" i: {& Q" M+ f( Q( T - .ORG $71F07 U# x8 m$ \9 ]' R- E0 t9 I4 x
- STAGE_DATA_WRITE:
* [; w) {- [( C5 F2 b - LDA $6010
* `0 Q; [9 f( I/ O - STA $1E ;关卡写入
3 d+ h: X& Y o - LDA #$00
) }- C" M. Y9 v' [/ X - RTS& M% [+ [+ D0 c5 o( D1 I
- .ORG $71C0$ w. n+ H |: ^& k$ M& C5 a- s6 E. p
- BULLET_DATA_WRITE: ;副武器数据写入! k8 V$ y8 G0 b4 S
- CPX #$0E
& b/ K5 ]& G7 s4 Q4 m9 Y4 j5 Y - BCS P2_BUL
8 n: P) ^7 B/ Y5 Y9 e - P1_BUL:' H& ]2 H3 \2 M) I; L* f
- LDA $6004
- h, m; W! Z* x, Z6 T. Q2 B - JSR $D7D0 ;P1副武器数据写入6 a$ O) f; L0 \6 Y
- RTS
: F; V" w* z% u4 L! o/ O {( j - P2_BUL:7 [' W: U+ l. O3 O
- LDA $6005! m* {( ~6 l- K+ C# |, \5 `
- JSR $D7D0 ;P2副武器数据写入2 ^' i7 M/ O) V) V( O: W9 N9 X
- RTS- I* {; |* i4 [+ j4 t; Z
- ! T. u& @" g, C* A
9 [ Z* Q" ~* c9 c1 h: i+ i4 L! W- .ORG $7000; F# q- V- C$ Y; m6 F; ?
- 0 {( `( I# [2 `6 l1 J4 d+ [/ n
- STY $4014 ;补上覆盖的精灵写入指令$ @6 D, o. t8 \0 ?8 P) k
- PHA
- x9 V4 W. H9 p: t, I# y5 w - TXA2 a. r3 T j- l; }* L/ r; I, d! D( ~
- PHA
. m& B$ N ?* P& _' E* |& n. g - TYA: b1 \9 V& u9 }% E5 N0 T
- PHA
- F" H3 p4 W. w% T - LDA $0C
" L8 \( M, v, N' L - CMP #$01 ;比较是否为标题画面; Q7 v/ a/ m9 O& x
- BEQ PPU_STAGE8 {1 g) w7 H' Z
- PLA
) T' h, m2 }5 ~% u* [# ~ - TAY/ e, u' `' u# w& G
- PLA
$ a, w* D' {/ A1 v* A4 z - TAX& j6 a+ H9 B, \( J8 K X( t4 L2 B3 p
- PLA
: X( ]. K; P' C - RTS
! K/ P8 s* t7 ]' W$ ` - PPU_STAGE: ;STAGE显示程序7 u% b& ~2 h' c9 E" i8 m: ?
- LDA PPU_ADDR_DATA: G+ q G6 R* Y' S m7 P
- STA $2006
7 g: k w' ]. z6 ` - LDA PPU_ADDR_DATA+1
8 y; i, }6 [" `4 S2 t9 k, M - STA $2006 ;坐标设置3 u) K/ U& D% f$ W8 H1 {
- LDX #$00
; d. j& P8 `. i4 N# T0 D/ Q" \ - PPU_STAGE_WROTE: ;写入STAGE字模) m6 P/ T/ v0 m& y g
- LDA STAGE_DATA,X- h4 j! c+ G" ?7 F4 F' v
- STA $2007
2 u7 G4 n c% ^7 R - INX
1 @- x7 g6 Z# Y# p - CPX #$06* k+ s2 c! J- L) K* q: s* A6 M3 X
- BCC PPU_STAGE_WROTE$ p0 X) |$ q1 f2 E. `5 L2 g5 N
- LDA $6010" i3 r3 m& A# `& E5 ?1 P
- CMP #$FF ;关卡数据初始化条件判断
' M% e) N. c" X( |) K, m( M - BNE KEY_B0 U% y. Q+ h. \ c( k, L/ t5 I4 R; L
- LDA #$00
* v! Q4 o' C) n6 ` x' V6 f - STA $6010 ;关卡数据初始化
8 C, e" B" l/ G& w - KEY_B: ;关卡减少
- {: a2 H3 U( O" C/ ]' l - LDA $04
: s* ~& w. [: w" c! E5 Z - AND #$42 ;按键B或左减关
* x2 t, R% t- C, C9 a7 V, W/ e - BEQ KEY_A/ b) M- s4 N/ h0 q& k
- LDA $6010
+ Z2 R) s8 n; K: | P: ] - CMP #$00 ;关卡比较
5 U5 t! L2 |" e7 L1 E/ l - BEQ KEY_A
: d8 U$ @+ g" ` j - DEC $6010 ;减关
1 D, V( h9 V" S* W8 S" T - KEY_A: ;关卡增加
6 W+ _9 ?+ b+ e9 d1 Q% y - LDA $04
$ Q: s7 m/ a0 I2 G8 v - AND #$81 ;按键A或右加关4 c4 x& b# j5 r
- BEQ PPU_NUM_WRITE
, {; s8 `# I+ U - LDA $6010
. u! i3 `5 [1 R4 I \/ n t - CMP #$04 ;关卡比较
8 Z9 p% k8 {6 ?! |; f$ K - BEQ PPU_NUM_WRITE
% m# o8 d: P# ]& j2 S - INC $6010 ;加关
4 G! j+ V4 ^, f* L' P* K0 i1 C - PPU_NUM_WRITE:
8 `; _1 f4 O' I! o# ~7 Q3 ~ - LDA $6010
; E% @& m- H3 ~* ? - TAX X0 I/ Q# r [, p, i5 U, T2 M9 X! R
- LDA STAGE_NUM,X ;写入数字
+ r! n7 F T- |4 _& W( N2 d1 k - STA $2007
4 V" v6 R$ ]. T/ i - PPU_RTS:- N/ Q+ A) ^7 _
- PLA/ Q$ D# N& J! p: A5 K: K
- TAY
1 n; O' a3 {9 p1 y: _3 I0 R! j+ \ - PLA4 r5 `, I, A* m( M( N+ a* X- H
- TAX# ~- y4 G: H3 R1 ?% X4 s1 x
- PLA! Z# Q. R7 G& Q3 E2 I
- RTS7 P' I, e& W- }( D; d
-
& R) i: v- {# v7 e -
- N, V$ u" i% x+ H3 e1 _ - STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据
' ~% m0 h3 Z u - .BYTE $EC,$ED,$DA,$E0,$DE,00. `/ @1 S* @1 b4 l' ]9 n0 g
- STAGE_NUM: ;关卡数字1,2,3,4,5字模数据
7 ?, G9 ^- y/ X0 u3 ]. K - .BYTE $D1,$D2,$D3,$D4,$D55 m5 o& B+ g) S J/ G3 ?6 L6 [
- , Q/ ?) y' w C8 w) S# S) l& C
- PPU_ADDR_DATA:& Q. N E2 u* Y
- .BYTE $23,$0C
$ D7 _' J6 e( w$ u, ]5 u" u+ m6 u - ' V v- S; N" ]) R, r; Z
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|