|
|
本帖最后由 yandagui 于 2017-3-18 16:17 编辑 % Y' |+ A1 T* q8 A+ _( I/ w- B
' G, P2 I/ F( ?' L+ C2 h
2017.3.13
: k6 `& J6 _ ?! w4 | 5 s! q0 b8 ^! g- @- S1 D4 B* }

" q: \1 c- ?5 [0 t7 I2 B3 l , Q, }% {; ?: }' ?% z9 A5 b" W
- .ORG $936E ;CONTRA(J)" v: K7 R$ p' I! N
- LDA $25$ X4 t2 u' @8 ]) }9 A" l1 g4 w& ^
- BEQ ADDR_93C91 n4 ]: n1 V4 G: Y
- ADDR_936E: LDA $0022 ;读取地址$22数据到累加器A($22==0,单人模式,$22==01双人模式)
, G3 o5 \9 g: H3 B% `- S8 u) j* @( X - ADDR_9370: LDY $001C ;读取地址$1C数据到寄存器Y
9 l- K& w8 [& b: e. X - ADDR_9372: BEQ ADDR_9376 ;Z==1?如果结果为零则跳过$2字节& L! r2 O6 U) R
- ADDR_9374: LDA #$01 ;读取地址$01数据到累加器A
# G1 Y' p5 w5 v% N( h - ADDR_9376: STA $0000 ;将累加器数值送到地址$00
* I2 X' K' U$ @0 E. G. Z - ADDR_9378: LDX $0004 ;读取地址$04数据到寄存器X
9 o& ^0 X5 h$ J; o! w - ADDR_937A: LDY #$08 ;读取立即数$04到寄存器Y
1 M" \4 A( o6 J- y4 V3 b9 I - ADDR_937C: LDA $001C ;读取地址$1C数据到累加器A' D6 Q1 f) T! ]) J2 y7 |
- ADDR_937E: BNE ADDR_9395 ;Z==0?如果结果不为零则跳过$15字节. _# M& o; @5 n; ?3 Q
- ADDR_9380: LDY $0000 ;读取地址$00数据到寄存器Y
- I! d, t8 L" U5 N: H9 X - ADDR_9382: LDA $0038,Y ;读取地址$38,Y数据到累加器A($38==01,P1结束,$39==01,P2结束)
$ V8 x1 |; J7 w+ s9 R7 y5 E6 g - ADDR_9385: LDY #$08 ;读取立即数$04到寄存器Y! c7 d6 f4 J# Y- h1 N% T0 G9 {( P
- ADDR_9387: LSR ;逻辑右移! y; a# @0 r+ n; H6 k
- ADDR_9388: BCS ADDR_9395 ;C==1,有借位则跳过$B字节9 W) }% `0 a+ |
- ADDR_938A: LDY $0000 ;设置Y==#00
% } Z! l5 f* k. x b - ADDR_938C: LDA $0032,Y ;读取地址$32,Y数据到累加器A y: n3 n3 \( z1 x' O
- CLC
/ N1 p. Z1 m, \5 A, K+ P - ADC #$02
3 V+ r$ ?- n1 T% o: D+ w) ? - ADDR_938F: LDY #$00 ;设置寄存器Y为$00
+ e& q0 d7 ], I4 C3 y - ADDR_9391: CMP #$08 ;比较Y==$04?
. C5 J$ ?# Y$ Y9 V$ [, @ - ADDR_9393: BCC ADDR_9397 ;C==0,有借位则跳过$2字节
( D0 ` s' D) ]: H' F - ADDR_9395: LDA #$08 ;读取地址$04数据到累加器A
. V# V! M( k4 ]9 U - ADDR_9397: STA $0001 ;送入地址$01
: O. n/ s+ t; Z - ADDR_9399: DEC $0001 ;地址$01递减
8 n2 Z5 u5 N; B- P# A) u3 U2 i - ADDR_939B: BMI ADDR_93C3 ;N==1,结果为负则跳过$26字节5 U$ J) {6 m x7 ^/ x: D
- ADDR_939D: LDA #$08 ;设置纵坐标数值; g6 Q0 M H1 ^- h$ W5 a6 V! O
- ADDR_939F: STA $0200,X ;送入纵坐标地址% K( i& V* g5 e$ Q6 i) }2 L) q4 T' B
- ADDR_93A2: LDA ADDR_93CA,Y ;读取图快号数据" V9 n2 M; f j( o2 X( y
- ADDR_93A5: STA $0201,X ;送入图快号地址% K# W. |( z& q, A3 W8 C6 p
- ADDR_93A8: LDA $0000 ;读取属性值数据
' T+ v2 Y L* D( f. _8 D- O - ADDR_93AA: STA $0202,X ;送入属性值地址
% L/ k! _8 H0 \' c9 c - ADDR_93AD: LSR ;逻辑右移+ N1 M0 k" k1 O9 C* ?
- ADDR_93AE: LDA ADDR_93D2,Y ;读取横坐标数值
4 t* j X* E4 I* q - ADDR_93B1: BCC ADDR_93B5 ;C==0,有借位则跳过$2字节( Z" m- p; E/ [
- PHA* g6 j: k3 [: @8 w& h
- TYA
" ^. `6 C0 N! ]6 H" P* Q. B" ` - PHA# O2 a5 l9 S: Z
- LDA #$D4
7 F! a0 s% ]( L: U* L! O* E6 I - STA $0200,X
) Z1 G$ V( n8 b5 O9 M( f - PLA
+ `2 e2 F s2 ~% }: p# U/ f3 F - TAY
% r+ i& Z! N3 D. L. c0 I: @; r: J - PLA+ X1 M3 p2 L: O" J
- ADDR_93B5: JSR WEAPON
' [( n$ E6 K U( J+ _ - ADDR_93B8: DEC $0007 ;地址$C7递减) \+ m: b u1 Y& C6 k6 Z
- ADDR_93BA: TXA ;X-->A9 G- T2 a2 k9 ?. z4 Z# `' J
- ADDR_93BB: CLC ;清除进位标志
* C* t3 \# o; @# s. i - ADDR_93BC: ADC $0010 ;加上地址$10的值# w- E# N$ G# m
- ADDR_93BE: TAX ;A-->X; }2 @* u7 C! c
- ADDR_93BF: INY ;设置Y++. M* \- H# o' O! y+ a
- ADDR_93C0: JMP ADDR_9399 ;跳转到ADDR_9399
8 b6 k' B. N- t% k3 s - ADDR_93C3: DEC $0000 ;地址$00递减
; `/ X7 P) v9 {" w* n+ z* x, z+ j - ADDR_93C5: BPL ADDR_937A ;N==0,结果为正数则跳回$100-$B3=4D字节
3 c4 k; ^! o# H* E" ? - ADDR_93C7: STX $0004 ;送入地址$04
; n6 Y1 @6 V6 Z2 ]4 H - ADDR_93C9: RTS ;程序转回----------------------------- j$ I3 Q3 i! X* y0 {" R+ e6 ^8 L
0 ?4 m* I4 F& K; E# S: v- .ORG $FB607 L+ p% }- X9 I3 m8 [( a
- ADDR_93CA:
% N: @$ Z+ y q$ z$ c& B p - .BYTE $0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A ;生命图块号
6 J) o, e7 ~1 Y0 _ - .BYTE $02,$04,$06,$08,$FE,$FE,$FE,$FE ;GAME OVER图块号) A7 ^5 r L0 `1 a% Z5 S
- ADDR_93D2:8 r4 |) { R! F3 `
- .BYTE $14,$1C,$28,$34,$40,$4C,$58,$64 ;生命图块坐标
s2 a t/ S" J8 t - .BYTE $10,$1C,$28,$34,$40,$4C,$58,$64 ;GAME OVER图块坐标
' m3 j/ ~9 I" T( o( K' m -
# B2 U' A" C, u" s0 M. \7 Y4 N, ~ -
* w! S9 _& S: u0 U7 n) [ - .ORG $FB80) g7 y( X& d& Y% W; T, p
-
. u' O, A" Q7 r, j; L- J% @ - WEAPON:
4 Z9 X2 g3 H2 W c6 |5 y& Y. D& _ - STA $0203,X ;送入横坐标地址
- u4 o6 b% V, E5 N7 Y8 F5 c - PHP
' @# {6 `- l% A/ M: l - PHA" u- n5 t4 J B3 N( R( o' O- I
- TYA
' n% E0 [1 ~& I8 Y/ Z/ j( | - PHA; s$ D& t9 F6 w) Q4 s
- CPY #$00: E5 h6 P+ Z/ s1 _' e- v" n
- BNE LB! ^! n8 |/ z" h9 l& I$ v7 q
- JSR S_WRITE ;第一个精灵
, ^: I7 S$ A& I) O - LB:
" o7 g/ x+ P, S8 [* d' A( G - CPY #$01
& a2 _: S9 q- Y b% w9 ]. Q - BNE RE
$ f. W3 w% g+ V - JSR D_WRITE ;第二个精灵
# b% N( [ B. W6 L4 {; T9 o5 h - RE:# L' Y) j/ z, L
- PLA* H+ k! s3 s/ G+ e7 Q; a9 v# [
- TAY1 y8 \) r1 V' j5 l0 x
- PLA
& f5 P1 ~6 c5 l5 N0 k - PLP
6 S6 {2 p( T8 q6 H" t$ M" J - RTS
/ Z3 q' w" q8 o: _8 w$ ]" l: T9 j - + R x3 R3 V0 |
- S_WRITE:
' l4 U/ |, H. v7 ^ - PHA7 n. S- D+ \3 ~$ y' @4 g7 Q
- TYA
, ]. x! M" E$ P2 f4 E8 I, O5 l' h" z - PHA- g6 Y k0 c; F6 c( l9 I
- S_CMP:
8 N/ U% @6 n$ _) A6 Q8 n! E8 j - LDA $00
* ]$ E* X6 C$ I6 ]8 E - TAY
0 X+ I9 Q5 E j - LDA $AA,Y ;读取武器值! z7 y2 ~7 P: v W4 Q1 z) I: M
- AND #$10
$ [% z1 S3 K3 _5 b9 W: V# z - BNE S_WEAPON
! T+ ^# @$ @9 ]0 Y2 @) K, ~ - M_WEAPON: ;普通状态( i r! k( S5 h0 P- I1 F( D
- LDA #$26( x, _# U& L6 [+ }
- STA $0201,X' b' n& p: i% D3 n5 f9 b. Z
- BNE RETURN+ P# O/ h- h2 C, {, t5 [9 g+ J
- S_WEAPON: ;加速状态
9 T+ v* o- b& R: r - LDA #$1C$ ?8 m" j. V5 ~7 n* N( {' Y; X1 K
- STA $0201,X
3 b# I" `" K3 R! `7 \/ | -
7 y4 N5 w, n1 R, z2 C( d5 ` -
' X3 G; q' T7 }% o: _. b - RETURN:
$ I' U9 `6 `! q4 N4 y - PLA
" O% M0 [" ?. A) f - TAY
2 c1 ?* n$ C( _0 I V& S5 o* F - PLA7 |: \8 O y; h# d4 F
- RTS
g- [2 d5 m; B M! a6 G -
* s e3 f5 X$ [+ T
) k6 ~# \4 z: b0 X# W8 X$ B- D_WRITE:
4 @7 J6 d+ q9 ]; M2 j8 a* V! o - PHA7 `* `) ~' Z: [
- TYA
3 \/ t+ |5 _, a$ \5 A" a - PHA: q* ~+ a( h$ b7 Q
- WEAA:
0 v5 S$ V2 E( B1 r - LDY $00
# i; H9 @ S9 H! Y - LDA $AA,Y
( S. j( j9 E I - AND #$0F0 R; T. N' {2 _. \
- TAY
1 v& W& }! r' s/ B - LDA DATA,Y
|+ ]0 b( h; j: Z2 _; {; t - STA $0201,X6 x( ]0 }9 ~6 `9 p! R
- 4 r: l6 s. ?: P/ B- O) @
- PLA8 [0 P4 e& {4 I$ ^
- TAY
W0 X9 V$ M2 x" h2 S - PLA# b1 e* i/ j5 Q6 Z' y# N3 c `( }3 Q
- RTS
j5 N0 E2 S s9 N- W - 9 z0 b( b% `- i: D# U0 t H
- DATA: ;武器种类图块
0 C' k7 W! F. ]4 z( a! P" I1 E* ] - .BYTE $24,$26,$20,$1C,$22
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|