Amiga Dünyası sayı 23, sayfa 34

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 34

DERLEYİCİLER

OFFSET_BEGINNING kullanırsanız, file'ın başına erişebilirsiniz.

Seek fonksiyonunda file pozisyon ofseti, file uzunluğunu aşacak konuma gelmişse DOS üzerinden Seek Error mesajı gönderilir. Bu mesajı algılamak için Seek'in geri verdiği değeri kontrol etmeniz gerekmekte. Bu değer -1 ise IOErr fonksiyonunu kullanarak hatanın ne olduğunu öğrenebilirsiniz.

DateStamp Bu fonksiyon, sistem saati ayarlanmışsa, saatin o anki içeriğini bize bildirir. Fonksiyonu çağırmak için 3 longword'luk boş bir alanın başlangıç adresini d1 register'ına vermeliyiz. Fonksiyon DOS library'sinde ve çağırmak için kullanacağımız ofset de -192 (=-$c0). Fonksiyonu çağırdıktan sonra boş olan 3 longword, tarih ve saati bildirir. İlk longword, 1 Ocak 1978 tarihinden itibaren geçen gün adedini bize verir. İkinci longword ise saat 00:00'dan itibaren geçen dakika adedini verir. Son longword ise en son dakika artırımından sonraki clock adedini bize verir. Bu değeri de 50'ye böldüğümüzde saniyeyi öğrenmiş oluruz. Aşağıdaki ufak rutin bize tarih ve saati alışık olduğumuz biçimde verir.

GETCLOCK: move.l DOSBASE,a6 move.l #ADRES,d1 jsr -192(a6)

lea ADRES.a0 move.I 0(a0),d0 divu #365,d0 move.I d0,d1 swap d1 and.I #$ffff,d0 and.I #$1ff,d1 move.I d0,d2 divu #4,d2 move.I d2,d3 swap d3 and.l #$ffff,d2 and.I #7,d3 sub.l d2,d1 add.I #1978,d0 move.l d0,YIL

move.I #-1 ,d5 clr.l d6 lea AYTABLE.a1 AYLOOP: add.l #1 ,d5 add.l (a1,d5),d6 cmp.l d1,d6 bgt AYLOOP sub.l #1,d5 move.l d5,AY

sub.l (a1,d5),d6 sub.l d6,d1 move.l dl.GUN

move.l 4(a0),d0 divu #60,d0

move.l d0,d1 swap d1 and.l #$1f,d0 and.l #$3f,d1 move.l d0.SAAT move.l d1, DAKİKA

move.l 8(a0),d0 divu #50,d0 move.l d0.SANIYE

rts

ADRES: del 0,0,0 SANİYE: del 0 DAKİKA: del 0 SAAT: del 0 GUN: del 0 AY: del 0 YIL: del 0

Eh, bu aylık da ne yazık ki yerim doldu. Fakat bir hayli teorik ve pratik bilgi kapmış olduğunuzu umarım. Pratiğinizi geliştirmek için verdiğim tüm fonksiyonlarla ilgili ufak tefek örnekler yapmanız faydalı olur. Hoşçakalın...

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