|
|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑
% W0 t& L) x. G1 m, f w0 q2 x0 l
+ H1 f& n+ E- K M& c0 p; w [FC][最终任务][END选关]
8 p( D2 A7 p: _, F1 Y
& f; W) ^' }* w5 }* z时间:2017.3.29
5 |1 \/ ?& |+ U/ ^7 {' Y" U作者:FlameCyclone
9 Z) P" y1 v2 ^! E0 O6 R内容:. d8 r9 {! x" u
1.关卡选择: 标题时,左或B减,右或A加(1-5关);9 ~) ~- {! A4 \& c7 ]+ \
2.无敌锁定: 暂停后,按上键切换;
p; J5 g0 A" K% c4 i% G3 p 3.生命加满: 暂停后,按下键切换;- s, x% ]' r$ |* N0 H, F/ L
4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);
$ a* U% b* b, M# g 5.子弹切换: 非暂停,选择键切换(普通,W,L,B);3 P3 K; |8 S( P" p# I
6.B弹数量: 暂停后,按A键切换(1个或2个);
H' `( K0 Z" A, ^8 r# r9 i 7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;. S5 K3 e2 S& {5 E7 m
" m6 H& Y9 K! ^* q* B$ T8 I
' }: ^1 ^5 y0 o/ N6 Q& E/ F
% I% } K& O, ^" K- \; o

