cmc.asx
资源名称:tcpmp.rar [点击查看]
上传用户:wstnjxml
上传日期:2014-04-03
资源大小:7248k
文件大小:10k
源码类别:
Windows CE
开发平台:
C/C++
- *---------------------------*
- * cmc player v 2.1 *
- * by Marcin Lewandowski *
- * based on cmc player v 2.0 *
- * by Janusz Pelc *
- *---------------------------*
- org $0500
- *--- strona 0
- addr equ $fc
- word equ $fe
- *--- skoki
- jmp basic
- jmp init
- jmp play
- *--- dane
- volume dta d' '
- czest dta d' '
- numins dta d' '
- dta c' cmc player v 2.1 '*
- frq dta d' '
- znieks dta d' '
- audc dta b(0)
- czest1 dta d' '
- czest2 dta d' '
- czest3 dta d' '
- zniek dta d' '
- count1 dta b($ff),b($ff),b($ff)
- count2 dta d' '
- lopad dta d' '
- numptr dta d' '
- poswpt dta d' '
- ilewol dta d' '
- czygrx dta b($80),b($80),b($80)
- czygrc dta b($80)
- dana0 dta d' '
- dana1 dta d' '
- dana2 dta d' '
- dana3 dta d' '
- dana4 dta d' '
- dana5 dta d' '
- ladr dta d' '
- hadr dta d' '
- posptr dta b(0)
- possng dta b(0)
- pocrep dta b(0)
- konrep dta b(0)
- ilrep dta b(0)
- tmpo dta b(0)
- ltemp dta b(0)
- b1 dta b(0)
- b2 dta b(0)
- b3 dta b(0)
- czygr dta b(0)
- adrmus dta a(0)
- adradr dta a(0)
- adrsng dta a(0)
- *--- init
- init sta b1
- stx b2
- sty b3
- and #$70
- lsr @
- lsr @
- lsr @
- tax
- lda tab1,x
- sta zm1+1
- lda tab1+1,x
- sta zm1+2
- lda #3
- sta $d20f
- cld
- lda word
- pha
- lda word+1
- pha
- ldy b3
- ldx b2
- lda b1
- zm1 jsr graj
- pla
- sta word+1
- pla
- sta word
- rts
- graj lda adrsng
- sta word
- lda adrsng+1
- sta word+1
- ldy #0
- txa
- beq grajx
- l1 lda (word),y
- cmp #$8f
- beq l2
- cmp #$ef
- bne l3
- l2 dex
- bne l3
- iny
- cpy #$54
- bcs l4
- tya
- tax
- bpl grajx
- l3 iny
- cpy #$54
- bcc l1
- l4 rts
- grajx stx possng
- jsr skoncz
- lda #0
- ldx #9
- l5 sta poswpt,x
- dex
- bpl l5
- sta posptr
- lda #1
- sta czygr
- lda #$ff
- sta konrep
- lda adrmus
- sta word
- lda adrmus+1
- sta word+1
- ldy #$13
- lda (word),y
- tax
- lda adrsng
- sta word
- lda adrsng+1
- sta word+1
- ldy possng
- l6 lda (word),y
- cmp #$cf
- bne l7
- tya
- clc
- adc #$55
- tay
- lda (word),y
- bmi l8
- tax
- jmp l8
- l7 cmp #$8f
- beq l8
- cmp #$ef
- beq l8
- dey
- bpl l6
- l8 stx tmpo
- stx ltemp
- rts
- tempo and #$f
- beq l8
- stx d0+1
- stx d1+1
- stx d2+1
- sty d0+2
- sty d1+2
- sty d2+2
- rts
- inic stx adrmus
- stx word
- sty adrmus+1
- sty word+1
- clc
- txa
- adc #$14
- sta adradr
- tya
- adc #0
- sta adradr+1
- stx adrsng
- iny
- iny
- sty adrsng+1
- ldy #$13
- lda (word),y
- sta tmpo
- sta ltemp
- skoncz ldx #8
- l9 lda #0
- sta czygr
- sta $d200,x
- cpx #3
- bcs l10
- sta volume,x
- lda #$ff
- sta count1,x
- l10 dex
- bpl l9
- przer lda #$80
- l11 ldx #3
- l12 sta czygrx,x
- dex
- bpl l12
- l13 rts
- kont lda #1
- sta czygr
- lda #0
- beq l11
- instr and #3
- cmp #3
- beq l13
- cpx #$40
- bcs l13
- cpy #26
- bcs l13
- tax
- lda #$80
- sta czygrx,x
- inst lda #0
- sta count1,x
- sta count2,x
- sta lopad,x
- lda b2
- sta czest,x
- lda b3
- asl @
- asl @
- asl @
- sta word
- clc
- lda adrmus
- adc #$30
- pha
- lda adrmus+1
- adc #1
- tay
- pla
- clc
- adc word
- sta ladr,x
- tya
- adc #0
- sta hadr,x
- clc
- lda adrmus
- adc #$94
- sta word
- lda adrmus+1
- adc #0
- sta word+1
- lda b3
- asl @
- adc b3
- asl @
- tay
- lda (word),y
- sta dana0,x
- iny
- lda (word),y
- sta dana1,x
- and #7
- sta b1
- iny
- lda (word),y
- sta dana2,x
- iny
- lda (word),y
- sta dana3,x
- iny
- lda (word),y
- sta dana4,x
- iny
- lda (word),y
- sta dana5,x
- ldy #0
- lda b1
- cmp #3
- bne l14
- ldy #2
- l14 cmp #7
- bne l15
- ldy #4
- l15 lda tab3,y
- sta word
- lda tab3+1,y
- sta word+1
- lda dana2,x
- lsr @
- lsr @
- lsr @
- lsr @
- clc
- adc b2
- sta b2
- sta zm2+1
- tay
- lda b1
- cmp #7
- bne l16
- tya
- asl @
- tay
- lda (word),y
- sta czest1,x
- iny
- sty b2
- jmp l17
- l16 lda (word),y
- sta czest1,x
- lda dana2,x
- and #$f
- clc
- adc b2
- sta b2
- l17 ldy b2
- lda b1
- cmp #5
- php
- lda (word),y
- plp
- beq l18
- cmp czest1,x
- bne l18
- sec
- sbc #1
- l18 sta czest2,x
- lda dana0,x
- pha
- and #3
- tay
- lda tab4,y
- sta zniek,x
- pla
- lsr @
- lsr @
- lsr @
- lsr @
- ldy #$3e
- cmp #$f
- beq l19
- ldy #$37
- cmp #$e
- beq l19
- ldy #$30
- cmp #$d
- beq l19
- clc
- zm2 adc #0
- tay
- l19 lda tab5,y
- sta czest3,x
- rts
- *--- play
- play cld
- lda addr
- pha
- lda addr+1
- pha
- lda word
- pha
- lda word+1
- pha
- lda czygr
- bne g1
- jmp end
- g1 lda czygrc
- beq g2
- jmp dal3
- g2 lda tmpo
- cmp ltemp
- beq g3
- jmp dal2
- g3 lda posptr
- beq g4
- jmp dal1
- g4 ldx #2
- g5 ldy czygrx,x
- bmi g6
- sta czygrx,x
- g6 sta poswpt,x
- dex
- bpl g5
- lda adrsng
- sta addr
- lda adrsng+1
- sta addr+1
- ldy possng
- sty word
- g7 cpy konrep
- bne g8
- lda ilrep
- beq g8
- lda possng
- ldy pocrep
- sty possng
- dec ilrep
- bne g7
- sta possng
- tay
- bpl g7
- g8 ldx #0
- g9 lda (addr),y
- cmp #$fe
- bne g10
- ldy possng
- iny
- cpy word
- beq g11
- sty possng
- jmp g7
- g10 sta numptr,x
- clc
- tya
- adc #$55
- tay
- inx
- cpx #3
- bcc g9
- ldy possng
- lda (addr),y
- bpl dal1
- cmp #$ff
- beq dal1
- lsr @
- lsr @
- lsr @
- and #$e
- tax
- lda tab2,x
- sta zm3+1
- lda tab2+1,x
- sta zm3+2
- lda numptr+1
- sta word+1
- zm3 jsr stop
- sty possng
- cpy #$55
- bcs g11
- cpy word
- bne g7
- g11 ldy word
- sty possng
- jmp end
- stop jsr przer
- g12 ldy #$ff
- rts
- jump bmi g12
- tay
- rts
- up bmi g12
- sec
- tya
- sbc word+1
- tay
- rts
- down bmi g12
- clc
- tya
- adc word+1
- tay
- rts
- temp bmi g12
- sta tmpo
- sta ltemp
- iny
- rts
- rep bmi g12
- lda numptr+2
- bmi g12
- sta ilrep
- iny
- sty pocrep
- clc
- tya
- adc word+1
- sta konrep
- rts
- break dey
- bmi g13
- lda (addr),y
- cmp #$8f
- beq g13
- cmp #$ef
- bne break
- g13 iny
- rts
- dal1 ldx #2
- v1 lda ilewol,x
- beq v2
- dec ilewol,x
- bpl v7
- v2 lda czygrx,x
- bne v7
- ldy numptr,x
- cpy #$40
- bcs v7
- lda adradr
- sta addr
- lda adradr+1
- sta addr+1
- lda (addr),y
- sta word
- clc
- tya
- adc #$40
- tay
- lda (addr),y
- sta word+1
- and word
- cmp #$ff
- beq v7
- v3 ldy poswpt,x
- lda (word),y
- and #$c0
- bne v4
- lda (word),y
- and #$3f
- sta numins,x
- inc poswpt,x
- bpl v3
- v4 cmp #$40
- bne v5
- lda (word),y
- and #$3f
- sta b2
- lda numins,x
- sta b3
- jsr inst
- jmp v6
- v5 cmp #$80
- bne v7
- lda (word),y
- and #$3f
- sta ilewol,x
- v6 inc poswpt,x
- v7 dex
- bpl v1
- ldx posptr
- inx
- txa
- and #$3f
- sta posptr
- dal2 dec ltemp
- bne dal3
- lda tmpo
- sta ltemp
- lda posptr
- bne dal3
- inc possng
- dal3 ldy czest2
- lda dana1
- and #7
- cmp #5
- beq a1
- cmp #6
- bne a2
- a1 dey
- a2 sty frq+3
- ldy #0
- cmp #5
- beq a3
- cmp #6
- bne a4
- a3 ldy #2
- a4 cmp #7
- bne a5
- ldy #$28
- a5 sty audc
- ldx #2
- loop lda dana1,x
- and #$e0
- sta znieks,x
- lda ladr,x
- sta addr
- lda hadr,x
- sta addr+1
- lda count1,x
- cmp #$ff
- beq y4
- cmp #$f
- bne y2
- lda lopad,x
- beq y4
- dec lopad,x
- lda lopad,x
- bne y4
- ldy volume,x
- beq y1
- dey
- y1 tya
- sta volume,x
- lda dana3,x
- sta lopad,x
- jmp y4
- y2 lda count1,x
- lsr @
- tay
- lda (addr),y
- bcc y3
- lsr @
- lsr @
- lsr @
- lsr @
- y3 and #$f
- sta volume,x
- y4 ldy czest1,x
- lda dana1,x
- and #7
- cmp #1
- bne y6
- dey
- tya
- iny
- cmp czest2,x
- php
- lda #1
- plp
- bne y5
- asl @
- asl @
- y5 and count2,x
- beq y6
- ldy czest2,x
- cpy #$ff
- bne y6
- lda #0
- sta volume,x
- y6 tya
- sta frq,x
- lda #1
- sta b1
- lda count1,x
- cmp #$f
- beq y9
- and #7
- tay
- lda tab9,y
- sta word
- lda count1,x
- and #8
- php
- txa
- plp
- clc
- beq y7
- adc #3
- y7 tay
- lda dana4,y
- and word
- beq y9
- lda czest3,x
- sta frq,x
- stx b1
- dex
- bpl y8
- sta frq+3
- lda #0
- sta audc
- y8 inx
- lda zniek,x
- sta znieks,x
- y9 lda count1,x
- and #$f
- cmp #$f
- beq y10
- inc count1,x
- lda count1,x
- cmp #$f
- bne y10
- lda dana3,x
- sta lopad,x
- y10 lda czygrx,x
- bpl y11
- lda volume,x
- bne y11
- lda #$40
- sta czygrx,x
- y11 inc count2,x
- ldy #0
- lda dana1,x
- lsr @
- lsr @
- lsr @
- lsr @
- bcc y12
- dey
- y12 lsr @
- bcc y13
- iny
- y13 clc
- tya
- adc czest1,x
- sta czest1,x
- lda czest2,x
- cmp #$ff
- bne y14
- ldy #0
- y14 clc
- tya
- adc czest2,x
- sta czest2,x
- dex
- bmi x1
- jmp loop
- x1 lda znieks
- sta znieks+3
- lda dana1
- and #7
- tax
- ldy #3
- lda b1
- beq x2
- ldy tab10,x
- x2 tya
- pha
- lda tab8,y
- php
- and #$7f
- tax
- tya
- and #3
- asl @
- tay
- lda frq,x
- d0 sta $d200,y
- iny
- lda volume,x
- cpx #3
- bne x3
- lda volume
- x3 ora znieks,x
- plp
- bpl d1
- lda #0
- d1 sta $d200,y
- pla
- tay
- dey
- and #3
- bne x2
- ldy #8
- lda audc
- d2 sta $d200,y
- clc
- end pla
- sta word+1
- pla
- sta word
- pla
- sta addr+1
- pla
- sta addr
- rts
- *--- basic
- basic pla
- tax
- beq p6
- cmp #2
- beq p2
- p1 pla
- pla
- dex
- bne p1
- rts
- p2 lda $14
- cmp $14
- beq *-2
- lda $224
- cmp <p8
- bne p3
- lda $225
- cmp >p8
- beq p1
- p3 lda $224
- sta p9+1
- lda $225
- sta p9+2
- lda <p8
- sta $224
- lda >p8
- sta $225
- pla
- pla
- beq p4
- sec
- sbc #1
- p4 sta p5+1
- pla
- tay
- pla
- tax
- lda #$70
- jsr init
- lda #0
- p5 ldx #0
- jmp init
- p6 lda $14
- cmp $14
- beq *-2
- lda $224
- cmp <p8
- bne p2-1
- lda $225
- cmp >p8
- bne p2-1
- p7 lda p9+1
- sta $224
- lda p9+2
- sta $225
- lda #$40
- jmp init
- p8 jsr play
- bcc p9
- jsr p7
- p9 jmp $ffff
- *--- tablice
- tab1 dta a(graj)
- dta a(grajx)
- dta a(instr)
- dta a(tempo)
- dta a(skoncz)
- dta a(przer)
- dta a(kont)
- dta a(inic)
- tab2 dta a(stop)
- dta a(jump)
- dta a(up)
- dta a(down)
- dta a(temp)
- dta a(rep)
- dta a(break)
- tab3 dta a(tab5)
- dta a(tab6)
- dta a(tab7)
- tab4 dta b($80),b($a0)
- dta b($20),b($40)
- tab5 dta b($ff),b($f1),b($e4),b($d7)
- dta b($cb),b($c0),b($b5),b($aa)
- dta b($a1),b($98),b($8f),b($87)
- dta b($7f),b($78),b($72),b($6b)
- dta b($65),b($5f),b($5a),b($55)
- dta b($50),b($4b),b($47),b($43)
- dta b($3f),b($3c),b($38),b($35)
- dta b($32),b($2f),b($2c),b($2a)
- dta b($27),b($25),b($23),b($21)
- dta b($1f),b($1d),b($1c),b($1a)
- dta b($18),b($17),b($16),b($14)
- dta b($13),b($12),b($11),b($10)
- dta b($0f),b($0e),b($0d),b($0c)
- dta b($0b),b($0a),b($09),b($08)
- dta b($07),b($06),b($05),b($04)
- dta b($03),b($02),b($01),b($00)
- dta b($00)
- tab6 dta b($00),b($00),b($00),b($00)
- dta b($f2),b($e9),b($da),b($ce)
- dta b($bf),b($b6),b($aa),b($a1)
- dta b($98),b($8f),b($89),b($80)
- dta b($7a),b($71),b($6b),b($65)
- dta b($5f),b($00),b($56),b($50)
- dta b($67),b($60),b($5a),b($55)
- dta b($51),b($4c),b($48),b($43)
- dta b($3f),b($3d),b($39),b($34)
- dta b($33),b($39),b($2d),b($2a)
- dta b($28),b($25),b($24),b($21)
- dta b($1f),b($1e),b($00),b($00)
- dta b($0f),b($0e),b($0d),b($0c)
- dta b($0b),b($0a),b($09),b($08)
- dta b($07),b($06),b($05),b($04)
- dta b($03),b($02),b($01),b($00)
- dta b($00)
- tab7 dta a($b38),a($a8c),a($a00),a($96a)
- dta a($8e8),a($86a),a($7ef),a($780)
- dta a($708),a($6ae),a($646),a($5e6)
- dta a($595),a($541),a($4f6),a($4b0)
- dta a($46e),a($430),a($3f6),a($3bb)
- dta a($384),a($352),a($322),a($2f4)
- dta a($2c8),a($2a0),a($27a),a($255)
- dta a($234),a($214),a($1f5),a($1d8)
- dta a($1bd),a($1a4),a($18d),a($177)
- dta a($160),a($14e),a($138),a($127)
- dta a($115),a($106),a($0f7),a($0e8)
- dta a($0db),a($0cf),a($0c3),a($0b8)
- dta a($0ac),a($0a2),a($09a),a($090)
- dta a($088),a($07f),a($078),a($070)
- dta a($06a),a($064),a($05e),a($057)
- dta a($052),a($032),a($00a)
- tab8 dta b($00),b($01),b($02),b($83)
- dta b($00),b($01),b($02),b($03)
- dta b($01),b($00),b($02),b($83)
- dta b($01),b($00),b($02),b($03)
- dta b($01),b($02),b($80),b($03)
- tab9 dta b($80),b($40),b($20),b($10)
- dta b($08),b($04),b($02),b($01)
- tab10 dta b(3),b(3),b(3),b(3)
- dta b(7),b($b),b($f),b($13)
- *--- koniec
- end