Commodore sayı 30, sayfa 28

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 28

Veri aktarımında herhangi bir hatanın olup olmadığının denetimini arabirim bizzat üstlenmiş durumdadır. Bozuk byte'ların değiş tokuşu (ya da tekrarlanması), üreticinin (gönderen bilgisayarın) yazılımı tarafından gerçekleştirilmek durumundadır. 5. ve 6. bitlerin anlamı, Tablo 3'te görülüyor. Bir MIDI bağlantısının varlığında burada yalnızca A ve B bir anlam taşımaktadır (68B50, başka türde seri bağlantı kullanımlarında da yararlı olmaktadır). 6. bit, MIDI bağlantısında daima sıfırdır, 5. bit ise gönderim Interrupt'unu açar. Eğer bir bayt kablo üzerinden başarılı bir biçimde gönderilmişse ve gönderilen veriler sicili yeni baytları bekliyorsa, gönderim Interrupt'unun açık olması (B) durumunda bir IRQ gerçekleşir. 7. bit, aynı şekilde alıcı Interrupt'unu açar. Bu durumda ise bir IRQ'nun gerçekleşmesi, bir baytın tümüyle varmasıyla olur. Kaliteli MIDI programlarında bu mutlaka “1” olmalıdır, böylece gelen baytlar derhal alınan veriler sici-

Yönetim sicili: Bölümleme oranı — Aktarım hızı Bit 1 Bit 0 1:1 2 MBaud 0 0 1:16 125 KBaud 1 0 1:64 31,25 KBaud 1 1 Arabirim elemanını başlangıç durumuna getirir (Master Reset) Tablo 1. Bu bitler aktarım hızını belirler Yönetim sicili bit Veri biti Stop-bit — Format 4 3 2 0 0 0 7 2 Çift A 0 0 1 7 2 Tek B 0 1 0 7 1 Çift C 0 1 1 7 Tek D 1 0 0 7 1 Tek D 1 0 0 8 2 Yok E 1 0 1 8 1 Yok F 1 1 0 8 Çift G 1 1 1 8 Tek H Tablo 2. UART 6850'nin aktarım formatları Gönderme kontrol bitleri ta Send Format 0 0 Engellenmiş 0 A 0 1 Serbest 0 B 1 0 Engellenmiş 1 C 1 1 Engellenmiş/ 0 D kesme sinyali gönderiyor linden güvenli bir bellek alanına aktarılabilir. Aksi takdirde gelen baytın bir sonraki tarafından silinmesi olasılığı vardır. Durum sicili, aktarma işlemine ilişkin bilgileri içerir. Alınan veriler sicili dolu olduğunda, yani bir bayt alındığında, 0. bit “1” olur. Arabirim elemanı gönderilen veriler siciline yerleşmiş olan bayttan kurtulduğunda, durum sicilinin 1. biti dolu olur. 2.-4. bitlerin MIDI programlanması açısından özel bir önemleri yoktur. Tabloda bu bitlerin verilmesi, eksik sanılmamaları içindir. Eğer yazılım, alınan bir baytı alınan veriler sicilinden zamanında okuyamamışsa, 5. bit “1” olur. İyi programlanmış MIDI yazılımlarında, yukarıda da belirtildiği gibi, böyle bir durumun ortaya çıkmaması gerekir. Bu kuralın pek istenmeyen istisnaları, Interrupt'larla yönetilen her veri aktarım işleminde meydana gelebilir. Bu durum, bilgisayarın işletim hızının ayarlanmış veri aktarım hızına (örneğin 2 Mbaud) yetmediğini ya da veri alım rutininin yeterli hıza erişmediğini ortaya koyan bir göstergedir. Durum sicilinin 6. biti, pariteli bir aktarım formatı kullanıldığında önem kazanır. Eğer bu bit doluysa, son olarak alınan bayta dikkat edilmelidir, çünkü UART bir parite hatası buldu demektir. Arabirim elemanı, durum sicilinin son defa kullanılmasından sonra bir Interrupt gerçekleştirdiyse, 7. bit “1” değerini alır. Böylece bir Interrupt-servis rutini, MIDI arabiriminin bir IRQ verip vermediğini denetlemiş olur. Döküm 1 adıyla yayınladığımız Assembler programı, MIDI standart formatındaki verilerin Interrupt'larla yönetilen alınmasını ve gönderilmesini sağlayan rutinleri içeriyor. Alınan ya da gönderilmek üzere belirlenen baytlar her defasında 256 baytlık bir ara belleğe depolanır. Böylece bu rutinlere dayalı kullanımlar, aktarımdan bağımsız olarak çalışabilirler. Aktarılacak baytlar kullanıcı program tarafından 51987 adresinden (BASIC, Assembler'de $CB60) başlayan rutinler üzerinden çıkış çember arabelleğine iletilir. Esas çıkış ise Interrupt sırasında gerçekleşir. Alınan baytlar aynı şekilde bir Interrupt gerçekleştirirler ve IRQ servis rutini tarafından giriş çember arabelleğine iletilirler. Oradan BYTEGET ($CB1D, ondalık 51997) rutini aracı-

Tablo 3. Yönetim sicilinin gönderme kontrol bitleri

Klavyeyle gezinmek için ← ve → tuşları.