: C' Q7 o- c a
$ d. p0 ]9 O1 T
* C2 n7 X q- v$ P5 f8 o( s8 ~% A5 l/ l; A% T5 @% T
FlameCyclone.ys168.com8 f: d: ^ _& m* L6 O
www.nesbbs.com- ;[FC][最终任务KEY][END]9 L: s& ] s9 @* a
- button = $04 ;单次按键4 E- G+ h. E' |5 U' S
- flag = $6000 ;功能开关标志
9 H+ d& U3 h+ I, C1 _1 m1 y& V$ U4 x - pause = $000E ;暂停地址
4 n! E* U$ r, o8 k) A" ~ - 7 a b' N% F3 g0 a# f* K
- .ORG $8000
% d t# ^2 `( F/ S1 m) B. j - LDY #$08 ;自带的按键程序0 `1 S% \; O9 }3 n# _4 C
- ADDR8002:0 B8 U' T; Z0 _. p, \$ O
- LDA $4016,X5 p' c% v4 h& q' j8 U( P
- LSR( m: z9 U7 s0 B) e O1 U3 C: g
- ROL $0021
0 }9 X1 H2 a6 K - LSR$ c1 l$ J% A3 K9 y2 d1 a
- ROL $0029
2 t! b! ^$ P1 p1 O) N - DEY
5 X" |6 b$ L$ C" G - BNE $8002
$ S; \ t b4 N& s4 m - LDA $0021% `; t" p$ r$ H' O0 g w3 _6 Y
- ORA $0029+ A9 ?2 i9 ~# [* x4 M" o4 p
- STA $0021
E4 `7 o; w! G - LDA $0020
1 `! K" N* R% N. X - AND $0021
8 o1 r+ `+ q: Q0 V# k! ` - STA $00200 s& R/ J( w! W6 \
- LDA $06,X
5 Y( F8 q4 x6 o, m* c - EOR $00207 J/ z4 M* R5 S4 Z$ G$ f4 M
- AND $00209 V) c- b4 L! h5 y: ?$ O
- STA $04,X
5 M/ E+ e. G. t u - LDA $00203 n) G6 s; I) U r c6 |) g4 m. V- ~
- STA $06,X
+ H4 l4 \$ k: N( u - JSR KEY_OPERATE
$ c/ M+ i8 L" q2 r( { - JSR Function ;功能调用2 \+ C8 Z7 d' L$ T
- JSR Weapon ;武器切换调用4 Q( s, o3 u$ n1 V3 C! Z( j) d+ T
- JSR Power ;威力调用
1 }. ^" f D }" i - JSR BULLET_NUM ;子弹数目
f J7 G* E+ b( @* E6 f - JSR BULLET ;副武器类型
5 ?6 f) a& e: }" V! n - RTS
' P, P/ A0 q/ S, \2 {0 O U - / r9 N5 r& a9 J: y
- ; R& T* X0 O- ]& b
4 d* ^1 Z& t9 s0 E1 j6 e) F; L6 e. V- .ORG $80507 ~; ?+ H& ?2 H) B
- Function: ;功能( i2 o' x$ X% X' {
- WUDI: ;无敌
, g+ F9 b0 O" Z4 f. W - LDA $6000,X2 d4 ]# a! ~; l& s" [* G2 ?: o2 g
- AND #$08 ;开关判断( E+ I2 i2 o5 \( Y
- BEQ LIFE
) Q' `5 u0 @' v* e - LDA #$05
+ b& |& Z/ D' } - STA $05DC,X ;无敌锁定0 C9 X" F( L; {" n% N% Q3 j
- LIFE: ;生命
* `, M3 }/ f2 @% X) z! f( T - LDA $6000,X0 u. K0 O, U/ }8 q6 r E4 ~% h5 D
- AND #$04 ;开关判断# ^ Z6 _' w7 p1 u! b- M
- BEQ FUNRTS5 }! ? \3 Q5 k/ q
- LDA #$055 U) A* I3 |+ O) H: C" \, H6 N& r
- STA $1C,X ;生命赋值
! x( [& q& Q( d0 N* K. ` - FUNRTS:1 B% s2 }2 V% U+ j% F6 v" U1 p
- RTS/ D( ?9 i7 O% M8 S
- . c- a+ w/ X3 ^+ T/ O! C) a3 W
- Weapon: ;武器切换
2 Y/ S, f* o0 j! { d - LDA pause ;暂停状态判断* o; Z7 `2 }% Z: e# ]1 f9 B3 P4 k3 L
- BNE WEARTS6 r9 K" _( f" p [ i6 X5 r
- LDA $04,X$ c3 W4 O) i u$ h1 d
- CMP #$20 ;选择键判断 a$ ]8 J1 i4 o3 q2 n& }
- BNE WEARTS; I: w1 C1 R% I
- LDA $12,X
& ]. P7 m3 Q0 b - CMP #$03 ;武器值判断) x( C$ b3 L' Z$ g4 b
- BCC WEAINC
/ `' q' L2 ~1 q1 K$ o! h' \ - LDA #$FF' J9 s) F" }: a/ Q9 u+ y5 C+ t
- STA $12,X ;武器重置
$ T s$ w" a4 P, F# V - WEAINC:& ^* `# H/ m) o5 L
- INC $12,X ;武器增加% r ~# S9 m& w/ S0 s' C& W. Z4 [
- 2 E( Y/ Q0 z$ G9 c! [
- WEARTS:
r5 ]) `7 V0 Z) i0 V* X2 T4 V - RTS$ I/ l) _/ X1 P. v0 W6 R
- 4 R1 o/ O% _, X1 ]
- Power: ;威力
0 f. M* @1 h. l! {- Y4 u - LDA pause ;暂停状态判断4 E. S' y5 e' H4 F* S _
- BEQ SPERTS
) J* A" v. i% U0 v. m- I* t - BUT_LEFT:+ {" p2 a+ f( Q6 |" K4 d& w
- LDA $04,X
l: z/ Y' g4 e; h - CMP #$02 ;左按键判断
A2 J9 E+ ^! s - BNE BUT_RIGHT
+ n' |) }' U0 z - LDA $88,X; R' |1 r6 ^+ U6 t3 [
- CMP #$00 ;威力判断
. i& k+ q+ B8 @ - BEQ SPERTS$ o7 k: K; E4 I, M, H" F! x4 O( }
- SPEDEC
, N* w. ?9 `' y' V, f* L/ o - LDA $88,X ;读取武器值( K$ W( ^* m# P3 ?4 a
- SEC
" I: I5 x$ A5 i4 N8 Q - SBC #$08
4 C6 @8 z! T3 t - STA $88,X ;威力减小) @7 ?" @- a& A. o& R1 I
- BUT_RIGHT:
8 A4 D' [" i' W# ^+ t& _ - LDA $04,X
! V5 K& k! y! X* U - CMP #$01 ;右按键判断6 s; ` B0 Y$ d) _; L) a
- BNE SPERTS
: p! r' d: j' a) W$ |; f/ L% R - LDA $88,X# ^: \2 X7 h" l& b; _
- CMP #$10 ;威力判断
& H5 f6 J+ }7 L - BEQ SPERTS, `- D; D9 E1 _' r8 \; r. i
- SPEINC:
$ b3 N \& `5 k g. A5 K/ L - LDA $88,X ;读取武器值9 F0 d2 }" @0 D; _/ a( {
- CLC
6 f& U) _& x& O! _6 k. \ E - ADC #$08( ^0 W" R, B, E' f
- STA $88,X ;威力增大) W$ L- d- [& T! r2 |
-
% B# G& h6 _" t - SPERTS:# s9 k: S- ^, ^! U3 h& ~
- RTS8 r) t9 k |$ C
- ' `# _, \* m$ h
- BULLET_NUM: ;子弹数目
9 v: K' A6 u6 V+ b# L/ M2 Y7 F - LDA pause ;暂停状态判断
- N% r% j( h5 G* m8 ?% X - BEQ BULRTS
: b: [7 f7 f' p7 U - CPX #$00 ;主机玩家判断) ^4 ~/ @; x; u! E' A
- BNE BULRTS7 k5 X! ~# c) ~ P
- LDA $04,X ;主机玩家判断1 ]+ |/ J5 Y- H8 ^
- AND #$80 ;按键A比较
) p& |) ]# P& g1 `$ H - BEQ BULRTS
/ H$ i- n) `/ u. l - LDA $87 ;状态判断+ B: r1 j& w) ~
- BEQ BUL_2
8 w$ e% f' W. h; B - BUL_1:
( d; u, K. z- [/ M8 j; z( @ - LDA #$00; \* g9 l% z7 O% g+ e# ]. i) g
- STA $87 ;1发子弹7 P' b# E, U" K6 d2 a ]! c
- BEQ BULRTS
C; X0 ^2 A5 d. L+ G) G - BUL_2:4 }; f1 u, K% }" @0 T! @, _6 }7 c
- LDA #$01
0 B6 v6 A5 X7 L! J1 Q7 j; S2 v5 u - STA $87 ;2发子弹3 @+ S4 o$ ?% A# J
- 6 P0 A+ V. s: \8 \* p& F/ l
- BULRTS:
* V4 ~- W( v$ `+ G! K/ Q: f - RTS( {# w4 ~ a- M
- . o5 |1 y+ {0 \- w6 n; d8 V9 e. ~
, v# N6 B! o& L/ ~" {- BULLET:) b( C) ?8 K) @9 h
- LDA pause ;判断暂停状态
% }5 K, [3 v" [% p6 j; C - BEQ BULLETRTS( r% S' q7 d8 A+ U9 O4 ]4 w0 T+ U
- LDA $04,X& N% l! y* s$ B! M( I
- CMP #$40 ;按键B比较
7 \' @% V: o/ ?) G - BNE BULLETRTS& k7 M! p" ^* l! t0 b
- LDA $6002,X ;读取副武器
- r/ W* \, _( V" i" Y - CMP #$036 Z# e9 l% f, W. L* `
- BCC BULLETADD8 z( L9 `2 ?7 u6 [
- LDA #$FF) Q8 D$ G+ C' G* B6 r
- STA $6002,X
# T9 \( p( ?2 [. _ - BULLETADD:. _/ P! j" J# B' L R
- INC $6002,X
+ W( R: l7 o1 N% W - : Q) `% p" e8 I; }) {* w p
- BULLETRTS:
2 ?/ X( l- P( z' U9 C - LDA $6002,X2 e" R6 J6 g/ n, z
- TAY
3 }6 {( b/ T5 E: O - LDA BULLET_DATA,Y/ G$ N z! T: V. V
- STA $6004,X ;写入副武器数据' j/ m5 n+ ]3 b
- RTS, d% M. \8 l$ p0 p2 o7 X; b" S
-
9 |1 y8 q. U+ t% d" h7 R$ z" ~, T - * H: b3 J9 ~( F5 y4 k: W6 O- t; f F
- BULLET_DATA:+ x) E7 K& k7 H; j9 \, ~
- .BYTE $06,$02,$03,$04
\/ Y9 E0 w( q. ~/ t: ]9 h -
0 C, Q4 n2 b( j+ J$ A% ] -
9 A+ S- P- j$ r/ g$ k* E$ [ - " }& a# L1 m* \) m7 A2 i+ }
- KEY_OPERATE: ;按键开关操作
& l5 b" U5 \. J8 n3 T2 M$ A - data_protect: ;数据保护
2 S+ E. ]' U3 U" [, x - PHA
& J/ F r8 O0 W f6 n' J9 s - TXA
$ N# k4 o) K2 v" U& [! W7 B+ T - PHA: n N! B' ]! e# m) O' |
- TYA4 s. R5 s( q# o! N& g
- PHA
7 _2 P% d% I: b/ l - 1 _9 [7 ^# m& T- G7 }! b$ o# n5 Y: H
- FLAG_INI: ;开关标志初始化4 s. u6 g% h( [% e9 w" H& j
3 `( }. u8 ~$ o! J O- LDA $600F
0 V- v0 B0 [# k. p) d) h) H - CMP #$01
E/ p9 E& `, E, |# L e - BEQ pause_cmp+ ]3 k3 ]. ^6 ]3 C# c: G1 e: H
- LDA #$00+ D% ]! p! h0 g3 x& {8 V. S. E
- STA $6000
8 {; y5 e/ z3 R' f0 t - STA $6001/ i5 k$ @, A: {# s8 f2 o
- STA $6002$ Q' m6 q6 x' r% }$ J. v0 e. J% a2 T1 W
- STA $6003
- T w( v$ b8 ?; v8 [0 G8 j - STA $6004
" y2 u1 k" M2 K' Z8 _7 h - STA $6005
, [+ P0 ]. q. g- D- x, M7 F1 _6 ? - LDA #$01
2 V4 f1 Q) n$ b - STA $600F d. m1 Y$ c0 b9 o# V
- - r# ]7 c/ G4 S3 {) N* |
- pause_cmp: ;判断暂停状态
3 B, d$ y& [2 k% C9 p - LDA pause
0 I+ |) O" n5 {5 W1 b. B - CMP #$01 ;判断暂停状态! ~4 W: w# R j' G4 ^
- BEQ button_press$ c- `, |' J( @2 g4 b) @2 M. f
- PLA/ ~) S8 \, ~! i& H2 v; R
- TAY
( m$ D7 E8 c- r' h: O7 X- ]& e - PLA1 N" s1 o2 [/ F! h
- TAX6 p% k$ X- x: g8 p
- PLA
5 E; C& ~, S$ ~$ u" m( B% x - RTS& h K) h" E1 z/ _/ ?
1 z0 e5 N8 p$ Z, y6 X- button_press: ;按压操作
! m6 L' O& t" h! A- K - ini_Y:
# H) i) p# {6 D5 x - LDY #$00
; D ?4 k3 R* O' ]5 A' W r - button_cmp:9 Z1 j. |% h2 h" j
- LDA button,X& c$ Q9 k, e' K; X$ Z
- CMP ora_data,Y
$ b3 S4 v! ]6 D$ @9 W6 n3 g - BNE count_Y_cmp1 A3 L% J5 ~' ^% }- R( [
- flag_cmp:
; F) W+ t/ F+ Y4 o- g3 G" g - LDA flag,X
; f; B7 J* e3 p8 ?* j - AND ora_data,Y5 E9 U9 l+ Y& m$ h; R
- BNE flag_and
/ I1 i: S5 m5 c) C0 G; D" N# [ - flag_ora:0 |: Q: |5 w) U2 B8 U6 s1 z8 ~7 o
- LDA flag,X
; [$ G* }: @: o8 }' {$ c% {" | - ORA ora_data,Y
; X- p) ~- ]3 J$ l - STA flag,X: @/ m" S! {, \# l. I
- BNE count_Y_cmp
/ v" p4 N; B9 C+ r - flag_and:
: H( \6 q! B j! \ - LDA flag,X
( v7 L- _7 z( S! |/ ~) M* n - AND and_data,Y
& u0 _6 O) ]" k: } v* W - STA flag,X
- f3 s2 P: x- M2 o* e9 |0 r' k - count_Y_cmp:
- P$ O$ ~3 C9 |" l$ o - INY. D& D1 S* u3 v# o
- CPY #$08: _0 Y' }" b- K1 Y5 q" f$ `
- BCC button_cmp; P7 U% N' o, B. Y6 x
- 1 @$ Q: n, X/ W3 N
- data_extract: ;数据恢复
3 X- p+ O. x. W) B/ a& X% @ - PLA b% ^* F( y$ U/ ^7 r; l2 x' ^ n1 L
- TAY% @' T8 S" ~# J! U1 l9 r) r
- PLA
o) I' \8 z) I# o - TAX/ r- ?' S' g- a+ a# w, s8 k7 P
- PLA
& }0 n8 k3 F; E* b - / V8 p9 p" b5 g$ I4 k1 D! b
- return:
* h. i2 T' L9 R* I - RTS: K9 l6 }$ I1 x( }# m# y; n
- 1 M' o" y% ~, t- F4 G( k, a
- ora_data: ;按键相或数据0 A( p+ A2 ?1 C/ g+ a
- .BYTE $08,$04,$02,$01,$80,$40,$20,$10
0 F" {+ o( _: C1 p - and_data: ;按键相与数据
7 y1 ?: `# X3 [8 v: a: q - .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF6 k# ~2 J1 w; W. y7 i: \
- $ K8 D% }3 G+ ]- }: I% r
- " l/ N, ^/ Q2 s! \
- 4 u% h4 K8 \6 z ~! B
- $ P6 j" t0 J2 T
- 0 d( {! e. a/ Q
- . Y; t: m. y' n* i: x
- & @& z0 H- \( \* w2 L- |
0 q, R+ K, x2 k
/ P0 E1 v) F- u. R- s! d/ v* y# X- .ORG $C264 ;自定义的MAPPER2切页程序4 g" }9 c& V5 `; s; \' @8 x
- PHA/ ~1 _3 g) m' C
- TXA
- p' E/ H& U4 {7 s - PHA
1 |" r8 P; |$ [' G5 H. c( K - LDA $0066+ E: O& s, y" O7 D/ ?8 F, F: M
- BNE ADDRC280
- ~. c) J4 L! s) ^ - LDA #$07; r( q, p& ~& w$ j3 f; `; r" n
- LDX #$038 w: ?' N5 D# w7 E; Y
- JSR $CD9B ;自带的切bank方法
) N% G+ d; J. O/ x2 A9 U - PLA
D6 x" b7 ?; w1 U! o' l - TAX
0 y8 i, U: |0 B0 C J4 X4 |5 E9 V - PLA) L1 S7 ?1 U. ]+ m5 g
- JSR $8000) G0 V2 p j, S' K1 F
- LDA #$06; Q+ t. |: K+ ^0 a5 a$ k4 G
- LDX #$03
. R' V2 a4 U4 n" d6 j; d - JSR $CD9B ;切回原该切得bank(可以不用)8 }% w5 J- k% y& Z! E$ S/ w
- RTS7 r1 C# v8 u9 L* s8 S+ ?* G9 h- L1 t1 g
- ADDRC280:6 T+ A: I" F" B$ F
- PLA" v( N1 v: s% {
- TAX
. v7 |' B8 ]' f - PLA
$ R% [$ e2 r) C6 p1 m. |% S2 o5 y I" @6 T - RTS, L U" v2 p* T2 p9 C
- - b% d; J, `% l9 B/ ]
- - z& @: ~3 t& C) T( y _2 b+ j) b& b
- ;[FC][最终任务PPU][END]
; v: R/ ], \$ Q+ P - .ORG $C056 ;跳转到PPU重写程序
7 I2 o& Z5 I; z/ b - JSR $7000% _2 B' m7 s* h" i6 L
- 8 r* ]! u: C+ ?; C
- .ORG $CEBF9 J' ~$ D4 M5 E* e; ^4 |6 Z
- JSR STAGE_DATA_WRITE ;跳转到关卡数据写入
& J' F/ L# N9 y/ D* G0 r+ @) v; L8 L - : c3 q; \: i3 d6 Y; x/ j1 D) q
- .ORG $E460
1 o1 r; g* I6 s, [9 _* L - JSR BULLET_DATA_WRITE ;跳转到副武器数据写入
6 a! V5 I& q! ]' `# v -
- ^/ M, w% T" b- H" A, f - .ORG $71F03 w3 `: v2 { c# w2 B D2 I. U# D% M
- STAGE_DATA_WRITE:% _* M/ |! J1 K% X. `9 y7 c
- LDA $6010
' z3 @! q' f* d8 C W$ G, R - STA $1E ;关卡写入
" w! c2 X& A7 J5 k: z2 q - LDA #$00
# c+ c7 ], _) x8 a+ v! N- G* k - RTS
$ z' {! H; }8 }* ]+ S; I9 P, R3 | - .ORG $71C0
, ~% Z6 z( e) A) [% j" P% S: H - BULLET_DATA_WRITE: ;副武器数据写入: {0 S( h( @: g7 c: K
- CPX #$0E
0 }& q/ O1 w* D* |" Q* S - BCS P2_BUL- g1 ^0 _2 y% a+ O/ ~
- P1_BUL:$ a9 P; x; n6 r; H4 d& M
- LDA $6004
5 i7 S( E4 i1 U - JSR $D7D0 ;P1副武器数据写入* h( L% F) C" c% ?) T9 ~
- RTS2 @4 _! |) y; [
- P2_BUL:
- ^( l0 P% U5 j& b" d( t - LDA $6005
2 e! ^+ o8 m8 T/ V - JSR $D7D0 ;P2副武器数据写入8 Y0 w, f' v! _8 I9 W
- RTS
2 J& x% ~5 {) ^6 y9 w - " B6 ^5 _4 W; Z$ ^& f S
+ c2 L4 l' c9 N. n% B0 U- .ORG $7000
* J9 N2 M2 p, }3 D' U2 \$ I -
! _; K1 v! ~; T# f5 k - STY $4014 ;补上覆盖的精灵写入指令9 l% H, N; @- i1 F
- PHA
+ g3 K2 Y% n7 \- i - TXA
& R! ~/ j5 f( a G8 U9 o# [3 B - PHA
0 d, b' }! ?% f0 }7 S3 f# h3 M - TYA. I! `$ [/ l4 ?9 y1 \6 B M9 s
- PHA
3 y9 \" |& S. j& ` - LDA $0C
; o5 W N3 q; q W - CMP #$01 ;比较是否为标题画面+ G, h$ L3 W) i5 w
- BEQ PPU_STAGE) R* j5 Z* f' D3 e6 W3 k
- PLA
7 u/ J @, u* H& q( u( R5 D: V - TAY, J8 u) [# B- c2 Y% o& U. @2 R
- PLA8 D7 S$ u2 `1 @- b
- TAX6 l- e- L5 x6 W( ^9 j$ d6 W
- PLA
% `8 b: c3 G# q. q - RTS! `' I; o( G x0 N4 l
- PPU_STAGE: ;STAGE显示程序
6 ?- m6 |8 E' h) P) o2 a - LDA PPU_ADDR_DATA; ^$ o" O/ c1 ^; m" O7 i* B. W7 n4 v
- STA $2006
4 r$ F! }, H: e2 d6 y - LDA PPU_ADDR_DATA+1
+ M* w: ?/ A2 H7 W# C( P4 d - STA $2006 ;坐标设置9 ~- p; _# ^+ U3 N7 x
- LDX #$00
$ w, B/ U# `, t! h4 M - PPU_STAGE_WROTE: ;写入STAGE字模
0 _8 p+ ?# j% D _8 U7 ~ - LDA STAGE_DATA,X; c% _$ A0 L- H. I
- STA $20073 G3 J! i d2 }3 g6 t( g& H! s1 _4 q" \
- INX
4 \ T$ \6 H( \& @, z; f - CPX #$06$ W6 ^7 ^8 v9 c0 b. P# n3 {
- BCC PPU_STAGE_WROTE
9 C& C) E4 [+ v. w( x9 L R! m# {, V - LDA $6010
- O& y0 ~, b5 P& D - CMP #$FF ;关卡数据初始化条件判断3 ?' G! `+ x4 e" }& M
- BNE KEY_B. N' ^9 ]2 r: _
- LDA #$00
7 S! M( p/ I' ~; R; P+ u - STA $6010 ;关卡数据初始化
! g0 C) j9 J- i# Q8 I, \) c - KEY_B: ;关卡减少; O/ w8 S3 y9 s8 E/ h! r
- LDA $04 M( J( Z; t- D+ U" B0 x1 @
- AND #$42 ;按键B或左减关
1 N9 e2 ^5 l6 D9 C! r( U - BEQ KEY_A
1 n0 [" R" y2 Q& e - LDA $60108 v# L7 S m7 p2 m0 F0 l
- CMP #$00 ;关卡比较1 ], L9 a$ G+ n: N+ f
- BEQ KEY_A$ z2 w6 i. e" {. Y
- DEC $6010 ;减关
, d& J5 a3 Y! } - KEY_A: ;关卡增加
( I. a2 i8 ~3 L6 \ - LDA $04- K' E& F2 J4 a1 U% W; X1 m) n* f# @
- AND #$81 ;按键A或右加关3 J/ R2 z. Z* q; _) b
- BEQ PPU_NUM_WRITE& }) N' h& n3 o
- LDA $6010) g" J. m4 I) ^$ V n+ C! i ^- T8 L, D
- CMP #$04 ;关卡比较; r0 L2 A% ?& ]; j
- BEQ PPU_NUM_WRITE1 e9 |9 d8 G# A
- INC $6010 ;加关) Y9 o( _! `( M$ ~( g6 z% h
- PPU_NUM_WRITE:8 ~$ K! E5 R4 P' H
- LDA $6010- U4 |1 G" t1 n6 h- K* ^% a7 {9 _8 P
- TAX3 s- R6 o) i0 U1 g8 G6 \6 Y) y- y5 W4 ?
- LDA STAGE_NUM,X ;写入数字+ [; _& o2 ^2 Z
- STA $2007
% L+ w+ k" ^" Z - PPU_RTS:* e" P& S0 h$ [4 i
- PLA
8 m; ?7 y4 ?0 x - TAY; T8 Y+ x) r4 I/ S+ E) O' H& |- A
- PLA
/ g* A7 @7 J& q5 m& ~ - TAX
1 l$ P7 ?# t" t0 ?+ G - PLA
& P' d6 }& L3 A- V' U* r- P3 z - RTS$ j3 b. T1 q; B$ T5 U+ ]
-
+ g9 n7 I; h( [" y2 G - 6 m( L5 M3 s9 v9 Z5 }( i# ]
- STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据
3 @% R. P- ~ r0 q8 V5 @ - .BYTE $EC,$ED,$DA,$E0,$DE,00
) z) U( V- y! ]8 L$ v - STAGE_NUM: ;关卡数字1,2,3,4,5字模数据7 j( _0 o) C- i* K3 L
- .BYTE $D1,$D2,$D3,$D4,$D5
* p$ N1 Q7 l" o. R2 k J) B9 ? - 6 Q, k+ y& J+ f/ x$ o* ]
- PPU_ADDR_DATA:0 A" z! O$ x# \8 |
- .BYTE $23,$0C+ r+ K. [3 }5 v* K; X* @, F
- 6 ^5 V. q, I2 n$ t' h# A" Z S- X, W/ ^
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
1
查看全部评分
-
|