|
|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑
, ^* q; ?. s! S, @' ^% n, w6 O5 w. k7 |5 t; D9 M: Y/ L- K/ h
[FC][最终任务][END选关]
! I7 y1 j2 B9 ?0 k- r- s% K5 n5 T( U# v5 c9 _
时间:2017.3.29
( f" K9 U4 M. h: J+ F& G作者:FlameCyclone) {5 j4 e6 M% K
内容:
# c% m0 @6 t p& O1 d" T 1.关卡选择: 标题时,左或B减,右或A加(1-5关);2 Q: c4 _* E7 R8 E. q
2.无敌锁定: 暂停后,按上键切换;
! }0 P" t1 i8 ~5 r+ ~! x% s" W 3.生命加满: 暂停后,按下键切换;& R" `8 i( [/ j2 L4 n! D! N
4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);5 _% ?# C5 l# P3 \! r5 @
5.子弹切换: 非暂停,选择键切换(普通,W,L,B);8 l: a2 B k+ h9 j
6.B弹数量: 暂停后,按A键切换(1个或2个);8 |# S( h/ ?0 i n7 ~
7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;
; S4 C ?- j. u! I( A" u, |$ N- U6 w7 K# o: v7 @2 k5 |* D& X. i

9 {$ t8 m: ~' O2 t# N6 r) \6 u 8 X* O& v& Y+ m: t6 x8 A
9 n' a2 j( f! K
4 D9 d: R6 q% u& |( ^6 V6 s
2 Y1 g4 {. [, X
8 O, {5 |" u7 `7 d5 m4 O+ Y
FlameCyclone.ys168.com: N$ V6 q! r( Z! n7 X m
www.nesbbs.com- ;[FC][最终任务KEY][END]2 X. W7 x: Z& z h
- button = $04 ;单次按键7 m: _% W4 D$ N+ R, B
- flag = $6000 ;功能开关标志
, [3 I( e j7 r! T! B% w - pause = $000E ;暂停地址
8 S1 [; f! I+ K$ O% ^! n [ - # { M, b- W& q2 P4 H
- .ORG $8000
1 H# F/ n% n0 S% L( _ - LDY #$08 ;自带的按键程序
! A/ V9 G/ z# C- @ - ADDR8002:% \" ]( t" O% @1 i! q# }3 e# N+ N$ @
- LDA $4016,X
' Y ~5 K/ A) a - LSR
7 P6 E' J- C5 i- I( N, f* w/ b5 M e - ROL $00218 z' l5 b5 B$ D1 a m: m9 q
- LSR9 l2 b- s9 L5 X5 J' \" b
- ROL $0029
& d9 N1 K" ]" E - DEY4 a9 \6 z/ N+ m% E' c
- BNE $8002- G3 k- B1 M1 j: I& X7 v
- LDA $0021
3 `/ L- p! F! l( ]# D - ORA $0029
- ~) d# j# V9 ] - STA $0021+ B$ j) e) `' E; B0 c1 b/ B
- LDA $0020
: k E6 d9 u# z1 I* d - AND $0021
- x; Y6 D# ]. H( \0 d9 f" F - STA $0020
/ F4 K+ A* F5 a( N- _. A - LDA $06,X8 j/ r) J3 h* O- X2 H
- EOR $0020 k9 W/ p6 Y) c1 S X0 [
- AND $0020
5 C3 h! e' V& I3 R2 p - STA $04,X
$ {* N7 W! \1 I5 J2 v; y - LDA $00208 g; }" S& |+ _2 k) @: a" N
- STA $06,X: v* f6 S8 I' D) x4 k( j0 E
- JSR KEY_OPERATE; Q+ W) @2 t* h$ H2 S
- JSR Function ;功能调用
2 X2 g' z$ b0 l9 E" n4 m$ \ - JSR Weapon ;武器切换调用
; [5 ^; I# H* {5 Q - JSR Power ;威力调用1 h# W; S1 o# r3 X" o7 a
- JSR BULLET_NUM ;子弹数目
; R2 t7 e4 S& E' _ - JSR BULLET ;副武器类型; p: K4 v! g: f2 x. p5 g
- RTS, ^# L- N& w- ]3 k
-
/ W2 @3 X) h* N - . O3 R' k' s, g, f4 W7 x0 Z. d4 y
- : t7 j' z2 m$ K: T6 _* t; \
- .ORG $8050# F, m( R3 ?" S4 y
- Function: ;功能; p. ~8 g0 I! `1 B
- WUDI: ;无敌
' @( @1 s( \) S# [4 G - LDA $6000,X* e# x: V f# q% P( z8 C" f* Z
- AND #$08 ;开关判断$ o/ _2 w, F' @: y
- BEQ LIFE
( ]* V: \+ A; c: U% `4 ^) ]3 w0 V, E - LDA #$058 w% e5 }" M4 ^" e" Q
- STA $05DC,X ;无敌锁定' y( f# g2 t! v: {0 Y
- LIFE: ;生命
- J" y" @2 y: { - LDA $6000,X6 q) w) Z6 \3 K ^/ D
- AND #$04 ;开关判断
$ I) {: y R) r" A. e# t g9 O - BEQ FUNRTS7 d: D( r' d' n# q( Q% Y% D1 i
- LDA #$05! f2 M2 G' _; @& |
- STA $1C,X ;生命赋值
# ^" h2 ]8 s2 G+ z; J - FUNRTS:2 G6 a9 H4 V9 S9 K: P
- RTS A- f& z1 ?5 h& F y
- $ Y- K1 ? n2 b9 ^& S+ e8 u% j
- Weapon: ;武器切换( v! k7 V9 [/ c$ E: ]5 k/ {1 z* m
- LDA pause ;暂停状态判断
- G9 n) O- A) o* K9 @: b - BNE WEARTS
; ^6 U8 u% H' p - LDA $04,X' S$ g, x, N7 D- t5 x+ u
- CMP #$20 ;选择键判断
+ p& Q2 O% ~% }' d3 H - BNE WEARTS f4 o7 R+ a' l P- \$ b/ m
- LDA $12,X
6 ^+ c7 ?( g& f2 }, |7 _7 T I, [" X - CMP #$03 ;武器值判断
+ @1 d* Z4 ?/ x3 b3 Y. d+ V; b - BCC WEAINC
. o3 l6 [8 D; R3 U: d4 _ - LDA #$FF
; \& {8 X% G# L- S - STA $12,X ;武器重置# h# }' G2 d1 \" H3 F, e% \! H
- WEAINC:. o* u& x8 Z% ?& ^/ |; Z& S, G4 U
- INC $12,X ;武器增加; R- W( V) X# ?) k h H, U
-
( }3 X0 c7 d( T5 ]; q/ m - WEARTS:
1 X1 U& I; B" E, Z# U$ | - RTS
8 Y; x- e, ?5 m" @+ [. @ - ' P" [! f- d5 e' G4 N
- Power: ;威力
7 h5 i: z! j: i) d, s - LDA pause ;暂停状态判断
% N& x% ~7 _6 D5 p - BEQ SPERTS1 j4 i; T5 l9 D- O0 |8 Y# W% N
- BUT_LEFT:
" {8 R1 H: t6 }: c8 F' p* y. b - LDA $04,X
/ ]4 X; X. x' |( M - CMP #$02 ;左按键判断# u4 n$ Q3 I* Q- p
- BNE BUT_RIGHT
# m8 l6 q) r" \" m c* B2 F - LDA $88,X
3 u. R/ ?( i$ z( A1 A - CMP #$00 ;威力判断
2 p7 V% x7 ]/ Z$ D: U$ L, d - BEQ SPERTS
5 M' L7 {1 `8 r0 D - SPEDEC
' b! A- o5 o. U4 ?+ N0 X7 C - LDA $88,X ;读取武器值 S0 `% h# \3 x! Y* ?7 A) ]
- SEC
1 y+ ?. R/ B* p3 p1 z: H - SBC #$08$ l) A$ k6 X2 l% F
- STA $88,X ;威力减小+ v5 M* y [/ \- t% l
- BUT_RIGHT:
' o5 ~# q& l0 @7 o* ]* b- i! Q7 n - LDA $04,X
7 C3 Z2 w* y) X, @* a - CMP #$01 ;右按键判断7 q' O2 K0 L0 J, P
- BNE SPERTS7 y4 z9 p3 _- e. |1 o
- LDA $88,X
& N9 x6 M9 |* j5 z) N% i. B* `# } - CMP #$10 ;威力判断
2 I8 n2 A# q2 ^( m - BEQ SPERTS
- p. `' Y' M; f( w1 k* P1 }% t& d - SPEINC:
3 [. H" z2 y& a& E8 c+ @' | - LDA $88,X ;读取武器值
) v- }( s0 y7 n- M+ V - CLC* ~. c k' M1 ] o" f2 G" D$ y
- ADC #$08: H% z; [) o* g$ D3 {
- STA $88,X ;威力增大
& c4 c9 b: V) N - 5 U2 {, O) C% f- L/ r; U7 ^ O
- SPERTS:
; X9 C2 Z0 _9 e$ |& N - RTS
% U% o4 r% E; k+ Q - * {/ t: u7 R& ^/ i; L; K" ~3 P
- BULLET_NUM: ;子弹数目
/ J/ W& w5 A( B% v$ Z/ ?. @/ M' C - LDA pause ;暂停状态判断
/ |' @, H+ t, t0 x8 I - BEQ BULRTS% E5 J7 @$ z3 S* h
- CPX #$00 ;主机玩家判断/ z3 U! f1 a* \/ {6 n
- BNE BULRTS
, i7 n" \. f! i, t# w' N } - LDA $04,X ;主机玩家判断, i4 ^% M& y# g0 R. Y
- AND #$80 ;按键A比较
r' L4 P _ i" O/ w - BEQ BULRTS
/ m6 ^5 B. U, c - LDA $87 ;状态判断
! [2 Y! Q: `: c: ~2 `8 R9 q a( _ - BEQ BUL_2! o# n- `& ~0 }! y+ Q# J" z
- BUL_1:
. U) E) u4 {% Q, l6 F1 F9 t - LDA #$003 Q- g% p& G, X0 S
- STA $87 ;1发子弹
1 V0 F- k2 I9 X7 r( H& X# L- o; }5 j - BEQ BULRTS
2 n( z; J) |9 }; {7 d/ R - BUL_2:
9 V8 n$ L2 g, g& }5 w6 Z - LDA #$01
; p/ c O+ t' ?! J" q' C - STA $87 ;2发子弹1 L4 O. U& N7 q/ C) g
- ( E% [. F7 E/ C, L. X& l
- BULRTS:$ ~2 R+ C7 ^3 \" ^, c' R) `
- RTS* }, I5 r8 x- ~" C! e# |
-
1 m* W; T) P6 E9 l% U9 S1 {
2 x+ O) r& [ a. N- BULLET:- h1 i2 E; p4 V9 c; x
- LDA pause ;判断暂停状态
; K, J( q7 @4 g: n/ Y/ O9 t - BEQ BULLETRTS- p( m8 ]! C3 ?6 _6 f7 P
- LDA $04,X
, n) u. Q7 v$ J r& N - CMP #$40 ;按键B比较 H* v9 C5 }) A- w; ^1 d4 U1 y
- BNE BULLETRTS" h, x6 |! Z% w
- LDA $6002,X ;读取副武器
. D8 l) ~5 ^8 O5 W, n - CMP #$03# {9 G5 J; y! L7 Z# l; x5 N- I
- BCC BULLETADD6 d7 t! z6 Y9 Z9 y* q6 K' N: n
- LDA #$FF
$ I1 b$ g [0 _ Q - STA $6002,X1 a: U9 O4 _2 R
- BULLETADD:
5 `. Q7 D2 x$ E z# z - INC $6002,X
; g/ G# `7 P4 g. G; Y - 6 E: ]+ F) Z/ X. ?- l p
- BULLETRTS:- P+ T+ ^( [4 T* S
- LDA $6002,X. |2 C& c4 ^% Y
- TAY" h4 q2 K; X( t0 ~8 ~
- LDA BULLET_DATA,Y4 x4 ~6 j$ y" a, o! E
- STA $6004,X ;写入副武器数据# f) @5 Y {9 _3 r6 Z) e( b
- RTS. x( J& j# x2 W$ S8 c% i' @
- # X4 a1 `2 w+ [3 H0 Z9 Z( Y
- 0 p9 @: F+ H6 z( r
- BULLET_DATA:7 z( Q! }6 B" F- t8 U0 }( l9 Q% c u% g
- .BYTE $06,$02,$03,$043 Y+ g3 b8 j4 Y; \
- 2 s7 E, m2 A& Y1 T' J' D7 K
- 8 x1 b2 i* l# W( X* _- f3 `
- ) o" q9 y' G: A* q& d1 C
- KEY_OPERATE: ;按键开关操作/ h. d, ~7 C4 l) _
- data_protect: ;数据保护
z8 J, u5 j. [2 _$ i9 ? - PHA, z3 Z6 |" r4 U( G! b8 C
- TXA
# V$ Q L6 h# L* Z7 `; T/ o - PHA" n' O! T- H% E$ R& U0 L
- TYA
" S8 b9 k0 Z$ k g( G - PHA W R3 k/ `& G" l$ u' _
* ]6 Z8 X% }3 D9 X8 L+ v- FLAG_INI: ;开关标志初始化
- M/ Z" e. q; Q - * k0 p- F; v) L$ K, M6 y
- LDA $600F
( X6 z/ r9 {" n; r( u - CMP #$01
# Z! c$ A! ?& y: N! |+ _. n( G4 a4 j - BEQ pause_cmp
8 W) h8 ^+ Y q9 _ - LDA #$00! U, ~/ c8 I; E. A' M
- STA $6000
$ P% c# V. O& C( p0 s8 {. V - STA $6001
) ~6 g5 s- b7 c1 ?% |& [ - STA $60025 c8 \) Y* v( B) Y9 H' g# S- u
- STA $6003- ?+ q( Y8 y5 p! S0 \, a
- STA $6004; o" k2 u2 V- [2 P% c( d& h+ z
- STA $6005
4 J, Q( l/ J. A; h: V - LDA #$01
( V5 B- _6 C& v( C2 _ - STA $600F; X- }' `. z7 |# n; Q- x" f7 m
-
9 y1 p" W% f( A - pause_cmp: ;判断暂停状态
# r {9 o0 E2 {* ^ - LDA pause
( \- Y' u1 d9 R) X" g9 `' T7 Y8 x4 Y - CMP #$01 ;判断暂停状态
, x) H( O& G; {& w" u6 i1 x - BEQ button_press
8 h* r) \4 P" i* d - PLA
. D. N! o, \5 | O v$ E - TAY4 A" F" G9 Y6 \
- PLA$ T- H3 C6 `) S" s- N% r h! \$ i
- TAX
7 g1 B( w# m" C$ E t! L - PLA
: D$ k& f( E4 O' w5 I/ b - RTS, _5 S5 k- s) b4 P5 b/ T, b
3 G# t, L- A, X, c* y- button_press: ;按压操作 I4 _3 Z: g$ h" u2 N
- ini_Y:
~4 M1 i8 x% I( j2 K8 F. U - LDY #$00) Y) @9 L9 y- M/ W
- button_cmp:
; @( g) @5 r# s) W& |8 E7 G. C - LDA button,X
6 a* w3 A0 M6 C* R$ c - CMP ora_data,Y
4 a/ y& E: \. A. R - BNE count_Y_cmp- l8 }! a. k3 ^. p9 ^* _
- flag_cmp:/ Y* A* i3 G6 @1 q6 a) p2 R
- LDA flag,X
' J( V4 c/ h; Z+ u4 d+ E - AND ora_data,Y5 i) `( Y: n# X3 g9 s# n, c: C
- BNE flag_and
+ H2 c2 S5 P; ]# w0 i - flag_ora:9 ^- q, k, b9 ]7 L
- LDA flag,X# k5 ]; c) l) S. o7 [ G
- ORA ora_data,Y5 ^! G9 d; h8 F7 V2 n% E, l( q
- STA flag,X% \6 |) f4 V' F$ e. w
- BNE count_Y_cmp* V* q" _2 O( Z j8 X6 i1 o
- flag_and:
9 a" y: Q0 H3 _2 `3 A0 B( Z - LDA flag,X
- A" o7 `. R. }0 E% t" e - AND and_data,Y( T: @; _/ H( y9 f7 x
- STA flag,X( {- c/ e3 E/ Z( z
- count_Y_cmp:, z4 J: H5 B1 x- I$ J/ E/ W
- INY
$ O% W" [: E8 n& @! w N - CPY #$089 ~/ @2 P+ q9 e: B) ^- K( v
- BCC button_cmp
# M5 k: C/ ^+ z9 O$ j# h- N -
9 O+ p3 |; U$ |: `, J - data_extract: ;数据恢复9 U! {, S" i; F9 v& `
- PLA
* o* T, i" C# u; F/ G - TAY9 n' y* V: t! G+ `. y# x# s
- PLA& I/ d$ b( j9 h/ E0 r" R
- TAX, s3 ]* |. C8 \$ o4 T' e! {
- PLA: @9 E/ _ |" c, _! f
- & n Z: L7 Z2 [8 s
- return:. J1 X+ M5 P+ l9 v2 V3 z1 Y, u
- RTS
1 Y: ~ z9 [- R- u& m. [/ l$ ] -
* m, L* w i Q5 G+ w - ora_data: ;按键相或数据
5 F7 l$ \# M& y* p- [ - .BYTE $08,$04,$02,$01,$80,$40,$20,$10
& s0 e! N, H: d- U - and_data: ;按键相与数据2 ^. p& a7 Q3 `# O
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF
/ e2 r9 t k6 j2 Q* d6 s" ^ - & Q- [6 k: e5 j. |, h
-
! h* b- \/ W9 P, p! h8 j9 r - / L" B3 b( J w' y# L' f
- : U C( V# O" C- F2 t
-
3 D0 s9 Y; g. ]( ]1 |0 _, A7 a - ( o- I' x6 j4 x2 ^
- " C. e& c; C% b! G# o, v3 s
2 }1 ^ @3 t) ~4 l" a& i, G0 W
- L' h! v2 M( G* ~- .ORG $C264 ;自定义的MAPPER2切页程序
$ ]* X* x1 E( g# p, S* y, L2 _ - PHA
/ c7 @* a% L V# E; A/ u9 _% J - TXA
" u D9 a) z5 H: s. f9 j" C0 P - PHA: f+ I' m* _+ g$ N. G
- LDA $0066
$ T" \5 X* U9 C: s5 a - BNE ADDRC280
/ y4 q7 d: ~" V& Q3 K a - LDA #$07+ i3 D7 h; ?, {
- LDX #$03& \$ a X+ j0 [0 s) ^ i
- JSR $CD9B ;自带的切bank方法& k+ b" K6 n5 O2 F; k( ?, t
- PLA
% z# A' K- M8 l - TAX; z6 c) Q5 u( a0 D: e
- PLA( r9 K" |) x* S% }2 S
- JSR $8000' z* N+ R e: D( B Y$ l
- LDA #$06" y# y3 w9 t" Q9 @) q& u3 _9 V. J
- LDX #$03
# y9 l" x5 \8 A% [ - JSR $CD9B ;切回原该切得bank(可以不用)( M- H9 ]5 x8 [/ i
- RTS
G C8 F' v/ l J! R - ADDRC280:
* y1 l: T9 n$ f2 m- I. L- H - PLA0 V% v, Q4 N1 q1 X+ G" w
- TAX
! w* |. B. t' @* ~ - PLA7 v& x, G! K" g" H m/ Z! D
- RTS) l |; J7 D$ W8 i
-
4 m' [$ r2 K H. V/ ` - ! B9 D6 o# ?( I$ Y
- ;[FC][最终任务PPU][END]
% F6 w. u8 d; O8 t/ c/ I4 V - .ORG $C056 ;跳转到PPU重写程序
# D7 F' c5 j z+ T5 b - JSR $70007 D3 P$ o2 T# o3 p
- C4 e7 \2 ^8 g+ W9 a/ o; J0 b+ @
- .ORG $CEBF/ m! ]. V5 F& y7 }3 z4 m# r% `: |
- JSR STAGE_DATA_WRITE ;跳转到关卡数据写入, S: @. i1 ?. ?, F( c# N
- $ d" n }6 M" |: {! q% Y
- .ORG $E460
* m2 c3 z, \9 T% B - JSR BULLET_DATA_WRITE ;跳转到副武器数据写入
; Y u) w( F. v - 2 d1 t4 o5 M4 M% K5 F
- .ORG $71F0
+ b: a* c% M( f) X - STAGE_DATA_WRITE:
$ y1 K; Y% Z, x6 }9 q, {( u - LDA $6010# ?* p9 W& v9 G k
- STA $1E ;关卡写入
) L* ]# F S+ A& b& P6 S - LDA #$000 T/ v9 [) y9 ~* K( P' ^
- RTS
" p0 n( J$ r" B* H% G r7 Y9 N; k7 d - .ORG $71C0: V5 Z- R+ p* P# Y% p! t
- BULLET_DATA_WRITE: ;副武器数据写入5 L$ E: E7 [! d( q
- CPX #$0E E- w* H" X! R8 c1 [* _9 L: I
- BCS P2_BUL
8 A' f5 V% \9 O3 |7 E3 g6 Z0 s% t - P1_BUL:
8 e% t1 `3 U4 P. P - LDA $6004, S% A* D5 C) i5 E% t! e; e R
- JSR $D7D0 ;P1副武器数据写入
# l( F) G! W& v, z- C" Q - RTS
+ \0 y8 `2 L( |2 e - P2_BUL:
- o: i" D; I) i+ ]$ q5 l, N# P: u: W - LDA $60053 \# J/ } S: z) X. j
- JSR $D7D0 ;P2副武器数据写入
" K/ b* L' } ~2 F8 U- g - RTS* u. D" h2 {1 |& m1 C: t# R2 z3 k7 R
$ ~! o0 C7 [. Y7 L
! G! C% O y) q4 O9 y- .ORG $7000
3 b; x. d3 \' M' c0 S# B4 w& Q8 B -
+ J) {+ H [4 N8 Q% v3 A - STY $4014 ;补上覆盖的精灵写入指令- D% B+ C, p% B% u; Q
- PHA0 u$ @: a: g! T9 r
- TXA( {1 e* h* A) O3 G; i* l# }, U
- PHA: B% ]% c- U V6 F- s7 Z
- TYA8 }3 x2 P5 e" m6 f2 r5 s2 g! e- ^4 f
- PHA
0 W4 U% s3 M) N' L# Q+ r - LDA $0C8 T0 P* T2 O& p0 J
- CMP #$01 ;比较是否为标题画面! A& f: u) V+ i! Q) W# V
- BEQ PPU_STAGE
9 s4 D! A$ { i! O; _ - PLA
: I8 {; X& \( u+ l( w, k) w - TAY
, u5 j, [5 W2 |0 X: C/ N7 g! t - PLA
- I8 o5 U+ n) B+ D - TAX% K9 S: R0 @" a5 ~/ U+ \
- PLA
5 H* D+ Y& F* ?$ M - RTS: n* M R0 E% t$ l9 K
- PPU_STAGE: ;STAGE显示程序
2 Q6 b. ]# S7 d3 o4 F% Z/ ` - LDA PPU_ADDR_DATA
0 d( {( T$ F0 {; ~ - STA $2006
& g$ t0 N; m1 p. h. j - LDA PPU_ADDR_DATA+1; V, B4 J l* F `$ L
- STA $2006 ;坐标设置+ R/ a/ u2 S, k# m E0 F" K! z: C) w
- LDX #$00
G2 b; J0 z; h2 v5 T$ c - PPU_STAGE_WROTE: ;写入STAGE字模
* l; I) e0 Q7 s5 K$ [% j - LDA STAGE_DATA,X( D7 t3 x! a4 t/ h
- STA $2007' n: @" {. o' l/ c; R
- INX
$ q' B, n1 v5 |" L, B! J - CPX #$06! s& h! H. O+ z
- BCC PPU_STAGE_WROTE3 U3 \1 v1 t O0 _7 c( H
- LDA $6010# _. r5 |9 y$ g1 w/ y9 k- Z. }. Z
- CMP #$FF ;关卡数据初始化条件判断, i2 b- q* L+ X% ]
- BNE KEY_B
1 @6 M; D4 p* ?: `8 v0 n: |, N - LDA #$00
7 \2 y: U6 M# x$ o9 R - STA $6010 ;关卡数据初始化
( L' C2 X A8 B - KEY_B: ;关卡减少
. i( K$ K1 ^6 v - LDA $04. z: t. L0 ^8 v
- AND #$42 ;按键B或左减关4 X6 j2 ?/ Y1 a: G4 M
- BEQ KEY_A
0 S6 B, b4 C6 n! g- M; P - LDA $6010( b9 Q& Q- v& Y! Y; u9 U
- CMP #$00 ;关卡比较
/ c* k. j* t% }% s* X - BEQ KEY_A T' s" c* q- L. q& d
- DEC $6010 ;减关
/ `6 Y4 Q8 ]( K) i0 v/ m/ s8 d - KEY_A: ;关卡增加
- O( ^; N# M1 t' x1 | - LDA $04
2 f. c" F2 ~9 M, K) M* x - AND #$81 ;按键A或右加关
/ v9 S6 j5 Q$ j+ ^: J; S - BEQ PPU_NUM_WRITE' x1 d/ C% R/ C
- LDA $6010+ z. R+ {! [) E+ f! x& ^
- CMP #$04 ;关卡比较5 _& d( J$ C& M# M# Y
- BEQ PPU_NUM_WRITE
2 S8 L# a: p( m- [' q - INC $6010 ;加关8 |8 M0 f A0 u+ _# G s& \
- PPU_NUM_WRITE:
# v5 K M, W* Q. G7 m - LDA $60101 b& M; G1 x _0 a( R# P
- TAX9 S' c& \/ k- O3 t, }
- LDA STAGE_NUM,X ;写入数字 A. S! M# q0 X
- STA $2007
; z7 Y. \; A5 }- I" \ D8 j! h! z' R - PPU_RTS:
8 @) }8 W- N% ? - PLA; m5 P- i v; D( s5 [9 x
- TAY
* {( e0 q# _" _: B. G - PLA
* l* ]9 a S2 q0 }2 `0 R, l& k4 I0 g - TAX& c4 t8 E. [4 f, P3 m7 Q% F
- PLA( y' @9 T7 t5 x) N
- RTS- L9 ~6 U. S7 L9 H
- 0 a$ g" J9 v, [; X! h( A
- $ C, h- y) K( L4 I
- STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据5 m8 u4 G$ R# W; ~7 i
- .BYTE $EC,$ED,$DA,$E0,$DE,00 k9 q) U& J- {3 ^7 y
- STAGE_NUM: ;关卡数字1,2,3,4,5字模数据. d- r+ d3 z, h+ \; d$ W
- .BYTE $D1,$D2,$D3,$D4,$D5
7 Y2 E: G2 [4 @! ~* |+ X! A7 }) A - - x% Y |/ I+ C1 Z/ q2 [
- PPU_ADDR_DATA:7 I! ^- Z. Y. t* ~4 [5 K- X
- .BYTE $23,$0C
- z. P" z- O$ O. c* g) z - * Q+ x& v# m; t3 f/ H B6 v6 Z
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|