Now that I've got Basic properly figured out, I can do absolutely whatever I like with it. On the Premium bee, there's a third 8K ROM, which is bank switched in to 8000-9FFF, which contains the premium patches. The patches only occupy about 2K, so there is heaps of space.
I started by moving code out of the ROM A and ROM B sections to ROM C, cleaning up many of the patches, and rewriting the colour command so it uses an actual keyword rather than just hacking the compressline and expandline routines to create POKEs.
Then I added commands to work with PAK Carts. PAK DELETE nn can delete a PAK. PAK COPY xx TO yy copies from one PAK to another. PAK LIST lists the contents of PAKs.
I added support for high-speed 2400 baud tape load and save (LOADF, SAVEF) and further worked on the LOAD routine to allow loading of tape software directly to PAK. So LOADF TO PAK loads a program from tape at 2400 baud, and stores it in the next available non-blank PAK with headers that allow PAK LISTing, plus execution simply USING PAK nn.
Next I added Freebee Monitor to ROM C. Normally Freebee Monitor resides in PAK, but I wanted to be able to examine what was in my PAKs from monitor, and it's hard to do that when you blow your monitor code away when you change PAKs. So in it goes!
That got me thinking about 80 column mode, as my monitor runs in 80 column mode. Wouldn't it be nice to extend basic to support 80 columns? So I did, including LORES that now works in 80 x 24 mode with a stunning 160 x 72 pixels.
I used (thanks to the suggestions of the crew at MSPP) the keyword WIDTH to allow 80 column mode, so WIDTH 64 does 64x16, and WIDTH 80 does 80x24. Microsoft basic back in the day allowed things like WIDTH 40... So, let's do that also. Freebee doesn't support halving the dot clock like Premium Microbees did (for Viatel), but it does have heaps of PCG RAM, so we can copy the character set to PCG and 'smear' the 8 bit wide characters across two PCG banks, then edit the screen output routines to write the two characters.
The result is what you see at the top of the page.

No comments:
Post a Comment