PDA

View Full Version : BazzBasic



E.K.Virtanen
14-01-2026, 19:43
Hi, and oh wow.


There is actually still a subforum for PCOPY! Oh those days... :o
It feels like the years have rushed by so fast that the pounds that have accumulated in my body haven't had time to catch up.


So many dialects and communities are lost somewhere in time after I were active with BASIC.
But thinBASIC still kicking? Damn. You folks are for sure doing something right here. :cool:






BazzBasic is my own vision of how to achieve the same feelings today as I did long ago when I was writing hundreds of lines of code on a Spectravideo 328.


It does not allow line numbers, which I think is a bit outdated ways of programming, but it allows [label] tags, which make the familiar GOTO and GOSUB successful.


This is just my opinion, not a call to fight. ;)


Unlike old BASIC languages, BazzBasic also requires initialization of variables. I think this is something I would have learned with the interpreters of the 80s. It would have saved me a lot of swear words, at least for myself.


I decided to use the number 0.5 as the version, because there has never been any real version system before.


The interpreter can already be used for many things, mainly in the console, although a few graphical commands are already supported.


Preliminary audio and file management functions are also already in use.


There are certainly bugs, I will fix them as I have time from my real work.


More versatile graphical and file management functions are now next on the development list. Some kind of implementation of network features is also on the todo list.


Also bundling the tokenized code to executable is on my todo.


Audio currently works via NAudio, not sure why I ended with it. But I need to move it to SDL2.
Then in practice SDL2 + NET10 can also be ported to Linux.


Check it out, unless you find some excuse not to.
https://github.com/EkBass/BazzBasic

ErosOlmi
15-01-2026, 18:38
Ciao and great to see you again.


I like very much other are experimenting creating their own language and developing tokenizers and lexers.
And the choice to use C# I think it is a wise choice
Let me know if you need a dedicated subForum for BazzBasic and I will create.

E.K.Virtanen
15-01-2026, 20:29
Hi Eros.

C# was not the first choice... actually it was a third option dictated by necessity. Although, in retrospect, it was a brilliant one :rolleyes:
Making a own language, even a small one truly is a big task. But also really rewarding if you can make it work.



Let me know if you need a dedicated subForum for BazzBasic and I will create.

Thanks a lot for the offer, buddy.


If BazzBasic actually gets a some users, "I'll give you a call."
A small player like BazzBasic doesn't need a own specialized forum. A subforum you mentioned would certainly handle this need just fine.

ErosOlmi
16-01-2026, 10:12
Ciao,

I was able to compile with VS2026

Only an error regarding missing SDL2.dll
But I downloaded dll from latest SDL 2.x repo and all was fine: https://github.com/libsdl-org/SDL/releases/tag/release-2.32.10

Will test in the week-end.

Little note: file README.md (https://github.com/EkBass/BazzBasic/blob/main/README.md) seems containing twice the same text

E.K.Virtanen
17-01-2026, 15:02
Thanks Eros.

Im positive there is more bugs in the documents than what its in the project souce :D

I finished the built-in simple IDE, which makes getting started with BazzBasic as easy as it was with the BASIC interpreters of the 80s.


My intention is not to make any major changes to the IDE. It is just intended to be an easy way to get started.


For the more experienced, there are syntax highlighters in notepad++, Geany and Visual Studio Code.


The homepage https://ekbass.github.io/BazzBasic/ is now open.

E.K.Virtanen
18-01-2026, 20:48
Lots of has happened and now I take a beer and then a good sleep.

# News and changes

## Jan 2026

### 18th Jan 2026
With all the previous add-ons, BazzBasic ver. 0.6 is not available as binary and source.


### 18th Jan 2026
Merging BazzBasic and basic code into a single executable file is now possible.

_bazzbasic.exe -exe filename.bas_ produces the _filename.exe_ file.

BazzBasic does not compile the BASIC code, but rather includes it as part of itself.

Read more https://ekbass.github.io/BazzBasic/manual/#/packaging



### 18th Jan 2026
Finished working with PNG and Alpha-color supports.
LOCATE in graphical screen now overdraws old text instead of just writing new top of it.

**Supported Formats**

**Format:** PNG
Transparency: Full alpha (0-255)
Recomended

**Format**: BMP
Transparency: None
Legacy support

---

### 18th Jan 2026
Generated a manual with Docify.
BazzBasic homepage now links to it.

Major idea is, that github wiki becomes a as development wiki and this docify as user wiki.

---

### 17th Jan 26
Fixed a bug that prevented to use custom resolution with SCREEN 0
Terminal now closes if no errors when running via IDE
Small gap between IDE line numbers and user code.

---

### 17th Jan 26
BazzBasic has now in-built simple IDE.
Start _bazzbasic.exe_ with out params to open it.
If opened with params, the .bas file is interpreted normally.
After few new features, released as version 0.6

---

### 10th Jan 26
Generated __vsix__ file to add BazzBasic syntaxes for VS Code.
See https://github.com/EkBass/BazzBasic/blob/main/extras/readme.md

---

### 9th Jan 26
Released first one, version 0.5

ErosOlmi
20-01-2026, 18:58
My compliment: you are making a huge and great work!
And it seems in short time.

Maybe I will stole some ideas ;)

