|
本帖最后由 yandagui 于 2017-3-18 16:17 编辑
/ ]3 r5 ^; z2 x$ n# ~. `# y( @) d; @2 c" f) ]
2017.3.13' {! m" ~4 B [* e" @$ Q
7 Z2 J$ }; {% F9 J% p$ R. q

: C$ |- y U: Y0 `
4 b. [ `5 j6 ~3 f, E" C- .ORG $936E ;CONTRA(J)* R2 y$ ~& i3 I. p$ A) H5 x! P7 ?
- LDA $25
" {+ L6 R) d( E2 z& [ - BEQ ADDR_93C9
9 S) M& H! \: Z# k0 P3 j l - ADDR_936E: LDA $0022 ;读取地址$22数据到累加器A($22==0,单人模式,$22==01双人模式)! ~+ `9 v7 n- B! b9 X( p6 _# O6 C
- ADDR_9370: LDY $001C ;读取地址$1C数据到寄存器Y" }! w3 P* ^+ a# I& b, I' e: k+ k1 N
- ADDR_9372: BEQ ADDR_9376 ;Z==1?如果结果为零则跳过$2字节
$ Z: @( ] p) p- M9 I# h - ADDR_9374: LDA #$01 ;读取地址$01数据到累加器A+ P$ D5 D0 `2 e' l8 d
- ADDR_9376: STA $0000 ;将累加器数值送到地址$00) F: ^7 b6 S9 C# ~- o) V5 N( D
- ADDR_9378: LDX $0004 ;读取地址$04数据到寄存器X$ z# ^1 d2 X" {1 [/ x1 \# p( S( ?
- ADDR_937A: LDY #$08 ;读取立即数$04到寄存器Y$ i3 T* r* r* a8 i9 D- F5 }( `' x
- ADDR_937C: LDA $001C ;读取地址$1C数据到累加器A/ c& _7 e1 m" N& o2 |/ d4 x
- ADDR_937E: BNE ADDR_9395 ;Z==0?如果结果不为零则跳过$15字节2 X( s2 E/ e0 `8 O. y: s
- ADDR_9380: LDY $0000 ;读取地址$00数据到寄存器Y% C+ J2 v' H* M" A6 V! X% i6 b
- ADDR_9382: LDA $0038,Y ;读取地址$38,Y数据到累加器A($38==01,P1结束,$39==01,P2结束), _) y) q+ j: Y3 T# R
- ADDR_9385: LDY #$08 ;读取立即数$04到寄存器Y! {1 I& {& V. E& |- z. r) |1 N0 _
- ADDR_9387: LSR ;逻辑右移4 M# Q% [, z2 t1 C. O d% G
- ADDR_9388: BCS ADDR_9395 ;C==1,有借位则跳过$B字节
3 w+ p) t1 |" ~& O. Y$ g - ADDR_938A: LDY $0000 ;设置Y==#00, f- k$ V$ q% x( M3 f
- ADDR_938C: LDA $0032,Y ;读取地址$32,Y数据到累加器A/ W& D8 X6 d3 E5 n
- CLC
+ X2 o" x( K# T3 f g) N- m& ~$ Y - ADC #$023 Z. P, D- \* P, P5 }
- ADDR_938F: LDY #$00 ;设置寄存器Y为$00
& C1 r2 h- f+ G! R0 M - ADDR_9391: CMP #$08 ;比较Y==$04?
. {2 B6 o. h8 F4 X) i - ADDR_9393: BCC ADDR_9397 ;C==0,有借位则跳过$2字节
: x8 ] T% G5 s% a* w - ADDR_9395: LDA #$08 ;读取地址$04数据到累加器A) o/ n; r1 d0 N
- ADDR_9397: STA $0001 ;送入地址$01
/ B5 F6 y" D6 C- N4 y8 U - ADDR_9399: DEC $0001 ;地址$01递减" g& {3 U8 s6 {3 x! m$ |
- ADDR_939B: BMI ADDR_93C3 ;N==1,结果为负则跳过$26字节! }/ b& @ c6 @2 Z) L& d
- ADDR_939D: LDA #$08 ;设置纵坐标数值
W9 D; B0 X& U3 e - ADDR_939F: STA $0200,X ;送入纵坐标地址! x' c6 S6 w: f6 R4 P
- ADDR_93A2: LDA ADDR_93CA,Y ;读取图快号数据
5 q7 l& C1 X7 @6 E7 n5 Z - ADDR_93A5: STA $0201,X ;送入图快号地址- @) m4 P4 ~& d' `& L( b
- ADDR_93A8: LDA $0000 ;读取属性值数据
/ Q# f: p8 H4 i - ADDR_93AA: STA $0202,X ;送入属性值地址
% A6 D6 g/ C+ V - ADDR_93AD: LSR ;逻辑右移% V! V1 ~) _1 Y: B
- ADDR_93AE: LDA ADDR_93D2,Y ;读取横坐标数值
j6 o- V& p- R7 N) K: Y - ADDR_93B1: BCC ADDR_93B5 ;C==0,有借位则跳过$2字节
, R# H, S: T; a! |2 {# k - PHA: W; a, ?0 a Q
- TYA
- M' Z5 I. ^7 u - PHA
' q# U- P3 o' u8 \+ v - LDA #$D4/ J- Q9 w+ K+ J
- STA $0200,X# g8 I- p4 S2 d# ]2 }$ B7 B& ?
- PLA
+ J2 M" D3 {* M+ b2 k - TAY
: q4 H5 R' ?$ z8 m' p! P7 G - PLA
X: ~: n" @$ z+ B' Q8 M - ADDR_93B5: JSR WEAPON
2 M+ B$ L3 f' y* K, J# S! S - ADDR_93B8: DEC $0007 ;地址$C7递减
. j6 U6 I4 Y8 d1 m2 w* \ - ADDR_93BA: TXA ;X-->A, X+ ^5 B% O( N
- ADDR_93BB: CLC ;清除进位标志# B: u- i6 B3 I5 q0 p) H" x
- ADDR_93BC: ADC $0010 ;加上地址$10的值$ ]/ ~4 v3 Y2 l
- ADDR_93BE: TAX ;A-->X
\! D! v' c; x) a5 V - ADDR_93BF: INY ;设置Y++
7 S/ q* k6 T- V9 t; A5 _; H - ADDR_93C0: JMP ADDR_9399 ;跳转到ADDR_9399( }3 w# T% ]# g( t O
- ADDR_93C3: DEC $0000 ;地址$00递减
( ], j6 {8 ~& o3 n. s3 W- v - ADDR_93C5: BPL ADDR_937A ;N==0,结果为正数则跳回$100-$B3=4D字节
% n) ^0 \2 V* w7 v: M% } - ADDR_93C7: STX $0004 ;送入地址$04# V8 F9 J) J I8 r0 i
- ADDR_93C9: RTS ;程序转回-----------------------------; \* z+ `# Q$ ?) ?( j0 a
9 L" L5 u& r# e8 m: O- .ORG $FB60
2 a7 r; G3 ^& S% k - ADDR_93CA:% ]- r d% u! w# ~1 @% R0 ]; b
- .BYTE $0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A ;生命图块号" m5 k, f9 B, E3 b
- .BYTE $02,$04,$06,$08,$FE,$FE,$FE,$FE ;GAME OVER图块号" l* w) T; y1 J) i5 W' V& j
- ADDR_93D2:
- F8 f2 f: A4 R- P6 p- n - .BYTE $14,$1C,$28,$34,$40,$4C,$58,$64 ;生命图块坐标
8 I1 {5 G, H; @ - .BYTE $10,$1C,$28,$34,$40,$4C,$58,$64 ;GAME OVER图块坐标9 y/ A# [3 U2 W3 }5 M( R
- + f9 t% x- n, c" w
- : C8 ^7 @1 J8 K1 ~: V& v
- .ORG $FB80
$ C# S& k4 O5 Y - , Z; W% }% f$ {" B
- WEAPON:
* h9 S+ M4 Y) r; |: {- \& t7 j - STA $0203,X ;送入横坐标地址
$ m! v+ l, n! m$ k! U - PHP( p- }- G0 }, v; E% j) @0 N
- PHA
0 d+ o! O4 w" K: z. @2 D4 v3 [0 w - TYA# A$ S9 B# F: i J) Q
- PHA
' y+ @& g+ S0 s F7 w, C - CPY #$00' q* G- y/ A0 J* n: ^4 l6 [
- BNE LB
7 a9 A- a; I8 I+ Q. c% o - JSR S_WRITE ;第一个精灵; `8 y9 S, H$ \ O ]$ o
- LB:
7 B0 k. i7 D, ^! W2 r; z# U( U; B% a - CPY #$012 V- t' p# d' S- j
- BNE RE
8 m. Z0 @3 L* Q" M" F% y# h - JSR D_WRITE ;第二个精灵$ M: j$ g9 Z6 n# f5 @% z. e
- RE:5 m1 A$ ?: N: \# |
- PLA
; w7 F" N$ f$ w' K' n. ?+ X - TAY& N, L" J, H Z) y6 Y. L4 w& m$ N
- PLA
" Y* v: O# ?1 T4 [8 M3 m2 n9 D - PLP7 [& t9 L* ?+ O
- RTS& M' c; ?3 \$ }4 {7 y5 }; X6 W
-
/ M+ ]6 {) G3 f: `; T - S_WRITE:
% V F. ]4 Z0 ?' U- b8 z+ N - PHA0 `+ j7 c& e+ L4 X& J
- TYA
' {1 R7 ?* ~% u0 q" p7 g) d$ C - PHA% U: b+ F( H+ C* {/ O; Z# Y
- S_CMP:% Z' j' L: L7 ^$ M9 w* v1 X; x
- LDA $00; X5 x3 o0 t9 p+ r$ O
- TAY
9 {! s* Q: U: z* D0 z+ O - LDA $AA,Y ;读取武器值4 o- Q0 | i+ @
- AND #$10
; Y; y4 t5 d2 Z - BNE S_WEAPON, I5 b* S) ?) R+ x$ @$ p5 Y" k
- M_WEAPON: ;普通状态& b0 _; e }; a7 h+ ]) g
- LDA #$269 Z, ~0 z" |, d& l( O
- STA $0201,X
$ ?% b5 H4 i' X$ ^: X% I7 P - BNE RETURN9 L2 `8 q; {& b+ u/ s, E
- S_WEAPON: ;加速状态
9 z- D% h+ P0 c# F) }2 u - LDA #$1C, U" V8 K" ^8 I' k$ @) ~
- STA $0201,X
* t8 T6 _7 o1 }6 w -
" W" F/ |5 G2 l - 1 u5 |# G2 ^% ?6 S& Y6 O/ E, j" r
- RETURN:: O- a6 s+ I& {. j8 Z B% x
- PLA
+ u0 ]3 o- E3 } - TAY+ t5 N6 i9 G9 Q7 s5 E
- PLA0 @1 P5 S Q1 x% U h; X, T8 |
- RTS+ m: d1 d$ @/ J5 g1 @& r/ T, R# y
- ; j& b5 E( C+ L8 ~8 h$ e
' C9 j( }0 ]7 H. ]# | N+ [- D_WRITE:4 l7 k( w4 C* M
- PHA
6 O# E: M0 O% U, o* f5 [ - TYA- | B4 z. ~6 l, t
- PHA
: j6 S4 D8 M& |1 i' Y* t4 R& M9 W - WEAA:# E6 S4 {1 @+ l% I
- LDY $007 @" K0 ]9 X, h9 G4 X5 |4 u
- LDA $AA,Y
$ N1 ^: d d* e1 k7 u" n: g: h - AND #$0F- s0 k F! N6 ^% i5 a
- TAY0 p( ~3 W0 Q" P) d, v3 y
- LDA DATA,Y/ l8 F4 B2 X) U6 S. ~
- STA $0201,X- {; r8 y* P! V" g1 W; }# o
-
' m+ d1 i7 O* H# q7 F8 }0 P - PLA+ e4 u& ^! a c& U% ^: T3 d4 T
- TAY4 v. F& w! d& {2 ]) Q: b$ O( l
- PLA
q4 x3 n C- G, d* `8 ?! L - RTS
! n- [4 Q! J/ v' ^9 y7 W -
4 |' _7 D: j$ \+ E' y9 i3 ~; t+ X - DATA: ;武器种类图块, R: D. |6 G3 `9 U, i C' K
- .BYTE $24,$26,$20,$1C,$22
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|