C128 İçin Püf Noktaları (40)
LİSTE PROGRAMI
BASIC programlarınızın listesini printer'dan aldığınızda ne olduğunu anlayamadığınız veya sizin anlayıp da başkalarının anlayamadığı çeşitli şekiller görürsünüz. Veya PRINT komutunda yer alan boşluğun ne kadar olduğunu hesaplayamazsınız. Eğer yazmış olduğunuz programın printer'dan çıkan listesinin anlaşılır olmasını istiyorsanız Program Döküm Eki'ndeki PROGRAM3 (21. sayıya bakın)'ü yazın. Bu program sadece C-128'in BASIC'i için çalışacaktır. Programımızın bize yapacağı bir iyilik de program satırlarındaki komutlar arasına okunabilirliği sağlayacak boşluklar yerleştirmesi olacak. Programı yazdıktan sonra LİSTE adı ile kayıt edin. Kayıt bittikten sonra çalıştırın. Kısa bir süre sonra program sizden bazı parametreler isteyecek E ekran B büyük harf yerine geçiyor. Son olarak LİSTE yazın. Karşınıza program formatlı olarak gelecek. Kontrol karakterlerinin ters olarak basıldığına dikkat edin. İsterseniz programın bir kopyasını printer'dan alabilirsiniz. Programımızı kullanarak başka programların listesini almak için aşağıdaki adımları uygulayın; (1) POKE 46,192:POKE 49152,0:NEW Bu komut BASIC başlangıcını $C000 adresine alır. Eğer ? FRE(0) komutunu kullanırsanız 16K'dan daha az hafızanın kaldığını görürsünüz. (2) Programınızı LOAD ile yükleyin. ',8' burada çok önemli, bu şekilde program istediğimiz adres böylesine yükleniyor. Almak istediğiniz programı LOAD “progismi”,8,4 ile yükleyin. Çok önemli, bu şekilde yüklediğiniz program normal BASIC başlangıcına yükleniyor ve bizim programımızı silmiyor. Programımızdaki DR değişkeni Dr=0 ise programın listesi ekrana, Dr=1 ise printer ve ekrana gönderilecek.
Gerçek Zamanlı Saat
Günümüzde zaman çok önemli bir unsur. Artık birçok bilgisayarda kendi içinde çalışan bir sistem saati bulunuyor. Bizim bilgisayarımızda da bu saati TI$ kullanarak ayarlamak mümkün. Ancak bu saate güvenerek yola çıkarsanız yolda kalabilirsiniz. Çünkü bu saat geri kalıyor. Program Döküm Eki'ndeki PROGRAM4 (21. sayıya bakın)'ü yazdığınızda geri kalmayacak bir saate kavuştunuz demektir. Programda yer alan DATA satırların çoğu sprite tanımlamalarına ait. Eğer isterseniz programı sprite'lar olmadan da çalıştırabilirsiniz. Sprite'lar olmadan programın çalışması için 780-1080 arasındaki satırları bu iki satır da dahil olmak üzere yazın. 950 numaralı satırı,
6298 THEN VAR”:END
şeklinde değiştirin. 1070 numaralı satırı ise,
1070 DATA 24,105,48,153,255,3,136
şeklinde değiştirin. RUN STOP/RESTORE tuşlarına bastığınızda saatimiz kapanacak.
C-128 DOS yardımcısı
Commodore disket sürücüleri akıllı araçlardır. Kendilerinin RAM, ROM ve CPU'ları vardır. Bilgisayar disket sürücüye komutlar verir. Disket sürücü de verilen komutları ne şekilde yerine getireceğine karar verir. Buraya kadar her şey iyi güzel ama kullanıcının disket sürücü ile arasındaki iletişim pek iyi değil. Gerçi BASIC 7.0 sayesinde artık disket sürücü ile anlaşmak çok kolay ve zevkli ama yazılan komutlar birazcık uzun. Oldukça kısa sayılabilecek bir program sayesinde tek tuşa basarak disketle haberleşebileceğiz. Bunun için Program Döküm Eki'ndeki programı yazmak gerekiyor.
Programın ne kadar yararlı olabileceğini göstermek için bir örnek verelim. Mesela disket işlemlerinde bir hata yaptınız ve kırmızı ışık can sıkıcı bir şekilde yanıp sönmeye başladı. Normalde yapmanız gereken
Şey,
10 OPEN 1,8,45:İNPUT 1,H.DS$,TS,S$
20 CLOSE1
30 PRİNT H:DS$;TSS$
yazmaktı. Ama bizim programı yazıp çalıştırırsanız bütün yapmanız gereken '©' tuşuna basıp RETURN tuşuna basmak olur. Bu komutun BASIC 7.0'daki karşılığı ise,
PRİNT DS$
dır. Programın çalışması ile kazandığınız komutları sadece direkt modda kullanabilirsiniz. Eğer disket sürücü ile bir programda haberleşmek istiyorsanız BASIC komutlarını kullanmanız gerekir. Programı yazmak için C-128 modunda F7'ye basarak veya MONITOR komutunu vererek Monitör'e geçin. M başlayarak 1AEF'ye kadar programı yazın. Programı çalıştırmak için,
BLOAD “dosya-ısmı”:SYS 6656
yazın. Dosya-ismi yerine programı sakladığınızda kullandığınız ismi kullanın. Programı yazmayı bitirdiğinizde X komutu ile monitörden çıkın ve programı çalıştırmadan evvel diskete saklayın:
TO P6896
Programı çalıştırdığınızda disketle hiç zorluk çekmeden anlaşmanızı sağlayacak mükemmel bir İşletim Sistemi'ne sahip oldunuz demektir. Program BASIC tarafından kullanılmayan adresleri arasına yerleşiyor. Ancak başka bir makine dili program bu alana konursa etrafta karışıklıklar ortaya çıkar. Bundan başka program, $0C00'da yer alan RS-232 girdi buffer'ını da komut dizilerini incelemek için kullanır. Eğer programı etkisiz hale getirmek istiyorsanız komutunu kullanın. Tekrar çalıştırmak için SYS 6656. Bütün SAVE, LOAD, VERIFY ve DIRECTORY komutları 8 numaralı disket sürücüye gönderilir. Eğer başka disket sürücünüz varsa komut içinde onun numarasını yazmanız gerekir. '6' komutu herhangi bir dosyayı saklanmış olduğu adresten başlayarak yükler. Herhangi bir dosyayı BANK0'dan başka bir yere yüklemek için BLOAD komutunu kullanmanız gerekir. Programın çalışması ile birlikte kullanabileceğimiz komutları görelim:
Komut İşlevi © Disketin durumunu bildirir. > Disketin durumunu bildirir.
© veya > Disket sürücüye komut gönderir. Mesela: © S0:dosya-ismi (dosya silmek için) © R0:yeni-isim = eski-isim * veya * directory almak için. Mesela: * (bütün disket kataloğu) $* =S (Bütün SEQ dosyaların kataloğu) / dosya-ismi Basic program yüklemek için #dosya-ismi = ,Basic programı yükler ve çalıştırır 9 dosya-ismi Makine dili ile yazılmış programı yükler. Bir dosyayı diskete kayıt eder. VERIFY işlemini yapar. Programdan çıkılır.
< -dosya-ismi dosya-ismi
PREG |
Bilgisayarınızda var olan ama el kitabında yer almayan bir komut öğrenmek ister misiniz? Üstelik bu komut makine dili ile uğraşıyorsanız oldukça yararlı bir komut.
Komutun formatı: PREG A,B,C,D
A, B, C, D değişkendirler, A değişkenine Accumulator'ün değeri, B değişkenine X yazmacının değeri, C değişkenine Y yazmacının değeri, D değişkenine ise prosesör durum (P) yazmacının değeri geçirilir. Bu komut sayesinde makine dilinden BASIC'e veri geçirmek mümkün olur. Ters yönde bilgi aktarmak isterseniz yani BASIC'ten makine diline aktarmak için yapmanız gereken;
SYS 3072,A,B,C,D
Bu işlemi C-64'te gerçekleştirmek için BASIC'e aktarmak istediğiniz değerleri 780-783 arasına yerleştirip daha sonra PEEK komutu ile okumanız gerekir.
CP/M
Eğer işletim sistemi ile çalışıyorsanız, birçok programın 80 kolon çalıştığını fark etmişsinizdir. Eğer 80 kolon çalışma imkânınız yoksa CTRL tuşu vasıtası ile 80 kolonluk ekranı parçalar halinde görmek zorundasınız demektir. Ancak bu yol devamlı olarak bu şekilde çalışmak zorunda iseniz can sıkıcı olabilir. Çünkü ekranın bir ucundan diğer ucuna gidebilmek için 10 defa tuşa basmanız gerekiyor. Bu soruna en iyi çare 80 kolonluk bir monitör edinmek ama 40 kolonla da en iyi ne şekilde geçinebiliriz onu görelim. CTRL-P komutu sayesinde ekranda bulunan hemen her şeyi yazıcıya aktarabilirsiniz. İkinci bir CTRL-P ko-
mutu yazıcıya aktarma işlemini durdurur. Birçok yazıcı 80 kolon yazabildiği için zorluk çektiğiniz ekranları yazıcıya aktarabilirsiniz. Bu çözüm yazıcının işleri aşırı yavaşlatmasından dolayı kısa bir süre sonra sabrınızı taşırabilir. DEVICE komutu 80 kolonluk ekranın daha ufak bir alana basılmasını sağlar. Bunun için ekran gösterim parametrelerini değiştirmek gerekir. Bir deneme yapalım. F3 tuşuna basarak veya DIR yazarak DIRECTORY alın. A> mesajı çıktıktan sonra.
A > DEVICE CONSOLE (COLUMNS = 35)
yazıp RETURN'e basın. F3'e basarak tekrar directory alın. Ortaya çıkan tüm yazıların 35 kolonda gösterildiğini göreceksiniz. Ne yazık ki, bu işlem tüm programlarda çalışmıyor. Bazı programları 80 kolonda göstermek için ısrar edi-
yorlar. Bu duruma bir örnek görmek isterseniz HELP komutunu deneyin. Eski duruma dönmek için.
DEVİCE CONSOLE |(COLUMNS — 80)
komutunu yazın. 80 kolonluk bir ekranı görebilmek için en azından 10 kere tuşa basmanız gerektiğini söylemiştik. Bu sayıyı azaltmak için ne yapabiliriz? Sistem disketinde bulunan KEYFIG.COM programını deneyelim. Sistem disketinde değişiklikler yapmak zorunda olduğumuz için ilk önce sistem disketinin bir kopyasını çıkaralım. Bunun için boş bir disket alın. FORMAT.COM programını kullanarak disketi formatlayın ve PIP.COM programı yardımı ile kopyalama işlemini gerçekleştirin:
AŞPIP
Bu komutu verdiğinizde sistem disketinizin bir kopyasını elde etmiş olursunuz. Artık bu kopya üzerinde çalışabiliriz. KEYFIG yazarak bu programı çalıştırın. Karşımıza çıkan ilk soruya,
DO YOU WANT HELP? N yanıtını vereceğiz. Programın geri kalan kısmını menüler yardımı ile rahatlıkla kullanabiliriz. Seçenekler üzerinde hareket edebilmek için klavyenin sağ üst kısmındaki kursor tuşlarını, seçiminizi yapmak için RETURN tuşunu kullanın. Aşağıdaki seçimleri yapalım. 1. Tanımlamaların kaynağı: CP/M boot disketi 2. Bir tuş tanımlamayı seçin. (EDIT A KEY) 3. Tuş tanımlama ekranı çıktığında NOKEY gözükecek. tuşuna basın, bu tuşun dört değerini göreceksiniz. NORMAL değer opsiyonunu seçin. 4. ASSIGN A STRING seçeneğini seçin. 5. 11 dizisini seçin (<Ekran sola> <Ekran sola> <SC) 6. EXIT STRING EDIT seçin. Yaptıklarımızı saklamak için, SAVE ASSIGNED STRING'i seçin, tuşunun tanımının değiştiğini göreceksiniz. tuşuna basın, F7 tuşunun dört değerini göreceksiniz. NORMAL değeri seçin. 8. ASSIGN STRING'i seçin. 9. 12 dizisini seçin. (<Ekran sağa> <Ekran sağa> <SC) 10. EXIT STRING seçin ve SAVE ASSIGNED STRING'i uygulayın, 11. DONE EDITING'i seçip EXIT AND SAVE WORK'ü uygulayın. 12. Dosyanızı CURRENT tanımlamalar olarak saklayın. Daha fazla ilerlemeden şu ana kadar yaptıklarımızın çalışıp çalışmadığını kontrol edin. DO YOU DO ANYTHING ELSE? N şeklinde yanıt vererek bu programdan çıkın. A> DIR komutu verin. 80 kolonda gösterilen directory alacaksınız. F7'ye bastığınızda ekran 20 kolon sağa doğru ilerleyecek. Bir kere daha F7'ye basarsanız 80 kolonluk gösterimin sonuna geliriz. F4 tuşuna iki kere basarak başa dönebiliriz. F4 ve F7 tuşlarının halinden memnunsanız bu değişikliği kalıcı yapalım. Tekrar KEYFIG programını çalıştırın. Program başladığında CURRENT tanımlayıcıları seçin. Bir sonraki menüde, EXIT AND SAVE YOUR WORK FILE'ı seçerek kendi üretmiş olduğunuz CP/M disketine saklamayı gerçekleştirin. Artık F4 ve F7 tuşları için yapmış olduğumuz değişiklikler kalıcı hale geldiler. Ne zaman bu disketten yükleme yaparsanız F4 ve F7 tuşları yeni tanımları ile gelecekler. Bu yöntemi izleyerek tüm tuşlara istediğiniz tanımlamaları kendinize ait bir CP/M disketi Yaptığınız değişikliklerden memnun kalmazsanız her zaman bu programı çalıştırıp DEFAULT seçeneği ile başa dönmeniz mümkündür. DEVICE MONITOR(COLUMN = 35) komutu ile yeni yaptığınız dosyaları 40 kolonluk görüntü verecek şekilde ayarlayabilirsiniz. Şimdilik hoşça kalın.