|
|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑
, Q/ @, p* S9 N6 y3 T) I
7 B0 b1 T) O1 S) I6 m$ F7 v. U [FC][最终任务][END选关]4 s! V2 g: x4 r
! u: @8 t( m$ f8 n) j( \
时间:2017.3.29! q/ b6 |: s, ]
作者:FlameCyclone
; S% _1 G! s( D2 ]+ n3 u" }内容:) s" `* L8 a, I4 u- Y0 P1 L0 V& @
1.关卡选择: 标题时,左或B减,右或A加(1-5关);
( P3 I" s2 N5 `- Z) \ 2.无敌锁定: 暂停后,按上键切换;
" s' C# {/ G( l4 Y$ W+ W7 @ 3.生命加满: 暂停后,按下键切换;
( P1 R O0 a% K0 g+ z 4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);! M, |+ d; T+ q1 ]" I2 A
5.子弹切换: 非暂停,选择键切换(普通,W,L,B);2 C- c$ ^$ r) t1 p5 v
6.B弹数量: 暂停后,按A键切换(1个或2个);
/ Z% W2 B! e3 }7 q 7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;
& a4 D+ r& V. b% j0 d7 y! N/ B0 T; b/ k3 V% E

9 J' P# x6 c) h. ] 3 x/ j H, u l% I) g
, ~ V+ T3 P7 b; I# @% b
: Q4 c- a1 z: x" v- {- ^
/ ^5 t1 d' r! r; m" P/ A
* F4 n( b" Z# v! r4 y. K! x |' RFlameCyclone.ys168.com+ J, M4 i: z/ @; G
www.nesbbs.com- ;[FC][最终任务KEY][END]
) Y) ?1 b- x, o- i - button = $04 ;单次按键
* Y7 J- D" B1 k' K; i. X! f+ |# t - flag = $6000 ;功能开关标志$ Y G- s; a, L7 o* k8 \% L
- pause = $000E ;暂停地址: j; E% Z( ?9 @
- 5 ^+ T/ ^( |$ @$ X
- .ORG $8000; w8 Z( `' I6 l) P! p& z& h( B/ q
- LDY #$08 ;自带的按键程序- E- e6 s% u( |3 {& D
- ADDR8002:7 d" }7 X; t/ `8 F3 v
- LDA $4016,X! U5 T& m# V6 g, E5 v6 q
- LSR6 S1 s) u4 z/ g& I; _+ Y
- ROL $0021
* X) |/ ]9 c" j+ o4 u - LSR
' n, y) \8 z# {3 f, \. V' t - ROL $0029
! B5 H& O* k) t% k - DEY
3 s) f9 \3 d# _ - BNE $80024 M9 v4 _ x- R; w
- LDA $0021/ z- |; L! ?3 i2 j I
- ORA $0029 G8 K- T {$ S* A. C0 I3 P
- STA $0021+ I! N8 k; R1 N! `
- LDA $0020
; e8 ^/ H b+ g - AND $0021" t7 p7 w" v& L* q' H
- STA $0020
0 A3 F+ H* w& t+ a( G5 j - LDA $06,X; y4 p3 c3 h* F. d$ R6 u
- EOR $0020
( O2 _ M7 C6 m$ \* ~4 {/ L - AND $0020
7 @$ [" S3 y& q# j) P - STA $04,X) u( C, [8 i- V
- LDA $00205 M6 B" I6 v- X' x
- STA $06,X9 P# ?+ R; w4 d& k* K
- JSR KEY_OPERATE
- }: K% l' J% K# q, u - JSR Function ;功能调用& h- s# c7 L2 b! \8 c6 s$ d
- JSR Weapon ;武器切换调用
r1 R# C& ^! r' G1 Y" o - JSR Power ;威力调用
. a$ V! A, q& ?" j - JSR BULLET_NUM ;子弹数目
2 y! u! H2 P4 B F/ i' y9 ? - JSR BULLET ;副武器类型
& i* d% Y/ ]3 H7 W- h - RTS% U$ F4 Q, b7 i1 N0 ^
-
6 [' Z# i" j" T& @ - + Q( c: g: `6 x5 S8 s5 J& i
- % M" A! i, g6 t
- .ORG $8050
: \' p- B1 I I. N9 _0 K8 t$ a - Function: ;功能
1 T! A. N: D, K7 o0 c - WUDI: ;无敌2 ^* Q% {9 k7 E8 F! j' x9 u
- LDA $6000,X* w1 A- {+ v, B. B6 D7 S! F
- AND #$08 ;开关判断$ @* r! e: `/ }6 z3 q, y! V2 j0 W
- BEQ LIFE
B5 ?5 c7 c: a! I$ L) S - LDA #$05
3 I6 W; U( I' R8 L5 j7 E - STA $05DC,X ;无敌锁定4 @/ o9 Y7 R) g
- LIFE: ;生命
7 e% ~1 e- H# G0 t( {1 z - LDA $6000,X
+ c: R; V, b$ X, X2 [8 Z - AND #$04 ;开关判断. s1 e+ H8 c: @5 Y
- BEQ FUNRTS
0 I9 J7 }8 b% B1 H' ~. R4 ~( d - LDA #$05
+ l' [! h, e6 U) H* i* `, S9 _ - STA $1C,X ;生命赋值/ [, S8 ~: U# ^
- FUNRTS:
% J6 g, D: C! U- D - RTS1 f h- Y9 M8 P! B
-
) ]. U+ Z3 S' E# ]3 S - Weapon: ;武器切换$ `4 ~ u' a: p% D$ O8 m
- LDA pause ;暂停状态判断. V$ m' y1 c! k E. [
- BNE WEARTS5 J1 d u# K" J7 u% j
- LDA $04,X
2 f0 d( n( C& @) a$ e, X - CMP #$20 ;选择键判断
! \7 C0 ^) `& @$ { - BNE WEARTS
8 X+ v9 f0 ]; b, y# l; y - LDA $12,X
. ?7 p/ Z* W# F2 V& g5 ^2 N: x. ^; D9 n - CMP #$03 ;武器值判断
7 c0 K. z& v2 a) e# u& p7 ]) C" H1 Z - BCC WEAINC
^( g& l+ J6 R9 X3 h% Q - LDA #$FF
4 d, U) Z( t/ D - STA $12,X ;武器重置9 Y, w5 {+ A$ V7 t6 H' {. o0 L% D- ~2 Q6 ]
- WEAINC:! b. G( k& H: ^& Y5 x% c
- INC $12,X ;武器增加
9 u) {$ L/ @8 o5 k5 E v! r! R - / B+ }5 f) L0 z4 d) J; D8 V
- WEARTS:
1 l" j9 K5 J. x- d - RTS
9 {& ~7 M) G) A* g -
# k- d) n4 A8 H* h- B8 R$ L - Power: ;威力0 }: Y$ ]- B, r
- LDA pause ;暂停状态判断+ F3 Z3 o: I" s1 L6 _
- BEQ SPERTS
" t% H7 a, O( Q3 f1 ] - BUT_LEFT:
9 B% c0 c' r! s. l - LDA $04,X- y2 @7 u5 P8 f+ q4 R3 R
- CMP #$02 ;左按键判断- p, D: y! O& c+ x
- BNE BUT_RIGHT
9 E* u1 R9 O% [0 W - LDA $88,X8 F. P0 \3 }, [+ W" o: W
- CMP #$00 ;威力判断
% q% L4 b' u) F5 \4 Y5 h- K - BEQ SPERTS4 p5 K- ~; x7 Q. B: r( B
- SPEDEC
" c: J K/ ~% } - LDA $88,X ;读取武器值) G7 h( k0 M2 U
- SEC( q8 U8 n9 T+ V
- SBC #$08
: [- y8 ?( O& [& J. S - STA $88,X ;威力减小
0 F4 m- Z0 _$ D5 h0 q - BUT_RIGHT:, X* W) I, C& r0 p; ~+ J# F
- LDA $04,X
# w2 l1 I9 I: `# m; Q - CMP #$01 ;右按键判断
7 O/ c+ ?; U) g2 f9 a8 ? - BNE SPERTS
( h1 b) L B6 S) g" ? - LDA $88,X
' m% G$ l- D, s3 d5 r% v+ c0 G - CMP #$10 ;威力判断$ a" ]& q+ R+ P" a( U: N
- BEQ SPERTS
$ B5 } A1 i, g) {( n+ X - SPEINC:5 I7 F% g( H; D7 u9 n% k
- LDA $88,X ;读取武器值
5 G' D7 J4 f7 I; S" Z. E n% v* G - CLC
! z0 G9 [! ~' p. p - ADC #$08 a! {6 x3 r# z" S {! |+ x
- STA $88,X ;威力增大
0 W5 l6 N1 p$ [$ p9 [4 o# Q& f- G -
- C7 O0 O4 f% W8 i3 p - SPERTS:, T e1 y! O2 ?" H* w% M8 K& H; Y1 ~
- RTS
( ~! y: `! u1 c7 F/ w - y. ^$ j. H. I, Y. a1 M2 F& f
- BULLET_NUM: ;子弹数目
8 O% G4 A# h! z l1 W - LDA pause ;暂停状态判断
6 e9 `; {5 m& d: N# S" Q - BEQ BULRTS0 _9 z u2 G }4 W3 B) H u0 [' I
- CPX #$00 ;主机玩家判断8 s: `% a2 ~' r. E, s M9 v6 ~& g1 i
- BNE BULRTS
. P+ n8 Q8 Y; ~- W: ~ - LDA $04,X ;主机玩家判断6 s) R; J/ {/ G3 n( y. S
- AND #$80 ;按键A比较! j( S) P, ?7 x( s7 ]1 Y6 b
- BEQ BULRTS
% X) u# x1 C7 m) n7 ]5 X1 H - LDA $87 ;状态判断$ \% O0 {' @0 h$ y& W
- BEQ BUL_2+ s0 M% D" b' E
- BUL_1:
+ o" a3 H2 I% G7 J: } - LDA #$00
7 I0 T4 J/ z* }: G6 J - STA $87 ;1发子弹$ o+ x0 _. i$ _2 ?. g, x
- BEQ BULRTS" E' y* G: g2 `' x3 {2 `" }& w
- BUL_2:* I$ G* Y8 q: r# k; s- v Q
- LDA #$01
7 Y# \7 B( H6 M( Y - STA $87 ;2发子弹
& m" G- p+ u8 H, }' P: h4 X& P -
- `& h: W6 ~: K* `( | - BULRTS:
' J8 `6 o* f& |- o - RTS
9 X3 p9 f1 \. O& x* y3 F -
9 |, H. s* {: P6 s
6 q7 r. u0 c/ R- BULLET:
4 @' ?6 Q' j W/ x$ ]7 q# Z - LDA pause ;判断暂停状态- ?- f. D+ v8 [
- BEQ BULLETRTS9 [* o4 D) a! z {. N: Q
- LDA $04,X& M- t% W. j- q' A. I3 Q
- CMP #$40 ;按键B比较( D4 @4 U( X. I* n A
- BNE BULLETRTS
( I' Q' A/ Y T. R$ h - LDA $6002,X ;读取副武器
/ t; L n# F2 I& Y+ r* `8 H" N - CMP #$03
$ k8 O' N. F6 o8 X - BCC BULLETADD6 [/ G/ j7 n, Q; o7 X
- LDA #$FF7 z; u# j y6 R+ F/ E
- STA $6002,X
" p6 O) h/ J# M5 o* ? - BULLETADD:
5 V/ ~# Z' ]* U) ~# M - INC $6002,X
' l8 K. f- q) F' j( d4 K! m4 P - . C% ^5 k1 W% `9 M( R
- BULLETRTS: l% x% E' [& i
- LDA $6002,X
: |2 A: p$ m7 l, j; W: q) S6 w$ v - TAY
- _& Z& p" s/ `: E8 F - LDA BULLET_DATA,Y
5 O( ^0 a9 j$ [9 ]" Z; l - STA $6004,X ;写入副武器数据
' Q: N: L7 I, q; R0 F - RTS3 p5 ~0 X n9 \* v8 J
- 8 T0 @6 b, F& @, l T
-
9 o! F0 A0 c; [6 p - BULLET_DATA:
; W# I4 f$ O/ W$ ~/ E4 f - .BYTE $06,$02,$03,$04
& J+ w* D. U3 h2 }3 J b* x- A5 F -
, \- w. }% P( c- ] - 9 _0 i2 c& h" _, n6 P9 E
- 6 h$ y8 {7 s; h+ P% J
- KEY_OPERATE: ;按键开关操作
% e- K7 F0 I9 P3 D - data_protect: ;数据保护: Z4 @+ \& r: _8 q. Y$ B% Q
- PHA
8 r0 n; H" o D6 F6 Z7 k - TXA
1 P+ R5 L9 K7 B- `. F" p W9 Z - PHA6 x: w* @& q! X, ]' D3 b* {& l1 b
- TYA
5 D6 D+ m: _8 c, p - PHA
- a$ ~$ A5 v: { - # z! Q) } {6 g0 j- ^ Y R
- FLAG_INI: ;开关标志初始化! G9 N$ r9 U5 [
- * {' G) d" _! B S6 \4 \' j
- LDA $600F$ m% L3 N: M, P, q+ R
- CMP #$01" d; b7 E4 ^4 `# o' F3 o
- BEQ pause_cmp
& C2 ^, \' M) u) H! w - LDA #$00# m( A A/ W9 W) I' p
- STA $60005 c0 g' f2 C/ g, o7 r$ L3 k
- STA $6001( r" r$ @$ v8 N' M" ~! t# A* E5 Z
- STA $6002
/ n8 t. t4 |4 \1 x- |, n" h - STA $6003
% o7 Y: x8 T* S ^7 r - STA $6004
3 f8 K1 Z5 K8 d' {3 R' h- o - STA $6005/ b; [* O. p% x/ f, k" E: Q( X
- LDA #$01) K; I1 s: @7 Q% k! u4 ?
- STA $600F
8 F* k. m# i" k9 K -
. Y" B l. ` m9 R! z! c - pause_cmp: ;判断暂停状态
1 x* [- k+ _) Y" z: V! N - LDA pause; [+ Z r6 j4 J6 f0 l, t. Z: k& y
- CMP #$01 ;判断暂停状态5 e3 N) P1 y' I) s3 `3 z
- BEQ button_press
2 U/ j4 X7 ~8 ^: q# f/ d6 m) q - PLA
1 p, I" A. }- X) u: x! e+ C* ^ - TAY. H$ R' ]* C' w, E% I0 ]% r5 e
- PLA/ ]* l- {5 l+ K' A5 W4 \* o
- TAX
6 Q9 Y% @, _' R l; _6 ~3 { - PLA
; C7 _" f) c+ Z' E) X: @ - RTS. P$ z9 P5 ~' g2 B" p+ }0 f
- ( U9 d7 A/ U8 i; }
- button_press: ;按压操作
. C; Q m1 S$ R' [+ q4 k& e - ini_Y:
7 s/ b& D6 I# g: F) g; P - LDY #$00
* k3 {; o. @5 F8 _( B* E2 ~ - button_cmp:
& n. X T- S8 `) c$ E2 O* G - LDA button,X
2 z4 L; y4 h' _/ B, ~ - CMP ora_data,Y9 [; S/ w& P" Y
- BNE count_Y_cmp
0 C; {* b B( r - flag_cmp:! U7 w; j8 Y5 L4 t* j9 |, F/ S
- LDA flag,X
! R2 k/ @9 Y+ P - AND ora_data,Y1 P" `' T. \( ]/ T& x; m4 |9 X
- BNE flag_and ]4 i' w; n$ K0 \8 v @: e( U! V; H
- flag_ora:
: R; [7 `' f9 Z' R3 m3 |4 @9 i - LDA flag,X0 x5 G9 s8 l: N, s5 U3 L7 I
- ORA ora_data,Y5 K! n8 E3 h1 _
- STA flag,X
) ^8 K! I, w" H& `5 l - BNE count_Y_cmp
; P3 ~# {8 g) [0 m' O8 k5 J0 T/ R - flag_and:
. R0 M- B1 j! b - LDA flag,X. S( r( I, |- X
- AND and_data,Y7 _8 N# w$ O* E% C( \3 C
- STA flag,X
# f2 S' O+ w! S8 r# d - count_Y_cmp:4 a' y# e+ k: h
- INY
( [. k0 o+ K3 i( `9 G4 b( q( b7 P - CPY #$08 \6 _2 R3 z) A+ L. [1 l
- BCC button_cmp
\& W. f& K1 [5 R" T - A" J; s) \# i, C8 M5 j- E) }
- data_extract: ;数据恢复4 F7 C9 ^9 ^0 y: b3 \9 W
- PLA0 ^/ U. b+ l& m: `* X2 m/ n/ u
- TAY- x7 {2 r9 Y) q U1 f3 P5 O
- PLA; s2 T+ E$ [3 {3 l
- TAX9 B' W6 i0 p! j l$ `5 B
- PLA* b/ |" t! a J' T$ [
- & q7 F' {( _% r' Q: P& k' F8 }
- return:) J5 q# `5 p4 j( Q7 L E& X8 D) n% g
- RTS
! `# [8 X+ q1 ]. r% q q# S - / A) ?) L) @% Q2 N
- ora_data: ;按键相或数据: ^! c" R6 \; h
- .BYTE $08,$04,$02,$01,$80,$40,$20,$10
$ H8 C0 ^: V9 i$ U7 f; m - and_data: ;按键相与数据
( w, m- b; P; V" h( x4 r - .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF
8 i2 D7 [ i, d2 I" ^) [ -
% w h5 H' k3 l) K- S# d -
6 r7 o. x- l0 m* | y | - ! a5 `; X V8 k K6 a7 a
- ' U1 j% ^. E; Y8 z( T
- ! z5 q% N/ c% n0 ]
-
4 E2 L: U2 F& Y: f5 ~/ U
) M$ D+ d8 Z6 Q/ L- 4 u; ~/ i4 Q1 a1 Y
' `% x8 }$ U' v) k( u" ?- .ORG $C264 ;自定义的MAPPER2切页程序+ F5 A, P7 Z' U, ~: h" [8 ?" T4 w
- PHA( c, [. {+ Z+ v v% h
- TXA6 Q3 U! ^/ q3 A8 d* [3 S% _
- PHA' T+ [9 r1 `7 j* B3 m4 w! J
- LDA $00661 C' v2 e: @* k
- BNE ADDRC280
f1 {- `2 y0 l' r - LDA #$07
4 Y8 h. d6 W j3 ]$ H) O. e - LDX #$03* `( M7 q% u, U) w% ^/ p
- JSR $CD9B ;自带的切bank方法1 o( W* i: `7 X+ q
- PLA
/ H. H- d' f( j, C k8 S2 i3 A8 p - TAX7 F# M5 D% Z' F0 H
- PLA
3 s5 \/ x& P* C ~6 }2 Q - JSR $8000
* o3 k9 N# @/ W% K. W - LDA #$066 H- ^) p2 x @9 Z
- LDX #$032 A x# Q7 r. ~. N* q) C+ y$ l) Y0 Y# E
- JSR $CD9B ;切回原该切得bank(可以不用)# x: C9 i9 ]" W. }: u) ~4 i' n
- RTS
/ t0 g' ^6 o( ` - ADDRC280:
# h$ k4 N) ], N7 j# n1 c7 }: S - PLA
9 x# U! z8 R9 {8 N - TAX
, P1 r$ ^0 x5 [0 T: o - PLA! i, j, T. a- b( o! f9 e
- RTS9 X5 l8 C9 L6 K# a
-
: @. B/ v" F* Z/ s- {1 Y$ z -
. q9 }2 q/ a. i' Q4 J - ;[FC][最终任务PPU][END]. D) V6 T( U7 _. x9 t( _
- .ORG $C056 ;跳转到PPU重写程序9 E8 a) }: R) c3 Y
- JSR $7000
8 |: q w: d" | - $ n! a/ r5 S- |/ k8 Y; e3 }' K' ]
- .ORG $CEBF3 Q# F y) P! U2 o# t3 A' {
- JSR STAGE_DATA_WRITE ;跳转到关卡数据写入 {& \! d5 W8 f4 k7 D3 V9 o4 ?
-
. A1 D9 b! f$ u% w$ `- d/ L6 T' ?, Y4 ^ - .ORG $E4605 @# ?, G2 v2 v. G
- JSR BULLET_DATA_WRITE ;跳转到副武器数据写入. E4 O& L' R9 t( @5 {* N
-
' I/ v( c' M: \# Q* e3 \7 f - .ORG $71F04 {2 t, _, W2 P! I' E) Z& v( K
- STAGE_DATA_WRITE:1 ^% [7 D6 A; _( ^# l. B
- LDA $60109 ~ g4 ^$ ^" F* j. o1 `
- STA $1E ;关卡写入
9 Q& j- d, _) p9 [, S1 {3 q7 O1 d3 K - LDA #$00
; \; G0 a+ O8 b$ ^2 h- ^! d8 h - RTS5 U/ O" \2 p) l! ?6 D- Y: |4 d
- .ORG $71C0& l0 x/ m- y7 g5 P# z" j8 A
- BULLET_DATA_WRITE: ;副武器数据写入
: ]- v6 {* K9 p0 K - CPX #$0E! u' N0 d; R9 g( ^1 q' l5 Q
- BCS P2_BUL' d5 R+ c2 \% c; z
- P1_BUL:$ b; ` t/ B' @5 ], T0 y
- LDA $6004
, F) T: I) V6 S - JSR $D7D0 ;P1副武器数据写入/ d. p. Y, U1 P: {
- RTS
( h" o) X( E* ]/ a9 | - P2_BUL:* q" P S1 Y/ y& j0 J0 |' R3 ~
- LDA $6005
) Q# o/ u& Z W& D- S - JSR $D7D0 ;P2副武器数据写入5 h1 V0 Y6 s" h) l- A
- RTS
/ B5 B# W- l- u7 k. U5 o
2 _! y4 V( M W7 S1 t- 6 c3 U# k/ W9 O [5 _% X4 ~ p
- .ORG $7000
( b% ~$ l4 m0 y: Y - # p! j7 O7 b3 i- a9 d8 K; h
- STY $4014 ;补上覆盖的精灵写入指令4 @- V1 [ y: j4 y( k
- PHA& V0 p5 F b8 \0 x! ^- c! S# F5 @
- TXA. Y R9 p* O9 b+ v b
- PHA5 R: D# H+ a2 w6 m7 J
- TYA- l& V/ V2 r* h) U
- PHA
3 o" Q; ~4 {& \5 Y* Z( r7 L ~: n1 A - LDA $0C
2 ?' G& a+ A7 w C - CMP #$01 ;比较是否为标题画面$ |3 L. w9 x5 m: {+ i3 Y
- BEQ PPU_STAGE M4 X4 Q0 y! m
- PLA
# y1 d5 N6 D3 v7 H' x6 N, E: d- {9 n - TAY5 X, H; i. |/ l
- PLA, z( O# n5 |, A1 O! S; Z
- TAX' k( z0 O( G E
- PLA
4 a+ w7 w- [8 w4 R, \7 z - RTS9 N2 i" Y; Q0 w; h. u) i
- PPU_STAGE: ;STAGE显示程序
& n4 Z2 I! C3 @. K/ a* a- u - LDA PPU_ADDR_DATA+ B" q; L* e6 Q2 v
- STA $20067 ?5 {2 e2 B+ [' S; A4 E9 ?3 C
- LDA PPU_ADDR_DATA+1) A( S" O5 ~8 x8 k6 h( a$ I! |
- STA $2006 ;坐标设置! Q6 M/ U8 f+ B$ l$ J5 J2 z
- LDX #$00
6 j2 a6 P2 {8 ^: @4 i$ M - PPU_STAGE_WROTE: ;写入STAGE字模0 N N* z* x( \3 G! C; |% [% s
- LDA STAGE_DATA,X+ ] d. v3 O; G. {8 J
- STA $2007
3 i/ L8 L: N+ z. Y - INX0 k9 |) F0 O: y. Y W: k1 ~7 T
- CPX #$06
) D! L' |# e, e5 L - BCC PPU_STAGE_WROTE
. m6 z" | n0 \& r8 H - LDA $60101 G3 H1 Z- I7 V) i- c
- CMP #$FF ;关卡数据初始化条件判断9 `0 a9 K# @& x! @% }+ Q
- BNE KEY_B
. t9 s/ z5 v. s1 A: g7 F, Z - LDA #$005 C( f( a# M C1 ?3 x
- STA $6010 ;关卡数据初始化
- P+ W. ~" x- d$ J% W) a - KEY_B: ;关卡减少" [5 U0 z# b! Q# |0 R
- LDA $04# T! h9 k" F$ R9 k
- AND #$42 ;按键B或左减关
% T# H( k) L: i1 ?/ C - BEQ KEY_A
+ ^/ Z# K- e3 ?# O+ ` - LDA $60106 Z$ p8 [1 Z5 q5 A, ]
- CMP #$00 ;关卡比较
! I# T: E. _" d: l - BEQ KEY_A/ `4 b4 K& Z9 `4 u3 Q- k
- DEC $6010 ;减关/ _0 S) h3 {! T) H4 l5 Z
- KEY_A: ;关卡增加
4 r1 h- q$ f8 v - LDA $04
- x' A/ M8 i! m% W2 Y - AND #$81 ;按键A或右加关5 r7 a$ c0 D/ u
- BEQ PPU_NUM_WRITE
5 C1 O c$ Z* x7 _4 H - LDA $6010
* K- w, f3 C! m+ C! q4 E! w - CMP #$04 ;关卡比较
/ f! X: w3 G' y6 E7 y2 T ? - BEQ PPU_NUM_WRITE/ s6 G$ f5 T ~
- INC $6010 ;加关
( g2 c& ~* E$ m/ y - PPU_NUM_WRITE:
9 o# Z9 a9 ^6 e - LDA $6010
: v5 G0 z- X1 @" U, K J8 y - TAX
) I$ F0 y+ [3 Y9 O - LDA STAGE_NUM,X ;写入数字
. e K( t! S4 e$ }+ r/ i - STA $2007
7 y' v+ Y M) X* x - PPU_RTS:! l! l N! Y! z% u+ [
- PLA* B- q5 n5 q8 P/ j# C& ~2 o
- TAY1 T3 k+ n5 g H! V- e' a! l
- PLA
! I2 S3 `+ X8 Z: |8 J4 h7 ^ - TAX' t& Z7 n# U9 I' o( b- S4 }0 f( I
- PLA: |5 l0 D( U$ ~) k1 [/ T2 C
- RTS# r! n: [# I" K
- 8 |$ c. F* S8 L( P" t1 @
-
5 B: U& O( m X$ y' O! p* Y$ O* R$ b, w - STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据
9 x7 m' o) X1 |6 E2 A: @ - .BYTE $EC,$ED,$DA,$E0,$DE,00
" z$ L# z4 y( X& R - STAGE_NUM: ;关卡数字1,2,3,4,5字模数据
, F6 |9 q, F0 C" P8 v( }: `3 Y2 J - .BYTE $D1,$D2,$D3,$D4,$D54 k* ^$ T* Z/ R0 p- S+ _
-
) w* _* d2 [2 j& t* U - PPU_ADDR_DATA:3 J. q3 f! y. u7 A6 x
- .BYTE $23,$0C+ W! _/ k) H) o* ?; r
-
# |* D7 H* j- @
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
1
查看全部评分
-
|