|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑
4 {& ?3 ^$ T* t$ i; R0 Y- [5 P
: {- ]7 u" |/ H [FC][最终任务][END选关]! L; |$ B# H0 Y- K
1 ^* w5 l8 T; x% s" V6 \( @2 e: v
时间:2017.3.29& U4 r! y9 ~7 T7 \6 V5 m, k
作者:FlameCyclone. t# t6 b! L/ |9 R8 k& J& V5 A7 m
内容:+ V* `( S Q$ a, @' P- M+ v D6 p
1.关卡选择: 标题时,左或B减,右或A加(1-5关);3 W+ M2 `" ~9 F& I' `5 d" n& X4 I, \8 q
2.无敌锁定: 暂停后,按上键切换;3 L4 W: g( W' e0 x+ K2 c; T
3.生命加满: 暂停后,按下键切换;
; ~: t! S) Q2 c" |, U. }2 @" I 4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);" ~0 T4 b" Z8 f% }) U) _
5.子弹切换: 非暂停,选择键切换(普通,W,L,B);+ N8 \4 V2 r; e! Z' i2 O- j
6.B弹数量: 暂停后,按A键切换(1个或2个);
6 f {5 p( _3 F8 X7 R% Q, @ 7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;
; S& m, q7 N* E- ^( L/ L5 p& z2 D7 v5 M3 h( r3 v

% L- G! k4 F9 k. C" _ 8 L' {% T, R5 K/ g

( w# P" o1 Y( S9 M/ R3 S
8 i7 @# n/ g$ w" S* y! P
3 N1 [ i7 j7 E, T. L! @
& {$ A2 P w! ~ C4 F/ C+ DFlameCyclone.ys168.com7 ~: N9 ~& W0 x
www.nesbbs.com- ;[FC][最终任务KEY][END]( k+ N5 r8 i6 W+ |
- button = $04 ;单次按键
& n( D1 n$ @" N - flag = $6000 ;功能开关标志
; p# s& u8 ` T - pause = $000E ;暂停地址
. d. e0 y N4 u" d8 ]9 u - & Y+ W* i C! Z& z$ Q
- .ORG $8000+ K+ C9 m. i5 x" t' q( h
- LDY #$08 ;自带的按键程序1 V6 W) ~8 r1 t: T B+ m
- ADDR8002: R' G- \5 T8 {
- LDA $4016,X
7 b" d: w3 Y1 z& Y( K( g6 o - LSR
% r, ^2 i3 O7 v) d! e - ROL $00219 J! P/ \" y9 d* T7 t1 E: U) i1 M
- LSR
8 M7 B. T& _, m- G/ Y - ROL $0029
* k3 p' w F3 f - DEY
0 s) b0 b8 L, j$ v V - BNE $8002
8 C/ v. O" u* S7 L* w) V - LDA $0021% y* N( l# N/ [. P7 @2 y, z) A
- ORA $0029# t7 N( @" ], c# |
- STA $0021! d$ O* K4 y* m; w
- LDA $0020
% }& D A& Z* B0 ] - AND $0021
+ C# n& z4 a$ u p - STA $0020+ S% w! F% C. I5 k0 N5 y
- LDA $06,X7 R, b3 P/ W2 o. r; a, x0 ~
- EOR $00205 A0 a6 @) q2 v4 e5 f% u( Y
- AND $0020
' B- {# G$ k# o - STA $04,X
9 X' v4 ~/ N9 e - LDA $0020, X) Z( ^) ^+ _+ E( f/ S9 j
- STA $06,X/ v5 T! x0 N4 a3 o5 e U( Y" X
- JSR KEY_OPERATE
9 V Y3 R; e5 o: m4 V' H2 B - JSR Function ;功能调用( w& Q& k3 c$ Q* N4 m
- JSR Weapon ;武器切换调用- y; A5 I9 E: U5 r* \+ O& i! C
- JSR Power ;威力调用
" y9 _9 J/ c0 k2 P2 F - JSR BULLET_NUM ;子弹数目+ s* j4 n2 |. ]! d5 _1 }
- JSR BULLET ;副武器类型) K' S* M4 ]! D4 G
- RTS
0 a0 c$ G c0 b -
, G. r: f; ~# }' K: T2 r5 X* x - 5 u$ }% Z- m- U y
- . j/ U+ ~. Q* H$ F5 o
- .ORG $8050
6 X" Z! o$ Y& p) y4 S( O - Function: ;功能: i1 ?# G3 H2 O4 S
- WUDI: ;无敌
7 f5 Y3 @* @+ F3 o - LDA $6000,X7 H4 D i' j0 a( g) A6 z, w
- AND #$08 ;开关判断' N1 R% E" E* M r6 M
- BEQ LIFE
/ ~6 V z f/ r - LDA #$057 a" B# H9 K0 z( }
- STA $05DC,X ;无敌锁定" L% t/ L! K+ ?
- LIFE: ;生命& c6 W& }# `( O* q: y7 z; U$ X# c7 E+ n
- LDA $6000,X B5 B, d; |$ [' d
- AND #$04 ;开关判断
! p* n$ o. X _$ |( X N# {2 `& r - BEQ FUNRTS; j% a2 j8 {# X3 K6 K* D1 F) U( e
- LDA #$05
2 D- W- o7 J3 A- M, u$ V - STA $1C,X ;生命赋值
3 f6 V% x6 ~& `, w- F- S' u/ `% g$ p4 ^ - FUNRTS:1 X/ C8 n4 B3 `3 B1 M2 j+ T1 H
- RTS
- Q* f$ d. ~( G -
& {6 R/ Z; K; x* [% n) D - Weapon: ;武器切换
M$ x& T. S$ D1 r - LDA pause ;暂停状态判断$ T" z3 w" F9 @5 e/ W. R
- BNE WEARTS4 n# _2 s+ q8 d: @, C& f& x
- LDA $04,X" r+ F. Y1 o; c2 j8 j3 Z
- CMP #$20 ;选择键判断
: n: X. c$ w, h- m - BNE WEARTS
2 l. h* m3 m8 U% d7 k* J - LDA $12,X6 \: j5 r2 U# y. \+ g
- CMP #$03 ;武器值判断% n, W' p9 ~8 ~6 V
- BCC WEAINC
% V; j8 H2 @# {% q) | {6 n: s) V. D - LDA #$FF
0 i. v% a" g' ] P0 W - STA $12,X ;武器重置
3 {, p+ x3 D* B, j8 b- ? - WEAINC:
, X+ V- p! F7 J/ b4 U5 n% c - INC $12,X ;武器增加
S3 I T% d# \# _. l -
3 [6 A" l1 T7 y3 V - WEARTS:
" r F1 \+ l. q9 i/ n3 q$ ` - RTS
6 C4 z) }7 U8 W- ? -
) |8 @ U: f3 Z& G4 t5 N7 c - Power: ;威力
! L8 A: Y" j9 x$ j i& r6 y - LDA pause ;暂停状态判断: _& G& n3 D1 e( w* v4 X+ c9 b0 M
- BEQ SPERTS
5 z4 c4 s. I1 q9 t3 u) X2 G - BUT_LEFT:
. _3 J8 p7 K+ Z8 {# ] - LDA $04,X
3 A- g0 M9 Z3 [0 S5 h - CMP #$02 ;左按键判断# d& ~& j' e7 i
- BNE BUT_RIGHT
# }# n$ Z5 _6 x$ W3 W - LDA $88,X
/ d6 W4 d! e9 o. I8 S0 P8 z. K - CMP #$00 ;威力判断, _9 E; c7 s2 w Y& x7 c
- BEQ SPERTS! `7 ~0 y6 ~! C: Y0 \/ l( F
- SPEDEC
) H& l7 B6 d7 _6 o8 i - LDA $88,X ;读取武器值
. d& a5 @* _' H: Y" Q! N5 R$ w - SEC
! d/ [6 O) r, }* ^ O( b - SBC #$08: n. f0 K# W" J' w. v
- STA $88,X ;威力减小0 [: v, q8 R$ ~$ V+ ~" C
- BUT_RIGHT:
3 |. T; @7 Y8 M0 V+ Y - LDA $04,X
2 q( B- q7 m) ]" y" k) s - CMP #$01 ;右按键判断% N: r8 }% d) c, I% n
- BNE SPERTS& j+ i E4 f" V( Z" T
- LDA $88,X
8 s9 A L4 m# Q - CMP #$10 ;威力判断% m( t4 P3 e/ \0 M7 F3 g2 o
- BEQ SPERTS
* x: g( G7 O; Q2 b" b4 I, W* O - SPEINC:
. z) b, S- A1 n8 U' g - LDA $88,X ;读取武器值
/ m, h* M( z. ?0 y - CLC. p7 c" V: F. d: }2 D1 ^. P+ t
- ADC #$087 O. _" Y8 v; @& n! A" h0 t; e3 _
- STA $88,X ;威力增大; i4 m2 Y( w* E4 A$ x
- . V2 R- T8 D, s# D$ c1 S2 p, i7 [
- SPERTS:
7 s9 r, R8 z6 J5 o: `/ u - RTS
9 ^) c4 U6 e' N; j# r - 4 D$ g# `1 w5 z9 E
- BULLET_NUM: ;子弹数目* Y2 V8 I( f# J. M6 e
- LDA pause ;暂停状态判断6 [: u+ a1 r2 N5 k( b. H r. i
- BEQ BULRTS b! }: z9 K* e/ s( p
- CPX #$00 ;主机玩家判断/ U# V4 ?5 y9 B3 x" v' C W
- BNE BULRTS
) Q( p4 \4 @9 H1 g - LDA $04,X ;主机玩家判断
/ u D n2 Y. {( C0 u- c - AND #$80 ;按键A比较
' e2 z& d0 V$ j" M - BEQ BULRTS
5 P# S- w5 K0 r8 ] - LDA $87 ;状态判断
( _6 X u2 J- u* q, G# S - BEQ BUL_2# s9 z, T5 V( h- g. `; J
- BUL_1:- h: P' U% L/ {) \# O& n( e6 T% @
- LDA #$001 ~) X) K8 v; p8 S4 i
- STA $87 ;1发子弹4 b2 }9 P3 y: B5 F
- BEQ BULRTS
! ?* s2 d( G& g& N2 z3 B& O, J - BUL_2: b } K: z" v- ]$ ^& c( Y; l
- LDA #$01: a$ w+ @7 c0 |: j" f
- STA $87 ;2发子弹
. e4 L2 Y. `: r0 Q M: c -
: t' |& W4 g# n$ r% Q9 Q - BULRTS:
& o! y, @; o" J1 N8 O D. n - RTS
0 ^. j' o- a$ Z -
! n; U! h* `6 c* t+ Y
7 \; _( n! {/ t7 A5 T6 b/ ]( e- BULLET:
+ ^8 O) C. Z9 [1 k. M - LDA pause ;判断暂停状态5 W! p' D- w- t- i5 ]+ ^- K9 Y, |
- BEQ BULLETRTS" o( k' n& L8 f5 D
- LDA $04,X
/ A$ h$ y P3 }- E5 L - CMP #$40 ;按键B比较
- r' {1 H( o- g; ?$ t - BNE BULLETRTS
9 b. J# `+ l( n& Q! q0 H1 l* L - LDA $6002,X ;读取副武器
* q5 Y" T3 i& _ u4 d - CMP #$03
0 ?8 Y, g3 ^" ^ - BCC BULLETADD" p. {6 U7 ?2 L
- LDA #$FF
6 H8 Y }7 ]- o0 M; Q p2 j$ } - STA $6002,X
' ?/ R v- Q7 Z. _% u. E R4 J - BULLETADD:
& \& x1 `' Q/ f( b - INC $6002,X/ G" M5 s9 f! [/ P* J0 a( e
-
: u3 J! _, J4 ]( r/ Q - BULLETRTS:
X5 Q9 ^6 B& p$ I - LDA $6002,X
0 Q+ }6 h# J# ?# ~& I - TAY
5 h5 z; ?7 _0 x. t" \( {$ v - LDA BULLET_DATA,Y0 x5 V0 h# z% g) @+ c
- STA $6004,X ;写入副武器数据
: t( z/ t$ s0 W7 H% h; D - RTS
# D- D" ^4 v, t5 `3 E2 H - 8 p1 r. }3 e% Z' y% E4 q
- , Q" g1 ~& P+ y9 i: M
- BULLET_DATA:. {' B# O. L' a3 W' k+ t' b* V Q
- .BYTE $06,$02,$03,$04
$ Y' w" Q8 `6 Y$ c2 l! i - ! {* V x& e% r3 W
- + R6 a/ P e8 y! Q
- 6 C1 b+ m1 D; W; `2 \! L+ ^
- KEY_OPERATE: ;按键开关操作# h E. Q ?8 |) B% |( I
- data_protect: ;数据保护7 A0 c' h% u. [/ \- D; O8 R
- PHA
& l3 x( K" z# r% M5 A2 U - TXA
5 @- q# O6 _: u% O - PHA
i8 d+ s& O# h c$ j& v0 f - TYA+ K' Z% A/ F: k+ ], \
- PHA5 q) e8 D+ Q- n0 w1 P1 ]
+ i) ]% h0 T$ F- FLAG_INI: ;开关标志初始化+ x2 \; m" y* q
. o5 i3 P7 `1 I: P) K% B- LDA $600F
) h4 E" }9 {- n; Q& v7 Y" M; N2 a - CMP #$01" }7 T# S+ g2 A* o \% R5 v
- BEQ pause_cmp
; p' w( W% y& g/ k5 s; W) [ - LDA #$00
+ h9 g9 N+ m+ N) A - STA $6000! @6 f" C- g6 w0 B7 `% ^8 B, |
- STA $6001
$ h' |/ T2 A/ |. d% G& G7 r - STA $6002
% f- C# @ i- V w" Z6 U9 ~5 G s - STA $6003
8 ^0 D& d# L1 z$ t C+ Q& D - STA $6004, O, f* s, T8 {$ a6 T
- STA $6005
) p Y/ R2 I/ `. A: j# P; N - LDA #$01
+ m( Z) V" N4 @5 r, Y2 \ - STA $600F
8 i: O" X Z2 @6 x - ' \4 t) O, |3 Y$ q
- pause_cmp: ;判断暂停状态 I) L( L& x7 h: e e' y( {
- LDA pause
; I' |6 P8 X# I2 V - CMP #$01 ;判断暂停状态
, T' A+ M; ~( d) ] E - BEQ button_press
0 \' Z; y( a6 o J% C3 w - PLA
$ _% y1 G# s3 {% g, ` - TAY
$ @& D% [1 [4 J% W$ H - PLA
- b" P5 S; w2 }! W - TAX
+ V# u* P5 V$ y1 b% M - PLA
' p1 K+ X# f9 B; e7 O& H/ T1 ^ - RTS0 r# \) U& `3 B$ X1 w
- ( V) b5 {7 ?* R1 n+ H7 X7 Z
- button_press: ;按压操作6 V* U- N3 h- D8 W
- ini_Y:
8 C/ m% i8 V. R - LDY #$00
+ M, e9 f$ h. U6 E. G) i3 W - button_cmp:
; E& F3 V2 U1 k - LDA button,X
( T' f- W. S1 M# Q$ \ - CMP ora_data,Y
9 L1 R2 a- c2 |3 S: k1 u& M - BNE count_Y_cmp* [* q7 x1 g2 | _
- flag_cmp:, i# \1 B$ y9 r+ w
- LDA flag,X% z. |! S( v- x5 u9 c$ u
- AND ora_data,Y; l' I' ~5 U, m7 |2 q+ {
- BNE flag_and3 F% c$ R \. f3 g' y6 T; q
- flag_ora:3 S; H2 `2 d6 w( B# z; M& ]
- LDA flag,X
4 E; T* Q" J. Z( l/ W* G - ORA ora_data,Y- r# c3 y0 G" _4 e+ U, S' j
- STA flag,X$ V2 H% `% A3 s3 F
- BNE count_Y_cmp# ?+ n+ V+ i$ @9 ?
- flag_and:( c, l) g6 w+ S
- LDA flag,X' G- Z! i) d$ A+ ` Z
- AND and_data,Y
& ]( I8 q* O# z- k* T& m6 e - STA flag,X
" r6 u3 C( n6 s - count_Y_cmp:% C7 m3 H G, v. \5 s1 c* K( p
- INY
5 [2 x$ |/ B5 U5 n5 ` - CPY #$08* J* ^0 S% j% l& n) |
- BCC button_cmp) R, u: N; W: _
-
h$ ~# F' I; G - data_extract: ;数据恢复; Z$ ?9 g6 a- k
- PLA
7 \) U. |8 A- W7 \) g - TAY
. k" m5 R. A) j5 D - PLA5 x' E2 |$ y1 l& N
- TAX
$ J1 K$ s) ]7 \ - PLA
2 [. d3 Z8 ]5 u, A' f -
8 r1 }: ]6 I- X Y1 l - return:
3 K/ e7 k5 c5 t/ C; w+ c - RTS3 q! I# ^: m- P% \: b
- _3 P( A& G1 p& @( B
- ora_data: ;按键相或数据% q4 R" o$ m7 {* o+ m/ a6 M$ ?
- .BYTE $08,$04,$02,$01,$80,$40,$20,$10; f$ p! m- M- p/ R4 @/ R3 r
- and_data: ;按键相与数据7 h+ e' D6 I: D: [" x2 h
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF" o8 \' m/ f7 M3 r& x' \9 s
- * Q) E7 s- M& r% ?5 }
- $ E9 S1 i% g6 [/ x' v8 r. Q
- ( `/ U5 E1 a+ E
- & \0 a- ` D' m3 b& }4 R
-
n# O& O, x+ ?# ~ -
: @! c, p! [' \! f+ ?9 x8 c# X - 6 A! E& b. [2 k$ \
4 Z$ r6 G7 p0 x) G, [) z) X& A2 u- 7 ~" E) k% Y. Y. O \$ a- s8 t: [2 O$ Z
- .ORG $C264 ;自定义的MAPPER2切页程序1 w. z Q7 L' F) ?. c2 c3 R
- PHA( `5 Z. T3 e/ w: m$ y
- TXA; i6 `2 V1 _: v( E" n- h
- PHA' d% q' N) ?8 a$ i
- LDA $0066" B a8 H& `! B1 D8 [3 ~. B
- BNE ADDRC280" ^7 o, o8 X2 m/ X
- LDA #$07
. d! I! D+ n# \3 u( N - LDX #$03
& C; z; g, d. p! m* v4 H( Q - JSR $CD9B ;自带的切bank方法
, m! W& @$ c1 Y - PLA" Y* z( G( S! F k
- TAX
! R+ f8 g; ^" w% H - PLA0 p7 F3 W) P' w2 V3 q& ?
- JSR $8000
0 c0 a( g( }- Z( h* Q - LDA #$06. b9 S7 {. p6 F- i- b
- LDX #$036 Z' k& T4 S* y% W- y
- JSR $CD9B ;切回原该切得bank(可以不用)5 A: R& y$ n3 }; A) T. Y9 p% T& u* r
- RTS; h# t: w# N% N- S
- ADDRC280:5 U" w0 Q8 }6 Y1 L
- PLA- R" O- X: A( Z* ~
- TAX$ o. @9 Q5 k+ l5 H) t
- PLA. ?6 e- m9 L0 v) q0 |9 W
- RTS
) |. C) f" W& l7 C, ^1 \+ z1 R( D -
( E V: S. i8 |- [7 | - ; @7 f6 a, f& i9 ]1 t; c5 a
- ;[FC][最终任务PPU][END]
4 e3 r `) F+ r. z" W% J- x - .ORG $C056 ;跳转到PPU重写程序
* u" A: ?1 e2 l' m6 z' v - JSR $7000$ }$ U1 V" N5 \ I
- 8 F' F7 @, d3 o- W
- .ORG $CEBF' J2 Y4 O/ Q, o, O9 U% w" f
- JSR STAGE_DATA_WRITE ;跳转到关卡数据写入: O6 [. M, }# _) ]: a, g
-
6 Y+ `7 J+ m! F - .ORG $E460& I0 h6 N$ V& }
- JSR BULLET_DATA_WRITE ;跳转到副武器数据写入0 h# @$ Y5 w+ e% z% I- D
- ! s) b9 r& ~0 r5 g2 }. C, k
- .ORG $71F0 @( x: p+ k7 h- ? K$ P- P
- STAGE_DATA_WRITE:
3 u, z, \/ M7 V2 V2 M - LDA $60108 [0 u* V2 s- [; w- }! `
- STA $1E ;关卡写入
: N3 D6 t8 b, t - LDA #$00
1 L( V) ^# u& M2 @: ]" W - RTS' ~) C/ ?; T) ]0 @- K5 u, k
- .ORG $71C0
7 e! {, `- [& y1 x' t( o - BULLET_DATA_WRITE: ;副武器数据写入1 V. J) ?( n3 g# d$ u
- CPX #$0E. T8 P# d+ g$ ?2 ^3 l2 @
- BCS P2_BUL
# w! s0 l" w& X* X8 r* n - P1_BUL:# c! ~5 U- ?, Z3 J
- LDA $6004
8 s% o2 l# o* {! I - JSR $D7D0 ;P1副武器数据写入
# S- H3 _; F# R+ ^; g$ c% F! w# @9 i - RTS
- |5 B' f8 `: ^7 y2 C( k- e- }. y - P2_BUL:
1 Y# n+ ?3 O" q2 k5 Q - LDA $6005# `. x# a; C& W8 W& `# h+ s
- JSR $D7D0 ;P2副武器数据写入
: ]0 s9 c3 L* a* W - RTS
7 G' `* K2 n9 o9 c% U - / H7 G% c0 N3 H+ p5 c& y' J
- 8 B- l5 @, r. V0 d W S
- .ORG $70004 {. K: `+ T0 {0 K
-
9 `4 A1 T: B M0 G# Z) G0 E- Q2 x - STY $4014 ;补上覆盖的精灵写入指令3 b7 |' X/ w+ f5 M) w. T
- PHA
9 g* |# _$ h+ ^+ D5 u3 R& d - TXA$ h8 n! ~% W! K
- PHA
& |5 v. d3 J) h - TYA4 ~! p( O/ x/ `* S- H" i
- PHA e9 D! e! F1 j! \3 Y! m
- LDA $0C
6 h" @6 H% ~: s% J; B- E - CMP #$01 ;比较是否为标题画面6 c" a7 w' ]: f5 i8 r
- BEQ PPU_STAGE+ s6 y, a3 z, w
- PLA
2 A/ f& O. ?5 t* \4 m - TAY) j2 P7 P9 L5 H- \2 e, ^1 Z: Y, @. _: g
- PLA
5 a; i. i1 b% K( F2 M6 t5 x - TAX- X a, N6 k4 J" K6 y7 X7 i
- PLA) f: \0 k. m# s
- RTS
& `, A0 M* \3 U' l5 w/ c7 g - PPU_STAGE: ;STAGE显示程序1 ~8 d8 o$ v7 D
- LDA PPU_ADDR_DATA# ]: z# D* ] z9 I" U+ M
- STA $2006
/ O# Y% D0 z$ P8 Z. {, d - LDA PPU_ADDR_DATA+1
9 X1 c# I: `3 s+ j - STA $2006 ;坐标设置: s; b* a% Q$ ^; h
- LDX #$00/ C9 W! K' X3 f: d4 ]: h
- PPU_STAGE_WROTE: ;写入STAGE字模
! Y5 C: V% F: c) p/ d6 U - LDA STAGE_DATA,X, v6 v" g H$ A+ B* ^2 H' X; F! P5 V% S
- STA $2007
; O- x c+ `' g. q - INX2 y1 D( B2 l$ h% i* E- d% s
- CPX #$06& t( U' [0 X8 f9 J2 B
- BCC PPU_STAGE_WROTE
1 o- d3 k( B& {, Z9 d - LDA $6010
7 \* L* D6 S( r! W+ e, i* @" g - CMP #$FF ;关卡数据初始化条件判断# l0 P2 R& N$ O4 X: \1 X
- BNE KEY_B
" D$ m" [9 `" P9 \% n4 [, q - LDA #$003 r2 ?- h, J6 w
- STA $6010 ;关卡数据初始化
- O# ~2 X/ T9 p1 s7 O - KEY_B: ;关卡减少6 \: n+ x8 V# u9 b- r- k7 U
- LDA $04) u* E0 G- Z- |) g# H& Y* }: E
- AND #$42 ;按键B或左减关
2 n9 Y* W4 A2 X$ B7 p) {7 \ - BEQ KEY_A
T: D& @1 Z% z) w& `% x' c2 ^1 u - LDA $6010
: V# K% L/ I- z - CMP #$00 ;关卡比较% A% V' y6 ?! J l
- BEQ KEY_A' e6 x, b* F9 h( n
- DEC $6010 ;减关
7 @' o: C$ }- |" ^% h. W - KEY_A: ;关卡增加
- ]9 d8 f) @/ T, f1 S/ o - LDA $04
& Q P! F# y3 [! N5 P" Q, p - AND #$81 ;按键A或右加关0 \ _2 y% k) L+ M8 R* z' [( F
- BEQ PPU_NUM_WRITE
$ I/ x9 I* G! K- W/ Z B - LDA $6010 w, }0 p/ F7 d6 @/ t
- CMP #$04 ;关卡比较+ ?4 f- |% c7 u) u8 D( Z( ]/ B
- BEQ PPU_NUM_WRITE& s2 C& K- m( b$ Y& T" q( N
- INC $6010 ;加关2 |8 H' P$ Z3 m: C
- PPU_NUM_WRITE:
* A+ \8 q. h& l - LDA $6010
" @1 ]$ Y P/ `' b4 B - TAX9 f- m+ f' Y& X' h0 [
- LDA STAGE_NUM,X ;写入数字
, S: H; G7 i6 k - STA $2007
4 T3 K& R4 Y, B+ ~& ?3 A - PPU_RTS:
! m7 L6 R6 ?+ F" [6 f: r5 d - PLA
$ P; M* f( l1 Q! q2 y& A) G2 _ - TAY
; ?6 i/ j$ }- P. K4 O3 h4 O- b6 @ - PLA+ c4 N. b- S- f5 ~! s
- TAX) t |/ ?: m* k5 E. @( F' F' Y
- PLA
; R' I8 @9 y5 ~& M, z - RTS1 K8 l7 g; C# s" u1 O: {1 N8 a' r% B
-
0 z1 c" y T `& h# V/ i -
* W. q% A G) `- G; w - STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据
' u" \$ Q B) @; z - .BYTE $EC,$ED,$DA,$E0,$DE,00& N3 D" b( h# m f, X0 w
- STAGE_NUM: ;关卡数字1,2,3,4,5字模数据) N; y# V' M; n L6 I x2 _
- .BYTE $D1,$D2,$D3,$D4,$D5* `; b% T& ~: B1 `" W
-
6 q3 c6 u- `5 P7 v* H - PPU_ADDR_DATA:8 O& c* H0 V2 k
- .BYTE $23,$0C
! b4 ~& ^" k" f0 ]8 s" Q" @* H( W4 @ - ' z! u' `, g+ b6 Z: }- ?: b
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|