Commodore sayı 50, sayfa 46

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 46

3.... Ekran 4'den sonra gelen cihazlar Serial Bus'a aittirler: 4.... Yazıcı 8.... Disket sürücü

Yukarıdaki listede yer alan ikincil adres kullanılan cihaza özel bir sayıdır. Bu sayıyı cihazınızın el kitabından öğrenebilirsiniz (Özellikle farklı marka yazıcılarda çok önemlidir). Eğer ikincil adres kullanmak istemiyorsanız Y-registerine $FF değerini verin. Bu rutinin kullanımı akümülatöre ve registerlere uygun değerleri verdikten sonra JSR $FFBA ile gerçekleşir.

İsim: SETNAM Amaç: Dosya adının belirtilmesi Adres: $FFBD, desimal 65469 Hazırlık: İsmin uzunluğu akümülatöre, ismin adresinin alçak baytı X-registerine, yüksek baytı Y-registerine Hata: Yok Register: Akümülatör, X- ve Y-registerleri

OPEN ile açılacak olan dosyanın isminin yer aldığı adres alçak ve yüksek baytlar şeklinde iki registere yüklenir. Eğer dosyaya herhangi bir isim verilmeyecekse isim uzunluğu olarak akümülatöre 0 değeri verilir. Bu şekilde $FFD2 rutinini kullanarak printer çıktısı almak için gerekli tüm şartları sağlamış olduk, fakat $FFD2 işlem sonunda dosyayı ve çıkış kanalını kapatmamaktadır. Açık kalan kanallar printerin daha sonraki kullanımında sorun yaratacağı için iki kernal rutinine daha ihtiyaç duyacağız. CLRCHN giriş-çıkış kanallarını çıkış konumuna getirirken CLOSE ise açık bir dosyayı kapatmaktadır.

İsim: CLRCHN Amaç: Giriş-Çıkış kanallarının çıkış konumuna getirilmesi Adres: $FFCC, desimal 65484 Hazırlık: Yok Hata: Yok Register: Akümülatör, X-Register Bu rutinin kullanımı için JSR $FFCC satırı yeterlidir. İsim: CLOSE Amaç: Bir dosyanın kapatılması Adres: $FFC3, desimal 65475 Hazırlık: Dosya numarası akümülatöre yüklenir. Hata: 0 Register: Akümülatör, X- ve Y-registerleri

Şimdi yazıcıdan çıktı almamızı sağlayacak programa geçebiliriz. Gerekli tüm aşamalar en basit şekliyle Resim 2'de yer almaktadır. Önce SETNAM rutinini kullanacağız:

| CLOSE |

601CLDA $00 601E JSR $FFBD 6021 BCS $6053 Bu son satırda BCS ile Carry Bit'i kontrol edilmekte ve hata olduğu tak- dirde $6053 adresine atlanmaktadır. Akümülatörde sıfır değeri olduğu için dosyamız isimsiz olacaktır. Bundan sonra SETLFS gelmektedir.

6023 LDA $04 6025 6027 LDY $FF 6029 JSR $FFBA 602C BCS $6053 Bu aşamada 4 cihaz (yazı- cı) üzerinden 4 No.'lu bir dosya açıl- mıştır ve herhangi bir ikincil adres kullanılmamıştır. En sondaki BCS ise yine hata kontrolü yapmaktadır. Şimdi OPEN rutini: 602E JSR $FFECO 6031 BCS $6053 CHKOUT ile çıkış kanalı belirtilir. 6033 6035 JSR $FFC9 6038 BCS $6053 Bu şekilde tüm hazırlıklar tamam- lanmış oluyor. Metnin yazıcıya gön- derilmesi ilk programda olduğu gibi CHROUT ile gerçekleşir: GO3ALDY $00 603C LDA $6000, Y 603F BEO $604A 6041 JSR $FFD2 6044 BCS $6053 6046 INY 6047 JMP $603C Bütün harfler basıldıktan sonra CLRCHN rutinini çağrıyoruz. GO4A JSR $EFCC Son olarak da CLOSE: 604DLDA $04 604F JSR $FFC3 6052 RTS Böylelikle 4 No.'lu dosya kapatıl- mış oluyor. Programımızın son satı- rı şu şekilde olmalıdır. 6053 BRK Herhangi bir hata ile karşılaşıldı- ğında program bu satıra atlamakta ve BRK ile karşılaştığında durmaktadır. Bu aylık hoşçakalın....

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