|
|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑
2 w- u" ?- g/ h* ]- I9 W7 k" T8 Y
[FC][最终任务][END选关]
, ^: j3 `. S7 I- h1 X( y( a2 G8 r) Y0 X6 F! H; u5 q2 D! Z
时间:2017.3.29
9 c6 X$ S! o) v4 M0 T' J: Y5 x作者:FlameCyclone# h9 C& ]6 [8 n7 W$ H* p
内容:! v' f, M8 A$ i+ `# g4 B
1.关卡选择: 标题时,左或B减,右或A加(1-5关);
1 ?8 C3 X9 g$ V 2.无敌锁定: 暂停后,按上键切换;' T) B# _6 b6 V+ S% l; n
3.生命加满: 暂停后,按下键切换;
$ P& I8 T/ V5 |2 L 4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);
; g$ i5 D9 L) z: r; C r1 O 5.子弹切换: 非暂停,选择键切换(普通,W,L,B);1 ^2 g! S! \; a7 M$ i
6.B弹数量: 暂停后,按A键切换(1个或2个);4 ^% z( n" \ \: f C1 l, h/ s3 n- G
7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;3 D6 ^- H; g( e9 X1 u! q/ X- C
7 i+ K0 P1 x" y' S
5 i' Y6 k5 k9 n 4 D7 X6 h" v/ P/ e8 }. w) v* e4 K2 s1 a

0 ?" F* z- z: a2 ^8 r3 D0 n 0 b6 A5 y# J: r: B& ]
) ~/ E1 A( p3 J9 q
9 c$ w5 X% @- r# F; v
FlameCyclone.ys168.com
' ~+ f& C0 l6 Y9 N- F- B) Bwww.nesbbs.com- ;[FC][最终任务KEY][END]
, z6 _) U) x' H- @0 H$ N - button = $04 ;单次按键" \9 L3 y8 ]$ R
- flag = $6000 ;功能开关标志$ N# x. Y$ [8 B
- pause = $000E ;暂停地址
& N* P0 D* |9 H, }. D5 w - ( V3 w) v* R7 [: ~' H
- .ORG $8000
0 V6 _) Z/ t/ K- I - LDY #$08 ;自带的按键程序
# u0 s2 L( ]. p; M$ T5 N; G; y - ADDR8002:
; }; X+ Q5 h2 F% ?" d% R! E - LDA $4016,X7 j& x' O: n: I) e/ ?! Y) a8 g ^
- LSR9 I" `" L3 O! a S8 ~9 F
- ROL $0021
1 `' E& V" o" ~3 D7 D - LSR
$ ]' Y$ n1 F& u# i - ROL $0029
$ \- j( h" d0 {5 E! | - DEY b% S$ k' {# |- K
- BNE $8002
+ Y7 k% _7 x, @& a5 g# O - LDA $0021
7 n/ }7 t! k! \0 p6 L2 @! M: I! q# C - ORA $00291 o9 F- ?# [: s7 T! ^- W
- STA $00212 c: }& Q L$ P, `
- LDA $0020) u n) a$ h' }0 J- y
- AND $0021
; p/ Q* S C( i - STA $00206 s# W" t& W1 s& j6 y3 k& S
- LDA $06,X
" E1 L( z9 E. M- N) N1 L8 ~ - EOR $0020 o; q0 M ^* G5 M. O
- AND $0020
( r. H3 G! ~/ ?* B- V- i; _$ @+ I - STA $04,X. W" f. f' K0 L/ J/ b* z
- LDA $0020
$ q/ U& t) ^% e, h: q1 m# c1 G% `/ [ - STA $06,X
" k0 E4 c b0 D" G; D - JSR KEY_OPERATE% z, k; K# t# q
- JSR Function ;功能调用
; ~" M2 P5 F U' f1 S2 G - JSR Weapon ;武器切换调用 \2 w1 d5 P2 X4 C
- JSR Power ;威力调用
0 ~! \7 x& w4 z - JSR BULLET_NUM ;子弹数目
9 e2 p5 X- K8 e# _ - JSR BULLET ;副武器类型
, M7 @1 ]/ k. w7 D& A3 @# A - RTS
7 V: y3 ]2 o( ` - / H% G$ p4 q B" b+ s# [0 a
- ' w' K8 \, L7 X9 B, R6 t8 y
- k" Z6 L- ^8 Y- .ORG $8050
. p0 H2 n5 Z4 D8 ?. T - Function: ;功能
1 z# T8 L( @8 l6 e8 Y, m0 E - WUDI: ;无敌& l5 k3 x! H! l) H
- LDA $6000,X6 ]3 ~/ k0 z, D3 [ m0 b; W; {
- AND #$08 ;开关判断 {: d q( R( r* A2 H- ]$ `
- BEQ LIFE1 _" B: R0 i2 w7 f. Y
- LDA #$05
1 @8 L4 V+ G3 `, M( Y# V" a9 | - STA $05DC,X ;无敌锁定
8 ]) I! P4 [: J7 a8 ]3 Y; m - LIFE: ;生命6 Q: G1 y, o+ y7 j( H+ v5 k
- LDA $6000,X' K: o( T$ Q/ L; Q
- AND #$04 ;开关判断
& q5 I9 Z2 G+ g: D: }: { - BEQ FUNRTS
+ {- ?0 b( T; N/ i! l - LDA #$05
5 W& |. t, U& v& Y7 K0 w# | - STA $1C,X ;生命赋值$ X+ G7 z$ `' c+ t3 N
- FUNRTS:! ~. N# c/ U, d6 m5 s+ m) N& t; A
- RTS9 q) f$ K B. M2 l' e3 j
- / E, e4 J6 J5 V# s# z& ?
- Weapon: ;武器切换5 d( j& ?! a, }! g
- LDA pause ;暂停状态判断) d4 r7 I# V0 g! X: W( G2 u% c5 u
- BNE WEARTS, D) {- }6 j8 s8 t' A" i
- LDA $04,X
& U8 T* U0 ]5 b7 B5 G" _( O9 ` - CMP #$20 ;选择键判断4 o q; S6 D) h1 p" B6 Z+ f& {
- BNE WEARTS. w& \, T9 h' O( \: ]* N9 n
- LDA $12,X7 C- u% c6 ^; A& Y$ C1 @( s- m% t. H
- CMP #$03 ;武器值判断
# k$ J3 ] R9 K# K* ]# k1 R, F - BCC WEAINC
* Q8 b! V( F6 o( p - LDA #$FF
, R9 ~& K/ `9 ^& _ - STA $12,X ;武器重置
6 [3 U! c) k5 h- |8 H4 g6 x - WEAINC:3 J, A! S: r& W7 y# L
- INC $12,X ;武器增加, O v% h& r G6 b- J
- # B2 F. p# w6 y2 c& \/ E8 Q# `
- WEARTS:% |6 i9 n; o; |* H2 p
- RTS
+ G: j% x" ~7 ]: e7 S& b -
- X. Z2 m+ x; }0 Q - Power: ;威力) E7 x* x1 T8 R) B# G
- LDA pause ;暂停状态判断" u9 k$ d1 Z0 H" g, c2 J, w4 }( o# ~
- BEQ SPERTS& P7 b, ]4 a2 J# z1 V
- BUT_LEFT:
+ ]4 D; r2 {$ s, N2 h - LDA $04,X
6 U' [# D4 d9 u& l% l3 V - CMP #$02 ;左按键判断
5 p5 c) o b3 [) ?- o - BNE BUT_RIGHT* z9 Y) {1 x; c
- LDA $88,X6 r* J! b# H1 [0 n
- CMP #$00 ;威力判断
# Q# H7 ], c/ ], [8 J - BEQ SPERTS8 T( |+ X9 O. V2 N: O! M o3 A* h
- SPEDEC5 _4 J, J# K9 | ^4 Q. X
- LDA $88,X ;读取武器值/ ?4 `1 V. `, C0 N$ G+ U
- SEC' L" \# \# Y' Y
- SBC #$08
3 w6 l D1 h9 n7 p$ W) y - STA $88,X ;威力减小1 t+ J+ O2 A* Z% {
- BUT_RIGHT:
4 l+ U6 b. f: y/ Y- R% p( z - LDA $04,X( |# v i5 X/ s9 s- Y( P& ?+ R
- CMP #$01 ;右按键判断4 D: l U5 i, ^- N
- BNE SPERTS5 j/ ~* N. ^" C
- LDA $88,X+ O8 J# ^; I$ _4 X4 p, j2 B. L
- CMP #$10 ;威力判断
; U0 E: e/ N3 t; D% D" ?: ^; f; V+ L& T+ v7 O - BEQ SPERTS
& O& x R" d8 Q7 [, x8 ^ - SPEINC:- w% ?; R& ^& V( N
- LDA $88,X ;读取武器值
! {( p" y- l+ A% k i* e' X - CLC/ c6 C$ _* ]: H2 O; \: ?
- ADC #$08% m4 \+ o0 s( d7 p/ y% l
- STA $88,X ;威力增大
( j- z- R) D. O6 O: x3 Q/ ^ - 5 T" J4 e O0 b7 m2 h
- SPERTS:* q/ e. ^. b# x" S/ |
- RTS
3 |: S l. s0 |4 \
3 j2 @ L: V* t Y) x- BULLET_NUM: ;子弹数目
6 x4 q- m& D [! \! U; i - LDA pause ;暂停状态判断" M" [/ o8 R; T1 L% |4 J$ m
- BEQ BULRTS
- u g( q. D# [ - CPX #$00 ;主机玩家判断6 o3 u, d& Q# M. `) M- b* c! O2 I6 T
- BNE BULRTS
- J* ^0 t4 n+ G( z. G - LDA $04,X ;主机玩家判断0 Y2 C; I0 ^: e% X8 D
- AND #$80 ;按键A比较) ^8 c1 c' v) l, R+ L6 Y
- BEQ BULRTS v) L" ^9 n% A4 W4 h) ^1 V* C& z
- LDA $87 ;状态判断6 Q1 \6 F! t$ K, V, g6 [
- BEQ BUL_2& J3 O8 n+ q% m- w7 E; J- J% u B! `
- BUL_1:! |6 O( A* Z7 L( [9 T2 ]
- LDA #$00
# ]% {7 Q5 H5 K. M- Q9 U7 k - STA $87 ;1发子弹. f+ q, A, g8 h2 l! A
- BEQ BULRTS+ O# c( B. Y9 R' e- o$ S
- BUL_2:
& d( R. ^ Q8 b - LDA #$01) G+ m$ d$ D8 y% z8 T* e% z8 S
- STA $87 ;2发子弹
4 g3 b* C. ?0 c! J1 V' n1 g0 A- c -
8 |. Y( I& M9 u5 j' ? - BULRTS: r3 B# Z7 w* s2 F" O2 ]/ y* Q6 m$ H* ]
- RTS
; M3 G; i! H/ [4 E0 I4 J - + ~3 |1 c {9 ~1 y3 h# x" j
_) ]: J. s* t- \3 F+ o- BULLET:. l, a i/ Z: J$ _1 A3 b" T3 r9 _
- LDA pause ;判断暂停状态
! q$ s! K. T3 e4 f7 V) I& B - BEQ BULLETRTS
1 F @7 X# t0 F' T& _* M) v/ q! { - LDA $04,X/ j2 B3 U+ P z+ G
- CMP #$40 ;按键B比较% w0 f9 E8 t2 x6 M* y
- BNE BULLETRTS7 G% \* Z# f- n
- LDA $6002,X ;读取副武器
; H( J4 ]2 g/ Z" Y$ ~ - CMP #$03
* _! ?0 N! \- F' o' n$ r* G2 |) G - BCC BULLETADD4 i; o- N H' {" p% T
- LDA #$FF9 x$ w# ?) `2 M+ h
- STA $6002,X" M' J8 n. L2 b+ C0 s% \
- BULLETADD:$ q% B$ _5 t6 y( G9 c4 j) r
- INC $6002,X, @4 t+ \( \, c) B
-
7 F6 p D+ h, g, L - BULLETRTS:
6 }1 T6 s" a X% P$ p9 \ - LDA $6002,X& H8 P T# {! }: U* l" U
- TAY9 N7 g# E1 I5 p- Q
- LDA BULLET_DATA,Y
H: B r' o' A8 C# t( I - STA $6004,X ;写入副武器数据2 C8 c1 X; Q. H7 n# p0 r
- RTS! _0 X/ ~9 A4 z# U3 \: @
- * e" j. E7 ?3 ^6 j; ~/ `- }
-
& _8 b! t9 z* z6 p5 T# E& _' \1 U - BULLET_DATA:
T" r9 v1 B: Q* a( R& U - .BYTE $06,$02,$03,$04- d# i. \/ ^! y6 ~( Z
- * k* e1 R4 i9 \) T
-
; c' u' |! X& o S - * }. ~! A# `; W# o- U7 j4 ]
- KEY_OPERATE: ;按键开关操作
) o! w o% j9 ^1 r - data_protect: ;数据保护
9 C# Q0 G s9 n# [0 H - PHA
! s* f$ w0 T a4 x% `2 v. s - TXA+ T3 C6 C/ l1 c3 _9 T4 k; Y* B8 M
- PHA! z* L0 i2 I' c$ p, X7 H
- TYA# z& O+ F- W5 O( J6 ^4 Z4 H
- PHA
# Y# S% u8 o& i* Q. N( ^* x7 G% F
: c0 \7 n S$ M" T3 z; [- FLAG_INI: ;开关标志初始化
6 W! k( O2 R5 K. ~+ { - 8 z# L- R) h3 M& t1 l' r
- LDA $600F+ W& Y. y% { V1 ?- r. W9 r
- CMP #$01
# }: y% }# g Y$ T6 }2 Y - BEQ pause_cmp! M6 q s6 q- z2 Q7 A$ S* H1 f
- LDA #$00
9 K# v/ D# T; a; U x - STA $6000
; f5 \ t- I' W - STA $6001! X; X0 H: H2 p& T; j; i, y
- STA $6002- a8 E( D& P) p9 W/ {! O
- STA $6003* n! m, c0 P2 ?& }5 H
- STA $6004
3 z# Q6 S/ b+ \ - STA $6005
9 @5 i3 \% q, _3 S; G - LDA #$01
# U5 ]) R' P8 ~: Q/ l& n - STA $600F: b; v7 k# P9 V1 s" A# L% x
-
3 ?4 S. W$ c2 b8 A5 ` - pause_cmp: ;判断暂停状态
$ B3 T% T3 T5 { - LDA pause* R& i+ N# O4 F3 b
- CMP #$01 ;判断暂停状态; J0 n( L$ v. m4 K) h* A' M
- BEQ button_press
) p; }+ z3 ^8 N! A7 c. ~6 b - PLA4 b" Y; |. I6 Q
- TAY
; E7 V1 E F/ ?. g - PLA
" M0 A9 |& ?! ^5 ^7 l' h, ] - TAX
8 }; O* d- ]8 I3 @ @# J u% x - PLA* J1 \( M* n1 b' x
- RTS
$ u% a' u/ s7 \: ^3 Q! T K7 b - 2 e0 ]: \ w) V/ r6 `
- button_press: ;按压操作1 {! X: |6 K C, H9 f: B9 y2 n
- ini_Y:% G5 N' M: S) v& @' W* }- ?
- LDY #$00
; Z6 J# v3 d C5 j7 | - button_cmp:
1 _' f; e9 X* @$ l - LDA button,X, \; y% E" L' l/ r* Y7 R
- CMP ora_data,Y, r. c' i' ~: ^7 S! H8 m
- BNE count_Y_cmp& }3 y9 n7 {2 G
- flag_cmp:4 j Y( e7 \0 ^6 b! M
- LDA flag,X4 c$ L/ d& u; g9 N0 |% f" K: f
- AND ora_data,Y
4 |0 T7 R; o( D# y6 t - BNE flag_and
1 H9 z) X# I0 H1 D$ s( U5 Q - flag_ora:; F' A/ v" v' v' M$ u
- LDA flag,X
" u8 T0 o# V1 x$ d: i$ a - ORA ora_data,Y
M9 _/ ~. q+ j, k2 R - STA flag,X
& P9 F: G4 i5 [' ^( A - BNE count_Y_cmp
8 g# N! Q1 L5 M' ]3 D - flag_and:
' D0 E- a+ G5 R) } x# ?+ K# ~ - LDA flag,X& [$ d/ `$ k2 s- R! _- w$ Y8 Z0 D5 ^
- AND and_data,Y
9 F: Q u! ]8 C" ?$ p9 ?% X/ [ - STA flag,X! ^; ~2 T" L" }2 X8 h: j6 C: p
- count_Y_cmp:3 U8 J+ w5 h/ Q9 R W7 j9 c! q- O& i
- INY
7 B! a& x( d" S - CPY #$08/ g: D. u, ~2 x2 o" U6 z& F7 T
- BCC button_cmp
$ F7 \# }) G" p5 I2 J- d9 D - 2 D, N, w& o/ Q u) o
- data_extract: ;数据恢复! o! ~9 M. @2 @* l& N8 x
- PLA* o* G) I" @+ E+ @; Y
- TAY: {) A0 M8 ?3 C& d" y5 A7 I
- PLA
+ N( j- T; A) U7 @8 M - TAX8 d3 m& e4 A1 q- F! K
- PLA3 m: a2 S+ \! A4 }8 ^" G( k( _
-
8 I' I# S2 |* i% U& S3 W( K - return:
' M) n* v! a" `( V9 H - RTS
* k3 }7 P7 H4 ?9 T! I2 ~ - 4 K* z; N4 X: d4 D8 l9 D* R. d
- ora_data: ;按键相或数据7 `( \. ~" o7 m! t1 D
- .BYTE $08,$04,$02,$01,$80,$40,$20,$10
6 e# q6 D0 n8 R+ N - and_data: ;按键相与数据! n1 C4 q: |' [# ^3 F3 m2 G& r
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF3 J4 e5 c& r/ e2 A
- $ {9 ~ w" K/ `5 j* f1 u/ \3 f+ l" _
- ) J+ A" T/ Q4 v2 P D
-
7 C8 u# z7 Z2 Y% _ - # u' ?) g- Y) N1 e
-
9 j! _" H0 X& M -
8 H5 ]' Q% R+ g/ @/ c/ U - 2 e( G$ ~( [' t- z6 q0 ]
- 6 @. d0 M% {5 M. d/ |
- " B: ^1 i) E8 C1 p+ K: `$ Z" R1 x8 ~; ^
- .ORG $C264 ;自定义的MAPPER2切页程序2 W9 C% @; n7 x5 V! E' T2 T+ Y
- PHA; O+ n* Q" z8 W/ V0 `
- TXA
2 O, k7 b) ?2 I& m# l& c - PHA
3 `" X {! e3 ^6 Y$ u - LDA $0066
# Z6 v: g4 q5 O5 W7 p0 C - BNE ADDRC280
5 H( i/ S9 g2 u - LDA #$07
( U3 X5 x& n6 c- x - LDX #$03
+ H) `$ Z8 t: g - JSR $CD9B ;自带的切bank方法
1 Z( P, q& y# G$ a. T1 ^ - PLA
* P4 A6 S4 z* { - TAX
& D! Z- X8 n1 D' f% K$ `! L4 F - PLA
# S/ Z2 K" Z1 j, ^+ y( E$ v2 z - JSR $8000
' U1 \3 u" ~# S% Y' W& t - LDA #$06' V# t! m* D: l m6 K" P
- LDX #$035 D) h0 O. c9 p. t: k
- JSR $CD9B ;切回原该切得bank(可以不用), D8 g4 q& z8 Y1 Y/ J4 k& \5 V- t
- RTS
) @" ]0 h: ~/ e. D7 | ? - ADDRC280:! v4 u& e3 q0 C9 x$ G
- PLA0 M( n3 t. H+ q, x& O
- TAX
/ f6 I* k# t1 w5 c1 w/ B% @# n- H - PLA
9 L! N I" z; P& w - RTS
1 p) ]+ Y7 ?; H; z6 N -
2 _+ ^4 s/ t8 `, B -
" M z& K2 s9 B" V8 | - ;[FC][最终任务PPU][END]4 b0 t2 @( r& S8 w2 Z# I+ @7 G$ N
- .ORG $C056 ;跳转到PPU重写程序0 ~' T @& h8 O" I% t: ~) R$ J6 i
- JSR $7000
5 r' ?! O1 s' } - : u7 f* N# q" g/ Q9 d3 \
- .ORG $CEBF, W0 e+ o. [: t, {
- JSR STAGE_DATA_WRITE ;跳转到关卡数据写入
! G7 `+ z2 i( v - - o$ |& k& d* N$ \+ T
- .ORG $E4606 u6 V+ k' d0 w1 B7 c& b
- JSR BULLET_DATA_WRITE ;跳转到副武器数据写入
6 I. X# a2 q3 v, H$ T -
p/ Q7 W3 j# }+ ^, ] q - .ORG $71F0
. s, Y/ @1 q2 J( S' T - STAGE_DATA_WRITE:
3 _9 q& i1 d$ c8 x - LDA $60103 r+ M5 n+ x# J- n
- STA $1E ;关卡写入
( } ?, j( A$ H/ F! u8 M0 k - LDA #$00
# H) I- ?5 X4 o - RTS. l) s0 G* m5 H. o+ f o
- .ORG $71C05 L& m2 C$ S8 X0 k0 F" K
- BULLET_DATA_WRITE: ;副武器数据写入
5 Z q3 ^ }2 j; g8 R1 d - CPX #$0E
. p m- [, v) I3 F7 x0 W8 m- O - BCS P2_BUL
% @8 l4 ], _+ h) y: q - P1_BUL:
$ m2 g+ |0 d8 C- c7 P - LDA $6004
2 I. N- i4 U! K3 f - JSR $D7D0 ;P1副武器数据写入" I+ Q1 E$ J. N0 p
- RTS
5 h8 v; y! S2 s: Z# j. |2 D9 o - P2_BUL:: W# T+ N+ A, {
- LDA $60054 _2 ~+ O- t* q {6 C" ~
- JSR $D7D0 ;P2副武器数据写入' L$ s2 V! v' a" O, r" N
- RTS/ C1 x( _5 B$ k6 f. w n5 A8 ~! j
- : w. Y, i+ w' ^
( u" |, V# z; k/ {0 v$ L- .ORG $7000
4 m3 q5 t3 }0 ?' W8 r -
/ `6 [, g" g1 n - STY $4014 ;补上覆盖的精灵写入指令$ I; m# @2 V4 U* k# W
- PHA
* W1 f. k5 T: |0 W6 I+ y2 H, p/ I - TXA% R- P# N, o; j* @# h0 W5 v1 M7 l
- PHA# e$ x8 G7 _( b5 I! s# h% S
- TYA+ Q m9 m6 d2 x2 w
- PHA
) ]' o, n+ s! Y% f - LDA $0C3 M* |% ?5 w! T
- CMP #$01 ;比较是否为标题画面
6 v$ W9 k! g2 U3 i. b( z: n& a# z - BEQ PPU_STAGE( W; K+ l( D) \1 C& b) ]0 Y4 ?: q5 J
- PLA
; k; ?/ _7 b3 S$ v! r# s# t1 } - TAY
0 `9 z. Y6 T% m5 |- K2 H - PLA* b; Q' p: Z& O) ~1 _
- TAX2 M- n* s3 Y A, _9 I% I( R0 B6 N
- PLA
) E% Y" ?' x% Y) U* w& X J8 a. Z$ j. z - RTS/ N" [2 G$ y& K8 e5 \6 T- P7 N Q
- PPU_STAGE: ;STAGE显示程序
2 a2 y+ l* }; X2 ]7 U1 R* p - LDA PPU_ADDR_DATA V" Q2 h5 n. D+ r4 Q
- STA $2006
2 F/ Q3 z9 P# E% @* n6 t7 _ - LDA PPU_ADDR_DATA+1' Y i8 n) g' F5 O- R Z
- STA $2006 ;坐标设置2 C# `0 J& Y" l% L8 R
- LDX #$008 H. B" G1 B* B7 {# b
- PPU_STAGE_WROTE: ;写入STAGE字模
( B) j8 t1 N6 M - LDA STAGE_DATA,X8 D4 h3 c2 f' E
- STA $2007
{- `5 T3 {6 x - INX2 Z K$ @, q5 B: W! g
- CPX #$06( \* D. t6 m+ d
- BCC PPU_STAGE_WROTE: |& N0 `; T. y/ b, d4 v+ h& [
- LDA $6010
5 k/ }5 F0 @ r' E- V9 |( ~% w - CMP #$FF ;关卡数据初始化条件判断; f/ ^) F) }" i$ m B
- BNE KEY_B
6 i. y, ] _ ^. h - LDA #$00) |( b& I& ?; p% C# d% Y
- STA $6010 ;关卡数据初始化
# p8 d- R% {* c' A) L - KEY_B: ;关卡减少. b1 ]& d) v; Q/ D
- LDA $04- S4 o0 d6 x {) A. a1 a, ^
- AND #$42 ;按键B或左减关
l( f/ G# k" V( B - BEQ KEY_A( {: i3 {# ]3 Q! I
- LDA $6010. ]8 v4 J; ?) X9 T
- CMP #$00 ;关卡比较# V m, q. e/ I
- BEQ KEY_A8 {3 j6 G; d3 G$ {* ]- {- g9 j U
- DEC $6010 ;减关; {5 O: x( d% {$ s! @7 _) n
- KEY_A: ;关卡增加, ?' R C( C/ @! e# h
- LDA $04
; F- }+ ]8 R9 b) s- H, Q" Z/ c - AND #$81 ;按键A或右加关; u* }+ h3 x/ W2 s# R0 d
- BEQ PPU_NUM_WRITE
8 _2 w, I0 h: X1 x - LDA $6010* @) q/ m S' L) v1 C
- CMP #$04 ;关卡比较
1 s/ l- h" n9 L. F9 k/ p, W - BEQ PPU_NUM_WRITE
, g0 H u1 J7 U* y6 h - INC $6010 ;加关
9 j% s: u) d3 y/ R+ G7 k+ w - PPU_NUM_WRITE:, G) m: r" K6 l/ B; U- T1 A
- LDA $6010
( Z; h6 H" r; |" K1 d C - TAX) b4 x% A; D* L9 o, g
- LDA STAGE_NUM,X ;写入数字/ R8 o4 n5 v) t7 L: E* ]
- STA $2007* E9 O- q# @, G) K# T m8 v
- PPU_RTS:3 p' F# ~: Z# K) D$ ^
- PLA
6 W3 ]! P% } f - TAY: ^9 u+ X0 J/ u, p9 v% L9 M( W
- PLA
& h( T# g" `) n; w - TAX
T, ~+ K* F6 t$ M* f" f3 F - PLA
- @# a3 ]# p6 U - RTS
. v: T. ~5 b8 l" `+ _! m8 i0 B! n+ R - ; b0 Y6 A( z6 o- I- F& [/ a
-
* A+ K( R( N- p. j - STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据
# D/ D5 k" w' n# B7 R8 b3 R - .BYTE $EC,$ED,$DA,$E0,$DE,00
6 u. X# o; ?' z2 m5 l7 k - STAGE_NUM: ;关卡数字1,2,3,4,5字模数据) n! ?0 n7 ]0 B0 V1 r
- .BYTE $D1,$D2,$D3,$D4,$D56 B( \% o& u. d/ {4 t. R
- # F4 H }' K3 \" r; A1 `
- PPU_ADDR_DATA:
5 b, z3 T' C/ c& B) J, C5 | - .BYTE $23,$0C0 D; W/ y" `8 a" Q- T& n
-
7 ]) g9 j9 _! ]5 a) J; R0 f2 ?5 i) o
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
1
查看全部评分
-
|