|
|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑 ) N( h1 U& `' ?1 L
, v' _2 K3 j* ?. \& M3 o5 N [FC][最终任务][END选关]
8 f4 J+ f) m9 w& ]! i% i
# Z w- D7 S' r$ z时间:2017.3.29
2 ~( c2 \- t$ H5 v7 @作者:FlameCyclone- F( r# U7 G( ?4 s! N# b
内容:- O$ Q2 B- M6 R2 A
1.关卡选择: 标题时,左或B减,右或A加(1-5关);
. R* _! m) H" y, ^. E* w$ M: R 2.无敌锁定: 暂停后,按上键切换;; b9 l5 e F" y' D# i6 r: o
3.生命加满: 暂停后,按下键切换;
8 N+ d* J1 y9 P& e0 z" y( f 4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);" N; s$ O: ?- k
5.子弹切换: 非暂停,选择键切换(普通,W,L,B);
% x9 ?6 ~$ Y/ U: k 6.B弹数量: 暂停后,按A键切换(1个或2个);
$ R* k6 X! }5 U. J1 c/ x 7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;, w/ B1 l( E. q3 E% U
+ l9 U' `8 C( W% ~) G5 z9 H
9 D% U8 m- u1 w, J3 j' z Z
8 o; t; A2 N6 R, N. y9 }

