|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑
2 O5 w: ?* k8 o' r8 R/ c
6 g; f- q) g7 ^, p2 c4 b8 | [FC][最终任务][END选关]7 q" E" n8 K% h5 x; ^6 v4 b! G
- v+ N0 V7 ]2 u+ D: {; A
时间:2017.3.29
; ~ g1 b3 P- @4 ~作者:FlameCyclone
! _* j3 O9 `7 Z7 @% Y' ]' e/ d* [内容:2 H: Y# L4 p, y3 b
1.关卡选择: 标题时,左或B减,右或A加(1-5关);6 {0 @* J4 p1 c6 C4 h- r
2.无敌锁定: 暂停后,按上键切换;& d7 r( p, D% ^: L4 t' w
3.生命加满: 暂停后,按下键切换;
) |% F& M4 O3 ^# M* r 4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);. h$ w) Z7 E) q5 q2 @: n h
5.子弹切换: 非暂停,选择键切换(普通,W,L,B);
7 d v U* J. b0 R }8 Q! d 6.B弹数量: 暂停后,按A键切换(1个或2个);
$ y( e! |1 H* O6 W& W4 I' B$ Y 7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;( a3 _" }9 M, k/ p8 v P% Z
H/ q. Y# L$ a7 s0 W# l
; ~7 f! Q, F5 }/ e7 l. u' K4 a
& \3 x- u$ r1 K* h( L: ]& q; q ( B' W# Z* C3 P0 t2 S
' [4 w8 o& i8 Y3 T
/ v8 U! ~8 Q+ X1 J Y- a8 m- e# Y3 B6 C$ ~/ o- k% S/ n
FlameCyclone.ys168.com" T/ m2 i! J" f& O7 q, s" U
www.nesbbs.com- ;[FC][最终任务KEY][END]
/ J- Q& n. C3 c0 f' v x: [ - button = $04 ;单次按键4 u% ]3 `4 K" [$ t
- flag = $6000 ;功能开关标志- K& p3 Y/ F$ [9 N2 O# |( ^
- pause = $000E ;暂停地址" l! J; T4 c$ }' r2 n
- 7 i; x" \" f+ D* t
- .ORG $8000$ K' m5 o3 D5 M* M, `. x7 b( l
- LDY #$08 ;自带的按键程序
' D: o0 E6 B9 {( M3 @7 I+ Z - ADDR8002:7 L% M9 E; s' a Z: x* ~
- LDA $4016,X" Z2 F$ w. C" e' [& |8 {6 g* ^
- LSR% s5 m, O$ x& C4 ~2 n @/ h
- ROL $0021
8 C7 w, A+ Y; }5 k - LSR
. ~6 v# z: S3 g: v* R4 C9 }% r - ROL $0029
: @! t1 y. ~; y, Q+ c - DEY
$ Q* J- l( k4 P. f: K+ R - BNE $80020 j Z' M- ], n8 ]. @% [# y
- LDA $0021
0 h) s7 ]. R- S4 i+ I' u! n" N - ORA $0029
, E8 d" Q1 l1 T - STA $0021
+ o* W) F$ n0 Y! B/ D* Z3 j - LDA $0020
6 R' C% J. [8 O! V- j6 P7 o - AND $0021! V' T8 i! g. c3 s4 ~" c( G
- STA $0020
0 H& Z$ K F7 s5 w: @7 a - LDA $06,X
; @* W7 a' r$ `! m" \3 Q) V - EOR $0020
2 F( G' }# s" H3 A3 V, k - AND $00203 j! n- W# a4 v' O4 M1 I
- STA $04,X
6 r4 z* g6 g+ K. w% {% W, F4 W - LDA $0020
# n$ v& k7 K, u3 w* M: _3 O - STA $06,X
* a0 r3 a6 \" Z4 }! h! k - JSR KEY_OPERATE1 G' v5 t: b' ?3 P0 q
- JSR Function ;功能调用
- S! P- h; J( B( R/ Y K - JSR Weapon ;武器切换调用
, y% h2 ]+ A) s0 F. p% _. S - JSR Power ;威力调用
v7 l8 A" x( S$ | - JSR BULLET_NUM ;子弹数目8 k% j' v) E5 m& D- J' l
- JSR BULLET ;副武器类型
) o9 {) R' k; i2 K - RTS
8 v5 T1 C% }6 H+ @' p- U - . D0 l6 N5 S4 A+ f o, x6 t# u; y
-
! E/ T+ C5 U6 z/ b - 5 Z" P6 G% A' u: \0 ]1 A
- .ORG $8050
! U; K: B0 K7 G, A, d0 Q# {. i5 X - Function: ;功能2 ^$ w {' p3 h) w7 o
- WUDI: ;无敌
3 U! u( h3 t9 r) G) @ - LDA $6000,X
) T, s* ?( B" |6 j% u - AND #$08 ;开关判断8 m+ r0 b c D( S3 N/ v8 a
- BEQ LIFE5 l& E$ E- E K( G/ Y, Q
- LDA #$05
' Q' L. k0 a8 Q/ F6 F" p - STA $05DC,X ;无敌锁定
7 B* z' \' p A) G8 G# d# ] - LIFE: ;生命
: L0 R' T" s, w( i9 s - LDA $6000,X
9 X1 U% @8 C# ^, d- b# Y! H! F! _: l - AND #$04 ;开关判断6 X* R' i% L" r8 G8 w
- BEQ FUNRTS
; H6 D5 y+ W5 z/ F8 g3 [; |* i6 m - LDA #$059 z& F# ?9 E ^6 f
- STA $1C,X ;生命赋值2 N, d) a* X0 L, y4 {
- FUNRTS:
' k7 M2 b& O4 s& `4 z" R - RTS! V2 b$ @) @2 U3 C- d. \
-
! @& c% N) }, K0 i+ z5 A - Weapon: ;武器切换
( r' K% P: n: M9 n - LDA pause ;暂停状态判断1 ?% ^8 Q# ]1 U, X6 {2 X5 O
- BNE WEARTS8 ]* [# @* x4 Q+ A) w" m- I3 R! r) O
- LDA $04,X" U) l3 o$ Y: U$ o6 V& i
- CMP #$20 ;选择键判断
9 @9 w* m$ J2 O: u - BNE WEARTS: V: R9 d! w5 F' j9 b# O
- LDA $12,X0 T% C; c9 u+ s3 N+ W2 V( `
- CMP #$03 ;武器值判断9 r7 p. S B4 u$ Z$ @
- BCC WEAINC
& w( p% ^: X* I$ ^# R - LDA #$FF
( n# w4 p+ t8 u5 @ - STA $12,X ;武器重置' a2 E& h, f# Q
- WEAINC:' Q4 O0 O3 W# Q8 \( _: r9 `
- INC $12,X ;武器增加8 |4 z0 V% f; m$ s
-
1 C1 O. G) H0 G1 i6 k8 N! d) L, m - WEARTS:
9 s& S7 Z* @! E/ g0 A& {/ U( N1 X - RTS
: M7 s; o' C a - ) C D) j# t! G: [) A" b( m
- Power: ;威力) u& M2 `, c1 b8 i, D( ?1 x
- LDA pause ;暂停状态判断2 Q; [5 l0 L( ?2 T: \2 C" Q
- BEQ SPERTS- [" J" N( `" e2 }0 _9 ^( m) s! D- M
- BUT_LEFT:
* K/ N2 K: v, u3 ?; a - LDA $04,X7 [8 c& A6 O" _8 U
- CMP #$02 ;左按键判断
- O" x O& t% s: ^5 Y - BNE BUT_RIGHT
; q* P" w( F% Q( e$ @ - LDA $88,X
7 m( N7 y2 \! c( ^' ~9 } - CMP #$00 ;威力判断
2 w$ Y6 V9 a3 C) l7 e8 d \ - BEQ SPERTS
4 s0 g0 }+ f$ R# ?2 {+ X+ O - SPEDEC
1 j3 W# Y- A: C) E) |: l - LDA $88,X ;读取武器值3 H9 z3 M+ g* B- A a+ Q
- SEC
& B9 _9 s: d3 B5 ` - SBC #$08
7 Y8 A2 h1 }2 E2 T0 m: h0 U5 _1 }4 \ - STA $88,X ;威力减小0 M( s9 {) ^! D. q: X, Q
- BUT_RIGHT:6 ]" }8 u& m0 o# F. [# \
- LDA $04,X
7 ~( { c" D1 I- `6 W! R - CMP #$01 ;右按键判断
! r) w2 K2 a7 E6 c; Z1 Q3 t% N - BNE SPERTS. a0 m; \7 j9 k5 I s, Q
- LDA $88,X I9 w, B9 _) A0 A) T4 u0 F/ v
- CMP #$10 ;威力判断
8 p; u4 y7 M8 Q0 q$ F7 X - BEQ SPERTS
- ]4 w: H0 u8 X# { - SPEINC:' \3 x3 e# m: n7 j$ P
- LDA $88,X ;读取武器值/ `/ l( I x+ U0 |3 A
- CLC
4 O5 v5 P3 y5 k# R" Q - ADC #$08( w/ A7 G: @' `, b. k/ I, Z3 U2 f
- STA $88,X ;威力增大
7 u# E/ x g) i7 x \, } -
1 W0 ?) i+ h* }9 E. v - SPERTS:4 C' B2 @: j9 L4 B( ]
- RTS
8 P- O4 O. C+ {7 E- [
; Q! e9 q) K6 q& W- BULLET_NUM: ;子弹数目9 y4 \# R. v0 f) R( e }
- LDA pause ;暂停状态判断
' g. A( Z x$ ]9 ^# n" [ - BEQ BULRTS( i3 t- `$ l# T7 ]
- CPX #$00 ;主机玩家判断, U$ R) i+ f" y3 {4 a
- BNE BULRTS
2 x( o- D" u7 }9 j - LDA $04,X ;主机玩家判断- d) _: N. l! k# v% m
- AND #$80 ;按键A比较( a, T9 K0 p* ?' S& B: @
- BEQ BULRTS1 l& L$ E) B5 N$ Q. J
- LDA $87 ;状态判断$ \+ v, m5 \$ k T, l: i
- BEQ BUL_21 M7 P f& l% a$ s9 i
- BUL_1:, A: q9 N# z {* ?3 x1 S j
- LDA #$00
* Y* m+ H& R4 E0 t - STA $87 ;1发子弹
( ?# `4 m, w2 k6 F - BEQ BULRTS
% O! p5 a* p6 H. y4 ?/ R, m+ x - BUL_2:
. p7 G( ?: T$ N - LDA #$01
! j% v2 x* v$ H. e8 w/ X - STA $87 ;2发子弹+ z: V+ Q1 i# G& c
-
+ ~. H# b$ X6 b- v - BULRTS:
, I" C0 G% p- q1 L' }$ h8 R0 T - RTS, R2 a. `9 B+ c6 O8 @' k% G' Z/ G
- 8 \) L! S3 R, H# G" i6 V! T! _
3 F& a3 Z. u9 O3 r5 a/ |' u; Z- BULLET:
+ }, D, z+ l8 G) q0 @0 c2 ` - LDA pause ;判断暂停状态
' i6 i3 X G! m7 F0 I5 K1 ~2 v: d - BEQ BULLETRTS
: L1 i; u4 S1 a- a0 Y# c - LDA $04,X5 L( b) ~. G4 _! P, \4 X$ l
- CMP #$40 ;按键B比较
, `: v" o! G; n, U3 }' b1 o* v+ P - BNE BULLETRTS
: I4 U7 I/ q; m7 S - LDA $6002,X ;读取副武器# w$ L/ M- c3 W& [8 l, d4 [
- CMP #$03
! c4 z; {# [$ y1 q; {0 T - BCC BULLETADD( x& |/ _0 z& t0 `
- LDA #$FF+ X) F2 N$ g1 v! n5 C& W! r
- STA $6002,X
! o8 H, T0 `6 ?" \ - BULLETADD:
; _+ T. I8 j1 \2 x. |. E - INC $6002,X
8 p1 f7 O0 e% j -
6 Z- k8 P ]6 j/ Z) | - BULLETRTS:
^6 ~- n( Z3 ?% Q. y) P - LDA $6002,X. R: J! `* |' |" S
- TAY- G/ O- P+ v- J g; O1 ?
- LDA BULLET_DATA,Y* h3 l2 o4 U" m: P1 \
- STA $6004,X ;写入副武器数据1 N1 [9 W# D( z: D) ~
- RTS1 x! N/ F) v, w. F9 u' s& Z- f8 Y
-
! ]2 {6 I+ j8 c& Q" o& v9 `/ m -
( n7 M8 w$ H/ o - BULLET_DATA:0 J6 S& {, D! _. a$ J# J, J$ V7 H2 y3 N
- .BYTE $06,$02,$03,$04
" j' w+ Q4 l# ` z- F -
: S3 D+ {; S/ U$ N( s2 e - $ s- {* y# k, Y* }
- ! y, J1 ]) [. |. o
- KEY_OPERATE: ;按键开关操作
3 l4 k$ V- f. G& M+ `7 D/ O - data_protect: ;数据保护
. R+ C- w1 j" v4 o - PHA$ c! l% ^# R2 d* j V1 Y, G
- TXA
% H; N8 e r4 } M3 Z5 b/ } - PHA
) P _7 u$ X9 x1 Q - TYA+ i! p/ {& Q) o% A
- PHA2 G$ s3 _, j9 n8 ^9 n9 h
" `6 E8 i6 [5 o1 d6 l: c- FLAG_INI: ;开关标志初始化3 J1 R2 \/ B" C" ?7 n
% T5 U- j, b6 V P$ Z- LDA $600F( r) f8 {# H4 A# f1 Z2 X
- CMP #$01
& |4 P; D9 y8 ~1 c/ X, { - BEQ pause_cmp
: F) }7 C% y* d1 u- R0 e9 |# L5 S - LDA #$00) f8 k$ p: ]; e0 f; [4 w$ |) W6 ]8 [5 N
- STA $60004 s: H" C! X4 q+ `; n# Q
- STA $6001& ~- W/ b8 U" X& u1 A5 \
- STA $60025 x( B9 @. ?9 W1 @
- STA $6003: x/ i3 v/ k& z; @& \8 i
- STA $6004/ i" x L! D8 g2 E- ^' o9 T- J
- STA $6005
, @& V8 K; d6 J' ~9 i$ a) _4 y& L: i - LDA #$016 c3 R r# u8 h5 [5 i! g6 B# Y
- STA $600F$ h+ L, I9 k; }% N
-
! [' ^4 H7 z# |# o# {1 h6 ]& ]5 Z - pause_cmp: ;判断暂停状态
* Y N3 `- l" Z - LDA pause
* i, |, Y1 u4 M+ L5 L0 A - CMP #$01 ;判断暂停状态
/ V0 J5 M/ b9 V, m - BEQ button_press0 V' {) z6 v+ b. A' U |
- PLA
9 v" r& H+ V9 C ^8 N0 @ - TAY' A4 v" H* ?" b1 k2 z7 {
- PLA; C8 a( J( O3 h1 ~: Z
- TAX+ q e+ {% f' V- B9 y# {- y
- PLA! A. `2 O/ I: P7 O8 [! p+ b* |* f
- RTS9 `8 v$ J( C" { n) V* j0 ^
- 4 i: d. E; o% J9 V" Y; Q+ i& A
- button_press: ;按压操作5 c, E. f& n8 ]8 J! r2 l& L$ \
- ini_Y:$ G4 T* g7 L! k( \. g
- LDY #$00( k2 N9 R; S( G+ ^+ a
- button_cmp:
# D1 P* @( R. |7 C0 \: U - LDA button,X4 A! K8 f5 z9 X* K0 f/ C
- CMP ora_data,Y
) R7 S1 j7 V% ^- _ - BNE count_Y_cmp
" E J1 B$ \0 x. |% ~ - flag_cmp:, J; W0 b: ~, F5 K% T
- LDA flag,X! [1 ^) g! I: q
- AND ora_data,Y
3 V' y Y: \7 B* Z1 m+ \& u - BNE flag_and9 J/ \- G# O2 N h
- flag_ora:/ o$ p! k" M9 U+ s1 [7 E
- LDA flag,X
) z; t3 k8 ?$ W) Q& L - ORA ora_data,Y4 D( o: d5 ^5 t- w4 N7 G
- STA flag,X
O- u& C8 M* x# ]6 a' j( l - BNE count_Y_cmp$ M/ M4 z. m6 I2 ^6 @) }2 _8 f" W
- flag_and:
; y/ \; t' F3 J6 [0 D" r7 P - LDA flag,X5 T2 m' d+ V9 J; X
- AND and_data,Y3 z5 ^: ]9 z3 O6 E2 `( o
- STA flag,X; J7 `8 A+ F- g: e% a
- count_Y_cmp:
1 t& P4 \1 l, v1 Z; H - INY
- s* G4 J$ P2 o- t - CPY #$08* u- `& c6 G8 l. r) n0 i/ [$ p
- BCC button_cmp
, H1 P2 A& b/ s' E8 ]+ U' ` -
3 h/ U" `" F" C6 A' T7 E - data_extract: ;数据恢复) A0 e8 H9 C' K
- PLA! }; z: k; ?0 D6 d+ o9 q
- TAY$ P7 \8 s1 |5 Z, Q! k
- PLA
, V! t% a( ^5 [ - TAX% r ]+ A" f+ i* a* C& y7 j
- PLA' `- k7 j1 u; w7 y
- " Q' S# r% c( C% _0 @
- return:7 I% V" n5 p, d
- RTS
( _! v; }" p" U6 w- z0 K) d7 C1 Z - 5 x2 p: `: X! g3 C0 k8 S
- ora_data: ;按键相或数据3 D& _5 c$ S7 V! ^" N' t/ R/ B
- .BYTE $08,$04,$02,$01,$80,$40,$20,$10
3 Y, L+ O3 W3 D0 ^ - and_data: ;按键相与数据
" E q. ?$ R. o" v - .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF
6 @+ ]" Y) r+ a* X - ) |5 `% N" C X e
- - s( @4 Q+ [( g& J! [ Y" T$ P
- 2 ?: G. ~, @5 @. |1 N! v
- ) b; D$ V4 Z3 ~) _ j
-
" w, q) A+ H4 J8 G5 x, u' I: @1 i -
. X" F+ V- n [6 K
; o' _$ d& p7 g& n2 ~, U
0 L- j! J- m/ C7 R! ]- i# A a1 ~
# |8 b! S x4 v$ P6 X% x9 {- J- .ORG $C264 ;自定义的MAPPER2切页程序
3 S# f# Z/ R4 Y3 f6 z# F$ M - PHA
; l( u) b1 X2 W9 ]' z - TXA
; ]3 l1 O5 \4 p. s X - PHA" K3 H# Q$ v! `1 G; V1 }( J2 k
- LDA $0066; W6 A* K$ L- R' Z9 l4 A/ j& E: _$ @
- BNE ADDRC280
0 C; z1 L" i! |3 u6 `0 G - LDA #$07
: M& T9 }" g4 |( r5 ^ - LDX #$03/ F s! s1 o0 m' M8 H/ F8 P' u& T( y9 \
- JSR $CD9B ;自带的切bank方法
: Y2 {5 \0 D. o& C - PLA# w$ T7 Z! d; B/ X! o
- TAX
1 F6 R: E! K. p - PLA5 r# a' e- f7 _& Y
- JSR $80008 w5 A( i- e; O! Q" `/ C/ D
- LDA #$06
6 r% m: H( N) ]' E+ K: R. c - LDX #$03/ _! C; A. e& [5 D: n1 N# q5 Q
- JSR $CD9B ;切回原该切得bank(可以不用)8 `+ J% f4 @1 f4 f v! f
- RTS
b. O, Z5 x5 Y# o, t - ADDRC280:
l& ~3 G# U. \+ h4 s& ^1 |; z - PLA
1 i+ e. {+ c, f2 m* m& a, `9 @* c+ d7 d - TAX& H1 z* K! ]) o/ @
- PLA5 g) `# e$ C+ R7 s+ g# t$ q
- RTS( H1 R1 f1 ]) k+ q6 s+ K( Z0 f
-
3 z' J* y+ O1 C" \$ n - 7 [" o' F8 x3 C" F) e2 [
- ;[FC][最终任务PPU][END]
* ` S ], p2 r( e - .ORG $C056 ;跳转到PPU重写程序. Y5 k: N1 h7 }
- JSR $7000
( ~/ b: K& ]+ T' Z! a4 P/ S& l7 n" Z
. S0 t: ^0 P& I( u- .ORG $CEBF
# a- d0 T, T/ {8 K7 G/ B- Q - JSR STAGE_DATA_WRITE ;跳转到关卡数据写入
( K% t/ }9 q' m" m; i. ~7 { - ' k. \; S( N: t& Q1 ]
- .ORG $E460 D. U \" w* z2 s* q
- JSR BULLET_DATA_WRITE ;跳转到副武器数据写入# P% ]3 ?; P8 ?+ X0 ~% J
- * {: z3 n' f% E. Z
- .ORG $71F0
* Z3 v) U y# _4 l - STAGE_DATA_WRITE:
2 \5 Z% q- L% w - LDA $6010& d# D" y& L/ r0 ~/ } L
- STA $1E ;关卡写入
7 _& E( I, s7 Z: } `& ~8 B. W - LDA #$006 C7 B4 e5 A, Z6 P: D6 ?
- RTS% |7 I6 b- x5 Y+ u
- .ORG $71C0
$ c; v. s& m- z3 _ - BULLET_DATA_WRITE: ;副武器数据写入
2 H" l1 j+ X8 r' R3 S - CPX #$0E
+ L- O& }0 c" Q9 J. D9 x8 P+ | - BCS P2_BUL6 }* x/ i( p6 a) r" ?" q
- P1_BUL:
( d; H6 F8 j0 A; l& f& e% ? - LDA $6004
3 F( i X% D) y) }+ I' i - JSR $D7D0 ;P1副武器数据写入 |% |; \0 ^; L1 V5 ~0 Z+ p6 h
- RTS
^( U; _6 Y1 U; u( O1 w - P2_BUL:
& ]" J% r6 K I$ ]* _ - LDA $6005- A5 h# c, b8 p7 K; g
- JSR $D7D0 ;P2副武器数据写入
# f+ O6 q% M5 |: W - RTS$ u V; M2 T2 q* H# U0 }' @
! |* h+ {; ^: W, m% c- 2 R% v6 w- [$ s$ U4 g
- .ORG $7000
# Q" e0 T0 x3 H8 _ }9 ^ - $ L. k' n* ~6 U6 A8 v
- STY $4014 ;补上覆盖的精灵写入指令; f, z8 U4 |* g: L G
- PHA
5 v0 h' c+ {6 p3 N; g- c7 O0 O - TXA7 @' M9 [; Q9 O
- PHA% X5 o& b" R" T- z
- TYA
) X( w# J! o1 S1 g" w - PHA5 q* G, Y+ V* O& K" A
- LDA $0C
4 H# d2 w! I/ m* X/ }( o - CMP #$01 ;比较是否为标题画面
* h* {0 s; B9 ?) c - BEQ PPU_STAGE
' T1 g. G* S( o+ `; _ H9 [ - PLA
: |7 Q n& w# e+ u4 U6 ~ - TAY0 d3 z3 ?% C' ~3 }7 a
- PLA$ {. V; g0 c, T3 c; D7 z7 [7 {
- TAX- _) O/ c7 I+ `& w. j/ c3 E
- PLA
, B' h2 t. _ y1 p4 k - RTS
" e8 V! @/ o5 @8 K' J - PPU_STAGE: ;STAGE显示程序 g g( n0 Z( A% @8 |. N; F
- LDA PPU_ADDR_DATA, a; N( p& N- k9 G0 L9 z
- STA $2006
2 |$ n% q& k y z - LDA PPU_ADDR_DATA+10 P$ C0 x' V( J, d. S
- STA $2006 ;坐标设置
# M% Y2 b. g+ g - LDX #$00
: ]' O" w7 {6 ]" l$ r" L - PPU_STAGE_WROTE: ;写入STAGE字模$ x* s/ O* g0 ~
- LDA STAGE_DATA,X
0 h4 y3 L* F# M1 u - STA $20075 z# _5 w/ k! u
- INX% O, I" d; w+ \6 |1 u& c
- CPX #$06$ Q; `1 L, d' B
- BCC PPU_STAGE_WROTE# n x8 d- H7 c6 @( |+ j/ u& N
- LDA $6010% ]0 E+ C# ~ F$ M+ H) i
- CMP #$FF ;关卡数据初始化条件判断
& k8 ?4 H4 V1 A' F8 ] l$ F - BNE KEY_B
h0 a8 H0 b( J' s r+ \: f - LDA #$00
! A8 m1 _$ C+ x! X - STA $6010 ;关卡数据初始化: }$ i8 \( j+ O9 Y1 [# u
- KEY_B: ;关卡减少$ e0 _1 k1 O+ _+ L8 P% f
- LDA $044 n. h1 R [: Q% G" l* \
- AND #$42 ;按键B或左减关
; W1 U6 g' l- p - BEQ KEY_A
3 j7 o& k7 m! `! A - LDA $6010
3 Z( @& ?3 u# O - CMP #$00 ;关卡比较& F$ A5 ]& F4 ~
- BEQ KEY_A
( b) r! i& e: ? S* ]3 E5 k - DEC $6010 ;减关: J/ k$ |. M4 b, s, y8 t
- KEY_A: ;关卡增加
% p Y c# `- G2 Q& L% S - LDA $04' M' z! o* v* @
- AND #$81 ;按键A或右加关! e: F* Z3 c+ C# C& c, A$ R
- BEQ PPU_NUM_WRITE
% D* Y& }5 ^, Z8 C2 u& J# E - LDA $6010: J8 w n0 m# d, g; a2 B
- CMP #$04 ;关卡比较( T L! y1 z; U! L# [9 b( h
- BEQ PPU_NUM_WRITE/ X6 W# h5 t# ` H2 g
- INC $6010 ;加关8 M6 V* E" @( G: W: u7 w" L, I
- PPU_NUM_WRITE:
. C" }! J9 t' R5 C - LDA $6010
8 w2 u! z# w0 }; W8 Q G - TAX
% p9 }( I% d# A u* |" m - LDA STAGE_NUM,X ;写入数字
8 h8 B! x r$ w' G5 y - STA $2007/ o9 J) h7 [) X/ Z7 U0 @( F+ }- V/ _
- PPU_RTS:
7 `5 X% l: ?! C8 R - PLA
) Y5 t! y! N5 A6 ]) R - TAY5 d) y0 a4 B2 W% ~* f; e% T. a3 |+ p; F
- PLA" }! }9 q& x H/ _: X1 F
- TAX! ~! U+ K3 J3 V- O# |1 {
- PLA5 @# C5 I; R3 C* w( h
- RTS' u" t) U3 Z# o. `
-
7 I& K; P$ w7 x# w/ \; {0 u' t -
O1 }2 T. ~0 F3 p' W - STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据" e9 h4 w2 A& d( A x( x
- .BYTE $EC,$ED,$DA,$E0,$DE,00. ^& a; f1 `( |
- STAGE_NUM: ;关卡数字1,2,3,4,5字模数据& {( x( P/ K$ y. f) ^
- .BYTE $D1,$D2,$D3,$D4,$D5
5 Y6 `% C2 a0 x$ r# r - 6 J7 m4 q& o6 I
- PPU_ADDR_DATA:/ `6 W% A- m z+ A3 x( U! S! _
- .BYTE $23,$0C, Q5 B, B1 ~/ x: Y0 x3 S0 a
- 3 J3 U- h* z5 ^
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|