 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
EkBass
Anmeldungsdatum: 21.01.2026 Beiträge: 6 Wohnort: Finland
|
Verfasst am: 21.01.2026, 17:49 Titel: ekbass.github.io/BazzBasic |
|
|
Hello.
I understand that this site is intended for FB/QB programming languages.
However, I thought that no one would mind if I quickly told you about my BazzBasic interpreter, which I have been working on here whenever life itself has given me the opportunity.
It does not compete with FB, it is built with a very different idea in mind.
While BASIC for sure is not having its best days, I still believe it will last at least another 60 years.
For years, I have thought to create my own BASIC dialect, but life, work and such has moved my plans.
Now I finally am moved to the point where I can actually tell about it in public.
BazzBasic
Many of today's experienced programmers started in the 80s by familiarizing themselves with the BASIC interpreters that came with home computers of the time.
The movement of a yellow ball on the screen, a program that printed lottery numbers, a handwritten text adventure... the list is endless.
All fueled by one thing: Curiosity.
Unlike many programming languages, BazzBasic does not aim to be the most powerful or versatile tool.
It is also not a clone or a remake of any previous BASIC programming language.
It is intended to be easy, fun, and provide those small but significant moments of success that early BASIC programming languages offered decades ago.
But with a slightly more modern twist.
Here is classic Eliza program written in BazzBasic: Eliza.bas
BazzBasic is open source project released under MIT license.
I hope you give it a few minutes, even while it is not yet fully finished.
But I moved on with it with pretty good, and Im aiming to ger ver. 1.0 out before summer.
https://ekbass.github.io/BazzBasic/
Thank, Ek |
|
| Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4723 Wohnort: ~/
|
Verfasst am: 21.01.2026, 20:50 Titel: |
|
|
I just took a look at the documentation. I don't plan to learn a new BASIC dialect (too many BASIC dialects in my life ) but BuzzBasic looks like it would be fun. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
| Nach oben |
|
 |
Berkeley
Anmeldungsdatum: 13.05.2024 Beiträge: 115
|
Verfasst am: 24.01.2026, 11:58 Titel: |
|
|
I don't see a sense in a BASIC interpreter(compiler), if it doesn't tries to be the best in some way.
My favorite model is GFA-BASIC (on the Atari ST). Its editor allowed real Rapid Application Development. The sources were stored as bytecode, therefore each line was checked for syntax errors (and auto-completed and indented) when entered.
I'm a fan of implicit declaration and suffixes. That's fast and clear, e.g. if you use dummies like i% and a$ - you know that it's a dummy with no deep meaning, and it's a string or integer. The developers of FreeBASIC demand explicit declaration explained with the compiling process and suffixes are only supported for downward compatibility.
Using "#" is a good idea, at least for unsigned integers. But "%" for integers is established, and most suffixes aren't very self-explaining, especially "$". My recommendation is to use "$" for strings, "%" for integers, "!" for boolean/flags, "~" for "real" - floatpoint numbers and "?" for "variant". "a$", "a%" and "a" should be different variables, where "a" is to define like in FreeBASIC e.g. "DIM AS VECTOR a". More suffixes e.g. "&" for int8/a byte don't make sense. Basic datatypes should be still int8, uint8, int64, float32 and so on, while "integer" is mutable.
"#" should still be used for (predefined) handles, like with the OPEN instruction. #1 to #8 and more, representing a data stream in this case, perhaps other standard handles like #STDERR...
Using ' for REM (lines) and no resp. invisible LET is also a big improvement. It's much faster to type and better readable. [, ], { and } are often hard to type on non-English keyboards, therefore it's faster to use the common "<label>:" syntax.
Another BASIC aspect is a reliable enviroment. For this I developed RETROGRA resp. the "VT 2000" standard - a console with normally 80x25 characters, Unicode, 216 predefined colors. rgPRINT should replace the normal PRINT instruction. RETROGRA creates a 640x480 8 bpp canvas. https://www.freebasic-portal.de/downloads/bibliotheken/retrogra-406.html You can use all FreeBASIC graphic functions in it, but there is no good text output function yet. |
|
| Nach oben |
|
 |
EkBass
Anmeldungsdatum: 21.01.2026 Beiträge: 6 Wohnort: Finland
|
Verfasst am: 25.01.2026, 18:55 Titel: |
|
|
| nemored hat Folgendes geschrieben: | I just took a look at the documentation. I don't plan to learn a new BASIC dialect (too many BASIC dialects in my life ) but BuzzBasic looks like it would be fun. |
If you are a familiar with BASIC, then there is prolly nothing to learn with BazzBasic
@Berkeley
Roger that. |
|
| Nach oben |
|
 |
