|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑
, s% n4 M, d* X! ~7 A8 p) U9 `& p& M ?
[FC][最终任务][END选关]( U2 [/ V) k) Y$ \; p+ D
$ Z/ V# T/ C+ @
时间:2017.3.299 B' x1 w4 Z: v+ m) G7 L7 o9 c
作者:FlameCyclone
: |0 ^/ r$ v- } q( a内容:) d3 Y }0 |) \6 m# K
1.关卡选择: 标题时,左或B减,右或A加(1-5关);9 [# C2 V7 t2 m0 O. O4 k
2.无敌锁定: 暂停后,按上键切换;/ D8 p+ z+ x, ?' N( ^2 Y7 G
3.生命加满: 暂停后,按下键切换;( o) _1 N! C8 H( f8 q6 a2 ?9 Y
4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);% F9 ]: c- ~% x) ~& S% T
5.子弹切换: 非暂停,选择键切换(普通,W,L,B);9 q5 i7 E' y [# B: @
6.B弹数量: 暂停后,按A键切换(1个或2个);+ h. v( d4 V6 u( Y7 o
7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;
. k3 O' d, U+ {; h9 a/ B5 K9 \. L% D! z; Y
6 o" v& ^+ [3 V
; ~: F0 Y1 n' G6 q( ~

. v. Q, R9 t$ w; X/ V: b* h 1 p0 l+ H+ Y8 b; P3 o
5 W9 v, p P7 G i/ J: u; H* x6 `3 s. A4 T6 H
FlameCyclone.ys168.com
) T# w% @7 |: ~4 Q C/ x# P awww.nesbbs.com- ;[FC][最终任务KEY][END]
5 n$ A/ _5 k. ~/ ]7 o - button = $04 ;单次按键# d8 v: X2 u% u$ L5 }; {" Z. J
- flag = $6000 ;功能开关标志
1 T2 g, t; X& c. h7 M - pause = $000E ;暂停地址% U. o) y$ `' \6 n2 ^3 O; j
# w8 M1 m( U4 K: G- .ORG $8000* \2 I7 Q2 f7 T8 s) x1 Q- H( R
- LDY #$08 ;自带的按键程序
7 A7 @" {2 Z" h5 m - ADDR8002:3 j z( E3 C/ D" [
- LDA $4016,X {4 s; l$ l; `: ^
- LSR- x- z& d* [, E# `0 G& P" n" ?( Z
- ROL $00218 D8 l# K9 V& _( T: |, M3 X
- LSR
% H$ T. x8 ~& f+ z, F/ E - ROL $0029) A. B, b A& D* g" S0 P
- DEY
; J$ j5 D0 G. f2 o2 c - BNE $8002: b& w+ _7 [% t2 Z3 y
- LDA $00214 M& t1 R: P4 L6 s9 \! ^/ ^6 j
- ORA $0029( Q/ n7 l9 c- {0 i
- STA $00217 C$ Y% ~0 [8 ]2 z. R% y3 y
- LDA $0020
4 n# F! l% o1 ^0 ?/ x$ o9 p* ~ - AND $0021+ E/ |. ?" ^9 `3 k, }
- STA $0020% ~0 b3 k: o: z- u4 P$ h! `; F
- LDA $06,X
+ ]! v( R+ v8 a: g% g. w - EOR $00208 C- l8 s2 _. Z- `+ h
- AND $0020
, ?* T1 k- z/ [0 m; Q2 b0 y - STA $04,X
8 o5 J2 W' m3 Q! U6 ] - LDA $0020( e7 l5 f% q) x) k
- STA $06,X
. G: Y m' N- ] - JSR KEY_OPERATE
. W0 E- o9 ~% P/ C' @ - JSR Function ;功能调用4 m: N: ^: U7 y4 c- R8 G% s1 v
- JSR Weapon ;武器切换调用
1 P' Z$ R3 Q" R/ u: [ - JSR Power ;威力调用
# _0 r. A2 K# ~ - JSR BULLET_NUM ;子弹数目
1 z4 O N& X) b- q2 j" W - JSR BULLET ;副武器类型4 }7 M. g: N( t9 J/ T# b2 s, c
- RTS- q( w+ U* F n3 Z9 r& L
-
/ j" @9 |' f; @1 F -
' j7 [, ^& ]+ z5 N8 y
! z* K- z' @7 i& a9 P; e- .ORG $8050 G# y( C+ L& n2 x% V
- Function: ;功能
5 \5 I* a5 v& i7 \ - WUDI: ;无敌
2 J: W' |# D/ y4 X - LDA $6000,X
8 q. Q: D6 v$ Z/ G - AND #$08 ;开关判断
( z- f0 z9 Z1 D, w - BEQ LIFE" L4 G8 G% p. }) ~0 J' @8 [& T
- LDA #$05( Y" `6 u' C, M, E$ A
- STA $05DC,X ;无敌锁定: L. z! {5 i! y
- LIFE: ;生命
% U2 ]# i+ m# L) ^5 _- C) Q' f% T$ N - LDA $6000,X
t" h# e9 h& a8 u' | - AND #$04 ;开关判断
. Q' \* _) o4 h; f! A - BEQ FUNRTS- n- ?7 f7 S. x& X9 l5 o
- LDA #$05
3 h. ~! w, ?! w - STA $1C,X ;生命赋值
) ]4 q# _- j5 Q" B. h - FUNRTS:
- k0 E& B1 T0 @ - RTS! f' L+ [4 i3 {. }/ R
- $ l! @9 U4 C" t( T6 ]( A' }$ E9 K1 R
- Weapon: ;武器切换6 T% ?( e7 O" X5 u
- LDA pause ;暂停状态判断
6 a" `0 [3 d3 V - BNE WEARTS
. ]! E) i/ a, J) J7 V* \ - LDA $04,X
5 L0 P. F- L# H8 R+ B - CMP #$20 ;选择键判断
9 v1 [2 ]9 j- p/ |# R; b' g' n - BNE WEARTS
/ w& H* h6 D" Y$ N; w p - LDA $12,X# j7 _6 H3 R. U) \2 b7 \
- CMP #$03 ;武器值判断
/ j" X' @/ D/ q& O - BCC WEAINC# v5 }: p7 b0 t2 l
- LDA #$FF4 I2 X/ ~7 y2 m. x5 O: S8 C& V
- STA $12,X ;武器重置( e: ] f3 o9 k2 B
- WEAINC:
' p( s8 k* {) w2 o2 U. x - INC $12,X ;武器增加6 I+ ~* y) i" C- \: {1 \, d
- 1 q4 Y- L; x/ D K) H' M
- WEARTS:
' H# P. f" G8 K9 D0 @* Q - RTS( S' A6 C- J# P, H" I! K) a( v1 \
- ( e6 X' k; T* S1 {) S
- Power: ;威力
: K; @/ h; h4 g; E" Y - LDA pause ;暂停状态判断
' |0 I& A' f W - BEQ SPERTS
, h" n4 r. W/ P: j - BUT_LEFT:
t! K4 q k9 f2 J - LDA $04,X9 C% V+ K; q0 ~1 Q& j! {# G
- CMP #$02 ;左按键判断
, q7 t) |7 H+ g6 a - BNE BUT_RIGHT* J: A' O! D9 V, L
- LDA $88,X$ J/ m) b8 T) Z- _( F, I
- CMP #$00 ;威力判断( m! e3 d1 f' s2 H. r5 l8 s* v7 Y8 x
- BEQ SPERTS
% _+ V# k* h$ R- Y- @ - SPEDEC. \, N j# w/ r5 ~4 _
- LDA $88,X ;读取武器值: @# l6 Y# C# j. C% s5 t, A$ q
- SEC% j, @4 c: h$ k! L, M
- SBC #$08
7 T$ k+ J4 p+ P5 p0 |& S c9 ~ - STA $88,X ;威力减小4 m8 \+ Q5 \* A+ i) a
- BUT_RIGHT:7 H7 P/ F3 b, j, [ J
- LDA $04,X' v; F8 i2 \) ^- i2 F R8 q
- CMP #$01 ;右按键判断. ]+ S4 t2 I0 Z' A$ U: K
- BNE SPERTS
) S0 }+ X% w, v3 L& C& k - LDA $88,X& ]5 P9 {% T) X9 d' S+ J% J
- CMP #$10 ;威力判断
9 D! W% P+ }: I% a- x- N - BEQ SPERTS
! `/ r/ T% B1 Z, i - SPEINC:1 h: |- c2 M R
- LDA $88,X ;读取武器值
) |) y. I' Y2 Z: ^% R* e/ x - CLC# I+ H7 d. K! U+ |
- ADC #$08: j- s; t" C* D8 f7 @0 h) x
- STA $88,X ;威力增大8 T/ ~1 t- w$ m: h- }7 z |- u5 p4 X
-
7 G4 V# }- g' ^ - SPERTS:6 X2 I( C" z7 z' E `% z
- RTS
5 Q4 k% K1 y& Q+ ^
/ V j8 e2 E6 Q8 k& L) B9 T& {- BULLET_NUM: ;子弹数目7 W' M5 Y+ }1 H% M; d/ r3 J4 h
- LDA pause ;暂停状态判断
4 V _2 j! \, |2 Z A- t - BEQ BULRTS/ B0 d- R+ Z: }) b7 O6 _' J& R
- CPX #$00 ;主机玩家判断8 o$ N7 R, X# E0 z( Q; U- g" v+ x" m5 w% A
- BNE BULRTS
& L7 A- |* F: S: { - LDA $04,X ;主机玩家判断
6 E! W7 U: F- S0 O - AND #$80 ;按键A比较
- i/ \; [& W7 ~# F7 w+ e - BEQ BULRTS* C9 V$ ~# B0 N k. p
- LDA $87 ;状态判断% Z; Y, z% y* W8 @/ K
- BEQ BUL_2* B. J$ n; D, P: Z
- BUL_1:
6 q! L$ ^# i$ [& P) l4 a0 r - LDA #$00
5 T. T$ q% Y; a - STA $87 ;1发子弹
% G/ J6 v' A s3 J - BEQ BULRTS
6 R; m6 s: H5 F5 B - BUL_2:+ W1 f+ Z$ D4 a9 ^' I# b
- LDA #$014 @. h: n5 z8 p( G, S) Q; v3 h
- STA $87 ;2发子弹# Z, V6 s( v6 M# v+ q! ~- W
-
. v( R% d/ X) s9 g2 [ - BULRTS:
! k @, {3 p- h' U - RTS2 J9 Q) M3 h) w, W+ f s
-
, ?- z f( k, R0 B - * \" g a, J7 c/ Q
- BULLET:
# q" U4 J- [4 @ U, b+ i - LDA pause ;判断暂停状态
& `- Y' f- b" J7 ^( g1 ]. ` - BEQ BULLETRTS/ o4 h0 F. S2 z" ?; V) n. D
- LDA $04,X* N+ t4 `0 T/ E
- CMP #$40 ;按键B比较4 x1 Y* U) N+ ]9 i" v
- BNE BULLETRTS
" L) C8 J% N; Y$ l9 O& ^ - LDA $6002,X ;读取副武器
' q0 z' b% C. Q0 ~( F - CMP #$03
* Z; t, L& i$ l3 ?! x' i - BCC BULLETADD
/ |0 _. t! L" |2 z& Z: e" C - LDA #$FF
$ c/ j2 T$ W+ V, d$ G - STA $6002,X
: n) }3 I- c6 m3 p; Y5 z - BULLETADD:
6 Q# h+ c+ l: g! D - INC $6002,X5 p* {3 G6 J2 |$ t! Z8 H% b
-
+ Q5 a! I2 b' {; g+ D9 {+ k6 D. l5 q - BULLETRTS:
" u& X) P# q4 R# T) d+ i - LDA $6002,X M# a, v& J0 w; f% Y3 ]
- TAY5 P0 L6 n: [% ^0 }# f( L
- LDA BULLET_DATA,Y
' j/ f; J! Z8 K - STA $6004,X ;写入副武器数据
) u+ k( X* T" P8 y$ f( ?& w - RTS" k* h# @# U) `! w1 }
-
+ i+ I! p9 p; b. ^* W/ S; a0 p& x -
5 E0 `& @* @1 `9 z2 V3 ^9 e - BULLET_DATA:
( a4 Z% o3 L. S$ I8 d - .BYTE $06,$02,$03,$04
, c3 ?7 y7 u* `) c5 Q( ^9 S* `6 K -
+ L3 ^ k: N9 @) g - & A2 h9 E* m- X- N$ |% x
-
) J9 b! W j" r - KEY_OPERATE: ;按键开关操作1 q" q) |1 \3 R% G
- data_protect: ;数据保护0 G* `, H2 o* K; @; G( s' ^
- PHA. s5 U4 n1 \# h- Z
- TXA0 P# g0 i8 _1 e0 Z$ c( j
- PHA3 g M* C) b% z$ u* w! h% l
- TYA
4 E% M6 G% e3 ~* P. B; x - PHA
1 v3 D/ J0 X. j8 `4 }" b - 7 L% X6 K7 h, s$ Z( {
- FLAG_INI: ;开关标志初始化 |( p- q2 o/ K% {! d3 r0 ^
1 E4 f% e! @6 M* X0 ^8 P! Q, ]- LDA $600F
- y) K- e+ r U2 F - CMP #$01, J4 n! G. z7 \( `* y
- BEQ pause_cmp
1 H2 C8 E! X( L' p - LDA #$00
9 Q, c0 [! c% W L+ F% j - STA $60001 x- d. a* k+ K' j
- STA $6001' v" }4 S6 L5 ^% }! l2 x
- STA $6002
0 I( Y3 a& x( T. u f1 R) s - STA $6003( d5 O0 h+ u. f' w1 g: x: N J F
- STA $6004# @1 _( ]4 `+ F5 U0 k
- STA $6005
! m ^& x& r4 v% L) v F - LDA #$01( }9 F: Y1 U! Z$ ?" |* P
- STA $600F0 Z& @5 e& I2 h. N& ]
- ! V" E) Y t% i- X+ [) `" m- i
- pause_cmp: ;判断暂停状态/ d9 k% X* x4 M: `
- LDA pause
; z5 N, T, f/ ^! I4 X - CMP #$01 ;判断暂停状态
; o! x* z+ j, K' N# W( d$ }( y - BEQ button_press
4 p% P. Z: W6 k( K - PLA
o4 k" n5 @+ H( B5 U - TAY$ y) M/ X d4 R+ b1 Y7 @
- PLA" K. i: e# v/ T7 w
- TAX y, [2 I2 ?9 H2 l, P
- PLA
2 ?. I' z( c0 k# y; W - RTS
# K; F9 D! r8 r2 `$ [
7 p% `6 O; G9 R( @9 _5 [; k- button_press: ;按压操作3 j7 E" l( U' L
- ini_Y:# ?" B5 q9 E! L: k& d3 D' d
- LDY #$00
9 N( I* }' U( B5 W - button_cmp:, k2 P. }; w" A# Q: h
- LDA button,X) |+ M/ a9 o1 |* f0 y5 I
- CMP ora_data,Y8 R# u6 h0 l3 b
- BNE count_Y_cmp
6 s. z0 n3 M! ^. w; D! b - flag_cmp: |! e. ^$ o2 M
- LDA flag,X' m5 K" p S) m) {, Z, e
- AND ora_data,Y
+ a' A* O! C& x! ?) w - BNE flag_and4 a2 h: v5 Z! R9 A, _8 \+ C
- flag_ora:
3 c) D! v5 Q6 S - LDA flag,X
/ E! }3 D9 v, Q1 c2 M4 n4 V) y - ORA ora_data,Y
5 ^$ F. x( u1 f2 z6 V6 m: e" C: m - STA flag,X: v$ T% F! @7 f* ~
- BNE count_Y_cmp
0 \; {$ z: _+ G0 o - flag_and:
' i% l/ r8 E c) o& K# E - LDA flag,X5 M/ ]/ U8 o( Y% k3 {) w' K% Q: k
- AND and_data,Y
2 Z' `. D3 U1 _5 |. @ K. ~ t6 ? - STA flag,X- r- j: Q7 J1 d6 {1 \- }
- count_Y_cmp:
8 {" I. z0 b1 n: [/ c1 O1 L0 @ - INY
. D3 @2 p8 r, a! E( o& T - CPY #$086 U: k6 m, B5 ^1 e1 e3 W! p
- BCC button_cmp
( e u6 @: G5 \! ` -
) j6 H+ m7 U* m; S$ L3 s - data_extract: ;数据恢复$ A' A5 i$ W0 u, K
- PLA4 @! z2 q7 p `! } [0 J
- TAY( | F' c" ~- H4 X/ N
- PLA
- ^6 p/ Z& F0 L0 x( b3 y - TAX2 B5 O! w! f# v# C
- PLA0 t$ N* p& ~, {; K, s7 r
-
6 ~, e6 M) O t$ H - return:* R" {0 Q. Q8 _7 N2 G) m
- RTS
4 C$ T; c9 m; q5 L5 P2 r4 X7 o+ N - ; W0 a& o' k0 i9 |$ a, v& C. @: ]
- ora_data: ;按键相或数据0 U& K# O- P) g, f
- .BYTE $08,$04,$02,$01,$80,$40,$20,$10
+ N0 P: U* ]1 g/ r( t2 l& Y - and_data: ;按键相与数据2 S, a' j8 ?+ X$ m p6 @
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF2 g, N/ D8 f$ O
- ; z, S' m4 V% H6 B, f
-
9 j0 s0 B+ s# p5 Y U - ) i$ Y( J# K9 \8 h2 Z, ?$ n
- 0 n" c# s% c s% X
- + t. L: M; J! e
-
. @% ?" s/ M# v7 G* K% x
4 {. a& U8 q1 F) I
* r E4 v1 E: \- - s4 u1 `( ^0 p, w: x
- .ORG $C264 ;自定义的MAPPER2切页程序9 v$ [1 c9 W4 n2 w- _
- PHA. b6 e8 t6 G4 H1 K! N
- TXA1 s! t a/ h7 H( }. U4 o
- PHA! ^+ d; X9 v! D' {) b, I" f
- LDA $00667 X# n# j! G- j4 s; ^( @3 m, m
- BNE ADDRC280
' y, {2 v2 R/ n( c( k# L - LDA #$07
- ]. ~- u& t/ N$ y - LDX #$03
# q+ x) I. H4 \1 g! u- K0 f - JSR $CD9B ;自带的切bank方法
) h" q+ \( T8 C* G5 o - PLA
+ P4 [( V& `/ q5 g/ X - TAX
D5 N- P- ?3 @4 @* U# J* i - PLA
- c& ?" f% s9 s7 R2 K; T( S% S% ]5 ] - JSR $8000
- b2 C( g& i5 `* t - LDA #$06, h& Q/ S- r( Q3 L
- LDX #$03* b. z0 |- [1 z' o/ G5 K
- JSR $CD9B ;切回原该切得bank(可以不用)( R# ]+ p/ ^& L; ]% C9 S: N
- RTS
* d' `- G. U+ [5 m( q+ V) ?) I - ADDRC280:; E# {1 v O O. A6 ~
- PLA
2 s- j- ^0 O6 C: v" l2 r% I, r& G - TAX
0 h$ Y5 @* u5 m - PLA
- c R* J9 c. b7 D' } - RTS4 j; J& }( z; A! M
- 9 N1 M3 ^: U4 Q9 p! L# q/ v
- & i6 V, a# x; ]% c; K7 h- H! \
- ;[FC][最终任务PPU][END]8 A0 P+ q Y; n" A. {$ ^" i7 d' B
- .ORG $C056 ;跳转到PPU重写程序
8 p/ R8 b) X" L. Z - JSR $7000' C* w+ A4 ^, {& s/ l
- , ]& T- c8 n) O( P- N$ Q: a
- .ORG $CEBF+ D2 ]' J( H: `. F- w6 s8 \
- JSR STAGE_DATA_WRITE ;跳转到关卡数据写入$ I/ E( X9 Z6 M/ e; Z
- 4 S- J+ z, F$ [4 Y
- .ORG $E460) b) ]8 U! m1 X, D8 c7 s9 E7 D2 w
- JSR BULLET_DATA_WRITE ;跳转到副武器数据写入
% q, |4 J3 c) }# J6 c# j- Y3 I - ' [7 ], q- Q5 D: j& I0 R( x
- .ORG $71F0
7 g; S& o* O6 {2 q# z - STAGE_DATA_WRITE:
9 X: E" x; y2 N% h* ~ - LDA $6010
' K1 s% t+ ?# ` - STA $1E ;关卡写入; G* j( h# r& u
- LDA #$008 B0 G6 G3 G( Q$ k: C* w T! U0 l0 ~7 f
- RTS
+ R- z! c- ~! J9 _; ` - .ORG $71C0, p4 G/ V+ W+ i
- BULLET_DATA_WRITE: ;副武器数据写入
* z& ?2 _1 {+ h' T; v9 k - CPX #$0E
' t0 i0 s9 Z/ Z4 N - BCS P2_BUL
4 m, d$ D4 s# w& O" B0 ?& b. e - P1_BUL:
5 i( f" `+ p" x9 i$ X+ q - LDA $60044 G `9 J" ~2 f- a. m1 |
- JSR $D7D0 ;P1副武器数据写入
, r$ _' T* Y1 z2 X+ R/ F - RTS9 |7 k5 _2 Y2 n! J9 p- x7 g
- P2_BUL:
& x# n8 L6 p7 J - LDA $6005
; u( p- t% E" ~, ^ g* b" H3 {1 c - JSR $D7D0 ;P2副武器数据写入
& j- K b5 X9 d. I0 ~ _ - RTS
5 n( @) t# _7 N- t+ i# s9 @# @5 P
$ \- _; o5 j# S- 4 Q J: p! q/ Y& ?
- .ORG $7000
. h1 N4 h, [1 G$ o) Z0 N5 M6 t -
5 T+ ?2 X$ n" ^5 k' k - STY $4014 ;补上覆盖的精灵写入指令
9 D2 Y( h! m( c/ ]0 ~/ M% W ? - PHA
/ b; [* y/ ^: y! K - TXA7 y( ^ s9 Q( b: N. e) J
- PHA* B* \' Q' j6 P2 {! j" F1 K/ t8 d
- TYA
' j; Z9 a2 z _: Q* ]& W6 N - PHA0 w. I j3 j6 O" u% a# o) A# Y& U4 @
- LDA $0C+ g4 t7 _, y* O4 c. I) M
- CMP #$01 ;比较是否为标题画面
8 t+ T; ?" j% A: c' p - BEQ PPU_STAGE, ^+ p* S& d. y4 w9 q8 J% i: C; m3 j
- PLA7 [$ C$ W. \9 b5 Y9 S
- TAY
2 K$ I: E0 \' F2 ?. g. z: M5 H) N - PLA
. M8 E H& V! v) A" j - TAX
; T$ n, H5 X, i+ G7 a6 k: U - PLA
! X" T9 q$ r1 u% [8 ?- ?$ y - RTS
7 I& _4 \* J5 Y( ?' B$ }" L; e$ V - PPU_STAGE: ;STAGE显示程序: P) Q2 T+ j, ]; `4 w
- LDA PPU_ADDR_DATA4 s7 D! \3 n& V/ w- b
- STA $2006
! n" b/ o6 g+ A- T: Q" d - LDA PPU_ADDR_DATA+15 D% R' f& G& U$ q
- STA $2006 ;坐标设置
8 b) |! Y2 p1 `$ I1 @ - LDX #$00. e+ X# g7 B s; f. x4 E
- PPU_STAGE_WROTE: ;写入STAGE字模
9 }0 n+ E6 J0 _) T4 c - LDA STAGE_DATA,X
' w2 U% q' h0 ^; k - STA $2007
% z0 M G9 I, B$ [" ^ - INX) \" E) S8 [) R4 s7 k
- CPX #$064 c# x6 w+ L' q" G2 L) z
- BCC PPU_STAGE_WROTE
/ }: Z% Z8 R" ^. M+ S - LDA $6010
0 }; E. }3 ]8 l - CMP #$FF ;关卡数据初始化条件判断
+ `9 @6 T, s# e9 x - BNE KEY_B$ O9 f e/ D/ V$ ]' n% d
- LDA #$006 j* o" `4 L& I
- STA $6010 ;关卡数据初始化
, ^0 z8 i5 h' \; R/ F$ a, ? - KEY_B: ;关卡减少
7 ~' G- d9 W) G3 g - LDA $04" \7 J+ M5 q9 T) h
- AND #$42 ;按键B或左减关; i9 O/ s, s& l
- BEQ KEY_A
( l, n- n: ]: |' F7 Z. f - LDA $6010$ [% Y, Q2 T0 T' l& {# O
- CMP #$00 ;关卡比较; f$ _0 M! S5 H
- BEQ KEY_A
$ S. g+ w7 \2 F U# k - DEC $6010 ;减关& ~& M# M9 D6 E6 [
- KEY_A: ;关卡增加
% H& t, r! ], A: z" D9 j! N, c1 C' v/ b - LDA $04
8 W C+ q- T# P5 N G1 ]8 V - AND #$81 ;按键A或右加关
" \( H. r8 G! l( a3 h9 M3 _& l2 \ - BEQ PPU_NUM_WRITE
( i7 ^) g6 X5 _ e7 X6 f - LDA $6010
" c* k2 ~* d ~9 b - CMP #$04 ;关卡比较* x& V2 a! O/ |% X8 ]) F4 V" \
- BEQ PPU_NUM_WRITE( T( z4 C k9 e/ }% @ b1 [; A
- INC $6010 ;加关- d% s. M. C. x. G% K5 ]$ n
- PPU_NUM_WRITE:8 {, k8 E0 P, i, U9 y* o2 G
- LDA $6010. {& u, W* R' u% Z' f% {' a3 W
- TAX S1 g6 b+ [# k$ h6 E7 F
- LDA STAGE_NUM,X ;写入数字
" F& i/ W7 k% N* M" h- { - STA $2007
: i' E {- s: S$ s, }4 c C - PPU_RTS:
7 v u4 G; L- A9 N( I - PLA
! V6 R$ x l, J3 d' V; z8 J - TAY
( ?3 c( D; w5 z4 X6 d4 F - PLA6 o5 @0 r; @) N8 v2 X' g
- TAX1 ]' ]. E) {4 _: i
- PLA! z+ e/ g/ n4 H6 {
- RTS8 l7 J" x7 l9 Q3 l M ^0 \: X9 R0 N! _
- , h- X- ^ c. v. d7 j4 |
- - [$ w4 {- o6 B% M
- STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据
* U3 I* Q) _% E& A+ V; I) @* a - .BYTE $EC,$ED,$DA,$E0,$DE,00$ o6 c8 l2 \' M7 U6 |8 I
- STAGE_NUM: ;关卡数字1,2,3,4,5字模数据% s! j) |0 b1 v4 o, }4 G0 E
- .BYTE $D1,$D2,$D3,$D4,$D5
! h: q9 S1 i5 v -
' a2 c5 l0 L# l; V2 n2 I9 _* P2 Y - PPU_ADDR_DATA:! W: @. _* Q! h! @& R
- .BYTE $23,$0C
: \; ]7 U! g w! v- a; o. V - : Q" J9 I4 z/ J4 f4 D2 V
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|