|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑
: U" z# V- G7 F+ A# J/ q }6 N' k+ ]6 @3 C' D. z1 C. L* O4 Q* e2 H
[FC][最终任务][END选关]
' E0 ^& I0 T2 y E* L6 T2 R9 E1 C$ h& L! h# R
时间:2017.3.29) B% c: \/ \% |
作者:FlameCyclone
& Q2 y1 _. a& B, ^3 E内容:
+ [" v& G* r7 @) l( ^6 N, ~; O 1.关卡选择: 标题时,左或B减,右或A加(1-5关);
* ~! q; M" d' ^ 2.无敌锁定: 暂停后,按上键切换;
2 u" M2 I' S" h& H 3.生命加满: 暂停后,按下键切换;" f5 [1 n# k+ K: n8 |0 X
4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);# U: a; E$ m4 V3 ^7 i; M% |. H, p
5.子弹切换: 非暂停,选择键切换(普通,W,L,B);1 }- v. O5 n* r: t S
6.B弹数量: 暂停后,按A键切换(1个或2个);
3 ]' J9 \6 @8 j( ?" r 7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;
. K% E# v- P; ~' w+ d& J$ |# `8 K+ h/ C( C0 Z* t" ]2 ]/ B% D

6 X4 ?. ]! w, @. K: O# O' e4 F4 R 1 r7 Z: u% x4 }6 s% A1 V& j8 W
7 F8 F4 V S+ r- {4 b, T8 i1 M
3 f5 ]8 T5 `% V( Z
# t/ D3 E* y2 H" f% L( y
+ B2 m& `5 x$ BFlameCyclone.ys168.com
7 Z1 h b3 z+ U) owww.nesbbs.com- ;[FC][最终任务KEY][END]# X2 c! u& j7 v+ _
- button = $04 ;单次按键
' H4 U0 ^1 H% @% j4 Y* i - flag = $6000 ;功能开关标志
' T7 Y7 q! j' v& O - pause = $000E ;暂停地址: {6 v* m' w; R2 N! O0 _1 X
- ' k; V" w5 C" n' W% q Z! n
- .ORG $8000
6 L# Z, V. L0 {' R- a - LDY #$08 ;自带的按键程序
1 U& j9 S7 f d: E# J! R - ADDR8002:* Z) N0 v0 D2 Y4 A" {
- LDA $4016,X
! b* F- w, k; u. J - LSR
7 M( o3 u: ?3 a0 W - ROL $0021
4 p/ C1 \& u! A8 _! \' \ - LSR+ A: [. i$ B W: V3 f0 L
- ROL $0029
$ ? S7 }, Q/ ^/ c/ y0 ^ - DEY, ^2 @" ^6 B0 m1 f
- BNE $80026 d* Z: [$ n1 o5 [9 `- u
- LDA $00211 ]. R) h# D( C, j
- ORA $00292 {! B& x) U5 H% Z' y
- STA $0021
% C" z- v( x. O% g - LDA $0020
- b( P( W! V1 `1 D. y& { - AND $0021
/ @) {; O; P6 S7 K, @# z - STA $0020! }5 N$ e$ C% C6 V: {! b1 e
- LDA $06,X4 P7 N+ R0 g2 [
- EOR $0020
0 \. B c5 }! A$ ^ - AND $0020
4 G! i$ g+ Q3 R L: g3 q* i( R - STA $04,X0 a, J- t! ^( W! v
- LDA $0020; }9 k, G) p7 E
- STA $06,X+ U* D, f9 A( s, G
- JSR KEY_OPERATE `& [+ d, R# Q3 p0 d' A3 i- X( S" s
- JSR Function ;功能调用3 _% ]6 i# m [! n, d0 ?9 k
- JSR Weapon ;武器切换调用
- ]) L' |6 z: p$ J( C% z - JSR Power ;威力调用
: P$ T* _) E7 @/ K) O - JSR BULLET_NUM ;子弹数目/ Y. W/ H; F: I4 g
- JSR BULLET ;副武器类型
# o% L/ @, g2 p; m/ V3 S" K) U! @ - RTS
' | P% f) J9 @6 I2 p3 ] v3 z - % u2 B& `0 {, W4 f1 l
- & `: _' h& n4 T% d0 z" W
- * t# p2 D* ?* y. {" @: S: Z$ E
- .ORG $8050
% e7 ^$ ~0 t f* {# F - Function: ;功能5 B0 I0 G4 x, Q( b% n# m! O
- WUDI: ;无敌
+ T$ a4 {2 k6 }- X! G; x; U - LDA $6000,X: N/ r1 {% u$ O* V3 x: x
- AND #$08 ;开关判断
) ] O% M/ k; ]- W d- v% z* u - BEQ LIFE$ f, M# H8 X8 y) z0 C
- LDA #$053 Q$ Q% k3 W7 Y, F/ m
- STA $05DC,X ;无敌锁定* `( F2 {( `8 g0 f! g: t. }9 y/ v
- LIFE: ;生命
% f3 k# i' V% T/ {: n- E - LDA $6000,X
; @. Y7 r2 J9 V. j- d J$ F- L - AND #$04 ;开关判断
! S1 C8 b' [/ \0 w3 _& T1 H; W6 S - BEQ FUNRTS+ }6 l0 L' T" n9 @
- LDA #$05, o$ h2 Q% N% I: m) e: R0 x
- STA $1C,X ;生命赋值" i- R3 Y" J0 O, X- x. F7 e
- FUNRTS:
& R' T( |, \$ j6 u; n - RTS
- f+ K+ X% o$ x& j -
: z6 R- V; y/ d - Weapon: ;武器切换
' h0 `6 [( M% q6 D' d - LDA pause ;暂停状态判断7 V/ N; M8 X+ @6 \4 H
- BNE WEARTS( Q! S/ B% @" ?5 w- R% e2 ~
- LDA $04,X
4 [+ @" |; o- v - CMP #$20 ;选择键判断% x3 l2 W4 @8 U/ w
- BNE WEARTS
( c3 r: l, s6 g+ j' f* m3 r% v - LDA $12,X
9 M0 O5 B j* C7 z% U7 ]) T3 } - CMP #$03 ;武器值判断
6 z, C/ Z, J, N/ g' C( ?5 X - BCC WEAINC- g! o6 `9 [0 j4 {0 g& | ?
- LDA #$FF
- H9 y% K' K3 I# Z `$ i - STA $12,X ;武器重置
7 K) l! f8 H' ?, U* V t; S - WEAINC:
: k2 ^$ @" f8 e: I( x3 Z* d/ @+ O - INC $12,X ;武器增加, U3 H W7 c. n$ O
-
3 {. p) C9 I+ v! d! \6 u8 }# u; P - WEARTS:* N1 r$ _, n' h, Y' x
- RTS+ n) J; H0 q e
- 7 [) B5 b8 z4 U" M8 @1 l% q8 r& i' o
- Power: ;威力
" }2 z+ O9 Q+ M, {5 ~- I - LDA pause ;暂停状态判断
: V0 K0 s+ N. k8 ~6 b& R# V - BEQ SPERTS' c% `2 ` J; @: Z" w
- BUT_LEFT:- @- s* y4 Z/ b/ ~2 o7 t% T
- LDA $04,X
+ C8 e8 s; p9 H* l - CMP #$02 ;左按键判断; i6 H' z4 A [9 H& [3 g0 S0 {7 l
- BNE BUT_RIGHT
3 I- u3 J$ `% B* v - LDA $88,X+ s- T! O: h7 u+ [' Y" R
- CMP #$00 ;威力判断
4 f+ t% v3 W7 v, f9 P+ B, c, I3 H - BEQ SPERTS2 N# o8 o# n) F; \0 c, @6 [
- SPEDEC) j( B4 }* i0 |6 W, z. n
- LDA $88,X ;读取武器值: z' R k8 T% l% R8 h
- SEC- h% I6 H# V* x5 t4 R
- SBC #$08
8 Q) d+ Z3 j: \; l7 `9 m - STA $88,X ;威力减小$ X* M4 @& `; T% E8 N3 ^* X! x
- BUT_RIGHT:! t z' t9 O" V" ?; ?
- LDA $04,X- n. N8 p2 f) e0 X' D. r
- CMP #$01 ;右按键判断
6 r( l! B1 k* E& ~$ j - BNE SPERTS
' `; [& l2 X( Q% O - LDA $88,X
/ x' u# k! c! p - CMP #$10 ;威力判断
, p$ V4 ^ o# s+ m& a" x/ a' Y3 u - BEQ SPERTS: ~1 b, ?, _% T7 X G
- SPEINC:- U, T# D8 G) w" b: E
- LDA $88,X ;读取武器值- f @2 }- r$ \. Q1 m* F: b0 U
- CLC. D5 b4 \$ E3 {2 D6 M
- ADC #$08
/ ]4 s* K3 e- Q& i# W8 {5 y' C$ p - STA $88,X ;威力增大
" z! G4 ?* g. s F -
3 ]' [) _1 R4 {! t) c - SPERTS:
t# a2 R9 z" f0 n0 W, i" n: r - RTS
( A, v4 V9 s& N( E - ) l9 T( l) l8 |' a9 B+ B
- BULLET_NUM: ;子弹数目
1 k3 }4 t& a4 K* }! Y - LDA pause ;暂停状态判断
! S$ x; O6 J: |& g5 U3 v3 J - BEQ BULRTS' E5 `0 [! {$ M' t
- CPX #$00 ;主机玩家判断
( ^+ ~5 k& p g4 c6 v; ]7 p( w/ {- X) y - BNE BULRTS
" X- W. f2 L v7 q. R6 a7 m - LDA $04,X ;主机玩家判断
4 \. ?& }2 R! W8 k/ l - AND #$80 ;按键A比较: @% n! o$ R8 E" x
- BEQ BULRTS
* N; G) J3 n2 P: `0 W c9 O# i - LDA $87 ;状态判断# p' B: x3 x X8 U! O+ t3 {
- BEQ BUL_2! {% a# G2 H( |
- BUL_1:
0 z1 X, _9 F0 |8 j5 o - LDA #$00
6 i' A6 S. v3 A - STA $87 ;1发子弹% ?: P) r7 L( A3 Q# g! R
- BEQ BULRTS. E3 k6 q+ M" P! I7 M
- BUL_2:
% S Y/ r/ b, T* V; g; e - LDA #$01$ t( i' ~* T9 p! k) P' f. @
- STA $87 ;2发子弹
7 C. s/ L' X1 }% t% ]' F; w0 i -
& r W- H8 @7 r* R8 \ - BULRTS:
8 A7 a8 C" G. w! R) z3 H - RTS/ y/ j' e9 f4 i, K5 m
-
7 z/ x% @4 y/ t' |9 }' { - , i& g9 C. n- k. l1 F# ^
- BULLET:4 F7 b( i7 O- y6 W
- LDA pause ;判断暂停状态6 P, [" T' w) h3 K
- BEQ BULLETRTS
3 F) b8 X% p2 p- k0 I0 {: v - LDA $04,X7 I5 m/ d1 j: W3 j+ p/ v
- CMP #$40 ;按键B比较
4 x( W5 N+ m4 [ - BNE BULLETRTS0 B1 W+ n& p+ \9 V8 S' x. x$ e, P
- LDA $6002,X ;读取副武器
. q, Y2 l7 b9 o% B( s2 Q/ V% R - CMP #$03& D% c; {! E! o# s# d; f
- BCC BULLETADD! ?$ _6 z( Q# [% C
- LDA #$FF* |, W$ ?) O1 N# ?' X3 @
- STA $6002,X4 ^- U9 p: j, W; }% } E# _" m8 p
- BULLETADD:
1 o# N: r- |/ b( S: l - INC $6002,X$ O7 _/ V& _; M" k# Z$ U
-
$ y0 G% W. Q$ V6 \2 m# B" o - BULLETRTS:
7 H; K: R$ i: w- C- T) |5 w - LDA $6002,X+ X+ a6 G; i/ H7 m
- TAY T& b! u- p5 j! O ]
- LDA BULLET_DATA,Y5 \/ j' t4 g$ f5 Z, S
- STA $6004,X ;写入副武器数据
8 w, S% N0 k1 w. t - RTS5 R1 ?3 V9 C) n; U' W3 @
-
$ a+ U, N( \ \. x, p3 e -
! k9 D/ s6 ]2 K% v! m1 {/ M/ i( w - BULLET_DATA:( l7 _% v* S* D+ i7 _: T6 S
- .BYTE $06,$02,$03,$04
# U- }9 n. S% V# N8 J, [ -
' Q& u3 {% r7 @" w7 H" \8 T9 k - : R, T; ?% G! K% w4 u
- , I% K4 b2 J( ~0 o: W, C! B
- KEY_OPERATE: ;按键开关操作
Q; F# b$ _- X! {" W - data_protect: ;数据保护
. `( n3 A l; u* I, F: d) O% ~ - PHA4 `1 a+ v7 ^2 ~ f5 Q7 Y1 j, X
- TXA
1 f1 A p( C0 ?# J# Y/ J - PHA! z! A9 t1 E- Y) W! j. S* I7 p( I& u, P
- TYA6 l- Y5 A& h/ V
- PHA$ I' b, H, ?1 |* v4 `- p' X
- 5 t: c+ j5 x4 K: X2 b1 s
- FLAG_INI: ;开关标志初始化
- M8 T( L+ d3 B( ]: z8 W& t/ \ - $ h* }, Z, t) H6 _: g
- LDA $600F
! k* ]) y i- A/ x$ A4 p - CMP #$01
! y! \- |* V. M - BEQ pause_cmp) T7 m# s+ Z6 E& q% u+ H
- LDA #$00
* c& ~" v, e7 J+ `- B1 t - STA $6000
7 E) u9 R0 l7 N) ]/ L' k - STA $60011 d ]" ?0 ~9 V. w3 Z- k z& r
- STA $60026 y% ]) {& E: ?' T9 q
- STA $6003
( _# Q. T0 x4 ]$ x: o" `/ n - STA $6004+ ?$ J7 i9 }% c( A5 K! q
- STA $6005' G' _) ?4 c7 W
- LDA #$01
; y& y, c% e2 z3 b [ - STA $600F
6 r! Z* J5 A+ m- }. _$ } -
3 M/ s8 R7 C7 ~ `; u! a1 ^ - pause_cmp: ;判断暂停状态* U) P' a5 m4 N- X3 j
- LDA pause' Y/ S! k1 _. E+ z" O+ w% Z
- CMP #$01 ;判断暂停状态" g1 Y& Q9 l5 ~ e
- BEQ button_press1 Z* D( M+ f5 O( y7 ^0 P
- PLA6 j& Y+ t1 ~) `! t% p1 {: l5 w! x
- TAY
3 b. x5 \( f1 m2 u9 y9 d5 G - PLA
3 x: L' ~4 X1 p3 w5 f! | - TAX, `: }! U. R8 P9 f) ]
- PLA
- j- v1 o0 v7 T" v4 B - RTS& d4 V2 \/ d) B! B; N1 h$ u( b$ S
& g; B4 F1 I: f! Y; b- button_press: ;按压操作! Q! n5 ?* G+ ?( I1 k/ H
- ini_Y:
3 U7 f$ B* [& O" q1 n3 i+ W- ` - LDY #$00. A: v9 s7 r& U3 O1 Y
- button_cmp:
& ^8 @( G3 u z - LDA button,X' W5 N% k4 K, X# [$ E4 ~
- CMP ora_data,Y
l( l6 l1 W* Z1 l4 q' R2 q - BNE count_Y_cmp* W% d% X2 O/ N" m9 Q# @/ v! K/ i
- flag_cmp:
9 d) Y, X) ]( a2 f6 r4 @' W - LDA flag,X; s- O% {& h3 W% I. a; H1 C) a/ T# P
- AND ora_data,Y
6 {* Z- o7 T/ e8 Q! l+ B# R - BNE flag_and& X `* P1 u( ]. V
- flag_ora:; H/ z3 x4 Z& U1 c
- LDA flag,X
3 c: v6 S2 J) }" u6 E - ORA ora_data,Y6 t$ Q1 ]! E! C) |7 D
- STA flag,X
5 p0 V9 L9 H5 i7 \/ W& K* l - BNE count_Y_cmp# u( A' Q" z# I3 _) h6 Z5 i W
- flag_and:
0 V; v. M* c4 Z8 I - LDA flag,X
6 h8 ~% T' R; Q; e$ e - AND and_data,Y
+ D( |5 B: C/ d6 { - STA flag,X
7 x3 d& Q6 k+ [: v - count_Y_cmp:9 V: ]. [9 E* ?7 s9 [8 S4 Q
- INY
. p* U' B, R8 X9 f* z+ y - CPY #$08
7 m, P) n6 t2 ?7 H' X" { - BCC button_cmp
& ?' [. h/ V: x - 9 U$ ~7 j6 S: h) A( i0 c
- data_extract: ;数据恢复0 N) _0 Q! @1 Z
- PLA
+ r! [0 c8 N; n - TAY
- D( d }( \& k - PLA, |0 I9 ?$ ]3 j- }; P, n0 ~9 r
- TAX+ R/ D, g, Y- c8 Z
- PLA; L6 K7 Q' a: W# T
- % u7 F. ]# b( C& | P
- return:# q/ O# [1 y+ M8 v1 G( Q
- RTS" ~8 k E4 R- c9 \
- a' j& d7 J) z, i- K8 H; G
- ora_data: ;按键相或数据* |- _; ~( d4 S9 I. a0 r( o
- .BYTE $08,$04,$02,$01,$80,$40,$20,$102 d, i5 X+ L) M; ], |
- and_data: ;按键相与数据. n6 [' y4 h" f- i: x0 \7 D
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF
/ O( S$ ]1 I- K+ n -
/ x: ~$ ~7 Y2 L9 Y: l - 4 B# F" x- n- R2 o) z
-
, c5 U1 w; g. S" ] - 7 U5 w8 P) g6 d' \' |7 F3 z6 J, _
-
! }$ h5 ^- t: a+ S4 o( \5 ^2 p - 0 F2 f+ V$ q0 |& y/ U1 Z9 u
- $ l1 A' D* [. m( I a
- & m9 Q. o3 ~8 H, g+ g
- 1 m$ b% k- n0 }# s: }8 s
- .ORG $C264 ;自定义的MAPPER2切页程序
7 T% |, H3 o% [8 M3 l - PHA% w5 x# M# E5 d# _
- TXA% K* x+ Q. q6 v! Y$ ^! y! a* a: |" ^
- PHA
. g! c% e! @9 h) ? | - LDA $00662 L3 U; M0 f( w" c/ d' V( l. e
- BNE ADDRC280
3 R z8 [% f0 k* K. p& r" V - LDA #$07- [5 z/ f1 m/ v4 _4 d4 a
- LDX #$03
- N) X: T& O2 Y, [4 F+ b2 N1 J - JSR $CD9B ;自带的切bank方法9 |4 h& n2 a1 l1 h" j' g ~* L( i, P
- PLA/ K g9 { Y+ N B0 t
- TAX* W3 e% X) A s7 T: c1 J1 ^& H6 ^
- PLA6 K: }$ {0 i( ^# \' b$ e, m
- JSR $80004 h& u& x: ~; `7 L" Z
- LDA #$06& N+ ^" g: G7 }. c3 s# r
- LDX #$03! K* l+ j& e+ R# L9 b/ t6 ^* t
- JSR $CD9B ;切回原该切得bank(可以不用)# e3 w2 Q5 t2 `0 h* `0 Z6 s7 [
- RTS
& x$ _9 q& s& s2 x6 b# F+ I - ADDRC280:
" Y$ f- d1 g. h - PLA
6 S# M/ @) X# M: Q6 ] - TAX5 M3 X, k" c2 \. v( i S
- PLA
L1 ^( B8 i0 O3 M! M - RTS/ C# u6 q7 ^3 y" ~
- - r9 B2 l6 [4 Z8 D8 m
- 9 Y9 ]' i* s8 F" N6 y
- ;[FC][最终任务PPU][END]
) R2 F( t- x' v( n' H- C - .ORG $C056 ;跳转到PPU重写程序) d) Z4 T J$ O
- JSR $7000
( ~" s- {3 l& L3 |1 i' l% \
; v5 z+ i0 T" F- ^- .ORG $CEBF9 I. C% n/ _' L8 _4 {5 {+ F
- JSR STAGE_DATA_WRITE ;跳转到关卡数据写入. O$ r4 A4 r$ V1 O6 e h+ [. Q
-
2 Q' ?# D3 k' R2 M8 _ - .ORG $E460
/ N9 W1 d- h9 C& z+ j# m - JSR BULLET_DATA_WRITE ;跳转到副武器数据写入
8 Q2 f& G. Y6 ?6 l -
0 q& R& `! g! U' s - .ORG $71F0
7 Y# p' ^: ?( E! U6 V; d( N - STAGE_DATA_WRITE:+ Q( l0 X0 N) Z
- LDA $60104 L. { J4 h" m
- STA $1E ;关卡写入
0 o9 @7 @7 ?% y3 Y7 s* H" K& V; q4 K2 W - LDA #$00
; m3 H/ [# P I. _# z* C e( } - RTS
/ @4 C1 n' n; C - .ORG $71C0
1 u: B0 Z9 D" d' T( S- m - BULLET_DATA_WRITE: ;副武器数据写入
* O; L% x6 s: V$ S3 w - CPX #$0E
; \7 Y% b% P+ }) H, ?* Q - BCS P2_BUL
* r! W- C: C. g1 F - P1_BUL:
4 V5 n% b C; C' S - LDA $6004
+ K1 G, z' U" _9 f R; [7 G% j& m - JSR $D7D0 ;P1副武器数据写入
* a6 J/ G8 S$ Q# M: a4 `3 @9 U( G - RTS
/ R' |1 t$ v' I" @6 | - P2_BUL:: t& J- q0 `% ]4 u! W! Q
- LDA $6005
6 I* q' X/ y$ t5 r, G* H+ } - JSR $D7D0 ;P2副武器数据写入# {* ?& a0 N, H! \) d
- RTS
& j u2 d4 `4 R' g j$ |2 J j
/ W, s- ]. ]2 p" Q! w- + m3 t# J7 J3 s3 w; X2 q5 u
- .ORG $7000
2 V4 z2 I( ^( D8 A5 ? -
8 H+ }6 c) Q7 Y. L - STY $4014 ;补上覆盖的精灵写入指令4 S1 a b, Z& t- w# ]
- PHA" t+ T4 q8 C' P* m* ?8 u5 r1 s. r# `! X
- TXA. L; R1 ]1 b- n6 l& K9 P- i
- PHA7 g) u4 F' p$ w; i0 Y
- TYA
/ y$ V: w6 b1 E+ d) D0 ` - PHA6 B7 Q2 ~. A; d4 `) K0 Z
- LDA $0C
0 [. J" Q/ w3 ~' \ - CMP #$01 ;比较是否为标题画面9 [, r) m0 Z) s" V9 {7 q5 R8 A# v3 D
- BEQ PPU_STAGE
! Y( W( @; y8 g, l1 B6 ] - PLA" Q! I6 c: _: j( ?0 \9 }
- TAY
3 u, g0 U& @7 ~) [1 d6 i# V - PLA W/ K. P% N: X- W# v! `1 s$ N8 W& B
- TAX
7 {9 n( P M2 X - PLA
) t h, Q. q/ n6 \3 W - RTS
# ^ V! p) [# t - PPU_STAGE: ;STAGE显示程序
2 b+ O% ]! M' j3 j4 f: B - LDA PPU_ADDR_DATA
7 h) w; p# T. r% K2 q0 R! | - STA $2006
0 J0 _5 _/ l! y8 R6 [ P* h - LDA PPU_ADDR_DATA+1
' }* u. a! l, P1 L6 O6 }+ y - STA $2006 ;坐标设置
& U* P- m! {' T0 o - LDX #$00
- y! y$ f0 n$ A6 X# X. [8 n; Q: Y - PPU_STAGE_WROTE: ;写入STAGE字模& c- _# a" Y U0 Q; A% q
- LDA STAGE_DATA,X
- x! E0 G5 k6 S* l& O7 k5 K- M - STA $2007+ L! @$ K, D: @- N9 S: t
- INX
3 B, p8 Z1 ~; w, k1 i - CPX #$06* ?1 g2 W3 }5 K8 L0 H! n) O" i3 {
- BCC PPU_STAGE_WROTE: P; |2 h! B7 A3 O; G0 b
- LDA $6010! M2 i. D* j! C/ O* M; ~
- CMP #$FF ;关卡数据初始化条件判断
, C# e1 z4 h2 H+ n7 `7 s, k& [6 _ - BNE KEY_B
1 ^. a( y9 R: q# _ - LDA #$00
. g E9 S! S, e - STA $6010 ;关卡数据初始化% S5 J" Z9 O" }
- KEY_B: ;关卡减少
+ G! [# ?1 J$ c a# p - LDA $04
% S: ^2 \7 A! w) K) ` - AND #$42 ;按键B或左减关
1 h7 k. F2 b( ~9 q0 I" B' [ - BEQ KEY_A
# g: @9 @8 X; D2 A - LDA $6010& p* z7 N, ~5 r3 ?* {
- CMP #$00 ;关卡比较
3 j: {0 L& ]: q q% \$ H - BEQ KEY_A
2 i4 ]# u. P1 X' {7 H" h1 E2 i" B9 L. q - DEC $6010 ;减关$ A* ^. Y9 P9 ]
- KEY_A: ;关卡增加
+ [9 |7 ^) M8 N5 A* R5 I - LDA $04 g6 K' Z0 l* b: ^- I, p8 E2 w& z+ X
- AND #$81 ;按键A或右加关0 D+ \4 }6 ]: }- k% F4 C# R& m
- BEQ PPU_NUM_WRITE
1 I, |8 `. Q) ?& i - LDA $6010
. q& T, g# y! `' @ - CMP #$04 ;关卡比较
+ e. O. ~: h9 g% }) [( b - BEQ PPU_NUM_WRITE
0 B% G5 e0 u* C v# m - INC $6010 ;加关
/ Q) A! W6 c1 r - PPU_NUM_WRITE:
0 i8 X/ W V4 y* S - LDA $60109 H6 B& e8 X/ G4 X: l! a L( M4 D
- TAX
; F4 g7 A! H, f, J' B( X$ H# c - LDA STAGE_NUM,X ;写入数字 X- U5 B) S6 v" L& k
- STA $2007
: J% o. Y+ H( ? - PPU_RTS:
4 w0 }. o: P0 M, I" g3 T - PLA, |! G Y3 }8 K" Q
- TAY
. C1 j6 B5 p3 ^# B! G - PLA
6 \8 x8 m ?" ?3 [7 a/ F - TAX
; S2 k6 t4 ?+ @$ o, g2 j, H+ B - PLA+ s8 g% ]4 p i n* P1 \, d
- RTS+ s4 S: j3 R D
-
1 i. O5 E# K* L; O - * w3 A, g6 r& v: Q8 e0 H4 N1 ?
- STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据
7 v6 l. `# w2 W" n2 s3 w - .BYTE $EC,$ED,$DA,$E0,$DE,00
( r4 z/ M# a4 B1 j+ i3 p. ~$ C) x6 i - STAGE_NUM: ;关卡数字1,2,3,4,5字模数据8 p* W5 D3 f' q; W, Q; I
- .BYTE $D1,$D2,$D3,$D4,$D5! i2 X* w- p' r! ?3 l
- V1 w+ c; b/ }5 |
- PPU_ADDR_DATA:" s& J' C7 j- S9 G! H5 v/ S2 n
- .BYTE $23,$0C$ Y/ i- u5 o8 u8 X
-
$ s0 n+ i2 r- a. {. s0 N9 m
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|