1

Temat: TMC short player

Znalazlem taki oto player zalaczony do Energy Zin'a, problem w tym ze nie ma o nim wzmianki w instrukcji, nie wiadomo jak go zaincjowac, jak go uzywac.

Pisalem do Jaskiera, ale nie odpowiada, wiec moze ktos z Was wie jak to ugryżć ?


*----------------*
*TMC short player*
*Jaskier/Taquart *
*----------------*

 opt 6
 org $a000

bajt equ $fb
addr equ $fc
adrsng equ $fe

play lda czygrc
 bne *+3
 rts
 bit pozptr
 bvc r1
 dec ltempo
 beq *+5
 jmp sound

 ldx #7
 lda #0
p1 sta pozwpt,x
 sta delay,x
 dex
 bpl p1
 sta pozptr
 tax
 ldy #15
p2 lda (adrsng),y
 bpl p3
 dey
 lda (adrsng),y
 bpl *+5
 jmp stop
 stx addr
 asl @
 asl @
 rol addr
 asl @
 rol addr
 asl @
 rol addr
zm0 adc #0
 sta adrsng
 lda addr
zm1 adc #0
 sta adrsng+1
 bcc p2-2
p3 sta numptr,x
 dey
 lda (adrsng),y
 sta poddzw,x
 inx
 dey
 bpl p2
 clc
 lda adrsng
 adc #16
 sta adrsng
 bcc *+4
 inc adrsng+1
 jmp sound

r1 dec ltempo
 bpl r1-3
 inc pozptr
 lda tempo
 sta ltempo
 ldx #7
r2 dec delay,x
 bmi *+5
 jmp r14
 ldy numptr,x
zm2 lda $ffff,y
 sta addr
zm3 lda $ffff,y
 sta addr+1
 ldy pozwpt,x
r3 lda (addr),y
 bne r4
 iny
 inc pozwpt,x
 lda (addr),y
 lsr @
 lsr @
 lsr @
 lsr @
 sta adcvol,x
 jmp r13
r4 cmp #$40
 bcs r5
 adc poddzw,x
 sta wysdzw,x
 iny
 inc pozwpt,x
 lda (addr),y
 lsr @
 lsr @
 lsr @
 lsr @
 sta adcvol,x
 ldy numdzw,x
 jsr dzwiek
 jmp r13
r5 bne r8
 iny
 inc pozwpt,x
 lda (addr),y
 bpl r6
 sta bajt
 iny
 inc pozwpt,x
 lda (addr),y
 lsr @
 lsr @
 lsr @
 lsr @
 sta adcvol,x
 lda bajt
r6 and #$7f
 bne r7
 lda #64
 sta pozptr
 bne r13
r7 sta tempo
 sta ltempo
 bne r13
r8 cmp #$80
 bcs r11
 and #$3f
 adc poddzw,x
 sta wysdzw,x
 iny
 inc pozwpt,x
 lda (addr),y
 and #$7f
 bne r9
 lda #64
 sta pozptr
 bne r10
r9 sta tempo
 sta ltempo
r10 iny
 inc pozwpt,x
 lda (addr),y
 lsr @
 lsr @
 lsr @
 lsr @
 sta adcvol,x
 ldy numdzw,x
 jsr dzwiek
 jmp r13
r11 cmp #$c0
 bcs r12
 and #$3f
 sta numdzw,x
 iny
 inc pozwpt,x
 jmp r3
r12 and #$3f
 sta delay,x
r13 inc pozwpt,x
r14 dex
 bmi sound
 jmp r2

sound ldx #7
 lda #0
 sta aud1
p5 lda czygrx,x
 beq p4
 jsr graj
 lda aud1
 and audtab,x
 beq p4
 ldy #71
 lda (addr),y
 clc
 adc aktwys,x
 sta aktwys+2,x
 tay
 lda frqtab,y
 sec
 adc pomoc1,x
 sta frq+2,x
p4 cpx #4
 bne p6
 lda aud1
 sta aud2
 dex
 bpl sound+2
