|
本帖最后由 yandagui 于 2017-3-18 16:17 编辑
( @1 s" i( `: m I
3 V) n% ^! T3 d5 D! j! A6 V8 ~2017.3.13
( q. a8 Q/ L4 d% P% [ 0 T$ N/ Q. l. J9 m& M# T1 i

% x% F: d' _# N2 I/ d 3 @6 o! S+ o6 i3 a9 i
- .ORG $936E ;CONTRA(J)8 n5 `5 ^" z1 ^( {. x* a% M
- LDA $25
: V% E: p% V5 b- A2 K/ h - BEQ ADDR_93C95 r' d* l3 G+ I$ y4 t
- ADDR_936E: LDA $0022 ;读取地址$22数据到累加器A($22==0,单人模式,$22==01双人模式)5 i9 I+ F l' J: E' A! W+ ]! `8 j
- ADDR_9370: LDY $001C ;读取地址$1C数据到寄存器Y
! d4 Q3 s) V3 C# b n! ?! q - ADDR_9372: BEQ ADDR_9376 ;Z==1?如果结果为零则跳过$2字节
6 N5 A6 O: `& g - ADDR_9374: LDA #$01 ;读取地址$01数据到累加器A
" U0 y( }, z2 w1 u* Y4 \9 b - ADDR_9376: STA $0000 ;将累加器数值送到地址$00/ Q% m( w& X" P! A: |: s5 V( u+ |
- ADDR_9378: LDX $0004 ;读取地址$04数据到寄存器X4 E' `0 x' w+ o
- ADDR_937A: LDY #$08 ;读取立即数$04到寄存器Y
0 P6 y, n: ~( M) J5 [ - ADDR_937C: LDA $001C ;读取地址$1C数据到累加器A9 x$ O4 {8 u: Z# w% Z
- ADDR_937E: BNE ADDR_9395 ;Z==0?如果结果不为零则跳过$15字节3 n. L; h4 D8 T) b. r4 C
- ADDR_9380: LDY $0000 ;读取地址$00数据到寄存器Y
0 h! }. s$ N$ S1 z - ADDR_9382: LDA $0038,Y ;读取地址$38,Y数据到累加器A($38==01,P1结束,$39==01,P2结束)( w8 ?& R) j, d- J2 U# w- @# Y' h
- ADDR_9385: LDY #$08 ;读取立即数$04到寄存器Y
, L) J) _- C O m! T. d) p; q5 g - ADDR_9387: LSR ;逻辑右移. ]) V7 T& \& W! v+ \# {
- ADDR_9388: BCS ADDR_9395 ;C==1,有借位则跳过$B字节9 v' Q9 p6 H0 ?5 M! N' ~7 J2 p1 ]6 G
- ADDR_938A: LDY $0000 ;设置Y==#00
. ?+ ~& W! a8 a - ADDR_938C: LDA $0032,Y ;读取地址$32,Y数据到累加器A( x" s7 l' a) l# w
- CLC6 k) g- J- [ M6 M. s
- ADC #$029 T3 _9 n0 K2 j( H/ O" [/ [
- ADDR_938F: LDY #$00 ;设置寄存器Y为$00
( M+ L) p( R/ M5 K4 j6 c - ADDR_9391: CMP #$08 ;比较Y==$04?; c+ ~* ?6 o, X0 J( T" v
- ADDR_9393: BCC ADDR_9397 ;C==0,有借位则跳过$2字节' ?# k \3 H( W% e& M
- ADDR_9395: LDA #$08 ;读取地址$04数据到累加器A5 C* X2 U& p" X/ |) z& O4 Q
- ADDR_9397: STA $0001 ;送入地址$01
$ f9 ?4 `2 O! f& E* U3 ~ - ADDR_9399: DEC $0001 ;地址$01递减: N' Q2 o* d6 w Z" q$ H
- ADDR_939B: BMI ADDR_93C3 ;N==1,结果为负则跳过$26字节
+ d: _/ [! g# E$ O9 I* X- k - ADDR_939D: LDA #$08 ;设置纵坐标数值; h. \$ k1 I# t0 {$ d; T
- ADDR_939F: STA $0200,X ;送入纵坐标地址
. {1 B9 [& s5 h* O1 J$ K F' L - ADDR_93A2: LDA ADDR_93CA,Y ;读取图快号数据
! N5 I w8 A* U$ i B) l - ADDR_93A5: STA $0201,X ;送入图快号地址* M5 g4 L3 z8 g4 J" w
- ADDR_93A8: LDA $0000 ;读取属性值数据' J9 d7 G6 B% A0 h5 B7 r# B
- ADDR_93AA: STA $0202,X ;送入属性值地址
& e# J2 U- S9 z) j. r* R | - ADDR_93AD: LSR ;逻辑右移
' j, k+ k1 ]4 u5 T3 H- m- i7 W - ADDR_93AE: LDA ADDR_93D2,Y ;读取横坐标数值
4 j6 T% T) Q6 T9 M8 T R6 X4 K" M - ADDR_93B1: BCC ADDR_93B5 ;C==0,有借位则跳过$2字节* @8 E& n+ q$ Y; n
- PHA# G7 l& _% o9 Y- r. t6 c( `
- TYA
% w$ o' F2 [& _* o0 S0 H - PHA) k9 p5 W) u0 x4 J% f* t8 G5 G! i. \
- LDA #$D45 L1 o. W7 M5 p# v4 c! n3 j# @. o
- STA $0200,X% V) S# i+ v2 N X" `9 X" n
- PLA2 |' `/ Y4 _5 ^- Q
- TAY
4 T) N e! u# H7 O - PLA
2 Z t5 c0 T5 l& k: G6 r) O - ADDR_93B5: JSR WEAPON
3 R* R) e) M. e' j. ` - ADDR_93B8: DEC $0007 ;地址$C7递减' Y! w2 K. u) P1 ~* `# e# V
- ADDR_93BA: TXA ;X-->A" E# h0 l, p) K
- ADDR_93BB: CLC ;清除进位标志
/ B9 d$ D0 f* Z9 x# ^9 \( T - ADDR_93BC: ADC $0010 ;加上地址$10的值
4 J' p6 ?( C. Q, D - ADDR_93BE: TAX ;A-->X5 z; ^, o1 u' a
- ADDR_93BF: INY ;设置Y++
[4 d% y0 s' c/ @, O | - ADDR_93C0: JMP ADDR_9399 ;跳转到ADDR_9399
4 S8 K; u$ {1 C! p8 N6 t - ADDR_93C3: DEC $0000 ;地址$00递减
3 P6 Q- _2 k2 i1 O - ADDR_93C5: BPL ADDR_937A ;N==0,结果为正数则跳回$100-$B3=4D字节
7 ]+ l2 l' W' R* I( \ - ADDR_93C7: STX $0004 ;送入地址$04/ l: M6 t* M; n# f
- ADDR_93C9: RTS ;程序转回-----------------------------
, g/ j# P* L& s Y3 m1 w6 n+ z/ e" d8 C6 a - 4 Z* B) A/ Q P4 o% U* U
- .ORG $FB601 z$ @( Z& S/ p9 ~# \, v: g
- ADDR_93CA:) b4 l" Y# U7 i4 q5 a$ P
- .BYTE $0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A ;生命图块号
' {% o B- P" a& |: N( v+ F - .BYTE $02,$04,$06,$08,$FE,$FE,$FE,$FE ;GAME OVER图块号
5 u; z9 t& f& d: H - ADDR_93D2:
2 J; [ d3 B2 F: K+ J - .BYTE $14,$1C,$28,$34,$40,$4C,$58,$64 ;生命图块坐标
. k+ {; b, g8 w! M# s( x5 d5 v4 | - .BYTE $10,$1C,$28,$34,$40,$4C,$58,$64 ;GAME OVER图块坐标
5 O& B/ r' P' [0 G( P: f, P" L. { - # z) F7 T' U) s
- / e- Q2 Y" C+ P1 i" M' D. m
- .ORG $FB80
8 K2 H E* P6 S! O' W! C/ o1 }& |. a -
9 I+ L& {, }/ T* N. ]: _( I - WEAPON:
4 k$ i* l( P: F( z3 S6 ~ - STA $0203,X ;送入横坐标地址% s0 K, U' k+ k, j, F
- PHP. e# ^' d( k) [3 f( ?$ [0 m
- PHA
6 s; B* z' N. N" N3 \, ] B7 | - TYA/ O) }: C' Y$ r9 n7 q& S4 ]
- PHA ]: s7 x E* q8 x" s; @
- CPY #$00( ~8 J' X/ |' W& Q* C
- BNE LB
1 |% h. N/ o H1 o - JSR S_WRITE ;第一个精灵1 R: R( s+ E3 x, T( u+ g
- LB:
$ x4 Q2 {2 e( F2 Q% r7 G% T, O - CPY #$01+ z& [, z' O) \
- BNE RE
, J0 w: E1 z( L: R% \' \7 k - JSR D_WRITE ;第二个精灵" K8 Z; f4 K1 Y$ k
- RE:: A2 s3 z \& o
- PLA
1 \ X4 a6 A$ ^/ K- X5 F& g - TAY
+ L `+ l( _, ?( L - PLA
$ S4 S' b7 Z) p! S# c. `5 h- u - PLP
4 s' Q6 X* D* f4 z2 O - RTS }" D! l& a% z7 A! }* U8 b6 E2 S
- : D6 N& q0 l7 m% M! q0 Z
- S_WRITE:
6 }1 P; }2 c6 ^ - PHA
) _. m4 g1 z* L7 B' b8 W' g - TYA, h- M' {+ i( T# E, B) f& O
- PHA
+ _( V1 n3 z5 j9 J - S_CMP:
8 q. d1 u, p# |- _- c6 @2 r - LDA $00
' Y; {! \, a( R - TAY; U+ Q6 C6 ]" d1 y
- LDA $AA,Y ;读取武器值7 N* s- n, k1 w' E+ `- t! I& \
- AND #$106 |* i% t0 q3 P% B
- BNE S_WEAPON+ T. o* \0 Z# B |
- M_WEAPON: ;普通状态2 J' G+ G- J/ t1 T5 M
- LDA #$26+ W: ?5 @' e; H; ?0 b7 F
- STA $0201,X1 |$ a3 {( r5 j* d: G; p) ?9 u$ B
- BNE RETURN2 c" k7 b( r8 L; z! s
- S_WEAPON: ;加速状态
$ R+ D: x- l: @0 z - LDA #$1C
/ x6 L) D' F+ Y/ ?) h0 ]) x - STA $0201,X
% T6 j$ | T, m* W( Q$ O -
& X( S/ Y7 w9 S& ` - % c8 g0 l8 Z$ `( W& _! B
- RETURN:6 o2 P2 U, r6 h1 N$ B- C7 O
- PLA
; s9 r$ c2 R m0 \9 Q8 j( U1 x6 V - TAY
' P+ h m; w! `# v7 S4 i4 s8 Y - PLA& Y8 ~& a- N+ j% E) k+ f
- RTS @/ E- }4 {/ e% y
- ) y. Y' x& a2 U/ H! |9 `. [; e, T
6 u6 J3 V) E# Z7 ]- D_WRITE:' Q' B7 Z l9 n3 _! a
- PHA/ o' r% S) d' y7 k0 Y
- TYA
4 b; _+ a% l& m7 V8 a$ M% Y - PHA
' r' w* d2 z' R - WEAA:
( f; j% g% D% X$ F9 n1 Z+ [2 L& c - LDY $00! t G' t! Y" m, n; L( v
- LDA $AA,Y# q! e7 C2 I! Z5 X7 ~6 S1 x
- AND #$0F# d1 w% E4 r! ]6 V
- TAY8 e* M; t% _! G7 p
- LDA DATA,Y
, c/ L* w4 [' \# r& W& y# |( Q - STA $0201,X) G2 S. K8 Q. d2 l; |
-
' s! }6 {" ^; m9 A - PLA, `/ z o; A' o7 ^* [
- TAY
8 n. V5 g6 ]' P& G - PLA: z+ b. h" D6 M0 @8 m; E4 ^( M
- RTS. s3 [, K% i; r- q( M! g7 K
-
( h+ r% D7 t" d& F - DATA: ;武器种类图块5 c/ b Y2 y( r3 k0 j. x$ o
- .BYTE $24,$26,$20,$1C,$22
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|