|
本帖最后由 yandagui 于 2017-3-18 16:17 编辑
7 ]9 A' T2 a# _6 u1 K+ X8 N/ C3 K6 B0 |" b2 T) s
2017.3.13 Z! W! y; N9 x

! }6 F; z1 V4 M* O5 |2 m 1 j: {( r1 f" R% C

$ |% @: J* E" A- .ORG $936E ;CONTRA(J)0 J# k- V/ f @% X2 ~6 t! y
- LDA $25
8 M. _8 r3 f9 E: h# `, y - BEQ ADDR_93C9
, E/ j$ K/ w& T+ n' I$ ?: x - ADDR_936E: LDA $0022 ;读取地址$22数据到累加器A($22==0,单人模式,$22==01双人模式)6 r+ p2 M m% d/ t# p. S- }
- ADDR_9370: LDY $001C ;读取地址$1C数据到寄存器Y
# D& ?7 `7 f2 i+ D% @ - ADDR_9372: BEQ ADDR_9376 ;Z==1?如果结果为零则跳过$2字节3 X% \ W) e$ K1 A9 U" Z0 J- [
- ADDR_9374: LDA #$01 ;读取地址$01数据到累加器A* v. p5 q7 O# ]8 n2 G
- ADDR_9376: STA $0000 ;将累加器数值送到地址$00
! m/ J* b5 A# m5 S' s# S+ o% ?$ V - ADDR_9378: LDX $0004 ;读取地址$04数据到寄存器X
. A. u# m* j% u - ADDR_937A: LDY #$08 ;读取立即数$04到寄存器Y
/ A! J$ |" _1 v1 j( u; d1 ^/ _( x - ADDR_937C: LDA $001C ;读取地址$1C数据到累加器A3 w6 \. r/ _! n! @7 {+ Q4 b0 m/ c. R
- ADDR_937E: BNE ADDR_9395 ;Z==0?如果结果不为零则跳过$15字节: S" w, @" k1 O) i0 l8 p
- ADDR_9380: LDY $0000 ;读取地址$00数据到寄存器Y( a R8 d! r: W
- ADDR_9382: LDA $0038,Y ;读取地址$38,Y数据到累加器A($38==01,P1结束,$39==01,P2结束); ^3 V2 H) D. y) @. b9 X
- ADDR_9385: LDY #$08 ;读取立即数$04到寄存器Y
3 }5 S1 s1 A. ? a) Y5 ~ ?8 o - ADDR_9387: LSR ;逻辑右移; h' X0 d4 c5 `- ~; O' ]
- ADDR_9388: BCS ADDR_9395 ;C==1,有借位则跳过$B字节0 Z% X$ {5 G" a: w3 m0 J1 E
- ADDR_938A: LDY $0000 ;设置Y==#00
# k# D/ i9 R0 W, J8 J/ N. z% R - ADDR_938C: LDA $0032,Y ;读取地址$32,Y数据到累加器A \) e& e$ V+ C5 i
- CLC0 g3 J" u, H: k9 c" B% c
- ADC #$02, M% b6 d) }7 i* d& R/ ~
- ADDR_938F: LDY #$00 ;设置寄存器Y为$00
( X/ J. X, M) P7 p6 o$ [ - ADDR_9391: CMP #$08 ;比较Y==$04? J1 V8 S8 w% d H0 ^
- ADDR_9393: BCC ADDR_9397 ;C==0,有借位则跳过$2字节
, m( I- ]! L" k/ D* N8 @ - ADDR_9395: LDA #$08 ;读取地址$04数据到累加器A- [, m* z1 ]4 J- m% T' g
- ADDR_9397: STA $0001 ;送入地址$01 @: I& }' ~4 t) S6 M- c
- ADDR_9399: DEC $0001 ;地址$01递减% H5 R2 s+ Q/ r) a2 x
- ADDR_939B: BMI ADDR_93C3 ;N==1,结果为负则跳过$26字节
- I& m8 H' g4 z$ a+ M$ h - ADDR_939D: LDA #$08 ;设置纵坐标数值) `9 F- L/ V4 U/ h% Q1 \+ j; g
- ADDR_939F: STA $0200,X ;送入纵坐标地址5 Q3 J0 r8 E# o6 s; g
- ADDR_93A2: LDA ADDR_93CA,Y ;读取图快号数据. x! K7 Y6 o* v5 n
- ADDR_93A5: STA $0201,X ;送入图快号地址( e% k3 g, W' G8 Y8 `' y/ z8 y
- ADDR_93A8: LDA $0000 ;读取属性值数据9 k0 m4 p6 \' D7 J, l z0 o& i8 }5 h
- ADDR_93AA: STA $0202,X ;送入属性值地址% K& k; _: s8 Q
- ADDR_93AD: LSR ;逻辑右移
, _, T& y) }( m# u- T* D - ADDR_93AE: LDA ADDR_93D2,Y ;读取横坐标数值
+ U& L+ C9 z7 T: }4 Z - ADDR_93B1: BCC ADDR_93B5 ;C==0,有借位则跳过$2字节
1 h0 w2 y+ q9 J! e# q; [/ { - PHA
3 B$ x4 T& S$ J/ u% ] - TYA& I3 Q8 h2 g, l
- PHA6 h% \: K; o1 _: r7 C
- LDA #$D4
9 J) O& R# o5 B, L; H5 h6 L8 F - STA $0200,X0 D& Z/ S2 X. i' V) M" n( u8 s3 t' S( U
- PLA' `: f6 v+ h+ y2 ^5 Z1 `
- TAY
8 l& _/ A/ x0 h9 b9 X - PLA
% S8 j0 }3 X8 |6 L$ Z9 Z) ^" ?2 K - ADDR_93B5: JSR WEAPON
! ?3 [6 z: G; @; k0 T- t u1 c! ? - ADDR_93B8: DEC $0007 ;地址$C7递减) H. X- E$ A; U* r G3 Z
- ADDR_93BA: TXA ;X-->A
/ [9 T' f; I( r2 o( a9 u0 | - ADDR_93BB: CLC ;清除进位标志
% ^4 a9 h2 M) ^4 H5 L - ADDR_93BC: ADC $0010 ;加上地址$10的值
& {3 Z; l ]! a8 G$ P0 r - ADDR_93BE: TAX ;A-->X* i! R/ U1 M: j" [
- ADDR_93BF: INY ;设置Y++
2 V+ `% W. q+ t" C* Q4 Y - ADDR_93C0: JMP ADDR_9399 ;跳转到ADDR_9399" _$ A' M) q6 c* L
- ADDR_93C3: DEC $0000 ;地址$00递减
: D, @, G# M/ H: E - ADDR_93C5: BPL ADDR_937A ;N==0,结果为正数则跳回$100-$B3=4D字节6 n3 J! h* z+ c
- ADDR_93C7: STX $0004 ;送入地址$04. k6 } }4 @7 D, @: p
- ADDR_93C9: RTS ;程序转回-----------------------------
( H6 m ]) z+ j2 F4 |9 [$ m - * R5 m1 C- P3 [$ a
- .ORG $FB60+ y9 K: z6 @ m5 V7 K' U
- ADDR_93CA:4 V f3 Z( X: s# F" |
- .BYTE $0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A ;生命图块号5 G6 [9 L5 m4 ?0 C/ J# B& K0 v7 E" |2 E
- .BYTE $02,$04,$06,$08,$FE,$FE,$FE,$FE ;GAME OVER图块号
& b- a9 i7 I5 D' f3 s0 w - ADDR_93D2:
& ]5 f( t0 E/ z2 b5 Q8 g - .BYTE $14,$1C,$28,$34,$40,$4C,$58,$64 ;生命图块坐标* g ]3 n4 K" n# l$ ~" w
- .BYTE $10,$1C,$28,$34,$40,$4C,$58,$64 ;GAME OVER图块坐标! J' |, n u l8 Y
-
9 E3 h7 r& o9 a - . ?% x" B) |. X0 _5 P; J
- .ORG $FB802 ~- c" [3 [$ G7 R5 C5 `
-
5 K9 _6 e2 Y; U, T - WEAPON:8 N+ R0 ?3 ?! _) p' X, r5 S
- STA $0203,X ;送入横坐标地址- {9 b I5 D: n
- PHP
3 m! }4 g3 V2 o - PHA
2 v* m" Z& c4 H% A/ `0 c6 q% o) G - TYA
2 m/ K: A: D0 S$ R( t! C - PHA$ m' N0 t$ e. ~
- CPY #$006 a. w8 f7 ?2 ~" K, Z( L
- BNE LB
6 O# K4 n8 L: W1 f# G - JSR S_WRITE ;第一个精灵) _0 C& b+ N' O. N% R5 [3 y ~5 I: W
- LB:
" K0 d. Q4 G, z$ ? - CPY #$01
4 b. B9 z8 r9 s" d4 r( Y - BNE RE
# R0 @4 u9 F$ c6 } - JSR D_WRITE ;第二个精灵
; }- i1 t: {/ }+ I4 @' Q; \ - RE:4 p2 g% o6 m# M5 n ] C/ R; v
- PLA- Q* w* \" k3 l$ z0 N" ^
- TAY
- x w* d* N5 |" P" R. q9 n# O% Q2 i/ S - PLA% U0 o: |% [% H9 ^; [
- PLP! ?4 W% B! p0 U$ n' t6 L) P
- RTS
0 @2 D% _- j# e' m. t7 _1 ]/ k" j - 4 S# W& o" f* }- I2 | j
- S_WRITE:
$ w8 k/ R5 i E: |& Y8 w5 h" i - PHA
2 W. a5 U% S5 ^8 @3 E) ?! {! o - TYA
0 y( g4 P0 L' Z/ C7 B$ _! x - PHA6 q( F; K) n: W- D5 z
- S_CMP:
+ b- N* F% k% X2 } - LDA $00
7 \" F$ i! _; }* Q$ l - TAY+ M0 k4 j, r0 u- l2 u
- LDA $AA,Y ;读取武器值
: m/ s. w0 V( b3 y2 K1 I* a I - AND #$10" y v, M& Y- \& D$ l& X- R# U
- BNE S_WEAPON
: [- L$ S) b0 Q# E; i - M_WEAPON: ;普通状态( T7 b0 I, W n s
- LDA #$26
7 A } J% I6 T2 U4 F - STA $0201,X1 x0 @/ {8 N1 I- l
- BNE RETURN
1 w; b h+ w- q3 M - S_WEAPON: ;加速状态
! F {' `; I/ E$ R ^8 D - LDA #$1C" R0 H7 v% K1 | y$ t2 G0 U
- STA $0201,X; Y& N7 p) }4 o. u" P" L
-
, v, V5 b- r% i( b+ h - " Q( i2 }8 F0 A) `$ \
- RETURN:
: q1 X: f+ n: q: ~/ w. \ - PLA: b7 f* c5 I% c
- TAY
$ A7 K B+ t: C* _$ V - PLA
4 t- @' ?7 x+ D x3 D/ H- J1 m - RTS# K' y# ?4 c: P" S$ t9 o0 y- k
- 7 } B8 F) g4 t9 C
- 9 p/ i9 o* n6 S# M1 R
- D_WRITE:
" Y9 f6 n( w8 o' L0 O0 D- N( C+ z - PHA
4 A8 G8 c( K6 U9 A) t+ F - TYA
* c6 c( r% o* A1 t0 a1 T' U! v - PHA
2 d, B; ^0 `; K, E' X9 S% a - WEAA:. [/ o$ M- j( o. h3 Q- k7 R
- LDY $00* X' d( f& T: Z+ E2 A, c" G
- LDA $AA,Y# ]# h- j$ [( `0 h6 W2 R" k1 d2 n
- AND #$0F1 c: d' O: T9 \+ }- E/ q
- TAY
2 H: q9 w7 T; r" L( g5 V - LDA DATA,Y
3 H( J; e+ z. e1 |' s9 [0 y - STA $0201,X% t `; U& K& G! u4 n3 G- H0 Q5 k
- 2 b% [ X( J7 x, w" b8 a8 M
- PLA
8 Y0 c7 g- Z. j$ n3 r: o; _6 T$ ~ - TAY4 o5 i6 \% z8 P0 H3 N* I3 z! _
- PLA
' L4 O7 X! ?+ J - RTS
1 F8 {3 c' |0 q8 t4 e* ?5 j - ! {* N- g( G) G" U% ?0 i
- DATA: ;武器种类图块
/ ]; J4 O0 U# B - .BYTE $24,$26,$20,$1C,$22
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|