RUN/STOP'a bastıktan sonra noktaların yeraldığı satırın başına gi- din istediğiniz metni yazın. *6000 MERHABA ...0 ikrsrsaran ? Metnin sonuna RETURN tuşunun ASCİ kodü olan desimal 13 ve $0D'nin yazılması ekran görünümü açısından her zaman için yararlıdır. Ayrıca yazdırmak istediğimiz metnin sonunda bir de BRK komutu yeral- malıdır. Bunun için monitör progra- mında iken “M 6006”' satırın girip is- tediğiniz değerleri yazabilirsiniz. Şim- di asıl Assembler programa geçelim, Programımız $601C'den başlayacağı için “A 601C” satırını yazın ve aşa- Bıdaki satırları girin. 601C LDY $00 GÜTE LDA $6000, Y 6021 BEO $602C Burada yapılan iş asılnda oldukça basittir: Metnimizin yazılı olduğu ha- fıza bölgesindeki baytlar teker teker okunup akümülatöre yüklenir. Bu iş- lem BEO komutuyla kontrol edilir ve meltnin sonu gelinceye kadar (BRK — $00) tekrarlanır. Burada Y-Repisteri indeks olarak seçilmiştir ve programın bundan son- raki bölümünde döngü içerisinde de- ğeri bir arttırılacaktır. 6023 JSR $FFD2 6026 BECES $602D Daha önce belirttiğimiz gibi kernal rutini kullanılırken ortaya herhangi bir hata çıkarsa Carry Bit'i **1”” de- ğerini alır. BCS komutunun yukarı- da kullanılmasının nedenide budur. 602D adresinde BRK komutu bulu- nacaktır. 6028 INY 6029 JMP $601E 602C RTS 602D BRK Aslında burada G 601C ile prog- ramı çalıştırabiliriz, fakat bu sefer Yarklı bir yöntem kullanacağız. Bu- nun için öncelikle X ile monitör prog- ramını terkedin. Ardından aşağıda- ki üç satırlık Basic programı yazın. “Out Of Memory Error' mesajı ile karşılaştığınızda NEW yazarak hafı- zayı temizlemelisiniz. 10 PRİNT CHR$ (147) 20 SYS 24604 : REM 24604 -— $601C 30 END RUN yazdığınızda $601C adresin- den başlayan makine dili programı- mızın işleyişini gözleyebilirsiniz. Bu yaptığımız $EFD2'deki CHRO- UT rutini ile yapılabileceklerden sa- dece biridir. CHROUT'un çıkışı yap- tığı kanal ekrandır ve numarası 3'dür. Eğer çıkış yapılacak kanal nu- marasını değiştirirsek CHKOUT ru- tini ile yazıcıdan da çıktı alabiliriz. Yalnız bu iş için CHKOUT ve OPEN rutinlerini öğrenmeliyiz. İsim: CHKOUT Amaç: Çıkış kanalının belirtilmesi Adres: $FFC9, desimal 65481 Hazırlık: X-Registerine dosya nu- marası verilir. Hata: Akümülatör, X-Register Beğer Mesaj Anlam |0 | BREAK RUN/STOP basılmış | İ TOO MANY FİLLES En fazla 10 dosya açılabilir 2 FILE ÖPEN Açılmış bir dosya tekrar açılamaz 3 FILE NOT ÖPEN Dosya açılmamış 4 FIİLE NOT FOUND Dosya bulunamadı > DEVİCE NOT PRESENT Cihaz hazır değil 6 NOT INPUT FİLE Bu dösyadan veri ökunamaz $ NOT OUTPUT FILE Dosya yazılamaz 8 MISSING FIİLENAME Dösya ismi eksik 9 İLLEĞAL DEVİCE NUMBER Yanlış cihaz numarası Resim 1 Register: Akümülatör, X-Register Daha önce OPEN ile belirtilmiş her kanal bu rutin kullanılarak çıkış için kullanılabilir. Yalnız burada kullanı- lacak kanal çıkış yapmaya uygun ol- malıdır, aksi takdirde bilgisayar ha- ta mesajı verir. Ayrıca CHKOUT kullanılmadan önce muhakkak OPEN kullanılmalıdır. Isim: OPEN Amaç: Bir dosyanın açılması Adres: $FEFCÜ, desimal 65472 Hazırlık: SETLEFS, SETNAM Hata: 1, 2, 4, 5; 6 Register: Akümülatör, X-Register Bu rutin kullanımı için sadece JSR SFFCO satırı yeterlidir. Yalnız bun- dan önce SETNAM ile dosya adı ve SETLEFS ile açılacak dosya kanalı be- Tirtilmiş olmalıdır. Şimdi bu iki ruti- ni,inceleyelim: İsim: SETLFS Amaç: OPEN için çıkış kanalının belirtilmesi Adres: SFEFBA, desimal 65466 Hazırlık: Dosya numarası akümü- latöre, kanal numarası X-registerine, ikincil adres Y-registerine yüklenir. Hata: Yok Register: Yok SETLFES ile OPEN rutininde kul- lanılacak cihazın numarası ve ikincil adresi bilgisayara bildirilir. Cihaz nu- marası O ile 31 arası herhangi bir sa- yı olabilir, ancak C-64'de sadece aşa- gıidakiler mevcultur. 0.... Klavye 1.... Datasette 2.... RS232C-Kanalı 45