p6 dex
 bpl p5

 lda #3
 sta $d21f
 sta $d20f
 ldx frq+4
 ldy frq
 stx $d210
 sty $d200
 lda volume+4
 ora znksz+4
 sta $d211
 lda volume
 ora znksz
 sta $d201
 ldx frq+5
 ldy frq+1
 stx $d212
 sty $d202
 lda volume+5
 ora znksz+5
 sta $d213
 lda volume+1
 ora znksz+1
 sta $d203
 ldx frq+6
 ldy frq+2
 stx $d214
 sty $d204
 lda volume+6
 ora znksz+6
 sta $d215
 lda volume+2
 ora znksz+2
 sta $d205
 ldx frq+7
 ldy frq+3
 stx $d216
 sty $d206
 lda volume+7
 ora znksz+7
 sta $d217
 lda volume+3
 ora znksz+3
 sta $d207
 ldx aud2
 ldy aud1
 stx $d218
 sty $d208
 rts

graj lda adrsnl,x
 sta addr
 lda adrsnh,x
 sta addr+1
 lda slupy,x
 cmp #63
 bcs n6
 tay
 adc #3
 sta slupy,x
 lda (addr),y
 and #$f0
 sta znksz,x
 lda (addr),y
 and #15
 sec
 sbc adcvol,x
 bpl n1
 lda #0
n1 sta volume,x
 iny
 lda (addr),y
 and #$f0
 beq n8
 bpl n3
 ldy #73
 lda (addr),y
 ora aud1
 sta aud1
 ldy slupy,x
 dey
 dey
n3 lda (addr),y
 and #$70
 beq n9
 lsr @
 lsr @
 sta n5+1
 lda #0
 sta pomoc1,x
 iny
 lda (addr),y
n5 bcc *
 nop
 nop
 nop
 nop
 jmp a1
 nop
 jmp a2
 nop
 jmp a3
 nop
 jmp a4
 nop
 jmp a5
 nop
 jmp a6
 nop
 jmp a7

n6 lda opad,x
 beq n8
 dec lopad,x
 bne n8
 sta lopad,x
 lda volume,x
 beq n8
 dec volume,x
n8 ldy #72
 lda (addr),y
 ora aud1
 sta aud1
n9 lda aperm,x
 clc
 adc #63
 tay
 lda (addr),y
 adc wysdzw,x
 sta aktwys,x
 tay
 lda frqtab,y
 sta frq,x
 dec lperm,x
 bpl m1
 lda dperm,x
 sta lperm,x
 lda kolejn,x
 bne m6
 inc aperm,x
 lda ilperm,x
 cmp aperm,x
 bcs m1
 lda #0
 sta aperm,x
 beq m1
m6 clc
 adc aperm,x
 sta aperm,x
 bne m7
 lda #1
 sta kolejn,x
 bne m1
m7 cmp ilperm,x
 bne m1
 lda #$ff
 sta kolejn,x
m1 lda czekaj,x
 beq m2
 dec czekaj,x
 rts
m2 dec ltyp,x
 bpl m2-1
 lda dtyp,x
 sta ltyp,x
 lda typ,x
 sta m5+1
m5 bpl *
 jmp typ0
 nop
 jmp typ1
 nop
 jmp typ2
 nop
 jmp typ3
 nop
 jmp typ4
 nop
 jmp typ5
 nop
 jmp typ6
 nop
 jmp typ0

typ1 lda pomoc2,x
 inc pomoc2,x
 and #3
 lsr @
 bcc t2
 beq t1
typ6 lda frq,x
 sec
 sbc param,x
 sta frq,x
 lda #0
 sec
 sbc param,x
 sta pomoc1,x
 rts
t1 lda param,x
 sta pomoc1,x
 clc
 adc frq,x
 sta frq,x
typ0 rts
t2 lda #0
 sta pomoc1,x
 rts

typ2 ldy pomoc2,x
 lda param,x
 bmi t3
 iny
 iny
t3 dey
 tya
 sta pomoc2,x
 cmp param,x
 bne t4
 lda param,x
 eor #$ff
 sta param,x
 tya
t4 sta pomoc1,x
 clc
 adc frq,x
 sta frq,x
 rts

typ3 ldy pomoc2,x
 lda param,x
 bmi t5
 iny
 iny
