Bu sayfadaki yazılar
Sayfanın metni
Sayfa 16
AMOS ile tarih
ve saat'i öğrenme
*Tarıhi öğrenir ve ekrana yazar : Print Param$ "Saati öğrenir ve ekrana yazar TİMES : Print Param$ | Procedure DATE$ "dos .İlbrary 'nin Date$tamp çağırılıyor )-Varpır(T$) “bü yılın İlk günü bulunuyor Do, HA and 3)-0 : - End İt
Ada | İNEM TENE "satir formuna sökülüyor 2) : — : : Endif YAŞ — Data Data 31.31,30,31.30,31
End Procedure TİME$ fonksiyonu çağırılıyor. TS) RİEN-Doscali(-192) hesaplanıyor 2) İfLen(H$)<2 : : | mod 60 2) "Saniyeler hesaplanıyor | | 2) | HLeniS$)<2 : : End! * Satır formu hazırlanıyor End ProofTİMESİ
İPEMEK KIZIMI İSTERSİN...
BULTAN'IN KİZİNİ (KOLAY. Mi BRE |
Bİ YU ONARABİLİR MİSİN çok PAHA Wim GÖREV PÜN AKŞAM, ROLDE Bi
TAM TERN BILEM
TAM YERİNİ BİLİYORUM. HEEY
Gö YEYİNCE he GERÇEKTEN ER. PENGYE/iN
GEMİ VERDİM SİTTİ KELOĞLAN.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 17
Bilindiği gibi Amiga, boot eden bir makina. Boot etmek, kısaca aletin diskten belli bir programı okuyup Dos'a çıkması olarak nitelendirilebilir. Bu olay PC'lerde böyledir. Yani disketten bir dos file'ı (Command.com gibi) okunur ve bundan sonra Dos ekranına; PC Shell veya Cli'ına çıkılır. Her ne kadar Amiga'da Dos sistemi disket üzerinde değil de Kickstart üzerinde olsa da sistemin boot etmesi gerekir. İşte bu noktada Amiga PC'den ayrılır. Disket takıldığında Amiga ilk önce Track-Disk ile bootbloğu okur. Bu 1K'lık kısıma bootblock adının verilmesi Dos'u başlatan kısa programın burada bulunmasından kaynaklanır. Eğer araştırırsanız piyasadaki bütün bootblock'larda (bazı oyun ve demolar dışında) bu küçük rutine rastlarsınız. Bu rutinin yaptığı iş Dos Resident structure'ını Rom'dan alıp kullanılır hale getirmektir. Bu yapıldığı zaman ilk önce varsa System-Configuration yüklenir, renkler, mouse hızı, pointer gibi ayarlamalar yapılır. Daha sonra Cli penceresi açılır, Cli task'i çalıştırılır, son olarak da Startup-Sequence yüklenip gerekli dosyalara ulaşılır. Piyasada bulunan boot utility'ler, boot intro'lar hep aynı mantıkla çalışır. İlk önce yapması gereken işi yapar (bir menu gösterir veya scroll text geçirir) daha sonra da Dos'a çıkar. Yukarıda anlattığım rutin yaklaşık 20 byte uzunluğunda. Bu da bize 1K'dan biraz daha az (1000 Byte) kadar bir yer bırakır. Normal Dos programları için çok küçük sayılabilecek bu 1K'da bootblock'tan oldukça iyi şeyler yapabiliriz. Zira bu 1K içindeki programın çalışması disk takılır takılmaz olmakta. Bu da bize en aşağı bir 5sn zaman kazandırmakta (virüs programlarına da öyle). Ayrıca buradan Dos kullanmayan programları (X-Copy gibi) çok çok kısa zamanda Track Disk device kullanarak yüklemek mümkün olur. İsterseniz kendi hazırladığım bir diskten örnek vereyim, Bu, piyasada kolayca bulabileceğiniz Kelp Disk adlı utility disketi, Bu diskin en büyük özelliği isteğe bağlı olarak, direkt bootblock'tan X-Copy'yi yükleyebilmesiydi. Dos ekranının gelmesi + Dos'tan X-Copy'nin yüklenmesi yaklaşık 14 saniye alıyordu. Ben X-Copy'yi bootblock'tan yüklenir hale getirince bu süre 4 saniyeye indi, Bu sadece küçük bir uygulama, küçük ama yararlı. Bootblock'tan bu tür birçok şey yapmaya imkan var. Tek ihtiyacınız olan biraz bilgi ve yaratıcılık. Tabii ki ilk önce bootblock yapısını bilmekte yarar var.
Bootblock disket takıldığında Çip Mem'in herhangi bir yerine yüklenir. Bu adres her makina için değişebilir, bu yüzden bootblock'ta sabit adreslerle çalışamayız. Diğer bir programlama şekli olan relocatable (yeniden yerleştirilebilir) programlamada ise program yüklendiğinde, hafızanın neresine yüklendiyse oraya göre kendini ayarlar. Fakat bu da bootblock'ta işe yaramaz, zira bu şekilde ancak DOS bir programı yükleyebilir, trackdisk değil. Geriye sadece iki yol kalıyor, ya biz küçük bir rutinle boot'u hafızanın belli bir yerine yerleştireceğiz ya da PC relative programlayacağız. İlk yöntem her ne kadar oldukça sık kullanılsa da pek pratik değil, zira zaten dar olan boot'u bir de yerleştirici rutinle daha da daraltmaya gerek yok. İkinci yöntemle programladığınızda ise hem programınız kısa ve hızlı olur hem de hafızanın neresine yüklenirse yüklensin, çalışır. Daha önce de söylediğim gibi bootblock sayesinde bir çok iyi iş yapılabilir. Kolayca anlamanız ve kendi rutinlerinizi yazabilmeniz için oldukça basit bir bootblock'tan başlıyoruz.
Bilindiği üzere Kick-Start 1.2 ve 1.3'te bulunmayan bir kontrol rutini yüzünden Amiga boot edildiğinde bazen ekran NTSC açılır. Bunu gidermek için aleti resetlemeniz yeterlidir. Bizim burada anlatacağımız program bunu sizin için otomatik olarak yapar, hem de ne startup-sequence'de ne de diskette yer kaplamaz, bootblock'a ilişiverir. Program iki ana bölümden oluşuyor. İlki, ekranın NTSC açılıp açılmadığını kontrol eden, eğer öyle açıldıysa tekrar reset eden rutin, ikincisi ise daha önce bahsettiğim Dos'a çıkış programı. Eğer biraz assembler bilginiz varsa programı kolayca anlayabilirsiniz. Fakat bu bootblock'u etmek için bazı şeyler yapmanız gerekir; MasterSeka kullanarak programı yazın, assemble edin, hata yoksa 'b boot' yazıp Return'e basın ve install edeceğiniz disketi drive'a takın ve şunları yazın. Ws <Return> Boot — 0 <Return> 2 <Return> Böylece bootblock hazırlanmış oldu. Bu örnek program üzerinde başka şeyler de yapabilirsiniz (değişik renk ile boot ettirmek gibi). Gelecek sayılarda biraz daha uzun ve ciddi işlerle uğraşmak üzere.
KIVILCIM HİNDİSTAN :Pal Booter findresident: Egu -$60 dolo: Egu -$tc8 boot: dc.b 0 ;<aBurasi sonradan 880 ; Seka tarafından Degistirilacek Start; Move.l — 4wab Base Pointer Move.b 530(a6),d0 ;VBlank Frekansi Movegb #$32,d1 — ;Palise $32 Cmp.b —di,d0 Beg — Boot Et Jsr $fc0000 degilse resetle Boot et:
lea Dosnamelpe),at ;Klasik Dos İst findresident(a6) ;Boot programı
— dü, a0 move.| — 22(a0), a0 moveg — #0,dü fis Dosname: "dos.İibrary',0 de.b "Pal Enforcer" de.b "Amiga Dergisi icin SAGE/T,O.N." de.b " tarafından yazilmistir" | Lengih-"-boot