  Ŀ
  Ŀ
                                                                          
               "Programlama Sanat Anahtar Disketi" Utility               
                                                                          
  ٳ
                                       Recep Tezkol (tezkolr@doruk.com.tr)  
  




   PSAD... Bu ad ok aradm dnyorsanz yanlyorsunuz.
    "Programlama Sanat Anahtar Disket Hazrlama" adn verdiim bu programa
    ancak bu isim verilebilirdi. "Hazrlama" kelimesinin ilk harfini sylenii
    kolay olsun diye PSAD'a eklemedim. Ne kadar zekiyim deil mi?..

    Programlama Sanat Anahtar Disket hazrlama, programlarn kopyaclardan
    korumak isteyen programclarn iine yarayacan umuyorum. PSAD nedir,
    nasl iler gibi sorulara cevap vermeden nce bu programn yazlmasnn
    arkasndaki garip dnceyi sizlere aktarmak istiyorum.

  Geenlerde bir arkadamdan telefon aldm (satn almadm canm, yanlzca o
   beni telefonla arad ve konutuk). Oyun programlar pazarlayan bir tand
   iin "Kopyaclara kar alnabilecek herhangi bir nlem var m?" diye
   soruyordu.

   Bunu karlkl konuarak bir zm bulunabileceini syledim. Kendi
   kendime tamam dedim, bu iten iyi bir para kaldrrz artk. Szleerek
   ertesi gn bulutuk. Ben karmda bir programc beklerken oyun kopyalayarak
   yasa d program satan birini grnce bu iin olmayacan syleyerek
   oradan svtm.

   Kopyac, kopyaclktan yaknyor! Hayret dnyann sonu gelmi. Hazr fikir
   yakalamken bunu deerlendirmenin iyi olacan dnerek PSAD' yazmaya
   koyuldum.

   Anahtar disket, program krclarn ne kadar zorlar bilemiyorum ama yine
   de bir nlem. imdi gelelim programn ne olup ne olmadna,


   Kullanm
>  
   PSAD, anahtar disket iin kullanlacak disketi hazrlar. Bunu HD 3.5
   in disketin kullanlmayan 80. track'n formatlayarak gerekletirir.

   Bildiiniz gibi bu tip bir disketin her track'nda 18 sektor bulunur.
   PSAD 80. track'n ilk 17 sectrn normal (sektrde 512 byte), 18.sektr
   ise, sektrde 1024 byte olacak ekilde formatlar.

>  Ardndan seri numaras eklinde dneceimiz rasgele 10 adet (1 byte
   uzunluunda) rakkam 1. sektrn bana yazar. Bu ilemler sonucu disketin
   kullanlan sektrlerinde hi bir deiiklik yaplmaz. Bu nedenle diskette
   veri bulunsa da hi bir ekilde veriye zarar gelmeyecektir. Bu ilem sonucu
   PSAD bize saklamamz iin 10 adet rakkam vereceini sylemitim.

   Bu rakkamlar kopya koruma rutininde kullanacaz. Kopya koruma rutini
   (program nerede olursa olsun) A: srcsnde bulunan disketin,
   track 80, sektr 1'de bulunan bilgileri okumaya alr.

   Eer srcde disket yoksa veya nceden hazrlanan anahtar disket dnda
   bir disket varsa bu sektre eriemeyecei aktr. Ki eriimin mmkn
   olduu durumda 10 adet rakkam kontrol edilir, bu rakkamlar birbirlerini
   tutmuyorsa veya 18. sektrn konrtol olumsuz ise rutinimiz geriye olumsuz
   bir sonu dndreceinden programn almas reddedilebilir.


>  Program C ile yazmaya altm. Bildiiniz gibi C dilinde pek tecrbem
   olmad iin baz blmlerde Assembly dilini kullandm. Programda bir
   ok deiiklikler yaplabilir. Bu ekilde gvenlik daha da arttrlabilir.


>  Kontrol program KONT.C adnda bu alanda yer alyor.


>  Kontrol rutini interrupt 13h'n okuma (2) ve kontrol (4) fonksiyonlarn
   kullanma dnda baka esprisi olmadndan BASIC, PASCAL ve ASSEMBLY
   programclar bu rutini kolayca kendi programlarna uyarlayabilecekleri
   dncesiyle programn C'de yazlm halini veriyorum.

   Karlatnz problemleri severek cevaplandracam unutmamanz
   isterim.