t5 dey
 tya
 sta pomoc2,x
 cmp param,x
 bne t6
 lda param,x
 eor #$ff
 sta param,x
 tya
t6 clc
 adc aktwys,x
 sta aktwys,x
 tay
 lda frqtab,y
 sta frq,x
 rts

typ4 lda pomoc2,x
 sta pomoc1,x
 tay
 clc
 adc frq,x
 sta frq,x
 tya
 clc
 adc param,x
 sta pomoc2,x
 rts

typ5 lda aktwys,x
 sec
 sbc pomoc2,x
 sta aktwys,x
 tay
 lda frqtab,y
 sta frq,x
 lda pomoc2,x
 clc
 adc param,x
 sta pomoc2,x
 rts

a2 adc frq,x
a1 sta frq,x
 rts
a3 ldy wysdzw,x
 adc frqtab,y
 sta frq,x
 tya
 sta aktwys,x
 rts
a4 and $d20a
 sta frq,x
 rts
a7 adc wysdzw,x
a5 sta aktwys,x
 tay
 lda frqtab,y
 sta frq,x
 rts
a6 sta aktwys,x
 tay
 lda frq,x
 adc frqtab,y
 sta frq,x
 rts

d1 sta volume,x
 lda wysdzw,x
 sta aktwys,x
 rts
dzwiek lda #0
 sta czygrx,x
zm8 lda $ffff,y
 sta adrsnl,x
 sta addr
zm9 lda $ffff,y
 sta adrsnh,x
 sta addr+1
 ora addr
 beq d1
 ldy #74
 lda (addr),y
 sta opad,x
 sta lopad,x
 ldy #76
 lda (addr),y
 tay
 and #$70
 lsr @
 lsr @
 sta typ,x
 tya
 bmi d2
 and #15
 bpl d3
d2 and #15
 eor #$ff
 clc
 adc #1
d3 sta param,x
d7 ldy #77
 lda (addr),y
 sta czekaj,x
 ldy #79
 lda (addr),y
 tay
 and #$80
 beq d8
 lda #1
d8 sta kolejn,x
 tya
 and #$70
 lsr @
 lsr @
 lsr @
 lsr @
 sta ilperm,x
 bne d6
 sta kolejn,x
d6 tya
 and #15
 sta dperm,x
 sta lperm,x
 ldy #78
 lda (addr),y
 tay
 and #$3f
 sta dtyp,x
 sta ltyp,x
 tya
 and #$c0
 clc
 adc wysdzw,x
 sta wysdzw,x
 sta aktwys,x
 tay
 lda frqtab,y
 sta frq,x
 lda #0
 sta slupy,x
 sta pomoc1,x
 sta pomoc2,x
 sta aperm,x
 lda #1
 sta czygrx,x
 rts

init sty addr
 stx addr+1
 ldy #30
 lda (addr),y
 sta tempo
 lda addr
 clc
 adc #32
 sta zm8+1
 bcc *+3
 inx
 stx zm8+2
 clc
 adc #$40
 sta zm9+1
 bcc *+3
 inx
 stx zm9+2
 clc
 adc #$40
 sta zm2+1
 bcc *+3
 inx
 stx zm2+2
 clc
 adc #$80
 sta zm3+1
 bcc *+3
 inx
 stx zm3+2
 clc
 adc #$80
 sta adrsng
 sta zm0+1
 bcc *+3
 inx
 stx adrsng+1
 stx zm1+1
 jsr stop
 lda #64
 sta pozptr
 lda #1
 sta ltempo
 sta czygrc
 rts

stop lda #0
 sta czygrc
 ldy #7
d9 sta $d200,y
 sta $d210,y
 sta volume,y
 sta czygrx,y
 dey
 bpl d9
 sta $d208
 sta $d218
 sta aud1
 sta aud2
 rts

