Amiga Dergisi sayı 2, sayfa 29

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 29

A7 register'ının gösterdiği adres belirli bilgileri içeren bir yığının başlangıcı. Bu bilgileri istediğimiz gibi değiştirerek istediğimiz işlemleri yaptırabiliriz. Bu adresin $28 byte ilerisinde hafızaya yükleme adresi, $2c ilerisinde yüklenecek bilginin diskette hangi byte'tan başladığı, $24 ilerisinde ise block olarak uzunluğu bulunuyor. Son olarak ta istediğimiz komutu veriyoruz, şu an için $02'nin Read komutu olduğunu bilin yeter. Son olarak ta Jsr -456(a6) komutu ile DOS (Disk Input Output) fonksiyonu çalıştırılıyor. Bundan sonra ise gerekli hafıza alanları ayrılıyor. DOS'un bir yararı daha, normalde DOS ile bir programı yüklerseniz yüklenen hafıza alanı otomatik allocate edilerek (yeri ayrılır ve başka programların bu alanlarda herhangi bir işlem yapması engellenerek) bu iş ayrılan bir listeye yazılır. Amiga hafıza işlemleri yaparken bu listeye bir göz atar eğer söz konusu adres bu listede varsa gerekli fonksiyonu gerçekleştirmez, çünkü bu adresin başka bir programa ait olduğunu bilir. Zaten bütün bu olay Multi Tasking'in ana prensibidir, bu sayede bir çok programı bir arada birbirine karışmadan çalıştırabiliriz. Fakat bizim yaptığımız olayda DOS kullanılmıyor ve dolayısıyla Amiga söz konusu adreslere bir program yüklediğini bilmiyor. Bunun sonucunda bir hafıza işlemi yapması gerektiğinde (Bir disketi tek drive'da kopyalamak gibi) burayı boş görür ve kullanır, dolayısıyla kendini yok eder ve program çakılır. Eh bu da bir bilgisayarı kandırmanın bin bir yolundan bir tanesi idi. Aslında bütün gelişmeler bu tür kandırmacalı yollardan geçer. Böylece bilgisayarın normalde yapamaması birçok şey kısa zamanda haline gelir. Umarım bir Bootblocker olma yolunda size yardımcı olabiliyorumdur. Programlar veya açıklamalar konusunda bir sorun çıkarsa bana yazın. Yeni bir sayıda yeni bir bootblock ile buluşmak üzere, hoşçakalın.

KIVILCIM HİNDİSTAN

Bootblock 2 findresident: — Egu -$60 dolo: Edu -$108

Uzunluğu <512'ye bölerek bulduğunuz sayı> Block=<İşaretlediğiniz ilk blok>

ilk blok>

boot: dc.b 'DOS'0 del O Burası sonradan Seka tarafından del 880 ;Degstirelecek Start: Bist — Beg — XCopy Boot et: lea — dosnamalpc),at ;Klasik boottan Dosa cikis isr fndresicent(a6) dü.a0 moveg #0,d0 Dosname: dc.b — 'dos.library'O XCOPY: Move ;EXECBASE Movel AD- move UZUNLUK move.w #$0002,$001c(a1) ;RFAD isr — -456(a6) lea.l $70000,a1 isr — -204(a6) abs İsr $70000 isr $teoooo Reset

Klavyeyle gezinmek için ← ve → tuşları.