Bu sayfadaki yazılar
Sayfanın metni
Sayfa 13
Artık bir program yazmanın zamanıdır. Bir osilatörü kullanacak yeterli bilgileri edindik. Aşağıdaki UFO sesi örneğini ele alalım. SID 1 programında önce SID registerlerini sıfırlıyoruz (son dördü dışındakiler çünkü onlar sadece okunabilen tipte). Daha sonra VOLUME registerlerini maksimuma ayarlıyoruz. Nedendir bilinmez hep bu maximuma ayarlanır. Bu işlemden sonra ATT, DEC, SUS ve REL değerlerini ayarlayarak sesimizin karakterini belirliyoruz. Bunlar uzun ATTACK ve yüksek seviyede SUSTAIN'e ayarlı DECAY ve RELEASE değerleri sıfırda. Ve Tanrı bir pardon gate'i 1 yapıyoruz, üçgen dalgayı seçiyoruz. Bu satırdaki 17 rakamını 33 (32 + 1) yaparak daha değişik efektler elde edebilirsiniz. Gate'e 33 verildiğinde dalga testere dişi karakteri taşıyacaktır. Şimdi frekansı devamlı kaydıracağımızdan onu döngü içinde değiştiriyoruz. Ve bu oyun böylece devam ediyor. İkinci olarak yine sadece bir tek osilatörü kullanarak ama bu sefer makine dilinde bir program vereceğim bunu yazıp joystiğinizi ikinci port'a takın ileri ve geri oynatarak ilginç efektler elde edeceksiniz. Açıklamaları bir dahaki sayıda.
88110 FOR
08156 GOT0O 118
20010 REM PROGRAM -MAHMUT C.GENCELİ
08020 REM TIRNAK ICİNDE ÖNCE SHİFT/CLR-HOME SONRA CONTROL/1 <896> 00230 POKE 53280,21POKE 53281,2:PRINT "<CLR><CTRL- İİ >LUÜTFEN
PROGRAM ADI : SID
00818 REM 'LERİ YAZMAYIN DAHA IYI CALISIR ©8015 REM TIRNAK İCİNDE <SHİFT/CLR-HOME)> VE <RYS ON> "<CLR><RYSONDU.F.O" 80830 REM TUM REGİSTER'LERİ SIFIRLA DOLDÜR 00048 Ts TO 24:POKE T 00850 POKE YOLUME MAKSIMUM 068068 REM ATT-15,DEC-0,SUS-15,REL-O 88076 POKE SI1D*4*5,240:POKE SI1D*4*6,240 80080 REM 080890 POKE ©8180 REM DEGİSKEN SESLER ICİN DONGÜU TO TO 88 80120 REM SADECE HI BYTE'INIİ KULLANIYORUZ 086130 POKE TiNEXT 08148 REM GİT BİR DAHA KAFA SISIR
PROGRAM ADI : SID 2
8 MART 1986
<164> <110> <098> <041> <234> <064> <113> <8619> <172> <156> <168> <132> <217> <235>
BEKLEYINIZ" 08002050 READ A<B THEN 88 <129> POKE 68 06888 IF CK<>12166 THEN PRİNT "<CLR>DATALARDA YANLISLIK V 80885 REM TIRNAK ICİNDE ÖNCE SHİFT/CLR-HOME SONRA 12 CRSR A SAGI, 6& CRSR SAGA <075> 686890 PRINT CİKMAK ICIN RUN-STOP/RESTO RE" <126> 681886 SYS TEM <125> 68110 DATA 06128 DATA 141,806,212,169,815,141,624,212 681386 DATA <249> 08148 DATA 024 <214> 08150 DATA 173,000,220,133,253,041,001,208 <248> 68168 DATA 085,236,251,076,2024,132,165,253 08178 DATA <05351)> 08180 DATA 192,144,007,165,252,141,001,212 <236> 081986 DATA 208,007,165,251,141,001,212,169 28200 DATA 017,141,804,212,162,030,202,208 <2826> 08216 DATA <247> 686220 DATA 208,073,001,141,032,208,141,033 <164> 082306 DATA <131> EE
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 12
Register'in üst 4 bit'i (bit 7-4). DECAY evresi aynı Register'in alt 4 bit'i (bit 3-0) ile programlanabilir. SUSTAIN ve RELEASE ile aynı düzende
6'ıncı Register'den kontrol edilebilir. TEPE DÜZEYİ ATTACK, İSTİKRAR DECAY diğerlerinde SUSTAIN, İSTİKRAR diğerlerini de RELEASE şeklinde verebiliriz. Büyük ATTACK değerleri sesin maximum seviyesine daha geç erişmesine, büyük DECAY değerleri sesin SUSTAIN değerine daha geç erişmesine, büyük SUSTAIN değerleri sesin uzama evresine maximuma daha yakın bir alanda girmesine, büyük RELEASE değerleri sesin yok olma süresinin uzamasına neden olur. Tersini de aynı mantıkla yazabiliriz. Küçük ATTACK değerleri sesin maximuma daha çabuk erişmesine neden olur gibi... Şimdi tekrar Register 4'e dönelim. Bu GATE (Kapı, bit 0) bit'i sesi başlatmaya yarar. Bu bit 1 olduğunda ses ATTACK evresine girer bu gerekli değere eriştikten sonra decay evresine girer, bundan sonra sustain evresine girer ve bu evrede kalır. Eğer şimdi GA-
YÜKSELME | iniş |
TE bit'ini 0 yaparsak ses RELEASE evresine girer ve kaybolur. Aynı Register'in üst 4 (7-4) bit'i ise dalga şeklini belirler. Örneğin üçgen dalga bir ses çıkarmak için 4'üncü bit'i seçmemiz gerek. Bunun değeri 16 olacaktır, buna GATE değerini de eklersek 16 + 1 sesin başlamasına neden olacaktır. Eğer şu ana kadar anlattıklarımı denediyseniz, hakkımda pek iyi düşünmediğinize eminim; sanırım 64 ses vermiyor. Yapacağınız şey en yakın Te-
leteknik yetkili servisine değil tabii. Genellikle ses ile ilgili cihazlarda volüm kontrolü yer alır, SID'imiz de böyle bir volüme sahip ama bu bildiğimiz bir düğme değil verdiğimiz rakamlarla programlanarak çalışıyor. SID'imizin volüm kontrolü 24'üncü Register'de yer alıyor. Bu Register 0-15 arasında ayarlanabilir (Reg 24, 0-3 bit volum kontroluna POKE SID + 24, VOL (0 <= VOL <= 15) şeklinde erişebiliriz.
m
! Tablo: SID Registerları Haritası ADDRESS REG DATA REG NAME REG Aş A3 A> Aş Aç (HEX) D; Ds D4 D3 D> Do Voice 1 TYPE 0 0 0 00 F7 Fe Fs Fa F3 F> Fi | fo FREO LO WRITE-ONLY 1 1 01 Fıs Fu | Fa Fı> Fn Fo Fa FREO HI WRITE-ONLY 2 o 1 o2 | Pw; | Pws | Pws | Pw, | Pw> PW> | | Pwo PW LO WRITE-ONLY 3 0 1 1 03 z Tİ | — Pm, wp | PWy PW HI WRITE-ONLY 4 o o 1 o 04 | | OVA | AVA | TEST Ne SYNC | GATE CONTROL REG WRITE-ONLY 5 o 1 0. 1 05 | ATK3 | ATK, ATK, | DCY3 | DCY, | bey, | ATTACK/DECAY WRITE-ONLY 6 0“ 1 o 06 STN3 | STN> | STN, RLS3 | RLS> Vs, RLSo SUSTAIN/RELEASE WRITE-ONLY Voice 2 o o 1 1 “1 07 F7 Fe Fs Fa F3 F> Fo FREO LO WRITE-ONLY 8 1 or <08 Fıs Fia | Faz Fır Fito Fa Fa FREO HI WRITE ONLY 9 0 1 0 1 09 PW> | PWs | Pws | Pw, | Pw3 | Pw> | Pw; | Pwo PW LO WRİTE-ONLY 10 0 1 0 1 0 ez — — | | PWo PWg PW HI WRITE-ONLY o 1 | AA | AAA | test | ERG | Sync | GATE conTRoL REG WRİTE-ONLY 12 o 1 1 hi h) oc | ATK> | ATK, OcY3 | | Dev, | ATTACK/DECAY WRITE-ONLİ 13 0 1 1 o 1 0D STN> | STN> > | SİN, | ALS) | RLS> | | RLSo SUSTAİN/RELEASE WRITE-ONL” Voice 3 14 1 1 1 o OE Er | Fe Fs Fi F3 | F> Fo FREO LO WRİTE-ONLY 15 0 1 1 1 1 OF Fıs Fra | Fı> Fa Fo Fg FREO HI WRİTE:ONLY 16 1 o 0 10 Pwz | Pws | Pws | | Pw3 | Pw> | Pwo PW LO ı7 1 o 0 o 1 11 Z | — - | | PWs | PWg PW HI WRİTE-ONLY 18 1 0 1 12 NOİSE | AA | Test | | Gate CONTROL REG WRITE-ONLY 19 1 1 1 13 ATK3 | ATK> | ATK, | ATKo | | | | ATTACK/DECAY WRITE-ONLY 20 1 0 1 o o YA STN3 | STN> | STN, | | TE RUS) | RUS, | SUSTAİN/RELEASE WRITE-ONLY Filter 21 1 0 1 1 15 E FCo 22 1 1 1 16 FCg FC; | FC3 FC HI WRITE-ONLY 2 Vu h) 1 1 1 ız | Res, | Res, | RES, | Der 3 | FiLT rn FILT A RESİFİLT WRITE-ONLY 24 1 1 0 o o 18 | | HP BP | VOL3 | VoL> | VOL, MODENVOL WRITE-ONLY — Misc. 25 Vin 1 o o 1 19 PX7 PX5 PX5 PX4 PX3 PXo POT x READ-ONLY 26 1 1 o 1 0 | Pre | İM | PYo POTY READ-ONLY 27 1 1 o 1 1 18 Or | Os 5 O, 03 | 0> O; Oo * READ-ONLY 28 1 1 o 1c Er Es & | a E> E, Eo READ-ONLY | LL kr Aa,