DSVIC ---------==============================--------- Copyright 2009 Ian Cowburn ianc@noddybox.co.uk 1. LICENSE ---------- The code to DSVIC is released under the GNU General Public License. See the text file COPYING for details. Other included software is provided in good faith, is not released under the GNU General Public License, and is copyright their respective authors. If any of these authors disagree with the distribution of their work then contact me and it will be gladly removed. VIC-20 BASIC, KERNEL and CHARGEN ROM Copyright (c) 1980 CBM "Pharoah's Curse" VIC-20 Version by Alick Dziabczenko Original Version by Steve Coleman Copyright (c) 1983 HES 2. VIC-20 ------- The VIC-20 was an 8-bit computer released by Commodore Business Machines around 1980 using a 6502 CPU. It was a novelty at the time, coming with full colour graphics and even 4 channels of sound (3 tone generators and one white-noise generator). You could even plug 'standard' Atari joysticks into it! It came with 5K of RAM, of which about 3.5K was free to use unless you spent obscene amounts of money on memory expansion. 2. DSVIC ------- DS81 is an emulation of the VIC-20 in it's various RAM sizes and is supplied in two main forms, as a native Nintendo DS executable and a version with a Gameboy Advance wrapper (in case your Ninentdo DS homebrew device only supports running GBA executables). DSVIC is only really useful if a FAT device is attached to load tapes and ROMs into the emulator., However, one game is included -- my favourite VIC-20 game (naturally), "Pharoah's Curse". 3. Using DSVIC ------------- When run DSVIC displays a splash screen with copyright information and whether the FAT library has been able to find a supported device for the loading of external tapes. Once the A button has been pressed the VIC-20 resets and displays itself on the top screen, and a soft keyboard is displayed on the bottom, touch sensitive, DS screen. When using the soft keyboard by default the shift keys are 'sticky' and once used will stay held down until pressed again. At the bottom of the keyboard is an area where you can click to bring up a menu. Either use the stylus, or the joypad and button A to select an option from the following choices: RESET This resets the emulated VIC-20. PLUG-IN CURSE Plug's in the "Pharoah's Curse" ROM! PLUG-IN ROM Displays a file selector and lets you insert ROMs into the VIC-20. CONFIGURE Lets you configure settings (see last section for settings). If you press SELECT to exit the configuration screen then the configuration is saved into the file /DSVIC.CFG which is read on start-up. MAP JOYPAD TO KEYS Allows you to redefine the DS's joypad and buttons to VIC-20 keys. Follow the on-screen instructions. MACHINE CODE MONITOR Provides access to a basic machine code/memory monitor. This lets you watch the VIC-20 execute op-codes, or single-step over them. Unless you're actually interested in such things you'll never need to go near this option -- it's there to track down emulation bugs as much as anything. See the second to last section for more details. CANCEL Cancels the menu. 4. Using the internal tapes on DS81 ----------------------------------- Games on the ZX81 were supplied on cassette. DS81 includes a few tape files that are selectable from the menu. Follow the on-screen instructions to select the game. A quick description and the controls to use are displayed on the top screen. Once you've selected a tape you can load it in the emulator by using the command LOAD "". If you're really stuck with the ZX81 keyboard: 1. Select your tape. 2. Reset the ZX81 from the menu. 3. When the inverse K cursor is displayed press the J key to generate the keyword LOAD. 4. Press the SHIFT key. 5. Press the P key twice to enter the double quotes (DON'T use the double quotes got by pressing SHIFT+Q. These are not the same!) 6. Release the SHIFT key and press the NEW LINE key. 7. The tape will load and run. 5. Using external tapes on DS81 ------------------------------- If you are using the version of DS81 that allows the use of FAT devices, and you device is supported, they you can load any old tape. FAT support is via the new DLDI interface, so you may need to dynamically link in the appropriate FAT driver. Details are available here: http://chishm.drunkencoders.com/DLDI/index.html Note that the default driver linked in is the Datel Max Media Dock (Compact Flash) -- solely as that's what I have. Simply place the .P file (ZX81 games are usually distributed as .P files that are simply an image of the memory that would have been dumped to tape) and either put it in the root directory of the FAT device or in a directory called ZX81SNAP. Alternatively if you can't remember the names of files, loading "*" will give you with a file selector to select the tape file with. It can't be at all guaranteed that all original ZX81 games will work as expected. After all, DS81 isn't really a ZX81. 6. High Resolution Support -------------------------- There is now some support for high-resolution ZX81 games. Currently it doesn't run quite full speed, and it won't work if the routines are too clever - unfortunately, like Manic Miner where it switches between high and low-resolution in the same frame. I know the Software Farms games seem to work, though "Forty Niner" sometimes goes mad (just incrementing the score) though that's probably a general emulation bug. Of course unless it did that anyway -- I've never played it before. Steven McDonald's games seem to cause no-problem so far. If a game doesn't look right it may also be worth enabling the 'RAM AT 8192' option. If you know of a game that seems to cause it real trouble, please let me know -- the high-resolution support is still a bit of a hack whereby the 'emulator searches memory for the display file on detecting that the 'I' register has changed. 7. Machine Code Monitor ----------------------- On starting the machine code monitor the keyboard will go dim and get overlaid with a text display showing you the Z80 instructions about to be executed along with the current states of the registers in the Z80. The keyboard is dim, but still on display as the montitor does let you use the keyboard. Note that all keys are sticky (like the shift key in its default state) and that joypad mappings are ignored. With the monitor on display the following joypad keys can be used: START - Toggles between running continuously and single-step mode. A - If in single-step mode then executes the next instruction. X - Display a help page. SELECT - Toggles between the current disassembly/CPU state display, a disassembly or a hex-dump of memory. L/R - The shoulder buttons change the address being displayed on the memory dump. Hold the Y key at the same time to make it jump in bigger steps. B - Cycles the value used for the memory dump or assembly views; either the address as set with the shoulder buttons, or one of the registers: HL, IX, SP, IY, BC, DE or PC. Press the config bar at the bottom of the soft keyboard to exit the machine code monitor and return to normal running. 8. Configuration Options ------------------------ STICKY SHIFT This option allows you to decide whether the shift key on the soft keyboard is sticky (toggles when you press it) or acts like the other keys. You should never need to make it non-sticky unless a game needs it. AVERAGE TOUCHSCREEN This option can be enabled if your touch-screen seems to suffer from jumps (mine seems to once in a while) and causes the soft keyboard to only register touchscreen presses if they are within 5 pixels of each other over two frames. Your mileage my vary, but for me it stops the menu randomly appearing. This means that response can be reduced by a frame, but it shouldn't cause problems. RAM AT 8192 One hardware fix that could be made to the ZX81 was to replace the mirror of the ROM that started at 8192 with RAM. This allowed true high resolution graphics. Not that I've found any that work yet :-) ------------------------------------------------------------------------------- $Id: instructions.txt,v 1.1 2007-05-07 19:55:52 ianc Exp $ vim:expandtab:spell