Yalnızca Zekai Kraker değil, Siz de Program Kopyalayabilirsiniz
Retro bilgisayarBu işi yapabilmeniz için iki program gerekiyor. Birincisi makina kodu için BASIC loader (yükleyici), diğeri ise gerektiğinde makina kodunu çağıran BASIC driver (sürücü).
İki programı da doğru olarak girdiğinizde ve bu programları sakladığınızda (SAVE), artık kaset ve disketlerinizin kopyasını kendiniz alabileceksiniz. Bu işi iki şekilde yapabilirsiniz; ya disketten kasete, ya da kasetten diskete...
Biraz ağır çalışması sizi üzmesin! O kopyaları çekerken siz bir çay koyup kendinize, pencereden azıcık dışarıyı seyredin. Belki hava güzeldir, çıkın dolaşın biraz.
Bu programları yalnızca program file'lerinin kopyalarını almak için kullanabilirsiniz. Aynı programları sequential file'ler için kullanmak isterseniz; 'STATUS, file'ın sonuna erişildiğini bildirinceye kadar, bir baytlık bilgiyi okuyup bu bir baytlık bilgiyi yazacak şekilde programları kendiniz düzenleyebilirsiniz. En çok 34K'ya kadar olan büyüklükteki programlarla uğraşabilirsiniz.
Bu iki program bir işe yaramalarının yanı sıra, BASIC ve Makina Kodu'nun mutlu birlikteliklerinin ve mutluluğu nasıl sürdürdüklerini anlamanız açısından da oldukça faydalı programlar. İkisinin birlikteliklerinin nedeni ise; Makina Kodunun, BASIC'in asla yapamayacağı birtakım işleri başarıyla yürütebilmesi ve buna karşılık BASIC'in de, Makina Kodu için hiç de kolay olmayan birtakım işleri daha kolay ve basit bir yoldan halledebilmesi.
Bu programların yardımıyla, boyutları, 34K'dan büyük olmayan Makina Kodu ile yazılmış programları da kopyalamanız mümkün!
Şimdi bu kolaylıktan yararlanmak için Makina Kodu loader programını işletin. Bu arada programın $C000 adresine yerleşmesini uygun bulmuyorsanız, istediğiniz başka bir adrese yerleştirebilirsiniz, yalnız, adresi değiştirdiğinizde SYS komutlarını da değiştirmeyi unutmayın!
Bu programın dört fonksiyonu var!
1) Kasetten programı yükler
2) Kasette programı saklar
3) Disketten programı yükler
4) Programları diskete saklar
Girişler SYS komutları ile kolayca halledilebiliyor. Bu işi KERNAL'daki LOAD programı ile de yapabilirdik. Ama KERNAL LOAD programı, yeni programı o anda bellekte var olan programın (bizim Back-up programı) üzerine yüklüyor. Bu sorunu halletmek için, $1800'den, yani bizim programın bitiş adresinden başlayarak yükleme yapacak yeni bir LOAD (yükleme) programı yazıldı.
PROGRAMDAKI ÖNEMLI SATIRLARIN AÇIKLAMASI
Satır Ne işe yaradığı
100 Belleğin üst kısmını değiştirerek yazacağınız BASIC programların Makina kodu programlarla karışmasını önler.
110 İsimler için P$() 20'lik, Blok uzunlukları için C%() yine 20'lik diziler tanımlar.
120-150 Seçenekler menüsü ve girişler için kullanılmış.
160 140'da seçilmiş olan file'ları kasete yükler.
170 İsimleri olmayan file'lar için isim ister.
180 File'ları diskete yükler.
190 Diskette kayıtlı olan tüm file'ları basar. EOT (End Of Tape:Kaset sonu) işaretini aldığında çağırılır ya da kasette başka file kalmadığında GOTO 190 komutu ile işletilir.
210-220 Bir karakter yazılıncaya kadar bekler.
230-280 TBUFFR (Teyp Buffer:Kaset tamponu) içinden ID ve isim okumak için kullanılan subroutine (altprogram).
290-480 Disketin içindekilerinin listesini (directory) okumak ve eğer program file'ı ise kopyasının çekilmesini isteyip istemediğinizi işaretlemek için
kullanılan altprogram. 4K'nın saklanması için 90 saniye gerekli olduğunu düşünerek kasetin uzunluğunun hesaplanması. Kasetin 'C' uzunluğu her iki yüz içindir ki bulunan değer iki misli büyüklüktedir.
490-540 Disketten kasete. File ismi her seferinde TBUFFR'a konur.
550-650 Kasetten diskete.
550 Header'ı oku.
560 Sequential ise atla.
565 Eğer kasetin sonuna eriştiysen listeyi bas.
570 RAM'ı oku.
580 Eğer isim yoksa, girilmiş olan ismi ve bir sayı yaz.
600-650 File'ı sil ve sakla.