Tuesday, October 31, 2023

πŸ–₯ Scroly Ghosts

I was wondering how I'd handle sprites in BASIC Anywhere Machine, and got a little bit sidetracked by the Halloween spirit ...



Sunday, October 29, 2023

πŸ–₯ Ten Print Twist

This BASIC Anywhere Machine program is a port and mod of a program by ZXDunny:








πŸ–₯ Ten Print Vertical

Inspired by Holger Weßling's programming competition for Commodore 64 programmers:

Write a pure BASIC program which implements the famous pattern "10 PRINTCHR$(205.5+RND(1));:GOTO10" but with a column-wise, i.e. vertical structure.


Ten Print Vertical



Friday, October 27, 2023

πŸ†• ON ... RESTORE

Latest version of BAM


ON ... RESTORE sets the DATA-READ pointer to one of many specified line identifiers using a specified index.

Syntax



  • indexValue
    • a value that indicates the position of the line identifier to use for branching
    • a "1" causes branching with the first line identifier
    • a "2" causes branching with the second identifier
    • etc.
  • lineIdentifier
    • at least one instance, normally many
    • as many instances as there are possible index values (1 to 1)
    • each instance is one of the Line Identifier types (line number or line label)


Sunday, October 22, 2023

πŸŽ‰ New version of BASIC Anywhere Machine

Full details in the release notes.

Summary of enhancements

  • BASIC Language Updates
    • DATA statement enhancement
    • TAB behaviour change
  • IDE Updates
    • Program "extra view windows"

Saturday, October 21, 2023

⚗ New feature for the IDE: Opening extra edit windows for the current program

Try in the development version of BAM !

Sometimes, it can be a real pain in the caboose to work with parts of a program so far apart from each other that it requires a lot of scrolling.

This pending feature allows opening as many "extra edit windows" as needed to view far apart sections of a program side-by-each.

NOTE a current bug: when the extra window is opened, you have to click on the window and move the text cursor to get the entire program to appear.  Fix pending.

Added to the "Project" menu:  "Extra Edit Window" menu item:



And the result of opening an extra edit window, side-by-side with the BAM IDE:



πŸ–₯ Melkiorish Screen Saver

Based on a TRS-80 BASIC program by Melkior Wiseman.

UPDATE:

Melkior got a hold of me to mention about his program "the idea wasn't originally mine. I just adapted someone else's idea. I have no knowledge of whose idea it was, though, because the program did not have a programmer's name in it."

Although we do not have the code adapted by Melkior, and we don't have the name of that code's author, this BAM program demonstrates the fun of programming: how tall we stand as we stand on the shoulders of who knows how many people!  So cool. 

So we give attributions to the folk we know of, remembering the attributions implicitly include however many generations of anonymous other individuals who have contributed to the heights we reach today.  Even with the simplest of BASIC programs which are still a blast.

The original TRS-80 program is listed in comments below the BAM program.





Thursday, October 19, 2023

πŸ–₯ Plasma Plus Vonoroi (a QBJS program by b+ ported to BAM)

Although BAM supports arrays, BAM does not support the REDIM statement.

So, I've modified the original code to use _MAPSET and _MAPGET, replacing anything having to do with arrays with the statement and the function.

