|
|
本帖最后由 yandagui 于 2017-3-18 16:17 编辑 . D! T1 I% ?& [
H' |* k" P5 Y5 @2017.3.13
+ _6 b! R0 i, G) B 9 U3 v& D# u- v

0 G+ ~' M3 G* k, r. J r
- Q, _3 {- V9 I! \7 X, z- .ORG $936E ;CONTRA(J)* l( ]+ q0 P. q6 \
- LDA $25# E; f: o5 n( k Y% W a( P
- BEQ ADDR_93C9
6 ~3 `5 W1 Y) [ - ADDR_936E: LDA $0022 ;读取地址$22数据到累加器A($22==0,单人模式,$22==01双人模式)* M% H, s9 z$ E2 ~1 U! F
- ADDR_9370: LDY $001C ;读取地址$1C数据到寄存器Y) A) O6 R3 H J' C
- ADDR_9372: BEQ ADDR_9376 ;Z==1?如果结果为零则跳过$2字节
8 J( e4 }9 C/ M" E' e - ADDR_9374: LDA #$01 ;读取地址$01数据到累加器A
3 x* \& Q) N- a! P - ADDR_9376: STA $0000 ;将累加器数值送到地址$00
$ Z' z" f5 y; ?1 a - ADDR_9378: LDX $0004 ;读取地址$04数据到寄存器X
- ~7 y* q) k" C6 ^' e - ADDR_937A: LDY #$08 ;读取立即数$04到寄存器Y
" q. f1 e, J2 r- l# |, F3 ?; `5 b. Y h - ADDR_937C: LDA $001C ;读取地址$1C数据到累加器A/ \" `5 X. O, r
- ADDR_937E: BNE ADDR_9395 ;Z==0?如果结果不为零则跳过$15字节+ c) a9 z5 B0 W& i
- ADDR_9380: LDY $0000 ;读取地址$00数据到寄存器Y
0 P$ R' [; ?' M/ U7 k! Z2 n - ADDR_9382: LDA $0038,Y ;读取地址$38,Y数据到累加器A($38==01,P1结束,$39==01,P2结束)8 J( U- F+ u) q3 U' c0 g' k
- ADDR_9385: LDY #$08 ;读取立即数$04到寄存器Y
% ^: `. e* ?+ k - ADDR_9387: LSR ;逻辑右移
5 C) I/ x0 `4 V! u/ w4 ? - ADDR_9388: BCS ADDR_9395 ;C==1,有借位则跳过$B字节/ f4 I) }: u* z; H! v
- ADDR_938A: LDY $0000 ;设置Y==#00( X% d$ U8 m; L8 l7 X4 W
- ADDR_938C: LDA $0032,Y ;读取地址$32,Y数据到累加器A; y8 c% f6 v u d" c( |
- CLC
* u4 g2 w4 G! |! L3 l! z - ADC #$029 {- s7 k3 m# t- I1 @2 Z! P
- ADDR_938F: LDY #$00 ;设置寄存器Y为$007 I) Z- ?6 G1 p& v" f, z
- ADDR_9391: CMP #$08 ;比较Y==$04?8 Y9 r' e; N3 F+ w
- ADDR_9393: BCC ADDR_9397 ;C==0,有借位则跳过$2字节
" b# E: a0 n( `+ E+ z' i2 d/ _ - ADDR_9395: LDA #$08 ;读取地址$04数据到累加器A2 A, q% {. y- n2 ^2 Q3 k3 Q. ~6 `
- ADDR_9397: STA $0001 ;送入地址$01
8 J: S3 Z' ]' b& ?4 } - ADDR_9399: DEC $0001 ;地址$01递减
2 g* |: G2 O6 _9 M3 n - ADDR_939B: BMI ADDR_93C3 ;N==1,结果为负则跳过$26字节; F) Z: g" H/ i7 a; P- T/ u
- ADDR_939D: LDA #$08 ;设置纵坐标数值: d, i k8 H0 S! Q& i
- ADDR_939F: STA $0200,X ;送入纵坐标地址1 @' k: u1 s/ u" j# E5 F' z
- ADDR_93A2: LDA ADDR_93CA,Y ;读取图快号数据
* m+ b6 _6 m& S3 J/ `5 E5 \ - ADDR_93A5: STA $0201,X ;送入图快号地址
) T2 d' t4 Q$ } - ADDR_93A8: LDA $0000 ;读取属性值数据
0 X) F0 L9 W$ G1 t+ {" B& R - ADDR_93AA: STA $0202,X ;送入属性值地址
! |5 F# f6 b* Q5 e2 d* [2 S! l - ADDR_93AD: LSR ;逻辑右移) D# j% h7 Q3 \, C( _) }4 N# ^6 o: C
- ADDR_93AE: LDA ADDR_93D2,Y ;读取横坐标数值' R9 \; [% p. E* {. R
- ADDR_93B1: BCC ADDR_93B5 ;C==0,有借位则跳过$2字节; P! y8 u0 Y7 e! L
- PHA
2 r d- ]- v( f& @ - TYA$ D+ M) q% f3 A, q' d; S" W
- PHA5 U( _% Y6 f' c
- LDA #$D4- s+ K4 j G; L+ @* O3 x. C; H
- STA $0200,X
7 ^9 }$ Z: O: M - PLA
c, U9 A1 h: A - TAY/ L9 k0 c3 g0 x3 U& P% d N
- PLA! {7 g' i8 X8 N5 W' E9 R' K: @; H
- ADDR_93B5: JSR WEAPON
/ F% [. Q4 { ]5 y! k# k - ADDR_93B8: DEC $0007 ;地址$C7递减
- P+ h7 w1 j' S" V" l4 b# L [ - ADDR_93BA: TXA ;X-->A
. i2 u! z8 S4 n - ADDR_93BB: CLC ;清除进位标志
& [: ]$ I8 A- C& a4 r; Y4 I4 q - ADDR_93BC: ADC $0010 ;加上地址$10的值 ~1 n/ J$ ^! n: l$ c
- ADDR_93BE: TAX ;A-->X
7 l* ?# S! D3 }4 [ - ADDR_93BF: INY ;设置Y++
; Q; E) @* ~% ^ - ADDR_93C0: JMP ADDR_9399 ;跳转到ADDR_9399
$ G! M# `5 H" V - ADDR_93C3: DEC $0000 ;地址$00递减& B/ f @1 R4 D
- ADDR_93C5: BPL ADDR_937A ;N==0,结果为正数则跳回$100-$B3=4D字节
- d& F' L }* {7 { - ADDR_93C7: STX $0004 ;送入地址$04
- c0 t9 I$ `# A0 X) Y8 v - ADDR_93C9: RTS ;程序转回-----------------------------
$ ]6 E( g; w0 p( e - ( M- n; M3 l0 t
- .ORG $FB60
" G e/ k, x0 d - ADDR_93CA:
1 J3 o X B& k/ o6 _ - .BYTE $0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A ;生命图块号
3 ~- `/ Y P3 h5 J- x - .BYTE $02,$04,$06,$08,$FE,$FE,$FE,$FE ;GAME OVER图块号
V$ Y z$ K8 h: E. F f1 g# J - ADDR_93D2:
8 V7 h m4 y8 K" a& x: Z - .BYTE $14,$1C,$28,$34,$40,$4C,$58,$64 ;生命图块坐标+ c9 U! U# Z5 l4 J ?
- .BYTE $10,$1C,$28,$34,$40,$4C,$58,$64 ;GAME OVER图块坐标 _8 R y6 i5 ~( b9 a5 k7 v4 i7 o
-
: c M& x7 j6 o$ Z, {- n -
2 M$ Y8 \1 O* S0 `$ z d; o* i6 b - .ORG $FB80
$ p$ g v8 X; Q3 F% h - , A0 l% T" ~" Y1 v5 s$ D
- WEAPON:& Z! a( g* i8 `4 t# w. a" B
- STA $0203,X ;送入横坐标地址8 |) D. W5 W4 E2 a) [4 J" B0 ? Y) f
- PHP
0 s1 J; m, s5 y5 I6 r - PHA
( L! ^8 e" @$ h q, I - TYA
# Y6 ~9 p# ?6 A' w - PHA; [# a, }6 |& b+ l/ @
- CPY #$00
! p/ ^" M. y7 w- S# B! k - BNE LB
7 d4 h9 I( A- l$ J/ M( x9 G1 d - JSR S_WRITE ;第一个精灵$ s- j( k* |; w* B3 v5 L
- LB:
8 B! ^& \! Y9 y( O; F - CPY #$01
6 G% `2 b& }' C/ d- C4 b$ ^ - BNE RE4 U" i# e$ q$ K8 u0 Q
- JSR D_WRITE ;第二个精灵2 d. ^+ i+ S" W5 y2 _# I
- RE:
8 I! U$ k# [! t& s4 i' A) c- } - PLA
) r, T, h& n1 e4 n( W% k - TAY
3 b2 F. g2 ^6 z) q/ ] - PLA1 x% i N* Y' b! ?3 y5 k0 M* K
- PLP$ e: I! X/ \+ N' X4 @3 P
- RTS
0 {3 i: z7 z5 z, I8 ]1 i' i -
; L. O0 B O( A, F: n7 @' D. ^ V - S_WRITE:
; W Q' \( H# y' T% | - PHA
B4 P. W. k$ d5 u8 r: p" n - TYA
4 }+ G; m, ^: [6 [1 m( x - PHA
) Y2 s2 i. D: z$ H* f7 `4 r1 M - S_CMP:8 s' |2 \: i. _5 }
- LDA $00/ B' I4 C' `/ z w; j
- TAY% m: V2 e1 _0 q4 t: K
- LDA $AA,Y ;读取武器值- L; s& D+ v& {
- AND #$10
: k4 T, e1 F: [' z# I - BNE S_WEAPON) S N; j6 L8 T
- M_WEAPON: ;普通状态
+ V( U# {5 V+ S* u$ W3 o - LDA #$26
' a: m( V* U0 m' N3 Q. ~ - STA $0201,X. `- Q/ F8 \4 U9 _; w! Z! w
- BNE RETURN
! b' D6 Q2 v1 A9 V' z. z - S_WEAPON: ;加速状态
* ^* E7 p$ r/ a* h( M& S) O - LDA #$1C- a d" P* H( c! U5 u/ [$ l$ ~
- STA $0201,X
9 X1 a: W0 n: o -
& _3 U2 S1 ?, ` -
! q0 Q, r, T% @; }0 o- s - RETURN:: U% L2 ?! i, Y7 N7 F* X
- PLA4 G2 S9 p+ p& q* Q( d: n
- TAY
% l+ O) @! S8 W- v$ q - PLA
/ K [* J8 @/ C0 p - RTS; m* u7 a8 s2 c# g4 `4 |
-
6 m$ @" u% b, s - $ a0 x8 D7 K) J c4 q: i
- D_WRITE:
5 ^6 V8 X% ~3 ]. J8 W - PHA5 Z5 Z2 i9 @7 }* @+ r! k; c, L' A
- TYA" m/ ]3 l6 F( ^3 H6 y" N/ d$ ^) n
- PHA
+ B+ q" x) D/ M0 `8 F" W - WEAA:( \# l6 M; y& @
- LDY $00% J. X" O" b1 d) y; `. ?" A4 W
- LDA $AA,Y
1 B5 ?+ W# H. v - AND #$0F
% ^- `5 Q; D* I% D: N - TAY
8 M1 s, j3 j" k- C" a - LDA DATA,Y) r3 z1 w" b" t. V: h
- STA $0201,X% d6 |( k$ q$ }" s! k
- # E, d& G3 [# f t. c) X
- PLA
: C* M$ M& a1 W$ F% T m" S) ? - TAY
/ V9 ]- _1 K8 _6 h% _ - PLA
/ W! O+ r& y' B2 m; M: r - RTS
, z7 D2 K8 q: r! b/ ] -
' j) Q: I! o. D: |7 V - DATA: ;武器种类图块3 o! ]( o \' M' d
- .BYTE $24,$26,$20,$1C,$22
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|