|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑
5 M8 V7 _: D& Z# Z* H) ]8 E) J1 G" z* Z5 [2 x3 w0 W) p
[FC][最终任务][END选关]4 }0 d5 I) J: t
% z4 N1 q+ ^& t5 ^) Y7 N
时间:2017.3.29
|2 h6 V. L$ E( n& ]3 q3 B作者:FlameCyclone
# a, ]" E8 E6 ~: x3 k内容:
8 U' e! M" d3 N( @$ [! B! _% ^ 1.关卡选择: 标题时,左或B减,右或A加(1-5关);0 E V+ T S3 o* G+ [/ M/ o
2.无敌锁定: 暂停后,按上键切换;
5 p, D R9 x6 T% e7 y- X 3.生命加满: 暂停后,按下键切换;
2 W2 _# H0 V" z8 I. |. ~ 4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);* O9 D1 w6 Q) ?: t) g2 d, [, L/ N# H
5.子弹切换: 非暂停,选择键切换(普通,W,L,B);/ Y S' x+ Z' S
6.B弹数量: 暂停后,按A键切换(1个或2个);6 d4 S9 n+ j0 c, a
7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;' J3 |/ {! l/ C2 a- C
8 x3 a& U* J/ X2 E0 a" H* g+ M" Z
5 P2 ?3 G; M3 _
7 X8 h" c" e0 i. _
![](http://www.emu618.org/data/attachment/album/201703/29/221320yo44ll1aazlh1uwz.png)
! G! k/ F P' H. ~" I9 \ ; `& N3 @: X+ N* R) S8 S
$ p& w# }8 i, X! C! l8 q! C5 R& S0 E: m) g, u$ f, B' U
FlameCyclone.ys168.com+ A$ q7 e( T; k# ]% {! O
www.nesbbs.com- ;[FC][最终任务KEY][END]7 L1 `8 e5 k, q% E
- button = $04 ;单次按键
# o4 u# V) Y4 ~5 P0 ^ - flag = $6000 ;功能开关标志
5 \! _2 U& Z- d - pause = $000E ;暂停地址2 P- N, w- @! |4 U
- 6 T/ h7 i* a q, d: W* C
- .ORG $8000' c; h( l K7 j$ m
- LDY #$08 ;自带的按键程序
3 c2 T0 g+ w3 n - ADDR8002:
2 b- M! x! F6 V2 g( i - LDA $4016,X: w% @4 D4 T) u0 u$ B
- LSR
" q* O. v! X5 J - ROL $0021
: } H% C7 g# W) d" E! L - LSR
5 R N1 b5 i, O, L, m; F' J - ROL $0029
6 i1 V- B8 n V/ J6 D - DEY
# M7 o% @* J* i5 Y0 \ - BNE $8002
4 F# f- X" p" Q' a4 z1 u! E" { - LDA $0021( b4 R' p( M% ?; A/ }2 a% r
- ORA $0029
( b$ ?, Y+ i; C8 ? - STA $0021# o* z/ @- h8 A0 a% ?+ b" K
- LDA $0020
' T( U" T7 @% m6 D - AND $0021
: X/ g3 ?; o; s - STA $00206 O* p* G$ o0 F9 u3 y
- LDA $06,X
* N. n/ z# V5 y6 [& ~: ~8 F' t4 |3 P - EOR $0020
0 U* h C& i8 m S - AND $0020' p( M) `$ v3 C. t8 S1 c, b
- STA $04,X
! z- N4 U% r- H* { - LDA $0020
+ b9 g9 D$ \& r3 E7 Z0 n' r# e; v. h - STA $06,X
& [) K! t7 }! E* c: {& e. V; I% t4 a - JSR KEY_OPERATE
! a9 K9 X1 f9 F$ g - JSR Function ;功能调用
# W+ M6 e% o; @( x4 [; h( H) d0 c - JSR Weapon ;武器切换调用
: T. U4 U$ F/ ?: k* d6 Y7 H - JSR Power ;威力调用
; m& E+ f$ a4 `7 j4 H. V, m( o$ i - JSR BULLET_NUM ;子弹数目
) Z3 g1 I- N8 `6 i& ^) Y$ \ - JSR BULLET ;副武器类型 d ~( J) ^; E" n% I. @* j+ ~
- RTS
/ o) s! G/ i7 [' F" A8 N - 9 p% z6 d! c. S: C3 ?
-
4 o9 \% Y0 a" K- L - / }) n8 b8 l- q
- .ORG $8050
2 ~" `0 H7 y% k- n/ }% Q - Function: ;功能' r. T0 k; M8 P8 n
- WUDI: ;无敌
+ z3 q: l5 k1 L0 e* S0 T' L4 h - LDA $6000,X7 _: a! E" g' w$ p, z* q
- AND #$08 ;开关判断
6 q) @6 g8 h0 |0 L" J - BEQ LIFE
7 f/ l% h: c" I6 s( \ - LDA #$05
2 t5 d' G! U. j, X+ U7 y$ _ - STA $05DC,X ;无敌锁定; S/ d3 \! G% \' Y$ u5 m7 B# H9 Z, s
- LIFE: ;生命
6 C& C' ?8 Q/ ^0 u7 R1 k - LDA $6000,X$ r1 `( m2 c+ O9 l9 X1 j" ]
- AND #$04 ;开关判断3 f' C y# N: F& y
- BEQ FUNRTS
, l+ s' z; D! o) A0 p5 [# a - LDA #$05& v5 |! d o9 O+ j# |$ F& u
- STA $1C,X ;生命赋值6 U4 c- W& z* F6 f. p/ V& h. v
- FUNRTS:
- m) f0 M! H- s' G; M6 h: u+ v - RTS
* v5 \7 C& v% v0 e r" | -
h" h9 K! C" e: j& T - Weapon: ;武器切换
6 c) A# |- t" O9 L8 l7 ] - LDA pause ;暂停状态判断
7 A0 c' T6 h9 Z- B# a" i - BNE WEARTS5 X+ u' ^; y4 J( x* [) T
- LDA $04,X5 N; d2 p, O* B7 _
- CMP #$20 ;选择键判断! r% I' \4 N6 ~3 R
- BNE WEARTS0 d1 R2 ?2 [8 o) g7 @. |7 z
- LDA $12,X! i3 A$ @4 \1 M) C2 H4 q
- CMP #$03 ;武器值判断
8 ^8 }1 T Q W, N0 x. d1 S - BCC WEAINC7 }: M$ y$ E5 ?/ y( _
- LDA #$FF9 d7 J, D! p' a/ l2 I
- STA $12,X ;武器重置
) Z# K1 d/ y* _ - WEAINC:
& J5 A; n# T. o" r - INC $12,X ;武器增加
8 \" e" S! E' _, t3 V0 b# z7 @3 ^, w -
* j9 G; @; P8 R1 o/ N - WEARTS:( s2 e" j: w8 ]; u: k9 Q
- RTS
& K; |6 ?9 A3 j -
+ `' }' p; d1 [/ D - Power: ;威力
. \ L+ X, o6 Q R8 U - LDA pause ;暂停状态判断2 `6 O, y; D) R
- BEQ SPERTS
2 o7 s6 h% r2 k - BUT_LEFT:
( V* z3 |* p! H4 ]# b0 {7 |- A, ` - LDA $04,X
8 b( N: o% C, u' x, ^ - CMP #$02 ;左按键判断. V* {2 R; D' b8 {
- BNE BUT_RIGHT
& x, T1 W! _; }/ d' | - LDA $88,X% b7 S5 n1 x' N
- CMP #$00 ;威力判断
$ B# N& |! @6 i# y. a - BEQ SPERTS
( k2 ~- Y1 _. G' G - SPEDEC
; d: q! G3 x. {% i% U - LDA $88,X ;读取武器值
4 H, [0 f( k$ G. N6 D" t - SEC4 }, w* r4 k( w5 s& P g4 d/ n
- SBC #$08
7 l# @ N9 C$ G& |" J# h - STA $88,X ;威力减小
6 A; h$ K* C2 ~9 o - BUT_RIGHT:, G' O$ [. S9 M
- LDA $04,X! O6 B! i$ [& q
- CMP #$01 ;右按键判断
5 [2 I( D% o' u! f- r& t% J - BNE SPERTS
( c9 b8 \: M' `" k/ Q: r* Y - LDA $88,X
( O) _. y5 k3 f; _% |- A2 f - CMP #$10 ;威力判断
5 k/ u( g1 p. e - BEQ SPERTS$ T+ a, O. ~% B. c" [
- SPEINC:; g- |3 L6 @! ]6 O" d9 q3 _
- LDA $88,X ;读取武器值2 j( W: H* D; q, o6 g4 ~7 @2 S
- CLC
0 o$ k* c$ J9 I - ADC #$08) u, ~# o: r4 `3 D
- STA $88,X ;威力增大 N# |1 V: {' b4 P) J1 S
-
5 l1 ?3 v- Y5 Z" C9 ` - SPERTS:( G# }: c3 E+ q! k
- RTS
* P' N, Y' \ E& |, n. U - % e" O1 A4 n. C# p
- BULLET_NUM: ;子弹数目
+ x& s+ `8 M J6 x( v" g+ G - LDA pause ;暂停状态判断
7 v/ Y5 z+ o9 e# A - BEQ BULRTS2 v) P3 K v$ N. ` ?- T
- CPX #$00 ;主机玩家判断: D( U1 R" x( W5 N
- BNE BULRTS
: o& x# [7 L2 x- V/ D5 A& i [ - LDA $04,X ;主机玩家判断
7 M8 z/ q1 k5 U' w$ G0 B; n1 ^* H - AND #$80 ;按键A比较
* A# t o8 Q' f% }5 f - BEQ BULRTS, R; P6 e* n7 j) t: y1 m5 I- X
- LDA $87 ;状态判断
1 P9 P; J' I* i% t - BEQ BUL_2
$ Z( y/ L$ M9 |0 G1 a8 q# l) z - BUL_1:) }* L Z) l6 f) M. K+ m
- LDA #$00+ b5 S$ l+ @& N& b( o
- STA $87 ;1发子弹
7 `- C8 j2 A% E. C - BEQ BULRTS1 {6 I; M, C! F, o) B2 {
- BUL_2:
, a5 V& @6 k4 e4 |, y - LDA #$01* _. w! G# D5 G
- STA $87 ;2发子弹
0 m" m7 ~ X/ }1 j -
4 L3 V" Z+ H- r G! l: L - BULRTS:
& ^# ^! _- s$ J- D$ c3 X - RTS5 c" K5 y' E. ~" O* @
- 9 ]: c$ q; q! o0 X0 w. a
" q5 T' A `8 b- BULLET:& E; U0 \" [0 q" k- r7 f3 }
- LDA pause ;判断暂停状态
1 e, M0 {+ L& w1 \# b - BEQ BULLETRTS
5 z5 i$ y$ H# r2 _2 d9 T - LDA $04,X' ]# _, i* @* Y, T& A9 e/ e9 c; V' j
- CMP #$40 ;按键B比较/ {! j) N1 @- D) l
- BNE BULLETRTS
& n/ r: B+ U8 j5 {+ K& t8 N - LDA $6002,X ;读取副武器/ r. {# d3 @: t' X( X% J) i, h
- CMP #$03
9 s( w9 ?2 A6 g- Z8 `5 ^8 L - BCC BULLETADD$ P/ _, n. u- J6 B! X
- LDA #$FF$ e8 \* d: v; o4 D6 e! y Z
- STA $6002,X
0 F5 E/ U+ H6 P& h* {5 ` - BULLETADD:
! L- H& X0 V4 b7 j - INC $6002,X
' t7 V9 i" g2 G5 E' T - 5 [# D, ?; t/ c! i
- BULLETRTS:+ @) Y* M5 {! @, M3 \4 C4 h' {
- LDA $6002,X
( G* T' b/ A! E - TAY' K$ K( a# [% O- L6 N, {
- LDA BULLET_DATA,Y
- M2 q6 M, a& m" b1 \8 W - STA $6004,X ;写入副武器数据$ L6 N) H4 Q4 [% Y( Y9 ]
- RTS9 J5 L4 v$ j( e. {' m+ F( n$ C3 A
-
1 C3 ^5 ~4 t+ g5 p# l - ( g/ Z7 O( O, Z6 b' S
- BULLET_DATA:' z( O! m, }$ I* X& w
- .BYTE $06,$02,$03,$04& h8 A. i2 p$ D4 V. I" | S
- ) b: y, J# R$ l& E
- ( Q4 d" s4 y; ?4 L7 {0 ~
- 7 Y- ~* a+ ^/ m. X! E
- KEY_OPERATE: ;按键开关操作2 ^' r8 |/ N; o# l+ C% i
- data_protect: ;数据保护
: y% o i2 [" P+ y. M+ e) c3 U - PHA
! E, B5 j2 B7 A# M$ O8 e - TXA4 g, Q5 @7 c4 t0 a; N4 u) c
- PHA
/ N7 d% l' ]: o$ [5 f* K - TYA
! R; Q# I" O- L+ N- a - PHA
, m0 j$ ?' D* B' i+ h - * ^6 k2 s; F) r: Z2 {
- FLAG_INI: ;开关标志初始化
" A9 |. D" _! g# p& Q$ w
J5 R Q! B( b ~8 P3 q' D- LDA $600F
" t y! N3 Z( v' x: [ - CMP #$01. X/ X6 D) W. o& b& Y Z k$ P% S+ T
- BEQ pause_cmp
2 L- i3 W$ L$ W- H( h# k4 m - LDA #$00
+ z% C2 V. H8 g1 [+ @$ ] - STA $6000
- `+ @% z3 f; Y0 B: @ - STA $6001
; b7 h" t+ @( b3 K4 A2 ~0 c1 O8 J - STA $6002
. L0 j9 Z* G" X$ Q4 g - STA $6003
8 O; j- }* v$ h+ m# C; @ - STA $6004
+ w, b) A" V+ I$ h( T0 F - STA $6005
9 O2 N0 J* I6 V( B - LDA #$01
" N' f4 X; h( _ - STA $600F
; \7 Q6 r9 l1 Z3 r3 k - * [0 L1 Q: M! G5 c9 l
- pause_cmp: ;判断暂停状态' V- s. U; m6 p, ^* ^0 V
- LDA pause
9 b% L2 ?5 x7 {9 q$ ^9 ? - CMP #$01 ;判断暂停状态
4 s$ [& K9 F( Z8 I8 m - BEQ button_press
& z5 D: S8 r; z6 J1 `! w6 c - PLA7 N. m; a9 o( p5 C! i* Y7 o% C$ l( U
- TAY7 k& K, F! j( g- g
- PLA
( R N. ]( R( k4 ~6 D5 W - TAX
( Z# F1 n: c; a - PLA
1 C( d" x# K+ O- Z - RTS) T$ ?" ~3 `2 ?/ ~* y" m
1 o& l3 o3 d' z, t" Y: b. d* u3 k- button_press: ;按压操作
$ F0 i9 {4 C* S& X; a3 L/ Y - ini_Y:" ]- ~7 O9 w5 |( t; \( C
- LDY #$001 |+ O" \$ Y+ W, k
- button_cmp:6 z5 \; f" O7 z$ J6 @
- LDA button,X
4 y2 }$ o N7 ]( w - CMP ora_data,Y% |/ M/ \" Y. i6 e4 i
- BNE count_Y_cmp7 E, T# i5 f9 M, |3 s5 a
- flag_cmp:; a+ W4 E( b6 [1 ~1 I
- LDA flag,X! I" C; i- O2 g7 b r
- AND ora_data,Y) b" p% X( [8 W! F
- BNE flag_and6 c0 o- t1 K5 g9 s
- flag_ora:$ \0 o$ F+ Q+ X1 i* V
- LDA flag,X
8 |- }/ e& e I5 G! y% }! _3 K - ORA ora_data,Y
3 z$ _8 K2 r9 Q( W% e% a9 p% t - STA flag,X
3 J% f" k3 K9 `* J8 A' P - BNE count_Y_cmp
0 q# a5 B1 `9 B( ~% @' g - flag_and:
: n% P, B0 ~1 s" E% l! @+ j& o - LDA flag,X
, K7 i5 J9 E. A9 b$ X - AND and_data,Y7 \+ }, N2 C g& w3 ?* b6 j2 c
- STA flag,X
+ I- M6 f7 \9 P - count_Y_cmp:
9 F! _& S' X L6 _0 i$ S# i: R - INY& {) Z) S0 K ?
- CPY #$080 ~9 X9 s/ u' U5 O
- BCC button_cmp
8 R2 S4 ~/ }! |/ j8 R' C - " v3 x. `/ a' b
- data_extract: ;数据恢复
( \" _' I3 [- k1 q - PLA
. R1 ~3 J6 O6 l7 Q - TAY& b: b2 H; f1 s$ k' d
- PLA# q0 {" r/ j2 g* p
- TAX0 ~$ F3 |3 v$ ^% v. d+ S
- PLA0 ?0 r$ Y6 X9 F8 t. k
-
; E& O* J6 V2 @- G, K! g8 q - return:
: n3 l" S9 |) c7 f$ K- ~! G$ W - RTS
8 o$ D+ B: {/ O; |, F0 o - % T* }5 J0 P* t$ N$ N
- ora_data: ;按键相或数据9 |2 o5 g G$ r# b, W7 T
- .BYTE $08,$04,$02,$01,$80,$40,$20,$10
: U. w+ O1 z D1 Q" {0 L r - and_data: ;按键相与数据
1 d X/ s7 o& C5 P - .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF/ a. @5 v8 F* Y1 X9 x U& p" D
-
( w% @9 q0 w# H* c -
; S8 c c1 R, P - + K% a- P/ s+ a/ y2 X
- Y0 q* a6 }) o1 s
- / ?7 w3 q% I3 ^% O
- % A+ f7 _2 N4 r9 W% Y9 N# d
- $ ]1 W, F( X/ y- }
& {; ~4 u! v* B0 h& G
9 |" H& W, A6 K9 J6 w q! E- .ORG $C264 ;自定义的MAPPER2切页程序
2 h! I. H$ x0 J' T3 a - PHA' H) J- d7 Q" R) A
- TXA
0 Z$ D- ?% v4 q" B - PHA9 A4 l$ B5 Q8 [' @$ ^6 h. K/ Y' o
- LDA $0066
7 J8 W% D( h) { - BNE ADDRC2809 i, c5 i- }% h1 p$ p1 g- ^
- LDA #$07
* |8 m" W! z/ z6 L: m8 w - LDX #$03
3 c' ]. N5 f: u0 o% e$ `; t - JSR $CD9B ;自带的切bank方法
6 P+ K% r8 n0 `! _% h5 h$ C - PLA
5 |! m4 o- a! ~7 X3 b - TAX
4 E: s) ^/ k; L7 Q+ ]: H3 j0 J - PLA
* l1 }+ U5 v9 A8 c: g - JSR $8000
7 ~* s q: F0 ~! }' K% w - LDA #$06
; N: _! I5 @$ y+ X# R! z. p - LDX #$03
; i( O# o' H+ x% g2 ^2 ], g - JSR $CD9B ;切回原该切得bank(可以不用)
$ [0 ?4 F3 {5 o. {. w! u/ { - RTS
1 u* i) a/ @7 B0 a$ ^ - ADDRC280:
2 c) y x7 |( L6 Y1 |* G7 t - PLA1 T. x6 o: [- T4 d3 C! W; ?% x
- TAX
, R4 `! ]6 K" ~1 o4 s4 N - PLA% P E; ^* i `* v) d
- RTS- M/ ~8 S3 k. M; `% i
-
) O- v2 i% A- _: p -
% ~0 p/ L+ H$ H - ;[FC][最终任务PPU][END]$ Z& E" d! v/ S" t: F, C& h
- .ORG $C056 ;跳转到PPU重写程序
% R6 o7 G+ q6 e" [* Q: f7 | - JSR $70009 X1 U4 @' H# D1 a8 [
- ' x8 |7 V% I9 ?# m
- .ORG $CEBF
2 \! S: {/ A. K ~8 r& l/ h5 X - JSR STAGE_DATA_WRITE ;跳转到关卡数据写入. o6 x: S7 X' h* e0 I: M7 w
-
# A k+ _: g' d( g, W4 X) Q9 _ - .ORG $E460 H+ D% l+ T/ L5 S
- JSR BULLET_DATA_WRITE ;跳转到副武器数据写入- E3 x! ^! W& f7 J! ?( z' n2 e* C
-
1 I. X2 h2 ]1 r - .ORG $71F0
4 P2 a' T' N* R1 a( u2 C7 x - STAGE_DATA_WRITE:5 ]- P* n3 C1 W3 O' x' s
- LDA $6010
/ @' F3 h. s0 A6 V6 g7 X) o - STA $1E ;关卡写入5 b; N' E8 {" k! y: h( `
- LDA #$00
. T, j: Y* I3 B8 K6 i - RTS9 e5 U; h! f: Q
- .ORG $71C0
; A7 B2 q \8 u' t H1 p - BULLET_DATA_WRITE: ;副武器数据写入
5 d' I" j+ W% V! s$ L2 g2 G - CPX #$0E' a9 ^0 ~7 S( F. c
- BCS P2_BUL
( }' C( M" ]1 d7 P- A1 \ - P1_BUL:, S, i6 y V1 |# [
- LDA $60040 t5 ]# v$ J; Y2 w7 s4 k
- JSR $D7D0 ;P1副武器数据写入
! z4 A! _; ` L' f* i1 d6 T - RTS; R1 V; k4 C6 ]& I
- P2_BUL:; ^8 e4 W4 [8 y+ W% G
- LDA $6005
1 e# s- P: N+ g, h. i0 ? - JSR $D7D0 ;P2副武器数据写入* f9 x+ C9 g- O; P
- RTS
: x9 @+ h" K7 b2 A8 J E
: N8 r5 w5 P$ U* L s- / u( X7 u" u. d. |( N+ ~
- .ORG $7000
8 s$ N) i$ q; L( w -
& M* U0 p/ k9 W' t( ^) {8 ^ - STY $4014 ;补上覆盖的精灵写入指令9 r7 ? e5 T2 h2 R5 O
- PHA4 m' r2 A2 T* _2 i9 F
- TXA6 F ]& v! I7 G" e; D* r
- PHA& Y5 y% [* [0 f4 [' F
- TYA
- Y% {+ o/ I4 v' C - PHA
% _# J0 G1 y+ [: t! |% v+ g - LDA $0C
# H5 g. o. B( H - CMP #$01 ;比较是否为标题画面
8 q' \4 ~" c% x g1 t, c - BEQ PPU_STAGE
# }9 E; E6 ]1 A4 g8 E- \ - PLA; R9 ~" o, W& h! a; ^( A& f' U# F
- TAY
9 T/ b& ?9 p% r& ~' i - PLA
, _0 k9 x0 k7 p$ c& p7 T# {+ y - TAX
# [9 T/ Y, r8 O. h1 b) n - PLA
$ A# T6 p1 k+ m3 M* @* A% p' } - RTS" f% n' Q( F% Q$ _5 C0 _
- PPU_STAGE: ;STAGE显示程序2 ~8 V( l3 q/ B$ J
- LDA PPU_ADDR_DATA: \' J4 n' T: ?0 r- ~- Q" O
- STA $2006
0 a: {$ Y6 z, P0 x% R' } - LDA PPU_ADDR_DATA+1
/ O1 f, N3 q4 W; F! k- A - STA $2006 ;坐标设置
& N+ O% }9 u7 l+ V5 ]8 o2 e! W - LDX #$00
- e' p! X7 K/ W1 j3 p - PPU_STAGE_WROTE: ;写入STAGE字模
0 G D. q* Y6 G - LDA STAGE_DATA,X
9 q- Z5 s1 f- Y! Z: }6 Z$ c H* J - STA $20079 X% Y9 @! O. x* D/ q2 W
- INX
7 R% g1 x$ z8 G I3 _& m& n- ~ - CPX #$06& ^' o) M! [7 ?4 M/ \# b
- BCC PPU_STAGE_WROTE
0 o1 s$ G7 ?: @/ W1 ~* V/ U/ W - LDA $6010
! j5 }5 ?; R: {9 I - CMP #$FF ;关卡数据初始化条件判断
* l9 d' e: ^4 L$ y4 { - BNE KEY_B8 j1 V6 ?# P7 J
- LDA #$00
, h( l3 S3 y8 N# o, A$ N - STA $6010 ;关卡数据初始化
9 M9 W- t3 W% b8 P7 t# o - KEY_B: ;关卡减少
' d) k& m# ]7 c' d1 \- k5 M! I, q: f - LDA $04
; N8 A8 K* \9 [4 _$ E - AND #$42 ;按键B或左减关6 H* T8 A9 O' T$ \% Q2 J I$ a
- BEQ KEY_A
' P4 X: v! | F - LDA $60109 N$ B6 w* n3 d# E
- CMP #$00 ;关卡比较: D5 Q z8 S9 N$ E% {; v+ l* K
- BEQ KEY_A
( v) \, |8 `! D$ g - DEC $6010 ;减关2 `( R* B* K. l4 ?3 e" B
- KEY_A: ;关卡增加4 j O4 T" D% p' @; Y. Q
- LDA $04 k* G# \7 Q/ x( i. m: U. \( V
- AND #$81 ;按键A或右加关: E' ?! x; }5 A2 u4 N6 ]
- BEQ PPU_NUM_WRITE
. u- U9 H; _3 v% Q3 r - LDA $6010
* p% u. Q% j( ?- F' p - CMP #$04 ;关卡比较
- C1 M% B* Q& I/ w - BEQ PPU_NUM_WRITE' s1 j$ h/ r: K3 k
- INC $6010 ;加关
( Z- A1 V' g) U* k - PPU_NUM_WRITE:3 D5 A# e$ ~! E$ ~
- LDA $6010
! \5 R* O! ~; q7 B- g1 G - TAX# T' S; |+ v( k
- LDA STAGE_NUM,X ;写入数字+ B ?) e+ x3 B1 A% s: R# j4 y
- STA $2007
7 a% F) `* |0 l% _' E - PPU_RTS:" z3 e p4 b" Z) X. g
- PLA
& g- v! C4 G( E - TAY
, D j9 k+ r. n1 [ - PLA1 A- h5 r8 x/ y5 J
- TAX0 m4 K3 R/ X. t
- PLA& q3 g- a" _4 K' q4 X8 I. T
- RTS9 K/ S$ z% e' Z. g! y; {; N! \
-
& _) v' V$ \( q2 x - + t, j# X C( o$ t* c9 P
- STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据9 v% e7 s! W8 @% {# R* \
- .BYTE $EC,$ED,$DA,$E0,$DE,008 t- ]' M" d& A) F+ |) A1 Y8 B
- STAGE_NUM: ;关卡数字1,2,3,4,5字模数据' o% \ f3 n4 k# ?% p+ N$ I
- .BYTE $D1,$D2,$D3,$D4,$D5
7 J% r% z, ^; |5 ` J; F" z, {) w: e -
- a# B7 h5 h' m0 N5 q+ c7 Y - PPU_ADDR_DATA:$ J. M7 t0 A7 o' R7 U3 w
- .BYTE $23,$0C3 H/ y4 b4 J; g- J; y6 r( a' V( U2 Y
-
( f/ o+ j5 B5 z# x# S" m+ Z6 Y
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|