freezer software vic20

Basic and Machine Language

Moderator: Moderators

Post Reply
User avatar
Rich
Vic 20 Hobbyist
Posts: 137
Joined: Mon Nov 29, 2021 4:15 pm

freezer software vic20

Post 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
User avatar
tokra
Vic 20 Scientist
Posts: 1123
Joined: Tue Apr 27, 2010 5:32 pm
Location: Scheessel, Germany

Re: freezer software vic20

Post 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.
User avatar
Rich
Vic 20 Hobbyist
Posts: 137
Joined: Mon Nov 29, 2021 4:15 pm

Re: freezer software vic20

Post by Rich »

Cheers Tokra I`ll have look :D
User avatar
chysn
Vic 20 Scientist
Posts: 1205
Joined: Tue Oct 22, 2019 12:36 pm
Website: http://www.beigemaze.com
Location: Michigan, USA
Occupation: Software Dev Manager

Re: freezer software vic20

Post by chysn »

For the uninitiated, what is "freezer software?"
VIC-20 Projects: wAx Assembler, TRBo: Turtle RescueBot, Helix Colony, Sub Med, Trolley Problem, Dungeon of Dance, ZEPTOPOLIS, MIDI KERNAL, The Archivist, Ed for Prophet-5

WIP: MIDIcast BASIC extension

he/him/his
User avatar
Mike
Herr VC
Posts: 4841
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Re: freezer software vic20

Post 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:
Post Reply