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 |
Konvertor s dokumentaciou, prehravacou rutinkou a prikladom pouzitia |
|
Busy's 01 |
17.03.2012 |
3 kB |
Moja prva PLAY hudba z roku 1989 a neskor znovu releasnuta na Foreveri XIII. |
|
Busy's 02 |
15.09.2013 |
3 kB |
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 a jr z,init cp #F0 ret c 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