|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑 6 E4 q. |" G: n5 h' o+ P' C9 R
: i% F t% o' N' T1 G% I# ^" E3 p [FC][最终任务][END选关]
# q: ]. d0 P; _" f2 ~ ]8 y1 B9 |7 ~, L$ d5 C/ y* a' ]
时间:2017.3.29+ d! F* E2 W7 v E& l
作者:FlameCyclone1 B v* i! \. ?/ m8 a) c" n
内容:
$ C- E4 o- `7 _: M% j0 d3 D4 o8 q 1.关卡选择: 标题时,左或B减,右或A加(1-5关);
3 K+ K4 y# y0 O v k$ N1 m 2.无敌锁定: 暂停后,按上键切换;
6 i7 j8 O* j1 c( G: _- N+ [, Y 3.生命加满: 暂停后,按下键切换;; M# E7 P! f/ T5 W( m
4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);
! w7 ]! K2 ^( ?# l& k% O ` 5.子弹切换: 非暂停,选择键切换(普通,W,L,B);
4 ~) M( W3 l2 S7 |( U4 x9 _6 y4 r 6.B弹数量: 暂停后,按A键切换(1个或2个);0 G8 }9 M. H2 x, U; C
7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;
0 v( V# i+ {8 K) N$ V
6 u6 J- v+ U1 ]1 a/ F
_* B1 e6 W- i% H; ] 2 t9 z4 G- t: U, Y3 @5 n0 \9 B

