home *** CD-ROM | disk | FTP | other *** search
/ Flop Magazin 34 / Flop_Magazin_34_1995_02_Raster_cs_Side_A.atr / asmsound.cap < prev    next >
Text File  |  2023-02-26  |  3KB  |  1 lines

  1. ¢Programov*n) zvuk+ v assembleru¢Radek ③t%rba, RASTER¢¢Po')ta'e Atari jsou v&eobecn% zn*my sv`mi dobr`mi hudebn)mi mo(nostmi. 4 zvukov[ gener*tory, 16 ]rovn) hlasitosti a r+zn[ dal&) vymo(enosti je d%laj) vhodn`mi pro 'ast[ pou()v*n) zvuk+ a skl*d*n) hudby. Pravda, ned* se to srovn*vat s mo(nostmi v%t&)ch ╱16-bitov`ch$ po')ta'+, ale mnohdy nerozhoduje kvalita zvuku, ale n*pad.¢¢V BASICu je implementov*n p@)kaz SOUND, kter` m* n*sleduj)c) parametry:¢SOUND A,B,C,D¢A..')slo gener*toru ╱0 a( 3$¢B..frekvence ╱0 a( 255$¢C..zkreslen) v`stupn)ho sign*lu ╱0 a( 14, sud* ')sla$¢D..hlasitost ╱0 a( 15$¢¢Tento p@)kaz je sice snadno pou(iteln`, ale nevyu()v* v&echny mo(nosti hardwaru. Pod)vejme se tedy hloub%ji na ovl*d*n) zvukov[ho v`stupu.¢Pro generov*n) akustick[ho sign*lu je uvnit@ Atari obvod POKEY ╱m* na starost i jin[ v%ci, ale t%mi se te⇦ nechci zab`vat$. Zvuk se ovl*d* pomoc) 9 registr+, um)st%n`ch na adres*ch ◆D200 a( ◆D208 ╱decim*ln% 53760 a( 53768$.¢¢Seznam registr+:¢◆D200 53760 - AUDF1¢◆D201 53761 - AUDC1¢¢◆D202 53762 - AUDF2¢◆D203 53763 - AUDC2¢¢◆D204 53764 - AUDF3¢◆D205 53765 - AUDC3¢¢◆D206 53766 - AUDF4¢◆D207 53767 - AUDC4¢¢◆D208 53768 - AUDCTL¢¢Pomoc) t%chto registr+ m+(ete vyrobit stejn[ zvuky jako p@)kazem SOUND:¢¢SOUND a,b,c,d¢¢Nejprve inicializace ╱sta') prov[st jen jednou p@ed zapo'et)m pou()v*n) zvuk+$:¢POKE 53775,3: POKE 53768,0¢A vlastn) p@)kazy:¢POKE 53760⇩2✓a,b: POKE 53761⇩2✓a,c✓16⇩d¢¢Jak je tedy vid%t, frekvence se zap)&e do p@)slu&n[ho registru AUDFa  ╱kde "a" je ')slo zvukov[ho gener*toru$ a zkreslen) spolu s hlasitost) do registru AUDCa ╱zkreslen)✓16⇩hlasitost$.¢Pokud budete pracovat v assembleru, nen) nic jednodu&&)ho, ne( m)sto POKE pou()t ukl*dac) instrukce STA.. ╱STX.., STY..$.¢¢P@.  Zvuk SOUND 1,100,10,15 vyloud)te v assembleru takto:¢  LDA #3  ;inicializace¢  STA 53775¢  LDA #0¢  STA 53768¢  LDA #100  ;frekvence=100 ¢  STA 53762  ;registr AUDF2 ╱zvukov[ gener*tory jsou ')slov*ny od 0, ale registry od 1$ ¢  LDA #175  ;10✓16⇩15=175¢  STA 53763  ;registr AUDC2¢  ...¢  RTS¢¢P@)m[ pou()v*n) registr+ AUD.. umo(uje ale t[( vyluzovat zvuky, jak[ SOUNDem nevytvo@)te. Registr AUDCTL je @)d)c)m registrem pro v&echny zvukov[ kan*ly. R+zn`m nastaven)m bit+ lze velmi ovlivnit zvukov` v`stup.¢¢AUDCTL:¢BIT  POPIS¢7   Nastaven) 9-ti bitov[ho ')ta'e m)sto 17-bitov[ho¢6   Vstupn) frekvence kan*lu 1 bude 1.79MHz¢5   Vstupn) frekvence kan*lu 3 bude 1.79MHz¢4   Spojuje kan*ly 1 a 2 v jeden 16-ti bitov` ')ta'¢3   Spojuje kan*ly 3 a 4 v jeden 16-ti bitov` ')ta'¢2   Horn) propust kan*lu 1 taktovan* kan*lem 3¢1   Horn) propust kan*lu 2 taktovan* kan*lem 4¢0   P@epnut) hlavn) taktovac) frekvence ze 64KHz na 15KHz¢¢Pozn. Standardn) nastaven) AUDCTL je na 0 ╱na tuto hodnotu se nastav) p@i ka(d[m ╱!!!$ pou(it) p@)kazu SOUND; Pokud se tedy rozhodnete tento hlavn) @)d)c) reg. nastavit na jinou hodnotu, mus)te pak pro spou&t%n) zvuk+ pou()vat p@)mo registry AUD.. a ne p@)kaz SOUND$.¢  ¢D+le(it[:¢Proto(e v&echny registry AUD.. jsou hardwarov[, nelze jejich nastaven) zp%tn% ')st ╱respektive jejich p@e'ten)m z)sk*me ]pln% jinou informaci ne( tu, kter* tam byla zaps*na$. Proto je nutn[ n%kam si uchov*vat p@)slu&n[ hodnoty, pokud je chceme pozd%ji n%jak pou()vat.¢P@. Nelze pou()t: POKE 53760, PEEK╱53760$-1 !!!¢