VIC 20 multi-load tape software?

Discuss anything related to the VIC
Post Reply
User avatar
matburton
Vic 20 Newbie
Posts: 13
Joined: Thu Jun 13, 2019 5:33 am
Location: Cambridge

VIC 20 multi-load tape software?

Post by matburton »

Forgive me if I should have been able to Google this!

The C64 seems to have a lot of software, mainly games, which multi-load from tape.
(e.g. Once the player passes a certain point in the game it triggers further loading)

I was expecting the same to be true of the VIC 20 given it can control the tape motor.
In fact I was maybe expecting more titles like that given the limited RAM available on unexpanded models.

Was this not really a thing for the VIC 20?
Was that because that sort of software was released on cartridge instead?
(Disk drives appeared to be less popular outside the US?)
User avatar
eslapion
ultimate expander
Posts: 5458
Joined: Fri Jun 23, 2006 7:50 pm
Location: Canada
Occupation: 8bit addict

Re: VIC 20 multi-load tape software?

Post by eslapion »

matburton wrote: Tue Oct 01, 2019 10:46 am I was expecting the same to be true of the VIC 20 given it can control the tape motor.
In fact I was maybe expecting more titles like that given the limited RAM available on unexpanded models.

Was this not really a thing for the VIC 20?
Was that because that sort of software was released on cartridge instead?
I remember a couple of multiload games from Mastertronic.

http://www.computinghistory.org.uk/cgi/ ... order=Date

I think Psycho Shopper was one.
Be normal.
User avatar
Mayhem
High Bidder
Posts: 3027
Joined: Mon May 24, 2004 7:03 am
Website: http://www.mayhem64.co.uk
Location: London

Re: VIC 20 multi-load tape software?

Post by Mayhem »

There are lots of "multiload" games on tape. It's just often the first load is the instructions, and the second load is the full game, rather than the game being in more than one part.
Lie with passion and be forever damned...
RJBowman
Vic 20 Enthusiast
Posts: 198
Joined: Tue Oct 25, 2011 7:50 pm

Re: VIC 20 multi-load tape software?

Post by RJBowman »

The common thing, especially for games written in BASIC, was that the first program would load graphics into memory from data statements and display instructions or maybe a splash screen, then would write text to the keyboard buffer that would cause the actual game to load and run. I wrote a game that this this once.
User avatar
Stormcrow
Vic 20 Enthusiast
Posts: 177
Joined: Mon Dec 24, 2012 9:46 pm
Website: http://trimboli.name
Location: Ronkonkoma, NY

Re: VIC 20 multi-load tape software?

Post by Stormcrow »

If you're talking about BASIC, why would you need to use the keyboard buffer? Why not just include a LOAD command?
User avatar
tokra
Vic 20 Scientist
Posts: 1123
Joined: Tue Apr 27, 2010 5:32 pm
Location: Scheessel, Germany

Re: VIC 20 multi-load tape software?

Post by tokra »

LOAD within a program is only used for program-chaining and leaves the variable-pointers untouched (AFAIK). This way you can have a large-program that loads smaller programs by itself and keeps the variables intact. However for the case of using DATA-statements to load a character-set and then loading the main-program this usually does not produce the wanted results. As such it is common practice to basically fake a direct-command-line-LOAD within the program. I usually do it something like this:

Code: Select all

998 A=PEEK(186):PRINT"{CLR}LOAD"CHR$(34)"PROGRAM2"CHR$(34)","A
999 POKE631,19:POKE632,131:POKE198,2:END
You just PRINT the LOAD-command on a clear-screen and add the last used device = PEEK(186). This works for tape and disk and drives with different device-numbers like 9, 10 and so on. Then you POKE a {HOME}-key and a {RUN}-key into the keyboard-puffer, and let the VIC know there are 2 keys left in the buffer and end the program, so the buffer will be "typed" after that.

BTW: I'm not sure why you have to declare the value of PEEK(186) as a variable first, but it won't work if you just use PEEK(186) a the end of line 998 above.
User avatar
Stormcrow
Vic 20 Enthusiast
Posts: 177
Joined: Mon Dec 24, 2012 9:46 pm
Website: http://trimboli.name
Location: Ronkonkoma, NY

Re: VIC 20 multi-load tape software?

Post by Stormcrow »

tokra wrote: Tue Oct 08, 2019 2:04 am LOAD within a program is only used for program-chaining and leaves the variable-pointers untouched (AFAIK). This way you can have a large-program that loads smaller programs by itself and keeps the variables intact.
Yes, this is what the manual says happens. The new program is loaded at the start of BASIC memory but the old variables remain in place. If the new program is bigger than the old program, it overwrites as much of the variable space it needs.
You just PRINT the LOAD-command on a clear-screen and add the last used device = PEEK(186). This works for tape and disk and drives with different device-numbers like 9, 10 and so on. Then you POKE a {HOME}-key and a {RUN}-key into the keyboard-puffer, and let the VIC know there are 2 keys left in the buffer and end the program, so the buffer will be "typed" after that.
Bizarre.
User avatar
AndyH
Vic 20 Afficionado
Posts: 364
Joined: Thu Jun 17, 2004 5:51 am
Website: https://www.hewco.uk
Location: UK
Occupation: Developer

Re: VIC 20 multi-load tape software?

Post by AndyH »

matburton wrote: Tue Oct 01, 2019 10:46 am The C64 seems to have a lot of software, mainly games, which multi-load from tape.
(e.g. Once the player passes a certain point in the game it triggers further loading)

I was expecting the same to be true of the VIC 20 given it can control the tape motor.
In fact I was maybe expecting more titles like that given the limited RAM available on unexpanded models.
There was The Trader Trilogy, 3 parts for 16K expanded Vic. There was also a text adventure game that came in two parts but the name of that escapes me.
--
AndyH
HEWCO | Vic 20 blog
Post Reply