SpionAtom
Anmeldungsdatum: 10.01.2005 Beiträge: 397
|
Verfasst am: 26.01.2026, 07:31 Titel: Re: ekbass.github.io/BazzBasic |
|
|
| EkBass hat Folgendes geschrieben: |
While BASIC for sure is not having its best days, I still believe it will last at least another 60 years.
|
Well, at work, there is an aspect that demands VBS, so there is that
All the best for your project, maybe I'll look into it.
Personally, I got stuck 20-some years ago with Blitzbasis, which took QBasic from DOS to the Windows-World. Then I missed to jump on the FreeBasic-Train.
Apart from Visual Basic I never really took interest in another BASIC language.
But as you say, it might spark some curiosity for newbies...  _________________ Inzwischen gehöre ich auch zu den BlitzBasicern. Also verzeiht mir, wenn mir mal ein LOCATE 100, 100 oder dergleichen rausrutscht. |
|
| Nach oben |
|
 |
Lothar Schirm
Anmeldungsdatum: 24.04.2006 Beiträge: 73 Wohnort: Bayern
|
Verfasst am: 26.01.2026, 16:26 Titel: |
|
|
I think it is a nice and handy tool to learn BASIC (though, in contrast to Berkeley, I do not love suffixes so much ). For beginners, it would be helpful to have the manual (help file) as download, preferably as chm file.
I personally will stay with FreeBASIC which I use for 20 years now. Before, I used QuickBASIC, and I am happy to see a simple new BASIC dialect very close to QBASIC. I wish you a good success for your project! |
|
| Nach oben |
|
 |
Berkeley
Anmeldungsdatum: 13.05.2024 Beiträge: 115
|
Verfasst am: 27.01.2026, 21:02 Titel: |
|
|
| Lothar Schirm hat Folgendes geschrieben: | | though, in contrast to Berkeley, I do not love suffixes so much ;) |
But WHY ? It's fast and easy for implicit declarations. - A strength of BASIC. And if you want it "clean" you still can make DIM a AS STRING instead of LET a$=...
And it's easy to understand. Otherwise you have to name a dummy like "atext", to know that it is a string. Nowadays it's of course not sensible to have dozens of suffixes for each type, like BYTE and UBYTE, at least you need a syntax for user defined datatypes anyway. Therefore you only need string, boolean, integer (32/64) and "real"(double), the most primitive and important datatypes. - And variant. Variant is rather useful, it spares much typing work although it's not very safe. |
|
| Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4723 Wohnort: ~/
|
Verfasst am: 27.01.2026, 22:51 Titel: |
|
|
| Zitat: | | Otherwise you have to name a dummy like "atext", to know that it is a string. |
For me, "txt" was always sufficient to label the dummy variable as a string. And it's only one letter more then a$ (and I can type it without using the Shift key).
It's not that difficult to use short descriptive names. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
| Nach oben |
|
 |
Lothar Schirm
Anmeldungsdatum: 24.04.2006 Beiträge: 73 Wohnort: Bayern
|
Verfasst am: 28.01.2026, 11:26 Titel: |
|
|
| Regarding suffixes, it is my personal opinion, for me a code with suffixes looks ugly. I worked with Turbo Pascal more than 20 years ago and found the syntax with explicit daclaration of variables clearer and the code easier to read. Also in QuickBASIC, I used always DIM. But it is no problem for me if other people have other preferences or opinions. |
|
| Nach oben |
|
 |
EkBass
Anmeldungsdatum: 21.01.2026 Beiträge: 6 Wohnort: Finland
|
Verfasst am: 28.01.2026, 12:33 Titel: |
|
|
I have changed my mind about the use of variables several times over the years.
Originally, %, $, ! etc. were used. In some dialects, INT variables did not need a suffix at all.
The style of BazzBasic is largely due to the fact that I did not want strongly typed variables, but still required initialization for them. I think $ is a good suffix for a variable. Similarly, # is a good suffix for a constant.
You could have rotated them one way or the other, but it would not have made it better or worse.
Another small peculiarity is FN. It is required before a user-defined function call.
I personally think that it clarifies the structure for a novice programmer. But there are probably many different opinions on this too.
| Code: |
10 REM GWBASIC
400 R=1: S=2
410 DEF MULL(X, Y)=X*Y
420 PRINT MULL(R, S)
|
| Code: | ' BazzBasic
DEF MULL(X$, Y$)
RETURN X$ * Y$
END DEF
LET R$ =1, S$ =2
PRINT FN MULL(R$, Y$) |
|
|
| Nach oben |
|
 |
