|
|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑 & E3 X% `7 W0 R! c
4 {( O: B2 ?* x4 X
[FC][最终任务][END选关]4 i8 p0 ^8 r4 Q4 h0 |
, G) h' q; Z' x5 k, M3 |. ^
时间:2017.3.29$ H$ d+ S5 W8 a) c) J/ g) X
作者:FlameCyclone. S `- C& N5 u- e5 `
内容:
2 C& |$ I& y6 b9 B/ s 1.关卡选择: 标题时,左或B减,右或A加(1-5关);8 z( H: z( g8 J" f0 ?
2.无敌锁定: 暂停后,按上键切换;
' S' i: t7 ?/ k$ U9 K$ V1 { 3.生命加满: 暂停后,按下键切换;% J8 [* u; L- x T, l+ c
4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);
3 ~1 W, t) E6 f2 ^9 K) ~ ] 5.子弹切换: 非暂停,选择键切换(普通,W,L,B); x5 P' W" ]$ a+ g
6.B弹数量: 暂停后,按A键切换(1个或2个);4 `6 n. C0 S: V' [: @4 Y' O
7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;. ?2 l& T# Z* w& _0 l, [
6 k0 h4 U0 p2 T3 A+ C) o
& Q9 p# q) I) s : E8 j* \5 O1 x3 T
+ j- m; M) S9 ?* e

