|
|
本帖最后由 yandagui 于 2017-3-18 16:17 编辑
C7 v) F* g, \2 b5 r
+ F# B- \* f# ], L7 l2017.3.132 [* Z% t" K# N- K

& V, [0 \. l. k& ^4 z3 ~/ \5 y% e
; a3 R) d: H1 |& M; e3 h, F
4 t) T1 C9 [' U( b; M/ g( |- .ORG $936E ;CONTRA(J)
! t3 ^( [6 W, Z3 J - LDA $253 U, G! Y" F% T
- BEQ ADDR_93C9
m4 H) y. _ \) d - ADDR_936E: LDA $0022 ;读取地址$22数据到累加器A($22==0,单人模式,$22==01双人模式)
8 ]) [0 x" L9 t1 T - ADDR_9370: LDY $001C ;读取地址$1C数据到寄存器Y
. T1 ^; ]: N, u0 T) g - ADDR_9372: BEQ ADDR_9376 ;Z==1?如果结果为零则跳过$2字节
0 t, \+ m* g/ _; J& P$ a - ADDR_9374: LDA #$01 ;读取地址$01数据到累加器A
7 k: S2 f( M4 [1 { - ADDR_9376: STA $0000 ;将累加器数值送到地址$00
, W: L: v4 I! Z - ADDR_9378: LDX $0004 ;读取地址$04数据到寄存器X
1 Y, b5 R E9 B% b - ADDR_937A: LDY #$08 ;读取立即数$04到寄存器Y. }9 B t' L$ Q# e* p
- ADDR_937C: LDA $001C ;读取地址$1C数据到累加器A3 b$ J; k& `& |/ e5 w( ]) Q( j. F
- ADDR_937E: BNE ADDR_9395 ;Z==0?如果结果不为零则跳过$15字节
& p7 v1 B* y# r; U6 {( T - ADDR_9380: LDY $0000 ;读取地址$00数据到寄存器Y7 u6 i! \/ A* j8 y% i
- ADDR_9382: LDA $0038,Y ;读取地址$38,Y数据到累加器A($38==01,P1结束,$39==01,P2结束); F5 m, ^. G& _
- ADDR_9385: LDY #$08 ;读取立即数$04到寄存器Y% |9 J: E9 @8 B* m' D/ r# N; ~
- ADDR_9387: LSR ;逻辑右移" x, |8 ^/ x- G
- ADDR_9388: BCS ADDR_9395 ;C==1,有借位则跳过$B字节
; L6 f ~6 m* E E3 L# e3 f. T! A5 P, T. u - ADDR_938A: LDY $0000 ;设置Y==#00) u7 ^7 I$ ? F/ Q
- ADDR_938C: LDA $0032,Y ;读取地址$32,Y数据到累加器A8 H2 s8 {5 J. Y9 ?, c$ C5 \3 d
- CLC' x. J' ~0 D5 G1 G. i3 ?4 Q. d* j
- ADC #$02
4 j" X+ c8 q8 | - ADDR_938F: LDY #$00 ;设置寄存器Y为$00
: o' z3 l% z |2 V - ADDR_9391: CMP #$08 ;比较Y==$04?
: e; l* u: n% L, H# J7 J - ADDR_9393: BCC ADDR_9397 ;C==0,有借位则跳过$2字节
, `2 X/ _0 E# c8 F, B - ADDR_9395: LDA #$08 ;读取地址$04数据到累加器A
& ~. E4 V6 d8 \, D: v% Q - ADDR_9397: STA $0001 ;送入地址$01
0 U$ ?4 J Z3 j0 Q! t( ] - ADDR_9399: DEC $0001 ;地址$01递减- }* v! x9 H1 B% B/ b; L3 U
- ADDR_939B: BMI ADDR_93C3 ;N==1,结果为负则跳过$26字节
! a7 F8 Y& w! q/ T8 a' | - ADDR_939D: LDA #$08 ;设置纵坐标数值, z: w% y d! Q/ g2 I/ j4 K( y
- ADDR_939F: STA $0200,X ;送入纵坐标地址3 ? d8 i6 T( P8 d
- ADDR_93A2: LDA ADDR_93CA,Y ;读取图快号数据
& K; s3 z! Z+ q - ADDR_93A5: STA $0201,X ;送入图快号地址- T, p! I4 [. w" q2 l- e7 ~% M8 S
- ADDR_93A8: LDA $0000 ;读取属性值数据) g8 \: |9 B9 N, ~% ~( m! \
- ADDR_93AA: STA $0202,X ;送入属性值地址: C2 I! z+ m! y/ |5 }
- ADDR_93AD: LSR ;逻辑右移/ \& u$ j" Y8 n2 U: E
- ADDR_93AE: LDA ADDR_93D2,Y ;读取横坐标数值7 Z5 G i( _# E K
- ADDR_93B1: BCC ADDR_93B5 ;C==0,有借位则跳过$2字节% n4 }& t: c. r% o
- PHA' c1 _8 h$ \( O6 x6 ~; _
- TYA
0 p* R/ h8 E; P9 q% E - PHA
, T, }' t/ D- `" K X. ? - LDA #$D4
9 m# b/ `2 ]/ f% i - STA $0200,X) h9 h b# B/ |: l# |# e& P
- PLA
* R. Z4 B9 j3 I: B' a$ _1 q - TAY ^! |1 R8 a1 Y5 c3 P6 r+ ]
- PLA1 p% ^* N- H; P/ k9 e: }0 W
- ADDR_93B5: JSR WEAPON! Y9 \2 }% E6 c& W# E
- ADDR_93B8: DEC $0007 ;地址$C7递减
; h* @5 I' Q% J9 E+ I1 p - ADDR_93BA: TXA ;X-->A
6 i8 Z, K3 w) E0 f# t- K4 F, ` - ADDR_93BB: CLC ;清除进位标志8 \: G2 c# G/ e. t6 J
- ADDR_93BC: ADC $0010 ;加上地址$10的值/ l/ D0 d) h" ^! i
- ADDR_93BE: TAX ;A-->X" ` U% }+ z3 q- d" c+ Z- \! ]2 d, ]
- ADDR_93BF: INY ;设置Y++1 s! L4 S* U! z/ x+ G
- ADDR_93C0: JMP ADDR_9399 ;跳转到ADDR_9399
/ ~0 n& O) R; g: f1 I' i - ADDR_93C3: DEC $0000 ;地址$00递减
2 A6 s( g, e! Y8 X6 i% i# [ - ADDR_93C5: BPL ADDR_937A ;N==0,结果为正数则跳回$100-$B3=4D字节
2 g0 h0 R1 g- ?& h$ Y- j2 V - ADDR_93C7: STX $0004 ;送入地址$04
, C' ^6 @% I/ a( [" A+ W1 o2 v7 n - ADDR_93C9: RTS ;程序转回-----------------------------2 u6 q6 Z$ b W1 n
- / W0 n# `5 [9 |3 Q
- .ORG $FB60
: h& u1 J" u! J - ADDR_93CA:
3 I @, h6 A& Y9 b" X) c0 C8 v, { - .BYTE $0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A ;生命图块号
2 F& ?0 Y+ R) l$ M% {7 a% W, m - .BYTE $02,$04,$06,$08,$FE,$FE,$FE,$FE ;GAME OVER图块号
# H" K% R7 ^* T0 w8 N! u! `8 s - ADDR_93D2:
$ P- o% f g* r4 I - .BYTE $14,$1C,$28,$34,$40,$4C,$58,$64 ;生命图块坐标, h4 p6 c& Q( n5 z
- .BYTE $10,$1C,$28,$34,$40,$4C,$58,$64 ;GAME OVER图块坐标6 V0 E. r5 _3 b4 [8 k5 j
-
- j/ M, ?+ x: U! L - 2 f$ ?4 K( G: m3 k2 G/ w1 B, b @
- .ORG $FB80+ `! n# u- V8 P$ v
- ( i; C9 _) j' S% ?7 [# A: v
- WEAPON:
5 x* t/ h! f( Z$ H4 c* V# D, y* i - STA $0203,X ;送入横坐标地址
1 s( T" m) l0 q! d" x4 c% O - PHP
8 S. L B3 G4 Y$ J" n1 [ - PHA4 d5 I$ j, t/ |4 P- y5 f
- TYA" |4 ]! C0 g) T" I9 A( g
- PHA
' j0 C6 p, y$ \, k3 q: p. k6 L - CPY #$00" h( |0 k% C b- Z& n& L
- BNE LB
# e# s. d/ r2 s: ? O: ` - JSR S_WRITE ;第一个精灵! n& r6 t# A2 a& W+ ~7 l
- LB:
) i$ J$ f( b9 ^7 C/ X; Y - CPY #$01+ ~' c7 o _/ F. ]$ ~
- BNE RE9 M, V. _; J! L- y. ^7 g) m5 a7 u
- JSR D_WRITE ;第二个精灵
) O. _4 W1 d: P9 P: g' p - RE:
- O5 D. m u$ e0 v A; A - PLA* i- h# p2 S5 Q! B8 W( n1 N
- TAY
6 y( V2 t5 G( ~5 W2 O( m - PLA2 u7 \) W0 c: I% X. J/ N! z
- PLP3 K5 f8 A1 B+ Y
- RTS8 x$ h' @; A; m7 Z
- 5 R) V; g+ m( k. S
- S_WRITE:/ x. r9 d% y, ^; b! |, [5 p- `
- PHA) }( q" a) l% P# ?; T. ]
- TYA' n. Y9 u5 |/ |; C
- PHA/ v# w' |- B8 }- I! P# c) |5 K- E
- S_CMP:0 g" T# u& |2 F
- LDA $00
% A3 |7 _, H5 z0 j1 I% t* v% F - TAY! P- T$ A5 v: j8 [+ I7 B, j( Q. M" v6 p
- LDA $AA,Y ;读取武器值/ K& C0 L7 k: F R
- AND #$10/ H* n# [ k" E
- BNE S_WEAPON- [" c0 s2 _ o! n
- M_WEAPON: ;普通状态
@7 [' i( ~: S5 q! S3 b - LDA #$26. [7 ?1 T8 B" B$ J9 ^/ U& Q+ N: }# S6 e
- STA $0201,X
0 R0 R- t; }5 @ K# f5 t - BNE RETURN
" m/ z J2 e% B - S_WEAPON: ;加速状态
) e* V! }- e. w* F - LDA #$1C: R: H( q6 T6 @) ~! G1 _" i9 T
- STA $0201,X8 F+ {1 F" D. n
- / W4 C# a& }! {
-
/ } Y8 y, G- m0 n O - RETURN:
- N: F6 j5 X* B# {: l - PLA
' Z v7 n$ C2 X8 _- s' Q+ L4 k - TAY* V2 q7 v/ w. p' U% ^5 R9 M
- PLA
* c1 u7 D% \& Y1 H - RTS
4 m) r5 k- x& q2 x# v - * J$ B, M w0 z) a/ p) O! ?1 G6 t
- 0 q8 w- C+ S! k& w
- D_WRITE:
5 @! u( P; B7 B1 O9 P - PHA
3 Z) \4 e& ~6 l3 @ - TYA
3 g, \' f) Q7 e7 s% Y+ i - PHA4 G: t: b8 y* W0 {4 k
- WEAA:! N$ t' ^2 t& h: r% Y P
- LDY $001 f8 U1 c& O" y' U+ h# k9 V9 t' R
- LDA $AA,Y
4 k' o0 N* s% p8 w# a# X - AND #$0F! u! ~, t' l2 @' ^4 M
- TAY0 i5 d, |' L& M6 V$ k9 |( U
- LDA DATA,Y* n. ~" B+ }, |" y/ e/ ~' ~$ E O
- STA $0201,X6 P/ r& @- l3 y. L
- 8 ]/ V$ o0 s0 b4 u
- PLA
, ~6 ?! W/ ~! |; y4 L6 W - TAY0 t0 t a! ?# H* Y, E0 E# z, Z
- PLA
- Z- [* d8 P) N& G+ @ - RTS+ H8 @! w( |$ D# h
-
+ D' H0 u" t5 r. ?; g - DATA: ;武器种类图块
5 A/ x6 {5 ?$ c/ V* y - .BYTE $24,$26,$20,$1C,$22
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|