|
|
本帖最后由 yandagui 于 2017-3-18 16:17 编辑 ! O' |6 U8 @5 Z: e2 d. h
& Q |* G, d# J' t2017.3.13! `' T2 T$ B/ r p$ a

: z( |3 U. y" u& Z/ R6 y # }0 {. n9 ?9 m* {2 G) F% A( W+ k
. X! O0 y$ y. V) x5 k: |" u& O) M
- .ORG $936E ;CONTRA(J)
+ U: D& \1 z" J - LDA $257 B! O+ T8 m& X N6 {( i6 e
- BEQ ADDR_93C9
5 v3 X7 C) a+ {" h+ W) h# p' \ - ADDR_936E: LDA $0022 ;读取地址$22数据到累加器A($22==0,单人模式,$22==01双人模式)( R; E. q' B: ^- {0 z
- ADDR_9370: LDY $001C ;读取地址$1C数据到寄存器Y
; H' {7 E9 A% D* x+ n! U' @0 B - ADDR_9372: BEQ ADDR_9376 ;Z==1?如果结果为零则跳过$2字节
; d% k; I4 a! e% ^7 \6 {( m - ADDR_9374: LDA #$01 ;读取地址$01数据到累加器A/ L2 V- N/ |" i) t. j. x7 s
- ADDR_9376: STA $0000 ;将累加器数值送到地址$00
$ q9 C: ]/ j" D0 o- i* q3 j - ADDR_9378: LDX $0004 ;读取地址$04数据到寄存器X
& s) R7 W3 Q; m& L - ADDR_937A: LDY #$08 ;读取立即数$04到寄存器Y
/ w. C: F5 D% e u2 F, j - ADDR_937C: LDA $001C ;读取地址$1C数据到累加器A% Y$ R$ Z: L7 G7 R: |1 T J( u9 H
- ADDR_937E: BNE ADDR_9395 ;Z==0?如果结果不为零则跳过$15字节
. x: M: o7 l& l1 y5 w3 ?$ r - ADDR_9380: LDY $0000 ;读取地址$00数据到寄存器Y- m& o. B; E6 H6 E
- ADDR_9382: LDA $0038,Y ;读取地址$38,Y数据到累加器A($38==01,P1结束,$39==01,P2结束)) N& [' T! ` X: U
- ADDR_9385: LDY #$08 ;读取立即数$04到寄存器Y" A$ U, z! v2 X# V. m9 f% f7 R
- ADDR_9387: LSR ;逻辑右移
: m0 M! r0 R+ h+ I2 Q4 w3 ` - ADDR_9388: BCS ADDR_9395 ;C==1,有借位则跳过$B字节/ f$ t3 `0 I2 m+ a: u* ?* _+ C
- ADDR_938A: LDY $0000 ;设置Y==#00
# @/ l( l& e6 ~& ?* _- [2 m/ n- M, Y - ADDR_938C: LDA $0032,Y ;读取地址$32,Y数据到累加器A4 `5 _7 G; b8 z$ e
- CLC
2 m! O2 x1 o1 x& R - ADC #$02
) Q' U. Z# Q- f- E* {4 M% U8 n - ADDR_938F: LDY #$00 ;设置寄存器Y为$00. s- ?) ?$ N$ C: |
- ADDR_9391: CMP #$08 ;比较Y==$04?" n2 P- U- J9 F: t+ }6 B3 o
- ADDR_9393: BCC ADDR_9397 ;C==0,有借位则跳过$2字节) n, p! L; d+ U/ p$ `; p0 ~
- ADDR_9395: LDA #$08 ;读取地址$04数据到累加器A
+ z9 a9 O: D+ T. K7 L7 e% {) i: j - ADDR_9397: STA $0001 ;送入地址$01* R# K4 M* G! u8 ], _ V
- ADDR_9399: DEC $0001 ;地址$01递减
1 ~" C% t4 a& T3 W7 A3 L& z' O$ A - ADDR_939B: BMI ADDR_93C3 ;N==1,结果为负则跳过$26字节
4 P: d( R& @: q2 n. f2 Z - ADDR_939D: LDA #$08 ;设置纵坐标数值
8 L+ \5 s' }6 o& E - ADDR_939F: STA $0200,X ;送入纵坐标地址
5 X) [; m& b% s0 v - ADDR_93A2: LDA ADDR_93CA,Y ;读取图快号数据8 R* G. U+ i& r2 C# r. U
- ADDR_93A5: STA $0201,X ;送入图快号地址
9 B0 a% M( F+ x8 _7 o - ADDR_93A8: LDA $0000 ;读取属性值数据
a! J7 q# W6 S9 x' R - ADDR_93AA: STA $0202,X ;送入属性值地址
! i! [! C1 U" \( o - ADDR_93AD: LSR ;逻辑右移9 D- |/ R5 K' d$ _4 J6 L
- ADDR_93AE: LDA ADDR_93D2,Y ;读取横坐标数值# x) a) w; V w0 G2 Q! M8 j8 g8 U- h
- ADDR_93B1: BCC ADDR_93B5 ;C==0,有借位则跳过$2字节
' a/ t: Y7 T7 T - PHA3 J$ ^; ]5 O2 C: N( p# W- [ L6 m
- TYA1 G. K, I5 f* P7 J: M
- PHA" |4 P( ^; C8 Q% M2 [
- LDA #$D45 ?- w5 l- [. o9 V' x
- STA $0200,X
$ R+ p( s8 [# a$ ? - PLA
3 o- q P: K/ L5 a; ? - TAY1 y5 c: {$ i/ Q) A3 P
- PLA* Y: w& [+ i% [% p$ E* Q. S5 r
- ADDR_93B5: JSR WEAPON
' k2 p$ ~$ |' P8 f& A' W1 O - ADDR_93B8: DEC $0007 ;地址$C7递减1 a7 N4 r$ h% f& J
- ADDR_93BA: TXA ;X-->A: b; n6 r w- j8 N% V
- ADDR_93BB: CLC ;清除进位标志# O% p5 h: T8 B# J
- ADDR_93BC: ADC $0010 ;加上地址$10的值
$ m7 |. |$ l' \1 \* A" X - ADDR_93BE: TAX ;A-->X
% m& q5 s' B6 c* G& N - ADDR_93BF: INY ;设置Y++
8 e9 b0 Z( U7 D - ADDR_93C0: JMP ADDR_9399 ;跳转到ADDR_9399
, c9 G( b# \# X& U+ ]2 L. p ~ - ADDR_93C3: DEC $0000 ;地址$00递减% K+ I/ H- T/ W0 b
- ADDR_93C5: BPL ADDR_937A ;N==0,结果为正数则跳回$100-$B3=4D字节" @+ ]8 ^+ R6 h, r7 F) w
- ADDR_93C7: STX $0004 ;送入地址$04
3 U( U! X2 @9 t0 Z- Z- Q - ADDR_93C9: RTS ;程序转回-----------------------------) D; {3 V/ o2 M7 V8 m( d- B9 \) ?. b
3 |$ j4 x4 ^9 U3 D0 a, g& g# k- .ORG $FB60
$ D3 i/ A/ U/ z& t" w - ADDR_93CA:
5 ~! f3 O7 K+ U, _& C% R - .BYTE $0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A ;生命图块号& L) `6 @9 R+ H
- .BYTE $02,$04,$06,$08,$FE,$FE,$FE,$FE ;GAME OVER图块号' ^, C, b, ~* E6 u g
- ADDR_93D2:. R, ~3 w, O# n* L6 p- i
- .BYTE $14,$1C,$28,$34,$40,$4C,$58,$64 ;生命图块坐标$ ~/ s5 f+ f% n- W
- .BYTE $10,$1C,$28,$34,$40,$4C,$58,$64 ;GAME OVER图块坐标' e7 t2 |2 p# q3 w* d, z
- B& I) M4 _8 R: K9 E! p
-
$ ?" F8 k1 S5 I" k1 M9 T2 B. @ - .ORG $FB80& w: j& F: ^5 w" N" w3 a
- 1 V/ I' }$ m: i1 k; j+ I3 d
- WEAPON:
6 Y$ W2 d% ]8 u) \$ V2 J% i/ {0 x - STA $0203,X ;送入横坐标地址
* ]( {4 r0 {! E: T; m' z0 |7 Q# w - PHP6 \$ A# e+ P- |8 k2 P0 \
- PHA. M3 c9 F& t1 |
- TYA; _' b& G/ E. c! }6 [0 g
- PHA
0 s. O! N* b# \7 j0 o. } - CPY #$00
. M( f5 K- a) Q1 ^+ M0 b' ? - BNE LB
8 u5 @ ]" P! M% E - JSR S_WRITE ;第一个精灵+ w2 c) N9 h U
- LB:
5 o, Z, }& J7 X/ Q3 W' X1 c - CPY #$01) @* B! G# ~) R2 t" W
- BNE RE- P& q' O! n9 d. Z
- JSR D_WRITE ;第二个精灵2 O$ K9 h; ?1 u5 V9 H
- RE:
z- T0 |1 G* h7 x( E# K: f$ j+ t - PLA
, {) s% v5 g- p+ j - TAY9 j7 q2 W1 {/ E
- PLA
( f7 | z6 e( C: c - PLP) U7 P v( |- [
- RTS
( E* z+ m% k( [, d7 E - 5 Y3 J8 u+ U, J( K- E: m
- S_WRITE:
6 B5 s7 ~6 s: k7 y' t0 H - PHA u; ^, O# O# x9 ?+ O
- TYA& v" V4 e7 D* i, G
- PHA
, C" _3 M/ s' i% O6 V - S_CMP:
1 H0 \0 u; U" ~8 z+ |, }+ ^. K6 i - LDA $00$ L* E* V; N1 ]" U1 W Q
- TAY: L! g8 ~- \4 {( q E1 D* ^
- LDA $AA,Y ;读取武器值
4 c6 |( a1 B6 d) f+ M1 B' ] - AND #$10
+ u0 L3 D; v& \* m - BNE S_WEAPON: A7 a- \: D4 z% ~
- M_WEAPON: ;普通状态5 c8 R0 f+ ~5 ] u6 N2 F! b
- LDA #$26, _* h5 a: Z2 x4 Y
- STA $0201,X H7 u* i' x' H% i5 A8 B5 S
- BNE RETURN
* Q# F/ j& w. n) K- S - S_WEAPON: ;加速状态5 m( }% t) K8 r' t2 R% P4 [
- LDA #$1C
; ]5 C) b' H. q& `! \ F - STA $0201,X
% j2 J: z m3 q& [" g -
& T Z8 {1 w: X3 U# c -
& p, k% ?' H" _( y+ h - RETURN:+ ~2 C* m' A* x7 a8 {' _
- PLA
+ f, }5 J1 j( v: V1 S$ O - TAY
0 ?8 p. P1 r2 L+ U; A/ I1 L - PLA% x% S( j h5 g t6 X, G& m2 E! M4 n
- RTS
" Q- D) E9 z' L2 I: ]+ E! T -
/ p. P6 z _7 ^, v3 ]$ I
) ~7 ]5 R6 g5 x5 C+ v- D_WRITE:3 Z5 f3 W$ J$ C1 C9 R7 {7 }
- PHA9 e1 ~3 F+ ~ M- |6 Q# _
- TYA
5 X) D+ Y, C' a0 c, c9 q - PHA, |- V! E2 P! f) N: ^
- WEAA:2 n3 N' N" x# z3 y& |
- LDY $00
# M. P0 v% T+ t5 O - LDA $AA,Y
/ |3 j' X" n& @7 b, h# c" F - AND #$0F
% V' }( H$ S0 @% V) Z6 ?- D: b - TAY6 ~+ N3 n- e) L; }4 B- p% s
- LDA DATA,Y
Y5 Q2 j1 d% D# n) C - STA $0201,X
# T [! T" ]" p9 a3 s6 r - , }1 Y7 o- W' ~0 E% c1 t
- PLA) {/ v. i( U) o- U2 _
- TAY
C$ F3 x" [. V1 \ - PLA( s0 N! r' J/ a+ `# l% ~
- RTS
$ M9 H: {% h; V( _5 |/ ] -
1 e' B& ]6 ~0 U& H - DATA: ;武器种类图块
, t+ P I. \" k' R( w3 H1 z$ H - .BYTE $24,$26,$20,$1C,$22
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|