|
|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑
4 V' `* B) E2 M5 W# l0 [
" Z V2 J9 D7 u4 o5 q [FC][最终任务][END选关]
( Y4 U# V5 e% M: J/ K% G& a" j
* \9 D$ F) a* v" g; u6 ~3 \时间:2017.3.29+ C9 V; a6 f/ a1 b l5 S
作者:FlameCyclone
4 K+ H. w9 X$ x! p4 j1 Z* G内容:
6 c K' ?3 @. S% @5 g5 c; L 1.关卡选择: 标题时,左或B减,右或A加(1-5关);
6 W' w$ G. h9 W) p, A X9 k 2.无敌锁定: 暂停后,按上键切换;2 ^- A) _5 Z# e* f0 J
3.生命加满: 暂停后,按下键切换;
0 {1 e6 H4 o" z( X! q 4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);
; J) k0 g9 ]2 l: c6 X4 |" I 5.子弹切换: 非暂停,选择键切换(普通,W,L,B);
; L0 c: D2 \5 ]% t0 @ 6.B弹数量: 暂停后,按A键切换(1个或2个);: x' o$ S) o& _: h/ _& e# l9 A" g( Z+ ?
7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;
6 s: y$ Z& ]) Z m$ T& m3 Y4 \. `* N& p6 a7 X8 F a( d; s+ y
% X+ V* b5 U/ ?4 S. H7 O7 P$ M
/ {8 f0 P" C2 r2 w8 H7 _/ k. d
# P! N6 N; _$ h3 ~7 G/ s- @: A) G

8 O" N' a" m( [% \' m& H* m- Z, ?1 }' c
4 H' V7 u0 I1 h
" h: I% ^) `: Y) {5 p& rFlameCyclone.ys168.com9 R0 V; J( I+ v
www.nesbbs.com- ;[FC][最终任务KEY][END]
8 K* ]% N3 Y9 R4 H) {" p - button = $04 ;单次按键
$ ~9 @ u1 i* @9 q3 }* t - flag = $6000 ;功能开关标志 F8 K0 {" g8 ~, z l
- pause = $000E ;暂停地址% ^. x- {" r- r1 o$ ?9 D+ j
- ) }* y4 Y) A: v+ X. e
- .ORG $8000
l% z; l: [8 ~- V( x - LDY #$08 ;自带的按键程序
$ ^. N2 T D% M( T6 Z) m - ADDR8002:
; z" C% C0 S6 c- q - LDA $4016,X+ n; r8 X2 [' w" [7 t4 `
- LSR
' ?% P- C0 t( J& M; T6 P7 V - ROL $0021
, k+ W5 T1 q& l - LSR
) ?2 i2 K9 y' b8 B$ g2 P' m6 R4 | - ROL $0029 |! r! ^; p9 y; @
- DEY
; B6 a Z( d% F6 p - BNE $8002
4 F1 p: Z2 T# d4 b1 S% } - LDA $0021
: @; {4 u! @( n. Z3 z4 j& z6 g: v' p - ORA $0029
, \- R& ?8 C$ x - STA $0021* V5 D) i. |& ]/ l7 l
- LDA $0020; H& W! c. q/ ]2 c( J: l
- AND $00217 e. N2 p; O3 g) q) p0 K
- STA $0020, i m4 o; p# K" `
- LDA $06,X
s; {/ Y! z% J" `. Q2 e - EOR $0020
0 a5 j3 W8 x; E8 h - AND $0020& J1 b& v) W! [; J2 {6 {
- STA $04,X
! O' E1 U4 o8 M( o# z1 _ - LDA $0020. C5 s9 P$ [" T
- STA $06,X: j, o8 ]9 N" X
- JSR KEY_OPERATE" e3 G: Y$ @2 X& V' E4 v" b
- JSR Function ;功能调用
# r8 H* s: X c# b! g - JSR Weapon ;武器切换调用( Y' A4 b* k3 G# {7 k
- JSR Power ;威力调用0 o( M) s( d" s7 Q# |& p
- JSR BULLET_NUM ;子弹数目0 J7 ^ z0 b- H/ c4 b
- JSR BULLET ;副武器类型
' J! |- [9 r2 w" J7 D+ I, w6 w3 P - RTS
r$ g' m7 v% H; M5 N3 B% x -
* X' m! L' L7 x1 i' T - % _- D+ n# _5 s! d
- 8 o) g; o4 s. {$ m' t
- .ORG $8050 B, L W8 U" m' M# ^: [
- Function: ;功能
: g; c9 @, X; p d3 v7 V - WUDI: ;无敌
1 H5 w, I( G1 @# [" j - LDA $6000,X7 p0 _+ N7 o8 C V9 _
- AND #$08 ;开关判断
9 ]& H' k7 p" t# l" k; M: G: U - BEQ LIFE; c$ i: x; p" R; y0 S. M7 q+ y
- LDA #$057 A( P# S% u3 t1 D! g- W
- STA $05DC,X ;无敌锁定/ ^# d* g5 A6 N! j1 B& z6 g( H8 v
- LIFE: ;生命
5 M% r' ?7 D6 ?0 Y* o5 B - LDA $6000,X8 \% w" ^% v" |! q P; y" q
- AND #$04 ;开关判断1 J9 J: p: d! M; f2 B8 k6 o( g
- BEQ FUNRTS
: M0 K% M, g$ I5 ` - LDA #$05
# J9 p' s- ?7 U: g' S% v - STA $1C,X ;生命赋值
3 I* v$ o$ C7 G! t% o - FUNRTS:
1 ^$ I6 c% m3 Y; v+ e& g- D - RTS$ k# Q9 u! \' e% s }
-
# n# l& W7 b6 |' V - Weapon: ;武器切换
2 T9 e* R6 F6 h$ ^& @: G - LDA pause ;暂停状态判断* A% b, g: U' `
- BNE WEARTS: x$ Z& M" L8 y- i
- LDA $04,X
0 N7 e/ Z6 }' l, A4 r2 D: h - CMP #$20 ;选择键判断
: D- o! {0 v+ g) ~: _7 i! q: S! d6 ^ - BNE WEARTS0 N7 P1 A" I% [
- LDA $12,X( b7 P; j; v, S( ^* Z6 K
- CMP #$03 ;武器值判断
9 Q0 Q0 W4 n/ j. h( X- _ - BCC WEAINC/ k3 ~6 R) c0 d6 A7 P- j2 \* o
- LDA #$FF
$ }( ]$ ?( q; K L+ m - STA $12,X ;武器重置
$ E! _9 x( U; G, K: m - WEAINC:9 ?0 @, P! V/ H; @
- INC $12,X ;武器增加
' F0 {. i$ V* g6 | -
4 `1 s/ J T5 @0 G' ] - WEARTS:6 N" k' q$ |3 Z, I# E
- RTS
. Y6 b) j2 `2 q7 \) i -
9 ~! `" U6 h0 c% _' f7 |, i - Power: ;威力
5 H5 U; X* L, V } - LDA pause ;暂停状态判断+ [! K) c. H/ N+ R' U
- BEQ SPERTS# c8 ?! w2 j+ f9 w6 E8 K5 R
- BUT_LEFT:/ J. M. u# X5 D, Y3 P
- LDA $04,X
* s$ Q( f& a6 o& S2 M: Z - CMP #$02 ;左按键判断
6 G6 F* f8 U/ | E2 h" \7 g9 f - BNE BUT_RIGHT! k1 k) G* V; D4 e8 M; M8 k4 t
- LDA $88,X
2 y$ L- N3 y9 ~1 h. ] - CMP #$00 ;威力判断
- @$ d. K" j4 j$ B! K0 g/ n - BEQ SPERTS
, Y$ E6 l% ^7 ~4 { p* G+ f% i - SPEDEC
" V2 e- S; a& q G - LDA $88,X ;读取武器值
9 ~. d' q: |4 m; a& }: g1 e - SEC
$ z3 g* q0 \0 @; \1 w - SBC #$08
L1 D& u/ f6 F6 F: V0 v& M T - STA $88,X ;威力减小6 x1 q% D4 U$ w7 f& j/ M
- BUT_RIGHT:6 \+ c @9 Q5 L% L( K3 n
- LDA $04,X3 s" ~6 F+ ]" q& O, I2 g9 R5 e
- CMP #$01 ;右按键判断
+ [+ {! `; \2 y" b - BNE SPERTS
+ Q/ G( _$ t9 m; W - LDA $88,X
' N# s ~) P5 }& [+ Y, K( Q% E' v - CMP #$10 ;威力判断
* z- d" n" v, h* c - BEQ SPERTS4 R4 E5 G- ?" J( n
- SPEINC:/ ^; v) @ `9 C0 k }
- LDA $88,X ;读取武器值5 ?' A, j; L+ Z3 w' [
- CLC+ h+ w' {# q) m) }
- ADC #$08; G' `) ^, v( D# ]0 r9 R; l9 T
- STA $88,X ;威力增大" ~+ O4 K' k* d7 b# F
-
/ c) z, I3 ~+ |5 C Y s0 r* j - SPERTS:
2 {9 p- }' q, { - RTS! R9 ^. K% a9 H
9 s: g: W) J; v( k+ u; Y5 d- G- S$ S- BULLET_NUM: ;子弹数目
" j9 y7 w+ P/ j! Q2 G - LDA pause ;暂停状态判断0 |8 l( z, u! [+ J& \
- BEQ BULRTS
' \$ T. ]2 o0 X - CPX #$00 ;主机玩家判断) a, T! }/ q: g5 s8 V) r1 C- ~
- BNE BULRTS
/ N! m' _$ p" N9 a* x - LDA $04,X ;主机玩家判断
. E. @( O# ]: }$ `3 F( D- ] - AND #$80 ;按键A比较' j% h/ G. l3 V0 A4 F! N- @8 r( y
- BEQ BULRTS9 e, A8 i2 x" t: I
- LDA $87 ;状态判断/ P W) c. O0 S2 J! u. u
- BEQ BUL_2( y. j% T+ I- ~+ D$ E, G
- BUL_1:# A9 r/ n5 P2 S% N$ P
- LDA #$00
+ A+ }3 Q/ U% u - STA $87 ;1发子弹
6 h w6 r# ^+ R6 u3 R! O: a - BEQ BULRTS
9 ~5 X9 Z7 m* X% T - BUL_2:, J5 X1 z( T# {) S! z0 }- D3 d
- LDA #$01
# }# i R, ?2 e+ F7 z ^ - STA $87 ;2发子弹
! k/ u: K3 ~1 q( } -
! ^" n q8 \2 e6 G' y - BULRTS:
' f$ J9 e- M" S a1 t - RTS" y0 G1 X ?* y# W' }
- : Z' ?& S- X7 y) s, z: B" f6 h
' i4 L5 ?2 o1 a: w% X* D7 G+ \9 R- BULLET:
`6 u0 t6 m: K. Z - LDA pause ;判断暂停状态- n% d4 Y, I2 C" @: k
- BEQ BULLETRTS
8 a. n4 T' v7 \9 z, A! E7 K/ V2 ` - LDA $04,X: t& u% t% x2 G. X
- CMP #$40 ;按键B比较
6 j8 A: U5 Y; E( V! W - BNE BULLETRTS: M' o& L# V, E- ~% x% m9 T% t
- LDA $6002,X ;读取副武器
( O8 ^4 c: l; W1 u - CMP #$03
, }4 Q; S& p/ G5 E5 r& E5 \6 d+ Z - BCC BULLETADD0 t6 |( G9 i5 g( o, \
- LDA #$FF
# y7 N- N, _( O7 R- P - STA $6002,X
% i. {- _+ N% w0 N3 X - BULLETADD:
/ u# H1 j( j2 Q* K7 r - INC $6002,X+ l. |! a. P9 v! Q- K* g
-
& ] t q4 F; B! _ [# g2 U2 u. [ - BULLETRTS:, o" }8 Q$ Y4 m4 K; o
- LDA $6002,X2 k( c! ` v1 G1 Y1 C5 e8 b, G
- TAY Q1 w9 F2 Y! x+ |1 P/ y7 g
- LDA BULLET_DATA,Y2 X$ U1 @3 t4 g4 C
- STA $6004,X ;写入副武器数据5 @6 t/ t3 U: \& ^8 |
- RTS
0 z" K3 D" B( t; W7 O9 F% s - 7 i3 {$ N7 [0 T
-
; Q) H8 J1 G F" A7 _ - BULLET_DATA:4 r$ z% V/ s+ j* s3 Z3 t/ ]
- .BYTE $06,$02,$03,$04
: d; L0 V) I* f/ w' M) } -
@! c( `; e: a$ p: }- j& J& s5 G -
* i8 n) k& W" h& _ -
v8 a+ L; ^1 I" k% O$ _ - KEY_OPERATE: ;按键开关操作) |3 N1 L* _$ x$ R7 q6 c) P
- data_protect: ;数据保护
! z/ o9 @- m) [3 z; t' y$ W- a( x - PHA9 z( d/ G, g m0 `% P9 i3 C! e
- TXA
1 j# e# N& k/ J' \8 ?# N: |* _! { - PHA3 O+ e5 a8 ]: R0 O4 p% i3 t
- TYA" B! M0 o k$ V$ f0 D+ g& D! _. m3 @: o( E
- PHA/ N {) a* N. A+ |& }5 s% T0 N
- 4 M3 z- J& }' h/ V T
- FLAG_INI: ;开关标志初始化, I& e5 _3 N$ P* U& r
- $ A" T e% P; A- J, x
- LDA $600F' j1 F) R z; ~2 d3 N; Y
- CMP #$01
8 T: r1 o% ?; M - BEQ pause_cmp
( a1 l+ K# }/ ~8 W* s' H0 z! e - LDA #$00" m8 e& q3 y" _* C
- STA $6000
# `2 T5 w' L: u6 A9 x& w - STA $6001
) b$ h& V0 T* A: S0 h3 }$ [6 B - STA $6002" W( G! p: k' E2 e1 U! z+ i
- STA $6003+ E* Z2 f/ O$ l' V8 r
- STA $6004# C9 a7 k, u+ m. i8 ]
- STA $60053 M& j9 s$ G# D1 i2 k7 Q
- LDA #$010 y6 _$ S1 H+ N$ E$ e; S
- STA $600F
?5 \0 u* N5 N( O! q2 `+ O - # e' X( T ~! Z5 o
- pause_cmp: ;判断暂停状态
$ n- q. U" ^* W& V" b - LDA pause' B" ^' I% U) {
- CMP #$01 ;判断暂停状态( Q" [7 K+ G$ \3 p t; _
- BEQ button_press0 m( a V2 H S( `
- PLA
) _2 E& s% U d: @ f5 ~ - TAY
; _$ _7 l" y# D2 d% P+ E3 A. `( r - PLA) H. q" w f$ H# Q! {. f$ I
- TAX3 A* X; \" p- P, g
- PLA
( J' L: D% d/ K - RTS
' r- o0 j$ p+ D# F5 P
1 ^/ R2 o% F% R8 K7 Z2 f- button_press: ;按压操作9 c$ u4 e* `. x# T% j! R" y
- ini_Y:! L; c& f7 v8 W" C/ }$ g
- LDY #$00
) o& q, j$ O4 I* F - button_cmp:$ Z$ |, t4 X# q0 z! c r- J
- LDA button,X
8 D* [+ C5 P' ?. \ - CMP ora_data,Y( `" t, }7 z3 X' p
- BNE count_Y_cmp
$ ^* w) D# U3 o - flag_cmp:
' {) I4 G7 V% c7 ~0 N$ }! L - LDA flag,X7 n/ @1 o5 s: I8 x3 ?% w ]
- AND ora_data,Y. `& {% A+ f Z7 I( W( i0 t
- BNE flag_and7 n& @* N6 @) M/ W
- flag_ora:- F! Y; m4 p: ~/ `2 l- ^; Q
- LDA flag,X; @, s$ d' ?/ X {8 K9 A$ o" `
- ORA ora_data,Y a: X$ N: r& W# p
- STA flag,X3 `7 V, v- m) U; h& {! N% m
- BNE count_Y_cmp
* p& s- J0 z# q - flag_and:2 D2 q( E: @1 R) C8 ?+ U4 ~) x
- LDA flag,X; l* i& b& ~8 g- B3 V8 H
- AND and_data,Y
, b* g! X3 S$ J+ \0 |3 [, {* ? - STA flag,X
: q& S B- Q" }' z - count_Y_cmp:
P9 {# I+ @8 r4 A/ v. c$ J - INY4 E6 |2 |2 h- B
- CPY #$08
% b& J1 ~* u; ]4 C - BCC button_cmp" I* f3 s K2 }( |0 }
-
0 H: e/ b5 W# z. R& _- u" _ - data_extract: ;数据恢复, E0 `) Z. k. O! }
- PLA% _. @, t8 C8 A2 g
- TAY5 O0 I; N3 p3 A) i( A) H
- PLA- Q& ^2 {8 O* o# M. D0 k
- TAX$ j* ]7 k/ ?& C( ]
- PLA. L$ I) N6 u. _9 q2 N1 t5 ?
-
; a+ c! o8 ` |* c( A* ]/ x - return:: d% L: [# S1 J* I7 {& u8 J ^/ G
- RTS
+ t/ Q! X+ k/ W) L+ `; l4 a' G -
( i$ Q' t0 C& }) e% s - ora_data: ;按键相或数据
5 {: y( E" }, d# q# K - .BYTE $08,$04,$02,$01,$80,$40,$20,$10
s7 }' G- q( A c - and_data: ;按键相与数据
- N( g; {0 b% U; S; Z9 i& r8 X - .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF/ F. [3 U$ V* V. T3 M
-
; K* ?6 G# y4 z -
( `+ g* i( l& N5 Q. } -
5 W# T+ M/ A5 J \0 ~ -
/ K4 d2 o/ ]0 S7 @' G - % c+ q) H$ L2 [7 D* S: `
-
& m5 ?5 _& Z* w& Z
0 F% O4 s: u' c& Y3 q3 g! x8 ]- 0 P. ?. \, R9 ] E* U
9 d: `# w+ T+ k9 E, y5 v- .ORG $C264 ;自定义的MAPPER2切页程序
5 _& t" i, H- W# Z# I, u - PHA
( O7 o& Z& P }. k# J2 [$ p% f - TXA5 t R% t% L1 @. d2 f
- PHA; W. J& x! c- S2 Q
- LDA $0066 x: Q- ?7 J9 P* r3 u5 \- B: ~
- BNE ADDRC280, y2 \5 O& F! C" [
- LDA #$07
6 Q0 [+ r5 G8 b2 T* c4 i) P4 T3 g* V - LDX #$03
1 Q& ]8 U4 T7 X$ h - JSR $CD9B ;自带的切bank方法
! a5 K7 N$ F, V# ?/ B7 L7 t/ J - PLA
' W1 m S* m0 V2 W' m - TAX
& h* |0 K# {% T( Y - PLA
9 N1 f6 O2 x) X a - JSR $8000
1 o4 p5 i/ |3 C - LDA #$06
8 j; u* l/ {1 E7 d1 F0 M - LDX #$03' a F. Z$ P: X. S; y7 J, M
- JSR $CD9B ;切回原该切得bank(可以不用)
) o, M7 _0 W* M/ A, O1 f5 {6 k' Q, ~ - RTS
3 ]. H9 \4 R$ t, R/ z - ADDRC280:* B( I0 M3 R- V2 I; g" c
- PLA# j/ \: V. _; {3 c9 y- g& ^
- TAX
K6 q, Q' j5 n! B9 X - PLA
+ E/ [8 [4 o- V5 z. O - RTS& c' P; s5 R& E
- - z# w2 C$ O4 J r
- |7 I1 u* S5 Z
- ;[FC][最终任务PPU][END]
) a0 I3 n o. a8 M5 `0 q - .ORG $C056 ;跳转到PPU重写程序
: ~. G7 @" X9 P4 g- e - JSR $7000
9 C6 \- b. d: ]/ G - : ]) b: w- ~* v* N% P! i8 b
- .ORG $CEBF% [, Z! s6 [6 A% H
- JSR STAGE_DATA_WRITE ;跳转到关卡数据写入: a' [$ p: o$ k s4 m/ A9 N y @
- 9 q4 Q: I. H4 b7 [% e" F
- .ORG $E4600 U) g, m/ U6 \: a
- JSR BULLET_DATA_WRITE ;跳转到副武器数据写入6 ~9 e Y% P9 `/ `' a [! m* ~
-
6 r9 H2 D/ U, U- h0 O* S6 N - .ORG $71F0
" {7 W* _' z6 E8 z( u - STAGE_DATA_WRITE:
. C* _1 L# r2 Y, H5 S' g% O - LDA $60104 ^" \8 Y+ g [0 }, f6 ?
- STA $1E ;关卡写入4 Z+ j" G' m* B: T9 [! f
- LDA #$00/ k! Z/ M/ X$ B/ A4 N' R3 ^
- RTS( l* ?* b* y. a
- .ORG $71C04 D* w7 L8 }3 h" ^3 ]3 ~2 S
- BULLET_DATA_WRITE: ;副武器数据写入
/ y1 y n7 O3 P7 C: x - CPX #$0E
- a, V8 ]. U6 `5 Y6 B - BCS P2_BUL6 i+ Q- N" Q0 V# }" |) \3 m
- P1_BUL:- g! f" r) y$ ?) D7 u8 @/ X
- LDA $6004
6 L# @+ K F3 M. f/ S+ @ - JSR $D7D0 ;P1副武器数据写入
1 y+ ]" x& ^+ s$ n _+ v5 ~ - RTS$ e2 a' N0 c2 Q! v
- P2_BUL:
T; r' c7 b3 A4 r1 [6 T" j5 D- ` - LDA $60051 x$ k) Z. O8 U( d( N
- JSR $D7D0 ;P2副武器数据写入* C4 q$ n- E, V: h2 {' T
- RTS
$ W; W# d3 ]3 @ - : n. a/ S! X# J3 L
- N/ z$ q9 s( `/ M% {9 J E
- .ORG $7000/ w# i, q$ x8 g/ A& o
-
; T k0 |+ W2 g5 b; M1 B! u - STY $4014 ;补上覆盖的精灵写入指令3 ?9 _8 P1 Y3 Q) m! [
- PHA
3 l0 v* h+ u- Q5 { - TXA
1 y5 m4 f0 O2 A* N* t5 J6 r - PHA2 `# C& E* a3 k" D
- TYA* x1 }0 n: v- V; t+ q. O8 e! o. v
- PHA4 g! O. }& M" M' _0 x+ b
- LDA $0C
. P3 k9 h6 ?) ^( {- b - CMP #$01 ;比较是否为标题画面
1 R& C$ m; @( a. T4 O$ p/ }* x - BEQ PPU_STAGE
% T% Y- @* ^: r: e. m - PLA
$ {) T G; |" J% C8 v) @2 B* n - TAY
2 P) N8 ]4 w9 y, ^ - PLA! b' \! _+ v5 T$ U! H- x
- TAX
/ t! d" \; V9 U# K( f - PLA
- [8 @! g, u9 @* X - RTS! `: N' u6 c9 i0 t; z4 d
- PPU_STAGE: ;STAGE显示程序
$ |- S4 W' `9 P - LDA PPU_ADDR_DATA+ b# K; f0 ]/ \ N% b i& e
- STA $2006
% H$ L2 V) M+ s - LDA PPU_ADDR_DATA+1
2 [) {" }* [, B* a- P) z6 f3 s0 [ - STA $2006 ;坐标设置- ^- J" Z( T0 f# W
- LDX #$00
+ B6 M7 m# X' s1 a: t4 g - PPU_STAGE_WROTE: ;写入STAGE字模- e5 v# {3 ~' V" \) q
- LDA STAGE_DATA,X
8 j* Y: p& s7 S/ J( g0 A; @ - STA $2007
+ Q/ |" C1 K/ b7 n9 q& G6 H - INX B( \2 m O9 T4 q
- CPX #$06
# R8 E) G+ q4 ~; O5 B7 W9 f - BCC PPU_STAGE_WROTE
5 d0 |, P2 c( o8 s/ @* d$ h - LDA $6010
" h2 C" E) M1 K1 I0 i% x - CMP #$FF ;关卡数据初始化条件判断. c' g8 f* T: ?! O
- BNE KEY_B
) j, ?$ s Z9 M% M6 x - LDA #$00
" v/ c$ y/ S. @5 b - STA $6010 ;关卡数据初始化
) x3 o+ h5 _8 q% t& N! L - KEY_B: ;关卡减少/ j" n5 S, i' G* V
- LDA $04
- t% x# q" Y/ N - AND #$42 ;按键B或左减关
! b/ g3 t+ p8 I, A- r& H' H8 o( F, K - BEQ KEY_A' V) R2 g' o: P6 r% Y' x5 @
- LDA $6010
7 [4 V5 A1 y9 H# Y* y5 {& @ - CMP #$00 ;关卡比较1 q/ y; p, U* K8 V: q
- BEQ KEY_A; c5 c9 r. S! \1 K
- DEC $6010 ;减关
/ j# j. m! x- j6 P! x+ ]2 l' V, x& m7 f - KEY_A: ;关卡增加
* r3 B+ ?+ o) {0 t; } - LDA $04
- {# ?8 {7 n0 f( e) L" H - AND #$81 ;按键A或右加关4 w$ r& c7 U7 @4 t
- BEQ PPU_NUM_WRITE$ ]3 Z, ^) x- w. G: J, |! F6 \8 V& Y
- LDA $6010
' c/ F( G8 z7 b - CMP #$04 ;关卡比较, O$ Z0 a$ `8 Y7 Q; ?2 K
- BEQ PPU_NUM_WRITE
7 n6 c* |& U6 B8 n+ c" y - INC $6010 ;加关
' U) ]5 f! r6 e4 ^6 c1 ~7 b - PPU_NUM_WRITE:
9 L- ?6 t; O/ \% a2 ~& C+ t - LDA $6010
9 L# |9 z0 U& Z8 [. D - TAX
7 K6 Y5 B1 U/ \. I# f - LDA STAGE_NUM,X ;写入数字
9 e& Z% x. Q2 @ - STA $2007
2 O/ | E0 `$ B; }) c$ U/ u - PPU_RTS:
; {. x5 B+ O# [+ ^. m# _ ~ - PLA1 a. w. O3 W1 x. w1 a- Q3 E( Q) V H7 g
- TAY. h; E2 A( x; Z) J( V$ @
- PLA1 r9 R* ?3 V0 H* u A" A
- TAX
1 H2 g5 g4 q% |! P2 n5 v: [ - PLA9 m. _- ]% l* b( D& S: X
- RTS
. M: o7 W+ |" o2 S/ r -
+ Q6 P$ q3 F- E+ s9 | - 1 ?! M: F: n: v! C- p; K
- STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据
; A/ `+ s. F' I2 Z) ]( x P - .BYTE $EC,$ED,$DA,$E0,$DE,001 i, C/ P2 u2 r( s0 J
- STAGE_NUM: ;关卡数字1,2,3,4,5字模数据& ^4 K4 k/ ]% k3 V( a* k3 h4 I
- .BYTE $D1,$D2,$D3,$D4,$D5
3 ]- B# h0 e+ ` -
# b$ K( g8 i( i( r" j) e% a - PPU_ADDR_DATA:
4 M; f+ z: o/ [. Z, _5 ?& w - .BYTE $23,$0C
% b3 {7 h# S7 j& X -
5 I( i* T0 n, y& ?3 I
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
1
查看全部评分
-
|