Thursday, March 31, 2022
📚 BASIC Anywhere Machine Documentation Set (Planned)
Just a summary of the types of documentation I am, or will be, putting together with TiddlyWiki instances. These are types of documentation I'd expect to find, in general, for any kind of software development project.
Started and ongoing:
- Programming Reference (for the implementation of BASIC in BASIC Anywhere Machine)
- User Guide (i.e. how to use BASIC Anywhere Machine)
- Technical Reference (i.e. the architecture of BASIC Anywhere Machine, as in how it is constructed and how it operates under the hood)
- Project Reference (i.e. everything we need regarding management of the project: vision/goals, artifacts, tasks/todos, status, plans ...)
- Documentation Guide (i.e. everything we need to know to develop and maintain every kind of documentation for the project and the product.)
Monday, March 21, 2022
🆕 _WIDTH and _HEIGHT functions
These two functions have been added for QB64 compatibility and, more importantly, because they are so darned handy when doing graphics programming and changing SCREEN modes.
From the BASIC Anywhere Machine Programming Guide:
_WIDTH
Description:
The _WIDTH function returns the pixel width of the currently applied SCREEN.
_HEIGHT
Description:
The _HEIGHT function returns the pixel height of the currently applied SCREEN .
Note:
BASIC Anywhere Machine uses wwwBASIC customized as described in the enhancements. page:
Wednesday, March 16, 2022
Update: "Details" now "Properties", and new "Autostart" Property
I had setup BASIC Anywhere Machine programs to require a user to click on the console window before programs would start executing.
This is required to set input/output context on the program's window. When the console window doesn't have the focus, any sounds produced by the program will not be heard. (That's a javascript and/or web browser thing.)
At some point in the near future, I intend on using BASIC Anywhere Machine programs as a scripting tool for TiddlyWiki. For that to work, I need BASIC programs to immediately run without user intervention.
That aside, many, if not most, regular programs shouldn't really require user-clicking on the console window before starting the program.
So I've added a little bit of "architecture" to support autostarting programs, along with a user interface to set/unset autostart for individual programs.
You'll find in the "Properties" (previously "Details" window the "autostart" checkbox, as per the screenshots below.
Cheers !
Wednesday, March 9, 2022
🪲Fix to issue: INSTR
I did some digging when I happenstanced upon some INSTR use cases that caused a BASIC program to become unresponsive.
See identification, analysis, and resolution to the problem in this video:
🖥 Pongy game
This program is a port (and slight mod) of the QB64pe program by SierraKen. (SierraKen's program shared with the QB64pe community in th...
-
This BAM program is a port, with mods, of the GW-BASIC "CALENDAR" program by Taung-Chao Lee and Benito Navarro Mtz, as found on Fa...
-
QB64 is a performance demon. BAM, not so much. So I had to mod this program a fair bit as part of reducing the resolution of the screen. A...
-
Although BAM supports arrays, BAM does not support the REDIM statement. So, I've modified the original code to use _MAPSET and _MAPGET, ...