frqtab dta b(0),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(15),b(14),b(13),b(12)
 dta b(11),b(10),b(9),b(8)
 dta b(7),b(6),b(5),b(4)
 dta b(3),b(2),b(1),b(0)

 dta b(0),b($f2),b($e6),b($da)
 dta b($ce),b($bf),b($b6),b($aa)
 dta b($a1),b($98),b($8f),b($89)
 dta b($80),b($7a),b($71),b($6b)
 dta b($65),b($5f),b($5c),b($56)
 dta b($50),b($4d),b($47),b($44)
 dta b($3e),b($3c),b($38),b($35)
 dta b($32),b($2f),b($2d),b($2a)
 dta b($28),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(15),b(14),b(13),b(12)
 dta b(11),b(10),b(9),b(8)
 dta b(7),b(6),b(5),b(4)
 dta b(3),b(2),b(1),b(0)

 dta b(0),b($ff),b($f1),b($e4)
 dta b($d8),b($ca),b($c0),b($b5)
 dta b($ab),b($a2),b($99),b($8e)
 dta b($87),b($7f),b($79),b($73)
 dta b($70),b($66),b($61),b($5a)
 dta b($55),b($52),b($4b),b($48)
 dta b($43),b($3f),b($3c),b($39)
 dta b($37),b($33),b($30),b($2d)
 dta b($2a),b($28),b($25),b($24)
 dta b($21),b($1f),b($1e),b($1c)
 dta b($1b),b($19),b($17),b($16)
 dta b($15),b($13),b($12),b($11)
 dta b($10),b(15),b(14),b(13)
 dta b(12),b(11),b(10),b(9)
 dta b(8),b(7),b(6),b(5)
 dta b(4),b(3),b(2),b(1)

 dta b(0),b($f3),b($e6),b($d9)
 dta b($cc),b($c1),b($b5),b($ad)
 dta b($a2),b($99),b($90),b($88)
 dta b($80),b($79),b($72),b($6c)
 dta b($66),b($60),b($5b),b($55)
 dta b($51),b($4c),b($48),b($44)
 dta b($40),b($3c),b($39),b($35)
 dta b($32),b($2f),b($2d),b($2a)
 dta b($28),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(15),b(14),b(13),b(12)
 dta b(11),b(10),b(9),b(8)
 dta b(7),b(6),b(5),b(4)
 dta b(3),b(2),b(1),b(0)

audtab dta b(4),b(2),b(0),b(0)
 dta b(4),b(2),b(0),b(0)

aud1   dta b(0)
aud2   dta b(0)
tempo  dta b(0)
ltempo dta b(0)
pozptr dta b(0)
czygrc dta b(0)

volume dta d'        '
aktwys dta d'        '
numdzw dta d'        '
znksz  dta d'        '
frq    dta d'        '
pozwpt dta d'        '
delay  dta d'        '
numptr dta d'        '
poddzw dta d'        '
wysdzw dta d'        '
czygrx dta d'        '
adrsnl dta d'        '
adrsnh dta d'        '
adcvol dta d'        '
slupy  dta d'        '
opad   dta d'        '
lopad  dta d'        '
typ    dta d'        '
param  dta d'        '
pomoc1 dta d'        '
pomoc2 dta d'        '
czekaj dta d'        '
dtyp   dta d'        '
ltyp   dta d'        '
ilperm dta d'        '
aperm  dta d'        '
dperm  dta d'        '
lperm  dta d'        '
kolejn dta d'        '

 end
*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

2

Odp: TMC short player

TeBe: Jesli jest to player Jaskiera w wersji skoconej, to jego obluga jest opisana w artykule w zinie wraz z opisem pelnej wersji. Choc o ile pamietam, jest tam jedynie mala wzmianka na ten temat, a player obsluguje sie bardzo prosto. Jesli sie wiec nie myle, co do torzsamosci tego playera, to warto jeszcze powiedziec, ze player ten jest wykorzystany w demie "Ultra" i nie potrafi wlasciwie odegrac kazdej muzyczki TMC, a jedynie te z nich, ktore nie wykorzystuja pelnej palety jego mozliwosci (dokladnie nie powiem, ale byla mowa o dwukanalowym basie).
Jesli cos pomylilem przepraszam.

3

Odp: TMC short player

ultra? 2 kanalowy bas? player?

cos chyba pomyliles :)

w ultrze owszem muzyka zle grala... bo wydawalo nam sie, ze leci 2x na ramke a gra 1x ;)

Odp: TMC short player

