Bu güncelleme Basin’den beri farklı sürümlerde gelip giden bir bug’a yönelik. DEF FN basin için her zaman bir parsing problemi yaratıyor. Bu komutun bellekte tutulma şekli enteresan: Komut girildiğinde basic listesinin arasında komuttan hemen sonra 5 bytelık boş bir buffer oluşturuluyor. Bu buffer DEF FN hesaplamaları yapılmak için kullanılıyor! Bunun yaratacağı komplikasyonları bir düşünün. Epey enteresan bir tasarım seçimi olmuş bu.
Paul DEF FN ile baş etmek için çok çaba göstermiş, benim yaklaşımım “eğer çalışıyorsa tamir etme” olduğu için oralara pek bulaşmıyordum fakat bu bug basinc’ın ilk sürümlerinden beri gidip gelen (eğer kaynak kodlarının farklı sürümlerini kontrol ederseniz) paul’ün de birçok kez farklı seviyelerde değişikliğe uğrayıp geri dönülen bir fonksiyon.
Talihsizlik eseri 1.8’de DEF FN bug’ının geri geldiğini gördüm. Aslında fix 06.06.2025 tarihinde zx spectrum discord sunucusunda ve birkaç gün sonra Uwe’s facebook basic grubunda 1.81 olarak paylaşılmıştı. Vakit darlığından buraya haberini yazamadığım sürümü şimdi ekliyorum. Yeni sürümün kaynak kodu her zamanki gibi github sayfasında mevcut.
Bu sürüm sadece DEF FN’yi değil bir başka önemli fix içeriyor, yeni GOSUB bulma sistemi windows11’de cursor’un yukarı aşağı zıplamasına sebep oluyordu. Bu da çözülmüş oldu. Geri uyumlu olması açısından Basinc windows7 üzerinde derlendiği için bu şekilde davranış değişiklikleri olabiliyordu. Basinc artık windows10 üzerinde derleniyor ve geri uyumluluğu önümüzdeki sürümlerden itibaren bırakacağım. Umuyorum bu bize daha stabil bir geliştirme ortamı verecektir.
Bu güncellemeyi uygulamak için 1.8 sürümünün kurulu olması gerekmektedir. Eğer kurulu değil ise, onu buradan indirebilirsiniz: Basinc 1.80 tam sürüm kurulumu
1.81 güncellemesini yapmak için aşağıdaki dosyayı indirerek, basinc klasörünüze gidin. Bu klasördeki basinc.exe dosyasını silin ve 1.81 sürümündeki exe’yi yerine yerleştirin.
Basinc 1.81 Güncelleme (1.2MB zipped exe file)
Bu güncellemedeki tüm değişiklikler aşağıda listelenmiştir (1.8’deki güncellemeleri de yazmayı unutmuştum buraya onu da ekliyorum–bu listeyi githubda kaynak kodu içerisinde her zaman bulabilirsiniz):
// 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.
// 1.8 — Bumped version number because of visual lift.
// Added: Sub-Routine listing. mark subs manually with REM #subname or enable auto-detect subs to catch GO SUB
// 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–never released)
// 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.