TL;DR
The Penultimate +3 Cartridge is now the Penultimate +3 Turbo, and has a built in fastloader, the speed of which is comparable to JiffyDOS (without having to open your machine or lose access to your datasette drive). Get yours now from TFW8b.com.
The long version
In the development folder for the Penultimate Cartridge, there is a text file with a list of features and games to add, things I have thought of, or ideas from TFW8b, suggestions from Patreon and social media, messages to support etc. Each time I revisit the code, I go through that and see what we can add next.
One thing on there that kept getting pushed back was a fastloader. This is something on the list of "it would be nice to add, but might take a long time or may not even be possible" - TFW8b has added quite a few pie in the sky ideas in there.
One reason I had pushed the fastloader back, is I have history with it. I spent several months in 2017 reverse engineering and disassembling the Epyx Fastload cartridge, with an aim of producing our own improved version.
Dubbed the "Epic Fastload" (see what I did there?), it was very close to production, but never quite made it over the line.
Hardware wise, the Epyx Fastload was not always the most compatible with non-standard machines. It relied on keeping a capacitor charged to keep the ROM overlay enabled, topped up by accessing specific addresses. The speed of discharge of that capacitor, and the logic level it switched at, were down to the PLA, and I am sure you know how many different variations of those there are these days. All sorts of different implementations with CPLD, FPGAs, GALs, EPROMs etc. (I am sure someone will do one with a Raspberry Pi one day, if they haven't already).
(My GAL based PLA replacement from 2015, another thing that I didn't think was good enough to release as it was not 100%)
To try to make the Epic Fastload it more compatible, I changed to use a flip flop to enable or disable the ROM. And it almost worked, but there were some weird timing issues, and problems remembering states when dealing with interrupts, particularly the scan line interrupts.
As you can see, I went through quite a few variations trying to find the best way to do it.
We even got as far as getting the production boards made, although I got overruled on the name, these were called FutureLoad (everything was "Future" at that time). (Rod likes to remind me of my failure of that project from time to time. Sorry Rod)
But it wasn't to be. I couldn't get a version that I was happy was good enough to go. It worked most of the time on most machines, but that's not good enough.
I have revisited it a few times since then, but it has mostly been sitting in a box in the back of the cupboard.
Roll on to 2024
Another feature that is on the "one day" list for the Penultimate Cartridge is a freezer cartridge. To that end, in the last hardware revision, I added a way to use the second half of the RAM chip (which was previously unused). My plan was that could be useful for a freezer cartridge, giving it an area to work in, or to backup to.
Since that was there, and the freezer cartridge wasn't likely to happen any time soon, I made that available to the user in a special mode that TFW8b dubbed "enhanced mode". This allows the user to select between the full 35K expansion RAM, and a second full bank of 35K. The base memory in the VIC20 remains fixed, so any code which switches banks needs to be in the base 5K of RAM.
I was speaking to Robin Raymond (who wrote the C64 game "Kingdom of the Seven Stones") about a future VIC20 game that could make use of this and how that could load in one bank full of data, switch banks and then fill the second and then set the game running.
One issue with that is it will be quite slow loading from disk on a VIC20. I told him about the fun I had with the fastload and said it would be interesting to see if that could be adapted for the VIC20. I was busy testing the next release at the time, so I sent him my reverse engineered version of the Epyx fastload code to see if he could get that running on a VIC20.
I was rather surprised to hear a few days later that he had got it running. The VIC20 does not need to deal with switching the ROM in and out, scan line interrupts, or the processor state register.
There were still various issues to resolve, I will go into them in a separate post, lots of little things like squeezing it down into 1K and dealing with the various clock frequencies of the different Vic models.
We spent the next couple of weeks sending versions back of forth, trying to improve it, make it smaller, speed it up.
But, by the end of that, we had a version that I could fit into the 1K that was available at the time.
Then followed lots and lots of testing (which is what I have been busy with recently).
I found (and fixed) several issues, and it is now working on everything I have tried.
Well, with two exceptions. The Pi1541 and the 1581.
Other than that, it works on the main targets, the built-in SD2IEC and real 1541 disk drives. Since it is using a version of the Epyx fastload protocol, it is supported on existing SD2IEC devices as well.
This video from Rod shows how it compares when loading the VIC20 version of Elite.
You can see immediately how the splash screen loads in comparison to the standard loader.
- New VIC20 TurboLoad - 9.07s
- JiffyDOS - 8.53s
- Standard VIC20 - 76.56s
About 8x times faster that standard, pretty much the same as Jiffy DOS, I am happy with that. JiffyDOS is great, but requires opening the case and desoldering the ROM chip and also losing your datasette drive (unless you fit a switch to go back to the standard ROM).
This works from the built in file browser without any modifications to the VIC, and without losing your datasette port.
It can be disabled using the T key, which is now on the menu screen where help used to be.
Now you can see the bits I had to censor in the previous post on the new help pages.
Files selected in the file browser will load with the turbo load by default, and it will remain resident after loading the first file (so will work for multi-part loaders).
It is not enabled by default when you exit to BASIC. To activate it, you type
- SYS 40000
I was pleased with that, hopefully it's easy enough to remember, SYS 4 and 4 zeroes.
From that point it will remain resident until reboot. It will speed up any file loads using the LOAD command or the standard kernal calls.
It does not speed up anything else, save and other disk operations will remain at normal speed. Also directory load for complicated reasons, although we have a solution for that in the works.
Roadmap
Things might get a little confusing at this point. Things were planned for the future, but this is too good to not add it as soon as possible.
Penultimate +2 (now)
This was frozen at 7.47 and will not be getting updated with the Turboload.
Penultimate +3 Turbo (now)
The Penultimate +3 is currently shipping with this version of Turboload, and has been for a couple of weeks now. This version has a built in SD2IEC with a microSD card.
Penultimate +3 Turbo DCR (Q2 2025)
This is the single board version of the Penultimate +3, with the SD2IEC integrated, and will have a full size SD card. This version is expected Q2 2025, the prototype boards are currently in production. More features to come in this one, and it should end up slightly faster than Jiffy DOS. (named the DCR after the C128 DCR which was similarly combined mainboard and disk drive, although we have no plans to put it in a metal box. Yet.....)
Penultimate +4 (2026+)
This is likely to be some time in 2026, and will be all new hardware, I have been wanting to upgrade various bits for a while, and I think the DCR will be squeezing that last possible drops out of the current chipset.
So, consider this a heads up, it might be a good time to stick your Penultimate cartridges on ebay and get one of the new ones.
Advertisements
The new Penultimate +3 with built-in SD2IEC drive and Turboload is shipping now from TFW8b.com.
Tindie
Minstrel 2 and 3 kits are available from my Tindie store, with worldwide shipping. Versions avaiable for ZX81 case or standalone with keyboard, and also Misntrel 3 with ZXpand microSD card interface (andn now available as PCB only).
I will slowly be moving things over there from my SellMyRetro store, so if there is anything that you want, let me know and I'll add it.
Patreon
You can support me via Patreon, and get access to advance previews of posts like this and behind the scenes updates. Patreon supporters had advance notice of this new feature, and are currently getting a run of posts as I catch up after spending the last few months testing Turboload. This also includes access to my Patreon only Discord server for even more regular updates.