iYASE Multiple Z80 and 6502 computer emulator (c) Ian C, 1999 Spectrum ROM (C) Amstrad ZX81 ROM (C) Amstrad Amstrad CPC ROM (C) Amstrad and (C) Locomotive Software Used with permission Vic-20 ROM (C) CBM Used without permission Allegro 3.0 (C) Shawn Hargreaves Used with permission INSTRUCTIONS ------------ iYASE is a portable, simple multiple machine emulator, supporting (when it works!) various 8-bit micros. Due to its portable nature, platform specific instructions are later in the file. General purpose usage is : iyase [-l]|[-c abbrev] [-s snapshot] [-b address] [-x] [-m] -l List all supported machines (with abbreviated name) -c abbrev Use machine -s snapshot Snapshot to load at startup -S snapshot Snapshot to save at startup (this occurs after loading and so could be used for snap conversion. Especially useful for tape files too if supported.) -b address Set a breakpoint at address after initialisation -x Goto the Memory Menu as soon as the machine is setup and any optional snap loaded -m Goto the Main Menu as soon as the machine is setup and any optional snap loaded See the platform specific instructions for additional switches. Note that the load and save snapshot switches can be used together. If both menu switches are used, the last one is used. Once in the emulator the emulator can be controlled by pressing the emaultor interrupt key (this key is detailed in the hardware specific sections at the end). Once this key has been pressed these options will be presented : Continue - continue the emulation. Common Setup - goto the setup dialog common between all machines. Machine Setup - goto the menu/dialog with options specifically for this machine. Hardware Setup - setup platform dependent hardware/display/etc Load Snapshot - select a snapshot to load. Save Snapshot - select a snapshot to save. Choose machine - choose machine being emulated. Reset - reset the emulation. About - see who was responsible. Check keyboard - display codes returned by keypresses. For checking keybindings. Memory menu - jump to memory menu. Quit - exit iYASE The options on the common dialog setup are used for : Redraw - The emulation is throttled by waiting for a 1/50 sec timer to complete. Using this option you can alter whether it runs as fast as possible (0 - handy for maths intensive parts or to allow the ZX81 and Freescape games to have a responsive keyboard for once) or waits for this number 1/50 sec ticks to happen. Note that if your machine is not fast enough to complete one 1/50 sec cycle on the machine before the timer is up then the timer will not be waited for. Also note the 1/50 value can be configured in the makefile.cfg file. Obviously for people used to PAL, 1 is the correct value. Raster draw - Normally the emulator will redraw the entire screen once every video cycle. With this option enabled, the screen lines will be individually drawn at the appropriate times, which although a lot slower should improve any flash graphical effects. If raster draw is enabled the following option is ignored. Redraw sync - By default if drawing the entire screen in one go it will be right on the 1/n second interrupt. This may not always be satisfactory, and so you can alter the interval after an interrupt when the screen will be redrawn. Note the the emulation engine decides what values are allowable, so this option may not always be configurable. Direct keys - Normally the emulation will pass on any pressed and released keys to the machine engine prior to an interrupt. With the direct keys on this will happen whenever the emulation engine requests them. eg. on the Spectrum having this set will mean the emulator will read the keyboard whenever the ULA is read from. This option is togglable simply as on some hardware platforms reading the keybaord this frequently may not be that practical, and so just reading every frame will have to suffice. And for instance setting this should break the Vic 20 (so it doesn't allow it) as the keyboard matrix is read twice to make sure it's valid. Finally note on some platforms (probably event driven ones, eg. X11) having this set will mean the emulator cannot be interrupted until the emulator asks to read the keyboard! Which is nothing if not realistic... Sound - Switch sound emulation on or off. This does nothing in particular at the moment. ---------------------------------------------------------------------------- MEMORY MENU =========== Similarly to the emulation menu, the memory menu can be jumped to by pressing a certain activation key (this key is detailed in the hardware specific sections at the end). All the memory menu functions that request addresses allow the number to be entered as either : 0xnnnn - Absolute address in HEX 0nnnn - Absolute address in OCTAL nnnn - Absolute address in DECIMAL PC - Current PC register - Value of specified register. These are valid for the Z80 : AF BC DE HL AF' BC' DE' HL' SP IX IY A B C D E H L These are valid for the 65xx : A X Y *address - Use the LSB word at address. Note that address can be anything from this list, eg. "*HL" on a Z80 !address - Use the MSB word at address. Note that address can be anything from this list, eg. "!A" on a 6502 $address - Use the byte at address. Note that address can be anything from this list, eg. "$*0x0000" on anything