This is REALLY PRELIMINARY DOCUMENTATION. 2000/08/26 QUICK SETUP ----------- This archive has a lot of junk in it. It's actually my development directory. The important files in the top-level directory are "v9t9", "v9t9.cnf", "modules.inf". You'll need to edit v9t9.cnf to point to your own directories. Be sure the ROMSPath is set up, and that the ROM filenames actually exist, or else you may end up in a situation where it looks like you properly loaded a session file (i.e., the screen looks okay), but the emulated computer will immediately lock up since the ROMS are missing. Modules.inf can have missing modules in it. This v9t9 doesn't care. So don't worry about removing the modules you don't have from the list. UPDATING FROM V9t9 V6.0 ------------------------ This release is mostly backward-compatible with V9t9. It is not forward compatible by default, since by default ALL FIAD FILENAMES ARE TRANSLATED into a new format. For instance, in v6.0 the file "myfile/lst" would be represented as "MYFILE<2000 boundary size (number): size of ROM, should be a multiple of >2000; except for 0, which indicates an unknown size, and a negative number, which indicates the magnitude of the maximum size allowed file (string): name of binary image to load and/or store, searched in the ROMSPath or ModulesPath; if blank, memory is read as zeroes offset (number): byte offset of image, if stored in larger file name (string): text name of memory area DefaultMemoryMap: Setup defaults for a 99/4A memory map Not saved to configuration file MemoryExpansion32K: Use 32K expansion memory (may be overridden by a DefineRAM command) Arguments: on|off (number): toggle Returns first argument ExtraConsoleRAM: Set up >8000->82FF range as real RAM (like in the Geneve) instead of mirroring >8300->83FF (the default) Arguments: on|off (number): toggle Returns first argument ConsoleROMFileName: Name of console ROM which starts at address >0000 Only saved to session files Arguments: file (string): name of binary image Returns first argument ConsoleGROMFileName: Name of console GROM which starts at address G>0000 Only saved to session files Arguments: file (string): name of binary image Returns first argument ModuleGROMFileName: Name of module GROM which starts at address G>6000 Only saved to session files Arguments: file (string): name of binary image Returns first argument ModuleROMFileName: Name of module ROM (non-banked) which starts at CPU address >6000 Only saved to session files Arguments: file (string): name of binary image Returns first argument ModuleROM1FileName: Name of module ROM (first bank) which starts at CPU address >6000 Only saved to session files Arguments: file (string): name of binary image Returns first argument ModuleROMBank2FileName: Name of module ROM (second bank) which starts at CPU address >6000 Only saved to session files Arguments: file (string): name of binary image Returns first argument LoadAllMemory: Load all memory images (ROMs and RAMs) into the emulator Not saved to configuration file LoadMemory: Load the volatile memory images (RAMs) into the emulator Not saved to configuration file SaveMemory: Save the volatile memory images (RAMs) to disk Not saved to configuration file ListMemory: List memory map Not saved to configuration file DefineModule: Define or redefine a standard module/cartridge in the database Not saved to configuration file Arguments: tag (string): short tag for easy reference name (string): full name of module base (string): base of module file name parts (number): sections present (one or more of GROM, ROM, BANKED) DefineModuleMemory: Define or redefine a module/cartridge in the database, giving commands to define its memory configuration Not saved to configuration file Arguments: tag (string): short tag for easy reference name (string): full name of module base (string): base of module file name commands (string): commands used to define module memory map, e.g., 'DefineMemory "RWMC" 0x6000 0x2000 "module_rom.bin" 0x0 "Module ROM file"; DefineMemory "RMG" 0x6000 0x6000 "module_grom.bin" 0x0 "Module GRAM file"' ListModules: List modules in database Not saved to configuration file InitModuleDatabase: Initialize module database to empty (use 'LoadConfigFile' with a modules.inf file to add entries) Not saved to configuration file UnloadModule: Unload currently loaded module(s) and reset Not saved to configuration file UnloadModuleOnly: Unload currently loaded module(s) but do not reset Not saved to configuration file LoadModule: Load a module by tag or name Not saved to configuration file Arguments: tag|name (string): tag or title substring ReplaceModule: Replace current module but do not reset computer Only saved to session files Arguments: tag|name (string): tag or title substring =========================================================================== V9t9 Module Commands =========================================================================== These options affect the modules used to emulate V9t9 --------------------------------------------------------------------------- ListV9t9Modules: List available modules and current status Not saved to configuration file ToggleV9t9Module: Turn use of a module on or off; does not take effect until SetupV9t9Modules is called Arguments: tag (string): tag name for module on|off (number): whether to use or not use module SetupV9t9Modules: Setup module gestalt Not saved to configuration file =========================================================================== Major Emulator Commands =========================================================================== These are general commands to control the emulator --------------------------------------------------------------------------- Help: Display command help Not saved to configuration file Interactive: Control whether emulator waits for user commands Not saved to configuration file Arguments: on|off (boolean): if 'on', emulation will halt; if 'off', emulation continues at end of command list Returns first argument Exit: Exit from interactive mode (same as 'Interactive=off') Not saved to configuration file Die: Exit V9t9 without saving session Not saved to configuration file Quit: Exit V9t9 and save session Not saved to configuration file HomeDirectory: Directory where V9t9 started Not saved to configuration file Returns: dir (directory): directory ConfigsPath: Set directory list for searching and saving configuration files; when saving, new files written to first directory and old files are overwritten where found Only saved to config files Arguments: path (string): list of directories separated by one of these characters: ':;' Returns first argument SessionsPath: Set directory list for searching and saving session files; when saving, new files written to first directory and old files are overwritten where found Only saved to config files Arguments: path (string): list of directories separated by one of these characters: ':;' Returns first argument SaveConfigFile: Save current configuration settings to 'file' Not saved to configuration file Arguments: file (string): name of config file LoadConfigFile: Load configuration settings from 'file' Not saved to configuration file Arguments: file (string): name of config file SaveSessionFile: Save current configuration settings and machine state to 'file' Not saved to configuration file Arguments: file (string): name of config file LoadSessionFile: Load configuration settings and machine state from 'file' Not saved to configuration file Arguments: file (string): name of config file SaveScreenShot: Take a screenshot and save to 'file' or an autogenerated name Not saved to configuration file Arguments: file (string): name of file to write, or "" to use an automatic name in the current directory =========================================================================== Keyboard / Joystick Options =========================================================================== These are generic commands for controlling the keyboard and joystick emulation --------------------------------------------------------------------------- AlphaLock: Enable or disable ALPHA LOCK state (i.e., upon startup; CAPS performs this function at runtime) Arguments: on|off (number): state Returns first argument BindKey: Bind a non-TI key to a command Arguments: key (string): symbolic name of key (see ListKeys); bare key name means 'perform command when key is pressed'; +key means 'perform command when key is pressed' and 'perform command bound to -key when key is released' command (string): text of command to execute ListKeys: List symbolic names of bindable keys Not saved to configuration file ListBindings: List current key bindings Not saved to configuration file DumpKeyMap: Display map of current TI keys held down Not saved to configuration file =========================================================================== Speech Options =========================================================================== These are commands for controlling speech synthesis --------------------------------------------------------------------------- PlaySpeech: Control whether speech is played Arguments: on|off (boolean): toggle speech on or off Returns first argument SpeechROMFileName: Name of speech ROM Arguments: file (string): name of binary image Returns first argument SpeechHertz: Set sample rate for speech Arguments: hertz (number): normal value is 8000 Returns first argument SpeechSampleLength: Set sample length for a unit of speech Arguments: length (number): in bytes, normal value is 200 Returns first argument =========================================================================== Internal Emulator Commands =========================================================================== These options affect the mechanics of 99/4A emulation --------------------------------------------------------------------------- RealTimeEmulation: Toggle real-time emulation mode (attempts to operate at the same speed of the original 9900) Arguments: on|off (number): on: execute at 9900 speed; off: execute with DelayBetweenInstructions Returns first argument DelayBetweenInstructions: Sets a constant delay between instructions (when not in real-time mode) Arguments: cycles (number): number of cycles to count Returns first argument ResetComputer: Resets the 99/4A via RESET Not saved to configuration file PauseComputer: Pauses emulation of the 99/4A Not saved to configuration file Arguments: on|off (number): a number Returns first argument Debugger: Enable the debugger/tracer Arguments: on|off (number): a number Returns first argument AllowDebuggingInterrupts: Allow interrupts to occur while debugging Arguments: on|off (number): a number Returns first argument SingleStep: Execute one instruction and stop Not saved to configuration file BaseClockHZ: Set HZ speed base clock (usually 3.0 MHz) Arguments: hertz (number): number of times per second Returns first argument =========================================================================== Memory / Debugging Commands =========================================================================== These options allow you to change the running state of the virtual machine --------------------------------------------------------------------------- ProgramCounter: Set the program counter Only saved to session files Arguments: address (number): illegal addresses will be ignored Returns first argument WorkspacePointer: Set the workspace pointer Only saved to session files Arguments: address (number): illegal addresses will be ignored Returns first argument StatusRegister: Set the status register Only saved to session files Arguments: address (number): illegal addresses will be ignored Returns first argument VDPAddress: Set the VDP address register Only saved to session files Arguments: address (number): 0->3FFF sets read address, >4000->7FFF sets write address, >8000->87FF sets VDP write register Returns first argument VDPRegister: Set a VDP register Only saved to session files Arguments: register (number): register number, 0-7 value (number): value for register GROMAddress: Set the GROM address register Only saved to session files Arguments: address (number): a number Returns first argument SetRAM: Change contents of RAM Only saved to session files Arguments: type (string): memory type: C/V/G/S address (number): illegal addresses will be ignored string (string): hexadecimal string =========================================================================== TI Disk DSR Options =========================================================================== These commands control the TI 'real' disk-on-a-disk (DOAD) emulation --------------------------------------------------------------------------- DiskImagePath: Set directory list to search for DOAD disk images Arguments: path (string): list of directories separated by one of these characters: ':;' Returns first argument DiskImage1: DOAD image in drive 1 Arguments: file (string): name of DOAD image Returns first argument DiskImage2: DOAD image in drive 2 Arguments: file (string): name of DOAD image Returns first argument DiskImage3: DOAD image in drive 3 Arguments: file (string): name of DOAD image Returns first argument DiskDSRFileName: Name of DSR ROM image which fits in the CPU address space >4000...>5FFF Arguments: file (string): name of binary image Returns first argument =========================================================================== Emulated Disk DSR Options =========================================================================== These commands control the emulated files-in-a-directory (FIAD) emulation --------------------------------------------------------------------------- DSK1Path: Set DSK1 directory Arguments: dir (directory): directory containing V9t9 files Returns first argument DSK2Path: Set DSK2 directory Arguments: dir (directory): directory containing V9t9 files Returns first argument DSK3Path: Set DSK3 directory Arguments: dir (directory): directory containing V9t9 files Returns first argument DSK4Path: Set DSK4 directory Arguments: dir (directory): directory containing V9t9 files Returns first argument DSK5Path: Set DSK5 directory Arguments: dir (directory): directory containing V9t9 files Returns first argument EmuDiskDSRFileName: Name of emulated DSR ROM image which fits in the CPU address space >4000...>5FFF; this DSR defines DSK1 through DSK5 Arguments: file (string): name of binary image Returns first argument EmuDiskSharedDSRFileName: Name of emulated DSR ROM image which fits in the CPU address space >4000...>5FFF; this DSR defines DSK3 through DSK5 and can share space with the real (DOAD) disk DSR Arguments: file (string): name of binary image Returns first argument KeepFileFormat: Toggle preservation of original file type (V9t9 or TIFILES) Arguments: on|off (number): on: don't change existing file's type; off: change type to NewFileFormat Returns first argument NewFileFormat: Select type for new files or converted files Arguments: F_V9t9|F_TIFILES (number): v9t9: original V9t9 file type; tifiles: TIFILES (XMODEM) format Returns first argument UnknownFileIsText: Toggle treatment of unknown (non-V9t9 and non-TIFILES) files as DOS/Unix/Mac text files Arguments: on|off (number): on: read unknown file as text; off: generate error Returns first argument AllowLongCatalogs: Allow catalogs read through DSKx. to return more than 127 records; some programs may depend on this limit Arguments: on|off (number): on: allow up to 32767 entries, off: restrict to 127 entries Returns first argument RepairDamagedFiles: Repair files with bad file sizes, even when opened read-only. This is a bit dangerous if you try to open a non-V9t9 file, which will (obviously) appear damaged. V9t9 will try to rule out files that don't pass enough sanity checks, though. Arguments: on|off (number): on: repair damaged files, off: leave them alone Returns first argument FixupOldV9t9Filenames: Rename older V9t9 files which were mangled to fit in the DOS 8.3 filename format. These files were split at the 8th character with a '.' and all illegal DOS characters (<>=,;:*?[]/\) were biased by 128 to make them representable on that filesystem. New V9t9 file mangling rules assume filesystems that allow long filenames, so there is no splitting at the 8th character, and illegal characters are translated HTML-like into '&#xx;' where 'xx' is the hexadecimal ASCII code for the characters. Files renamed to the new format will not be compatible with older versions of V9t9, unless, under Windows, you refer to the files with the short format (i.e., 'longfilenm' --> 'longfi~1'). Arguments: on|off (number): on: rename old V9t9 files, off: leave them alone Returns first argument GenerateOldV9t9Filenames: Generate filenames that conform to the old V9t9 DOS-mangled format (see above) instead of the new format. Not recommended unless you actively use the DOS version. Arguments: on|off (number): on: generate old V9t9 filenames, off: generate current V9t9 filenames Returns first argument dsrEmuDiskTopOfRam: Top address used in VDP RAM Arguments: address (number): VDP RAM address, minus one Returns first argument =========================================================================== TI RS232 DSR Options =========================================================================== These commands control the TI RS232 emulation --------------------------------------------------------------------------- RS232_1: Give local name for first RS232 port Not saved to configuration file Arguments: filename (string): filename or device for current operating system Returns first argument RS232_2: Give local name for second RS232 port Not saved to configuration file Arguments: filename (string): filename or device for current operating system Returns first argument RS232DSRFileName: Name of RS232 DSR ROM image which fits in the CPU address space >4000...>5FFF Arguments: file (string): name of binary image Returns first argument --------------------