Just a fun little workout for my old sponge ...
Friday, August 8, 2025
Sunday, July 27, 2025
๐ Goals/benefits of BASIC Anywhere Machine
A quick and dirty summary:
The ability to program in BASIC without installing any software (all you need is a modern standards-compliant web browser.)
- So, in regards to requirements: BAM is OS-agnostic and device-agnostic.
Put BAM where you want it and personalize it to any degree,
- Put it on the web to use it from any online device
- Store it locally to use it offline
- i.e. manage/store/use it in whatever way any TiddlyWiki can be managed/stored/used
The ability to share programs with an audience without any special requirements other than having a standards-compliant web browser.
- So, in regards to requirements: BAM is again OS-agnostic and device-agostic
- A shared program is small, as it is (via TW’s Transclusion prowess) exported as a single HTML file that contains only the BASIC program bound to the BASIC transpiler
- Example program: Keijzer Graph
- The small exported program can be emailed, can be put on a static web server, can be stored locally (for offline use), can be embedded in any other Web page (with iframe HTML elements)
Primary use cases:
- hobby programming (I.e. particularly for the children of the 70’s / 80’s and liked programming in BASIC on those home computers), whether you want to program in good old “unstructured” BASIC or “structured” BASIC, and whether or not you want to make use of some BAM-specific features
- teaching fundamental programming concepts/constructs/elements with a language (BASIC) that isn’t cluttered with annoying distractions
- creating self-contained “Web gadgets” in BASIC (because you either cannot stand the “usual suspect” programming languages for “Web gadgets”, or you could not be bothered to learn those other languages, or because you simply have a soft-spot for BASIC.)
- Example: Digital Clock
Constraints:
- BAM is not meant for “web-programming” (at most, you can create a small “Web gadget” that at most interacts with input from a user, but it will not interact with Web servers or anything outside of the BASIC program)
- BAM programs cannot interact with local file systems; however, a BAM program hosted in a TiddlyWiki instance can interact with that TiddlyWiki via local storage AND/OR parameters passed from TiddlyWiki to the BAM program (causing the BASIC program to restart via the TW refresh mechanism)
BAM is really useful for giving old BASIC programs (old-school BASIC games, for example) a new lease on life, and is really good for graphics programming (or any kind of program that does not deal with a local file system, I.e. using files for input and/or output.)
Friday, July 18, 2025
๐ฅ Keijzer Graph
Wednesday, July 16, 2025
๐ฅ Guillermo's Graph (Apple II BASIC to BAM port)
This program is a port (and very slight mod) of an Apple II program, shared by Guillermo Ibรกรฑez with the "BASIC Programming Language" Facebook group (๐ to post).
As always, these types of simple (yet very interesting) graphics from classic BASIC dialects are fun to get working with BAM for export as stand-alone programs that work in Web browsers. What better way to give these old programs a new lease on life by making them easy to share with folk: people just need to have a modern Web browser. The device doesn't matter, and the operating system does not matter, and no software (other than the web browser) is needed.
Sunday, July 13, 2025
๐ฅ Graphics to ASCII Graphics
Friday, July 4, 2025
๐ฅ Fireworks
Wednesday, July 2, 2025
๐ฅ Digital Clock
This program is a port and mod of Antoni Gual Via's program shared with the "BASIC, QBasic, GWBasic computer programming"' Facebook group.
- About the program
- How to set an LED colour preference
- How to embed the clock in a Web page
- How to download the clock to run locally or host it on your own website
About the program
Antoni Gual Via created with QBasic a "digital 7 segment clock using only DRAW." I've made some changes to placate my fussy nature and a little addition:
- I've filled in the segments (using PAINT, because BAM's DRAW statement does not support the "p" (paint) command
- I'm using screen mode 17 instead of screen mode 12 (for the LED: access to 63 predefined colors, instead of only 15 colors; black is reserved for the clock background colour)
- I'm also using a custom screen resolution
- I've also modified the program to check the URL for a "color" query string which can be used to customize the colour of the clock LED lights.
- The URL for the program without specifying a colour preference
- https://basicanywheremachine.neocities.org/sample_programs/DRAW%20DIGITAL%20CLOCK.prod.run
- The URL for the program with a colour preference specified
- https://basicanywheremachine.neocities.org/sample_programs/DRAW%20DIGITAL%20CLOCK.prod.run?color=15
How to embed the clock in a Web page
How to download the clock to run locally or host it on your own website
Aside: The Chrome web browser on my Chromebook allows setting up an HTML page as an "app", so that the HTML page appears as a stand-alone application, instead of a Web browser tab. The Chromebook remembers the location and size of the clock program. Neat !
-
As a coding exercise, I wanted to make use of DRAW statements to get plot points for regular polygons repeated around an axis to create geom...
-
EDIT 2026-05-11: Something was causing this program to not work on mobile devices. I'm guessing I had exported and uploaded the wrong v...
-
Variable Scoping describes where a variable is accessible, or available, within a program. A BASIC Anywhere Machine program may declare (exp...

