|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑 : L! Y. @( e5 L: O! y! S
% h$ j/ y: s( C" W0 ~0 l, q
[FC][最终任务][END选关]# b2 X' v0 Z+ E- y
6 d0 M/ x' E9 D4 r0 P8 Y
时间:2017.3.29
/ D4 G: N0 A! f9 Y0 Z0 h$ Q1 o) ]作者:FlameCyclone
' b+ k# N/ y( c4 H- |: B R内容:
Z a' \2 n }3 }/ f4 S% p9 f 1.关卡选择: 标题时,左或B减,右或A加(1-5关);
' h4 G# S+ D0 ^, v2 t 2.无敌锁定: 暂停后,按上键切换;
* L. S* f, P6 h# i 3.生命加满: 暂停后,按下键切换;' Y; b! p/ T9 M2 C: P7 i
4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);
7 O6 n: f+ L. g0 m2 i0 a 5.子弹切换: 非暂停,选择键切换(普通,W,L,B);! N* r$ g' x) b2 s. N, d
6.B弹数量: 暂停后,按A键切换(1个或2个);
" A/ B6 C9 f, k3 m 7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;
& b: M* z" Y" i% E# R) a9 m% I; }# j6 U

/ |" P9 l# P% t( O # |; D: G. H! j# A4 `# C* Q* C5 a
# c: F: S [5 ?4 K

