Bu sayfadaki yazılar
Sayfanın metni
Sayfa 23
Vedat Hallaç kaç aydır “Bana yazın. Sorununuz olursa, ne kadar basit olursa olsun. Çekinmeyin. Cevaplamaya diye diye dilimde tüy bitti, ama hiçbirinizi bana yazmaya ikna edemedim. Bu durumda iki ihtimal var: Ya hepiniz her şeyi en ince ayrıntısına kadar anlıyorsunuz, ya da yazdıklarımı bir tek ben okuyorum. Ben gene de ilk ihtimali göz önüne alarak, yazıda daha da ileri gitmeye karar verdim. Ama bu işi yaparken, bir de intro yapacağım. Daha doğrusu bu sefer introyu birlikte hazırlayacağız. “Bir intro hazırlamanın ilk ve en zor basamağı, kaba olarak nerede ne tür hareketler yapılacağına karar vermektir. Daha sonra bu hareketleri yaptıracak rutinleri düzgün bir şekilde ve en az belleği işgal edecek biçimde bir sıraya sokmamız gerekiyor.” diyebiliriz. Ama bu sefer her şeyi tasarlanmış bir intro yerine, “Şurada da şu işi yapalım.” diye diye, rutinleri kafadan atma yerlere çok da düzgün olmadan yerleştirerek gidelim. Biliyorum, bu söylediğim sistem şimdiye kadar söylediğim her şeyle çelişiyor. Ama, koşullar bu şekilde çalışmanızı gerektirebilir (Umarım gerekmez, çünkü bu şekilde bir intro bitirmek oldukça uzun zaman alır). Neyse. Sözü pek fazla uzatmadan intromuzu yapmaya girişelim. İntromuza ne koyacaksak koyalım, bir interrupt başlatma rutinine ihtiyacımız olacak. Bu yüzden yeterince geride olan $0900'e Tablo-1'de gördüğünüz standart programı yazarak ilk adımı atalım. Unutmayın, şu anda ne yapacağımıza karar vermediğimiz için $D012'ye verdiğimiz değerin bir anlamı yok. Yalnızca ilk interrupt parçacığını, $0900'e en yakın yuvarlak adres olan $0A00'a koymaya karar vermek oldukça yerinde olur. Çünkü, daha sonra $0900'de bulunan rutine sprite açtırma, grafik ekranına geçme, data taşıma gibi garip işler yaptırmaya karar verebiliriz. Rutinlerin neye benzediği ortaya çıktıkça, kısa bazı rutinlerle de $0A00'a kadar olan boşluğu doldurabiliriz. Şu ana kadar yaptıklarımız yeterince saçma geldi mi? Ne yazık ki çoğu programcı bu şekilde çalışır, ve programları genelde ilk denemede çalışmaz. Bu yüzden bu introyu yapmış stilimizi asla kendinize örnek almayın (Yani öğretmeninizin dediğini yapın, ama yaptığını yapmayın!). Şimdi ilk adımı attığımıza göre oturup düşünebiliriz (önce düşünüp sonra adımı atsaydık ya!!!). Ne yapsak hoş olur? Mesela bir kayan yazıyı yukarı aşağı oynatsak? Çok alanı kaplar ve o kadar da göz doldurucu değil! Ne yaparsak bu alanı doldururuz? Arkasına renkleri döşersek ta-
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 22
erhaba arkadaşlar! Elinizde disk sürücünüz varsa ve program yaptıktan sonra başkalarının programı yüklemesini istemiyorsanız ya da disketin listesini (Directory) görmesini istemiyorsanız bu yazıyı mutlaka dikkatlice takip edin. İlk başta size bir programın isminin disket üzerinde nasıl saklanacağını gösterelim. İlk başta elinizde bir program olmalı, bu programı kaydederken aşağıdaki gibi yapın. SAVE ““|SHIFT- PROG-RAM İSMİ”, 8 Burada SHIFT-SPACE, SHİFT tuşu ile SPACE tuşuna aynı anda basılarak elde edilmektedir. Daha sonra program ismini girin. Disketin directory'sini LOAD“$”, 8 ile istedikten sonra LIST deyin, karşınıza ODISKET İSMİ,ID 1 ““PROGRAM İSMİ PRG 663 BLOCKS FREE. READY. şeklinde liste çıkar. Eğer bu programı yüklemeye çalışırsanız karşınıza ““MIS-SING FİLENAME ERROR” ya da “FİLE NOT FOUND ERROR”' hatası çıkar. Peki bu programları nasıl yükleneceğini merak ediyorsanız onunda demin kullandığımız SHIFT-SPACE'i kullanarak yapacağınız yani LO-PROGRAM 1S- MI”, 8 yazarak başarabilirsiniz. Eğer bu koruma yöntemi size uygun gelmediyse size anlatmak istediğim daha bir sürü yöntem var. Evet gelelim bir başka yönteme, bu yöntemde ise DIREC-TORY içindeki harfleri görünmez hale getireceğiz ancak bu kilit sadece orijinal C64 modunda çalışmaktadır. Eğer elinizde dolphindos veya FINAL II varsa bu kilit işlememektedir. Neyse biz gelelim kilidin yapılışına kilit koymak istediğiniz programı kaydederken aşa- Bıdaki gibi yazın:
SAVE ““|DELİ PROGRAM ADI Mİ”,8 Eğer disketin directory'sine bakacak olursak karşınıza aynen aşağıdaki gibi liste çıkacaktır: ODİSKET İSMİ,ID 1“PROGRAM İSMİ” 663 BLOCKS FREE Ve directory'de gördüğünüz ismi yüklemeye karşılaştığınızda karşınıza “FİLE NOT FOUND çıkar çünkü programın gerçek ismini yüklerken girmediğinizden. Eğer programı yüklemek isterseniz aşağıdaki satırları girin: ADI (DELJİS-Mİ”,8
Eğer directory'nizin hiç görünmemesini istiyorsanız o zaman aşağıdaki kısa programı yazın ve kilitlemek istediğiniz disketi sürücüye takarak programı runlayın. :
10 OPEN 20 OPEN 15, 8, is 30 PRINT#15,"U1 30180" 40 PRINT#15,"B-P 3 144" 50 PRINT#3 ,CHR$(20)CHRS(20) CHRS$(0)CHRS(1 60); 60 PRINT#15,"U2 30180" 70 80 CLOSE 3:CLOSE 15
Tablo 1
Evet bu programı runladıktan sonra Directory'i istediğiniz zaman karşınıza LIST dedikten sonra READY mesajı çıkacaktır ve directory görünmeyecektir. Ancak bu kilitte Dolphindos ve Final III gibi modlarda çalışmayacaktır. Evet bu kilit ile tüm directory'i görünmez ha- 22
Murat Gezer le soktuk eğer directory'inin bir parçasını görünmez hale sokmak istiyorsanız bir boş disketi formatladıktan sonra görünmesini istediğiniz programları kaydettikten sonra aşağıdak satırı aynen girin; SAVE CHRS$(20)4 CHRS$(20) 4 “BLOCKS CHR$(0) * 4 CHRS(0) Bundan sonra kaydedeceğiniz tüm programlar directory'de görünmez olacaktır. Evet bir başka kilit yöntemi ise silinmiş programı tekrar hayata döndürmek bu yöntemde size tekrar yardımcı program gerekmekte ve tabiki bir tane de boş formatlı bir disk lazım bu diske ilk başta ana programı kaydettikten sonra daha sonra aşağıdaki programı yazıp kaydedin ancak bu sayıyı sakın karıştırmayın ve bu işlemden sonra diskete hiçbir şey yazmayın.
10 OPEN 20 OPEN 15,8,15 30 40 PRINT#15,"B-P 3 2" 50 PRINT#3,CHR$(130); 60 PRINT#15,'U23018 1" 80CLOSE15 9YÖCLOSE3 100 LOAD"ANA PROGRAM",
Tablo2 Evet bu programı yazdıktan sonra kaydedin ve ilk programı disketinizin üzerinden silin ve disket üzerine hiç bir suret ile hiç bir program kaydetmeyin artık disketinizin üzerinde sadece iki program bulunacak ve bunu yükledikten sonra bilgisayarınız ilk programı yükleyecektir. Ve tabiki başkaları sadece ikinci programı disket üzerinde görecektir. Hoşçakalın!!!