E.K.Virtanen
21-01-2026, 13:12
Hi Eros and thank you for the positive word.


To be honest, however, the development has not happened quite as fast as my previous message might have implied.


In fact, the code has already started to develop last fall. Practically everything that has been released now has been developed as its own projects during the fall and early winter. Now I just had few week winter holiday to work with this.


Combining all has succeeded even easier than expected, so based on my message, the development really seems fast.


But since you develop your own programming language yourself, I probably don't need to describe the hours and days that have ultimately been spent on this.


Or how many times has the definitely working code turned out to be pure chaos that after the "CTRL+A" + "DEL" combination is destroyed with a hellish tantrum :rolleyes:


Now, however, I am in a situation where there is actually nothing ready, even properly planned.


Saving the tokenized code as a ".BB" library is the next bigger step.


Now BazzBasic first tokenizes the code and then executes it. After tokenization, I thought it could save this and then use it as a library-like add-on.


It's not a terribly demanding feature, but now I have to manually number all the tokens. Right now it works with a kind of auto-increase method. But if I put a new command and token in between, the whole system crashes.


If you've looked at my code (TokenType.cs), you've probably noticed that the tokens are divided into groups. And I want to stick to this, so manual numbering should at least be implemented now. And leaving some free numbers between groups.


If you find something useful in my code, feel free to steal it. It's nice if this actually brings some joy or benefit to someone, beside me.

ErosOlmi
21-01-2026, 15:45
Yes, I understand what you mean in tokens.
thinBasic is the same, every token as a unique number that never change managed by me manually.
About 1400 different tokens.

New tokens created by loaded module are numbered dynamically.

For this I will never created an intermediate already parsed and tokenized level but tokenization will always be performed at script startup.
I worked hard on speed of course in order to have tokenization of even big script in less than few milliseconds.

One way you can adopt is to identify tokens by a manual GUID instead of a dynamic number that can change and corrupt your already tokenized script.
So every toke can have a numeric ID (if needed) and a 128 bit GUID that will never change.
And use the GUID in your internal runtime dictionaries (hash tables)
In this way your pre-parsed tokens will remain stable.

PS: I've created a dedicated forum here for you project so you can have different posts for different BazzBasic discussions.
https://www.thinbasic.com/community/forumdisplay.php?401-BazzBasic

E.K.Virtanen
21-01-2026, 20:27
Oops... there should read "now" and not "not" :D



### 18th Jan 2026
With all the previous add-ons, BazzBasic ver. 0.6 is not available as binary and source.


I thought during workday if I numbered them somehow based on the name. That is, the name of the command.


For example, the token "NEXT" would get its value from the ASCII values ​​"N" + "E" + "X" + "T".
At least it would be unique, but I think it's already a bit too unique :rolleyes:


By the way, I didn't even notice that you had created a subforum for BazzBasic before I read it in your message. I just came with the same link that I copied after my first message.


Thanks. Now I just need to somehow get the community that uses BazzBasic started.


That might be a bigger task than this interpreter itself.

E.K.Virtanen
30-01-2026, 16:04
Im close to get v. 0.7 released.


https://github.com/EkBass/BazzBasic/discussions/6

Petr Schreiber
30-01-2026, 21:14
Very nice feature, fingers crossed for the release!


Petr

E.K.Virtanen
01-02-2026, 12:55
Version 0.7 is now released.

Main issues: Support for LINE INPUT and pre-compiled libraries.

More at: github.com/EkBass/BazzBasic/discussions/7