Do not press any key on the VIC-20's keyboard while loading as the keyboard of the VIC-20 shares
IO-lines with the Cassetteport.
Memory expansion modules may be used but require some knowledge of the VIC-20's memory
layout, for more info see the next page. To get an idea of your current memory configuration, the
Cassiopei menu shows the BASIC start address and the available memory blocks.
Important note about the loading address of your games/programs:
The VIC-20 can have many different memory configurations. And these configurations affect the
value of the BASIC start address. It is preferred to load programs only with the start address as
indicated by the file itself unless absolutely certain that the file is a pure BASIC file. Because
Commodore allows BASIC files to be reloaded automatically to the correct memory area.
Basically there are 3 types of memory configurations. Unexpanded, 3K expanded and 8K+
expanded. All three situations affect the VIC-20's BASIC start address. Normally the user could
order the VIC-20 to allow relocation of basic programs by giving some extra information in the
LOAD command. For instance LOAD””,1,1 or LOAD””,1,0 (please refer to you VIC-20 manual
for more information about the details, there is no reason to really explain here because the
Cassiopei do not require these commands (when using the fast loading mode)). These commands
however could be of use in the Cassiopei slow loading modes, but this method of loading is not to
be preferred or really required.
The Cassiopei fastloader is an intelligent loader and can figure out by itself where the file should be
stored in memory, so all you need to do is type LOAD and nothing more. It can't be easier, can it?
This is possible because the Cassiopei can detect if the file to be loaded is a BASIC program or not.
When the Cassiopei detects that the file to be loaded is a BASIC file, it will load the file to the
current BASIC start location.
Now how does the Cassiopei know if a file is a BASIC or a machine code program. Well, BASIC
programs on a VIC-20 (or machine code programs that have a basic stub to start it), will load to
address $0401, $1001 or $1201, therefore if the address in the file has one of these 3 addresses then
that must be a BASIC file and relocation to the current BASIC start of the VIC-20 might be
required.
When the address in the file is a different address then one of the above, the file is considered to be
non-BASIC and will be loaded to the address as specified in the file. Therefore if you want to write
your own machine language (a.k.a. assembly) program, then make sure that it does not start at one
of the addresses as mentioned above, otherwise it will be treated as a BASIC program and might
therefore be loaded to an unexpected memory location. Unless you implement a relocation
algorithm as shown on the next pages. Which would be the best thing to do, because then the user
can start a program with a RUN command instead of a SYS command, however this is only
possible for relatively small programs. An example of such a small program are the Cassiopei
fastloader and the Cassiopei menu program, which works on all memory configurations of the VIC-
20 and still can be started with a simple RUN command.
The only real problem lies in hybrid programs, machine code programs that have a basic start
address caused by the basic stub. A simple basic line that allow the program to start with RUN
instead of SYS <something>.
And when you attempt to load a machine code program intended for a 3K expanded machine into a
8K+ expanded machine (or any other configuration), it will not work. Because the program is
treated as a basic program and the machine code is then accidentally stored to the wrong memory
area, causing it to crash the machine when you type RUN.
2019-10-27
Page 34 of 76
CASSIOPEI v2.0
Содержание CASSIOPEI
Страница 1: ...CASSIOPEIv2 0 USER MANUAL this manual is intended for firmware version V20191027 or higher...
Страница 62: ......
Страница 69: ......