Example klasöründen 3D Field.BAS'ı açtığımda acayip bir uyarı verdi. Spectrum özürlü biri olarak "Sucsessfull completion or jump to a line number bigger than existing." diye devam eden bu mesaj iyi bir şey mi, kötü bir şey mi, onu bile anlamadım. Mesajlar biraz daha açıklayıcı olsa daha iyi olur.
Mesela önce bold olarak ayrı bir satırda Sucsessfull completion yazsa diğer açıklamar alt satırda olsa
Aslında o pencerede hiçbir hata yok, ama iyi tasarlanmamış olabilir evet. Bunu bir düşüneceğim.
Sinclair Basic'de 38 adet bildirim var, bunlar 0..9,A..R harfleri ile kodlanmış durumda. O kodlardan ilki:
Yani sıfırıncısı, "O.K." -- Yani sorun yok, program hatasız tamamlandı anlamına gelen 0: OK kodu.
Bu kodun kullanım kılavuzundaki karşılığı ise:
"Successful completion, or jump to a line number bigger than any existing. This report does not change the line and statement jumped to by CONTINUE."
yani
"Başarıyla sona ulaşma, ya da var olan en büyük satır numarasından daha ileriye zıplama." Yani verdiğin komut başarı ile işletildi diyor. Ama hangi komut? LOAD "" komutu. Bu da nerden çıktı? File > Open... yaptın ve bir BAS dosyası seçtin. Ama unutma ki Basinç bir
emülatör. Düşün ki c64 vice'ı almışsın, üzerine bir frontend geçirmişsin. Böylece normalde klavyeden yapman gereken şeyleri mouse ile yaptıran, teyp ile yapman gereken şeyleri dosya sistemine uyarlayan bir frontend. Basınç'ın altında Zx Spin isminde bir emülatör yatıyor aslında.
Sen bir bas dosyası seçtiğinde, o dosya Basınç tarafından önce tokenize ediliyor. Sonra bir teyp (tap) dosyası haline getiriliyor. Sonra sanki biri klavyeden LOAD"" yazıp enter'a basmış gibi bir simülasyon yapılıyor. Sonra zx spectrum ROM'u teypten yükleme yapmaya başlıyor. Basınç bu ROM alanını trap'leyerek normalde mic girişinden bir ses dosyası giriyormuş gibi hazırladığı tap dosyasını akıtıyor. Spectrum teypten yükleme yaptığını sanıyor. (Bu durumu daha iyi anlamak için şu programı basinç'a yaz ve çalıştır: 10 LOAD "" Program başladığında ROM'daki LOAD rutinleri basınç tarafından traplenerek dosya açma penceresi gösterilecek.) Sonunda basic programı zx spectrum'a yüklenmiş oluyor. Ve rom'daki LOAD komutu başarı ile sona eriyor. Ve işte bu anda sinclair basic, büyük bir gururla 0: OK, 0:1 (0= mesaj kodu, "OK"=mesaj açıklaması, 0:1= sıfırıncı satırın birinci komutu) göstermeye kalkışıyor. Bu sırada Basınç yine bu alanı trapliyor, o mesaj gösterilmeden önce bir pencere oluşturuyor, pencerenin başlığı yukarıdaki mesaj. Pencere içeriği
kullanma kılavuzundaki bilgiyle dolduruluyor. "Situation", kullanıcıya yardımcı ekstra bilgiler sunuyor. Eğer bu bir hata kodu olsaydı daha çok bilgi alacaktın. Altta bir "notify this error" seçeneği var, bunu temizlersen birdaha "0" kodlu mesajlar traplenmez. Yardım butonu detaylı bilgi sunuyor. Ok ile pencereyi kapatabilirsin.
Ama bu sende bir probleme yol açtıysa, sanırım tape yüklemesinden sonra OK mesajının görünmemesi için bir ince ayar geçmeliyim. Sanki programla ilgili bir sorun var gibi algılanmış, halbuki bu bir "tamam, sorun yok" mesajıydı.
Sadece kendi fontları TTF desteği de yok galiba.
Evet ttf desteği yok. Bu mecburi bir tercih, çünkü bu bilgisayarların 'basic'leri acaip karakterler basabiliyor, c64'de kupa, maça vs. gibi acaip karakterler vardı, c64'de onlar düzenleyebiliyormusunuz bilmiyorum ama, sinclairde de 21 adet düzenlenebilir UDG, 10 adet ROM grafik blok mevcut. Bunları string olarak sık sık kullanmak gerekiyor, özellikle sadece basic kullanarak birşeyler yapmanız gerektiğinde.
Sadece bu sebepten TT font kullanmak bir dez avantaj oluyor. Evet ben de sık sık düşünüyorum, bu grafik işini başka bir şekilde halletmeye çalışıp tt editör mü yazsam diye ama, belki başka bir hayatta olabilir
programın başlangıcına bir ufak bir kod yerleştirerek her program her açıldığında kendini pinglesen?
güzel fikir ama kimse takip edilmek istemiyor.
Kullanıcıya sormadan böyle birşey yapmak illegal. O zaman herkes opt-out edeceği için uğraştığıma değmez
Bu arada, senin c64 asm kullandığını bildiğim için söylüyorum, basınç' dahilinde bir asm editörü ve derleyicisi mevcut. Bazı fonksiyonları eksik olsa da, tamamen çalışır durumda. Ufak rutinleri yazmak için kullanılabilir. Örneğin hızlı ekran sildirme vs gibi. Direk hafızaya derleyip emülatörün infinite loop'a düşme tehlikesi olmadan kullanılabilir. Basınç'da başka emülatörlerde olmayan "Force BREAK" özelliği var, bu menü seçeneği CPU'yu yaptığı işten alı koyup, basic alanına sağ sağlim geri dönmesini sağlıyor (tabii basic'i corrupt etmediyseniz)