j$ o) v5 X9 V; b0 A
( s/ l$ N% K2 F* G1 X0 L& O
6 b* k: A4 A1 K( s# j% nFlameCyclone.ys168.com
' n" i9 i& G, A+ Ywww.nesbbs.com- ;[FC][最终任务KEY][END]9 G( |- V# m7 N- N* a& H
- button = $04 ;单次按键& l5 ^5 h6 g- W9 T) l, J1 i
- flag = $6000 ;功能开关标志1 `! Z; p" ~ z B
- pause = $000E ;暂停地址
Y: Q: U! i/ O+ R* \! P - * t; j# I+ K. i, | ]8 R
- .ORG $8000" L. O* F% Y. Y# A& ^# P$ Q
- LDY #$08 ;自带的按键程序
( v% _1 b& x: F- H" r0 o - ADDR8002:8 x( l7 P$ v& [. x3 M2 t
- LDA $4016,X
' J9 }$ j2 u7 v4 d( T _8 f - LSR/ N. c/ P7 s [) Y; k5 i
- ROL $00219 B2 R+ n# t1 w- [# n) L
- LSR
1 N, ?( f: s, b9 c* W2 ^5 y& S% j - ROL $00294 b" R. P, x* w* t+ u% `# t
- DEY
/ h1 |! Y, m* u% v3 ` - BNE $8002
0 o0 G9 W1 V# `6 v* A. u - LDA $0021
" r: \ F' l: ` - ORA $0029) G' Q, p/ ?4 Z4 X
- STA $0021
- @$ C5 i+ b& Z4 [9 S7 ?9 M! ^" U' i - LDA $0020
7 a" g1 V9 I5 q9 l+ |) A: S - AND $0021; e5 L5 [) T$ x7 z; s ?
- STA $0020
/ S7 s( O1 g- X2 \* V( h1 S8 w/ F% m1 t - LDA $06,X8 V& k* c& g' ~ V% u
- EOR $0020
$ ~' P8 d) J8 O# t$ } - AND $0020( H* d ~" w. c3 T
- STA $04,X( e2 |9 X6 p% s
- LDA $00201 k7 }# _ s8 o+ A$ K
- STA $06,X6 w) ?2 T' u8 M" i3 L5 b% B2 i+ G
- JSR KEY_OPERATE1 [; V1 x! [( O/ `. m; a
- JSR Function ;功能调用 K% W, I, ^$ G9 N0 g
- JSR Weapon ;武器切换调用% M' |( L- q+ H9 Y/ n
- JSR Power ;威力调用" ?- T/ M' \) {2 @
- JSR BULLET_NUM ;子弹数目2 I- a$ v6 q4 h6 g) E" S
- JSR BULLET ;副武器类型4 N: B- U2 L+ T" C9 Z
- RTS1 [. K7 h! g. L# |( s
- 3 B, H) V1 q. n
-
+ O5 m/ V; h; R- j, B2 L! T$ { - B' e! o- m+ |% y8 z ]" V
- .ORG $8050
- r5 j: H" }2 b: y) w - Function: ;功能0 g: W9 e0 k( {5 i6 w; k% \2 {
- WUDI: ;无敌
4 |- s8 d K5 [+ g - LDA $6000,X7 O; m" }5 q& g. O0 o8 O
- AND #$08 ;开关判断
- n! h Y4 \% A; h4 y) v% X: e - BEQ LIFE+ P# S8 W0 D; G- f1 I: a! H6 b- i0 |
- LDA #$05
; [, e3 A2 v- `3 T: e - STA $05DC,X ;无敌锁定) o6 _( m" ^; I# S2 b" p
- LIFE: ;生命4 ~* U4 A( E+ X* `4 _" U! d
- LDA $6000,X
1 o2 @5 n" E, e& m, [ - AND #$04 ;开关判断1 T* r& X$ a. F4 G7 P# ?
- BEQ FUNRTS% x& \0 a1 E4 F( H8 [* o
- LDA #$05 z0 v# L. [; a( I. _8 s
- STA $1C,X ;生命赋值0 S; \4 L/ z$ k. m. n
- FUNRTS:+ W0 A6 C3 ^* V
- RTS
/ Z: N$ o2 _3 K. u5 m - , M; U3 N6 |! }9 u( Q
- Weapon: ;武器切换
! s. R5 V& F( U- Y - LDA pause ;暂停状态判断
% j5 S1 `! @6 }# X - BNE WEARTS. u3 R! @# D! l' A f8 v; Y$ Q
- LDA $04,X
4 `! z2 s6 i% { y* d - CMP #$20 ;选择键判断, o# q* F9 }" H0 w
- BNE WEARTS
7 h$ I8 x7 _, f& V/ b* n - LDA $12,X' t+ A1 O/ v3 n: f9 c& B* O
- CMP #$03 ;武器值判断
/ B" i: ^2 ~8 W+ k7 @ - BCC WEAINC! }" e8 o; q. w3 M) C8 e
- LDA #$FF4 {4 ? h3 v4 o$ T4 t/ Y. p
- STA $12,X ;武器重置" o5 J7 y1 e/ z5 ^/ e8 {
- WEAINC:
1 d& s U" X6 }# F' j" i4 X: ~ - INC $12,X ;武器增加% r2 H1 J3 a# K% F! I6 b
- 8 T1 R: J, |0 J6 Y" z. w
- WEARTS:
w7 k1 k6 ?9 |- Q, ] - RTS9 O2 d/ t& w6 z8 j7 @
- # ` q! ~ E9 u; P. z7 A
- Power: ;威力
2 s# i; h& C F" l9 e- a) z" b - LDA pause ;暂停状态判断' g! g8 I4 f7 L! M- n
- BEQ SPERTS* D# |! \9 [7 I, f# y/ E
- BUT_LEFT:
) C5 d. f. I6 D9 K& r1 U' B - LDA $04,X7 }5 J6 n& R" |! c. W5 ~: z
- CMP #$02 ;左按键判断1 p' P( y; V" n2 |6 T
- BNE BUT_RIGHT
) X4 e0 ?0 p5 Z - LDA $88,X- x1 Y) y1 O. h$ ^2 j
- CMP #$00 ;威力判断
" l- {5 S4 g; V7 s' { - BEQ SPERTS" q8 R" h+ _9 ~* f+ I3 u4 U
- SPEDEC
7 X" Y8 N0 T$ k! \1 Q - LDA $88,X ;读取武器值" P _" ]. Z3 ]4 F3 F5 g; H
- SEC& p" s8 X4 ]9 H- k& V# x
- SBC #$08
/ k! y5 v4 s+ o - STA $88,X ;威力减小
$ r7 g2 p7 ?6 O6 @ R, [( D - BUT_RIGHT:
/ a, [- R/ d+ S4 O8 r# _ - LDA $04,X* r }. a* s |3 X% S4 n9 j
- CMP #$01 ;右按键判断+ v# Z- i; Y1 L: u$ Z. F) X
- BNE SPERTS
$ I+ H9 @0 Z# c' b. H- X - LDA $88,X! ?7 x) G% q: L
- CMP #$10 ;威力判断
( l0 Y. G$ C5 V! [7 d - BEQ SPERTS
, e0 o. G! U2 C6 O( l - SPEINC:- w) r& H! U7 q3 [5 w+ e
- LDA $88,X ;读取武器值" G1 w! N6 ?+ J6 L/ g
- CLC' U' u/ \* s m. e, s0 E
- ADC #$08
2 d+ ]! Z; l# X9 G5 ~ - STA $88,X ;威力增大. P) |2 X3 K0 A' j7 M
- + l# B! p5 y( D. e
- SPERTS:2 g) H5 i9 r% V0 s0 e: d, P
- RTS% q5 J8 s; M/ W: W
9 D" [2 C8 X$ \3 h9 m& b q' |/ c4 E- BULLET_NUM: ;子弹数目. J6 e) h: c3 ~$ ~ E" O6 B5 g: R
- LDA pause ;暂停状态判断5 d! j# T( L! _4 ^$ x( W4 V
- BEQ BULRTS# Y; m! L; i- b" @% S. b( q
- CPX #$00 ;主机玩家判断4 D! |3 c9 I" K* w+ J# g7 s
- BNE BULRTS. z9 a. @1 H" s& k
- LDA $04,X ;主机玩家判断
; f$ s0 W* u, h$ h7 P$ F. p2 ] - AND #$80 ;按键A比较( x& f1 \6 r9 s# S4 r
- BEQ BULRTS
' c8 I! \9 J6 J" c - LDA $87 ;状态判断
9 W4 }6 L* w+ u/ J - BEQ BUL_21 {7 i* P& ?8 u7 r, {5 O1 k# `0 p7 g" H
- BUL_1:$ ~( [0 N/ p' k8 n$ m' B. [
- LDA #$00
9 J* X' Q. _) T* [5 @ - STA $87 ;1发子弹/ ?$ ~2 G$ s ^ O* A! Q H
- BEQ BULRTS
7 E/ Z7 ]# L1 _; s; g" O+ W - BUL_2:4 V# ~9 w F$ O. k6 V( m
- LDA #$014 x @! ]+ A6 c' C9 H
- STA $87 ;2发子弹
/ `, i9 b( t' f+ p. X7 U -
6 m' X% m" Q; }$ M/ { - BULRTS:
% E! a: v+ ~( I# l" i* [ - RTS3 H8 h$ F8 e R$ p1 B8 Y6 h
- - C8 ] E6 B2 ~4 A2 R4 Q# b& @
- . v5 i* S' S l# c
- BULLET:& P$ H( }, B! k1 ~
- LDA pause ;判断暂停状态3 x, ^4 B1 @# R1 g
- BEQ BULLETRTS( e' i1 Z( a q' j* y* ~& p+ G0 s
- LDA $04,X5 m5 q3 d! H! M0 u
- CMP #$40 ;按键B比较% {$ Z/ e2 B ]% r$ a. }
- BNE BULLETRTS
; z7 [1 t9 M6 I" N. R' J. N - LDA $6002,X ;读取副武器1 o+ B% A3 U% J/ G/ a q& [
- CMP #$03
! I, ]. X _; ?- H D/ A( K - BCC BULLETADD5 ?3 [ F: {; A9 F) F
- LDA #$FF4 F9 T5 c/ @2 x/ j# o- }+ c
- STA $6002,X
3 {- G; N' T2 S) W3 ~! r- A - BULLETADD:
5 q. O& ?7 b* ?! ], p! E - INC $6002,X
5 N% m8 J1 |8 n2 q/ p2 s - " B: ^8 b, w% \7 A6 u
- BULLETRTS:
( X! B- t" I& J" i - LDA $6002,X
' `2 E V9 e" Q" P - TAY4 u7 q0 `8 r. M/ g) H
- LDA BULLET_DATA,Y
2 o, y* u* r: ]! V: J - STA $6004,X ;写入副武器数据, j/ u: M; S; p
- RTS) ]9 v& n+ D! b8 \! V* y7 X. T6 G+ Q
-
6 r! S- L' N1 C+ g5 t -
% A r- ]! Q/ f - BULLET_DATA:! Z* P& a$ f6 J5 }6 F, `8 V
- .BYTE $06,$02,$03,$048 f {$ W$ b5 c' |" b, [' a
-
3 Z# j: I7 \) ~3 l4 {0 L( B* c - + K/ Y4 }! r8 G, A
-
% _/ { c% g$ B7 n1 a - KEY_OPERATE: ;按键开关操作4 U) ~5 U& ?8 n" `
- data_protect: ;数据保护
* G# ]+ J2 S6 K0 ^( q# ^ B - PHA* N e: P" i ^3 W( a4 g" D
- TXA
1 x9 I% O% C2 E6 Y- _ - PHA5 @9 f! H6 N# U
- TYA
+ R z6 f' w6 G1 [! h$ c1 W l - PHA7 W5 ?& i: Q l h
- * d( Y( z) |7 L" m8 X0 I: |
- FLAG_INI: ;开关标志初始化
J' f/ c d' O" l. V: ?6 ?9 b
2 E9 w1 G$ o; d* N5 T a% N6 d- LDA $600F
4 M! t, Q+ @$ ^ T6 G6 z - CMP #$01; r$ h1 D/ A" A8 l
- BEQ pause_cmp. M0 j% S# c" {- C3 i' ]0 G+ L
- LDA #$00
; |& `- ?1 f, {. L, c - STA $6000
6 d6 X5 E& @* F7 n - STA $6001
! u/ ~9 r; O7 t: u W+ t% T3 y - STA $6002
* M4 X* L* C2 [ _( A6 r - STA $6003
a3 S0 D' k" O) W& E' _/ j- X - STA $6004
7 ?9 q$ p c8 E: o# y - STA $6005; m! | g* s" V8 g' V. L2 a4 S5 Q
- LDA #$01
- k g: t; l2 W- S - STA $600F
* N5 }+ Z ~: t6 N" n, y - & z0 c% r- E# D
- pause_cmp: ;判断暂停状态: Q+ f: B5 F* T, Z5 G
- LDA pause
: q9 l: Q* W5 k% w2 M m - CMP #$01 ;判断暂停状态4 D r9 H& T5 @ c4 k
- BEQ button_press
1 a! X3 } j5 l+ k/ ]" O- P1 v3 R - PLA8 Y' p1 `7 e1 j# o# S5 F0 o
- TAY
0 N/ Z* a7 r, S# {9 Z( t( n* u3 w - PLA% z4 ~# A A" E& `; L
- TAX
7 F2 w: e- K y! @* @! N - PLA
1 ~1 [' T9 C1 _. H) y7 `( \ - RTS7 i7 D! \0 ^0 R7 X9 |7 M# [
- ( X: l) `: e" r/ {( c5 Y% T) A/ I+ Z
- button_press: ;按压操作$ D4 j* {% t) D O
- ini_Y:4 q$ t5 d7 f2 C9 M' x: P
- LDY #$00: e( B/ E9 `; y0 L
- button_cmp:
' E: `; z+ Z4 O0 j( M. w - LDA button,X9 M0 R. }! f4 M
- CMP ora_data,Y! j2 x; p/ N& \8 ^% X
- BNE count_Y_cmp% D8 t( J) G- U* z3 J, f
- flag_cmp:- x; ~+ I! `+ ^" @: M
- LDA flag,X
A, h" y$ l0 m/ \4 X - AND ora_data,Y
, k9 I. K% F3 H7 F# ^8 k - BNE flag_and
! A r: w. I0 u7 n- x8 N/ v - flag_ora:
( B- f% c! ~' G$ i* V - LDA flag,X
3 H8 ^5 k& r+ a - ORA ora_data,Y# a. m$ _7 A" U% b T/ _+ u; T# d
- STA flag,X
5 o" Y* e; O" p2 C, F - BNE count_Y_cmp
" ^& ~: T2 g9 s+ w - flag_and:
* L% ~" @% O' M/ Q - LDA flag,X5 M5 V8 `2 T: `$ w$ [; ]' j9 E
- AND and_data,Y2 S' x* C5 i( B. a+ d
- STA flag,X
' }. ~ X/ [# ^ - count_Y_cmp:3 \! U) ~1 V" y- U- l/ p9 q
- INY
8 L+ E& s* V$ p; b% e5 ^ - CPY #$08
, z# z8 @; i4 M$ X4 Y - BCC button_cmp
$ I; P* C; t( g' [7 ?" i -
1 V7 N6 E4 `3 k - data_extract: ;数据恢复4 l) Z0 H7 m$ L4 Z( z+ X4 R
- PLA8 a& t3 F. L; }( c" Y# k1 q5 ~. E
- TAY( e+ c( [" j% m
- PLA
& L$ G6 v: n3 d - TAX- o- A6 d2 m( c
- PLA
- s4 T( ^; v8 @8 G -
; j2 [+ x0 D. l4 Y - return:& T. W4 c# N* G5 W5 b$ F
- RTS
0 p" w, [* R% ]" m j - 0 g7 [# K( S, {- R: S6 Y9 Y
- ora_data: ;按键相或数据
+ {3 R% Y2 e: ^( D" F% e5 `( z* F - .BYTE $08,$04,$02,$01,$80,$40,$20,$10( | c; h; A) e- l
- and_data: ;按键相与数据
& a3 m: H$ r; z. ~( }# J2 V# F" z. z - .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF( J% l0 O3 k& h/ f/ u8 {% ~. V
- J) Q" D) O* P) `
- / _& z, _: H7 p* E" z# h
- * P# V* A6 t6 a6 a$ t; ^, S
- / i! ?7 b$ S& a
-
7 R( Z5 n) e2 }/ ?: K* M3 Y- b -
& A W) ~% w" m/ J& t - : V( i" c. L8 ~4 I. s+ I: U
- 5 H% G& S, E: T; t, n( X6 u
6 }1 U2 W' G! A: q3 [" G- .ORG $C264 ;自定义的MAPPER2切页程序
2 f# s* ~* m" J0 q) b) R - PHA9 F$ X6 x4 E) G( I( c
- TXA
" h% ^$ y& E# j& W - PHA& J {. L" e& H- d2 w- x" \
- LDA $0066
, a! l4 e+ T( b! a3 p( f) G% }* G - BNE ADDRC280
6 ]( ?4 w C6 b# r2 e' W9 k - LDA #$07- Q- w: j8 ]7 h3 B
- LDX #$03
8 t) ^7 l; A% {5 F+ j - JSR $CD9B ;自带的切bank方法. Y6 n+ U' V/ B7 ^- U
- PLA/ M6 Q* P/ H! E/ U
- TAX
- @/ r& C2 d7 y" w# N - PLA
3 l2 m# w( o& Z- S0 t/ g1 c n - JSR $8000- b8 I5 \& ]; N9 V: @
- LDA #$06
1 g V$ h1 S$ b( h5 S' W - LDX #$030 L2 b6 S0 t9 \9 i4 Q$ G* U$ S
- JSR $CD9B ;切回原该切得bank(可以不用)- C3 _% S3 h4 a, F/ O
- RTS
' U# i8 @% }( c$ g% @! A! u - ADDRC280:7 v: m0 v8 H# S" z |5 Z8 t) T
- PLA8 |2 d6 \ o7 w9 h
- TAX
) Y' P3 D* R$ B - PLA
* B/ B6 \0 x, U; `5 D( x# i - RTS( p; W, `9 [# m7 U* H B4 |
- 7 g3 I C* M# U8 T' U4 p( T
- ) j7 T8 x1 S& Q
- ;[FC][最终任务PPU][END]# s4 ^9 W6 A6 }5 ?% P- h$ i
- .ORG $C056 ;跳转到PPU重写程序
: T; m7 e% |# o+ V, o* i - JSR $70002 t, S+ x5 }$ h9 C% r |2 e7 O) u
: ` O9 v: p9 Y. g) w- .ORG $CEBF% `- H7 `7 e$ E6 _. `9 G0 V
- JSR STAGE_DATA_WRITE ;跳转到关卡数据写入
* G, n5 I1 M* D/ A9 G. y5 S! W - 2 [9 g. v6 a' p5 K: |. n
- .ORG $E460
# `9 ^1 t3 _ _6 L0 j - JSR BULLET_DATA_WRITE ;跳转到副武器数据写入 b6 f2 d# U' U$ \' n% r
-
B4 b, ]/ c1 N0 R0 i - .ORG $71F0 p+ Y) W" |( ], @
- STAGE_DATA_WRITE:
, {& Z7 ?# I. z2 L" G - LDA $6010
7 h! l* l. E0 V0 C5 u) n5 O - STA $1E ;关卡写入$ a. ^, `/ [4 v8 P6 f& {4 h* j
- LDA #$00
. G+ D6 u# l& N - RTS/ c) {+ h0 p: b1 V, `: U
- .ORG $71C0
# r7 G! R5 K6 ~9 l0 w; F( \* D - BULLET_DATA_WRITE: ;副武器数据写入7 @: y; g1 j* Z
- CPX #$0E
0 M& m' ~3 Z7 y: t- X u - BCS P2_BUL* Z: }& c; ^& h s
- P1_BUL: P; B1 J0 O% M9 P$ n- o4 ^/ ` p
- LDA $6004
5 O9 x8 I- V0 ^$ F1 q1 R' e( _7 P - JSR $D7D0 ;P1副武器数据写入& j% A' ?; [7 B+ \
- RTS7 r' ~0 O ]; w# _$ M& w R# B5 W
- P2_BUL:
9 t3 [! Z2 I* g9 B" F2 R: A - LDA $6005+ P- {" u% P& s$ K, k) u% k$ C1 r
- JSR $D7D0 ;P2副武器数据写入! }8 S, o: x" M7 o! N8 a+ H
- RTS
3 Y- Y9 v. ?2 R) [/ w - 1 t9 u8 O" |3 n, Q* ^8 f& g
& Z# E; Y3 }! P) }2 Z! j- .ORG $7000
' x# p# m. p3 ?) z, `" q9 i0 a - + n9 G! H0 ~, Y {$ ]. n$ T
- STY $4014 ;补上覆盖的精灵写入指令* `" v! H/ \3 {: q( g; D! _
- PHA
$ j' W( Z- k' `9 [/ { - TXA) m) u. G! [0 K1 Y/ p" I
- PHA
* C. x$ X3 O7 l9 a - TYA
* k' z+ {% w0 c - PHA2 m0 R4 x+ @( w4 D& j5 [! `
- LDA $0C
" ]/ X3 a5 C9 S9 I/ V7 x - CMP #$01 ;比较是否为标题画面. T- x, `& a7 _5 q
- BEQ PPU_STAGE
8 [& k* @4 T7 [# `7 _7 k$ U - PLA5 B/ Z8 Q5 t, {2 F3 c2 t) G
- TAY
- Q" R a1 A% ~- E" k8 g6 E( O - PLA: s0 U; C3 R; ]. F$ n6 j
- TAX* d, N/ B6 x+ ?- ^5 R0 i, t
- PLA
2 Y$ X$ j" J/ O* E! I - RTS) g, v2 B! _; j) w3 t( @5 C5 w
- PPU_STAGE: ;STAGE显示程序
$ G2 d! i6 s k& l& [ - LDA PPU_ADDR_DATA4 W: { `* r' s6 C5 z
- STA $2006
9 N6 ~( ~+ w3 u' h/ [ - LDA PPU_ADDR_DATA+1+ Y3 H' q' z! }
- STA $2006 ;坐标设置2 {7 a! y( J7 G1 K* U1 Y
- LDX #$00* W+ ?3 `& C0 z7 {' s
- PPU_STAGE_WROTE: ;写入STAGE字模! e g6 ]' H0 }: x# o1 _! @
- LDA STAGE_DATA,X
: H1 b( Q2 n. n9 R' _7 o - STA $2007
' _: b! e6 U$ v) b, Q - INX
' w& |" W c# c9 X4 Q - CPX #$06, s: g x4 f9 h6 q0 }
- BCC PPU_STAGE_WROTE5 v E' W* |; J5 n3 S7 v. D
- LDA $6010% u* }0 g- a1 T9 Q% _+ }
- CMP #$FF ;关卡数据初始化条件判断
" H% K* z; ]% d+ R - BNE KEY_B
5 Q1 P, a0 E$ g+ W - LDA #$00
8 q" M) F: u/ V" h# F - STA $6010 ;关卡数据初始化
( d$ q, b/ c4 m$ `9 M9 L: k9 B - KEY_B: ;关卡减少
% d$ _$ R" e1 N [) W - LDA $04
$ r) M) @7 q. B. K% h! o - AND #$42 ;按键B或左减关
2 z0 C0 k2 L7 ? - BEQ KEY_A, |& k1 V: n4 @9 p G
- LDA $60109 k( q5 W# T& e& ~# }. P
- CMP #$00 ;关卡比较0 M, h }0 a+ `, F0 A$ n8 m
- BEQ KEY_A
( F) I y( N) B6 ]$ p# D2 d - DEC $6010 ;减关
8 L+ ^1 P* `7 Z - KEY_A: ;关卡增加
" s x8 K r* x1 ~1 D - LDA $04
% v! D- V! \/ M1 b$ y6 R! g X# Q - AND #$81 ;按键A或右加关+ y( A5 C# R2 @$ S# I" N
- BEQ PPU_NUM_WRITE
/ t; c* m9 ? W: n2 o$ e - LDA $6010
" e+ Z5 ^: r* c5 O! s+ a6 d* E - CMP #$04 ;关卡比较
7 c0 F0 _) ^" Y6 [& G - BEQ PPU_NUM_WRITE$ y7 ]' w& R3 U# s1 f r7 [- B( `
- INC $6010 ;加关
; `+ ]8 y. V6 R$ l - PPU_NUM_WRITE:
! Q c* s. c- q3 s1 {( G - LDA $6010- o& v n# q; e! a
- TAX
& C5 V, p; V! S: c0 L# a - LDA STAGE_NUM,X ;写入数字
' y$ O* ~+ C6 M$ a$ b# W - STA $2007" ^/ t/ t6 J% z' |2 v+ l
- PPU_RTS:/ V: a& C& u9 C$ u: a3 d
- PLA
0 e5 G+ [, \ v& g) s: C - TAY
! h1 q# r9 g% s7 \- [ ?8 X$ i- G) i - PLA
, B, F8 `2 V9 q; p) N/ E% h - TAX
4 O n1 E% x# n1 K - PLA
8 _1 M0 l5 k+ o6 A3 j - RTS! j; v8 o6 t! O5 y! R* t/ b7 r
-
" J) ~. f h0 y* { - 8 A4 D! E% L+ `. e9 ` Q) ~
- STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据
. h' S: @% L! |7 V: C - .BYTE $EC,$ED,$DA,$E0,$DE,00
: `' B$ p/ e' m3 K2 v3 m - STAGE_NUM: ;关卡数字1,2,3,4,5字模数据
" y7 o) _+ N5 F" o - .BYTE $D1,$D2,$D3,$D4,$D50 d7 Z' h0 p: A# {( f& G5 K$ X$ {
-
. S: S; J; q7 z6 p - PPU_ADDR_DATA:
% s& E$ p' T d' x w% h& A - .BYTE $23,$0C$ h% B2 k0 P2 E' M/ c2 f
-
7 K% Z# g5 y( L$ N* ~ {) H& o
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|