===================== A R C V I C Version 0.3 ------------------- Copyright (C) 1998 B.W. van Schooten email: vicman@dds.nl ===================== License ------- This software is distributed as freeware. It may be freely used and distributed as long as all the original files are included in their original form. This software may not be modified or sold for profit, although a small fee may be assessed for the media used for copying the software. This program and documentation is provided 'as is' and without any warranty, not even the implied warranty of merchantability of fitness for any purpose. In no event wil the author be liable for any damage or loss caused by use of this software or documentation. What is so cool about Arcvic? ----------------------------- * Arcvic is a Commodore Vic-20 emulator for Archimedes and RISCPC machines. Arcvic was written within a period of one week. * It is written in 100% assembler, and is optimised to run at 100% speed on an 8 Mhz ARM-2 machine, and at double or higher speeds on just about any other ARM machine. * It handles different screen sizes, and all standard memory expansions. * It autodetects the memory expansion and boots automatically when you load a program. What really sucks about Arcvic? ------------------------------- This is still a 0.x version, which means that this list is still bigger than the previous one. * STRONGARM users absolutely have to turn their cache off, since this program relies heavily on self-modifying code (it uses JIT compiling). * It needs 768K of memory, which may make it hard to run on 1-meg machines. * It is in black&white. * It has no sound. * VIA emulation is limited, which means some programs won't run. Also, the Run/Stop key (TAB) won't break BASIC programs. The Restore key is not emulated. * Only a few programs have been tested on it. * The timing is not very accurate, as it depends on the screen mode you're in (it should work best for 50Hz or 60Hz modes. 70Hz modes will result in a Vic-20 that is too fast). * The program is rather braindead about saving files. At the moment, files are saved to a fixed filename in the directory How do I get it to run? ----------------------- You will need the Vic-20 system ROMs, which are not included in this package. The main reason for this is that they are probably still copyrighted by Commodore. You will need the following ROMs: * BASIC ROM (8192 bytes) which should be named ROM-BASIC * Font definition ROM (4096 bytes) which should be named ROM-Char * Kernel (8192 bytes) which should be named ROM-Kernel These should be placed in Arcvic's directory. You can find them on ftp.funet.fi or on the Arcvic homepage: ftp://ftp.funet.fi/pub/cbm/firmware/vic20/ ftp://ftp.funet.fi/pub/cbm/firmware/characters/ http://wwwhome.cs.utwente.nl/~schooten/software/vic-20/arcvic.html or http://www.geocities.com/TimesSquare/Alley/3583/arcvic.html It is possible that the files you find on Funet or other FTP sites are actually 8194 or 4098 bytes in size. This means they are in BIN format instead of raw format (see also the section on file formats). Delete the first 2 bytes from the file to convert them. How do I run programs on it? ---------------------------- Well, first you obtain some from the 'net, for example from the Funet site ftp://ftp.funet.fi/pub/cbm/ In case a program does not consist of multiple files, you drag the file onto the Arcvic icon, and the emulation should begin automatically. Two things may happen: * In case it is a ROM program, the program should start automatically. * In case it is a RAM program, the Vic-20 should boot normally into BASIC. Once it has booted, press the F6 key (undelete program) and type 'RUN' to start the program. There are also multi-part ROM and RAM programs. These are a little harder to run. * Multipart ROM programs: these are usually recognisable because they consist of multiple files with the same name but with different suffixes such as '-60', '-a0' or '.60', '.a0' or '.20', '.a0' or '6000', '-a000' etc. There should always be an 'a0' part. Drag the parts onto ArcVic one by one, dragging the 'a0' part last. After dropping the 'a0' part, the program should boot automatically. * Multipart RAM programs usually require some engineering to get them to work. Sometimes you may get away by just treating the final part as a single-part program. Reference guide =============== The Vic-20 keyboard ------------------- Archimedes keys are mapped 1-to-1 to Vic-20 keys. However, the meaning of some keys and key combinations is quite different. The mappings are chosen as to be topologically close to their counterparts. Archimedes VIC-20 ----------- ------------ Left Alt CBM tab Run/Stop ` Arrow Left = + [ = ] * ; : ' ; \ clr/home Keypad / ^ Keypad * @ Right Alt Crsr Up/Down Right Ctrl Crsr Left/Right Emulation hot-keys ------------------ * ESC: Back to desktop Should be obvious * F9-F12: Select frame skipping Normally, frames are drawn every 'Vic-20' frame, which is about every 1/50th of a second. On slow (ARM-2) machines, you might want to use frame skipping. F9 - No frame skipping F10 - Skip every other frame F11 - Draw only one out of every three frames F12 - Draw only one out of every four frames * F8: Toggle use of Vsync Normally, Arcvic waits for the vertical sync before rendering the screen. On slow machines, you may not want any wait loops, so you can turn it off using this key. * F6: Undelete program When you press F6 when inside BASIC, the program that is currently in memory is undeleted. This can be used to resurrect a program after the system has been reset. * Make screen grab (F4) A screen grab is saved to the file .screengrab Menu items ---------- * Reset Reset as if issuing a RESET signal to the Vic-20 hardware. If there is a bootable ROM program present, it will be booted, otherwise BASIC is booted. * Total reset Like Reset, but wipes all memory clean and reloads the ROMs first. * Autoboot With this option turned on, the emulator will try to automatically set the memory expansion and reset, according to the start address and the size of the program that is dragged onto the Arcvic icon. * No/3K/8K/16K/24K RAM exp With these, you can select each of the standard memory expansion modules as could be slotted into a real Vic-20. Note that a change in memory expansion only takes effect after resetting the Vic-20. * Save BASIC The program currently in the BASIC area (the area between the BASIC start and end pointers 43/44 and 45/46) is saved to disk. This program can be loaded again by dragging it onto Arcvic, letting the Vic-20 boot, and pressing F6 (undelete). The program is saved to the file .vicbasic The Vic-20 image file formats ----------------------------- The Vic-20 program images typically come into two formats: BIN (also called PRG), and raw data. The system ROMs (ROM-BASIC, ROM-Char, ROM-Kernel) are assumed to be raw data. All files dragged onto Arcvic are assumed to be BIN files. Essentially, BIN files are just like raw data, but with a two-byte header. This header contains the start address of the program in little-endian format.