Page 1 of 1

freezer software vic20

Posted: Sat Nov 18, 2023 9:00 am
by Rich
I know theres no freezer cartridge for the Vic20, but is there a software version that sits in expanded memory and to use it press a key to activate the software?

Cheers Rich

Re: freezer software vic20

Posted: Sat Nov 18, 2023 10:22 am
by tokra
The closest possible is probably Mike's MINIMON-cartridge. It "hides" in the rarely used $9800-$9fff-area, has a reset-switch that can circumvent cartridge-reset-protection and even for cartridges that use $9800-$9fff it can be deactivated with an on-board-switch.

Re: freezer software vic20

Posted: Sat Nov 18, 2023 12:26 pm
by Rich
Cheers Tokra I`ll have look :D

Re: freezer software vic20

Posted: Sat Nov 18, 2023 5:11 pm
by chysn
For the uninitiated, what is "freezer software?"

Re: freezer software vic20

Posted: Sun Nov 19, 2023 5:52 am
by Mike
chysn wrote:For the uninitiated, what is "freezer software?"
Without that 'software' part explicitly factored in, a freezer as such is a device - mostly in cartridge form - that aims to capture the entire state of the computer at a certain time, write that state to a permanent storage medium and then is able to reload that state to the computer and let operation continue from there on.

As might be expected from that description, doing that is no easy thing.

On the C64, such freezer cartridges exist, and they do their job quite well - being one of several methods to create 'decentral backups' of games, for example (even though producing those backups this way is generally being frowned upon). The C64 provides a certain operation mode, called Ultimax, which eases the operation of those freezer cartridges A LOT. It becomes more difficult though, when not only the state of the computer, but also the state of peripheral devices needs to be saved.
Rich wrote:[...]
That being said: a software-only freezer is more or less wishful thinking. On the C64 and VIC-20, software can in principle take over the whole computer, (re-)claim all relevant vectors and write over all available memory (including the memory occupied by 'freezer software').

The VIC-20 is missing the aforementioned Ultimax mode; also, it is not possible for a cartridge to replace the internal ROMs. That especially means, a cartridge on the VIC-20 cannot replace the hardware IRQ, NMI and Reset vectors at $FFFA to $FFFF. On the C64, the hardware NMI vector is essential to start the freeze operation.

The next best option available then is being able to temporarily disable the BLK5 signal on the cartridge port. This is not possible with software alone, it needs extra hardware between VIC-20 and cartridge. The MINIMON cartridge offers such a freeze reset, which disables autostart of the secondary cartridge in the extender. Furthermore, the reset signal is not sent to the secondary cartridge, any internal logic there (for example banking registers) will retain their state. MINIMON is then started with SYS 38912 and allows to inspect the memory (internal and external), make a copy to storage, etc.

Finally, the built-in disassembler and assembler, and the other tools in MINIMON allow for a finer treatment of making a backup copy. The real deal is not letting the game take over the computer, but letting it run under control of the monitor, like shown here for an example.

This method results in a capture of the computer's state right after the program has been loaded but before it has been started - and that is exactly the aim of the game! :mrgreen: