|
|
本帖最后由 yandagui 于 2017-3-18 16:17 编辑
4 }$ k! N, z' F
7 x Z! z9 m' a2017.3.13
U4 M u$ B& r, ]% x3 ]/ F
4 _0 `# }5 X. @: D- [
5 x1 H1 ?* h% u5 G8 I' x2 P% K9 R ( Z) P5 ]: G) V$ R. R: [, p8 ]+ k% L
- .ORG $936E ;CONTRA(J)% Y- j& K( s7 _% E
- LDA $25$ u$ A: N7 s o; u, N" U a7 o
- BEQ ADDR_93C96 M& U, H+ p! |& P) x# }
- ADDR_936E: LDA $0022 ;读取地址$22数据到累加器A($22==0,单人模式,$22==01双人模式); _$ d$ x( i+ d8 h1 J. E6 `
- ADDR_9370: LDY $001C ;读取地址$1C数据到寄存器Y
- G7 @3 Y% _! u, v: l - ADDR_9372: BEQ ADDR_9376 ;Z==1?如果结果为零则跳过$2字节
; `* \. n+ Y! g8 @ - ADDR_9374: LDA #$01 ;读取地址$01数据到累加器A. K: q# R% B* F( W" ^6 M5 c. y8 p
- ADDR_9376: STA $0000 ;将累加器数值送到地址$007 L6 A F. J( S. ]' O$ ?! R
- ADDR_9378: LDX $0004 ;读取地址$04数据到寄存器X) h$ G! \7 O, l( X$ x5 X7 z
- ADDR_937A: LDY #$08 ;读取立即数$04到寄存器Y* e: Z" w7 ?* x3 C% E! p
- ADDR_937C: LDA $001C ;读取地址$1C数据到累加器A
) J& l% o: P$ [7 _+ w - ADDR_937E: BNE ADDR_9395 ;Z==0?如果结果不为零则跳过$15字节% g7 } n4 k9 w
- ADDR_9380: LDY $0000 ;读取地址$00数据到寄存器Y6 e) f% O9 V' J" X( N M
- ADDR_9382: LDA $0038,Y ;读取地址$38,Y数据到累加器A($38==01,P1结束,$39==01,P2结束)* V0 ?! K& Y% t C' s9 N, O, `
- ADDR_9385: LDY #$08 ;读取立即数$04到寄存器Y2 B& L2 L0 @/ ?& t8 y
- ADDR_9387: LSR ;逻辑右移 E' x0 B8 Z$ [
- ADDR_9388: BCS ADDR_9395 ;C==1,有借位则跳过$B字节 H2 r( H9 \4 Q; D) ^; {9 o% M
- ADDR_938A: LDY $0000 ;设置Y==#00# H. N: m' U9 n9 @5 r6 i) `
- ADDR_938C: LDA $0032,Y ;读取地址$32,Y数据到累加器A' P. j% C: ]4 |" t' F2 M& q
- CLC
3 X, v2 [) z. I1 u3 |7 X - ADC #$02* s G" `) M+ c( l( d; e( V
- ADDR_938F: LDY #$00 ;设置寄存器Y为$00# K* |5 e$ T% M- i! S/ o8 B1 C
- ADDR_9391: CMP #$08 ;比较Y==$04?$ v* M' P ~4 q' R! p
- ADDR_9393: BCC ADDR_9397 ;C==0,有借位则跳过$2字节 O0 Q; h( X. O
- ADDR_9395: LDA #$08 ;读取地址$04数据到累加器A/ |: ~& Q5 H* M6 u' h
- ADDR_9397: STA $0001 ;送入地址$01, i1 d! \ c# @. N: f
- ADDR_9399: DEC $0001 ;地址$01递减
$ @# L5 f% W- U9 l, v9 x - ADDR_939B: BMI ADDR_93C3 ;N==1,结果为负则跳过$26字节
7 ~: A5 v3 V2 J$ @, \9 ?3 j - ADDR_939D: LDA #$08 ;设置纵坐标数值9 e p8 {* P+ B# s; N: ^6 C
- ADDR_939F: STA $0200,X ;送入纵坐标地址( H4 W1 ?, Y/ i& ^+ L
- ADDR_93A2: LDA ADDR_93CA,Y ;读取图快号数据+ Q: `: C8 N1 K: e- Y/ O
- ADDR_93A5: STA $0201,X ;送入图快号地址2 N4 I' h. `2 V& p- {" ]7 |' D! I
- ADDR_93A8: LDA $0000 ;读取属性值数据 v: |) W% {" V, p/ y5 {! l4 m0 f
- ADDR_93AA: STA $0202,X ;送入属性值地址# T8 z! N( c n& l( r$ ?
- ADDR_93AD: LSR ;逻辑右移$ Q1 V! H/ r) {5 `" `
- ADDR_93AE: LDA ADDR_93D2,Y ;读取横坐标数值
1 s8 C+ Q: P3 D% M# O: g - ADDR_93B1: BCC ADDR_93B5 ;C==0,有借位则跳过$2字节# _$ x: |5 l; ^$ `
- PHA* q) z+ f$ g8 k7 h
- TYA) j: O r% w7 l" o
- PHA2 G* ?, j1 K/ ?; y m
- LDA #$D4
7 y6 n" r- f% u3 u# t5 A% y - STA $0200,X% N8 c0 X; _' _* ^
- PLA6 i$ M4 j1 t$ Z* v0 e
- TAY8 x8 y5 s8 s- j3 I+ `( Q* ^! A
- PLA& c! h! P: }* S: _6 `
- ADDR_93B5: JSR WEAPON
) u( @+ d) _: P+ N2 k9 H/ b - ADDR_93B8: DEC $0007 ;地址$C7递减, U% i2 x3 W, ?) f+ g
- ADDR_93BA: TXA ;X-->A
- \% C; L3 j5 n& a6 \ - ADDR_93BB: CLC ;清除进位标志* ^$ s! k1 A" V/ Z
- ADDR_93BC: ADC $0010 ;加上地址$10的值8 P5 q G! t3 o% g
- ADDR_93BE: TAX ;A-->X
! x# ?' U2 [+ x6 O( P - ADDR_93BF: INY ;设置Y++
) @( I& |$ I$ a6 Z - ADDR_93C0: JMP ADDR_9399 ;跳转到ADDR_93990 h- i, f5 A! W) a6 I9 r+ X
- ADDR_93C3: DEC $0000 ;地址$00递减
0 K7 i$ }) o6 O. K1 W - ADDR_93C5: BPL ADDR_937A ;N==0,结果为正数则跳回$100-$B3=4D字节
& K7 _9 f4 P6 }. k/ j4 L* F - ADDR_93C7: STX $0004 ;送入地址$04: U; I8 v) K, a' f- N' v6 r
- ADDR_93C9: RTS ;程序转回-----------------------------0 F8 A3 x i. z0 o
- 0 ` J a0 b. k: j! _
- .ORG $FB60
" i$ Q% o4 d9 r _* m) b - ADDR_93CA:. q. A) p/ }& R9 _( i4 |
- .BYTE $0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A ;生命图块号* j W/ T8 @3 R. K4 T1 ]
- .BYTE $02,$04,$06,$08,$FE,$FE,$FE,$FE ;GAME OVER图块号
- o2 B5 t8 }! t1 |2 v - ADDR_93D2:: A. X3 H' Y4 N G
- .BYTE $14,$1C,$28,$34,$40,$4C,$58,$64 ;生命图块坐标
5 c4 u5 `5 Z% P* H9 O6 h- x - .BYTE $10,$1C,$28,$34,$40,$4C,$58,$64 ;GAME OVER图块坐标
4 I* z, K' g- E& w - " M: y) C6 B( P( e3 @6 f
- * {6 B. S6 G' t5 H$ {" u' h3 B7 q$ f
- .ORG $FB808 E J. l* }: p& f
-
7 ?7 k u& Z4 y- [' s - WEAPON:0 Y; x# E1 f% Q7 h( C+ u a
- STA $0203,X ;送入横坐标地址
1 O! |+ B0 C3 I) e - PHP
% _$ M C- k5 e' e* | - PHA2 S. \4 ]$ z r! ^' b6 k
- TYA
]8 a! P3 G4 [: s6 ` - PHA4 y5 M, {/ e9 A
- CPY #$00
3 Z3 e9 t! q" ^. c2 f - BNE LB
( Y" }; O5 O: p - JSR S_WRITE ;第一个精灵) X; D/ W, O' h8 [9 C, C3 |" `* T1 ~
- LB:0 D* S" C# G/ e5 H9 D5 I* H$ m' a
- CPY #$014 M3 J0 B2 |: J
- BNE RE
& e: `0 r" e7 {$ w o - JSR D_WRITE ;第二个精灵. u# M$ X z0 V( r8 x: U
- RE:
) q* d' T5 V* H3 B- J2 M - PLA
2 z. \, I0 m/ F' g9 Q3 W' H - TAY4 C0 u2 x- n5 L, T, d) b
- PLA
$ f. _" A% p; M u8 L$ u - PLP, Y" N* ~1 v' P& i
- RTS9 x8 ]* I' W4 ~2 W
- , a/ C: E/ z( ~- u: ?
- S_WRITE:
/ E+ g" w5 [) @/ F5 |; y' v& p - PHA
9 Q5 k" f+ N0 P3 |5 l - TYA
/ t; l3 o" _4 j- \ - PHA9 y% X9 ]8 a4 ?" k
- S_CMP:
; H2 C, i" B' t" r - LDA $00/ N* X- I4 ~; M5 R
- TAY% p1 ]) N+ ^, W6 D
- LDA $AA,Y ;读取武器值
|7 W9 E. P: M+ b" h - AND #$101 D" G6 P. D1 q" ~/ m- L# J- F
- BNE S_WEAPON: k! T( {0 k" J9 h+ ]
- M_WEAPON: ;普通状态1 u1 q( ^/ X/ I2 q
- LDA #$26
/ }" j, @+ [* p, D* I! i8 U - STA $0201,X
6 c, F E. k& v0 _) ^$ v$ H" l - BNE RETURN) W9 _1 j( ^. |! ~8 u
- S_WEAPON: ;加速状态
1 t, i$ T% J) y, O - LDA #$1C* T7 R. a3 H1 O- f! C. p* m# T: {7 V: S
- STA $0201,X: c9 m/ }2 W5 n: T# C# V- s6 ?* o
- - [) u, a7 R8 f6 ^- A6 b' g
-
& L' H( } m; @ r - RETURN:* t; U* M0 |6 f+ j& j a) v
- PLA" d6 i7 F9 _$ ^& b
- TAY$ k* y& C. k0 N
- PLA" b! R0 j7 n9 f
- RTS
. n$ n) w/ X) }6 a, @ - " Q) T) e/ P, ]
- 8 j8 `" G4 ?7 q3 X- q) C
- D_WRITE:
( m+ p% e& Y6 E - PHA
) d4 A) I7 J b3 c* `1 H, A! R' j - TYA
, g+ A1 Q I; p0 {9 o. T - PHA2 w; b; n0 D1 I, c' O. s3 @ s
- WEAA: h# \. V! a; \9 F
- LDY $00
, _- [) J8 x# {. s- U4 B0 T - LDA $AA,Y$ _# k: Z, F) j5 }* d4 g# x
- AND #$0F
3 t7 K0 G& [8 D* }/ } - TAY
. e) g% j5 ^7 W' w) X - LDA DATA,Y) n- G$ X- j0 q7 @" v6 Q4 G
- STA $0201,X4 c% c' K* Z/ ?- r4 B0 l
- ) @$ u; O4 ^2 ^3 j
- PLA$ l3 Z2 p- I. Y( W
- TAY1 l/ ]2 U2 A3 d% O3 E; M
- PLA
& I0 k9 Z6 G1 z6 z* p& J - RTS
& |2 {3 F$ U' N1 I ^$ I* y( F) U -
. s& U& ^& u0 Z! r - DATA: ;武器种类图块
1 C" _4 D) x n8 j$ b8 b1 f - .BYTE $24,$26,$20,$1C,$22
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|