PLAY to 50Hz konvertor

Mate nejaku peknu hudbu napisanu v basicu pomocou prikazu PLAY ? A chceli by ste aby bezala z prerusenia na pozadi nejakeho vaseho vlastneho programu alebo dema ? Radi by ste sa zucastnili nejakej hudobnej sutaze kde su akceptovane len klasicke 50 Hz hudby ? Alebo by ste chceli, aby sa vasa hudba dala prehrat aj na ZX Spektre 48k s pripojenym zvukovym cipom AY ?

V takom pripade ste na spravnej adrese ! Toto je program, ktory vam vie skonvertovat vasu hudbu napisanu v prikazoch PLAY v 128/+3 basicu do formatu prehratelneho z 50 Hz prerusenia alebo proste volatelneho 50 krat za sekundu.

Konvertor PLAYto50Hz je vytvoreny vo forme modifikovanej 32kB romky pre ZX Spektrum 128/+2. Romka voci povodnej obsahuje specialne rozsirenie prikazu PLAY, ktore umozni vsetky data posielane do AY zaroven ukladat do buffera v pameti. Vy potom mozete tieto data prehrat pomocou velmi kratkej 46 bajtovej prehravacej rutinky, ktoru budete volat 50x za sekundu - bud z prerusenia, alebo priamo z basicu (s vyuzitim PAUSE 1).

Program
Name
Vytvorene
Release
Size
Dlzka
File
Subor
Remark
Poznamka

PLAY to 50Hz

17.09.2013

30 kB

play2int.rar

Konvertor s dokumentaciou, prehravacou rutinkou a prikladom pouzitia

Busy's 01

17.03.2012

3 kB

busymus1.rar

Moja prva PLAY hudba z roku 1989 a neskor znovu releasnuta na Foreveri XIII.

Busy's 02

15.09.2013

3 kB

busymus2.rar

Moja druha PLAY hudba z roku 1989 a neskor znovu releasnuta na JHcone 2013.

A takto vyzera zdrojovy text samotnej prehravacej rutinky. Kod prehravacej rutinky je freeware, mozete ho lubovolne pouzit vo svojich programoch. Pouzit ho mozete bud tak ako je, alebo si ho mozete lubovolne prisposobit svojim potrebam, popripade na jeho zaklade si mozete napisat uplne novu vlastnu prehravaciu rutinku.

init ld hl,quiet ;; Init and quiet 
 jr datexe  
    
tone ld hl,timcnt ;; Play one tone 
 dec (hl)  
 ret nz  
datadd ld hl,hudata  
datexe ld a,(hl)  
 inc hl  
 ld (timcnt),a  
 ld (datadd+1),hl  
 or  
 jr z,init  
 cp #F0  
 ret  
 ld bc,#fffd  
 out (c),a  
 ld a,(hl)  
 ld b,#bf  
 out (c),a  
 inc hl  
 jr datexe  
    
timcnt db #01 ;; 1/50 sec counter 
    
quiet db #F7,#FF ;; Mix register 
 db #FD,#00 ;; Volume envelope 
 db #01 ;; Wait 1/50 sec 
    
hudata   ;; Place music data here 

Nazad / back