|
|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑 8 f/ ?/ }. ?5 Q3 i4 \, I
- q& K) g: I3 V5 Z [FC][最终任务][END选关]2 P2 M$ R }4 @% M P9 Y
8 @$ E3 G& ~' \) p( R9 d0 V i
时间:2017.3.295 ~) i! {( e7 E) M/ ?) Q7 M$ y+ J
作者:FlameCyclone& Q8 @6 z' z& V8 {. Y- h z
内容:
7 l6 }$ D; C' { 1.关卡选择: 标题时,左或B减,右或A加(1-5关);$ [' L, _& l9 u( }
2.无敌锁定: 暂停后,按上键切换;, U; C* G: n. J5 P, K; {* Y1 U
3.生命加满: 暂停后,按下键切换;
& {! o2 A$ O( u6 q, k( z& C 4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);/ p( u& V8 Y- l6 M! ^' M
5.子弹切换: 非暂停,选择键切换(普通,W,L,B);
" t- @3 x9 G: y, q G 6.B弹数量: 暂停后,按A键切换(1个或2个);2 L6 s1 A3 w* n- n" I
7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;& m0 |, `! {% L. v
1 K. R6 B8 E/ S6 [7 g3 Z9 z$ |

@* s; C8 p, b- `! Z4 n* E1 D, ? & j h/ k6 Z Q$ l
3 A: p3 L0 s: B$ h; h& D }

m. c$ Z" H3 h' C5 |" `2 |
8 u2 O9 G- o$ H" m, U L
8 ^8 ` h, C* eFlameCyclone.ys168.com
$ h5 e- Q6 b4 V) J# m9 [www.nesbbs.com- ;[FC][最终任务KEY][END]7 x- W1 ?4 P! D% t9 B2 O. `0 F
- button = $04 ;单次按键, M& ~8 G2 k+ [$ |
- flag = $6000 ;功能开关标志5 h5 X4 [; t* r T& C0 O
- pause = $000E ;暂停地址) x9 B7 D2 _ ^
- 3 d+ M" `0 t! u2 o) q+ E8 I' P
- .ORG $8000
& K7 D) T% F! q% k' Y% N - LDY #$08 ;自带的按键程序4 R) s' k" P7 N5 `
- ADDR8002:
5 b' }! J1 O1 e- F \" C - LDA $4016,X
- p2 }5 |5 [& [0 ~ q4 }- { - LSR
T8 t/ m' c% l0 q8 h& } - ROL $00216 p7 n3 S+ W' _
- LSR
3 ~ c1 T, q! A x% Z ]# S7 V p - ROL $00298 C, S0 D% K @3 d& z U
- DEY
( f+ w o, E, e* Q' R - BNE $8002
* r1 W" V: j! u/ } - LDA $0021
' ?3 {$ B( }* M0 L3 T' z - ORA $0029 b7 y a& g% S. r. G/ B. B
- STA $0021; m' r- O& {- G. |6 _$ Y! h. e6 q
- LDA $0020
; V: k: {+ z+ n% e' Q6 ?6 f - AND $0021
4 m! T. ?3 u# D1 U: p( s - STA $0020! o7 d( S: e4 w5 }2 ]9 e
- LDA $06,X& ^8 G/ z7 E; M( q5 t
- EOR $00200 _) E5 C6 l+ n( S8 ]( o
- AND $0020
' G8 Y4 x# T9 Y% Q( w- D+ X7 f - STA $04,X! ~ q6 h* R9 @3 ^8 j: I9 ]
- LDA $0020& H% g% [2 P9 i3 o5 O
- STA $06,X& h/ J/ o1 w4 P
- JSR KEY_OPERATE7 U' J: a* N8 o8 |3 X
- JSR Function ;功能调用+ W+ J# j4 [' C9 t- o
- JSR Weapon ;武器切换调用
4 v2 T* c8 ?+ I4 [2 ~ V - JSR Power ;威力调用- _2 E' X4 g: ^2 i5 W7 I8 {
- JSR BULLET_NUM ;子弹数目
+ T+ K/ i/ B" T1 y - JSR BULLET ;副武器类型7 [( j' Y+ }0 r7 K6 v$ `
- RTS9 {; B& ?4 @* D! V9 ^. K4 u8 C( E
- 0 [* |+ e5 N( _% b; u) d
- % y. N, }: A! _+ ^$ T2 Z1 j$ f
6 d3 c3 E0 ]" N2 k* V& p- .ORG $8050
\3 O6 q+ M) m, x: L1 }& ?7 F - Function: ;功能0 z) |: A o3 S$ X! @- Q' f
- WUDI: ;无敌' L: D* w. ?( {4 S
- LDA $6000,X) Q$ N' F$ _' T
- AND #$08 ;开关判断
6 g# A, m, g! ]) T5 ?' g - BEQ LIFE* `9 q, |" z0 c8 g0 b4 A C
- LDA #$05
0 G% N( R: a" V) v* y# Z& U$ B" Q - STA $05DC,X ;无敌锁定: g! D2 K. b5 _3 m: x2 G7 t0 K, B
- LIFE: ;生命
: ?; A/ x K. A; b - LDA $6000,X: g2 b+ n: M7 G: E+ }' b
- AND #$04 ;开关判断
2 e2 q/ B3 Y' b4 t) Q4 y0 p - BEQ FUNRTS
7 d1 |5 j5 @9 x3 d% H+ A$ ?3 t - LDA #$05
/ | `. Z& Z$ O4 K - STA $1C,X ;生命赋值0 b+ Z5 M% Q$ R+ v' O9 c
- FUNRTS:& i" b5 r+ K# n
- RTS: a: V5 e& B6 ~% P& a! K
- & I7 y7 Z {) q g
- Weapon: ;武器切换
; N0 X$ @- Q' a - LDA pause ;暂停状态判断, h% r8 l- T) d" s" \
- BNE WEARTS6 `9 K C5 F3 K. h5 [* F: _' G
- LDA $04,X5 S# ?+ b# |# s. `3 u& Y2 Q
- CMP #$20 ;选择键判断4 n5 J# b& X- d1 T7 @# C* U1 V
- BNE WEARTS5 h$ O& n( {7 s5 ]- K7 [0 {8 z
- LDA $12,X
) ]/ _( V: {% ~2 { - CMP #$03 ;武器值判断: o5 Z$ G" t% Q- E0 T- P, B( F
- BCC WEAINC
4 K* D. w0 N( u ^) j3 r - LDA #$FF h9 r {$ k& }; g: Q3 Q/ q' T# y' E$ D# m
- STA $12,X ;武器重置
9 M; h+ D% e. p8 G - WEAINC:
$ t3 W* u/ f! T1 {9 G - INC $12,X ;武器增加
/ r) {9 j% f$ Q3 V% @# p - 6 X6 r6 ?7 g9 h* V f# b- u! T! T6 I
- WEARTS:" z# R$ m, P a3 @7 n3 [1 W
- RTS- l7 S H5 h2 s( P5 l: `! C
- % U7 c' D. ]+ S! K) ?/ a
- Power: ;威力! d" ~4 N: }0 r7 S0 v/ E
- LDA pause ;暂停状态判断9 n5 N2 _* T* \) ~2 o/ R
- BEQ SPERTS
# G. ]$ h7 \/ I+ e - BUT_LEFT: _9 U) @ ?! j7 z. L6 b! B3 l
- LDA $04,X3 S( {; a& Y7 P t l
- CMP #$02 ;左按键判断" ? d* U5 ?, l# Y0 ~4 o
- BNE BUT_RIGHT
+ F' R& E1 P5 V, q: ~* k - LDA $88,X
2 }+ ?. W# s3 l% [ - CMP #$00 ;威力判断
! z" Y# y* s) x1 p4 Q. S5 d2 T% e - BEQ SPERTS
: q- L7 [1 @- R - SPEDEC+ A& n& y$ o* S0 s
- LDA $88,X ;读取武器值
" X k! e% U H0 A0 P8 r% A) W - SEC; O/ g$ }3 e% M0 T' q
- SBC #$08
2 ]8 K% x/ U; r# ]1 z/ Z0 P - STA $88,X ;威力减小
5 t6 M' a) N$ S0 _ - BUT_RIGHT:
# H: ], z# c; _% S- K+ ` - LDA $04,X0 Z2 K# Z5 ]) [
- CMP #$01 ;右按键判断6 x: h: l9 Z4 ?
- BNE SPERTS
. E# S$ `1 G0 d! a5 C$ @$ x3 ` - LDA $88,X
$ p" N. `: i) V+ H/ t. z" \ - CMP #$10 ;威力判断
; W3 a' x" r: x; B/ a - BEQ SPERTS* S( z. K9 c m! ?2 a; |
- SPEINC:3 l+ X3 t( P2 F: ]1 j3 D
- LDA $88,X ;读取武器值6 t' F" I. E7 S& P8 }8 i7 _+ c4 H
- CLC
* i+ C, A. c) a' a% o - ADC #$08$ \* O3 r$ N+ P% g/ o! @' @& A) H6 T% K
- STA $88,X ;威力增大
- J* E7 d9 w% r, F. f -
5 r8 v( N! v- A7 C; i& D - SPERTS:
6 C. p9 x3 }* q( f - RTS
+ n, l1 V9 `. o4 N6 N) v. R
- m, M5 \( N5 C- BULLET_NUM: ;子弹数目9 h1 K* M- U5 B6 Z* F# k
- LDA pause ;暂停状态判断$ Q+ e+ {0 [# Q
- BEQ BULRTS
" [8 |* s0 S& }0 O# G4 w, d - CPX #$00 ;主机玩家判断
. P; P' }# g' t; @/ H8 d' ] - BNE BULRTS9 L, X3 N3 Q+ w: u; y/ R
- LDA $04,X ;主机玩家判断2 V+ [% F5 \* ]0 U! q
- AND #$80 ;按键A比较
8 a6 C* [' e- m$ E, f( _4 U - BEQ BULRTS& _' B* a4 a$ ?/ C# u' a6 [
- LDA $87 ;状态判断+ ^+ |; A& l% m+ L, D+ y
- BEQ BUL_29 i$ a3 }" [6 c8 A7 e9 w. S/ D
- BUL_1:+ b- b) E3 ^- I, E2 e0 U
- LDA #$00$ T5 S# @' R9 J# y2 w9 l4 a9 u
- STA $87 ;1发子弹
d+ h k3 R6 z# H- V3 q! E t* X - BEQ BULRTS! K/ `8 Z5 Y$ }' k- c, K
- BUL_2:5 e1 {3 s1 S! _6 l5 m
- LDA #$01( x. c! B# P6 l$ L0 G* d/ @
- STA $87 ;2发子弹+ v# l! M, e. G- Y4 b. v
-
' `* h- [0 m& K! F - BULRTS:
8 b% d6 ] M4 M8 e* x' v - RTS# h7 S$ {# n; b! ?8 J
-
5 f" y( U' _2 C
4 K( Z6 h+ G4 q1 _) P7 l3 t- BULLET:2 a) T5 P+ K" ?$ T4 D% C
- LDA pause ;判断暂停状态0 t5 _6 o# Y$ F9 Q" n3 M& O
- BEQ BULLETRTS& W0 x/ d! v8 ~3 W
- LDA $04,X
: d( O/ E) s- V# N' H' V - CMP #$40 ;按键B比较 a6 m" c8 A6 y7 ^, n
- BNE BULLETRTS, v4 a% y8 V. `+ ] S5 Q$ p. J0 U
- LDA $6002,X ;读取副武器
; s2 n1 m9 w; [$ D4 H$ M - CMP #$038 h# l9 C, @4 x; I" |
- BCC BULLETADD
3 p% N# D7 J1 B - LDA #$FF
0 d. a% G2 l' b5 O7 d* g& j$ q - STA $6002,X3 y- [; N* Y/ b
- BULLETADD:
* Q' b. q4 a* e: v" Q - INC $6002,X" C; v7 g3 x+ H/ p
-
1 |+ t% H9 j# m' Y7 [0 e - BULLETRTS:5 N. A4 z* O* ~' h9 W* Q, z
- LDA $6002,X$ v& _- M; Y, Q1 B" X
- TAY2 s9 I m2 b. K/ z! q/ r
- LDA BULLET_DATA,Y
2 k# M- A& m n/ D8 {7 ]. C% z# Y* O0 q - STA $6004,X ;写入副武器数据3 @+ j) ?, O5 J3 ]) e' h
- RTS* S0 L6 G( i5 b" ~7 |" ^
- W5 c8 m5 a, |
- 6 m# w4 w# z3 o% R" i
- BULLET_DATA:
- M L- Z- E1 G - .BYTE $06,$02,$03,$04
% g/ u. f. [* }! }* n8 G - # w. c& @+ ~. J0 G& h( b
-
2 W) S6 C! l3 E* @; ~ -
5 e# Q2 ^5 T- a6 y4 L2 p - KEY_OPERATE: ;按键开关操作
* A: _: g# x5 ]3 F' p - data_protect: ;数据保护
% B$ x' t+ f6 H+ l - PHA- J0 c- |( Y( K2 Q
- TXA
3 O6 b O4 x# ~- k( Z6 I" p - PHA0 {% V" K7 G2 [- q0 V1 `
- TYA$ O2 y0 q6 Q8 T6 \) Q
- PHA
+ q: }0 [; u/ q; s: R3 {" |3 e - 0 `1 a# [ R6 M4 ^( @3 U) t: g
- FLAG_INI: ;开关标志初始化3 P+ s3 `9 d4 R3 j- g' Z7 M, q
- - E( ^" A0 P6 X0 G r
- LDA $600F# A3 B& [9 s6 s" q; [* ]: d
- CMP #$01. E8 Z& q# c6 T7 Q8 H4 h
- BEQ pause_cmp
: V6 K5 p' [# Q6 ]! M# X M* \ - LDA #$00
5 J8 s) v/ B7 C3 j7 b0 I" ?. d - STA $6000
6 y& L) d7 H- A! ^ @ - STA $60016 s. T+ E, b8 G7 j
- STA $60025 f( ^6 x, K) I3 Z7 V& n$ k
- STA $6003
- ]$ ~, ]- O# H8 ?: T/ T* \8 Y) ^ - STA $6004
+ P+ G# @. W: K - STA $6005
: s3 g: ^7 `8 i* n% e - LDA #$01
7 ] R3 K6 H' T. r$ i- ~3 q - STA $600F4 G# J- y; T/ w+ b$ _0 l3 ^
- 0 V* p( \: t7 [8 d, f% K9 _
- pause_cmp: ;判断暂停状态4 f+ ^: W9 G* @( }" ^
- LDA pause
+ f3 y) P2 b5 Z- T - CMP #$01 ;判断暂停状态# w) H! C+ V: T3 a( \
- BEQ button_press
- @* Q+ m5 ~7 r5 Y& g - PLA+ J' Y, m( ?5 g# ?) e% q
- TAY
6 e8 d! k: x1 c" @6 p5 {4 X: g - PLA
0 `) E' {* q( v. S+ w' J - TAX
+ O. ]( V1 D, g& M6 }! Y - PLA6 u' B' `! N7 M* N2 n, b! i% Q
- RTS6 b' `: ?+ E' x3 O7 H
- ! k+ l. `: n( M2 B9 A- U% {/ q
- button_press: ;按压操作% U* r" ]! c$ ?2 {: e. G2 J
- ini_Y:
' P2 `* g( j( ^- s7 _! L - LDY #$00
5 q7 J r0 h7 D6 B- n" l8 o - button_cmp:
( [+ K! O' g9 P9 ]" S. Q - LDA button,X- y' V3 r) z3 M( y& u+ ~ v
- CMP ora_data,Y1 c& ]8 g1 @$ a) }8 t5 Q
- BNE count_Y_cmp
) G- p. h( w5 x. @! V - flag_cmp:2 _! Q3 ~" P" j( Z# m
- LDA flag,X4 b% n4 B. Z# d7 c1 d+ P
- AND ora_data,Y7 x% Z; d* [* `
- BNE flag_and& @7 F5 l$ D% D2 Z3 {6 D) O
- flag_ora:
' h; T7 Z* }$ X - LDA flag,X7 r v% Y3 M. u
- ORA ora_data,Y
1 v5 v6 |+ M' R2 T4 ` - STA flag,X. ?# n5 \4 ~' F- g' H8 e
- BNE count_Y_cmp, r) v; j0 w, i
- flag_and:/ r9 \& T# ~# p1 m4 `* ~9 g
- LDA flag,X8 V* E+ u" p# K# B
- AND and_data,Y
# E! [7 p: j, \; q- ~) p7 d - STA flag,X0 `- |, I: [+ ]
- count_Y_cmp:
0 S" `2 B' E' L: t; [. u - INY4 @3 c" I, T; s8 a: _" G
- CPY #$08
x3 l M% x* e2 f - BCC button_cmp2 v) a; h$ X/ p" c- ~2 \
- 0 g* x, T3 k4 N. f0 ~2 @4 I g( G
- data_extract: ;数据恢复/ B+ h h8 |% R. C
- PLA" o- d" |1 P6 Q9 k1 u: f
- TAY
0 Z+ K1 I# B% G. {4 n: j; M$ K6 Q, s - PLA2 h) s! o: @6 Q# E
- TAX% t. d! a8 q8 }" k' c: |
- PLA0 D' N ?/ s( U8 e: n, b# N/ O& x
- ( M5 l5 q9 k8 q' P$ x- H3 w
- return:
* T- t! o0 N, a5 A3 q4 o - RTS Z0 _) m( Q% @# }
-
' V' \3 I! K o' a3 H7 S$ n2 p! t) e% j - ora_data: ;按键相或数据
* ~1 S; \6 G* Q- k - .BYTE $08,$04,$02,$01,$80,$40,$20,$10% R7 d5 e6 `/ j
- and_data: ;按键相与数据
0 @6 i- u- W4 a; z' b+ V! b5 e- g - .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF
+ x0 [- J$ \1 p -
7 Y- X) {. X7 ^2 r0 m; c -
) K) x! c5 Z0 s' K4 e -
" P* X! E: V/ I# r6 g -
% C! ?, u$ t9 x3 l; G -
1 ?& x3 v. Z/ e5 h& d - * f+ c8 }! I$ N3 D0 d9 f( a) H
- & t# z8 @; R+ Q6 T
* J) S' _. o2 a2 U5 I& S- * D% R; l1 x0 K$ |/ D
- .ORG $C264 ;自定义的MAPPER2切页程序
+ d4 N# y% K% n. j - PHA. c" M1 d; o' v& U9 U( q6 T
- TXA8 e* ^- W# y# [4 L5 e$ |& `; t( w9 w
- PHA
( ?/ e# g3 N+ ?# m a( V - LDA $0066
6 B) d& C9 W: L2 f/ P+ Q! E' y- ]* ]: L - BNE ADDRC280
+ C) U8 O" v* y! y3 c. k - LDA #$07& h5 G$ a h2 w+ f9 _5 E
- LDX #$03; X2 s8 n4 P5 N( |) N$ s
- JSR $CD9B ;自带的切bank方法% P$ q8 j& h) m6 J; Q
- PLA
: p! y1 {( O% o* a" K) k - TAX
5 K8 R& v" |! Q7 @2 ~5 q* v - PLA7 P! A% S, g; f! `/ ^
- JSR $80000 W9 J9 e' L2 _4 i4 ^" M- Z
- LDA #$06* K: k; t" C2 h$ O! N
- LDX #$03
' q. S& a% W) b! t* L: U - JSR $CD9B ;切回原该切得bank(可以不用)
5 D2 A3 U9 I; J$ b8 T5 `7 E3 A - RTS+ A7 U) W. R8 R0 t
- ADDRC280:, {0 t$ d, @) V. M, F) f7 x+ C
- PLA i1 A9 k% m+ u
- TAX$ \1 R" z- s5 h
- PLA
( z% F/ v' P3 L; f# F. w - RTS8 }7 w/ T: i9 c+ g
- 9 Q: I Q0 E! q+ q1 U
- 2 `; Y+ O6 [2 y. y# u+ v; J( u( u
- ;[FC][最终任务PPU][END]- c" D+ S" y7 l' P) s: o) y8 K
- .ORG $C056 ;跳转到PPU重写程序
Q$ _/ g- C1 b - JSR $7000
% y( n0 E, P3 N: p# }
1 z, ^3 Y+ r. o+ _& ]& @- .ORG $CEBF0 n- {, |6 `3 W F/ s; K
- JSR STAGE_DATA_WRITE ;跳转到关卡数据写入" j% a0 W* R' ^# d& d( r; v
-
- c! Z n1 E) Q- W - .ORG $E460* H- t! b" k) E$ j, @
- JSR BULLET_DATA_WRITE ;跳转到副武器数据写入# g3 E: g3 P/ k+ P& b: {, H9 h2 D
- # e7 Y9 T0 I# Y0 k3 _* Z% K: N
- .ORG $71F09 {" Z/ U4 G# u$ J7 B& b# a
- STAGE_DATA_WRITE:
. L& a( g# ?, G' } - LDA $6010. F; t. i( w* l+ S' ?) q! K
- STA $1E ;关卡写入* G' r* x/ X# f y, l2 s# j$ ?
- LDA #$00
- o3 F7 a. S6 v% Q2 l) u, r) d( {- L9 p1 K - RTS: ^3 `/ F, ^2 n1 Z2 p' k
- .ORG $71C0
; m' U' o6 ~; O1 e3 T - BULLET_DATA_WRITE: ;副武器数据写入
" T& ~7 c/ k# B) n& \6 c - CPX #$0E
- ?6 q/ s) }4 x- L2 a - BCS P2_BUL
4 J( E+ w' w+ q4 r6 Q1 b - P1_BUL:
, v+ g* y* M3 [8 ]" J- t - LDA $6004
/ @! @" |5 j& m6 K, E - JSR $D7D0 ;P1副武器数据写入
6 X' C7 w: m: v - RTS
4 J2 ^( _: S& e/ C8 K - P2_BUL:
$ ?' v4 Y( s7 _- D* y6 A/ w/ w - LDA $6005 B" s5 m, n) T$ y! r. F
- JSR $D7D0 ;P2副武器数据写入
+ T9 ^7 U" }' E& L! _9 S9 F - RTS/ `2 a# c+ G+ D9 f! ~* A; S
- 7 ^: A) M/ w9 f+ T) N1 D# }- a
- ! J5 K, P$ }2 ?! i- G
- .ORG $70006 x+ D8 e' N# {
-
3 h. ? c2 @ p! a4 \& M/ g - STY $4014 ;补上覆盖的精灵写入指令$ u) V1 E& I7 N3 W& V
- PHA
; z$ n8 z! i* U - TXA
# v0 ], `7 j$ [: J$ G9 i5 ]! { - PHA
. ~, M- e1 ?% d* c! r- i) n - TYA
/ P6 J" c0 n" f' u3 }' B, L - PHA# R! N& V9 H' S" |
- LDA $0C
( t* j/ G" S+ O, h+ E% F2 r5 Z - CMP #$01 ;比较是否为标题画面
" {' P4 F+ ]/ @/ l' ^1 `7 r1 M - BEQ PPU_STAGE
\, \% E3 \/ R& ? - PLA
9 G: E5 S; P4 m" h0 N: D - TAY( N2 Y4 `; W4 z8 F5 v$ N( u7 X
- PLA
8 S8 h9 R# m7 E, q9 M$ s - TAX
6 M3 i$ a9 [" ~. } - PLA, @( h1 z9 J5 \, B# W, `6 K
- RTS
: C( F2 H5 u/ d" I1 c5 X - PPU_STAGE: ;STAGE显示程序
% O$ M. G k% F' z) ^6 s1 B - LDA PPU_ADDR_DATA! j6 m( \/ Y) C
- STA $2006
% ~, L$ h0 E1 ~7 D - LDA PPU_ADDR_DATA+1; f2 y x4 D3 O- Z n
- STA $2006 ;坐标设置
w9 M) ~: Z2 j - LDX #$00
+ p: d" |* P' L- ?/ w - PPU_STAGE_WROTE: ;写入STAGE字模
( R2 K) {4 ~4 z. \' ~ - LDA STAGE_DATA,X, }9 s' i/ w* i( i7 i# C0 S) q
- STA $2007+ W/ J5 k# V+ A, n! Z7 y, g+ `
- INX2 j% Z) k- \, M/ U
- CPX #$06
1 b1 [: W3 z+ q& S( z - BCC PPU_STAGE_WROTE# X& k( V$ L7 E$ L
- LDA $6010
a! ?9 O9 w$ l4 J( Y! h2 x - CMP #$FF ;关卡数据初始化条件判断
$ H g1 T% C2 P9 r8 [ b2 _3 D - BNE KEY_B; X' Y0 x$ r8 m# I# N
- LDA #$00: i# a+ i) B: g. v" Z8 u2 r
- STA $6010 ;关卡数据初始化0 c3 Z& A- U. |( ~5 H) t/ I+ B9 I
- KEY_B: ;关卡减少
3 g" \, u5 J# p b: L" F - LDA $04
5 v) c. _. z% r$ P/ ~2 @0 E - AND #$42 ;按键B或左减关
" @/ W" R$ P5 d - BEQ KEY_A
1 r4 W. ?+ ^% \8 a/ U( [1 ^ - LDA $6010
' f! J; J* i% p0 L& F% L6 i - CMP #$00 ;关卡比较
w( U5 ~+ P; ]+ r4 v* \ - BEQ KEY_A, j, f1 d: C( I t1 _" P
- DEC $6010 ;减关& M$ {! f( E% e) X- t
- KEY_A: ;关卡增加2 e; @- I R/ S( N( V4 c* `
- LDA $04
! T% y# |9 g5 I# l, N, w0 v1 l - AND #$81 ;按键A或右加关* B2 a( W0 @$ a" I9 O# _
- BEQ PPU_NUM_WRITE' _1 ^, F# Y2 ?. m/ v+ T* C; `0 e
- LDA $6010
! E! }- p( R0 R6 b& I5 t( [ - CMP #$04 ;关卡比较
2 Z2 v, Q7 M1 R1 |4 A8 t - BEQ PPU_NUM_WRITE. d/ o, E. O- M7 X! ?
- INC $6010 ;加关& X; y- B6 h9 I" m( }
- PPU_NUM_WRITE:
+ ?, V7 ]! q% o& ~2 U - LDA $6010
- e! Y2 E9 g% C3 Z - TAX
/ f* Y; A; m% P3 Q2 R! X) G - LDA STAGE_NUM,X ;写入数字1 e; P0 g: V/ W" m) d6 ] e
- STA $20071 T! L" Y- j0 `1 J( A; Q9 i; D
- PPU_RTS:- E: m; ~8 ~. F3 N! S5 _
- PLA+ d( Q4 f( X: }, V5 @, ~1 z# I# S
- TAY
9 a O |( }- c- z: a - PLA8 {. [3 E. e# y+ e; T2 o7 K1 ~4 d
- TAX
5 g6 U' ^# s6 ~! w - PLA. T* a; u' i, l, n, c
- RTS
' ~7 _; ~* e5 o, Y- m/ z' d - ' ~' e2 @7 d7 I4 |0 |% c4 y
-
) Y2 y1 ^: R4 H e5 w - STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据
0 D Z: u; P. U - .BYTE $EC,$ED,$DA,$E0,$DE,00
6 V, [# o/ S5 `6 s$ e - STAGE_NUM: ;关卡数字1,2,3,4,5字模数据
+ W5 K* E! p( C- k( Z - .BYTE $D1,$D2,$D3,$D4,$D5
% Q$ j8 `. a! b4 ] K7 r - 2 `& u( }! w. C& a+ W8 N+ |( G. i
- PPU_ADDR_DATA:. O# {6 x* N$ G, X* e; R) n1 R
- .BYTE $23,$0C
7 q; I" N) H1 ^2 } - 9 c- G+ b' j: q3 R5 ]
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|