# C% F3 m3 N2 P: ?
. H3 M/ ~/ m5 o! d a5 g! k- n$ v6 s4 s( v; \
FlameCyclone.ys168.com
: {3 R$ w$ P6 ^4 U& N/ c0 v9 ywww.nesbbs.com- ;[FC][最终任务KEY][END]
, V* x9 D( |7 S3 e; \) P. | - button = $04 ;单次按键( w& o" k, _* z% [
- flag = $6000 ;功能开关标志' }0 C. ]7 `. L( j, M1 N! v
- pause = $000E ;暂停地址
7 V' W J# W8 l+ V# ? - 2 m1 `( a% T% Y' L5 ?
- .ORG $8000
: V8 t b& Q# P' G g - LDY #$08 ;自带的按键程序2 F( X! \3 d4 ~: \
- ADDR8002:
5 A N1 W, `3 }5 g. E - LDA $4016,X
% N2 ?% r7 d8 o$ m+ A" Y - LSR
, l7 f+ ?( E3 \' P - ROL $0021, a; Y/ \6 T. \1 `" Z$ n) h
- LSR; g, P; x' n, @6 O8 m# D2 V- ^
- ROL $0029
5 d7 |/ ^( |( k6 n: _. j# u - DEY# F4 w2 ?0 E& Z, K* W5 @( h
- BNE $8002
% S& Z, U/ h6 p- e - LDA $0021
( q* h( Y! ]3 L& W a" b+ Q - ORA $0029
5 c( X7 |4 c, ]" w, F* M - STA $0021
# \& a. ~2 J0 D/ @ G - LDA $0020+ o, k9 N) p9 S5 o
- AND $00215 P( W: ]2 @4 I' U
- STA $0020
7 A; P' f5 k. }7 t8 Y - LDA $06,X
& g) ~) P% V, |- ]" x - EOR $0020
0 G, b% B) [; c5 ]2 ]8 o$ S - AND $0020' E7 y1 n$ c, |
- STA $04,X2 F$ c7 t0 }3 D l4 _& W1 g! @9 B
- LDA $0020; @+ _: t% F1 a4 N8 m
- STA $06,X
8 M3 h' L! D7 B' a# e4 r - JSR KEY_OPERATE! {2 f! C$ S' G0 N9 x8 B) t
- JSR Function ;功能调用- c1 u& D1 R6 i' [# w2 ]
- JSR Weapon ;武器切换调用
{, q/ \1 q$ P" v0 M+ j, S( {7 W - JSR Power ;威力调用, F, C1 i$ u! Y4 l
- JSR BULLET_NUM ;子弹数目
$ r; M% I: z+ u3 f% d - JSR BULLET ;副武器类型4 r5 i. ^2 s# M2 U
- RTS
3 o8 n! s; J4 j2 b8 f - 2 e! |) [6 \$ ]5 ?" U' d% O
- ) r: J1 G3 Y2 s; i
- 0 U; n* Y) R( e7 Z, e# a: N, h; g
- .ORG $80507 w6 H) S* z# S
- Function: ;功能- @8 `# G2 ?8 U. z9 x4 D- ~% n8 D
- WUDI: ;无敌! l, q( Z0 C" ^8 i2 j6 {9 l
- LDA $6000,X
) D% y! ~/ U3 h4 Y3 x9 ] - AND #$08 ;开关判断" N8 x- g' [7 |2 X: E3 o
- BEQ LIFE6 k9 N2 h/ T8 N8 G4 n! C- F
- LDA #$05* I L% Z/ i0 _
- STA $05DC,X ;无敌锁定+ [! d' g F1 ^ v
- LIFE: ;生命7 {: a- V' y, a2 y8 p4 _5 k/ S
- LDA $6000,X- a& q+ W2 A' z( Y. D7 v
- AND #$04 ;开关判断
- L d5 q- B+ Y4 D" T6 h - BEQ FUNRTS
4 h) L/ M; B3 ]" k% ]! B5 X - LDA #$05
+ } t$ s9 }. V$ E2 D - STA $1C,X ;生命赋值3 h/ Q7 ]6 H( n" _
- FUNRTS:
& @6 S. A5 Y. t& [$ ? - RTS
# g0 \, {( `8 Z6 E -
* q: r, c5 B: u4 u/ q- o$ ~ - Weapon: ;武器切换. x3 n/ N% U5 R& H7 L! K
- LDA pause ;暂停状态判断
/ N& ^3 f/ k @) Z" [/ ^ - BNE WEARTS
% R7 r. K* F- ]& O. C: _ - LDA $04,X
9 W2 C$ K% U7 V- r1 I7 z - CMP #$20 ;选择键判断
0 j3 J; q# j2 D' [, [; H# m9 ] - BNE WEARTS1 @; ^% c$ d! D
- LDA $12,X" Y- I: H7 |5 \) P5 g( q' h- V" ^' P
- CMP #$03 ;武器值判断" h. K/ c3 [$ ~+ U
- BCC WEAINC
2 k! Z+ g, M: F* Z - LDA #$FF
* @4 |, Y- F4 b$ I) d - STA $12,X ;武器重置
6 r2 M' l1 O; i1 e' d, V - WEAINC:
' L3 W& k9 |1 z0 X - INC $12,X ;武器增加
, X% r3 f4 Q4 @' P% ~- L4 k2 D -
' f4 H( I: `4 m) \ - WEARTS:
* u. m. N; H/ ` g' Y+ g# s( H - RTS( s F; w1 F2 b+ E
- $ H( J8 e0 O t% q2 g2 |& ~4 k8 x
- Power: ;威力" G- A" a W$ O1 D% F7 C- N
- LDA pause ;暂停状态判断
4 V/ R) f" m$ Z6 ?; R - BEQ SPERTS
9 u! v2 Q! Z$ j, i% D% o - BUT_LEFT:
+ [- K- m/ `9 p6 n% h* v+ A - LDA $04,X
/ l; f/ e0 Y$ r% \6 o - CMP #$02 ;左按键判断
8 y' }1 }+ W9 [. {5 { - BNE BUT_RIGHT
& Y& d) ]4 ~9 T- A5 K7 A - LDA $88,X
% A, c# l% ]9 T! _ - CMP #$00 ;威力判断2 @# W O* N0 E. r; d
- BEQ SPERTS
3 |0 g# t9 u) R: j - SPEDEC6 l; y5 N+ @5 Y1 v+ U
- LDA $88,X ;读取武器值4 \9 i6 T" r, \4 s4 N
- SEC/ ^- R% {8 v9 D/ Z2 X5 ? z4 M& Z0 ?
- SBC #$08. O" z& ]* o( W+ Z5 ?. Z5 g- |, f* O/ ~6 T
- STA $88,X ;威力减小. c2 o! h& \9 R/ t$ v4 i5 Q( L
- BUT_RIGHT:" X# }1 G% P; f K1 t6 D& O6 C
- LDA $04,X
- @! I7 }; {. A' B - CMP #$01 ;右按键判断5 t6 }- K$ k, T: d
- BNE SPERTS
: C& c, z( E! q; _2 x - LDA $88,X
/ N$ I/ n) s$ ?4 ]- P- N* c4 } - CMP #$10 ;威力判断7 i- X; l( m4 f6 Z8 N; u2 `
- BEQ SPERTS
* [4 M1 M( H( C' I, U9 e- k - SPEINC:
+ }. _3 s: }' \+ I! B - LDA $88,X ;读取武器值9 }% E. K: B% { F8 u; q+ U5 d0 w" }
- CLC" } U% ]3 r$ J" j/ Z
- ADC #$08$ d$ k H* q! u; L5 H. q
- STA $88,X ;威力增大) W% N, E9 h% m* ?6 F
-
9 t, O9 D* Z4 T0 s - SPERTS:
. F' r. i( a' X( N; I+ J - RTS
, [; \4 g6 V' B6 W% ^, p4 q
" s! N+ C% F# ?) e) [* i) A$ A9 I- BULLET_NUM: ;子弹数目
( p9 q# f$ b+ C4 B" r - LDA pause ;暂停状态判断1 g. d `8 b' A/ j
- BEQ BULRTS0 i/ Y( O j! j: i9 v! S
- CPX #$00 ;主机玩家判断
- Z6 A+ H) L0 B, L+ i/ H& ~ - BNE BULRTS
$ D2 l9 ?, h& c% d$ J - LDA $04,X ;主机玩家判断! y+ S( L# w& j* _
- AND #$80 ;按键A比较% A, T* |$ |! d z! E! a* M; x
- BEQ BULRTS1 Y; d6 d9 ]" y0 i) a Y
- LDA $87 ;状态判断- t' g/ d* p$ ?+ K2 C8 x: l( }" ]
- BEQ BUL_27 W5 x* j; `: d
- BUL_1:0 y7 W& I* M% K& i" J. V1 A
- LDA #$00
1 e" a8 C% {9 g* x: b( a! G. I3 E - STA $87 ;1发子弹& ` B* C* e \ [
- BEQ BULRTS
8 H; B) V: ]$ X, n: V) \ - BUL_2:6 P! z- K+ d8 c& n8 A: K0 P+ K
- LDA #$01/ E0 p6 Q4 m- M5 ^ B. w1 o# Y' |1 [) w
- STA $87 ;2发子弹
' c! N1 f) f# j5 E: {8 F( { - * B4 s" U, u' M. _: W
- BULRTS:0 o" Q& M" x8 I E
- RTS
! B H2 ]4 Z$ U) c& D% k, F) I- U -
6 d% Q- a, T8 f5 V" C
" M! O7 D3 U7 i1 L- BULLET:, h# ]) Q6 n' H. k
- LDA pause ;判断暂停状态) b0 F/ k r8 x( R t0 C7 V8 E
- BEQ BULLETRTS- ]! B+ S1 _! I* f r7 d% B* X
- LDA $04,X
3 ?) V8 V7 X1 h6 J w - CMP #$40 ;按键B比较% v! c8 W& F. N! |0 e: b/ A
- BNE BULLETRTS) F: X. j1 l6 k) @' v
- LDA $6002,X ;读取副武器/ ?3 i) D/ Y+ J6 z" }+ Q% m
- CMP #$036 H0 X5 c) d! H& K. U/ n
- BCC BULLETADD
! ^& o% O7 {& a8 D - LDA #$FF8 ?8 O9 D- |* J5 G+ b' v5 ?
- STA $6002,X
7 r. w! C2 H) { - BULLETADD:
+ Q# t4 ?& g( ^8 ]1 f* O - INC $6002,X
4 v/ P0 _& u' d0 o -
: }% F0 H$ q9 H# @5 t - BULLETRTS:
1 f' r; \6 d9 U g( T" U- u- o3 G - LDA $6002,X
: K4 H- q/ F$ _ O - TAY6 Z5 G- H( Z& A7 E+ v) `, w" Q
- LDA BULLET_DATA,Y
3 t! j& F; s1 L0 t - STA $6004,X ;写入副武器数据" }( \- u" Q" d
- RTS. N5 s1 b5 K8 Q! B
- / S" l5 q# V: L( V( t
- # y$ `6 p7 V0 Y! w1 Y+ t2 _
- BULLET_DATA:
1 P4 B( F, T' S- u; {% e4 v: e - .BYTE $06,$02,$03,$04
9 U J3 A$ [6 }6 K. w -
' }' [5 L1 B/ Q% P! R& f H8 z -
8 V. X. Y7 @2 g; p - : R1 Y1 W7 N8 e, `! A, K& ^" @
- KEY_OPERATE: ;按键开关操作' y* O! n) V" p9 ^$ X( C: }% H9 g
- data_protect: ;数据保护) A5 {! a& B% g( Z# z
- PHA
7 J1 Y9 F" J* d5 O - TXA
! V# z- I K+ G# h6 H3 m - PHA! |1 t4 l, q$ [& u- f
- TYA: n0 X e [) Z/ e V1 q5 \' a& R
- PHA
: r5 u& i7 ~2 [% Y - ( Q7 w* f/ b$ r9 b0 R8 o) y
- FLAG_INI: ;开关标志初始化2 O( U& d9 W* M* y7 ?, a
- - Z% p$ l; W! V, @: t; u
- LDA $600F
& h* L9 p1 F7 m+ s - CMP #$01: v+ K# l- {* I# i
- BEQ pause_cmp( _; F. W/ x# s5 j
- LDA #$00) Z+ O8 z9 t, j% {) V9 K- F
- STA $6000
. W* [# L1 i: d - STA $6001 L! ~ F/ T' ^: A
- STA $6002, n0 H9 p* c' m3 `5 W) y
- STA $6003
/ z* d; ~& v& N% ] - STA $6004) E% [- @/ L7 C/ f7 S6 F5 ]: H, H
- STA $6005" |" j4 U$ F, @' G3 D
- LDA #$01! r( p* w7 _7 |) d# Z w
- STA $600F
8 g! p0 F/ Z! W& Z& _: G& {* A - 3 m& ]& j: h: h5 s
- pause_cmp: ;判断暂停状态! T6 t! e' C! C3 g& F8 T4 F% ?2 y) t
- LDA pause& p" [2 I& G. E- \( `/ w* f9 q
- CMP #$01 ;判断暂停状态
; j5 P8 u! c# x& i* i7 D - BEQ button_press! h S( g/ P# d1 w R- V, t% m
- PLA8 A9 z. F% m$ X* U# w
- TAY6 O4 U4 I) i' A a
- PLA7 _" l" ~+ k: z! B# @5 o- R, X) X
- TAX
' r' B2 k- u: i" O! K! J - PLA
" T8 E2 E7 S7 H' |9 K - RTS# L6 F L! m& V/ B7 W/ ^' A. J
7 Z9 f. `$ P& a( r, F- button_press: ;按压操作# @8 Q" p2 p( ~5 s4 D; j, ^6 h
- ini_Y:
% H4 Z6 m7 E' b - LDY #$00+ y: M% X5 J9 W" ]1 a
- button_cmp:7 l* h' ^- P$ m) ?- P! B1 b
- LDA button,X
8 @2 Z" n$ y! U+ l3 O; x( N - CMP ora_data,Y+ ?' z2 I4 J. `: x* y
- BNE count_Y_cmp; A/ B2 O; u6 T, j7 o3 ?3 b1 D
- flag_cmp:/ a: }' ?$ j: M" N' l
- LDA flag,X
) {- |% a" s. }! f - AND ora_data,Y
9 q) f3 r6 d$ x0 t$ Q! k2 Z9 Q/ } - BNE flag_and
1 F5 w: E! V) X" s# `7 S8 S) V - flag_ora:
, I% g9 z$ i R - LDA flag,X( ]; Y/ Y. K7 S9 `4 v
- ORA ora_data,Y
& D9 ~ e, s9 h* G% g; D5 h+ F( ^ - STA flag,X$ x! W0 P3 T5 `9 y9 v b1 A! o
- BNE count_Y_cmp
$ J4 m( R/ y' {/ C7 H" k; | - flag_and:
$ t2 s2 |( H# N) C- W0 `+ ^ - LDA flag,X5 `8 Z% Z7 v/ \
- AND and_data,Y
* }) ^) v0 Q8 ?: s - STA flag,X& B( }0 K$ g8 q/ j. u/ A
- count_Y_cmp:/ e. K$ m, V: q* i7 n% I
- INY
/ c2 m) p( r5 t6 A, A - CPY #$08
, {4 m8 T: E# z2 b& H% X - BCC button_cmp J' O+ G4 _9 G+ M
- ) E& {, X3 |- ^6 b. F9 c
- data_extract: ;数据恢复
- y( S6 _/ J9 i2 l - PLA
4 J: y, x# i! O2 F, k4 i7 p& O - TAY
* N5 l/ y7 Y- c% q - PLA1 S3 U+ t1 j8 v! b2 e3 I3 b9 W: S) ?
- TAX l- c- I0 m6 b; k+ k
- PLA _. u' w3 U/ y, s7 n5 F# d
- - w; o7 \6 E; y; W9 a: i
- return:
, ~+ _! @0 g0 J6 Z, l# j6 V - RTS
6 i" n, S) Q o+ i+ x -
6 d! }7 J% p6 ?; l) t' F - ora_data: ;按键相或数据
( }' E7 Z" H3 `# ]! b M - .BYTE $08,$04,$02,$01,$80,$40,$20,$10# ]- l2 n8 @& ]
- and_data: ;按键相与数据
5 k! d% Z( x# ^2 | - .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF
' {* y4 x6 N, Q( n -
; l+ x" S% E \5 _ - - e* F# ]- E5 x& ]8 }/ T
-
: n! `, m8 W/ c- X% l - ; s1 I4 Y# q& l
- ) z9 U: c/ A1 `$ c
- 3 r8 O* p# X7 Y6 b5 a
- " H5 [* u& _ _2 Y1 h9 ~ \+ P
6 i. A+ P2 T* @- a. L) G- # Z* D# d* _) Q8 ?
- .ORG $C264 ;自定义的MAPPER2切页程序
3 W8 v7 P# P! S# G+ Q ? - PHA; A, A; a% L' M5 e
- TXA
H2 a- F" @0 S5 G - PHA5 {6 ~, N+ t+ ]$ c
- LDA $00668 s/ k% w: I% D4 ^ B
- BNE ADDRC280" @! @: q3 ?' `5 y4 w
- LDA #$075 i$ O9 U+ X/ r$ B8 Z
- LDX #$031 i- k% Q% N1 A
- JSR $CD9B ;自带的切bank方法
- V. X- g) \8 |* C2 M) X. r! F - PLA% A( {9 S& I# ^$ A0 p y- y+ S
- TAX4 {$ N" M* M; ^
- PLA9 d% {+ h! L8 f+ v! a
- JSR $8000
! A- v: @& U7 Y' X+ `5 X - LDA #$06
! E, ]1 z* |! c% A8 u8 u - LDX #$03
- s7 y5 q; g/ d& [: q# T* ?, ` - JSR $CD9B ;切回原该切得bank(可以不用)
4 i6 }( h( A6 d$ O V# d - RTS
) H, D$ u6 D( o2 o5 U* b) m) R - ADDRC280:
; D( k, F5 r, l1 P$ ^ - PLA
( u) E2 g* N" F0 G, @ - TAX
5 v' }# R3 e! a/ w1 M. k" Q- Y# p - PLA% e+ o1 X2 U: F, K
- RTS$ l7 [, ?$ B Y& H# e
-
, F* g8 d$ @) F& Z. z! L4 ` -
# W9 a# T% f4 D! M+ P/ d - ;[FC][最终任务PPU][END]0 w" s' [7 J% u" F5 p
- .ORG $C056 ;跳转到PPU重写程序3 T5 i, k3 R4 {6 N: @) y; I6 W
- JSR $7000: t* m% c6 r+ _; p% y& g
) ^' @ c7 }, S9 ^7 k4 I% L- .ORG $CEBF
) {1 h: x" g( ] - JSR STAGE_DATA_WRITE ;跳转到关卡数据写入
% n" Z$ t+ d' E8 z, J; m9 g - # F. g$ s, @$ x( }' Q
- .ORG $E460
8 u! Q3 _( @5 E8 r& p5 I# s1 J - JSR BULLET_DATA_WRITE ;跳转到副武器数据写入
# h- [+ c: Z! Y' I+ M/ E P7 I4 P -
. h" C1 A$ v: g" F: { - .ORG $71F0
3 B# c) J7 Y7 w2 Z; y! f - STAGE_DATA_WRITE:
H; I/ M' G7 W! f6 |9 u - LDA $60109 i, u/ K1 O u: O0 M6 O
- STA $1E ;关卡写入
" ?: c! B- N4 e3 }8 h - LDA #$00, W) n1 E. [$ a; H; a& B. h) x
- RTS7 U9 Z( C2 _# |* h; w# d1 T7 J) E* o7 O
- .ORG $71C0
* @/ T& C; Q, N S - BULLET_DATA_WRITE: ;副武器数据写入/ {9 W" @: C- t/ a1 E A
- CPX #$0E: Q) d, l+ c6 c; @, w/ C5 U
- BCS P2_BUL* M3 ~" m' _' o9 _/ r
- P1_BUL:* @$ }! o6 a& M7 {& g0 N
- LDA $6004
2 c0 i. X) ~$ J: j7 ? - JSR $D7D0 ;P1副武器数据写入) X( S" [1 C4 I% M% A
- RTS; I- e) x% z) @' u: d+ i6 U
- P2_BUL:1 P# {# g) `4 c$ a3 V! R
- LDA $6005. r5 ^! w) W% ~' B& \. \' z* [
- JSR $D7D0 ;P2副武器数据写入
& C$ q2 F# G+ k/ I' t3 n - RTS
; G8 |2 H; G* v; e7 d - 5 A+ R8 a* X; S5 n" ]* \3 f/ t2 D
- 1 H6 W# E$ r& Q
- .ORG $7000. y# A2 m3 p4 f! \+ m+ P6 ?) w
-
7 ?) {) ~3 O9 P4 [# ~( E+ c - STY $4014 ;补上覆盖的精灵写入指令9 @( Y4 ?: ?0 g9 s% g8 z- ^
- PHA
0 i+ o+ q8 O1 y: a; c - TXA B+ b. H9 L1 K. m& V. j! J; v1 A
- PHA
! X' C6 R! |2 n+ |- H - TYA
( t4 Y# \. R- M; [ - PHA6 Y% r' [) ` U
- LDA $0C# u k9 u4 J! e" l( R
- CMP #$01 ;比较是否为标题画面
8 j- m. d/ h' ~0 [$ s - BEQ PPU_STAGE3 L1 N, o# k% {
- PLA* q' F6 L0 c% w9 b
- TAY/ B; C# Z6 i5 O* w5 g' P4 r
- PLA+ ~8 ~ Q7 V4 R4 ^' M5 t1 m% K
- TAX
- P* h+ u% n7 k4 y, K4 Y - PLA! G5 V5 h% ]% _
- RTS* h6 H4 T; ?+ Y) |
- PPU_STAGE: ;STAGE显示程序
2 V7 F" D% ]. D6 F/ Z g - LDA PPU_ADDR_DATA' L% n, }: \0 l% A" g8 o
- STA $2006
" }: U$ `, u" Z0 ^/ P - LDA PPU_ADDR_DATA+1
6 s1 A- U1 B( Z& |' I7 s" O' C0 b% U4 a - STA $2006 ;坐标设置
8 F+ M, l/ G- w% R% a - LDX #$005 T1 z. J0 ]$ O& G1 w) l
- PPU_STAGE_WROTE: ;写入STAGE字模( B: d1 t. N5 f/ Y/ t2 q
- LDA STAGE_DATA,X
8 f, {# k2 ?0 r$ n - STA $2007, j8 l; v. L. r" U. u6 Z
- INX
}7 H2 i- ^) ^6 x. S$ j5 s - CPX #$06
Q* K; U9 C0 l2 u - BCC PPU_STAGE_WROTE$ s' t8 V1 `+ m6 d
- LDA $6010. Y! ~/ Q3 W. n6 }+ C S
- CMP #$FF ;关卡数据初始化条件判断
) Q% |& k2 d$ v+ [- {2 k - BNE KEY_B
2 Y$ v. O$ s x( g! q% a - LDA #$00
& M$ r, z4 x4 _! F7 q w4 a - STA $6010 ;关卡数据初始化8 }, c3 c* w) F. O/ \( \ W. V
- KEY_B: ;关卡减少
$ p0 d/ _* D8 V9 a- W3 h4 i5 { - LDA $04+ v* V2 T( V- B. \
- AND #$42 ;按键B或左减关
& \1 K% |; q6 J! o! p( w8 h+ j - BEQ KEY_A: X. e1 S0 u$ O; S
- LDA $60103 ~; M" p# d4 ]
- CMP #$00 ;关卡比较) ]8 t5 l! w8 k# V4 ~) S
- BEQ KEY_A0 N& H, ^8 t! D3 j. \: _
- DEC $6010 ;减关
; U) _6 F. X* U; y" q% | - KEY_A: ;关卡增加
: r9 W, C- R7 \9 P. w# T4 C - LDA $04
5 \+ G5 ?7 z! F" i - AND #$81 ;按键A或右加关) i* p. T( P S/ b, z/ c
- BEQ PPU_NUM_WRITE
6 t1 c0 K0 p! {0 V" q/ x3 G( b7 R+ V - LDA $6010* U6 l$ H( X1 e/ p: a! t( A( D
- CMP #$04 ;关卡比较
& }( \, x6 ]! W+ V/ A - BEQ PPU_NUM_WRITE8 \ Y0 ?- W) }+ t/ J! r4 ^" P
- INC $6010 ;加关
& b& p( n% r5 ~& w, F2 J, w - PPU_NUM_WRITE:
8 X) c- `: D6 A% ~3 l" F* v. D - LDA $6010
0 X# i; R7 O& v8 [1 Z" t - TAX
, K+ Q7 V5 a+ D7 V% {* b - LDA STAGE_NUM,X ;写入数字
: a) b: Y# r8 g0 K; G2 @ - STA $20079 r s5 ~& |9 F0 K7 O) k3 B
- PPU_RTS:5 E- k E8 J! |* _2 {* a: t
- PLA" ]0 M( W$ N3 ]7 G& Y
- TAY
4 W9 d/ ?0 z8 e& f% ^ w$ p5 b; @ - PLA, A5 |$ e: b# Y: L! w% E
- TAX! B: |/ g2 x& w3 W+ Z# _4 W/ ], m7 j i
- PLA2 V! T: T. C/ H v
- RTS# m7 l6 e1 y- t! Y4 n
-
: h: G+ j* J; i - * _$ E' `$ B( q
- STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据
: Y/ [% x7 K- Z; {4 n - .BYTE $EC,$ED,$DA,$E0,$DE,004 r0 k% V) U% _: x1 l% i
- STAGE_NUM: ;关卡数字1,2,3,4,5字模数据' H$ V2 y/ k" \
- .BYTE $D1,$D2,$D3,$D4,$D57 {' E! ]: d! @: _$ c, e7 O
-
4 A( n/ N3 A) R/ k, q+ G6 _2 q% _ - PPU_ADDR_DATA:
4 ^* L% L2 d* ] A' M4 w - .BYTE $23,$0C/ Y8 y5 e3 y: o- P: _
-
! v/ }' X! V$ f: {8 d% x
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
1
查看全部评分
-
|