gerekir; bunun yanısıra çarpışma- ları belirlemek için VİC'in çarpış- ma registerinde sürekli olarak PE- EK yapmak gereklidir. C-128'de ise interrupt yönetimli çalışan iki komut yeterlidir. Bunlar sayesinde BASIC programı, Yaratıkların ha- reketi sırasında çalışmaya devam eder, fakat herhangi bir Yaratık çarpışması durumunda hızlı bi- çimde reaksiyon göstermek için otomatik olarak kesilir. Müzikal BASIC Benzer bir konfor da, C-ö4'ten alınmış olan synihesizer elemanı SİD'in programlanmasında görü- lüyor. Artık tüm müzik parametre- lerinin DATA yığınları halinde SID'e POKE edilmesi gerekmiyor; bu iş için kolay anlaşılabilir bazı BASIC komutlarının kullanılması yeterli. Örneğin VOL komutu, sesin yük- sekliğini ayarlıyor; SOUND komu- tu ile ses üreteçlerinden biri hare- kete geçiriliyor. Bu arada karşılık gelen parametreler aracılığıyla yalnızca frekansı değil, sesin sü- resini ve hatta yükselme ve sön- mesini de belirlemek mümkün. Her ENVELOPE komutu ile, mü- zik enstrümanlarına ilişkin olası on ses eğrisinden biri tanımlanır. Dar- be genişliği ve dalga türünün ya- nısıra attack, decay, sustain ve release (Yükselme, düşme, dur- ma ve kaybolma) de aynı şekilde belirlenir. Olası on eğrinin her bi- ri, başka bir ENVELOPE komutuy- la aynı numaraya yeni bir eğri ta- nımlanıncaya kadar bellekte sak- lanır. C-128 açıldığı anda on eğrinin tümü, farklı enstrümanların ses ya- pısıyla birlikte önceden tanımlan- mış olarak hazır durumdadır: Pi- yano, akordeon, sirk orgu, davul, flüt, gitar, klavsen, org, trompet ve ksilofon. Bunların yanısıra, mü- ziğe yeni başlayanlar için bir sü- rü kullanılabilir ses efekti de bu- lunmaktadır. FİLTER komutuyla, SID'in ses yabancılaştırmaya yö- nelik tüm filtre olanakları kullanı- labilir. PLAY kormnutu, zincirlerde sak- lanmış durumda olan noktaların otomatik olarak çalınmasını sağ- lar. Parametre olarak verilmiş olan zincirlerde, çalınacak nota- lar başta olmak üzere, eğri, ok- tav, volüm, ton kanallı ve filire hak- kında bilgiler içerilebilir. Notalar, adları verilerek (A,B,C,D,E.F.G) ko- layca seçilebilir. Tabil, tek tek no- talar, yarım nofa indirilebilir veya yükseltilebilir. Ayrıca tam, yarım, dörtlük, sekizlik ve onaltılık nota- lar (İstenirse her biri noktalı olarak da) yaratılabilir. Kuyruk Kullanarak Müzik PLAY komutu da interruptla kul- lanılabilir. Bunun anlamı, çalına- cak notaların bir ses kuyruğuna, yani reserve edilmiş bir bellek alanına yerleştirilmesidir. İnterrupt (kesme) sırasında, işletim sistemi, ses verilerinin kuyrukta bekleyip beklemediğini tespit eder. Eğer böyleyse, ilk değer kuyruktan alı- nır ve çalınmak üzere synthesizer çipine (SID) aktarılır. Kuyrukta bek- leyen diğer ses verileri birer sıra öne kayarlar. Sonraki kesmelerin her birinde, öngörülmüş ses süre- sinin dolup dolmadığı deneflenir. Eğer dolduysa, yeniden bekle- mekte olan ses verilerine dönülür ve bu oyun böylece sürer, Daha önce de belirtildiği gibi, bu olayın tümü sistem interrupt'ı sı- rasında gerçekleşir. BASIC'in ken- disi buna ilişkin hiçbir şeyin “far- kiına varmaz”. Onun tek yaptığı, kuyrukta daha boş yer olup olma- dığını belirlemektir. Boş yer olması durumunda daha başka ses ve- rileri de eklenebilir ve müzik oto- matik olarak çalinirken program normal akışınca devam eder. An- cak çalınacak ses sayısı Ççok faz- laysa, program durmak ve kuy- rukta boş yer açılmasını bekle- mek zorundadır. Çok kullanışlı ve verimli BASIC'i- nin varlığına rağmen, C-128'de de makine düzeyine erişmeyi ge- rektiren durumlar olabilir. Bunun için 128'de POKE, PEEK ve SYS kul- lanmak gerekmez. Bank-Switc- hing ile açılıp kapatılabilen fark- li bellek alanlarının varlığı, çoğu zaman, POKE, PEEK ve SYS komut- larının hangi bellek bankına git- mesi gerektiği sorununu ortaya çÇı- karmakta. C-128 bu sorunu şayel basit bir yoldan çözüyor: BANK commodore — 63