(02-18-2024, 02:15 AM)PhilOfPerth Wrote:(09-12-2023, 05:01 AM)CharlieJV Wrote: This is a directory of BAM programs that I've published to the web:
Looks interesting! Can you share a bit about how/if BAM compares with other BASICs, like QB?
BAM is a (single HTML file) TiddlyWiki instance that has been setup as a host for BASIC programming. Behind the scenes, programs are saved as wiki content, and when we run a program, BAM (via TiddlyWiki goodness) mashes together the BASIC program, HTML, and wwwBASIC.js (I've modified wwwBASIC so much that we might as well call it a port) into an HTML document that gets fed to an iframe as a stand-alone web page.
From what I can tell studying the code and behaviour of wwwBASIC, it seems to have been heavily (if not completely, whether by design or by fluke) influenced by both GW-BASIC and QBASIC. I've also added some QB64 statements/functions to make it pretty easy to port QB64 programs to BAM.
wwwBASIC did not have any audio statements. Although I've added BEEP and SOUND, I've not yet added PLAY.
wwwBASIC also did not support anything involving files. I've added a few things so a BAM program can output to a file (via browser "download" kind of mechanism), I don't know if I'll ever want BAM to create/open files or have any sort of interaction with operating system services or web services.
As-is, BAM is about programming in a kind of "bottle garden" environment, i.e. a fully self-contained virtual-machine-like critter.
- List of enhancements to wwwBASIC
- Compatibility with GW-BASIC
- Compatibility with QB64/QB64PE
- Compatibility with QBASIC, I'm hoping that has been achieved as a by-product of testing ports of GW-BASIC and QB64/QB64PE programs to BAM;
There are some things, though, that are unique to BAM (not found in any of wwwBASIC, GW-BASIC, QBASIC, QB64/QB64PE), like the screen modes 14 to 27: BAM Screen Modes, and functions like IFF, MAX, MIN, and BETWEEN. And "EVAL" clauses for GOTO / GOSUB / RESTORE.