3 c, @" ~" U5 V* B4 c( ~
5 Z5 c3 a3 x8 G6 J! N$ m3 c. X6 `6 X0 B0 J7 ^2 O' o( N
+ N* @2 b' z% ^/ q# G: I; ]6 iFlameCyclone.ys168.com
W. b% ~3 V' Z4 X- N9 D ]www.nesbbs.com- ;[FC][最终任务KEY][END]
* v, H) o$ M7 P1 ^0 n7 d. u - button = $04 ;单次按键$ [1 t/ ]+ V8 G7 K2 }) p( S0 I
- flag = $6000 ;功能开关标志
% r% T X3 e- X& j - pause = $000E ;暂停地址6 B" E2 S1 x* [" \$ J! p' O+ I
0 d+ m' H5 C! X) {- .ORG $8000+ e- F, b0 B; `& W
- LDY #$08 ;自带的按键程序
! i; m" }0 R* L% t0 k: N. g - ADDR8002:: H. Y6 P- q/ \2 q* h1 \+ i6 D/ l
- LDA $4016,X
+ ~" _2 ?7 d+ m. f7 A2 h) b& W8 ` - LSR
! X* ]9 o+ g7 R) V b+ W0 q1 y# k - ROL $0021
) |+ |, f% U5 a' j% x% d - LSR
7 l1 |6 |6 ^5 a9 y4 B7 ?& ^8 m - ROL $0029
9 _* u' i- d1 b/ J2 l - DEY( r( i# Q4 t( {: ]7 }
- BNE $8002
3 @4 [- n1 |- X1 u Y0 }8 z - LDA $0021
- n% e- k" f. } - ORA $0029! J5 U/ \" a4 f# f, n. \# R
- STA $0021) a1 H/ Y. V* E" t
- LDA $0020 v u; Z4 K) z( m; d
- AND $0021
/ o$ N. w+ `: i( n - STA $0020
! w: V, E0 _ P - LDA $06,X
, @1 r2 z' P9 N( z1 h! f1 l - EOR $0020
% \# ~1 q$ g5 g) @: E - AND $00204 A) N1 b+ l$ f6 g1 ?0 p3 \5 J7 S
- STA $04,X
1 F- e, n( e0 [1 C! `+ H* R4 ]( ~1 { - LDA $0020/ f' M6 q8 N! r$ x0 M5 B( K
- STA $06,X: ~- c6 Z2 g- Z/ w4 F7 c5 @
- JSR KEY_OPERATE& P' x* P9 f, e; c9 \- d7 v
- JSR Function ;功能调用
9 g- M) u! W% y7 N - JSR Weapon ;武器切换调用
* g; } J! N/ C% \2 k0 |$ C - JSR Power ;威力调用
7 q' S8 \" ?( i5 n/ S - JSR BULLET_NUM ;子弹数目
+ l$ @/ W1 i* G5 `' m8 g0 y/ c( m - JSR BULLET ;副武器类型4 c/ H* O4 E3 v7 l# o) }8 ]' ~
- RTS
+ C$ k- h8 I+ N2 N -
) e; Q. U" D+ P* `6 x E. N -
" I8 p( I$ w/ q3 ^, @# V- q" r
7 ^ l$ w4 W% C: d( y- .ORG $8050/ G/ t& f! T0 ]4 w1 Y
- Function: ;功能- u6 f3 k0 y( M6 ]
- WUDI: ;无敌2 W( i3 T( Q0 g5 P+ t" B
- LDA $6000,X" ]4 X) V/ D* p' w
- AND #$08 ;开关判断5 [4 e" p o& n) }
- BEQ LIFE
8 y- Q* o0 Z# x - LDA #$05* ~" G9 \1 M/ ]6 t$ [
- STA $05DC,X ;无敌锁定0 i" i$ M8 A! d `: }4 T5 D, t
- LIFE: ;生命
+ ]2 b- x. i$ i/ f6 f1 v4 p - LDA $6000,X
" n5 z# p) t5 Z8 b - AND #$04 ;开关判断 Z$ R! d/ u% G/ }1 M% c
- BEQ FUNRTS5 u% _- a$ p. |$ O: W. f
- LDA #$05
/ W' w" s3 B) ~& o* ^ - STA $1C,X ;生命赋值
+ T9 l" `) n$ @7 x! @2 j+ n - FUNRTS:' c) B: U$ v/ R8 Z; E
- RTS
: P. i9 R4 Q4 @# B5 \ - * f+ n4 t8 `0 Q
- Weapon: ;武器切换
! W0 x6 L, F0 n+ R7 B" { - LDA pause ;暂停状态判断
4 R' Z, q2 P! D, U4 L/ M3 m. N - BNE WEARTS& R- `8 O2 M, q- T& x3 n
- LDA $04,X
6 q2 |& h: V2 W5 U - CMP #$20 ;选择键判断. n* T4 i' W0 ~2 O. P
- BNE WEARTS; `: X6 E" [$ j5 ?3 s
- LDA $12,X; A9 Z* W3 E8 M" b
- CMP #$03 ;武器值判断
5 y2 q k7 j$ x! k - BCC WEAINC
- B9 V: S. B4 {# c% e* E' X2 } - LDA #$FF4 d/ |1 {* ]& n4 K+ W
- STA $12,X ;武器重置, r1 i4 v; u9 R( |7 q
- WEAINC:
! A/ c4 s% s* S* s; i! j+ V) U - INC $12,X ;武器增加3 M3 a% {9 d+ M; t" ^! ^
-
" h' a0 _: [( o - WEARTS:
/ r5 k b( S6 N5 y# Z- v$ C - RTS2 O8 h! ?/ Y. |6 N7 P
-
; G/ t# F2 ^4 L( }$ r1 J8 ? - Power: ;威力0 s4 c. ~/ ^/ {- ^0 E
- LDA pause ;暂停状态判断
! n1 u# j2 A, V! E9 ]1 A% g. O - BEQ SPERTS: I% F( G/ u( U+ v
- BUT_LEFT:
7 C- r0 t4 l( w* I) y$ i K R - LDA $04,X! Q3 f6 o8 p% z6 N+ f
- CMP #$02 ;左按键判断
1 s" y) e2 q& r - BNE BUT_RIGHT+ D! j# t# G, q4 m. r
- LDA $88,X
8 p, z* [/ B0 `* p+ t - CMP #$00 ;威力判断
3 P, ?3 W* K5 o1 Y8 f - BEQ SPERTS
@0 H3 a3 |; \7 H - SPEDEC
8 U" P1 L; \- L9 j2 f' f( G; l& j - LDA $88,X ;读取武器值4 S. N7 z' O, q' b: Z
- SEC
. o T& b) i) R7 g( y6 }3 x - SBC #$08
0 z! ]& v1 B, j - STA $88,X ;威力减小
! O! A0 F* l- t. L0 y - BUT_RIGHT:; U5 p# k* x8 z' N7 b) Z d
- LDA $04,X
/ `* p( q) H8 P; [ - CMP #$01 ;右按键判断
. C3 \' s) \3 P - BNE SPERTS
5 P/ y6 G# B) Z( k2 c2 i, r4 T) u% O7 y - LDA $88,X
+ T* X3 o2 H H0 D% n/ ~4 _8 ? - CMP #$10 ;威力判断" m* ] _# T3 w) ?% b% G) T( i1 t1 `7 N. Q
- BEQ SPERTS
J. U% _( A$ |& |6 _ h - SPEINC:
8 s5 _+ m' D! I3 o7 Z - LDA $88,X ;读取武器值
O1 C7 i6 k& i - CLC
" |9 y' f; ?& ~, ]" s: ]9 l8 z" {7 b - ADC #$08
* [( k- ]1 q& ]' N& n4 Q( D - STA $88,X ;威力增大
' H7 A# i/ f T: o - H1 J* x- |7 F" A& G+ R
- SPERTS:3 e( {( ]: l2 X5 y2 ~
- RTS
: X+ k8 k- r( F6 L8 Y - ' F4 e5 o0 w- q9 u' H
- BULLET_NUM: ;子弹数目
7 v6 a" B* } h3 ~ - LDA pause ;暂停状态判断
: O: t4 H$ X1 x/ @ W - BEQ BULRTS
( v, D) z3 J0 @: c# A - CPX #$00 ;主机玩家判断4 w" Z, ?- W5 C" F4 R2 c" Y* a1 n
- BNE BULRTS d; r/ H; F' R1 w" P6 b6 g
- LDA $04,X ;主机玩家判断2 X& q* n2 q$ R. C. i
- AND #$80 ;按键A比较& |1 a( r; g( g% y, D. X
- BEQ BULRTS
! `- S6 J# D- q7 \7 V) R) ^ - LDA $87 ;状态判断
/ z) S' Y! x- b9 @6 N - BEQ BUL_2
- k1 ]% a- ?/ v- C3 r - BUL_1:" Q, Y6 `6 A1 O7 ]4 b9 g8 x4 o
- LDA #$00
% ~ t" n6 r* K! o+ n# d$ X) e/ \ - STA $87 ;1发子弹
' O# o7 H m- H - BEQ BULRTS
9 m; e. d: e, e& } - BUL_2:) Q7 e4 b% y+ x# x
- LDA #$01) a9 O, \* @) O: D
- STA $87 ;2发子弹0 ]3 _; o1 G, I/ x- Q
-
( M) b' \2 i7 U* Y) ] - BULRTS:9 c0 L% v5 \0 y7 h0 u
- RTS; r6 C. p3 g; ] E) x" ~
-
% g$ C {% d# ]/ r - % Q/ A6 ]2 K( O" J% M
- BULLET:
* n ~7 u. i) d2 j* L" K: A - LDA pause ;判断暂停状态
6 e4 j s5 H, q% Y- y& C6 X& P - BEQ BULLETRTS
8 ~/ |& k, H! }; z+ e& y5 c) F - LDA $04,X
! n3 J2 U1 g' b) u0 Y2 U - CMP #$40 ;按键B比较/ y, W' W7 Q/ z% @
- BNE BULLETRTS
" y2 U# c" U3 M5 k. z7 h - LDA $6002,X ;读取副武器
O6 t6 R( E+ L! @( }: N - CMP #$03
9 e* P+ H; p0 Z6 X" J - BCC BULLETADD! b3 g! {/ I3 y; R! z
- LDA #$FF0 [$ e$ M& Z! I& U
- STA $6002,X; {' C% `) p3 L* R9 N3 h) @
- BULLETADD:2 f/ p _2 ?9 w, r: c: }
- INC $6002,X9 m3 o4 i/ E+ [6 m) z5 m
-
' i' B* n6 g; [& A4 ?9 x7 s. y - BULLETRTS:( C( ~6 F; \/ Z
- LDA $6002,X
* S: l$ a) A' d, @' C3 K - TAY1 Y2 ^ |/ e/ A1 }) v7 Q
- LDA BULLET_DATA,Y% |! U" Z J) k' r0 V
- STA $6004,X ;写入副武器数据
/ Z1 d7 m+ [6 d) D! C - RTS
& n0 b# g+ y7 N! E% w -
: W: E9 Q, C0 u& D- y+ r2 i4 Q -
$ a% Q2 P: \5 Z - BULLET_DATA:0 t: T+ S0 |: v5 t
- .BYTE $06,$02,$03,$046 q* @3 L7 J& m: E
-
3 m; I& J& f% z" ~: b0 Q" f* K -
2 z& J) p& ?8 G. k! q, p - & w4 E2 j/ @+ s6 f: `) V
- KEY_OPERATE: ;按键开关操作
/ \' A3 c. x) h - data_protect: ;数据保护
3 y" C. [9 Y7 J5 ^+ k/ L! g. ^+ u5 z - PHA
, R% l2 x6 ]8 J4 c$ p m - TXA
) H& j' z; g! w: H - PHA6 k7 [' ~& @' U+ k3 V/ e
- TYA' A$ }5 s+ v+ L4 M+ x5 L
- PHA/ Q: l& J* l4 U3 K/ z$ X" F
- F- H5 v! O$ N' ~3 r& Y% C5 e
- FLAG_INI: ;开关标志初始化
% F/ I K* v" H& ?
; ?6 M! E. C% k2 J- ]- LDA $600F3 U& \6 Q* B1 Q5 Z8 D2 |+ k
- CMP #$016 Z+ W8 S: e& a0 w
- BEQ pause_cmp
) ]8 w3 V2 W1 d$ Y7 Y* N1 C7 n, F - LDA #$003 e; t$ u3 q5 V8 X, b
- STA $6000
7 ~1 z* E+ e! `7 A+ l+ o3 ` - STA $6001, ]: f6 f) d* |$ U, X! o
- STA $6002# M5 Y( b8 K$ g7 c- B
- STA $6003% }0 r) A0 P7 _# r: P- W) r
- STA $6004
7 I, X2 x5 L& i+ B7 F" Q/ { - STA $6005
0 D4 |7 F0 a8 Q- W, |8 T+ ~ - LDA #$01# V1 ~- r4 i1 p
- STA $600F
+ _- U1 q+ l, w8 z" ~# J - 3 S- A: {, W( B9 v1 x: _! }
- pause_cmp: ;判断暂停状态
+ C6 `* A- L3 P* ^ - LDA pause1 V! }6 W) c# K# Z; D( D0 A- ^2 e
- CMP #$01 ;判断暂停状态
& ]+ t" S* Z& L9 k - BEQ button_press5 r/ X% p/ b; y( Y( V
- PLA
" N+ h/ {3 T5 v7 n: p5 {7 T/ m - TAY
9 h- u9 z( S4 V! f' x, {3 } - PLA
% m5 b; J+ {9 C - TAX
9 u' V# x% X: ~ T/ l- E8 z - PLA
- B- W) m% K1 f' [9 u3 a& t3 I# ] - RTS& `) i! Q/ W" j
9 _( ~0 H3 q f6 r/ [/ \# ]- button_press: ;按压操作
5 T6 M4 i1 ?5 w5 b, o. H! f! F) A) ?/ M - ini_Y:
: K6 d1 W& ~' O& O! w - LDY #$00) @) T9 [, o3 p+ f5 @
- button_cmp:" H1 h1 j* A& L/ W! B% m3 ^
- LDA button,X, Q1 ~) Q: m* R T/ `: O
- CMP ora_data,Y" Q7 B8 ]% w7 g) Z
- BNE count_Y_cmp3 a: e" k* F! B6 a# t) `! ^
- flag_cmp:
! z3 m( @: N" n - LDA flag,X
) ~6 p% K9 w8 W# |; T% V - AND ora_data,Y- ` @! W B6 e" \9 G, d
- BNE flag_and
/ c: C$ C0 x0 S6 ^" Y - flag_ora:
- m/ \ y, [/ E" [2 ^# t; s- |0 h - LDA flag,X
9 r; W! v/ }9 R/ Y' M& ^( k - ORA ora_data,Y1 a+ u# D7 N) A- m
- STA flag,X* \% W$ R8 q+ s* n1 n6 p$ M) o: C
- BNE count_Y_cmp/ y, N( k3 ~; L% G3 x
- flag_and:7 e+ k. s6 ~/ O0 ~5 f$ l1 W
- LDA flag,X2 ?. H. a' ~$ k& A
- AND and_data,Y
: p U5 \; X \2 M% V - STA flag,X5 N0 v4 g. Y$ e+ J2 O! g% f) Y9 F
- count_Y_cmp:
0 N# s, K" a0 o' K! w" V3 U - INY" Z. {1 `# T+ J ~1 s5 |7 S' W
- CPY #$08+ ~0 X5 c2 W' k3 g. r! b; U
- BCC button_cmp7 ^0 z' ?3 ]6 P6 X
- + V. k) Z# M' o7 _6 |" H& e
- data_extract: ;数据恢复, `$ N7 h$ ~3 v8 G; m0 P/ C+ T
- PLA5 u. m' ~! J* x2 K+ \2 y
- TAY" g1 D ]. |. W# B, x# |
- PLA! H" d. _) n5 }) j' Z
- TAX& O3 y4 q4 z, X ?, `; M: g. K
- PLA6 W; Z9 H) [9 Z
- 9 D$ B8 W$ y5 U- P& y
- return:
$ _6 M2 m1 n3 N5 K4 o# x - RTS
! v' B3 T: a, F' f( }9 |# e2 ~: B -
" |. j* w I! O/ U9 |! _ - ora_data: ;按键相或数据
" u4 H9 F. \0 Q( U; W& _3 s3 U - .BYTE $08,$04,$02,$01,$80,$40,$20,$10
! i! k" V/ ]( q% P, F - and_data: ;按键相与数据
, u7 V/ n- C3 [# O - .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF: S: G- t0 f7 o% _$ i! R7 b
- - s4 F. Z6 s9 K; G
-
: m' b# ]. w" z - * _ L$ R# f* U
- . ?3 g8 q, E- O2 d% R
-
3 N+ t) v9 y& @: ~( W - ( f& I) @5 @. _9 M- r1 C
- ' N) {6 o, C: b
- & D Q" ~) C7 X. d
- ) D+ d6 O6 A# J% f- p, s
- .ORG $C264 ;自定义的MAPPER2切页程序8 A$ r- ?2 }1 E
- PHA
' z+ \7 F/ X `0 B K - TXA
8 X$ L8 j5 h& q0 ~$ m1 k+ [ - PHA
+ K9 o# u- }; O4 |- O - LDA $0066
0 D' M# P+ C& j6 o) e$ ~5 { - BNE ADDRC280/ s2 B9 \$ y' G5 M' M) m
- LDA #$07
$ c1 q, }) O3 ~* }- [; M - LDX #$03
, X5 n( B* K5 c- O0 t. [: K1 N5 ] - JSR $CD9B ;自带的切bank方法) p+ ^% Y; I( T8 Y0 z
- PLA% e; B, e& U" }: r9 R! W
- TAX
. f, J; ]" ^; O0 J6 \1 f( a - PLA( {/ ^% e- C, i: i: Y% Z B* E5 e
- JSR $8000) L7 I: j2 _% [/ q, w
- LDA #$06
" u V: I( F; E5 L* d" i/ m# c5 P- \ - LDX #$03 X3 L) y: s0 M, E& u
- JSR $CD9B ;切回原该切得bank(可以不用)
3 r0 O# r- K) [ - RTS
+ e" e% x6 G: w - ADDRC280:
8 U1 e! z! G' A" S - PLA
! j7 y' V) ~0 W: a- K7 w# M# Y - TAX% m/ D5 U ^* Z, u* m
- PLA) K: i/ o& n0 C: H9 ]
- RTS1 i6 {' S: X) h+ ?' U1 F
- ; f9 I6 e4 S2 j
-
$ Y& a7 \* r' d# `: u4 ?. d - ;[FC][最终任务PPU][END]! S$ D) t: U+ W8 @5 B
- .ORG $C056 ;跳转到PPU重写程序 y- \8 O8 V7 j& j+ p1 Z
- JSR $7000+ q1 O$ N: G6 y5 b+ B
- 6 d* M1 { X {6 Q0 K4 U/ q' k$ J! P
- .ORG $CEBF+ Q# w6 E/ F/ T
- JSR STAGE_DATA_WRITE ;跳转到关卡数据写入' C/ l6 m9 X8 E# v0 k
-
" k: \9 n1 G& O- l8 H - .ORG $E460$ ?4 b0 V" @! J7 r% Y
- JSR BULLET_DATA_WRITE ;跳转到副武器数据写入 Q5 V) } J& U, I0 k
-
& F& m V; ]& c - .ORG $71F0, X* \2 V; W: k% t- g" K
- STAGE_DATA_WRITE:1 ]8 u l- H# F5 k! x0 i; t' C
- LDA $60104 B7 x$ F. d- x$ E6 ^) x3 o! g8 W
- STA $1E ;关卡写入
- l9 Q5 G/ M8 p- [" N - LDA #$00; x8 X" W/ y0 Q) v( {2 X c
- RTS
$ y D3 V" S# r - .ORG $71C0) G6 }4 V& [" h7 |* Y
- BULLET_DATA_WRITE: ;副武器数据写入
( F S) [( S0 w - CPX #$0E" y7 [$ J* `9 q: c4 q; w3 d
- BCS P2_BUL
8 S- _, G# J. V$ p2 N - P1_BUL:
4 U/ T. W% `- G" n - LDA $6004
# }( t" S1 D3 W6 E- [ - JSR $D7D0 ;P1副武器数据写入
2 c, J1 w, d' K! U; W1 @' X - RTS/ M3 X9 {9 [9 A" C
- P2_BUL:
3 B' Q8 {& D2 S& |$ T - LDA $60056 l9 Y) m% G; z" K
- JSR $D7D0 ;P2副武器数据写入3 k- P" r0 l4 \8 G- I! W0 S9 ~# W( d, G
- RTS9 O" h8 ^! [- l+ V( L
& X. A) ^- a, \4 F- - I' ?+ b9 L! h( D1 K
- .ORG $7000
- I$ K9 o9 R2 P! Q. J - ; L5 n) a* l0 x' b4 V
- STY $4014 ;补上覆盖的精灵写入指令
# u. y! D4 l6 t, c$ [1 g! q& t - PHA
# A1 G0 {" S; f# p - TXA
5 A' R# n' q, W9 M3 h) O' _ - PHA6 Y/ l7 e3 T; {2 n9 l/ h* [
- TYA
0 y1 w& X* Z: r; u - PHA
2 H, g. O3 F f; i/ r4 q9 ^7 o' ? - LDA $0C
& S( D; ]4 e+ j4 g9 Z/ I7 S R. X, ^ - CMP #$01 ;比较是否为标题画面1 w$ }) t: q& T4 N) W
- BEQ PPU_STAGE+ K* p4 p C' `' `
- PLA9 v3 v+ i! u$ A$ g
- TAY+ O! W. L% |$ e" B
- PLA. y, T6 t5 \/ S' ?
- TAX
) i: Y) f' R& p0 `5 ` - PLA
1 K8 \( c+ }2 A - RTS
2 M8 _/ z, q* u3 r+ F - PPU_STAGE: ;STAGE显示程序) k, v7 b( H* e* j8 O( i9 C
- LDA PPU_ADDR_DATA
5 g/ w$ I; {2 P% }6 l - STA $2006
; I4 o8 r' v: z& Z, D4 J) ] - LDA PPU_ADDR_DATA+1
7 F6 i) M+ s l6 M D$ V - STA $2006 ;坐标设置' A9 S* `1 H! f0 k0 z% L& H" [# f
- LDX #$009 F7 {; @0 G7 D* _( F. e. i8 Q
- PPU_STAGE_WROTE: ;写入STAGE字模
8 Q' ]& z! h$ k% V( D8 E8 L( m6 { - LDA STAGE_DATA,X
! P& h4 i$ G; @ c) E/ _% n - STA $20077 F& b" f- m, h' h5 C8 U8 B& x: u
- INX3 f" D. I- W$ u" Z4 M. y' l
- CPX #$06
% z, G* }: @: e" }+ C2 ]) Z - BCC PPU_STAGE_WROTE2 o. T$ R! V7 G0 `" D
- LDA $6010$ f2 s j: }1 G2 m
- CMP #$FF ;关卡数据初始化条件判断
+ R7 v6 s: e: E. B V* T - BNE KEY_B+ l, t* i/ H& W2 I. M' D; y$ U
- LDA #$00 p3 g. n0 h. }
- STA $6010 ;关卡数据初始化
% L3 f& c/ X5 n2 l A& g - KEY_B: ;关卡减少5 J/ ] q6 E" v8 P0 Y R. E9 Q8 h0 @
- LDA $042 r) a& k) M2 M/ J! M7 b; E% F- A
- AND #$42 ;按键B或左减关8 Z3 l; H( i2 [- z! ~; N) Q
- BEQ KEY_A
! \; U" F. x( _1 f - LDA $6010
( ~# \: z( a. `* U - CMP #$00 ;关卡比较
1 g) ^1 c- E8 s5 s - BEQ KEY_A* q! x+ k; ]% v8 {- T$ g
- DEC $6010 ;减关
* U3 v8 L/ C* s/ N5 U1 [ - KEY_A: ;关卡增加6 k Y8 N+ Z1 Y0 k4 C) M: u" h
- LDA $04
2 a. o) N2 [1 F! o- W8 d( B - AND #$81 ;按键A或右加关" S8 K6 ^/ p4 l$ c; B4 S
- BEQ PPU_NUM_WRITE$ x' U. ^1 t. t- B: w t$ U, Z
- LDA $6010$ P8 M5 t8 J3 ]3 `
- CMP #$04 ;关卡比较5 {5 D1 l. ]0 b# Q
- BEQ PPU_NUM_WRITE9 j) k6 f( o5 n: S. _0 `
- INC $6010 ;加关
1 g: v* g6 q' V/ b - PPU_NUM_WRITE:
! ?3 h7 T2 n- L: V$ [ z8 ?5 X - LDA $6010
' |1 j7 i% _$ X6 [ - TAX8 X' f& \& t2 ?9 K$ T7 g
- LDA STAGE_NUM,X ;写入数字
& D3 w6 w1 O# Z' \- T - STA $2007
2 |7 l ]( a% H) b5 Z% ~. l5 E - PPU_RTS:, T4 \9 h5 H! a) E
- PLA1 |5 F) F! s. u. M. s3 ^
- TAY
! S4 S( ?# f( v4 M- ]& Y - PLA- y+ z) w3 D% u
- TAX+ r& {% }" v2 U2 V
- PLA
8 e' W4 F( o, _& X; i - RTS
. k) @) B" `0 m j1 q% r -
- f2 F! f! N; Z1 j: c$ [ -
' e# g. O9 {8 x9 f9 v% g - STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据( u" g3 ?; T& W6 s$ O
- .BYTE $EC,$ED,$DA,$E0,$DE,00
* x4 [# p: `4 B( w, f# ? ^- L" e - STAGE_NUM: ;关卡数字1,2,3,4,5字模数据
( N9 S' |3 Q* H, P3 e. I - .BYTE $D1,$D2,$D3,$D4,$D57 F2 W0 I! s( N. f4 p% m3 j+ E
-
: b+ V$ R: x6 D9 Z - PPU_ADDR_DATA:
Q7 A" z1 K, I: m5 D2 \4 o7 { - .BYTE $23,$0C* o9 g0 z8 Q' L0 x; B
-
- i4 q% F* [; h1 o. N
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|