bilmiyorum kaç kişi zx spectrum programlama ile uğraşıyor ama 2011'den beri üzerinde çalıştığım Basınç'in yeni sürümünü bugün çıkarttım. Aslında 1 yıldır klasörümde duruyordu ama anladım ki daha fazla vakit ayırmam mümkün olmayacak. Neyse, içerdiği yeniliklerin başlıcaları şunlar:
Kod hizalama
UlaPlus çipi desteği
Kozmetik düzenlemeler
Bazı ayrıştırma hataları
Kolayca kaset kaydı için dosya menüsüne export tap seçeneği
ulaplus renk paleti düzenleyici
8 örnek basic program
İngilizce ve Türkçe'nin yanında yeni İspanyolca dil desteği
onlarca minik hata
(http://i.imgur.com/6WI1wbr.png)
(http://i.imgur.com/haB4YAq.png)
Download (http://arda.kisafilm.org/fish/get/serve.php?b=BasinC1690.zip&d=14) (3.8MB Zip)
Biraz geri bildirim yapayım:
-Program AMD ilemcili 64bit Win8 bilgisayarımda ilk çalıştığında çakıldı. Sonrasında sorunsuz çalıştı.
-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.
- Speccy fontlarıyla çalışmak hoşuma gitmedi. Font değiştirmek istedim ama menü biraz karışık olmuş. Sadece kendi fontları TTF desteği de yok galiba.
Örnek kodlar da sana mı ait? Hepsine bakmadım ama 3B labirent oyunu hoşuma gitti.
Alıntı yapılan: Ref - 03 Temmuz 2014, 03:22:12
bilmiyorum kaç kişi zx spectrum programlama ile uğraşıyor ama ...
Network programlama konusundaki bilgim sıfırın altında sayılır ama programın başlangıcına bir ufak bir kod yerleştirerek her program her açıldığında kendini pinglesen? Her çalıştığında tarih-saat ve ip bilgisini loga yazan basit bir php betiğiyle bu sorunun cevabını öğrenebilirsin. Ama cevap hoşuna gitmeyebilir. Ignorance is bliss!
Alıntı yapılan: wizofwor - 03 Temmuz 2014, 10:43:27
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 (http://www.worldofspectrum.org/faq/reference/BASICReference.htm) 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ı.
Alıntı YapSadece 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.
(http://i.imgur.com/M5nuiHA.png)
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 :D
Alıntı Yapprogramı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 :D
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)
Uyarı mesajındaki durumun acayipliğinden işin içinde başka bir şeyler olduğunu sezmiştim zaten. Kullanım kılavuzundaki açıklamayı orada tutmak iyi bir fikir. Yine de önerim uyarı mesajına "Loading OK" tarzında bir açıklama ekleyebilirsin. Tabi gerçek bir Spectrum kullanıcısı olsaydım belki de bunları hiç yadırgamayacaktım, alışık olacaktım bilemiyorum. Sadece 0 kodu için mesaj göstermemek de pratik bir çözüm olabilir.
Aslında yapmakta olduğun iş için oldukça garip bir yol seçmişsin. c64 dünyasında bu iş biraz farklı yapılıyor. BASIC programı txt girdiyi C64 Basic formatında 'tokenize' eden petcat aracıyla prg haline getiriliyor. Prg esasında başlangıç adresini belirten iki byte eklenmiş bir raw bir dosya olduğu için, bu dosyayı yükleyince Basic programı hafızaya yerleşmiş oluyor. Yani programı hafızaya yükleme işini doğal yollarla değil bir nevi ters sezeryanla yapıyoruz.
Alıntı Yapc64'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.
C64'de tüm ROM alanları kapanabilir olduğu, için yeniden düzenlenemeyen hiç bir şey yok gibi. Font konusunda print komutuyla beraber kullanılan özel karakterler sorun çıkartıyor. Bunun da çözümünü tag sisteminde bulmuşlar. Petcat ile kullanılan tagleri aşağı kopyaladım.
<wht> <dish> <ensh> <swlc> <down> <rvon> <home> <del> <esc>
<red> <rght> <grn> <blu> <orng> <F1> <F3> <F5> <F7> <F2>
<F4> <F6> <F8> <sret> <swuc> <blk> <up> <rvof> <clr> <inst>
<brn> <lred> <gry1> <gry2> <lgrn> <lblu> <gry3> <pur>
<left> <yel> <cyn>Tabi bu patcat, tag sistemi falan çapraz geliştirme ortamının getirdiği olgular. Sen en başta sistemini çok daha özgün bir şekilde spectrum basic benzetimi yapmak üzerine kurduğun için çok daha farklı bir noktaya ulaşmışsın.
Alıntı yapılan: Ref - 03 Temmuz 2014, 14:28:29
Alıntı Yapprogramı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 :D
Eğer niyeti bozduysan 'Bir güncelleme var mı diye bakıp, hemen çıkacağım abi.' bahanesinin arkasına saklanabilirsin. Bu numarayla servis kuran adamlar var. (bkz: google updater service)
Son olarak bir not: İlk başta atlamış olduğum formatted listing özelliği çok sevdim. Keşke vBasic'te de böyle bir şey olsa.
Alıntı yapılan: wizofwor - 03 Temmuz 2014, 16:13:10
BASIC programı txt girdiyi C64 Basic formatında 'tokenize' eden petcat aracıyla prg haline getiriliyor. Prg esasında başlangıç adresini belirten iki byte eklenmiş bir raw bir dosya olduğu için, bu dosyayı yükleyince Basic programı hafızaya yerleşmiş oluyor.
Aaah, ama basinc bir tokenizer'dan çak fazlasını yapmak için yazıldı :D Debugger, profiler falan var içinde. Programı step step takip edebiliyorsun mesela. Yani doğal emülasyon üzerinde bayağı kontrollü programlama yapabiliyorsun. Tüm hafıza elinin altında, yani çok rahat bir çalışma ortamı.
(http://i.imgur.com/6sOhmzT.png)
Profiler
Yanlış anlaşma olmasın Petcat'i örnek vermekteki amacım yoğurt yiyişini eleştirmek değil. Hatta veriyi rom rutinine teypten geliyormuşçasına akıtma fikri çok hoşuma gitti. Profiler özelliğinden haberim yoktu ama bunu arka planda emulatör çalıştırmadan yapmanın yolları da var. Hem biz komodorcular Basic'le yazılmış şeyleri pek fazla optimize etmeyiz. Sonuçta Basic ASM öğrenene kadar idare etmesi için konulan bir şeydir.
Alıntı yapılan: wizofwor - 04 Temmuz 2014, 13:38:53
Yanlış anlaşma olmasın Petcat'i örnek vermekteki amacım yoğurt yiyişini eleştirmek değil.
Yok zaten, o konuda bir problem yok, kaldı ki spectrum için ilk yapılmış programlardan biri basToBin ve basToTap idi. Yani zaten bu seçenekler mevcut. Hatta zamanında tommygun basic highligher falan desteği de sunuyordu. Ama bu sistemlerin hiçbiri basinç kadar elastik değil. Basinç bir isviçre çakısı, sinclair basic programlama için kullanılacak en süper çözüm. Sadece basic yapıyorsanız basinç bir mercedes konforu yaşatır adama :D Ama halen bir sinclair kullanıyor oluyorsunuz.
Zaten amaç pc ortamında geliştirme yapmaksa, Boriel's Basic diye bir compiler var, yazdığınız programları direk asm yapıyor ve çok optimize, ustalıkla yazılmış bir PY tabanlı compiler. Ona da bir bakın, sinclair'den anlamanıza gerek yok, jenerik bir dil. http://www.boriel.com/en/software/the-zx-basic-compiler/ (http://www.boriel.com/en/software/the-zx-basic-compiler/)
Bu spectrum camiasındaki programların isimleri de pek bir hoşmuş canım. BasınC'ı istisnai bir harf oyunu olarak düşünmüştüm ama basToBin ve basToTap'da fonetik açıdan oldukça eğlenceli isimlermiş. Sanıyorum Spectrumcuların neşeli tipler olmasından kaynaklanıyor. Aslında BasınC'in İngilizce nasıl telaffuz edileceğinden de emin değilim. How to pronounce BasinC diye video hazırlayım youtube'a yüklemeyi düşünmez miydin?
Bir de şurada taş atmıştım ama denk getiremedim sanırım:
Alıntı yapılan: wizofwor - 04 Temmuz 2014, 13:38:53
Sonuçta Basic ASM öğrenene kadar idare etmesi için konulan bir şeydir.
Alıntı yapılan: wizofwor - 04 Temmuz 2014, 13:38:53
Sonuçta Basic ASM öğrenene kadar idare etmesi için konulan bir şeydir.
HAhaah, Eskiden evet, ama artık basic is for leisure diyorum ben :D
Alıntı yapılan: Ref - 04 Temmuz 2014, 17:36:03
Alıntı yapılan: wizofwor - 04 Temmuz 2014, 13:38:53
Sonuçta Basic ASM öğrenene kadar idare etmesi için konulan bir şeydir.
HAhaah, Eskiden evet, ama artık basic is for leisure diyorum ben :D
Konuyla pek alakalı değil ama aşağıdaki eleman qbasic'le 2014 model NES emulatoru yazmış.
Gerçi kanalında paylaştığı video gösterilerine bakınca pek normal bir arkadaşımız olmadığı hemen anlaşılıyor...
https://www.youtube.com/watch?v=ZXwARLpA5aA (https://www.youtube.com/watch?v=ZXwARLpA5aA)
Yapılabileceğini göstermek için yazmış ama performans yerlerde sürünüyor. Hoplaya zıplaya çalışıyor emulatör. Aynı adamın C++ ile yazdığı NES emülatör videosuyla karşılaştırırsan fark görülüyor zaten.
Basic bizim zamanımızda bilgisayar öğrenmek için müthiş bir araçtı. Bilgisayar okur yazarlığı kavramının içinden programlama çıktıktan sonra BASIC'de boşa çıkmış oldu. Visual Basic for Applications'ı kullanıyorum ve power user'lar için güzel bir araç olduğunu düşünüyorum. Biraz iddialı olacak ama VB ile performans öncelikli bir iş bence yapılmamalı. İşi daha az adam/saat harcayarak kotarmak için tercih edilebilecek bir araç olarak düşünüyorum. Yanlışsam kafama vurabilirsiniz.
https://www.youtube.com/watch?v=_mH2wYwm-ks (https://www.youtube.com/watch?v=_mH2wYwm-ks)
Sinclair basic ile yazılmış bir space invaders emülatörü.
Simülatör değil, emülatör.
BASIC ile yapılabilecek en güzel programlama deneyimi, bir BASIC Compiler yazıp kendisini derlemektir herhalde. Bir şeyleri BASIC ile yapabilmek de ciddi bir 'challenge' olduğundan, yapabildiğinizde farklı bir keyif alıyorsunuz. Günümüzde insanların BASIC ile haşır neşir olamamaları büyük kayıp bence. RasPi gibi cihazların bir 'nerd' cihazı olmaktan öteye gidememesi, başlangıçta ortaya atılan hedefleri de sorgulatıyor aslında. RasPi gibi cihazların BASIC gibi basit ve standart bir programlama aracı ile sunulmaları güzel olurdu.
Sorun işin içine gui girince basit diye bir şey kalmaması bence. Guiyle beraber mecburen olaylar ve nesneler de giriyor ve iş karışıyor. Bu konuda Small Basic (http://smallbasic.com/) bence güzel bir adımdı ama tutmadı nedense.
Tebrikler. Guzel bir program.
En son sürümü 2014'de yapmışım, son 3 yıldır 1.7'ye geçmeye çalışıyorum ama 3 yılda ancak 3 gün falan ayırabildim buna...
Bir yıldır da harddiskimde öylece yatıp, ara sıra bana dönüp kaşlarını kaldırarak "Ben böyle mi kalacağım? Hani planlanan özellikler? Hani 7 yıldır kodlamayı bitiremediğim memory manager... Ühü ühü" diyordu.
Bu sızlanmalar canımı sıktığı için, en son sürüm de 1.697 olduğu için, bu sürümde de minör dağıtım için fazla özellikli olduğu için, ama 1.7 olarakda pek dandik kaldığı için, 1.7alpha adını vererek, böyle yarı-geliştirilmiş halde internete salmaya karar verdim.
Hani olur da, zx spectrumda 10 print "arda":goto 10 yazacağınız gelir, o zaman adres basınç:
http://arda.kisafilm.org/blog/?p=1208
Bugün küçük tamiratlar içeren bir minör sürüm yayımladım (bir süredir harddiskte duruyordu, hem de burada düzgün bir başlık açmak istedim.
Basinc 1.72 (http://arda.kisafilm.org/blog/?p=1243) - 26.03.2018
1.72 (çevirmeye üşendim, herkes ingilizce biliyor burda nasıl olsa.)
Added: -dumptxt commandline parameter. Extracts and saves BASIC portion of the program. Usage: basinc <filename> -dumptxt
Added: 4x,5x,6x font sizes for hi-dpi non-zoomed screens.
Fixed: variables with 90ish numbers like a91, b95 weren't properly tokenized.
Hadi bakem zx spectrum severler, 3 sene geçmiş yuh, bir güncelleme geçelim.
Basinc 1.77 (https://arda.kisafilm.org/blog/?p=1358&lang=en) - 14.10.2021
İndiragandi zamanı. Eskisinden ne fayda gördünüz de yenisine bakıyosunuz sanki :D
Her 3 yılda bir güncelleme çıkarsam 30 senede 10 güncelleme eder. Hadi gene iyisiniz. 77 yaşıma kadar güncelleme planlıyorum evet :D
Sene olmuş 2025 hala mı Sinclair Basic diyenler içün, dün 1.8 versionunu duyurdum, ilgilenenler buyursun.
Basinc 1.8 (https://arda.kisafilm.org/blog/?p=1480&lang=tr) - 24.03.2025
1.79.5 hiç yayınlanmadığı için bu sürümde gelişmelerin ikisini birden listeliyorum
// 1.8 -- Bumped version number because of visual lift.
// Added: Sub-Routine listing. mark subs manually with REM #<sub name> or enable auto-detect subs to catch GO SUB <line no>'s
// Added: Online Help Option: Since Windows continuously marks the help file as unsafe, the Help File will be served online as an alternative.
// Fixed: Windows-XP archaic button panels are partly removed to provide more compatible graphics update.
// Changed: All internet update functionality is removed. Update Check just opens a browser now.
// 1.79.5 (skipped)
// Added - Simple exception handler. Hope it catches nasty ones. build 94
// Added - Copy Bitmap to Clipboard option in Display Window > Edit menu. This copies whole screen including it's border in actual zoom level.
// Added - Insert Print At, Peek, Plot, Draw, Circle and Rectangle commands in Display Window Right-click Popup Menu -- These insert basic code to editor window
// Added - Font size selection for tool windows to make a little bit readable windows in hi-dpi screens. (requested by: lippmaje)
// Added - Refresh and Auto Refresh options in Memory Viewer tool window (requested by: lippmaje)
// Added - "Delete All" button in Watches Window to clear all watches at once.
// Added - New 8 editable colors for editor. See Options > BasinC > Syntax Highlighting [Colors] button.
// Added - Status bar at the bottom of the display window(will give some info)
// Added - Update check help menu item
// Added - Attach display window to main editor option. View > Display Window > Attach...
// Added - "Always keep on top option" for display window
// Added - Display window now has a status bar with lots of information.
// Added - Smart Indenting option in View Menu as it works much better now. Note that there is still a known cursor visibility bug while editing the code, harmless though.
// Fixed - "Rem speed N" rem command is now working better. Disable auto skip, Do not use GDI, use eg. hq2x.
// Fixed - Speed selection in Options wasn't working properly due to sound emulation.
// Fixed - a very old bug, if you erase part of the edited line with DEL key, it would duplicate the line. (reported by: Uwe Geiken & lippmaje)
// Fixed - Tracing execution now follows focus for double and bigger editor fonts sucessfully
// Fixed - Importing a bas file or pasting a basic line with AT escape code was corrupting the color codes. (reported by: avlixa)
// Fixed - Data Array loading was failing when loading is performed from harddrive (reported by: ignacobo)
// Fixed - Sometimes Basin would lock up when the vars window was open (reported by: lippmaje)
// Changed - REM slow command now will reset cpu speed to default 3.5mhz.
Alıntı yapılan: Ref - 25 Mart 2025, 15:12:26
Sene olmuş 2025 hala mı Sinclair Basic diyenler içün, dün 1.8 versionunu duyurdum, ilgilenenler buyursun.
Basinc 1.8 (https://arda.kisafilm.org/blog/?p=1480&lang=tr) - 24.03.2025
Ellerine sağlık, şimdi inceledim, çok başarılı olmuş. Amstrad için de böyle bir tool var mıdır acaba?
@Alco ?
@dodogildo ?
Alıntı yapılan: Hifly - 26 Mart 2025, 14:50:04
Alıntı yapılan: Ref - 25 Mart 2025, 15:12:26
Sene olmuş 2025 hala mı Sinclair Basic diyenler içün, dün 1.8 versionunu duyurdum, ilgilenenler buyursun.
Basinc 1.8 (https://arda.kisafilm.org/blog/?p=1480&lang=tr) - 24.03.2025
Ellerine sağlık, şimdi inceledim, çok başarılı olmuş. Amstrad için de böyle bir tool var mıdır acaba? @Alco ? @dodogildo ?
Spectrum'cular orijinal olarak kısayol ile işlerini halletmeye meyilliler. Hiç alıcı gözüyle bakmadığım için 48k dahil tüm modellerde tuşların her birine ayrı bir Basic komutunun kısayol olarak eklenmiş olduğunu 2 ay öncesine kadar bilmiyordum dahi.
Ve evet, güzel görünüyor. Keşke benim gibi ömrü boyunca Amstrad dışında cihaz görmemiş olanların da böyle imkanları olsa.
Alıntı yapılan: Hifly - 26 Mart 2025, 14:50:04
Amstrad için de böyle bir tool var mıdır acaba? @Alco ? @dodogildo ?
Tam olarak neye ihtiyacın var bilmiyorum ama şunlara bir bak istersen.
https://retrovirtualmachine.org/
https://www.cpcwiki.eu/index.php/JavaCPC
Sadece amstradda değil, hiçbir platformda Basınç'ın dengine rast gelemezsiniz. Ancak her platformda text-to-basic gibi bir tool olur, hatta winAPE'e basic metni yapıştırabiliyorsunuz. Yani locomotive basic syntaxından anlayan bir kod editöründe kodunuzu yazıp winape üzerinde paste edip denemek mümkün gibi görünüyor. Dediğim gibi bir basinc rahatı yaşatmaz ama aslında VSCode gibi bir editörle işi otomatik hale getirmek mümkün olabilir.
ama bu işi hedeflemiş birileri olmuş geçmişte, birkaç tane yokolup gitmiş web sitesi var, ama web.archive.org'da elektrikler kesilmiş şu anda çalışmıyor, linkleri koyayım, çalışınca bakarsınız.
http://www.cpcbasic.tk/
https://cpcbasic.webcindario.com/CPCBasicEn.html
fakat anladığım kadarıyla bu tam olarak locomotive basic uyumlu değilmiş. Yine de sayfaları göremediğim için birşey diyemiyorum.
https://web.archive.org/web/20210614124943/https://cpcbasic.webcindario.com/CPCBasicEn.html
evet web archive çalışıyor tekrar, epey eski bir araçmış, hala çalışır mı bilinmez
Basinc 1.81 Güncellemesi (bunu kurmadan önce yukarıda verdiğim 1.8 sürümü kurulu olmalıdır, sadece exe dosyasını değiştirin)
https://arda.kisafilm.org/fish/get/serve.php?b=BasinC181update.zip&d=19&s=rrj (https://arda.kisafilm.org/fish/get/serve.php?b=BasinC181update.zip&d=19&s=rrj)
Küçük bir update ama güncellemeye değer, çünkü 1.80'de bulunan sinir bozucu bir bug'ı fixliyor. Cursor arada pat diye yukarı atlıyordu, çözdüm.
Ayırca github'da bildirilmiş tüm bug'ları temizledim. Bu bugfree demek değil elbette ama en azından listelenmiş buglar temiz. Benim bildiğim bir undo bug'ı var, bir süredir karşıma çıkmıyor, replike edebilirsem çözerim ama umarım bir daha görünmez :P
Assembler ile kod yazanlar için iyileştirmelere geçiyorum bu sürümden itibaren. Assembler editör artık pasmo ile derleme yapıyor. Bu benim kendimin bile kullanmadığı assembler maintain etmekten kurtaracak. Ayrıca pasmo çıktısını direkt olarak teyp dosyasına compile edebiliyorsunuz. Bu sürümde bulunmayan ama geliştirmeye devam ettiğim bir ek, snippets editöründe asm kodları tutabileceksiniz. Şimdiye kadar sadece basic kodları tutuyordu. Snippets epey işe yarıyor, programlarda sürekli kullandığınız kısa kod kümelerini tutuyor, istediğiniz kısma enjekte edebiliyorsunuz. Asm olunca bunları belleğe koyup anında çağırabileceksiniz, basinc otomatik olarak teyp dosyalarınızı da manage edecek.
Eskiden yazdığım bir grafik editörü cheqedit'i de önümüzdeki sürümlerde basinc'e entegre edeceğim. Bunun alt yapısı token table editöründe bu sürümde hazırladım.
Unutuyordum, bu versionda bazı görsel geliştirmeler yaptım, artık bytecode olarak tutulan rem komutlarında hex değeri yerine token metni görünüyor. Bu şekilde normalde basinC'in desteklemediği spectranet, divide gibi donanımlar için kodlama yapanlar da rem satırlarında illegal komutları görebilecekler. Niş bir çözüm ama 1-2 kişi bunu istemişti, ekledim. Heh, burada kimse basic'in b'sini bile kodlamıyor ama işte haberiniz olsun :P
Son olarak 1.8 temasına uygun olarak birkaç "quality of life" geliştirmeleri daha var.
// 1.81 -- only released in ZX Spectrum Discord Server and retrojen.org 06.06.2025
// Added - Sysvars now can be sorted by clicking on the column headers
// Added - Memory Grab/Binary Grab window can now send data direcly to tape as a block
// Added - Assembler can now use pasmo assembler if pasmo.exe exist in the basinc folder
// Added - Memory Viewer - Copy to Clipboard right button popup menu
// Added - Custom Token Entry tab for Token Table Window (if you know what you are doing).
// Added - Show Keywords in Rem option to preview known keywords in a rem line (use custom token entry or shift+click on tokens on token table to insert keywords)
// Added - Subroutine list now shows destination when your cursor is on a gosub command
// Fixed - No longer accidental UI jumps when subroutine list is open
// Fixed - DEF FN parsing. Loading from a BAS file (ProcessBASLine), process DEF FN was called for every line. This was causing problems. Disabled this behaviour as program listing will get retokenized properly while repaint.
Bir de aslında çok önemli bir değişiklik var, geçen sürümden bu yana artık basinc'i yeni delphi sürümüne doğru yükseltiyorum. Amaç lazarus'a geçip tamamen özgür yazılım haline kavuşmak. Bu uzak bir hedef gibi görünüyordu ama eğer AI bu hızla gelişirse 1-2 yıla belki başarılabilir.
Nasıl birşey olduğunu görmek için BasinC'i kurdum. Birşeyler denedim. Şöyle bir bug gördüm. Belki sadece benim makineden kaynaklanıyordur.
Basinc Display Output ekran boyutunu %200 yaptım. BasinC'i kapatıp açınca değişiklik korunuyor.
Ancak çözünürlük %200 iken sadece Display Output ekranını kapatıp sonra BasinC'te Create New Program simgesine tıklayınca Display Output ekranı %200 olarak açılıyor ama Spectrum ekranı %100 olarak sol üst köşede açılıyor. Çözünürlüğü değiştirip tekrar %200 yapınca düzeliyor.
Ekleme 1: Yüklenen programın çalışması bitmeden veya çalışması durdurulmadan yeni program yüklenemiyor. Program Yükle'ye basıldığında o anda çalışmakta olan bir program varsa "Çalışan program sonlandırılacaktır. yeni program yüklemek istiyor musunuz?" gibi bir onay mesajı olabilir. Onay beklenirken program çalışmaya devam edebilir.
Ekleme 2: Benim Basicode ile oluşturduğum programın listesini gösteremiyor ve ekranda program adı gözükmesine rağmen sanırım yükleyemiyor. Tape Image Builder ekranında da birşey çıkmıyor.
Alıntı yapılan: hades - 09 Haziran 2025, 20:01:11
Nasıl birşey olduğunu görmek için BasinC'i kurdum. Birşeyler denedim. Şöyle bir bug gördüm. Belki sadece benim makineden kaynaklanıyordur.
Basinc Display Output ekran boyutunu %200 yaptım. BasinC'i kapatıp açınca değişiklik korunuyor.
Ancak çözünürlük %200 iken sadece Display Output ekranını kapatıp sonra BasinC'te Create New Program simgesine tıklayınca Display Output ekranı %200 olarak açılıyor ama Spectrum ekranı %100 olarak sol üst köşede açılıyor. Çözünürlüğü değiştirip tekrar %200 yapınca düzeliyor.
Ekleme 1: Yüklenen programın çalışması bitmeden veya çalışması durdurulmadan yeni program yüklenemiyor. Program Yükle'ye basıldığında o anda çalışmakta olan bir program varsa "Çalışan program sonlandırılacaktır. yeni program yüklemek istiyor musunuz?" gibi bir onay mesajı olabilir. Onay beklenirken program çalışmaya devam edebilir.
Ekleme 2: Benim Basicode ile oluşturduğum programın listesini gösteremiyor ve ekranda program adı gözükmesine rağmen sanırım yükleyemiyor. Tape Image Builder ekranında da birşey çıkmıyor.
Basinc iş akışında display penceresini hiç kapamaman gerekiyor. O hep açık kalacak şekilde çalışılması gerek aslında, bu yüzden o bug yıllardır devam ediyormuş :)
ama elbette bazen bir şekilde kapamak isteyebilirsin, güzel yakalamışsın hades, şimdi onarıyorum. sonuncusunu test edebilmem için örnek bir basicode teyp imajı ekler misin?
Basicode ile oluşturulmuş örnek.
DisplayOutput ekranında program adı .tap dosyasının adı olarak çıkıyor. Oysa headerde yazan adın çıkması lazım. Değişik bir durum.
Alıntı yapılan: hades - 10 Haziran 2025, 19:21:30
Basicode ile oluşturulmuş örnek.
DisplayOutput ekranında program adı .tap dosyasının adı olarak çıkıyor. Oysa headerde yazan adın çıkması lazım. Değişik bir durum.
tap dosyasında bir hasar var gibi. specemu bir şekilde yüklemeyi başarıyor ama, diğer emülatörler hata veriyor
edit: gerçek spectrumda da tap dosyası yüklenmedi. corrupt tape olmuş o.
Demek ki kodlar her zaman gerçek makinelerde yazılmalı.
ZXSEC diye bir emülatör var. Onda da çalıştı kod.
Alıntı yapılan: hades - 10 Haziran 2025, 23:48:34
Demek ki kodlar her zaman gerçek makinelerde yazılmalı.
ZXSEC diye bir emülatör var. Onda da çalıştı kod.
yani bu kod sorunu değil, tap formatında sorun var senin. tap dosyasını nasıl oluşturuyorsun?
Sorun burada olmalı: https://sinclair.wiki.zxnet.co.uk/wiki/TAP_format
tap ayarlarım işyerindeki bilgisyarda bu şekilde. Evdekide aynıdır muhtemelen.
bunda bir tuhaflık yok aslında, neden böyle olmuş anlamadım.
yani bir şekilde basic alanını illegal şekilde manüple ettiğin için pasmo bu tür bir hack'i desteklemiyor olabilir.