|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑
2 I0 O# S" q- N$ i7 N% Y8 W; m. H; g- G& S3 I2 c) E% _) e
[FC][最终任务][END选关]
! ^, I2 m. X# A, t9 ~' M! H P, ?9 V Z
时间:2017.3.290 M, ?/ D+ U6 h& P4 i* @! s
作者:FlameCyclone |0 `) [, y5 r6 N" M! W- X3 Q
内容:
9 V) M% J8 l" V: E 1.关卡选择: 标题时,左或B减,右或A加(1-5关);$ Y: f8 w C& u0 r
2.无敌锁定: 暂停后,按上键切换;
6 [1 o; K$ n6 P0 `8 f- E 3.生命加满: 暂停后,按下键切换;+ V* ^+ J) j5 e( N/ ~% A: A
4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);6 b* _) K1 v6 t
5.子弹切换: 非暂停,选择键切换(普通,W,L,B);
; L) {! d$ A: k- V/ h 6.B弹数量: 暂停后,按A键切换(1个或2个);$ j, `' j5 e9 v5 K% X6 P
7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;0 l0 t5 U6 e) J: X s9 T* q
+ ^+ g/ ~3 z1 b) B
- c/ [, m! k/ u& p+ s& b( Q6 j/ U

4 W& b# c' P w: ` F ; C* j# ]6 ~4 ~" C6 |+ {( W2 N
0 A( g0 u9 w8 w4 |5 D+ r }. \
' n# b8 i: g0 v: s9 R' }0 g
5 r! }, e1 V* T6 V3 oFlameCyclone.ys168.com* w; i: V) U- E# o1 K' o
www.nesbbs.com- ;[FC][最终任务KEY][END]* v$ S" _2 J( T" `
- button = $04 ;单次按键7 V% j7 i0 G" p
- flag = $6000 ;功能开关标志0 @* w3 {# U& r. B7 w
- pause = $000E ;暂停地址+ _. w( r& ^4 y" r( c5 B6 M
3 X7 t$ ^- J- ?9 e- .ORG $8000
2 ~" y- f' |+ [9 i& W- u3 Y - LDY #$08 ;自带的按键程序
- W$ z7 [& n% L - ADDR8002:7 p* k+ m# K& H6 g8 v8 `
- LDA $4016,X7 q" g- X( Z6 w H
- LSR
: y. q: m! z/ H/ }! c/ K& z& V - ROL $0021
4 f3 J) ~( X* p4 G* G2 s - LSR
; \5 l" r; s7 P0 b I) \( T - ROL $0029
" J4 U& S! ?1 Q3 |! G1 y - DEY
( w5 F. u9 Q: x/ {# x, Y5 v# T - BNE $8002
8 N6 j7 S& ?% C - LDA $0021
( h8 R8 ?6 c; N4 u$ ^ - ORA $0029. y9 z- ^. j+ }
- STA $0021
& t; ?5 e, y! `2 g7 X% V - LDA $0020) b9 V' W2 Q) K! K- r
- AND $0021& h3 Z* J; K7 |: m
- STA $0020: {6 q! W% Z" U/ r! i+ B; C' k7 f
- LDA $06,X7 Y5 I( V; }" O- z4 [5 R- N. l
- EOR $0020
+ X- i7 F* h' w/ o& h4 k - AND $0020
' h( a2 W% ?9 s7 X3 j - STA $04,X2 k2 u. d( G( v
- LDA $0020- N% S6 F' ~7 o7 U7 ~ ^
- STA $06,X8 J/ \/ S# F% G- t, {- d; b
- JSR KEY_OPERATE+ A" M/ `& A6 D+ v9 j' d9 K) N
- JSR Function ;功能调用
% p& r) B+ Q u ~% f4 X5 b - JSR Weapon ;武器切换调用# c! c, p$ y2 l" `& F
- JSR Power ;威力调用. a7 A; e( T8 ~
- JSR BULLET_NUM ;子弹数目
; Q }5 e6 I A8 M - JSR BULLET ;副武器类型
0 q" f* h8 W. X3 C& |4 Z - RTS
9 P2 f& y3 A% \: Q3 j -
) \" h7 E" ^6 z( q -
' g; j9 i$ u5 o2 F - ; T" r; F3 Z( |4 r; |) I
- .ORG $8050
5 ]" ]. L c9 z. w4 K - Function: ;功能
" _1 ~ n0 T; c3 `) J! P* M5 w - WUDI: ;无敌# L+ a, i) Q/ A- z1 f/ j0 m
- LDA $6000,X
3 Z6 F P' v+ I) s - AND #$08 ;开关判断 g+ v2 z$ K4 i* f+ Y
- BEQ LIFE
8 {2 l* z# u0 |! y. Z - LDA #$05
# h& s# i7 h7 E$ a9 ?' u) p3 D4 F- T - STA $05DC,X ;无敌锁定, s" R5 o3 M/ H6 R. q' f' ?
- LIFE: ;生命# Y6 ]' |2 a5 q7 h4 ?3 k
- LDA $6000,X
+ Z. C1 D2 ?- `2 I9 @$ k5 Y - AND #$04 ;开关判断2 Y4 x |& {2 O: D' G% K' F
- BEQ FUNRTS
: i; T; x5 _, a - LDA #$05
2 U P+ H' @- o6 q- o1 } - STA $1C,X ;生命赋值% D) V1 G3 `; e$ M( g7 e7 G
- FUNRTS:
8 J: E7 R0 W6 s) e" \ M+ L - RTS
( q2 ~) d$ x6 z+ G/ `. z -
! k. s- Y2 A) F* R) J - Weapon: ;武器切换
2 _2 O- v# [: h/ U - LDA pause ;暂停状态判断
: P8 C3 O* ~ R1 i* i5 b - BNE WEARTS. b! i" V/ v! e6 ?+ w. D
- LDA $04,X
3 k6 r1 A) r. |9 E" k( m - CMP #$20 ;选择键判断, t6 M7 j2 k! ^7 R! `6 {: W; n7 W
- BNE WEARTS8 S7 g" P) \; s% w" O7 P$ B+ p2 C
- LDA $12,X
( z9 \2 B1 [6 f. a- ? - CMP #$03 ;武器值判断
* C2 e6 N% v/ C7 L+ p& F; f2 l - BCC WEAINC
R6 [% C; r3 }( j _8 \ - LDA #$FF
2 @. j/ i/ Y! K/ Z$ U) |1 H - STA $12,X ;武器重置
0 \! D& B) \. Z# }& Y+ S7 \! H4 U - WEAINC:# F, _* g# z# x/ F |- ]
- INC $12,X ;武器增加) x; m2 A( o% P3 O% @
-
5 }) i* X$ K% G2 \7 o - WEARTS:0 t& ~7 O: b$ ]
- RTS
- i3 |. ?7 I* ~; P6 Y; S) \! ^ - 8 Y4 e/ X2 j" ]$ ?
- Power: ;威力4 O- z7 m4 s% r' X1 o
- LDA pause ;暂停状态判断1 O& _- I8 @ e/ g: l
- BEQ SPERTS
# D5 Y, G. A, _# t/ G- ]* L - BUT_LEFT:
f6 X' G. i6 t7 }$ D+ ~ - LDA $04,X
+ C3 V( m3 e, J0 W4 V7 u - CMP #$02 ;左按键判断
T# J4 Q# E6 s; q, h4 W3 x - BNE BUT_RIGHT
/ A# [4 ^) K# ~, l( X - LDA $88,X' x j- Q0 k* X% A! [
- CMP #$00 ;威力判断
" R0 X! b |1 z2 P" s' { - BEQ SPERTS
5 [7 J9 B( ~ D3 ~' X. P - SPEDEC; ~ V: h, s9 {7 N
- LDA $88,X ;读取武器值" x( }8 |6 s8 |+ K0 k3 ]; H' D
- SEC9 A* R/ K: \4 e0 j `
- SBC #$08
! C4 |' s6 S4 c5 U( B8 e8 B - STA $88,X ;威力减小
7 i/ ^; B% s' ]% f* U) x2 P0 W2 T - BUT_RIGHT:
# y4 o8 f- {" v. X, O1 k - LDA $04,X( K2 I# j8 L. l V7 h
- CMP #$01 ;右按键判断
/ @$ h( F4 q- H3 \6 Y* B - BNE SPERTS6 q4 R+ i) S1 W- u0 W# G5 E* U
- LDA $88,X
- H1 i2 z; |4 G7 [! H - CMP #$10 ;威力判断
* E7 v/ \# {) m8 `2 G5 ~' ^ - BEQ SPERTS+ M/ r0 w' {: O8 m' m
- SPEINC:9 h/ x0 E: b: |
- LDA $88,X ;读取武器值
6 ^( ~' b$ Z2 ? - CLC
& d. `, y- c- k; x+ a - ADC #$081 I; w. w$ S, P* f' ], [1 d
- STA $88,X ;威力增大/ _% \ ?, H! e" m) A5 U
- 9 |6 g, |% F( T7 S/ M# x/ A% q% C, s4 R
- SPERTS:4 O: p* a# L% P: X0 u
- RTS3 ^) n2 O: E b- u* k
- * }( K" j5 _3 \6 s, |8 R- Z
- BULLET_NUM: ;子弹数目
* \+ K; V3 L+ P8 q0 D3 ~ - LDA pause ;暂停状态判断3 Z& t% W: L" w# ^- ^
- BEQ BULRTS$ G, m W& [+ q) r: }
- CPX #$00 ;主机玩家判断" w$ o/ |3 U* J/ ]
- BNE BULRTS, u( t1 b( V- ]2 Z
- LDA $04,X ;主机玩家判断/ q6 m2 ~- m, C. a
- AND #$80 ;按键A比较
8 M a- u- O0 b6 x3 u - BEQ BULRTS4 M2 V4 n. S$ X& C( o3 h. ]) k
- LDA $87 ;状态判断# N9 h, o" I X2 ^% f/ }
- BEQ BUL_2
" Y% |( U7 f: y8 U! P0 _ - BUL_1:
s9 Y1 @# |7 z! g8 m1 [ e - LDA #$00 {( ?& C( M% t# ]3 N
- STA $87 ;1发子弹
Q& J9 d! |) A' u( H - BEQ BULRTS
1 g# T- \5 [2 j; A9 a/ a - BUL_2:
1 l: {+ d8 P8 Z/ q2 D/ |+ h - LDA #$01% P! R8 a% b; }5 ]3 q
- STA $87 ;2发子弹
: e4 J* {' L; x B% u -
- C$ d: G I- Z9 O7 W, { - BULRTS:
4 q3 Y4 g: w$ C* J2 ~ - RTS/ a1 T- N$ i7 } r0 S
-
# e8 x/ I6 l0 I% y* V6 U0 n" X
6 n; z* ^ [* K; v! d- BULLET:
" e6 F! g' _! M [3 ]% F3 q - LDA pause ;判断暂停状态$ j9 f% j: T: X' J$ \
- BEQ BULLETRTS
! f8 m4 C7 \! L$ w; f8 K/ F& `# { - LDA $04,X
8 r9 I& b4 Y: {8 v* X3 D - CMP #$40 ;按键B比较
; t+ x' j& P1 F9 a5 Y - BNE BULLETRTS: s/ d7 _' n& ?: W% V9 l! _
- LDA $6002,X ;读取副武器
; B: f8 E2 g. F - CMP #$037 g* }- ~" w6 g* w+ B$ Z
- BCC BULLETADD4 V4 y9 r$ p7 h5 P- _
- LDA #$FF3 L' S* j8 ?7 O3 i$ G7 T/ C
- STA $6002,X: Y/ k) O* u) A) S: E6 h. T
- BULLETADD:
% O5 U) V8 E1 C2 P8 P' ~! v. N - INC $6002,X) Y5 L$ l1 {$ J
-
* S; ? s( m9 m8 T" {2 b - BULLETRTS:
% @! m' k6 V0 C+ s* y - LDA $6002,X
' q: x/ v6 a" x - TAY9 l4 I& }) N. m$ ~' O
- LDA BULLET_DATA,Y0 D, S: y( c2 l$ Z! ?
- STA $6004,X ;写入副武器数据
& R' Z# E6 q0 S4 D - RTS
) p# C; n" {- K; l8 A. X; A -
4 A" v3 g! e, i# W -
/ y6 ?8 P9 f/ K7 a - BULLET_DATA:
! M4 _4 t) V t. K! P% [ - .BYTE $06,$02,$03,$04
& w8 R" _! E" n) s j& N$ u - * u& S- Q& [6 y
-
* _9 X- I X. F# ^ e( S6 Y - 6 B8 n+ ]9 H! Y" p% c& Z* X" m
- KEY_OPERATE: ;按键开关操作( J4 @1 ?+ O$ p
- data_protect: ;数据保护
' S4 h/ |0 G2 m - PHA$ K7 [2 O; n% X* N! {; S7 G9 q
- TXA2 L' z% b3 b: }& n/ R4 m& b7 s
- PHA
" k/ e8 ^# T& X; h - TYA Q# e ^3 a0 S7 \; y8 L8 `
- PHA
6 u: e5 x+ `! R6 z% Y: g - " P$ H, X7 M- z. U: t: Z& _
- FLAG_INI: ;开关标志初始化
5 c, \9 |' y6 h# i
" w/ J) c* R1 k' ^+ F- v- LDA $600F
, O2 S! s2 |6 r9 q3 z1 J8 | - CMP #$011 r3 x6 T0 R5 g
- BEQ pause_cmp
% g) `# P9 Q+ ] - LDA #$00
) f; H* b5 k, J( s2 |5 I; Z e& u( d - STA $6000+ C. f% Z4 o5 i3 {1 W8 B0 S$ h2 W
- STA $6001
! h/ s" |, O6 V& \" j - STA $6002
) N4 B) N. X0 ]3 q$ O - STA $6003; B3 }" T. b5 a# l! s
- STA $6004" s9 H- B& m2 t+ ]' M) p
- STA $6005
4 c3 B& g2 u- {$ E - LDA #$01" s: W/ T3 M! \9 C
- STA $600F
4 p/ w- M( E4 T! r- P6 U8 v - & H0 H* I9 o0 s' X/ j
- pause_cmp: ;判断暂停状态
2 A% c t. B/ d1 v, ?+ E - LDA pause5 y0 v/ m3 j4 l9 e
- CMP #$01 ;判断暂停状态
Q" p6 P9 Y6 I3 G) V' A - BEQ button_press
4 y+ W9 }, }3 D6 \" X - PLA
( f% b% i' B9 {' s - TAY
+ D" y7 k" e# G. l) a; R! X - PLA
; J* K L2 M" h) R: T0 V - TAX
3 \9 Y' E" [- H+ \8 ~2 ?' ]2 V - PLA& O! Q1 C; }5 ^; j$ I U: m! h
- RTS
' G- b9 S; A# n2 u8 p+ B: Y - ! D6 X. B5 ^2 k2 q4 J
- button_press: ;按压操作5 V: P0 f1 A& u6 b
- ini_Y:' }1 j1 H d3 x
- LDY #$00; ]! `# f0 {4 [8 a5 @9 K; F4 {) k
- button_cmp:7 L+ q* |7 x. _
- LDA button,X
7 S) a' _& G) `. |& T. ]1 C - CMP ora_data,Y
9 c3 L/ A4 I2 c2 Y: M- _2 q7 Z - BNE count_Y_cmp
$ V- e( C m' {0 n8 p5 ?# L - flag_cmp:0 D0 B- D1 d# Y* k/ R7 P
- LDA flag,X* T5 D$ T1 F' W! n; c
- AND ora_data,Y$ w8 S) x a& j$ \
- BNE flag_and% }+ O; d8 z+ p3 C d& {
- flag_ora:3 S5 a$ y6 s7 w4 P, _/ N
- LDA flag,X0 [' G6 N S r2 W
- ORA ora_data,Y
, I7 k$ K" i2 q$ O& o. c7 D' @ - STA flag,X- w2 ^- h0 r4 E5 w: |: y
- BNE count_Y_cmp
& Z; ~" V3 R! i, ]% { - flag_and:
: b- ?0 l N1 ~, [, `# v/ a - LDA flag,X G5 B0 j0 _( X7 F, C( o
- AND and_data,Y
9 H9 j0 g" c% ^; D - STA flag,X! \& l8 {" c, ^; k& }% J
- count_Y_cmp:( g! T9 ^; P9 K) E- H( n
- INY- O+ Y9 b' l9 h5 t" Q& `
- CPY #$08- k% u9 V$ s6 T- Q. G
- BCC button_cmp( j& _ Y% E, z2 L9 {0 h, v# J: k
-
- i1 R2 B9 g1 R( R: t" D3 t - data_extract: ;数据恢复( R+ L& N4 h2 I0 F6 C
- PLA
$ u a! y& ]2 [+ l - TAY" f4 t+ U y- `) n6 U* J
- PLA+ A4 n. ^+ {' U/ Q( i# `. N" c% ]
- TAX3 H9 c$ o2 k2 s
- PLA
7 Z# H- S1 l. n: V2 H' l a6 h W -
% o- y+ L8 N5 o# d3 E - return:
* _6 P3 `( n9 g1 K8 Q! O - RTS
* \: T* m! \# ~ - & f- q8 [9 E% j
- ora_data: ;按键相或数据5 r* i3 l2 f, H
- .BYTE $08,$04,$02,$01,$80,$40,$20,$10# \9 M) T$ p& ~' K
- and_data: ;按键相与数据
" K) y6 T1 _ U/ s2 t8 [ - .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF4 N/ Y; \* H7 R
- ! J; t$ F l7 O& R
-
6 H9 ]0 U3 f! V - , \0 }. C* }3 L
-
& Y! m5 `2 T( l M -
* K- j# x' i6 |, d -
8 f$ L1 g* |4 V5 d - * w% l: w" J9 G$ i1 A, B
! h8 n* P0 m3 ^) P7 H- 8 _9 }- e; v2 M
- .ORG $C264 ;自定义的MAPPER2切页程序 t& F4 J3 X# [8 R3 W- {
- PHA
) k0 h( u" A2 P8 L( B$ C - TXA7 j! p8 ~0 e' j4 ?# y- L
- PHA
. D) g+ Y0 Z$ T% p( h- T9 a7 H - LDA $0066$ c {0 j$ W/ x9 u6 f
- BNE ADDRC280
3 _( O4 j# m8 K; I - LDA #$07
, f7 _4 D3 T) P- D7 n - LDX #$03
% x$ H6 i. f% E; D$ F - JSR $CD9B ;自带的切bank方法
) H$ l4 e7 a& r. f7 n& L: T# p - PLA
6 y; B: H+ A# m- g - TAX
5 O) N* X/ r7 q5 f( e - PLA" r+ W4 o$ b4 x7 R
- JSR $8000
' ~$ d. I1 @* W - LDA #$06/ |" E v/ d; `5 K
- LDX #$037 @. a/ L. V ^7 Y8 n
- JSR $CD9B ;切回原该切得bank(可以不用); y( }% |5 A d5 N: v
- RTS. k0 D' U# ^0 V8 Q& N$ _) Y
- ADDRC280:
7 s' B# t+ a+ H! ?, H! [' K) A - PLA8 v6 K+ ]2 Q% U; S- v) P& a+ D: X
- TAX, i: a* K7 q. r( z
- PLA
7 E* O( {$ F' G" `! S. E - RTS
$ d. O0 w/ c6 ?- H0 A- v -
# }# y& ~, @' o5 N: y - 4 P* t3 g& \- S* v
- ;[FC][最终任务PPU][END]2 |4 e" I: P( d {1 D& c
- .ORG $C056 ;跳转到PPU重写程序' N' s6 |. h2 d1 H R: _
- JSR $70004 p( \3 B) [+ {& v
- 5 c6 q6 |8 l# i3 G( n U0 F
- .ORG $CEBF/ y- F* Y0 d3 v9 Y( `* f% G8 o
- JSR STAGE_DATA_WRITE ;跳转到关卡数据写入7 X8 g K; H; z( r( S
- % n2 }/ I1 J& j' Q
- .ORG $E460
- w& y7 `3 x8 [ - JSR BULLET_DATA_WRITE ;跳转到副武器数据写入% v! ~) [, ]8 x: x# C! R! [
-
5 l* {% c ?3 z5 V% R - .ORG $71F0
, x! G/ Q# j' ]' |# c1 ?' i$ A - STAGE_DATA_WRITE:# j9 X! g/ I; ?
- LDA $6010
) W; O/ q, h! Q% f+ G - STA $1E ;关卡写入) g+ Q8 J- _, I% I$ W
- LDA #$00
3 n$ K1 X, L e5 U - RTS+ N4 I8 _8 A& J. Y5 ]+ V: k' W
- .ORG $71C0. Q% C$ X4 g! }* K3 M
- BULLET_DATA_WRITE: ;副武器数据写入5 ^6 w7 D5 D! l& q5 U/ M
- CPX #$0E
3 J: H0 F: I2 h: k' A - BCS P2_BUL
' w! x% y, W/ r; A* A - P1_BUL:
8 {8 F" _) t& { - LDA $6004
% v3 X5 y1 c& C- Y+ b, m - JSR $D7D0 ;P1副武器数据写入0 o# W# B" _: ?" b7 E O* o6 s8 ^
- RTS
8 l! _; |- j2 f, s" Q; c - P2_BUL:9 t( r! g, N, m3 p! O( J3 C2 f, q
- LDA $6005$ ~2 |8 ]1 G. W1 D9 i( Z
- JSR $D7D0 ;P2副武器数据写入
3 ?# q, [/ ~ i) m1 X: G - RTS4 i( _) u6 [( x# @ a( M* S# B
0 F" [. k+ Q, v& s' v" b$ @
) G! k6 t! n4 g" w# b i- .ORG $7000
2 P! W# g7 c- E% n - + p, E& t' Q8 k- a
- STY $4014 ;补上覆盖的精灵写入指令" Z9 _( g! X$ ]6 b, y: N
- PHA |0 D' W. U; [
- TXA) B8 {' \' N/ f+ V0 j( B
- PHA
+ E p( r. ?. I7 d6 A% v m) n - TYA( _/ Z, o9 `3 u' {1 Z% q
- PHA
& A1 c9 q z9 t; s3 K/ n - LDA $0C$ k/ Z" l$ V2 ^9 K( w7 W' `) Y5 ?" h
- CMP #$01 ;比较是否为标题画面
4 e/ m( B, M# \, j - BEQ PPU_STAGE
8 L- m; ~" r) O4 Y3 D+ P: o( _ - PLA
7 O( n+ {3 R U: q# C& z* n - TAY
. k' g4 Q) ^. K$ \0 E# G3 s- l' n - PLA
, \! }' D" Y5 s. d% Z2 J - TAX! k3 a, m+ k9 B/ a0 P8 w
- PLA
" {. u! B! o2 a - RTS0 n% t6 D1 B+ V5 {0 p
- PPU_STAGE: ;STAGE显示程序 c( d- Q3 |% _+ t% B5 ^! r
- LDA PPU_ADDR_DATA
- I3 o# {3 f5 H3 d) B7 h - STA $20068 c5 d- y( ?) N' V
- LDA PPU_ADDR_DATA+1
2 s, x' n# x, p% x# F7 _. A9 o - STA $2006 ;坐标设置( q$ Z. f ], H# J
- LDX #$00
; P# k! K; S( W- k, e# ? - PPU_STAGE_WROTE: ;写入STAGE字模, @* [; p4 o4 u) z8 ^
- LDA STAGE_DATA,X$ l) q6 \* v0 C- z2 X: Z
- STA $2007# q* ]: C9 G9 c+ `% z3 j" d
- INX8 @3 d7 ?" O! Y9 R( v3 M, U
- CPX #$06# Y) d0 f( v# y; a$ J7 P/ ~$ K, Y
- BCC PPU_STAGE_WROTE S) ~) `1 u' f" K( u. p2 A
- LDA $60106 J3 k# a: |8 e8 I
- CMP #$FF ;关卡数据初始化条件判断
' _, i# y* D# `+ P. k$ {* K! q - BNE KEY_B
& `7 A5 ~. |+ k! J# P& B - LDA #$00
: j: v( T! } J - STA $6010 ;关卡数据初始化
' u( U: D& d# t0 J1 z - KEY_B: ;关卡减少) b, u% k; y$ h' M( X8 j+ o
- LDA $042 S% N! A2 K6 h( G" t' {
- AND #$42 ;按键B或左减关
$ y* b0 t' f: F, V+ R - BEQ KEY_A
1 a+ [( H9 ~* K5 C1 m! H) m P - LDA $6010
, s9 ]: }+ D1 r" H& K1 l$ o+ E: ` - CMP #$00 ;关卡比较
( m. w: G4 g% t" {1 \( ] - BEQ KEY_A( Y9 D; \7 k* c( w f4 I: v4 p
- DEC $6010 ;减关
! o& V* }( l1 s- L* |$ V - KEY_A: ;关卡增加
# B2 v x9 q0 e7 {# Z% }/ @6 `9 Y# M - LDA $04" \$ _- {* x& I* K
- AND #$81 ;按键A或右加关
2 m7 n, d0 b5 r/ ?0 z- |. k - BEQ PPU_NUM_WRITE2 Q3 N8 V. _+ F5 d
- LDA $6010
7 `& V! ~) T6 ^* `- O - CMP #$04 ;关卡比较
0 \0 J8 Q. C- H. D" C7 S - BEQ PPU_NUM_WRITE
+ W, K8 \# [& z5 J: z; t - INC $6010 ;加关
- o" E! v }8 ?. u& X6 r - PPU_NUM_WRITE:
8 k/ H4 q- l" E$ N6 Y - LDA $6010( K4 J/ d$ q( c/ f
- TAX# M. S9 h2 U# ~! d# t; I8 ?# n
- LDA STAGE_NUM,X ;写入数字4 i- A* n: ^ G# k( `9 x
- STA $2007
2 O5 g% h I z" Q3 \4 B - PPU_RTS:
! ` {* c) o c; t( p; Y - PLA F' N# |& I. d& \, W) I, E
- TAY/ ~, f1 {' V$ X2 j6 c2 M
- PLA! H# l5 [* G6 F6 M8 r; |5 o
- TAX
# q3 c5 w8 W. Q' Y* P - PLA. q7 ?! y2 }+ }( ~7 p4 I
- RTS n6 d* x8 h, N! g% g6 k
- 9 H, R0 V8 b7 r( `, g( ]! W
-
( _" k+ P* E0 M: I: [% @- Z% Z8 }& ~/ ? - STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据
8 b4 x, x- A6 Z7 b - .BYTE $EC,$ED,$DA,$E0,$DE,00, l2 m3 r9 o- A" ^ [8 _2 z
- STAGE_NUM: ;关卡数字1,2,3,4,5字模数据' U/ i! ]3 F/ v5 v
- .BYTE $D1,$D2,$D3,$D4,$D5
6 z$ R7 k2 y. ~' q/ \ - 6 A3 e3 T8 J& z, [* a; {
- PPU_ADDR_DATA:
1 T' }( t+ m6 j. v+ M+ G: r- Z( H - .BYTE $23,$0C
0 ~! t2 A) I9 r, u2 q- u% n - . n0 X( e' ^ F+ ~2 Q
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|