Ultra nie ma z tym nic wspólnego ;-) Tam faktycznie grano 1x na ramkę, a powinno być 2x (muzyczki z początku i końca dema)

A co do playera... he he, używałem go kiedyś, ale nie pamiętam jak to się uruchamia ;-) Po prostu... uruchom procedurkę tyle razy w ramce, ile trzeba, to powinno wystarczyć ;-)

5

Odp: TMC short player

Znalazlem taki oto player zalaczony do Energy Zin'a, problem w tym ze nie ma o nim wzmianki w instrukcji, nie wiadomo jak go zaincjowac, jak go uzywac.

Pisalem do Jaskiera, ale nie odpowiada, wiec moze ktos z Was wie jak to ugryżć ?

He? Przecież odpowiedziałem. Widać poczta przesyłkę zagubiła  :)

No ale jeszcze raz:

 ldy <music
 ldx >music
 jsr init

a potem co ramkę

 jsr play

a jeżeli trzeba więcej niż raz na ramkę to dokładamy odpowiednią ilość wywołań

 jsr sound

a na koniec

 jsr stop

A tak w ogóle to Fox napisał krótszą wersję tego playera, więc lepiej jego używać. Do TMC 2.0 na razie krótsza wersja playera nie jest planowana (nie chce mi się i tak ktoś to lepiej ode mnie zrobi).

Aby odpackować teksty trzeba najpierw odpackować  program do ich odpackowywania - Energy #1

6

Odp: TMC short player

hmmm czyżby jakieś demo się szykowało ?

All I hear is the sound of me falling on the ground

7

Odp: TMC short player

dzieki za odpowiedzi, a listy rzeczywiscie cos wsysa, moze dlatego ze przychodzi za duzo spamu i nie starcza miejsca na serwerze pocztowym onetu aby wszystkie listy dotarly do tebe

a gdzie znajde player FOX'a do TMC ?? byl z jakims zinem ??

tebe@atari8.info
tbiela@poczta.onet.pl

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

8

Odp: TMC short player

energy #2?

9

Odp: TMC short player

dzieki za odpowiedzi, a listy rzeczywiscie cos wsysa, moze dlatego ze przychodzi za duzo spamu

tez mialem ten problem, gdy uzywalem aliasu @scene.pl   (akurat na nim mnie "bombardowali" najbardziej - dla tych nie w temacie: oczywiscie to nie wina adminow serwera SCENE.PL !).

Zdecydowanie polecam przesiadke z OUTLOOK'a na najnowszego THE BAT'a (v2.11 chyba), bo ma on wbudowany swietny dodatek antyspamowy - "BayesIT", nie dosc ze skutecznie filtruje i sie "uczy", to w pelni konfigurowalny!!!  8)

A zrodelka TMC z opisem byly, z tego co pamietam, w ENERGY #2.

10

Odp: TMC short player

sprawdzalem Energy #2, ale sa tam w pliku ARC tylko dwa playery, oba Jaskiera, wersja dluzsza i krotsza

a w artykule jest wiecej o historii powstania TMC niz o playerach

o wersji playera FOX'a ani widu ani slychu, moze jego player jest tak samo tajny jak player do Delty, Konopa  ;)

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

11

Odp: TMC short player

W temacie spamu polecam SpamPal (www.spampal.com).

12

Odp: TMC short player

Poprawiam sie.
W "Ultrze" rzeczywiscie jest pelna wersja playera TMC. Zasugerowalem sie notka ze skroconej wersji playera, gdzie zasugerowano przeznaczenie jej wlasnie do takich celow. Opis oblugi playera w wersji skroconej jest nie w artykule a dokumencie, w jej pierwszej czesci. Ale to juz zostalo wylozone przez samego autora w tym watku.
Co do krotszej wersji playera TMC by Fox, to jestem pewien, ze Slaves pomylil formaty muzyczne - Fox popelnil jedynie wlasny player do MPT zamieszczony istotnie w Energy2 i powszechnie zreszta uzywany przy roznych okazjach.
To tyle za niescislosci jeszcze raz sorki.

13

Odp: TMC short player

uff, to przestaje juz meczyc FOX'a mailami  :lol:

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C