Bu sayfadaki yazılar
Sayfanın metni
Sayfa 51
Komut düzeltin veya iptal edin. 32,SYNTAX ERROR,00,00: Komut kanalına gönderilen komut, 40 karakterden daha uzun. Kısaltın. 33,SYNTAX ERROR,00,00: OPEN veya SAVE komutunda dosya adı belirlenirken ? veya * kullanılmış. Dosya adını düzeltin. 34,SYNTAX ERROR,00,00: Muhtemelen gönderilen komutta **:” karakteri ile komutun ve dosya isminin ayrılması unutulmuş. Komutu düzeltin. 39,FILE NOT FOUND,00,00: Profesyonel kullanımlar için ayrılmış &-tipi bir dosya aranıyor ama bulunamıyor. 50,RECORD NOT PRESENT,00, 00: Relatif bir dosya yaratırken veya bu dosyaya yeni kayıtlar eklenirken ortaya çıkarsa, aslında bir hata değildir. Sadece, o ana kadar yaratılmamış bir bilgi blokunun yaratıldığını belirtir. Ancak, relatif dosyayı oku- Ma sırasında, daha önce yaratılmamış bir blok numarası gönderirseniz bu hata ortaya çıkacaktır.
IN RECORD, 00,00: Relatif dosyaya yazılması için gönderilen bilgi blokunun uzunluğu (return kodu dahil), en başta dosyayı tanımlarken verilen uzunluktan daha fazla. Artan karakterler dikkate alınmaz.
52,FILE TOO LARGE, 00,00: Relatif dosya artık disketin kapasitesinin üstünde bir uzunluğa ulaşmış veya disketin alamayacağı kadar büyük bir kayıt numarası yaratılmak isteniyor.
60,WRITE FİLE OPEN,00,00: Daha önce yazılmak için açılmış bir dosya kapatılmamış ve sonra da okunmaya kalkışılmış. OPEN komutunda M türünde bir okuma yapabilirsiniz. 61,FILE NOT OPEN,00,00: Daha önceden açılmamış bir dosyaya hitap ediliyor. Ya dosyayı açın ya da dosya adını kontrol edin.
62,FILE NOT FOUND,00,00: Disketin üzerinde olmayan bir dosya yüklenmeye veya açılmaya çalışılıyor. Dosya adını düzeltin. 63,FILE EXISTS,00,00: Diskete gönderilen dosyaya verilmeye çalışılan bir isim, daha önce disketteki başka bir dosyaya verilmiş. Adı değiştirin.
64,FILE TYPE MISMATCH,00, 00: OPEN komutu ile verilen dosya tipi, disket üzerindeki dosya tipi ile uyuşmuyor. Kontrol edin.
65,NO BLOCK,TR,SE: Block-Allocate komutu ile iptal edilmek iste- 'nen blok zaten önceden iptal edilmiş. Bu durumda DOS, TR/SE ile en yakın boş blok numarasını verir. Eğer başka boş blok yok ise, ikisi için de 00 gösterilir. TRACK OR SEC-
TOR,TR,SE: Blok komutları sırasında, disket üzerinde olmayan bir
TR/SE'e hitap edilmiş. TRACK OR SEC-
TOR,TR,SE: Bir dosyayı oluşturan blok zincirinde yeralan bir blok, aslında varolmayan başka bir blok nu- Marasını işaret ediyor.
70,NO CHANNEL ,00,00: DOS'un sahip olduğundan daha fazla haberleşme kanalı kullanılmaya çalışılmış.
71,DIR ERROR,TR,SE: BAM'- daki boş blok sayısı ile hafızadaki boş blok sayısı birbirine uymuyor. Disketi intialize edin.
72,DISK FULL,00,00: Ya diskette 3 bloktan az yer kalmış ya da 144 dosyadan fazla isim tanımlanmış.
73,CBM DOS V2.6 1541,00,00: Açıldıktan hemen sonra komut kanalında bu mesaj durur. Bir kere okununca yok olur. Hata olarak ortaya çıkması, ancak daha eski COMMODORE disket sürücüleri ile hazırlanmış disketlere, yani format kodu 2A olmayan disketlere bir şeyler yazılmaya çalışılınca olur.
74,DRIVE NOT READY,00,00: Disket sürücüsüne disketi takmadan hitap ederseniz, bu hata ortaya çıkar. O sı
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 50
1541'in yapacağı, disketteki dosya1, dosya2... olarak belirlediğimiz dosyaların içeriklerini vereceğiniz yeni isim altında tek dosya halinde yeniden oluşturmak. Eğer eşit işaretinin sağ tarafına sadece bir tek dosyanın adını vermişseniz, sonuçta o dosyanın yeni bir kopyasını çıkarmış olursunuz. Bu işlemi sadece SEQ dosyalar üzerinde yapmanızı öneririz. PRG ve REL dosyalarının özel yapıları vardır ve böylesine bir arka arkaya ekleme işlemi onları bozar. Ancak bir tek PRG dosyasının yeni bir kopyasını yaratmanızda mahzur yok. Birkaç örnek görelim:
OPEN 1,8,15,“COPY:A1 - DDD,ZZ”:CLOSE 1 OPEN 3,8,15:PRINT : DENI,FF”CLOSE 3 OPEN D,DD,ZZ”:CLOSE 1 OPEN 3,8,15:PRINT ? 3, 3
INITIALIZE (İlk hale getir)
Daha önce de belirttiğimiz gibi, her diskete ayrı ID vermenin önemi çok büyüktür. Gene de aynı ID ile formatladığınız iki disketiniz varsa ve bu iki disketi birbiri peşi sıra 1541'e takmanız gerekiyorsa, aradaki disket değişimini 1541'e bildirmeniz gerekir. ID aynı olduğu için kendiliğinden anlayamayacaktır. Bu olaya Initializing adı verilir ve şu şekilde kullanılır:
OPEN 1,8,15,“INITIALIZE”': CLOSE 1 veya CPON 1,8,15,“1”:CLOSE 1 veya OPEN 1,8,15:PRINT 1, “INIİTİALIZE”: CLOSE 1 veya OPEN 1,8,15:PRINT : 1,“1*': CLOSE 1
Eğer profesyonel bir program yazıyorsanız ve bu program kullanıcının disket değişikliği yapmasını istiyorsa, her disket değişiminden sonra bu komutu göndermeye özen gösterin. Daha garantili olur.
VALIDATE (İyileştirme)
Disketin üzerinde dosyaların bloklar kapladığını biliyorduk. 1541'in directory içinde sakladığı bilgiler arasında, daha sonra da göreceğimiz gibi, geriye kalan boş blokların disket üzerindeki yerlerini belirleyen bir tür harita da vardır. Bir disketin üzerinde çok sayıda dosya silme ve kaydetme işlemi yaparsanız veya bir dosyayı açtıktan sonra CLOSE ile kapat- Mayı unutursanız, 1541 biraz şaşırıp, disketteki boş blok sayısını daha az zannedebilir. Arada sırada bu boş blok haritasını ve açık kalmış dosyaları temizlemek için VALIDATE komutu kullanmakta yarar vardır. Aşağidaki türlerden biri yeterli olacaktır:
OPEN 1,8,15,“VALIDATE”: CLOSE | veya OPEN 1,8,15,“V”:CLOSE 1
veya OPEN 1,8,15:PRINT 21, “VALIDATE”:CLOSE 1 veya OPEN 1,8,15:PRINT 2:1, *V*:CLOSE 1
Örneğin, diskete dosya gönderdiğinizde, eğer yeteri kadar yer kalmamışsa, disk drive hata verecek-
541, kendisinin veya sizin neden olduğunuz hataları ekranda çeşitli mesajlarla bildirir.
tir. Ancak bu arada aslında var olan ama sizin dosyanızın sığmadığı eski boş bloklar dolu gibi görünecektir. VALIDATE ile bu boş blokları geri getirebilir ve daha kısa dosyaları kaydetmek için kullanabilirsiniz.
HATA MESAJLARI
00,OK,00,00: Her şey yolunda. Ya en son verilen komut hatasız yerine getirildi ya da 1541 bekleme durumunda. 01, FILES SCRATCHED,XX,00: Verilen SCRATCH komutu sonucunda disket üzerinden XX tane dosya silindi. 20,READ ERROR,TR,SE: Okuma hatası. Her blokun başında bulunan ve hayati bilgiler içeren başlık (header) kısmı, TR ve SE ile belirtilen blok için bulunamıyor. Disketi değiştirmeniz tavsiye edilir.
21,READ ERROR,TR,SE: Okuma hatası. Header içindeki SYNC sinyalini yaratan byte bulunamıyor. Ya disket takılı değil ya da disket formatsız. Veya disket sürücüsünün kafa ayarı bozulmuş veya kirlenmiş. Önce disketi formatlayın, olmazsa kafa ayarı yaptırıp temizletin. 22,READ ERROR,TR,SE: Okuma hatası. Header'ın kontrol toplamı yanlış çıkıyor. Büyük ihtimalle bu blok diskete hatalı yazılmış. 23,READ ERROR,TR,SE: Okuma hatası. Data blokunun kontrol toplamı hatalı çıkıyor. O disketteki bilgileri mümkün olduğu kadar başka bir diskete aktarıp eski disketi yeniden formatlayın. 24,READ ERROR,TR,SE: Okuma hatası. Kontrol toplamlarından birisi hatalı. O disketteki bilgileri mümkün olduğu kadar başka bir diskete aktarıp yeniden formatlayın. 25,WRITE ERROR,TR,SE: Yazma hatası. Her blok diskete yazıldıktan sonra otomatik olarak kontrol edilir. Eğer kontrol başarısız olursa, bu hata ortaya çıkar. Hataya yolaçan komutu tekrarlayın. Eğer gene aynı hata ortaya çıkarsa, TR/SE ile belirtilen bloku B-A (Block Allocate) ile iptal edin. 26,WRITE PROTECT ON,TR, SE: Yazma hatası. Kenarındaki girnitisi bir kâğıtla kapatılan disketler yazılmaya karşı korunmuştur. Ya başka disket kullanın ya da korunmayı kaldırın. 1541'in bu girintiyi rol eden fotoseli de kirlenmiş olabilir 27,READ ERROR,TR,SE: Okuma hatası. Header'ın kontrol toplamı yanlış çıkıyor. Büyük ihtimalle bu blok diskete hatalı yazılmış. Block- Allocate ile bu bloku iptal edin. 28,WRITE ERROR,TR,SE: Yazma hatası. Bir blok yazıldıktan sonra, bir sonraki blokun başı bulunamıyor. Ya disketi değiştirin ya da formatlayın. 29,DISK ID MISMATCH,TR, SE: Disketi formatlarken verilen ID, aynı zamanda her blokun header kısmına da yazılır. Eğer directory'deki ID ile bloktaki ID uymuyorsa bu hata ortaya çıkar. Ya blokta hata var ya da disketi initialize etmeniz gerekiyor. 30,SYNTAK Komut kanalına gönderilen bir komut, DOS tarafından anlaşılamıyor. Komutu gözden geçirin. 31,SYNTAX ERROR,00,00: COMMODORE'un daha büyük bilgisayarlarında olan ama 1541'in kullanmadığı bir komut gönderilmiş.