Berkeley
Anmeldungsdatum: 13.05.2024 Beiträge: 115
|
Verfasst am: 29.01.2026, 18:12 Titel: |
|
|
There is no real need to specify variables explicitely as constants - a smart compiler would be capable of determing that by itself. Especially if you would store source files in a bytecode like GFA-BASIC did. This way, variables would be just an ID that is assigned with the variable informations i.a. its name written how it should be always displayed in the code editor, allowing also to set them as constants, and finally, let the compiler replace them with their constant value.
Unfortunately FreeBASIC is working like a C compiler, i.e. you have to explicitely declare every symbol before you can use it. You might of course simply "precompile" the sources in a first run, so you won't have to declare every SUB and FUNCTION in your code before a call appears, you won't need "header files"... |
|
| Nach oben |
|
 |
EkBass
Anmeldungsdatum: 21.01.2026 Beiträge: 6 Wohnort: Finland
|
Verfasst am: 31.01.2026, 09:58 Titel: |
|
|
I like FreeBasic and have liked it since its release.
I think it was sometime in 2004, or at least around that time when its popularity started to grow in the QB community.
FB has indeed moved away from what I consider "BASIC-like" programming.
On the other hand, FB is a powerful language that can harness the power of the computer well if necessary.
I would probably use it myself, but with Win11 it has significant problems, especially with graphics.
BazzBasic was written in FB at some point. But those mentioned problems forced me to move to the .NET10 platform.
--- News
Im close to getting v. 0.7 released.
Read more: https://github.com/EkBass/BazzBasic/discussions/6 |
|
| Nach oben |
|
 |
Berkeley
Anmeldungsdatum: 13.05.2024 Beiträge: 115
|
Verfasst am: 31.01.2026, 13:15 Titel: |
|
|
| EkBass hat Folgendes geschrieben: |
On the other hand, FB is a powerful language that can harness the power of the computer well if necessary. |
Full ACK. But that doesn't exclude being more like GFA-BASIC. You may e.g. both use "DIM a AS STRING" or "LET a$=..." to declare/define a string variable. You can have implicit declaration and still write header files. FreeBASIC allows to use all libraries like C/C++ - theoretically - and even to include BASIC code in a C/C++ project.
| EkBass hat Folgendes geschrieben: | | I would probably use it myself, but with Win11 it has significant problems, especially with graphics. |
Which are...? |
|
| Nach oben |
|
 |
EkBass
Anmeldungsdatum: 21.01.2026 Beiträge: 6 Wohnort: Finland
|
Verfasst am: 31.01.2026, 16:47 Titel: |
|
|
| Berkeley hat Folgendes geschrieben: | | Full ACK. But that doesn't exclude being more like GFA-BASIC. You may e.g. both use "DIM a AS STRING" or "LET a$=..." to declare/define a string variable. You can have implicit declaration and still write header files. FreeBASIC allows to use all libraries like C/C++ - theoretically - and even to include BASIC code in a C/C++ project. |
Roger that. And for the record, GFA-Basic is not in the list of dialects
I'm familiar with or planning to get familiar with. BazzBasic is intentionally
designed with its own philosophy rather than following any specific dialect.
But I'm glad you have found a dialect you enjoy.
| Berkeley hat Folgendes geschrieben: | | Which are...? |
Oh, it's been months since I worked with the FB version. I recall the issue
was extremely slow graphics rendering on Windows 11 - even a simple SCREEN 18
with basic drawing commands would take seconds to display, and often only
the text output was visible.
Here's a minimal test case from my notes:
| Code: |
' Minimal graphics test
' Really slow and in the end only thing which is visible is "Press any key..."
SCREEN 18
LINE 100, 100, 500, 100, RGB(255, 0, 0)
CIRCLE 320, 240, 50, RGB(0, 255, 0)
PRINT "Press any key..."
SLEEP
END
|
I googled it back then and found reports of similar Win11/FB issues,
but I don't remember the details anymore. This was one reason I moved
to .NET with SDL2. |
|
| Nach oben |
|
 |
EkBass
Anmeldungsdatum: 21.01.2026 Beiträge: 6 Wohnort: Finland
|
Verfasst am: 01.02.2026, 11:57 Titel: |
|
|
Version 0.7 is now released.
Main issues: Support for LINE INPUT and pre-compiled libraries.
More at: github.com/EkBass/BazzBasic/discussions/7 |
|
| Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|