Because the program uses a low resolution to maintain decent speed in browsers, you will find the animation less "pixellated" if you resize your browser (which then causes BAM's BASIC console window to resize to maintain the intended height to width ratio of the program's SCREEN.





πŸŽ‰ BAM Advertising Artwork by The Joyful Programmer

The Joyful Programmer surprised me with a gift of advertising artwork for BAM.

Although he initially quickly created these three works of art as just a funny and silly story, shared with the the BAM Discord community, on how I "lured him into BAM", the images are so good that The Joyful Programmer took some extra time to add some polish for BAM advertising use.

I really love these three works of art, and I just cannot wait until an advertising plan/opportunity to share them:












Wednesday, October 18, 2023

πŸ–₯ fake-voronoi-plasma (Dav's QB64 program ported to BAM)

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.  As a result, the animated graph will be pretty pixelated when viewing the program full screen on large displays.




Tuesday, October 17, 2023

⚗ Tentative new behaviour for the TAB function

I've never been happy with the wwwBASIC's TAB function implementation.

More than likely, this prototype edit of TAB's behaviour will get promoted as the new behaviour in the next BAM release.

A silent video demonstration:



Monday, October 16, 2023

πŸŽ‰ New version of BASIC Anywhere Machine

Full details in the release notes.

Summary of enhancements

  • BASIC Language Updates
    • Statements and Functions
      • New xMAX and yMAX functions
      • New SCREEN_ASPECT function
      • New "DONOTHING" statement
      • New OPTION _EXPLICIT
      • New RGB Color functions
      • CIRCLE Enhancements
        • CIRCLE performance improvement (Phase 1)
        • CIRCLE "Thick" option
      • LINE
        • LINE "TO" alternative for "-"
        • LINE: Syntax documentation correction
      • Rgba include libraries
        • READ ME: Important Rgba Notes
        • New "Rgba" statements
          • RgbaBox
          • RgbaCircle
          • RgbaLine
    • Internal technical details
      • Graphics coordinates: Dealing with decimal numbers
  • IDE Updates
    • Touch Device: Change to "overscroll" behaviour
    • BAM Appearance: New "Palette Settings"
  • SUGGESTION when configuring BAM

Saturday, October 14, 2023

πŸ–₯ Calendar (a GW-BASIC program ported to BAM)


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 Facebook.

The most notable mods:

  • click/touch buttons added previous previous/next month navigation
  • the current date is highlighted with a circle
  • cosmetic changes/additions
The bulk of the programs smarts is the original GW-BASIC code, which I find pretty cool.


Aside, for the giggles:

Say you were to download the program and upload it to your website (because you are a retro/BASIC fiend!), you would include something like the following on any webpage:

<iframe src="https://basicanywheremachine.neocities.org/sample_programs/BAM%20Calendar.prod.run" style="width:300px;height:400px;">

</iframe>


Saturday, October 7, 2023

🚧 In the queue: colour themes

Thank-you, "issues37", for the suggestion !

In the current development version of BAM  (try it !) , Tools Menu, BAM Customization section, the IDE Config menu item.

This will bring up the IDE Config window with options to configure the coding editor and to select color themes.

If you have a large display, or a dual-display configuration, move the IDE Config window to one side, so that you can have a WYSIWYG experience, seeing immediately how the changes look in BAM.

The coding editor in BAM is a TiddlyWiki plugin for CodeMirror (trimmed down).  Configuration of it is independent of the new color themes.

The available colour themes are the pretty much the out of the box themes that come with TiddlyWiki.  I've made some very slight adjustments to some things when my aging eyeballs could not read text due to lack of contract with background colours.

Give that a spin!



πŸ–₯ Analog Clock (a QB64 program by b+ ported to BAM)

This really nice looking clock was created by b+ with QB64, and I could not resist the "brain-age" exercise of getting that working in BAM.

UPDATE: The previous bug causing missing pixels in the clock hands has been squashed.

Still some work to do:  if you look closely, there are some missing pixels in the hands of the clock.  Something to figure out once I've got a cup of coffee brewed !


Clock, issue with CIRCLE statement resolved



Previous Clock with issue causing missing pixels

Thursday, October 5, 2023

πŸ–₯ Mr. Spock, an MSX BASIC program by Alejandro Yassogna ported to BAM

The MSX BASIC program is based on a program by Ed Solie

Written in Applesoft on an Apple II+ in 1983 and running in the emulator 40 years later with minimal modification.

 



Wednesday, October 4, 2023

🧰 BASIC Anywhere Machine and touch devices: I finally got my hands on a tablet

For the last couple of years, I've been thinking: I'm pretty sure BASIC Anywhere Machine will work fine on touch devices.

Finally, I just splurged and got myself an inexpensive Android tablet to try things out: a Lenovo Tab M9.

Hopefully soon, I'll be able to fully test the BAM IDE and test programs exported from BAM.

I'll report my findings as I, um, find them.


Sunday, October 1, 2023

πŸ–₯ Animated lissajous curves (SpecBAS program by Paul Dunn ported to BAM)

With very slight mods:
Click/touch the running program's screen to change the image.  Every once in a while, there are some really stunning ones considering the small amount of code going on.











πŸ“š FUNCTION (and SUB): variable arguments, by default, are "passed by reference"

Preamble A primer on "call-by-reference" vs "call-by-value" BAM HOWTO (BTW:  "call-by-reference" aka "pas...