Why settle for two BASICs when we can have four

Using, learning, programming and modding the Gigatron and anything related.
Forum rules
Be nice. No drama.
Post Reply
User avatar
marcelk
Posts: 488
Joined: 13 May 2018, 08:26

Why settle for two BASICs when we can have four

Post by marcelk »

Today we gained two more BASICs... One new, one (very) old.

Earlier today, at67 offered his BASIC compiler for the Gigatron. This is a project that has been brewing for more than a year. It's still in alpha-stage (incomplete and no documentation!), but it is GREAT already. This is a cross-compiler that creates fast Gigatron binaries from simple BASIC programs. This is fantastic news for those who like to write their own games but don't want to dive too deep into the Gigatron machine languages (or into GCL). Earlier this week this compiler built our Christmas greetings, with snow physics and Jingle Bells tune.

At67's compiler is the third BASIC for the Gigatron. The first was our port of Tiny BASIC more than a year ago. The second was MS BASIC with floating point, running on v6502 (which also came about in 2019). Today I decided that three BASICs aren't enough because we can have four.

We have Apple-1 emulation after all, so why not? Most work was to arrange the video indirection table such that we have a 4K continuous block for Wozniak's original Apple-1 BASIC. We managed to free $6000-$6FFF in the 32K system. That mirrors to address $E000 and that is exactly where the original likes to sit. Then we reordered the zero page a bit and recompiled A1 BASIC using cc65. Et voilà, there it runs!

E000R.png
E000R.png (35.96 KiB) Viewed 23635 times

For now it sits in the main menu of dev.rom, but it's also available as a precompiled GT1 file that should run on stock ROM v4. As usual, there probably still are some quirks. A nice quirk is that it gives the appearance to run faster than on the original machine, despite our v6502 running up to 6 times slower than a physical MOS 6502 processor. That is because the original Apple-1 hardware could send out only 60 characters per second. The Gigatron emulation didn't inherit this restriction (yet).
Post Reply