|
|
本帖最后由 yandagui 于 2017-3-18 16:17 编辑 8 U# D: P3 Z4 e6 i2 ~
' E2 Q0 `' H3 R/ [/ q0 L7 T
2017.3.13; U# }* N/ l$ R$ |4 P6 ~$ B

6 v s& S0 S8 C' S
6 o: l4 E* h/ |; Y! G, i# x2 R 9 c0 s ]# b$ G* e5 T/ J
- .ORG $936E ;CONTRA(J)
: }& L! I$ f1 f) u - LDA $25* m, q; I% l, v( h; Q7 b
- BEQ ADDR_93C9
h0 ^- k. |" @" K* Y- D, a - ADDR_936E: LDA $0022 ;读取地址$22数据到累加器A($22==0,单人模式,$22==01双人模式)
8 x8 h! q2 d- ~* y+ _1 Z+ z: g/ ]# l' w - ADDR_9370: LDY $001C ;读取地址$1C数据到寄存器Y5 E. ]6 Q5 u* T5 _/ u9 k
- ADDR_9372: BEQ ADDR_9376 ;Z==1?如果结果为零则跳过$2字节
% }: t' |" a. p' \7 Y* b6 D - ADDR_9374: LDA #$01 ;读取地址$01数据到累加器A
9 S6 p: _# r5 ~( M - ADDR_9376: STA $0000 ;将累加器数值送到地址$00
e' M7 D- u$ T+ k - ADDR_9378: LDX $0004 ;读取地址$04数据到寄存器X, p5 [3 N+ c# \% a( h
- ADDR_937A: LDY #$08 ;读取立即数$04到寄存器Y
1 L+ B7 ?3 b( l+ g$ e - ADDR_937C: LDA $001C ;读取地址$1C数据到累加器A
' {4 R( q) g# w8 [! V - ADDR_937E: BNE ADDR_9395 ;Z==0?如果结果不为零则跳过$15字节5 }& i4 G4 p, C/ N- _4 s
- ADDR_9380: LDY $0000 ;读取地址$00数据到寄存器Y/ h3 E: J- e( m5 Y6 Y0 F1 M6 h/ K
- ADDR_9382: LDA $0038,Y ;读取地址$38,Y数据到累加器A($38==01,P1结束,$39==01,P2结束)
/ Y( F3 `0 e9 T- {! t' c - ADDR_9385: LDY #$08 ;读取立即数$04到寄存器Y4 W! e( |8 C- K* j* J8 ]/ H
- ADDR_9387: LSR ;逻辑右移; _+ a+ D6 c7 l
- ADDR_9388: BCS ADDR_9395 ;C==1,有借位则跳过$B字节8 u) T0 a F& w% s
- ADDR_938A: LDY $0000 ;设置Y==#00$ C% E" M$ _' q
- ADDR_938C: LDA $0032,Y ;读取地址$32,Y数据到累加器A
( l' R2 Z5 i. Z8 r* U! ^ - CLC
7 h" K3 G2 `+ }' A6 I - ADC #$026 B. P( `; ~, {
- ADDR_938F: LDY #$00 ;设置寄存器Y为$00% A, n2 a1 B8 W1 l
- ADDR_9391: CMP #$08 ;比较Y==$04? w! Q6 N2 c+ R: ?6 p c; [ q J0 K" I/ T
- ADDR_9393: BCC ADDR_9397 ;C==0,有借位则跳过$2字节( f7 q% U4 @- }4 k& w0 d/ p2 L
- ADDR_9395: LDA #$08 ;读取地址$04数据到累加器A. I3 z0 ~( J x% W* X# ^
- ADDR_9397: STA $0001 ;送入地址$01
4 F5 E; G) C6 w+ R" c" ^7 @ - ADDR_9399: DEC $0001 ;地址$01递减: m1 t6 z( o- n0 ?5 B. L
- ADDR_939B: BMI ADDR_93C3 ;N==1,结果为负则跳过$26字节
4 ~# D: H$ e/ D0 O8 m, X' G - ADDR_939D: LDA #$08 ;设置纵坐标数值* |- j" G' }- b% M$ S: r
- ADDR_939F: STA $0200,X ;送入纵坐标地址
% m9 Z e0 x6 f) R7 X3 V7 G# F F# k - ADDR_93A2: LDA ADDR_93CA,Y ;读取图快号数据3 i# T9 a3 o2 z! D' @! j
- ADDR_93A5: STA $0201,X ;送入图快号地址6 F# C( h9 ]) F7 u1 A
- ADDR_93A8: LDA $0000 ;读取属性值数据6 \8 j! B* r9 o& G, |" E9 O: y
- ADDR_93AA: STA $0202,X ;送入属性值地址
/ z6 b+ V$ e& | - ADDR_93AD: LSR ;逻辑右移' ^- o( L, f0 s6 }7 z9 Q
- ADDR_93AE: LDA ADDR_93D2,Y ;读取横坐标数值
0 ~6 t4 f. v9 s. V# n/ s o' [ - ADDR_93B1: BCC ADDR_93B5 ;C==0,有借位则跳过$2字节& s* D# @5 o8 k/ H8 m5 ?4 }
- PHA( G! r6 {) a0 k: i
- TYA
% n' a# g- e! b2 t$ N: b# X - PHA
1 v6 g7 b( M8 r6 N! {8 o - LDA #$D4
1 e2 \- m8 L' F7 B9 v) ?$ k - STA $0200,X
; P/ B d6 Z( ^ - PLA# V( h; N7 a, r5 x# ^9 i" ^* e
- TAY- q3 K( A2 G n: U, q& l
- PLA
X* k/ h2 y: S9 a - ADDR_93B5: JSR WEAPON
& ?# [: z; b' v5 b- O5 o - ADDR_93B8: DEC $0007 ;地址$C7递减& L, {9 u: P5 G: n
- ADDR_93BA: TXA ;X-->A
$ g5 y, v- C" V, n - ADDR_93BB: CLC ;清除进位标志
- g/ ~ d; S- M% _8 b - ADDR_93BC: ADC $0010 ;加上地址$10的值
+ }. O5 |, |6 {: d9 i - ADDR_93BE: TAX ;A-->X
1 B- E4 X; v0 r+ a8 m+ \ - ADDR_93BF: INY ;设置Y++, _4 P# x3 M' n
- ADDR_93C0: JMP ADDR_9399 ;跳转到ADDR_9399
v- c1 Q" G& n/ j' q - ADDR_93C3: DEC $0000 ;地址$00递减
& R5 {! b; g1 Q K: Z4 Y* S - ADDR_93C5: BPL ADDR_937A ;N==0,结果为正数则跳回$100-$B3=4D字节
" f8 f; ?: ~5 B, A6 O* o3 H - ADDR_93C7: STX $0004 ;送入地址$04& |4 u V/ Y' e8 F& O( m
- ADDR_93C9: RTS ;程序转回-----------------------------7 h/ b. c+ P4 }2 R9 r9 Y- q' y
5 j; c' V7 U9 [; G9 J9 L1 D- .ORG $FB60
7 _3 A/ d: }' m( \9 s - ADDR_93CA:
/ Z! j+ S$ D: z - .BYTE $0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A ;生命图块号8 v& O: y j: s4 C) q: l7 |! o
- .BYTE $02,$04,$06,$08,$FE,$FE,$FE,$FE ;GAME OVER图块号
. M, B; d* g# g# K" { - ADDR_93D2:6 k c7 _" @; |: l3 J- g
- .BYTE $14,$1C,$28,$34,$40,$4C,$58,$64 ;生命图块坐标
. s6 u0 ?+ N% e: h( ^$ a - .BYTE $10,$1C,$28,$34,$40,$4C,$58,$64 ;GAME OVER图块坐标" T' }8 ^2 u5 I+ s. A
- % f3 l8 D& ~4 A& L8 ~( s
- 3 @8 _$ S: n: N/ i6 z6 {
- .ORG $FB805 A: X5 v# E& o- [7 O1 f
- - M1 F" ?4 O2 q" x2 G
- WEAPON:
1 L- X7 D s# |& g$ u0 X - STA $0203,X ;送入横坐标地址+ j( g1 A- N0 w9 }4 Y8 \
- PHP
. f1 t- I- o; C. {- w( R - PHA( i+ T, d( E/ ~. ^
- TYA
- J7 x( c, u7 B+ F' } - PHA
- U3 s0 R9 N7 R% f8 g2 Q( `0 E - CPY #$00
+ ^1 o E# `# o! p* [" y3 c - BNE LB
/ y `) S t; n: ~' o. r - JSR S_WRITE ;第一个精灵9 x! S& J1 u6 y1 k) \! O
- LB:
: U) T. a7 O3 b% e* z" @ - CPY #$01
, s: Q& F# K: i* Z+ Q! M( C: d- l - BNE RE5 t' a9 m9 ?. E1 H. C
- JSR D_WRITE ;第二个精灵
* q$ q- x7 |% A0 |; ]3 _9 Y - RE:% E: g9 Y K! j
- PLA
; y3 Q/ ?* F) n* N. e8 u - TAY
{# W( `; t( y+ f- U, Z - PLA( r D4 A7 f9 X! j( m/ B [
- PLP- c* S3 @2 s7 H* f
- RTS' p' H- o4 j8 Y0 t0 h. O" D2 D
-
" e% e9 d, f" {0 W$ U" R8 j* a! _ - S_WRITE:
- W' b+ z; h" E( p8 K - PHA3 L! f. d5 U1 r& ?2 s
- TYA
9 U4 a( E! N# {- P2 }+ y- U - PHA% s/ f; m+ p6 _% A! _( ?
- S_CMP:6 s9 A2 J& G. X, `, ?7 C3 U- v) U
- LDA $00 p% M, S1 P% B+ @4 Z& Y
- TAY
4 C+ P! X2 _1 Q+ O( D - LDA $AA,Y ;读取武器值
0 ^; g: `1 ]6 M5 s7 q" ^" j - AND #$10
4 n# C3 k( T8 E8 j: C - BNE S_WEAPON( x! }2 l( `' Z$ ?( g
- M_WEAPON: ;普通状态
# ]( W& {$ {8 I1 d$ j3 I& Y - LDA #$26& z, @5 B; m* U. g& Z- O+ y) z
- STA $0201,X$ \# O5 M1 t8 U- I9 O
- BNE RETURN
; T6 @, M8 p( B2 T) V% p) _ - S_WEAPON: ;加速状态( ?9 m* h( u& c$ G! X$ w/ ?
- LDA #$1C
9 o3 M0 K! R; R* f( E+ D - STA $0201,X
6 y' I6 Q% w7 |" L' |. ~: n1 o - + A G! k/ L5 A! j! F0 W
- 2 s$ K4 v# i9 s: k' u3 W. m+ y- J
- RETURN:) F& v% E' Q4 M! R% q
- PLA
0 U0 K+ K& }% w/ K6 i# \ - TAY# t3 Z3 w! [9 B: i
- PLA+ {9 C2 _* U, y5 t5 J; a& ?) u
- RTS
+ r0 S1 f2 K& R3 E4 s -
0 r9 q0 X) c. [) a0 Y
6 |9 ]7 M) d" A5 }: L- D_WRITE:7 r d/ {$ _; d; ]8 G, |$ ^. {
- PHA
w( i1 O* m6 V# l - TYA
% t, L5 d- m0 _ - PHA9 t! Y# d% c& R
- WEAA:( Z* O4 A( J/ D
- LDY $00/ J! Q3 \% J) F' N, _" P
- LDA $AA,Y
& T7 J0 c$ g7 B5 }/ O - AND #$0F- ^2 W2 D1 z2 W# Y# Y$ h
- TAY" ?/ k3 ^1 i6 J) M# ?8 s) F
- LDA DATA,Y
- x! m* C9 d0 @3 S$ q# Z - STA $0201,X; C5 |+ g, \ d% q1 L. m( E
-
2 y0 n, ? n; p7 x5 M" d - PLA2 S/ s- X9 A$ P0 D u! k
- TAY) N# H4 D( H# @ x0 V5 @
- PLA; R3 Y. I: B9 _+ ]( g* @' t
- RTS
( q s, ^$ G" z! k7 U( k5 o -
' p0 T/ j* N/ W1 w. U+ v4 s - DATA: ;武器种类图块+ b y2 W, n% W+ z
- .BYTE $24,$26,$20,$1C,$22
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|