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 'x;' 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
--------------------
|