|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑 / {5 q, p' J/ K( d/ {
% f9 k" W0 R# p4 ]) V [FC][最终任务][END选关]
7 |2 W) c5 w) X+ A9 \6 \6 M* G6 n" O5 M# J, }- j5 S) ]4 e
时间:2017.3.29: d1 p5 a/ N1 K3 B8 Z( P" J9 s
作者:FlameCyclone& A7 f, m/ a8 K" j+ i) h* {& @9 u
内容:
$ P+ W; |$ _9 }+ X( O( \! _# U 1.关卡选择: 标题时,左或B减,右或A加(1-5关);9 ], N( e5 P( `: h7 C. }
2.无敌锁定: 暂停后,按上键切换;
) e/ L# X1 ?( W0 }' A$ F 3.生命加满: 暂停后,按下键切换;; J7 N3 Y/ T- r% E
4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);5 Y- U2 m2 o# b" V4 a
5.子弹切换: 非暂停,选择键切换(普通,W,L,B);! [% g7 N" O3 e. X! N
6.B弹数量: 暂停后,按A键切换(1个或2个);; [- i6 D8 A3 ^. k0 `5 f
7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;& y& e3 D! Z/ Y" k4 O
' B# f8 K/ f' O( {7 f- P
# u* S: r9 x7 C+ G
5 Z1 M2 k: N- o; r! V% }* f3 Y1 H+ e: x/ H! _% b
' y' m$ Q! M, ~
- I' X- n) z% e
z1 X! |! b+ B4 t4 @, l: R
FlameCyclone.ys168.com
5 \/ d ~& ]. S+ T3 x# e) P0 Y/ [www.nesbbs.com- ;[FC][最终任务KEY][END]
: O5 r x1 H# z, P5 W( T6 M# w: o - button = $04 ;单次按键; @1 U# R' p. V
- flag = $6000 ;功能开关标志4 ~. E! h [# z( `* B' ^
- pause = $000E ;暂停地址7 A5 L7 z4 ~1 j- e
# B" H8 J5 S3 F$ ]- .ORG $8000
! V$ a* {9 v0 Z3 r/ a m1 M - LDY #$08 ;自带的按键程序
. O: x0 c0 f0 W* N - ADDR8002:
# {% ?6 f: d# S2 U - LDA $4016,X
+ N% d. G! L. \. r/ C3 ?- n - LSR
! h4 c# v9 {! ?' C - ROL $0021! A4 P$ B9 ~: _& J( b/ R
- LSR
! b! M* n1 ]+ f* }" `( M+ N5 q - ROL $0029
' i1 u* i P. {; v- R7 U - DEY
) J& j. h/ T5 D P) o+ x2 y0 I0 ^ - BNE $80022 P, k' K+ G$ o# Y" F3 z
- LDA $0021
& \+ W9 U! k0 L( O1 D$ T3 ]* X' u - ORA $0029
- g% F2 y8 _, U% _8 d& R: @ - STA $0021
) ]9 T" {, f$ q7 Q9 X; I) Z' h4 B - LDA $00209 W+ r$ ]2 q W
- AND $0021
& s) \; k: [) e7 R* @1 k! n" ^ - STA $0020
. F) L9 |5 h& F5 o M8 D2 U, Y! T+ w - LDA $06,X
9 }0 g- s- ^( J t - EOR $0020" C0 A6 c" n8 q2 }
- AND $0020
6 r$ g9 n" y( B - STA $04,X7 d- z6 ]" q# w/ U, S
- LDA $0020: E1 Q$ l' J) t9 b
- STA $06,X0 @/ g' D. S2 j+ d
- JSR KEY_OPERATE
7 i" l; W3 @/ s% G5 T3 ` - JSR Function ;功能调用
4 G" g* X* O$ o - JSR Weapon ;武器切换调用
. v, ~% t0 O; W* S5 f; E: ?9 c - JSR Power ;威力调用
1 a5 @! }* c# V% L - JSR BULLET_NUM ;子弹数目
: i/ E9 G0 P* T; J3 U, r - JSR BULLET ;副武器类型8 A: c- E _; Q# G7 F/ H) ^% T
- RTS5 {& X" v1 H% P' p) v
-
, A2 S. P5 c8 { P+ d5 Q - & T( ^9 H5 w2 V+ q, V) |7 F$ [
8 w8 A# [2 E9 b% a* u6 S- o- .ORG $8050
_$ n/ O1 Q, @" i4 S/ v: T - Function: ;功能
" K5 A3 m Q& ^4 |. l+ p - WUDI: ;无敌
0 k( J+ M# T6 C2 P* |$ u - LDA $6000,X9 A+ L2 |/ \5 Y; j; a/ W9 C& X/ t
- AND #$08 ;开关判断
. ], {) U+ p( G% E - BEQ LIFE, t4 P$ M1 ?+ [# V* ~
- LDA #$05
}6 p) |* a w# t4 x$ l, b# Z; L - STA $05DC,X ;无敌锁定
$ G# i6 }: z$ `) z, N - LIFE: ;生命6 u2 n3 k) f1 ~/ t' y( J8 S
- LDA $6000,X+ A4 \* F4 M' W" Y, P% g
- AND #$04 ;开关判断
9 n& T' w& Y: D% n - BEQ FUNRTS* @7 q G9 v% m2 }; o& {
- LDA #$05
9 n% B5 q3 M+ P9 r4 Q! Q - STA $1C,X ;生命赋值' `: Z( G, c# \; \4 ~/ Z
- FUNRTS:. E0 v7 R- u; f. \) q' [9 t- F, ~0 g* [/ Q' _
- RTS
+ `8 |) I- f/ i i. j( \ - ) d C$ a' `- i/ l
- Weapon: ;武器切换
X: K- _1 o; C+ }4 A' P: s, c - LDA pause ;暂停状态判断
) O) a% L* m! m0 @2 H% H2 g - BNE WEARTS
& l5 l: Z: C% ]+ x' s: r y - LDA $04,X B% e/ |3 M+ ]. t0 d
- CMP #$20 ;选择键判断
! W! q: m) x e" I" b* | - BNE WEARTS
& Z% \& H% M, q ] - LDA $12,X
; {9 g2 f: F* x& X - CMP #$03 ;武器值判断2 O6 z% Q: d# N0 W2 X5 o& i
- BCC WEAINC
% o: L- r! d6 ]& E$ z! g - LDA #$FF
" S$ {7 Y" V1 a2 s& p" a - STA $12,X ;武器重置0 ~) B, ]$ }4 N0 _$ k5 d) u5 L
- WEAINC:% p' d! }: E4 f% x# c3 A
- INC $12,X ;武器增加$ r# k1 r# W' F" x8 M/ a% z
- 8 M& {: Y3 ?& \) u) n0 n' r* I
- WEARTS:
* E' J/ k5 A% s; @. [ - RTS7 a' ]/ j4 {( p8 R$ D" f6 s
-
9 C) I/ k$ @" ` - Power: ;威力- s$ q0 R3 i5 p
- LDA pause ;暂停状态判断
5 O- F5 ~( l, ]& L H. l8 z0 A - BEQ SPERTS
2 K! |$ ]9 U' H+ r8 c - BUT_LEFT:
1 v2 U& R P. B, } - LDA $04,X7 U+ R) C+ [: n) p8 j/ @1 n# d
- CMP #$02 ;左按键判断& P# h# g+ f! {0 I6 F' O0 l4 y
- BNE BUT_RIGHT
D. H$ Y. ?2 M; y - LDA $88,X
$ i. {7 _/ ~4 Z - CMP #$00 ;威力判断
4 T2 p/ v/ N3 J2 M r4 N - BEQ SPERTS9 B7 p2 [; |8 C* h. {
- SPEDEC* n+ w% L5 f! h. k
- LDA $88,X ;读取武器值' A" r, `3 {& ?6 N0 L b
- SEC+ Z+ W& L; }# @# S% H+ P
- SBC #$081 u2 J3 y7 g- y
- STA $88,X ;威力减小' @/ \6 P- d0 i5 Q* E9 H
- BUT_RIGHT:/ v% d O# c# \3 X
- LDA $04,X$ d. j) x4 Z1 j9 L
- CMP #$01 ;右按键判断% J+ C( m' ^" q& b- m
- BNE SPERTS& l6 y H+ q6 I3 U3 E# g
- LDA $88,X( d! t1 x+ | z* o+ [* c
- CMP #$10 ;威力判断+ s0 t- M/ a- B2 Q" J3 k4 V
- BEQ SPERTS
3 p- L" X+ T7 [. a1 i9 B2 ?: f% m - SPEINC:" X7 |) u3 e& Y9 y* v
- LDA $88,X ;读取武器值" I0 W# A' {0 L5 H' H2 u8 B
- CLC8 V* P7 H3 O' H% j7 x
- ADC #$08% a! s f- k- v x) t, ?% d
- STA $88,X ;威力增大& T3 A3 j3 b- D0 R) E% k
- 6 c) H/ a" h9 t& `+ f, i; w
- SPERTS:
! Q3 k5 X; e' P' f j9 v" C7 U! t { - RTS! L7 G/ p |( l7 ?, b
% u0 N, M6 u" y) ~8 B9 J5 C4 X- BULLET_NUM: ;子弹数目$ e: {* D2 w( L6 N' b
- LDA pause ;暂停状态判断6 x; ~# R+ D& z
- BEQ BULRTS
+ u! s% @. ~6 V9 s6 o - CPX #$00 ;主机玩家判断' y( u; a6 f i( j6 G6 A
- BNE BULRTS
' p; C0 |5 I( K1 t& r; C - LDA $04,X ;主机玩家判断$ d5 r3 Z8 F- l1 R
- AND #$80 ;按键A比较& Q/ m% Z: P4 w* H$ h/ z$ P) w
- BEQ BULRTS
3 h: l# k( S9 \' T* u* m4 o9 J - LDA $87 ;状态判断# X+ o9 j0 j1 e) B9 K
- BEQ BUL_2, c; ]# z' w2 f4 ^ o' q f* s4 s
- BUL_1:
" a" n% ]4 w1 h6 Z# u - LDA #$00
" ~" y" g' Y2 V; [( R! P, W - STA $87 ;1发子弹
+ S# A1 B0 R& q/ Q; g - BEQ BULRTS: V' R n+ [# B# B" Y$ [
- BUL_2:% K$ H/ \& ]2 Q) F: i. E6 N+ d
- LDA #$01
; o- g% G$ i: ]2 U+ i9 P: r) N* s) t - STA $87 ;2发子弹1 c, l& T# ]7 ~( c& m3 J, r
- 1 f% \$ a' a& a
- BULRTS:( A Q" d+ j' A! T8 Q
- RTS
, k! u$ i$ Z# M& b/ f8 m6 T - 1 g# d& X0 [4 D: h4 t2 x, \
- 7 s1 G5 h1 Z/ _2 y E& \- _
- BULLET:
% {1 s# p) s- l$ _# Y# K - LDA pause ;判断暂停状态# i7 I* S8 B) k$ y9 F# \" c& t
- BEQ BULLETRTS7 Z+ P3 j. ~) T6 v! S q
- LDA $04,X
9 R) G. F! ^/ q' _9 D6 [ - CMP #$40 ;按键B比较/ {; @$ |, |9 w+ h( b( p9 q
- BNE BULLETRTS) Z( [; R7 v! b4 A6 S$ \ ^
- LDA $6002,X ;读取副武器
3 E3 X+ v, v- U n1 @0 } - CMP #$03' G5 P) ^+ s% {; P. X( h/ D7 X7 ^
- BCC BULLETADD
- b8 U! U+ D/ o& a+ Y - LDA #$FF) [2 d9 T7 U- f( |
- STA $6002,X# r$ i" @3 w5 `1 d9 P; N
- BULLETADD:
3 F, \9 E( M, W6 v. F- f - INC $6002,X# t" O+ R6 P/ T* J6 G5 Y0 C! K
-
; ?8 \( {3 [0 y* T- Q( m! q0 L# M6 N - BULLETRTS:
( T: W' i5 p- ?7 [3 i, X7 P - LDA $6002,X
7 `0 J8 x8 P1 D- k+ \1 [ - TAY7 s v' q% U9 f" L' [, E7 b
- LDA BULLET_DATA,Y9 y3 m! N& T8 D e! ?
- STA $6004,X ;写入副武器数据+ ?5 D, m ?2 @ W) N
- RTS
' A* v- F1 i( N - 2 K# c6 B" f, i3 E( F9 J' g
-
3 H! u5 @. ]7 j3 ]+ F3 y - BULLET_DATA:8 }9 O4 g& J2 ^( N
- .BYTE $06,$02,$03,$04& ~' g$ h9 `4 Y0 B
-
$ W' n( |6 Q0 n2 w - ' y1 ~; C$ L- ^( p( C: @: b
- 2 m5 c0 G" |+ \7 w3 a1 [- B
- KEY_OPERATE: ;按键开关操作/ r5 t' K8 z9 [* V& k& q' I
- data_protect: ;数据保护# J4 L' P% h; s* S& t; }2 w6 {
- PHA9 H$ U8 z8 k1 l( R
- TXA; |( ?* t+ w1 D
- PHA
* d3 }* s1 C3 {9 p - TYA5 t* P; O1 H$ [. W& J3 i2 w
- PHA: B; l! \2 Q" ]7 Z3 M1 }
' k9 \: y4 N: u+ o+ Z- FLAG_INI: ;开关标志初始化
' h C& n! k% ~. T- k
( J8 j8 z2 N3 F( t- LDA $600F
1 p9 x# w' S6 J - CMP #$011 j* `- ^2 t2 ^" p \& K5 U
- BEQ pause_cmp3 d" c: O" Z# \* F/ E4 v, S
- LDA #$00! A7 p' B% u' F0 n( J
- STA $6000
" N3 I4 ?* q3 G" z" ^# `! h - STA $6001" u3 N% @2 x/ L+ T6 b2 r y
- STA $6002
# B5 M* z3 N, _ - STA $6003
9 H/ F8 N8 ?' k- V( J, |& @" Q* p! G - STA $6004
" G# s8 o4 x, S; G - STA $6005$ }& b1 m k7 k; F3 g# B
- LDA #$01
0 d6 \6 O- h& T, g6 I: \' U - STA $600F
' ^0 m6 {/ q, X& | - . k$ ?& A: |! y/ j/ j1 j( R
- pause_cmp: ;判断暂停状态. h* Y1 R% P4 }3 w
- LDA pause
; ?7 R) c7 z( P9 J - CMP #$01 ;判断暂停状态3 v H+ j2 l* E1 y" ]
- BEQ button_press
' q: s/ ~; p9 q& J$ x8 @ - PLA; q- {/ r4 ?' @+ p# T
- TAY
7 G; Q; e0 r7 G- ` - PLA
& J8 h, S9 w* D) k2 Y* V0 C - TAX0 U# ]1 Y0 U6 U2 k7 s$ ^
- PLA# n! p% L& O& Y
- RTS
* f/ f- T* k9 F0 l7 C# h# \ - 2 b, d! _7 ?# V4 V9 p7 r
- button_press: ;按压操作1 N2 P& {9 r8 o" Q `( n. G
- ini_Y:
" l* F. I2 ?+ i( y' \ ~- M9 ]. q* L - LDY #$00
1 _. e& R+ f: g4 Z - button_cmp:9 S* F1 X( h8 m6 ~1 a; ?& u, w
- LDA button,X
6 b( w! w! O @/ Z { ~7 M. l - CMP ora_data,Y/ R/ |/ O C, d- s( q3 |, h
- BNE count_Y_cmp3 `! D% ]! n4 C4 y# \
- flag_cmp:
7 R4 d2 P! L- {+ x& @, d. G ^ - LDA flag,X
6 {! N: u( V- N: e" I - AND ora_data,Y4 O6 Y$ K3 `( L! J
- BNE flag_and+ j* |6 W3 r. _( Q& b/ ]7 v
- flag_ora:
6 E# v7 ]# _& X* y, t) i; V - LDA flag,X" c! \( o. D0 O' p
- ORA ora_data,Y9 }; {; X% D5 u+ a- A9 S
- STA flag,X
D0 `' w, M6 S" v& s$ h6 k - BNE count_Y_cmp! ?& A. t& K) I! y( R: c2 @
- flag_and:
3 X& }% e1 j$ E F" i+ w# F+ I - LDA flag,X- _6 Y0 _" H, x
- AND and_data,Y
$ @; J( u k: o7 |4 X3 w. S - STA flag,X. M4 I: J+ e3 y. N- ?: {- R8 P# V5 A
- count_Y_cmp:
3 M1 g, W+ s5 H) K7 S! H - INY" Q' H* S7 ~& h4 X) D {
- CPY #$081 r& F4 V6 h+ s4 A: }
- BCC button_cmp+ |5 m6 X( l; x4 z7 H
-
# X* V5 i5 j5 ^& f/ h - data_extract: ;数据恢复
0 L* Q" E: ^) F, H T - PLA" y' `6 W4 s4 O( @) l2 F9 ]1 p3 |
- TAY" [0 Y! g+ ^4 Y) M* I
- PLA
! n8 p1 C# F; K% \ - TAX
( ]3 q$ j7 D/ K' a: e - PLA4 Y8 a/ m! U0 `
-
% }( v! J; d; `$ [ - return:+ M$ G. [7 ^$ x; h6 d( a4 e! Q
- RTS3 k/ A q7 _& h/ |+ A6 l: e4 J; a
- : @# O* m# t- l$ v1 ^( J( w
- ora_data: ;按键相或数据9 ~- m# J3 }# K
- .BYTE $08,$04,$02,$01,$80,$40,$20,$10) B/ H$ A0 Z# ~, Y+ h" y. O! g
- and_data: ;按键相与数据
' ~: s d \& @5 g- W) P3 q - .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF u8 \: [0 X- o: Y3 S; l
-
0 Z% f+ L3 P2 }5 H3 x -
5 W% C b M( H- s6 g- f - 1 d, B; q) j9 `
-
& ?/ I6 }0 {% d1 [" M- ~0 h - ; B7 p# c7 f* r. V
- ; l1 k k# U2 N# Q: r C% y+ o( `
- p0 `( @8 Z+ |( E
0 T' e; J& }4 x( K- 2 j, K# x% f1 P, S
- .ORG $C264 ;自定义的MAPPER2切页程序
3 c. R3 y% C1 C# F9 Y - PHA
" N; n" O Q( c$ i- E1 s - TXA) S& I' _8 a9 z; v. z9 U: k
- PHA J) V( m+ C, P) Z% G$ l/ }
- LDA $0066
, T3 |3 K! r4 ? - BNE ADDRC2802 c% T% u/ Z- W+ W* A1 w
- LDA #$07
( M' u3 K9 ?* t8 N- U - LDX #$03
8 f1 \/ A# r$ L; q& m - JSR $CD9B ;自带的切bank方法
6 a" C+ T7 e$ W- E: t - PLA" [7 O! s; C h) C
- TAX
1 `9 b, Z2 Q1 [7 h - PLA# \) |* [# B* w3 E+ ~* B
- JSR $80002 G8 Y& \# P& M' A
- LDA #$06
M9 T" h2 @5 v/ r8 I) M2 \ - LDX #$03! o- V. B: f# ~! K/ P. d6 [
- JSR $CD9B ;切回原该切得bank(可以不用), R8 q2 C3 o$ p: d
- RTS
7 |9 J8 i5 i& o" l! _: j - ADDRC280:* |# ]& B$ ?& \& @: O# _6 r
- PLA) s. @+ O* w4 f" @9 t
- TAX
6 Q% k6 y# k* z! D% ?( |% {# a - PLA& w: L$ y* j6 y/ J& q6 j$ c
- RTS
# k/ G4 G# h7 P3 Z - ( W1 D4 O- [, B4 N
-
( o9 p8 J! d P& n* F8 D - ;[FC][最终任务PPU][END]5 `# y% j4 N3 d; T) {9 v- B$ @
- .ORG $C056 ;跳转到PPU重写程序" x) n$ `+ Q5 t3 |9 |
- JSR $7000$ H g( _' I5 {/ ?, |3 i. q3 Z( ~
- - U- C$ O0 Z7 x* W- A) Y
- .ORG $CEBF; \3 D2 J/ c4 g2 g- `* X
- JSR STAGE_DATA_WRITE ;跳转到关卡数据写入
/ _0 a; O$ ?7 l1 J: a8 t - 8 d) x4 {# G! s6 l ?& p! m
- .ORG $E460
# B5 }3 e' U# P2 |; M, ] - JSR BULLET_DATA_WRITE ;跳转到副武器数据写入
) k3 v* c7 K" j8 G; m -
& q3 W8 Z, y/ n/ R, { l2 x - .ORG $71F0
$ ~* T" ~4 g7 v8 R - STAGE_DATA_WRITE:. k; V% b# R% I9 B, y; A: |
- LDA $6010
" P' T3 Z+ V8 _6 g- u/ `8 D - STA $1E ;关卡写入: B' s# v& l0 K0 V
- LDA #$008 \' ?- _7 S4 Y0 }; V& v" i
- RTS4 M6 t. ^1 y/ H# b: V2 [ A
- .ORG $71C0
' N& p- p8 i; W1 y5 o: X% b% ?* u, x; Q - BULLET_DATA_WRITE: ;副武器数据写入1 E$ b; f6 C; ~' \
- CPX #$0E8 ?6 ? J0 \, J- \5 I
- BCS P2_BUL! e3 c. A2 Y# x! n$ d; ]
- P1_BUL:
m- s+ r6 m8 |) n5 a - LDA $6004* F' t0 j& i9 j7 v8 X. y
- JSR $D7D0 ;P1副武器数据写入 \' g; D& D! M! [! e& g- T0 s$ l
- RTS
0 u2 `0 R3 S2 l. W3 k+ p1 ^ - P2_BUL:
' ]5 m4 p( L+ M - LDA $6005
0 l l" s G T6 L% V9 ?( [5 ? - JSR $D7D0 ;P2副武器数据写入' U0 J' t. g2 [( @ R9 ~8 o; ?4 j' J. l
- RTS" E; k; T, a" ?8 L B
- ) |3 G5 _/ l4 V& U
- # ?' O* M( s3 k; c
- .ORG $7000/ \: i7 [' N+ K! w8 i B
-
; x& E7 R" a/ X) b A& O2 y! K - STY $4014 ;补上覆盖的精灵写入指令
% v3 M) m, W/ v/ Y. p; `. _ - PHA
3 B' n9 W- p7 }$ d9 o - TXA
) k k0 O+ W% ~# W2 H - PHA8 J2 l- g6 l, j: S5 i3 v5 J* A0 t
- TYA* |( x2 W% E! K/ k
- PHA
( A* {% t/ _& t - LDA $0C% I! [3 k- P7 \6 K
- CMP #$01 ;比较是否为标题画面
) d& u) d' @. V* x( Z - BEQ PPU_STAGE! o( I1 w* o; Q) @8 a
- PLA2 b, Z# Q( ^4 d4 l1 |2 r
- TAY/ {! ]! @& P% S/ Y, m/ n- K, d& p
- PLA4 X$ W' r- V S! A. ~
- TAX& R Q+ L* d' D$ U* U$ j
- PLA
9 `: I4 x. t8 J* H8 d1 s - RTS
$ S' C& m$ S4 n - PPU_STAGE: ;STAGE显示程序
: D4 e* H1 Y# w# F! q. I - LDA PPU_ADDR_DATA
( e4 k! j' i: q- b* q% f - STA $2006. ]9 o, K& Q: \) j# U" h1 K
- LDA PPU_ADDR_DATA+1
1 {% s: Q# ^3 Z1 S - STA $2006 ;坐标设置
) s( ~9 S8 z. ~( A: [( a - LDX #$00
7 m. H+ l! Y5 f! o$ z" P5 i - PPU_STAGE_WROTE: ;写入STAGE字模% |0 d1 [: x; c9 c9 [; p( }
- LDA STAGE_DATA,X2 |) E0 i' q) Q1 U$ u2 Y# q
- STA $2007) C6 q1 L3 q8 a d
- INX
2 s. K$ o: X. \( K9 h; v - CPX #$062 N; [/ h. u, z. v4 X
- BCC PPU_STAGE_WROTE
$ r/ I; M4 C5 j s4 c" \; {# O0 Y- E - LDA $6010
6 t2 i# C: X+ g7 n2 } - CMP #$FF ;关卡数据初始化条件判断
1 N `: |+ \" | - BNE KEY_B8 X( L7 j, |" ~: r- P) E! \
- LDA #$00
& q3 y C" c: _5 A7 B8 \9 j: H - STA $6010 ;关卡数据初始化
5 n8 \1 z- u$ Z; ] i - KEY_B: ;关卡减少
/ o! @6 R4 `- v - LDA $04! A( U; O( S8 E G; @
- AND #$42 ;按键B或左减关
$ x, j( x u% s0 h, i+ h2 [ - BEQ KEY_A
7 i4 K2 H5 S& E3 K4 m - LDA $6010( n7 F; C) h8 v4 z
- CMP #$00 ;关卡比较6 x- R4 g. B# S& ]3 n; U4 q
- BEQ KEY_A
2 R( _7 B0 S' k" H$ u& e+ a9 R - DEC $6010 ;减关
' j* A$ C9 [- ^5 N' E7 d% ] - KEY_A: ;关卡增加
: k' ^2 D( L4 `# C. q) P# X' M& o - LDA $04 S0 T8 B) _: Y( C$ |& t' x
- AND #$81 ;按键A或右加关
- b( R+ v/ f& q! j; U9 y - BEQ PPU_NUM_WRITE# B' d; W( L I, b9 j1 U* r
- LDA $6010
1 D! N% D/ a# b6 h% y2 [9 w: @7 Z4 k - CMP #$04 ;关卡比较
% R) d' _! a& K% S5 I5 s) ?* v - BEQ PPU_NUM_WRITE+ y n9 }9 \8 M, _) c+ v) E7 @& F
- INC $6010 ;加关
; O+ [' D/ f) b6 t( w - PPU_NUM_WRITE:
& J0 ]7 J8 f5 b2 M& Q - LDA $60105 J( G+ K1 `# D0 g8 z$ T3 ~2 C/ n
- TAX
# f: l; X+ z$ b$ d$ D - LDA STAGE_NUM,X ;写入数字7 O# K0 y& {+ Z( O4 n# N3 q
- STA $2007
! E/ I! y' G& z U - PPU_RTS:9 D9 x, q' ]- ?8 A) s& i
- PLA
* U8 b; N- v& Z& w - TAY
+ m! z) Z& s$ B% y' P) z; k( ~$ E - PLA
- T# C- {& D) W9 w5 h - TAX
! n& U8 A* G' K( i" T7 C$ J2 V& Q - PLA
) J2 Z* z+ R- q, P - RTS
5 }8 q+ S! C/ f9 ` - ; u" P! A9 \1 j" p
-
4 k) ~: ^8 G+ H* `: Y' S- q* s! x0 [ - STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据1 o. l% ? A6 y: M3 x4 W* n5 f
- .BYTE $EC,$ED,$DA,$E0,$DE,009 z& I. F+ ?# }$ b2 H$ y! J6 X
- STAGE_NUM: ;关卡数字1,2,3,4,5字模数据
! I) n( E0 P# X9 P. H! i: t. I - .BYTE $D1,$D2,$D3,$D4,$D5
' g5 {7 ~* H* r -
' z/ }4 q# w: j, j" K* n9 j0 f - PPU_ADDR_DATA:
5 c* A% N' l- d3 P) x A3 |: T - .BYTE $23,$0C
j# L8 X0 y" w! m* {4 w - 2 J$ \3 ]+ {7 W/ T& v4 h% j! G
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|