% a5 t' e. B% v) M: J7 q. i ~. W! N% k* \# ?( T, R7 t
8 B+ X8 s/ j" _; c2 i, Q
( O# Q6 z% k, ^3 V3 e
FlameCyclone.ys168.com8 O! G1 ~; I1 r6 A; H( X
www.nesbbs.com- ;[FC][最终任务KEY][END] S6 S' H9 D7 q# a3 x
- button = $04 ;单次按键, Y K' t1 J ?
- flag = $6000 ;功能开关标志
5 K1 d3 H3 z5 G4 a - pause = $000E ;暂停地址* B7 t0 ^, r: O P4 S, b( x1 j
- 5 z1 \* Y' B3 h' q4 N7 I$ v
- .ORG $80009 {* l3 T# T: c T
- LDY #$08 ;自带的按键程序4 H, C5 b6 u8 Q$ p
- ADDR8002:
+ ^- d- L& V# O e W+ P' { - LDA $4016,X" q% d& `! k, E! ?6 z
- LSR& Z9 x: W6 v6 N( b# ~$ _
- ROL $0021, z( @) c! }4 g4 r; ]. }
- LSR# |8 r* b! m$ \0 _0 J* Y
- ROL $0029
7 x+ L( w; r# }0 h( X6 x5 u - DEY( J7 d; ?2 ~9 ]$ S4 g. u. c& l
- BNE $80023 [( @* F. j+ U' K N1 `
- LDA $0021% M$ W8 Z! R- f! c) x
- ORA $0029
, Q! l8 l" I* H8 C+ @: C" q6 r. B) i' e - STA $00214 @$ \5 A' G9 k% L" L# p
- LDA $0020
3 ]( {0 p5 f1 S% P& c - AND $0021
& V8 \4 X; ]8 j' H+ z - STA $0020
" s( f, m3 N Z - LDA $06,X
1 }4 R4 R5 N, D% |0 O - EOR $0020) T6 ^4 Z ^/ F4 ^$ e! {( r6 ?
- AND $0020
! r8 i4 n! w& M0 o - STA $04,X% `. I5 u i* g" S' ]; |/ t5 {: S
- LDA $0020
2 m* d# B0 H: c3 w( Q7 d7 g - STA $06,X. a4 E' o& m3 k, g
- JSR KEY_OPERATE
7 ^- W9 _% o$ `4 ]4 \3 H- M - JSR Function ;功能调用
2 J3 }$ i0 X' _9 T, @: V - JSR Weapon ;武器切换调用' g, \. w' x }3 t
- JSR Power ;威力调用
0 F# r1 u& b/ B6 s! e, S/ M2 M8 U - JSR BULLET_NUM ;子弹数目1 a1 s: K4 a. X7 _0 d7 ]* |; G
- JSR BULLET ;副武器类型
! m% z% p9 K" t( o - RTS3 L, o; @4 o% t. j7 s) ]
-
2 \% V; Z9 s1 P$ R! T0 n( x - U5 [& g9 i# I* f
% D% ]9 o* Z0 [0 T# y F- Q u- .ORG $8050
4 v& h% {: Z; k4 A* I' T - Function: ;功能
5 G. D& L& Y( i; k6 D - WUDI: ;无敌
6 A& r8 g$ f* i9 P- A1 q - LDA $6000,X
+ x" j1 N' B8 p6 r ^% [) h$ K6 j. ~ - AND #$08 ;开关判断, T/ A9 Z( F O
- BEQ LIFE5 c+ R; v9 K6 b8 V" i2 n
- LDA #$05% X7 |$ \5 l( H& ?" _3 L9 h3 L
- STA $05DC,X ;无敌锁定
& O2 w$ X& b# w: v - LIFE: ;生命
% @. z$ G U3 Y. D/ O9 ~ - LDA $6000,X
3 p7 _7 O$ c! w - AND #$04 ;开关判断 ?# {& [7 d, q! \) y, P
- BEQ FUNRTS
, {! @" B0 [+ L! t3 S0 ]4 n0 v9 h& ^% S - LDA #$05' |3 C8 b# m9 s
- STA $1C,X ;生命赋值
% o2 I2 A1 c% j0 w; Y8 u5 J( t" q9 ^ - FUNRTS:/ K, O' t7 J% m9 V2 F y4 v
- RTS
7 n* `- B6 W# m' T - 5 V9 J4 A7 |2 S* i3 F
- Weapon: ;武器切换; R+ m5 r6 \( K9 a" X
- LDA pause ;暂停状态判断
$ e' S1 | m! H0 }' ] - BNE WEARTS
- n* T' L4 w$ K - LDA $04,X
i# `9 ~0 l) u h( f/ z# M1 { - CMP #$20 ;选择键判断
" j2 X/ N, Y+ Y* M - BNE WEARTS4 ^4 L Q8 E2 c8 _1 X
- LDA $12,X: j5 R5 X4 l! O' |6 K2 G
- CMP #$03 ;武器值判断
5 t4 S. \0 ^7 I4 Q" v - BCC WEAINC
, u' x6 y2 [/ t. a - LDA #$FF. F9 v+ ]0 W$ v' S2 L8 n- {- t
- STA $12,X ;武器重置
E& g* {; S3 e) r, \ - WEAINC:: x" x6 _& p; [7 c: r! C
- INC $12,X ;武器增加 `# f8 N, Q0 {* k
-
* ]* u0 K$ X [; J8 i - WEARTS:
1 ?8 ^$ H. q( ]9 J. c! C - RTS m! o4 H7 b' ]5 w
- 8 A4 a; ?. _; R/ L/ Q' B
- Power: ;威力3 P! M, F' {. a8 L# g. X
- LDA pause ;暂停状态判断
6 l% `# V* G3 {2 _8 Y8 p - BEQ SPERTS
( R- Q( P' Q. \' H/ G, Q$ ^ - BUT_LEFT:
0 [5 H* F- ~# e# J1 v+ _ - LDA $04,X! ?) t/ C \3 a. z8 V
- CMP #$02 ;左按键判断
% x9 Y0 g4 w* @ - BNE BUT_RIGHT
: l3 a9 C6 d$ [% ?' W5 t6 }. F - LDA $88,X
/ h; Q# z" x' [. A y4 _ - CMP #$00 ;威力判断4 O7 G5 J: y, d6 B7 y& T# q2 ^. K
- BEQ SPERTS
9 A6 [7 M2 Q& g - SPEDEC
: ^$ x; \- y5 o# I! g( f - LDA $88,X ;读取武器值
1 [8 X' [! \7 a9 c* U" }' V4 z; _ - SEC
- ?$ {- R' u/ ?# M - SBC #$08
( E* E( ^$ ]4 L. M( C: N - STA $88,X ;威力减小
/ X* Z( g- S5 C* \% ~! `& K - BUT_RIGHT:' [% q$ w, j- I+ A3 x
- LDA $04,X9 ~4 Q" o# ~; T: I
- CMP #$01 ;右按键判断9 G( |7 y u; J6 y3 L
- BNE SPERTS7 A1 D5 o4 Y+ z7 P
- LDA $88,X
9 L7 c9 {3 w9 V8 d$ e - CMP #$10 ;威力判断
6 | \1 p& d6 j+ y9 x - BEQ SPERTS8 z/ l1 e. |! O0 E0 |
- SPEINC:4 t1 ^) O6 s* d3 N1 f3 `
- LDA $88,X ;读取武器值
5 J" }: s7 E( O. G3 T - CLC
$ H# {9 }& d% J - ADC #$08
: E# W; g, ~. |$ ]8 `' L) L. k - STA $88,X ;威力增大
1 {# o0 I* E+ Y+ ]- p1 a - 1 u7 i9 r {. v% a/ v
- SPERTS:' }" j; |- Q) r# R# [
- RTS# r2 d% Z5 @5 v! U% ?# N$ B
% g% {% C4 Z8 k. D- BULLET_NUM: ;子弹数目
6 W' y. P( }4 D8 | - LDA pause ;暂停状态判断
; u( R0 d/ U1 m2 K - BEQ BULRTS
* e1 D! @8 ?/ D - CPX #$00 ;主机玩家判断9 x: q: ~5 K# `% L, B& A! ^
- BNE BULRTS
: D, _/ y9 O. [ c6 b' w - LDA $04,X ;主机玩家判断: o$ V, Y9 K; w3 v4 i
- AND #$80 ;按键A比较
% g& R/ b9 w4 j7 ] - BEQ BULRTS3 W3 P1 c2 e% p8 n D+ b) r
- LDA $87 ;状态判断
& D+ }2 U" ^2 ]. n3 C* f, B - BEQ BUL_2
/ \. b& T x5 q! z- H+ X - BUL_1:
5 g- \' h3 N4 ]% @* e - LDA #$00
6 Q9 M: n$ P( I" r% y - STA $87 ;1发子弹
( w, V8 j* E4 B9 w - BEQ BULRTS
6 [9 K& F! w7 y; x% M" p; h0 h - BUL_2:) {1 ~" `. ~2 R8 G/ F* S9 D' [& C9 }
- LDA #$01 J/ u2 w# R4 W- C8 F) J
- STA $87 ;2发子弹
9 o) L& U- z; H: \& z# O - ' L9 a$ z* h+ v1 z' l& r4 ^( V
- BULRTS:9 @( G: g- [& e1 H+ R0 L, q
- RTS
5 d* q: a P2 H T! R, J' S - / `6 W: n" B; R! O3 v
- 2 i3 T& q0 ~6 X9 T
- BULLET:
! O) G8 v4 _. a8 O9 K- w - LDA pause ;判断暂停状态6 N! z! ?2 m7 j: k1 s+ T
- BEQ BULLETRTS
}/ j$ F4 B4 ^5 @1 B; ^* e v5 O5 z - LDA $04,X
3 H4 F% W; V( J9 G" `9 a0 b9 Z - CMP #$40 ;按键B比较2 o' g. E( g: b
- BNE BULLETRTS
. A( n. e' C" T: S; D7 L - LDA $6002,X ;读取副武器
4 J* p9 k, ]" {+ ^$ s - CMP #$03
2 w2 B! t! c, U2 f ~$ } - BCC BULLETADD* H3 a; O1 `6 N1 L9 ^4 q
- LDA #$FF
& Y- `" O& w7 ~/ d4 w2 U0 c" y) N) d - STA $6002,X
1 T6 i9 y" }( z3 M2 Z7 \2 V - BULLETADD: a# k* e+ {0 g+ F! g- [
- INC $6002,X
H: }" @6 i1 Q1 B8 c -
% O. s2 K6 K/ i0 L( o! { @& L% D - BULLETRTS:
! G. Z: c' Z4 s - LDA $6002,X& v4 e4 a8 x# r( ?6 c1 B
- TAY8 W$ O9 |( r- B
- LDA BULLET_DATA,Y" @3 o o% N% R9 o" T0 I
- STA $6004,X ;写入副武器数据4 g! e+ z- z: U7 R: i
- RTS7 J5 ^; V1 f( ?! f% {
-
4 r6 n+ q9 ]1 K$ e1 R -
% p. t9 A. M, ]+ U; x - BULLET_DATA:" F7 Z. Y# B. F& I0 Q! }7 M- v6 k
- .BYTE $06,$02,$03,$04
9 `3 W3 k* P6 V - 3 K' ?8 B4 S% ]4 [
- 2 B/ V2 h- o8 S; T# x5 ?
-
; d+ y0 q3 i) b - KEY_OPERATE: ;按键开关操作* g! d) {1 w8 |- n9 W& h4 F8 f
- data_protect: ;数据保护 B1 {& I! H2 Z( N. B
- PHA
0 T8 j/ K- ^) [5 A( G# c. _! M - TXA% v: {% D! G# [: M0 {- S
- PHA4 S$ i/ g% I: @6 k" p- `$ Q
- TYA! [/ ]9 a: l2 `+ \- r
- PHA9 w/ t' b! K6 |/ t8 s$ b3 I
+ L, H& G { n' G) n* |- FLAG_INI: ;开关标志初始化. {, U. L% f0 s( m6 W7 D
) _. W' t9 k/ B% o- LDA $600F
7 W/ m) ^# a1 E) A$ K2 C' F - CMP #$013 K1 \$ O, T2 b1 _4 Z
- BEQ pause_cmp
& h/ I9 `" n1 y# I3 Y- u8 |( d# I2 u8 N - LDA #$001 Z1 F& c9 l' i9 X6 ]- y5 S
- STA $6000; _6 [8 A8 ?$ I& ~
- STA $6001
J4 g7 N1 t8 U: ? - STA $6002
/ N' G- k, w/ W: l - STA $6003
" ]2 o2 u8 e) d, F# a - STA $60044 J8 _$ a& S* F) L) y; V9 |- U
- STA $6005+ x' C7 f2 b9 q8 C' t3 R# ]
- LDA #$01
2 [7 v ^ t& k# L! H - STA $600F
; |. w9 C; p K9 p$ Y$ u. W -
6 m. G" X/ u' F+ x* x - pause_cmp: ;判断暂停状态, C7 u5 v2 N" E8 F5 j8 E
- LDA pause/ N, o; I5 i- L7 Q: r" F O
- CMP #$01 ;判断暂停状态3 w) _ C6 n2 F( Z, }7 u
- BEQ button_press9 U. `# Z2 K3 m9 v
- PLA3 L8 K1 K7 b6 T$ L! u- F. N8 H; d
- TAY0 r R0 ^# @5 Y( L8 m1 f
- PLA: C. u( t6 h, x7 q
- TAX! P- d u8 Z4 @0 Y
- PLA* {% N+ i9 t7 X' j
- RTS% \5 z% X; n6 Q+ x
- & k9 H/ ~) @ c0 N6 o1 [. F9 C
- button_press: ;按压操作
; B2 M p4 H4 p1 g" j+ J+ ^ - ini_Y:# X! Q3 b! v# K* D) X
- LDY #$00% s, n+ M) b; }& Y/ W
- button_cmp:7 q9 ~) S* d6 F& S* U* ~- j5 u
- LDA button,X
8 p0 M; n7 E9 [+ ?7 G6 \2 }; l - CMP ora_data,Y
F8 _% ?1 h4 ~- i5 { - BNE count_Y_cmp
2 R \! P" m) U$ @- c( N# X* }% N - flag_cmp:
$ d' D9 K5 X1 L! O3 B' O- L% y/ f- x$ C - LDA flag,X
0 W# L7 n( {: h - AND ora_data,Y
$ H( n! E, D- u" z - BNE flag_and
$ l% \3 b+ X% O* D3 o% U+ [9 { - flag_ora:
2 u! U9 a# }7 s3 l7 `) e - LDA flag,X# X, B' `! v& h3 f% o4 z
- ORA ora_data,Y+ G+ a' ^4 ^5 |+ l* I+ V
- STA flag,X
; R9 U! p" L9 j! x# F5 C, i" x - BNE count_Y_cmp. ]; K' u/ N M& t C* o- _
- flag_and:
5 }1 l6 e* `1 r- Y* W( J - LDA flag,X, C; f. ]# T* s
- AND and_data,Y
* m$ S' A8 A6 V# u - STA flag,X
& |5 r' k3 ?7 y, q6 z; w - count_Y_cmp:; C. y" }& `0 J1 E, e
- INY
0 ^2 r# \* N, ? - CPY #$08
+ G9 F) f* o: {: O" O9 `( | - BCC button_cmp% M8 u) w# U! d. M/ q) O0 }. e
-
) t6 J9 ]$ m1 R - data_extract: ;数据恢复
3 W* w2 h/ p8 w$ \! j# W - PLA
: _, w% ^! J1 |' Z* A - TAY# ~9 h% b$ C# L: z# V' _( a) {
- PLA
) L( y' R' X8 v6 z% J( O - TAX* y4 E7 G/ W/ o6 b
- PLA# Q! o( m6 \3 T
- 0 v5 p) j( `7 q; m, e
- return:
6 O: e. E" j5 {$ ?- s, {! u - RTS
& j" x/ D( R t: {3 y9 B4 v9 J -
. V* t2 c! w, D4 i - ora_data: ;按键相或数据& \1 R; \% H' k, W/ ?8 w
- .BYTE $08,$04,$02,$01,$80,$40,$20,$10, Z3 w; l$ K& @; b9 I6 C
- and_data: ;按键相与数据. Q& n+ u- W9 J; z# S9 m% S6 a
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF/ K% a' i/ @# R) I+ p4 v& t& J% ?* t
- ( L, n& G: P. p1 K$ g6 l
-
/ ~7 P, ~8 j- J& j7 s+ N - 5 l' p5 j/ u! h+ e, r3 L' i
-
$ r, x" b* v+ m" S9 Y -
- Q2 q+ Y) u+ n- n/ t p - ) S$ b0 t) S @/ a1 ^( b, U
- , _7 s# w4 T4 J9 F; P
$ S4 O$ x( f/ u; J7 p! g: A
! {6 W2 n! D/ Z' {- .ORG $C264 ;自定义的MAPPER2切页程序' d, L# j' J6 C. l/ c
- PHA. Q9 [/ {& k# P, Q8 L9 u3 d9 }4 S+ `
- TXA
7 \5 C6 J$ E( T l. M0 R - PHA( m' y/ }) i* j3 @( [- a
- LDA $0066
1 w u. F) X, A( ^3 _ - BNE ADDRC280
$ O; p2 Q% f, d& B - LDA #$078 R2 A+ q6 \3 r! N( J
- LDX #$03
5 D5 `: _# y/ y3 k( Y- I - JSR $CD9B ;自带的切bank方法% i2 Z O0 [& a' O) T
- PLA
" L0 t- k0 n! {, A - TAX
9 F5 i1 h3 W$ D- N6 A- i$ E - PLA: g) |$ O' v3 i Z# i/ R: Y
- JSR $80000 K$ O0 ?' ^0 t |- }) v' X% A) h
- LDA #$06
3 Y/ {7 k/ A+ ` - LDX #$03
1 c0 w4 y' w4 M" Q7 [ - JSR $CD9B ;切回原该切得bank(可以不用)
2 @3 [' w' ~! G - RTS
8 ?8 }7 O* @. u - ADDRC280:
; c2 {0 V8 n$ Z8 \0 b9 m" P - PLA- B6 p* Z/ w* ]( \5 p3 {$ M+ y
- TAX
- E; e* C5 q1 b% t9 I, L - PLA/ g8 L/ X' p6 G' W/ l( @
- RTS5 D5 z$ Z% S% _% n# j
-
6 h' R' a' Y5 B -
- s9 {. V. Y0 K# P - ;[FC][最终任务PPU][END]
$ o) | c" x; t; `# ]1 r - .ORG $C056 ;跳转到PPU重写程序+ ^1 N) K, g7 b
- JSR $7000
" R' o+ ?2 i7 X5 a# L6 p" y" U - + v! _# ?6 k, A0 B- A( x6 Q
- .ORG $CEBF7 S/ Z8 u: R9 D' t( U6 w
- JSR STAGE_DATA_WRITE ;跳转到关卡数据写入" |: m, |: `: A# i% X9 T* x& f
- ! b5 N. ]- k: f0 a, K m
- .ORG $E460
; Z6 \2 M8 c! G7 Q' `- {4 a - JSR BULLET_DATA_WRITE ;跳转到副武器数据写入) @+ l8 ~" y" v9 x) v
-
5 s4 P$ |$ P# K, Z7 f: n# G - .ORG $71F0
: U$ n9 }1 {# d0 d0 f0 e; Y - STAGE_DATA_WRITE:
N- s& `: ~, {, T1 ]; [$ a - LDA $6010- Z2 }& ~6 z- N: o
- STA $1E ;关卡写入
" w% b9 l- }+ q+ W% G) J' ]. f- V - LDA #$002 u( F( _% O& p
- RTS2 `0 j9 C3 P7 t9 K- h1 i8 C
- .ORG $71C03 h$ y( u6 J- }( }: O+ s/ u5 e3 J
- BULLET_DATA_WRITE: ;副武器数据写入
5 ?: }1 N; Z- L4 Y - CPX #$0E
, {% L8 ?# @9 E - BCS P2_BUL
. ?4 R( o+ N3 i1 F. E3 M- D - P1_BUL:- q7 w \, V8 n" _: ]
- LDA $6004
: D3 {4 ]7 O' Y# q0 X4 v% N: Q, N - JSR $D7D0 ;P1副武器数据写入9 [; c5 S7 c {$ b8 J5 @
- RTS* S" S. u& e8 X
- P2_BUL:( P/ F* X8 r& O- A9 R$ J
- LDA $6005, O( }: B- m6 C
- JSR $D7D0 ;P2副武器数据写入! ^# J2 }: y$ e# X4 V
- RTS3 @9 I, F# @- _8 X
- , Z5 P* v, y+ @( _) q& y
0 V' b u- C4 S: |4 U; H! `- .ORG $70008 A) D0 ^4 U# j$ V; I: I
-
: u( O4 D" b/ T" A, _. Q- v - STY $4014 ;补上覆盖的精灵写入指令
: |7 q5 G$ F/ F - PHA x8 f. o8 ]- Y/ [ P4 p" q) u9 @
- TXA6 K. }5 @$ Z6 B6 x
- PHA6 }* `1 d! F3 c+ e
- TYA3 K ?& D: _# p# E" i9 E: I" S! f" O- n
- PHA" c& M0 T" }" _2 x! w) V
- LDA $0C z9 V8 D" W2 O) i7 Z$ z+ q1 H* J! g, g
- CMP #$01 ;比较是否为标题画面
, u: Q* J0 O0 g - BEQ PPU_STAGE# A- |& g! l+ S( N& y, c( y" `4 |+ C
- PLA8 ?/ k3 Y- Q' n' h& H9 Z% }+ Q# x
- TAY
! o8 S F( w( x+ k" s/ Z - PLA/ n$ ~" A8 r& i5 |- ]9 J
- TAX
8 a& G: d$ ~$ L9 } - PLA
6 f/ D2 v9 u9 F) F. K2 j% G+ Q - RTS
7 v" q: F I3 p! L: ~+ u - PPU_STAGE: ;STAGE显示程序* @7 \. [8 w1 C5 W1 G
- LDA PPU_ADDR_DATA
6 R& w& M# W# b- N( J6 _5 \! W - STA $2006
7 V! M n [" O# T0 J2 j - LDA PPU_ADDR_DATA+1
1 m; X. w! ]" d# { b! n4 w! w3 u" k2 M - STA $2006 ;坐标设置0 t! |: H/ u4 P# X: C! h% v
- LDX #$00
4 `2 }4 F' s Z/ n& ]7 J - PPU_STAGE_WROTE: ;写入STAGE字模& i9 E9 [9 l% \ p& d1 M
- LDA STAGE_DATA,X" z0 A0 O: N9 R; E: i/ g4 r
- STA $2007
1 V7 U2 E2 u7 U/ W - INX$ o# _3 U) |4 k6 X w
- CPX #$06
& h G0 p% o8 V5 L; r; X - BCC PPU_STAGE_WROTE6 ?$ n' a, N3 t" m( ?; |# ]( o$ z
- LDA $6010
2 w+ R+ h: R% p) H - CMP #$FF ;关卡数据初始化条件判断
& e. k7 |+ V$ X1 u - BNE KEY_B; A& z- }7 F2 L( O
- LDA #$00
, Y/ Y1 I( a8 S% K1 h1 g - STA $6010 ;关卡数据初始化. M& [9 R5 u7 `, K4 W4 C& L" ]
- KEY_B: ;关卡减少
9 O0 C% i" Y; W" p3 f/ s" j - LDA $04
& _& i2 n6 ?# { - AND #$42 ;按键B或左减关
' m. n7 U7 p7 k1 y/ M+ h - BEQ KEY_A) Z" Y) \* o: w% q0 R8 C$ C
- LDA $6010
3 _5 s8 M. |. L0 p m$ V - CMP #$00 ;关卡比较
( C0 @, n& V! U9 }7 H: r - BEQ KEY_A
6 A8 C( m' q& h: ~) \ - DEC $6010 ;减关
" j5 C' F7 P" q, Z+ x# m - KEY_A: ;关卡增加
! s. G& e" J7 [3 ~' E8 t5 I8 a" X - LDA $04
4 ?5 a/ X, q4 a# B5 U V- K - AND #$81 ;按键A或右加关* o+ L& H8 [ f9 C/ ^, k
- BEQ PPU_NUM_WRITE: C& R6 W4 ]. b
- LDA $6010; P+ J. E m8 k8 _; w0 ~% ?2 v9 h
- CMP #$04 ;关卡比较3 I, }5 _, p6 o8 n# w
- BEQ PPU_NUM_WRITE+ ~& {9 }1 i5 X
- INC $6010 ;加关
7 [1 y2 C3 l# ] v - PPU_NUM_WRITE:5 j0 f6 W( Q( K6 p; Q3 A0 q3 A
- LDA $6010
8 m) t0 O, S1 Y - TAX
6 k; h' M/ Z; e$ u, e4 A+ s - LDA STAGE_NUM,X ;写入数字
7 f: q* l" I+ v% _+ i7 ] - STA $2007
- R4 n" }/ M& H' }& A: m" F - PPU_RTS:
" s4 j0 L9 y: j5 { - PLA7 a) @9 a) A: A O" k/ `, y* X: d
- TAY: r; x! a q) A, R9 E* r+ c/ Y
- PLA( w/ g; F( [- z; |7 v8 _1 f
- TAX
3 y+ i3 @9 F$ v - PLA/ O4 n0 F. i# z1 g+ {
- RTS% f/ e B1 F9 w1 b
- ! E& W+ M; X1 _5 Q! V
-
7 u9 M( X1 G; y- e" I! _2 B) E - STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据* d1 m7 O- S; t; _2 [- ~
- .BYTE $EC,$ED,$DA,$E0,$DE,00* g; x' Q) z1 S7 O5 ?) S6 t
- STAGE_NUM: ;关卡数字1,2,3,4,5字模数据# n7 u# e+ q" m6 d% X; ?, d& A2 X
- .BYTE $D1,$D2,$D3,$D4,$D5( ]' J' u) M1 z u7 ]' i
- 1 X4 Q, m# \" x4 W" a7 v
- PPU_ADDR_DATA:
" F6 r, {# `! l) F/ K# y - .BYTE $23,$0C
7 ^3 F* S3 G5 _ - 8 i9 O# C( C1 U9 o1 }! m
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
1
查看全部评分
-
|