Commodore sayı 17, sayfa 53

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 53

İşletim sisteminin RUN-STOP tuşunu kontrol etmesini şöyle sağlayabiliriz:

IF PEEK(4)—99 THEN PRİNT “BASILDI”

DDR ile İlginç İşler:

DDR nedir ve ne tür ilginç işler yapar? Birçok iş yapabilir. Prosesör portu esas olarak CIA'lar tarafından kontrol edilen Giriş/Çıkış Portlarıdır. Bu portun altı hattı vardır. Bunlardan üçü Dataset için ayrılmıştır. Bu hatlar hem giriş hem de çıkış olarak kullanılır. Hatların hangi yönde kullanıldıkları prosesör portu için DDR (DATA REGISTER “Veri Yönlendirme Sicili”) tarafından belirlenir: Adres 0. Adresin içeriğini BİT düzeyinde inceleyelim:

BIT3: Veri yönü dataset yazma BIT4: Veri yönü dataset tuşlarının durumu BIT5: Veri yönü dataset motor durumu Bit değeri 0=GİRİŞ 1=ÇIKIŞ Dataset yazma ve dataset motor durumu ÇIKIŞ'tır. Bunlar kasete yazma durumunda iken dataseti etkilerler. BIT4 ise daha evvel de belirttiğimiz gibi Datasette bir tuşa basılıp basılmadığını kontrol eder.

Dataset'te Program

Kilitleme Teknikleri:

Eğer DDR'deki bitleri değiştirirsek ne olur? Aşağıdaki POKE komutu BIT4'ü bir ÇIKIŞ hattı haline getirir: POKE 0,PEEK(0) OR 16 Bu komut sayesinde ne elde edeceğiz? Üstteki komutu girmemizle birlikte artık BIT4 datasetteki tuşların durumunu anlayamaz hale gelecek. İşletim sistemi PRESS PLAY ON TAPE mesajı verecek. İstenileni yapsanız bile işletim size OK veya LOAD veya SAVE mesajı göndererek memnuniyetini bildirmeyecek. Aşağıdaki POKE komutunu girerseniz bilgisayarınızı bu ümitsiz durumdan kurtarabilirsiniz.

POKE O, PEEK(0) AND NOT 2 4

Başka bir kilitleme yöntemi de BIT3'ü değiştirerek olur:

POKE 0, PEEK(0) AND NOT 2 3

Bu komuttan sonra her şey normal gidecek çıkmasını beklediğiniz mesajlar çıkacak, datasetteki tuşların durumu kontrol edilecek, SAVE komutu çalışır gözükecek, ama çalışmayacak. Normale dönmek isterseniz:

POKE 0, PEEK(0) AND NOT 8

Bu soruna çare aşağıdaki POKE komutudur. POKE 0, PEEK(0) OR 16

Müzikseti Olarak Dataset:

Evet yanlış okumadınız, datasetinizi müzik seti olarak kullanabilirsiniz. Nasıl mı? Program döküm ekinde bulacağınız programı yazıp çalıştırın. Datasetinize de sevdiğiniz bir müzik kaseti koyup PLAY tuşuna basın, televizyon veya monitörünüzün sesini açıp keyifle kasedinizi dinleyin. Ama bizden söylemesi: Datasetten elde edeceğiniz müziğin kalitesi için hiç de iyi şeyler söyleyemeyeceğiz, hayal kırıklığına uğramayın. Verdiğimiz programın yaptığı, prosesör portundaki üç GİRİŞ/ÇIKIŞ hattını kontrol etmekten ibaret. Dataset ile bilgisayarımız arasında kullanılmayan bir hat daha var: Dataset okuma (bu hat Dataset yazma hattına eşdeğerdir). Datasetten gelen bütün veri bu hattan gider. Fakat ufak bir problemimiz var: Bu hat diğer hatlar gibi prosesörde son bulmaz -CIA1'e kadar devam eder (böylece Seri Port'u bizim kullanımımıza açar). Bu yüzden 13. sicilini kurmamız gerekiyor: Aşağıdaki Makine Dili ile uğraşanlar için aynı programın Makine Dili'nde yazılmış şeklini bulabilirsiniz. 1A00 A0 00 LDY #$00 1A02 AD LDA $DC0D : CIA1'deki FLAG'ının kontrolü

C9 00 CMP # : Sinyal yok mu? FO 02 BEO : Evet-devam et 14A09 A0 OF : Hayir-Sesi kapat 8C 18D4A : ve 24 numaralı SID yazmacı A5 DS LDASDS : Klavyeyi oku 1A10 C9 58 CMP # 858 : 88-hiçbir tuşa basılmadı 1A12 FO EC BE© : Hiçbir tuş-devam et 1A14 60 RTS : BASIC'e geri dön

Bu ufak programımızı SYS 6656 komutu ile başlatın. Programımızın çalışma prensibi gayet basit: Sinyal kontrolü yapılır. Eğer sinyal varsa ses açılır, yoksa kapatılır. Sesi açıp kapama Makine Dili'nde mümkün olan en ufak döngü içinde yapılmaya çalışılıyor ama sonuçta korkunç bir ses ortaya çıkıyor.

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