Program Döküm Eki sayı 34, sayfa 3
Sayfanın metni

Sayfa 3

vermeyecektir; her iki resim de ayrı dosyalar halinde diskette olmalıdır. Bundan sonraki soru ekranların bitişik veya arada boşluk olacak şekilde basılmasıyla ilgilidir. Bunu B veya A ile cevaplayın. Program bundan sonra resmi yüklemeye geçer ve printer'a gönderir.

Program 4 ekran pencerelerini basmaya yaramaktadır ve bu da en başta bir dosya ismi isteyecektir. Herhangi bir şey yazmadan direk olarak RETURN'e basarsanız program hafızadaki resmi basacaktır. Baskıdan önce basmak istediğiniz bölgenin koordinatlarını vermeniz gerekmektedir. Bu amaçla keypad'in tuşlarına basarak sprite pointer'ı (kursor'a benzer imleç) hareket ettirin. 5 tuşu en ortadadır ve diğer tuşlarda pusula yönlerine göre almaktadırlar. Deneme olarak 7 tuşuna basın ve sol üst köşeye gidin. ENTER tuşuna basarak bulunduğunuz noktayı tesbit edin sonra da 3 tuşuyla aşağılarda bir yere gidin ve pencerenin sağ alt köşesini ENTER ile tesbit edin. Bu belirtilen bölgenin kapsamı printerdan çıkacaktır. Ancak 64 modunda bazı grafikler kullandıysanız bu grafiklerde bazı karışıklıklar olabilir. Bu durumda 180'inci satırdan sonra şu komutu vermelisiniz.

POKE 8184,56: POKE 8185,57

Son program ise C 128'in sahip olduğu 8 sprite'ın o sıradaki şekillerini basacaktır. Diğer programlarda olduğu gibi başta dosya ismi sorulduğunda sadece RETURN'e basacak olursanız sprite hafızadaki sprite desenlerini printer'a yollayacaktır. Spritelar hafızada 3584-4096 adreslerinde saklanmalıdırlar ve sprite definition modundan (SPDEF) tanımlanabilirler. Programı kullanırken dikkatli olun çünkü hafızadaki yüksek çözünürlükteki resmi bozabilir.

Her ne kadar bu programlar tek amaçlı olarak düşünülmüşlerse de bunları kendi programlarınızın içine koymak hiç de sorun olmayacaktır. Ayrıca bu programın daha önceki sayılarda verdiğimiz ARTİST 128 grafik programı ile uyumlu olduğunu ve o programla kaydettiğiniz yüksek çözünürlüklü grafiklerin bu programlar tarafından printer'a basılabileceğini hatırlatmakta yarar görüyoruz.

PROGRAMIN ÇALIŞMA PRENSİBİ

Bu tür basım programlarını yazmanın zorluğu ekranın hafızada saklanmasından doğmaktadır. 8000 byte'lık bitmap haritası herbiri 320 byte'lık 250li gruplardan meydana gelmektedir. Bu 320 byte'lık her satır da ayrıca 8'erli olmak üzere 40 gruba bölünmüştür. Bu 64 bit'lik yani 8 byte'lık bölge bir ekran karakterini belirten 8 x 8'lik karakter matrisine eşdeğerdir.

İşte bizim problemimiz de burada yatıyor. Eğer elimizde 8 yazı noktalı bir kafaya sahip printer olsa işimiz kolay ancak Commodore printer'larının çoğunda 8 yerine 7 yazı iğnesi bulunuyor ve ekrandan doğru bitleri seçip kâğıda yazmak bir dert halini almakta.

Ancak C 128'in SSHAPE komutu bu problemi ortadan kaldırıyor. SSHAPE komutu dörtgensel bir şekli yüksek çözünürlükten alarak bir diziye (string) çevirir. Eğer bu diziyi ASC veya MID$ ile incelerseniz karakterlerin ekran şekli ve buna ek olarak her bir bilgisayar byte'ının bir kopyası olduğunu görürsünüz. Böylece ekranın printer'a basımı en sağ kenardan başlar ve bilgisayar 7 pixel sütunu SSHAPE yapar. Makine dili rutini byte değerlerini ikiye bölüp 128 ekler çünkü printer karakter değerlerini 128-255 arasında kabul etmektedir.

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