LORD”"$”,8BE0PENİ ,440MDİ:LIST PRIİNT#1:CLOSEİ Ayrıca, kâğıdın yarısından çoğu boşa gider ve düzensiz bir görünüşe sahip olur. Hele bazı program isimle- ri, normal harf, sayı ve grafik karakter- lerinden farklı bazı karakterlere sahip olduğunda, yazıcı bunlara değişik tepkiler göstermekte, kimi zaman bas- mamakta, kimi zaman ise kontrolden çıkmaktadır. Bazı disketlerin directory'- leri ise üretici firma tarafından, yükle- me sırasında bilgisayarı sonsuz dön- güye sokacak biçimde hazırlanmıştır. İşte bizim programımız tüm bu zor- lukların üstesinden gelecek, Bir kere kâğıda 3 ayrı disketin directory İistesi yanyana basılacak, böylece kâğit is- rafı ortadan kalkacak. Hatta, eğer ya- zıcınız MPS802 ise bir sayfaya 90 satır basılacak (normalde 66 satır). Bundan başka, her disket için ayrıca bir baş- lık verilebilecek. Yükleme işlemi sade- ce bir tuşa basarak başlatılabilecek. Bütün karakterler kontrolden geçirile- cek ve basılamayacak olanlar yerine “2“ basılacak. Sonsuz döngüler önle- necek ve sonuçta her şey düzenli bir görünüşe sahip olacak. Şimdi bu programımızı satır satır açıklayalım. 10: Bir karakterin basılıp basılama- yacağını öğrenmek için kullanacağı- mız fonksiyon. Eğer kontrolünü yaptı- ğımiız karakter kodu, 32'den küçükse veya 127-160 arasında İ ıse bcısılcımcı— yacak bir karakter dem 15: Kullanacağımız degışkenlerı be- lirliyoruz: 20-30: Gerekli sabitler yerine yerleş- tiriliyor. 31-41: Sırası gelen disketin takılma- sı ve bir başlık verilmesi bekleniyor. 42: Başlık, sonuncu karakteri boşluk olan toplam 24 karaktere tamamlanı- yor. Bu arada ZG hangi disketle (O, 1, 2) uğraştığımızı gösteriyor. 45: Daha o disketteki hiçbir dosya okunmadığı için dosya numarası -1'e eşmenıyor İlk dosya sıfırnumaralı ola- ak. 50 90: Komut kanalı ve depo açılı- yor. Disketin adı okunuyor ve her ka- rakteri kontrol ediliyor. Toplam 16 ka- rakter okunduğunda, disket adı DNS içinde hazır oluyor. Bu arada 0 numa- ralı SECTOR'ün okunduğu TU*5'de işa- retleniyor. Bunu sonsuz döngüyü ön- lemek için kullanacağız. 4100-140: Disket ID'si okunuyor, kont- rol ediliyor ve DN$”e ekleniyor. En son- da da oluşan isim ve |D ekrana bası- lliyor 120 140: Her TRACKdaki boş blok sa- yısı BAM'dan okunarak toplanıyor. An- cak 18. TRACK'daki yani directory ta- rafından kullanılan TRAC'daki boş yer- ler bizi ilgilendirmediği için orayı atlı- 150: Artık dosyaların okunmasına 18/01'den başlayabiliriz. 160: Eğer o bloku daha önceden okumuşsak, sonsuz döngü başlıyor demektir. O dıskeîı okumayı birakabi- liriz demek k 'Iö1 G bloku okuduğumuzu işaret- liyor 462—170; Sırası gelen bloku depoya okuyup. İlk iki byte'dan bir sonraki T&$ 3 Dosya tiplerini saklamak için ! Üç disketteki dosya isimlerini saklamak için BLZ : üç disketteki dosyaların uzunluğunu saklamak için FRZ ! üç disketin kalan blok sayısları için DN$ : üç disketin adları için HD$ : üç disketin başlıkları için Zi$ * Dosyanın korunmuş olup olmadığını saklamak için Ze& : Dosyanın açık olup olmadığını saklamak için TUXZ : Bir SECTOR'ün daha önce okunup okunmadığını bilmek için TRACK ve SECTOR'ü öğreniyoruz. 180: O bloktaki 8 dosyayı okumaya başlıyoruz. Önce göstergeci, sırası ge- len dosyanın dosya tipini gösteren byte'ina ayarlıyoruz. 190: Dosya tipini okuyoruz ve eğer sıfır ise, yani o yerde bir dosya ile ilgi- li bilgi yoksa, bir sonraki dosyaya ge- ÇİYOTUZ. 195-230: Dosya numarasını bir art- tırıp, dosya tipini belirten harfi ve dos- yatipinin “*” veya ( karakterlerine ih- tiyacı olup olmadığını saptayıp, dos- ya adının içine yerleştirerek saklıyoruz. 250-280: Sırası gelen dosyanın adı, her karakteri kontrol edilerek okunup, harf harf NS'in içinde oluşturuluyor. En sonunda da, daha önce belirlenen dosya tipine eklenerek o dosya İle il- gili basılacak satır oluşturuluyor. 290-300: Dosyanın blok uzunluğu okunup hesaplanıyor. 305-310: O dosya ile ilgili bilgiler ek- rana basılıyor ve bir sonraki dosya ile ilgili işlemlere geçiliyor. 320: O blokdaki dosyalar bittiğinde eğer hâlâ okunacak başka bir blok varsa, tüm işlemler yeni blok için de tekrarlanıyor. 325: Boş blok sayısı ekrana yazılıyor ve o disketle ilgili tüm okuma işlemle- ri bittiği için açılmış olan kanallar ka- patıliyor. 330: Eğer daima üç disket okunma- mışsa, tüm işlemler yeni bir disket için tekrarlanıyor. 340: Artık üç disketten toplanan bil- gilerin kâğıda geçirilme zamanı gel- di. Önce 6 numaralı kanaldan MPS802'ye satır aralarındaki boşlukla- Tı azaltan ve böylece sayfa başına sa- tır sayısını 90'a çıkaran komut gönde- riliyor. Sonra da üç disketin başlıkları basılıyor. 345 350: Disketlerin isim ve |D'leri ya- zıliyo 355 İlk iki satırın altı çiziliyor. Böyle- ce, bir bakışta kâğıttaki dosya isimle- rini bulmak MmümMkün olacaktır. 360-380: Artık her üç disketteki dos- yaların blok sayısı, İsim ve fipini yaza- biliriz. Her üç directory aynı uzunluk- ta olmayacağı için her satırda nere- ye kadar yazı yazılacağını kontrol et- memiz gerekir. Bunu 380-383'te yapı- yoruz. 385'te ise başka dosya adı kal- madığını anladığımızda, döngüyü bi- tiriyoruz. 390-392: Her disketin boş blok sayı- sını, belli bir uzunluğa getirerek bası- yoruz ve açtığımız yazıcı kanalını ka- patıyoruz. 395-420: Bilgisayar bir tuşa basma- mızı bekliyor. Eğer bu tuş sola bakan ok ise, MPS802'nin satır açıklığı norma- le döndürülüp program bitiriliyor. Eğer başka bir tuş ise program yeniden başlatılıyor. O 2A