|
本帖最后由 yandagui 于 2017-3-18 16:17 编辑
8 D2 M- H* ]+ w! K$ `( o( G# d$ o4 [1 ?# g' o5 B S' s' [
2017.3.13, h" i+ ?8 A& H: }! B; |
{9 r/ ?$ L+ X

% B# [0 Y9 A, \7 R8 X2 e 5 i! y3 s6 x8 `4 I; I5 B0 u, O
- .ORG $936E ;CONTRA(J) q1 I8 L0 K' ]" O* B
- LDA $252 c7 R" z$ |- b9 q* m0 o
- BEQ ADDR_93C9
& V& y" W f4 f( d( T" z9 R - ADDR_936E: LDA $0022 ;读取地址$22数据到累加器A($22==0,单人模式,$22==01双人模式)
9 s7 k w, _ N s; h - ADDR_9370: LDY $001C ;读取地址$1C数据到寄存器Y
" K$ ?) A- M( G: Q4 T+ O - ADDR_9372: BEQ ADDR_9376 ;Z==1?如果结果为零则跳过$2字节% P2 T7 J) T0 J5 J6 P) k
- ADDR_9374: LDA #$01 ;读取地址$01数据到累加器A
7 U j1 H( t' O; w( _" h3 K6 o - ADDR_9376: STA $0000 ;将累加器数值送到地址$00
& x7 X# g1 f v; W# I) x - ADDR_9378: LDX $0004 ;读取地址$04数据到寄存器X5 a$ b* b ]/ F: E# I5 l* p& T3 D/ t6 c' M
- ADDR_937A: LDY #$08 ;读取立即数$04到寄存器Y/ W" Z i# y$ M
- ADDR_937C: LDA $001C ;读取地址$1C数据到累加器A' Z3 L0 Q% ~# S# o/ _% b8 ~
- ADDR_937E: BNE ADDR_9395 ;Z==0?如果结果不为零则跳过$15字节! }% s4 h% d. ]& `1 ~6 P0 }
- ADDR_9380: LDY $0000 ;读取地址$00数据到寄存器Y
* ~: n+ B. C) K3 Y( c ^ - ADDR_9382: LDA $0038,Y ;读取地址$38,Y数据到累加器A($38==01,P1结束,$39==01,P2结束). j6 c9 t5 k6 ^) ? B5 R
- ADDR_9385: LDY #$08 ;读取立即数$04到寄存器Y
- K8 B( r5 v) X - ADDR_9387: LSR ;逻辑右移. z C* M( i' K
- ADDR_9388: BCS ADDR_9395 ;C==1,有借位则跳过$B字节
- V! t4 N) O0 y% f; `+ B - ADDR_938A: LDY $0000 ;设置Y==#00
' o! v! b7 [, v$ Z& P- l- u - ADDR_938C: LDA $0032,Y ;读取地址$32,Y数据到累加器A
- T8 P4 L+ x. Q s) } - CLC
5 N% _3 d( a" T4 l$ B - ADC #$02
8 s% \9 M: ^9 V7 _: Z - ADDR_938F: LDY #$00 ;设置寄存器Y为$00
( n! ]% \6 E; C: g - ADDR_9391: CMP #$08 ;比较Y==$04?
- Y; y2 Y1 {6 G3 F4 B4 h6 T - ADDR_9393: BCC ADDR_9397 ;C==0,有借位则跳过$2字节$ p9 N: Y% \6 q9 @. A" l4 s
- ADDR_9395: LDA #$08 ;读取地址$04数据到累加器A4 c5 D/ A3 h1 }
- ADDR_9397: STA $0001 ;送入地址$01
0 I l% r( h; z- r4 e; b; m# E - ADDR_9399: DEC $0001 ;地址$01递减
0 q `0 r ~+ s2 }# X - ADDR_939B: BMI ADDR_93C3 ;N==1,结果为负则跳过$26字节
) r* k& n k! Y - ADDR_939D: LDA #$08 ;设置纵坐标数值: Q1 t T4 j5 j; S1 H
- ADDR_939F: STA $0200,X ;送入纵坐标地址$ I2 B) X1 ~1 Y) L& a
- ADDR_93A2: LDA ADDR_93CA,Y ;读取图快号数据
, M" y3 q- q" _) R4 Y% k - ADDR_93A5: STA $0201,X ;送入图快号地址
2 S+ Q! ^" e- u6 }* ^5 F/ { - ADDR_93A8: LDA $0000 ;读取属性值数据6 K# G: X7 \. N$ @0 ^
- ADDR_93AA: STA $0202,X ;送入属性值地址
* x/ c; u3 r3 e+ h8 F - ADDR_93AD: LSR ;逻辑右移" k1 D2 Z4 D4 ]2 y3 U
- ADDR_93AE: LDA ADDR_93D2,Y ;读取横坐标数值
* u$ _3 ^6 o; S# X4 d; c6 A - ADDR_93B1: BCC ADDR_93B5 ;C==0,有借位则跳过$2字节
1 ^* L: K" p+ P" {2 G# q) j& i0 M - PHA$ W. {. U9 R( b' L
- TYA. W3 |( c: o: b! d0 i% z
- PHA
% }, o. H) Y$ p) A: c: _, F3 d - LDA #$D4
8 I% D7 Y2 x* j5 |. Z3 k0 k+ b, c - STA $0200,X
0 v0 Q0 Z& G! P* G% w8 T( t - PLA7 [5 S( m9 i. x
- TAY
% s2 ]( F1 A+ p - PLA f7 c& v. ^" ~" p3 e
- ADDR_93B5: JSR WEAPON
! l8 B: f! x, l. m& O3 J - ADDR_93B8: DEC $0007 ;地址$C7递减
/ K/ |, l! l: {9 t - ADDR_93BA: TXA ;X-->A7 L! g5 n2 H" R: t1 ]! `) |" _
- ADDR_93BB: CLC ;清除进位标志' S& e, w3 K0 }0 u# T: W+ V
- ADDR_93BC: ADC $0010 ;加上地址$10的值7 W* E$ C5 T2 i0 k- b
- ADDR_93BE: TAX ;A-->X+ \3 O9 M+ k, o: ~, e
- ADDR_93BF: INY ;设置Y++4 \7 a8 [" I: \0 o' j
- ADDR_93C0: JMP ADDR_9399 ;跳转到ADDR_9399" k2 B1 }' T q& Q
- ADDR_93C3: DEC $0000 ;地址$00递减- v& c" O" a2 }* B% t/ S
- ADDR_93C5: BPL ADDR_937A ;N==0,结果为正数则跳回$100-$B3=4D字节
- x+ R* p" }/ e$ l* u - ADDR_93C7: STX $0004 ;送入地址$04
|9 o5 X; B1 k6 q1 M9 Z - ADDR_93C9: RTS ;程序转回-----------------------------
1 M) }, I; d8 Q% e. O# a - + M* ?0 {7 |0 v/ _! F |
- .ORG $FB60, d* X6 _- k) j W: `2 J
- ADDR_93CA:
' `6 E) G0 \- _- ^( @ - .BYTE $0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A ;生命图块号, O% q* _: D" |
- .BYTE $02,$04,$06,$08,$FE,$FE,$FE,$FE ;GAME OVER图块号) A; \! [) F* n% t' V5 k
- ADDR_93D2:! S' j$ L( X. G2 z8 Q6 w1 x& G; R
- .BYTE $14,$1C,$28,$34,$40,$4C,$58,$64 ;生命图块坐标
3 F9 j/ ~9 W# J# `, y4 w - .BYTE $10,$1C,$28,$34,$40,$4C,$58,$64 ;GAME OVER图块坐标
2 e$ G8 q0 c# @# I/ a" u V - 0 K: l1 W& y7 j2 i1 t/ O% N8 g
-
4 n4 L) l. E! |/ G2 t# f% R5 T3 F - .ORG $FB80
6 k% w/ f9 ?: h4 ^1 F2 J( ?6 } -
2 F: P v- w" ]5 A- {9 | - WEAPON:: m8 M' S6 N; k# S0 I0 [7 f
- STA $0203,X ;送入横坐标地址8 v# u G7 Y4 ~, e. F% ?7 \
- PHP2 k/ j2 ^! w0 l. ^
- PHA
6 J5 d* [6 o) a( y. d& j - TYA
# `; G7 [2 q V+ i2 y, K0 [ - PHA
; _( o, @3 {2 y9 n2 E' X8 \ - CPY #$00+ e8 `9 h- m, t5 O4 G: C0 ~- R( S
- BNE LB
( `4 R, q4 o' V! j. o# W - JSR S_WRITE ;第一个精灵* ]4 `* J' b3 i( s! V
- LB:, C% h8 \) d6 h. `. H
- CPY #$01' }' K7 t3 X1 x/ U1 r" ~3 M+ @
- BNE RE
0 t: W# M" v6 U4 ]% R - JSR D_WRITE ;第二个精灵( V: v! X7 h$ f7 X$ X# G
- RE:4 [( m' A7 d5 X t2 U4 [
- PLA
' M e5 h; y2 c( P% k) B! [ - TAY
( H* S, Z) Y7 E6 ~- i - PLA
8 f! j( w$ x+ i; s' q - PLP* U6 ]6 G. H- | C4 j+ H
- RTS) S" h8 `; W& F6 m; g; P6 K- `2 s! I
- , V3 W9 X1 }6 i
- S_WRITE:
( m W4 E8 g+ E! ?, Z% m - PHA
! ]$ R1 S- y1 ~( F - TYA' S8 X; i, F) W6 ^5 u* }
- PHA( b9 K3 \$ J: B L9 h7 B$ f
- S_CMP:
7 @$ N! i& B' Y9 h8 } - LDA $00& w _5 _; R' B! d
- TAY
; w; G' K: h. O5 t - LDA $AA,Y ;读取武器值/ r' Y$ k1 ?3 ?2 d; d
- AND #$10
8 c& J3 E, o, u3 Y - BNE S_WEAPON8 L! P5 H! x0 {6 j& Z- n
- M_WEAPON: ;普通状态 K7 v! ]! f/ k& K4 {! M+ U t
- LDA #$26. X! c2 \' c) T6 g
- STA $0201,X) {' F( v6 ?; U; h# I! Y, ~, p
- BNE RETURN
' J w$ I5 m1 ]; `- `" @ - S_WEAPON: ;加速状态
# S# e3 [" ^) M( N% u# Z+ Q5 T - LDA #$1C
! D- D/ U( A; r5 {/ |2 L/ _) `! x$ } - STA $0201,X1 ?0 Y, c/ d M4 @
-
" B% b4 ~/ h) F/ ?' I& X5 H& U -
9 _( T! j* k& e- g: b - RETURN:
. a7 \1 K$ T/ k) Q4 B - PLA
+ ]8 f5 R8 i, ~% |) D0 h) @ - TAY
; x G6 `; b6 u5 X9 l% | - PLA h u8 J8 v' T! A
- RTS: t( G5 B9 j$ W, W- Q/ F
-
4 v. {( c: q9 n) C0 W - - S; g! _$ Z4 u: d- C
- D_WRITE:
0 G( I9 a! c! L, V - PHA' ^/ b, b3 K3 m+ H0 k- Y
- TYA" F: v# A, a0 ^. ~
- PHA. E$ C+ s1 B) ?) K! w8 l1 X; n
- WEAA:
. _! C; C' I+ V4 A7 i' r - LDY $00
, s- a8 z& n* L+ g$ f: R - LDA $AA,Y& e. P$ U1 v7 m* m i7 Q
- AND #$0F( @5 p2 p2 N8 h% Q% D# T7 v8 y
- TAY
4 A, i' f2 p. E3 K. i& w - LDA DATA,Y: ]) Z1 }. R4 \% Z
- STA $0201,X! _9 u8 a# U4 j" q
-
$ B$ e- w+ w+ ~! T - PLA+ d# @. M, U1 b2 P$ v6 x* W$ W
- TAY$ V2 h3 a, Q6 { t- l" M/ i
- PLA
) ]. F9 `& n9 d3 b7 H/ ]3 ?# | - RTS
+ A0 Z0 [! w& ~5 ~1 k -
' i6 z ]5 I! q' d/ n - DATA: ;武器种类图块
" ]. T8 m% z& ? - .BYTE $24,$26,$20,$1C,$22
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|