home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.7z / ftp.whtech.com / emulators / v9t9 / linux / sources / V9t9 / README.txt < prev    next >
Encoding:
Text File  |  2006-10-19  |  33.7 KB  |  1,051 lines

  1.  
  2. This is REALLY PRELIMINARY DOCUMENTATION.
  3.  
  4. 2000/08/26
  5.  
  6. QUICK SETUP
  7. -----------
  8.  
  9. This archive has a lot of junk in it.  It's actually my development
  10. directory.  The important files in the top-level directory are "v9t9",
  11. "v9t9.cnf", "modules.inf".
  12.  
  13. You'll need to edit v9t9.cnf to point to your own directories.  Be
  14. sure the ROMSPath is set up, and that the ROM filenames actually
  15. exist, or else you may end up in a situation where it looks like you
  16. properly loaded a session file (i.e., the screen looks okay), but the
  17. emulated computer will immediately lock up since the ROMS are missing.
  18.  
  19. Modules.inf can have missing modules in it.  This v9t9 doesn't care.
  20. So don't worry about removing the modules you don't have from the list.
  21.  
  22. UPDATING FROM V9t9 V6.0
  23. ------------------------
  24.  
  25. This release is mostly backward-compatible with V9t9.  It is not
  26. forward compatible by default, since by default ALL FIAD FILENAMES ARE
  27. TRANSLATED into a new format.  For instance, in v6.0 the file
  28. "myfile/lst" would be represented as "MYFILE<<L.ST" (where '<<' is
  29. actually one character, which I can't type right now) so it would be
  30. compatible with the 8.3 filenames on the MSDOS filesystem.
  31.  
  32. In the new release, the filenames are expanded to take advantage of
  33. long filenames, and borrowing an idea from HTML, illegal DOS characters
  34. are translated into &xx; (where xx is the hex code for the character).
  35. V9t9 v6.0 obviously won't understand this (it will see something like
  36. "MYFILE~1.x;" ???).  
  37.  
  38. To prevent V9t9 from changing your files if you want to still run V9t9
  39. v6.0 (why? ;), edit v9t9.cnf to say this:
  40.  
  41. FixupOldV9t9Filenames off
  42. GenerateOldV9t9Filenames on
  43.  
  44. (NOTE!!!  Due to an oversight these commands are saved in session
  45. files; if you run any of the session files I included, the opposite
  46. commands from above are activated (advising V9t9 to fixup the old
  47. filenames and generate new format names), overriding the settings in
  48. v9t9.cnf.  I advise backing up your v9t9 FIAD files first in
  49. case. !!!)
  50.  
  51. Also, the command "RepairDamagedFiles off" should be run if you want to
  52. preserve some bugs that v6.0 has regarding the structure of TI files...
  53.  
  54. ABOUT THIS V9t9
  55. ---------------
  56.  
  57. NEW FEATURES:
  58.  
  59. -- Ports to Linux and Win32
  60. -- Real-speed 9900 emulation
  61. -- Runtime command/config language
  62. -- Ability to save/load machine state
  63. -- Direct reading of GRAM Kracker files
  64. -- Direct support of TIFILES files
  65. -- Much better speech synthesis
  66. -- GUI interface using GTK
  67. -- Runtime module database manipulation
  68. -- Support for saving/loading Mini Memory RAM to disk
  69. -- Real five-sprites-on-a-line "feature" support
  70. -- Digitized sound emulation, running in separate thread
  71. -- User-configurable memory map and semantics
  72. -- Support for binding commands to keys
  73.  
  74. MISSING FEATURES from V6.0:
  75. ---------------------------
  76.  
  77. -- Joystick support (the mouse works a little under Linux SVGAlib;
  78.    the numeric keypad is used for the joystick #1)
  79. -- Demo support (I may later support playback, but not recording)
  80. -- Decent debugger (the GTK interface kinda works though)
  81.  
  82. Here's the basic model: the emulator is primarily controlled through a
  83. command language, which you can use directly, or which the GTK
  84. frontend uses when you use menus or dialogs.  This is the primary
  85. interface to the emulator.
  86.  
  87. This command language is very simple, and is designed in a "verb-noun"
  88. syntax, or "command-argument" syntax.  The first word on a line is the
  89. command, and the arguments follow.  Basically like the v6.0 v9t9.cnf
  90. format.  You can say either "command=value,value,..." or
  91. "command(value,value,value)".  To get the value of a command which
  92. you executed earlier, use "(command)" (i.e., "print (Home)").  Most
  93. string values can go unquoted, but if they have spaces or weird
  94. punctuation, "quote them".
  95.  
  96. v9t9 supports entering commands at any time.  Unless you're using the GTK
  97. GUI (the default for X11 and Win32), you have to pause v9t9 to get
  98. to the command window first -- the 'pause' key does this.  Enter
  99. commands there.  See the sample config file for syntax.  Use the command
  100. "exit" to go back to V9t9.  In the SVGAlib GUI, you can use Tab to
  101. autocomplete command names.  Also, in any GUI, you can abbreviate commands
  102. to a unique 5-letter prefix ("AllowDebuggingInterrupts" could be "allowd").
  103.  
  104. There is a command "help" which does just that, but it scrolls by, so
  105. do this first to generate a help file:
  106.  
  107.         ./v9t9 -e "help;quit"
  108.  
  109. While this still writes everything to the screen, a log file has been
  110. generated (log.unix.txt or log.win.txt) which has the help text copied
  111. into it (somewhere).  In Linux, if your config file is broken or
  112. missing, you'll probably get blue text after running this from the
  113. console ;).  Just change consoles and it should be fixed...
  114.  
  115. (NOTE: I've already put this help text at the end of this file.)
  116.  
  117. V9t9 will let you do almost anything wrong -- i.e., try to load files
  118. that don't exist, try to point to bad directories, etc., and all this
  119. information appears in the log, which shares the same interface as the
  120. command shell.  When running in fullscreen mode, you'll have to
  121. inconveniently switch back and forth to read these messages (if
  122. necessary).
  123.  
  124. As you may have guessed, this command language is used to
  125. store configuration files.  In fact, a config file is just a command
  126. script.  Something new here is that you can save the v9t9 machine
  127. state into a command script / config file at any time.  (It basically
  128. consists of adding a lot of commands like "set memory to this value".  ;)
  129. The "SaveConfigFile" and "SaveSessionFile" commands handle this.
  130. (Likewise, the LoadConfigFile/LoadSessionFile commands do the opposite.)
  131. Sessions files can be located anywhere in the path "SessionsPath" (like
  132. ROMSPath, etc., from v6.0).
  133.  
  134. You may notice there are references to "config files" and "session
  135. files".  These are both stored in the same format, except that "config
  136. files" remember settings that are specific to an OS or interface,
  137. which won't necessarily work on another computer.  "Session files" remember
  138. the state of the machine, and all the stuff that's independent of the
  139. machine.
  140.  
  141. When you start v9t9, it tries to load "v9t9.cnf" and "session.cnf".
  142. The first is a config file, and session.cnf is the session file, saved
  143. automatically when you "quit" (but don't "die") from a previous run of
  144. v9t9.  (The ctrl-break key from the console is "die", not "quit", so this
  145. won't overwrite the session.)  You can specify alternate config and/or
  146. session files on the command line.
  147.  
  148. This emulator engine is surrounded by "modules", which are the
  149. specific drivers for video, sound, keyboard, et cetera.  Since these
  150. modules are selected at runtime, you can basically run the emulator
  151. from any OS or GUI (as long as someone writes a module ;).  The
  152. modules you use do not affect what commands are available (except when
  153. modules have their own commands), so the same commands will work in
  154. X11 and Win32, from a console or from a window, et cetera.
  155.  
  156. Currently it supports:
  157.  
  158. video:
  159.         Linux SVGAlib (console) w/text command shell
  160.         X11 plain window w/text command shell
  161.         X11 GTK with GTK command shell
  162.         Win32 plain window w/text command shell
  163.         Win32 GTK with GTK command shell
  164.  
  165. sound:
  166.         Linux OSS
  167.         Linux ALSA
  168.         Win32 wave driver (standard)
  169.  
  170. There are other modules, for keyboards and such, but basically they're
  171. tied to the video modules, in terms of how they can be combined.  Also,
  172. TI DSRs are implemented as modules, making it easier to add new ones.  As
  173. it is right now, though, all this stuff has to be compiled into one big
  174. program, so it's not easily extensible.
  175.  
  176. What does this mean for you?  Essentially, you don't have to do
  177. anything special; the modules are detected automatically and the
  178. "right thing" should happen.  But you may want to avoid using the GTK
  179. stuff in Windows, since the GTK port is not very good at the moment
  180. (also, I've included an executable so you don't have to find all the
  181. GTK stuff and build it yourself, especially since I've only tested the
  182. Win32 build with Codewarrior).
  183.  
  184. In Win32, there's a "-fe xxx" option to control the video settings
  185. upon startup.  Use "-fe gtk" to use GTK (the default), "-fe ddraw" for
  186. the full-screen version (DirectDraw), or "-fe drawdib" for the window
  187. + text console version.
  188.  
  189. In Linux, these are "-fe gtk" for GTK (default, and damn nice), "-fe xlib"
  190. for the X11 window + text console, and "-fe svga" for the SVGAlib version
  191. (not recommended when running from X11!).
  192.  
  193. If you want, the "ToggleV9t9Module" command can be used to
  194. disable/enable modules at runtime (use "ListV9t9Module" to see what
  195. their names are).  Note that if you disable all the video and keyboard
  196. modules, the emulator will not show any output, but be assured, it's
  197. running.  ;)
  198.  
  199. -------------------------
  200.  
  201. Here's a dump of the "help" command.  I realize that some of these
  202. descriptions are wrong.  For instance, in the "DefineModule" command,
  203. the last argument is a sum of BANKED, ROM, GROM, or MINIMEM; also, the
  204. SetupV9t9Modules command is not needed (ToggleV9t9Modules does run it
  205. automatically).
  206.  
  207. ==============================================================================
  208. V9t9 Options
  209. ==============================================================================
  210. This is the complete list of options and commands you may specify in a
  211. configuration file or command prompt.
  212. ------------------------------------------------------------------------------
  213.  
  214.    ===========================================================================
  215.    Logging Commands
  216.    ===========================================================================
  217.    These options control sources and verbosity of logging
  218.    ---------------------------------------------------------------------------
  219.    Log: Toggle logging for given subsystem
  220.  
  221.       Arguments:
  222.          system (string): one of the subsystems from ListLogSystems
  223.          log level (number): level of verbosity (0=off...9=max); a negative
  224.          value sends output only to file, else output is copied to console or
  225.          log window
  226.  
  227.       Returns first argument
  228.  
  229.    ListLogSystems: List targets for logging
  230.  
  231.       Not saved to configuration file
  232.  
  233.    ===========================================================================
  234.    Video Options
  235.    ===========================================================================
  236.    These are generic commands for controlling video emulation
  237.    ---------------------------------------------------------------------------
  238.    ShowVideo: Control whether the screen is displayed
  239.  
  240.       Arguments:
  241.          on|off (boolean): toggle video on or off
  242.  
  243.       Returns first argument
  244.  
  245.    VideoUpdateSpeed: Control how often the screen is updated
  246.  
  247.       Arguments:
  248.          hertz (number): number of times per second
  249.  
  250.       Returns first argument
  251.  
  252.    VDPInterruptRate: Control how often the VDP interrupts the CPU
  253.  
  254.       Arguments:
  255.          hertz (number): number of times per second
  256.  
  257.       Returns first argument
  258.  
  259.    DrawSprites: Control whether sprites are displayed
  260.  
  261.       Arguments:
  262.          on|off (number): toggle sprites on or off
  263.  
  264.       Returns first argument
  265.  
  266.    FiveSpritesOnLine: Obey five-sprites-on-a-line limit of TMS9918A
  267.  
  268.       Arguments:
  269.          on|off (number): on: fifth sprite on a line not drawn (default); off:
  270.          all sprites always drawn
  271.  
  272.       Returns first argument
  273.  
  274.    ===========================================================================
  275.    Sound Options
  276.    ===========================================================================
  277.    These are generic commands for controlling sound emulation
  278.    ---------------------------------------------------------------------------
  279.    PlaySound: Control whether music/noise sound is played.
  280.    (Note: to turn off all sound, disable the sound module.)
  281.  
  282.       Arguments:
  283.          on|off (boolean): toggle sound on or off
  284.  
  285.       Returns first argument
  286.  
  287.    EnableSound: Control whether any sound is emitted.
  288.  
  289.       Arguments:
  290.          on|off (boolean): toggle sound on or off
  291.  
  292.       Returns first argument
  293.  
  294.    DigitalSoundHertz: Set playback rate for digitized sound; interpretation is
  295.    dependent on sound module in effect
  296.  
  297.       Arguments:
  298.          Hz (number): set rate for playback
  299.  
  300.       Returns first argument
  301.  
  302.    DigitalSoundBits: Set word size for digitized sound; interpretation is
  303.    dependent on sound module in effect
  304.  
  305.       Arguments:
  306.          8|16 (number): set word size for playback
  307.  
  308.       Returns first argument
  309.  
  310.    ===========================================================================
  311.    Memory Map / ROM / RAM / Module Options
  312.    ===========================================================================
  313.    These are commands for dealing with the layout of memory in the virtual
  314.    99/4A
  315.    ---------------------------------------------------------------------------
  316.    ModulesPath: Set initial directory list to search for module ROM images
  317.  
  318.       Only saved to session files
  319.       Arguments:
  320.          path (string): list of directories separated by one of these
  321.          characters: ':;'
  322.  
  323.       Returns first argument
  324.  
  325.    SystemModulesPath: Set secondary directory list to search for module ROM
  326.    images
  327.  
  328.       Only saved to config files
  329.       Arguments:
  330.          path (string): list of directories separated by one of these
  331.          characters: ':;'
  332.  
  333.       Returns first argument
  334.  
  335.    ROMSPath: Set initial directory list to search for console ROM and GROM
  336.    images
  337.  
  338.       Only saved to session files
  339.       Arguments:
  340.          path (string): list of directories separated by one of these
  341.          characters: ':;'
  342.  
  343.       Returns first argument
  344.  
  345.    SystemROMSPath: Set secondary directory list to search for console ROM and
  346.    GROM images
  347.  
  348.       Only saved to config files
  349.       Arguments:
  350.          path (string): list of directories separated by one of these
  351.          characters: ':;'
  352.  
  353.       Returns first argument
  354.  
  355.    RAMSPath: Set initial directory list to search for nonvolatile RAM images
  356.  
  357.       Only saved to session files
  358.       Arguments:
  359.          path (string): list of directories separated by one of these
  360.          characters: ':;'
  361.  
  362.       Returns first argument
  363.  
  364.    SystemRAMSPath: Set secondary directory list to search for nonvolatile RAM
  365.    images
  366.  
  367.       Only saved to config files
  368.       Arguments:
  369.          path (string): list of directories separated by one of these
  370.          characters: ':;'
  371.  
  372.       Returns first argument
  373.  
  374.    DefineMemory: Specify existence of a memory area
  375.  
  376.       Only saved to session files
  377.       Arguments:
  378.          flags (string): string of characters defining memory characteristics:
  379.          first, 'R' for ROM, 'W' for RAM, and 'S' for stored RAM;
  380.          then, 'M' for a module, or nothing;
  381.          then, '1' or '2' for banks of a banked module;
  382.          then, one of 'C'onsole, 'G'raphics, 'V'ideo, 'S'peech, 'D'SR
  383.          address (number): starting address of image, should start on a >2000
  384.          boundary
  385.          size (number): size of ROM, should be a multiple of >2000; except for
  386.          0, which indicates an unknown size, and a negative number, which
  387.          indicates the magnitude of the maximum size allowed
  388.          file (string): name of binary image to load and/or store, searched in
  389.          the ROMSPath or ModulesPath; if blank, memory is read as zeroes
  390.          offset (number): byte offset of image, if stored in larger file
  391.          name (string): text name of memory area
  392.  
  393.  
  394.    DefaultMemoryMap: Setup defaults for a 99/4A memory map
  395.  
  396.       Not saved to configuration file
  397.  
  398.    MemoryExpansion32K: Use 32K expansion memory (may be overridden by a
  399.    DefineRAM command)
  400.  
  401.       Arguments:
  402.          on|off (number): toggle
  403.  
  404.       Returns first argument
  405.  
  406.    ExtraConsoleRAM: Set up >8000->82FF range as real RAM (like in the Geneve)
  407.    instead of mirroring >8300->83FF (the default)
  408.  
  409.       Arguments:
  410.          on|off (number): toggle
  411.  
  412.       Returns first argument
  413.  
  414.    ConsoleROMFileName: Name of console ROM which starts at address >0000
  415.  
  416.       Only saved to session files
  417.       Arguments:
  418.          file (string): name of binary image
  419.  
  420.       Returns first argument
  421.  
  422.    ConsoleGROMFileName: Name of console GROM which starts at address G>0000
  423.  
  424.       Only saved to session files
  425.       Arguments:
  426.          file (string): name of binary image
  427.  
  428.       Returns first argument
  429.  
  430.    ModuleGROMFileName: Name of module GROM which starts at address G>6000
  431.  
  432.       Only saved to session files
  433.       Arguments:
  434.          file (string): name of binary image
  435.  
  436.       Returns first argument
  437.  
  438.    ModuleROMFileName: Name of module ROM (non-banked) which starts at CPU
  439.    address >6000
  440.  
  441.       Only saved to session files
  442.       Arguments:
  443.          file (string): name of binary image
  444.  
  445.       Returns first argument
  446.  
  447.    ModuleROM1FileName: Name of module ROM (first bank) which starts at CPU
  448.    address >6000
  449.  
  450.       Only saved to session files
  451.       Arguments:
  452.          file (string): name of binary image
  453.  
  454.       Returns first argument
  455.  
  456.    ModuleROMBank2FileName: Name of module ROM (second bank) which starts at CPU
  457.    address >6000
  458.  
  459.       Only saved to session files
  460.       Arguments:
  461.          file (string): name of binary image
  462.  
  463.       Returns first argument
  464.  
  465.    LoadAllMemory: Load all memory images (ROMs and RAMs) into the emulator
  466.  
  467.       Not saved to configuration file
  468.  
  469.    LoadMemory: Load the volatile memory images (RAMs) into the emulator
  470.  
  471.       Not saved to configuration file
  472.  
  473.    SaveMemory: Save the volatile memory images (RAMs) to disk
  474.  
  475.       Not saved to configuration file
  476.  
  477.    ListMemory: List memory map
  478.  
  479.       Not saved to configuration file
  480.  
  481.    DefineModule: Define or redefine a standard module/cartridge in the database
  482.  
  483.       Not saved to configuration file
  484.       Arguments:
  485.          tag (string): short tag for easy reference
  486.          name (string): full name of module
  487.          base (string): base of module file name
  488.          parts (number): sections present (one or more of GROM, ROM, BANKED)
  489.  
  490.  
  491.    DefineModuleMemory: Define or redefine a module/cartridge in the database,
  492.    giving commands to define its memory configuration
  493.  
  494.       Not saved to configuration file
  495.       Arguments:
  496.          tag (string): short tag for easy reference
  497.          name (string): full name of module
  498.          base (string): base of module file name
  499.          commands (string): commands used to define module memory map, e.g.,
  500.          'DefineMemory "RWMC" 0x6000 0x2000 "module_rom.bin" 0x0 "Module ROM
  501.          file"; DefineMemory "RMG" 0x6000 0x6000 "module_grom.bin" 0x0 "Module
  502.          GRAM file"'
  503.  
  504.  
  505.    ListModules: List modules in database
  506.  
  507.       Not saved to configuration file
  508.  
  509.    InitModuleDatabase: Initialize module database to empty (use
  510.    'LoadConfigFile' with a modules.inf file to add entries)
  511.  
  512.       Not saved to configuration file
  513.  
  514.    UnloadModule: Unload currently loaded module(s) and reset
  515.  
  516.       Not saved to configuration file
  517.  
  518.    UnloadModuleOnly: Unload currently loaded module(s) but do not reset
  519.  
  520.       Not saved to configuration file
  521.  
  522.    LoadModule: Load a module by tag or name
  523.  
  524.       Not saved to configuration file
  525.       Arguments:
  526.          tag|name (string): tag or title substring
  527.  
  528.  
  529.    ReplaceModule: Replace current module but do not reset computer
  530.  
  531.       Only saved to session files
  532.       Arguments:
  533.          tag|name (string): tag or title substring
  534.  
  535.  
  536.    ===========================================================================
  537.    V9t9 Module Commands
  538.    ===========================================================================
  539.    These options affect the modules used to emulate V9t9
  540.    ---------------------------------------------------------------------------
  541.    ListV9t9Modules: List available modules and current status
  542.  
  543.       Not saved to configuration file
  544.  
  545.    ToggleV9t9Module: Turn use of a module on or off; does not take effect until
  546.    SetupV9t9Modules is called
  547.  
  548.       Arguments:
  549.          tag (string): tag name for module
  550.          on|off (number): whether to use or not use module
  551.  
  552.  
  553.    SetupV9t9Modules: Setup module gestalt
  554.  
  555.       Not saved to configuration file
  556.  
  557.    ===========================================================================
  558.    Major Emulator Commands
  559.    ===========================================================================
  560.    These are general commands to control the emulator
  561.    ---------------------------------------------------------------------------
  562.    Help: Display command help
  563.  
  564.       Not saved to configuration file
  565.  
  566.    Interactive: Control whether emulator waits for user commands
  567.  
  568.       Not saved to configuration file
  569.       Arguments:
  570.          on|off (boolean): if 'on', emulation will halt; if 'off', emulation
  571.          continues at end of command list
  572.  
  573.       Returns first argument
  574.  
  575.    Exit: Exit from interactive mode (same as 'Interactive=off')
  576.  
  577.       Not saved to configuration file
  578.  
  579.    Die: Exit V9t9 without saving session
  580.  
  581.       Not saved to configuration file
  582.  
  583.    Quit: Exit V9t9 and save session
  584.  
  585.       Not saved to configuration file
  586.  
  587.    HomeDirectory: Directory where V9t9 started
  588.  
  589.       Not saved to configuration file
  590.       Returns:
  591.       dir (directory): directory
  592.  
  593.    ConfigsPath: Set directory list for searching and saving configuration
  594.    files; when saving, new files written to first directory and old files are
  595.    overwritten where found
  596.  
  597.       Only saved to config files
  598.       Arguments:
  599.          path (string): list of directories separated by one of these
  600.          characters: ':;'
  601.  
  602.       Returns first argument
  603.  
  604.    SessionsPath: Set directory list for searching and saving session files;
  605.    when saving, new files written to first directory and old files are
  606.    overwritten where found
  607.  
  608.       Only saved to config files
  609.       Arguments:
  610.          path (string): list of directories separated by one of these
  611.          characters: ':;'
  612.  
  613.       Returns first argument
  614.  
  615.    SaveConfigFile: Save current configuration settings to 'file'
  616.  
  617.       Not saved to configuration file
  618.       Arguments:
  619.          file (string): name of config file
  620.  
  621.  
  622.    LoadConfigFile: Load configuration settings from 'file'
  623.  
  624.       Not saved to configuration file
  625.       Arguments:
  626.          file (string): name of config file
  627.  
  628.  
  629.    SaveSessionFile: Save current configuration settings and machine state to
  630.    'file'
  631.  
  632.       Not saved to configuration file
  633.       Arguments:
  634.          file (string): name of config file
  635.  
  636.  
  637.    LoadSessionFile: Load configuration settings and machine state from 'file'
  638.  
  639.       Not saved to configuration file
  640.       Arguments:
  641.          file (string): name of config file
  642.  
  643.  
  644.    SaveScreenShot: Take a screenshot and save to 'file' or an autogenerated
  645.    name
  646.  
  647.       Not saved to configuration file
  648.       Arguments:
  649.          file (string): name of file to write, or "" to use an automatic name
  650.          in the current directory
  651.  
  652.  
  653.    ===========================================================================
  654.    Keyboard / Joystick Options
  655.    ===========================================================================
  656.    These are generic commands for controlling the keyboard and joystick
  657.    emulation
  658.    ---------------------------------------------------------------------------
  659.    AlphaLock: Enable or disable ALPHA LOCK state (i.e., upon startup; CAPS
  660.    performs this function at runtime)
  661.  
  662.       Arguments:
  663.          on|off (number): state
  664.  
  665.       Returns first argument
  666.  
  667.    BindKey: Bind a non-TI key to a command
  668.  
  669.       Arguments:
  670.          key (string): symbolic name of key (see ListKeys); bare key name means
  671.          'perform command when key is pressed'; +key means 'perform command
  672.          when key is pressed' and 'perform command bound to -key when key is
  673.          released'
  674.          command (string): text of command to execute
  675.  
  676.  
  677.    ListKeys: List symbolic names of bindable keys
  678.  
  679.       Not saved to configuration file
  680.  
  681.    ListBindings: List current key bindings
  682.  
  683.       Not saved to configuration file
  684.  
  685.    DumpKeyMap: Display map of current TI keys held down
  686.  
  687.       Not saved to configuration file
  688.  
  689.    ===========================================================================
  690.    Speech Options
  691.    ===========================================================================
  692.    These are commands for controlling speech synthesis
  693.    ---------------------------------------------------------------------------
  694.    PlaySpeech: Control whether speech is played
  695.  
  696.       Arguments:
  697.          on|off (boolean): toggle speech on or off
  698.  
  699.       Returns first argument
  700.  
  701.    SpeechROMFileName: Name of speech ROM
  702.  
  703.       Arguments:
  704.          file (string): name of binary image
  705.  
  706.       Returns first argument
  707.  
  708.    SpeechHertz: Set sample rate for speech
  709.  
  710.       Arguments:
  711.          hertz (number): normal value is 8000
  712.  
  713.       Returns first argument
  714.  
  715.    SpeechSampleLength: Set sample length for a unit of speech
  716.  
  717.       Arguments:
  718.          length (number): in bytes, normal value is 200
  719.  
  720.       Returns first argument
  721.  
  722.    ===========================================================================
  723.    Internal Emulator Commands
  724.    ===========================================================================
  725.    These options affect the mechanics of 99/4A emulation
  726.    ---------------------------------------------------------------------------
  727.    RealTimeEmulation: Toggle real-time emulation mode (attempts to operate at
  728.    the same speed of the original 9900)
  729.  
  730.       Arguments:
  731.          on|off (number): on:  execute at 9900 speed; off:  execute with
  732.          DelayBetweenInstructions
  733.  
  734.       Returns first argument
  735.  
  736.    DelayBetweenInstructions: Sets a constant delay between instructions (when
  737.    not in real-time mode)
  738.  
  739.       Arguments:
  740.          cycles (number): number of cycles to count
  741.  
  742.       Returns first argument
  743.  
  744.    ResetComputer: Resets the 99/4A via RESET
  745.  
  746.       Not saved to configuration file
  747.  
  748.    PauseComputer: Pauses emulation of the 99/4A
  749.  
  750.       Not saved to configuration file
  751.       Arguments:
  752.          on|off (number): a number
  753.  
  754.       Returns first argument
  755.  
  756.    Debugger: Enable the debugger/tracer
  757.  
  758.       Arguments:
  759.          on|off (number): a number
  760.  
  761.       Returns first argument
  762.  
  763.    AllowDebuggingInterrupts: Allow interrupts to occur while debugging
  764.  
  765.       Arguments:
  766.          on|off (number): a number
  767.  
  768.       Returns first argument
  769.  
  770.    SingleStep: Execute one instruction and stop
  771.  
  772.       Not saved to configuration file
  773.  
  774.    BaseClockHZ: Set HZ speed base clock (usually 3.0 MHz)
  775.  
  776.       Arguments:
  777.          hertz (number): number of times per second
  778.  
  779.       Returns first argument
  780.  
  781.    ===========================================================================
  782.    Memory / Debugging Commands
  783.    ===========================================================================
  784.    These options allow you to change the running state of the virtual machine
  785.    ---------------------------------------------------------------------------
  786.    ProgramCounter: Set the program counter
  787.  
  788.       Only saved to session files
  789.       Arguments:
  790.          address (number): illegal addresses will be ignored
  791.  
  792.       Returns first argument
  793.  
  794.    WorkspacePointer: Set the workspace pointer
  795.  
  796.       Only saved to session files
  797.       Arguments:
  798.          address (number): illegal addresses will be ignored
  799.  
  800.       Returns first argument
  801.  
  802.    StatusRegister: Set the status register
  803.  
  804.       Only saved to session files
  805.       Arguments:
  806.          address (number): illegal addresses will be ignored
  807.  
  808.       Returns first argument
  809.  
  810.    VDPAddress: Set the VDP address register
  811.  
  812.       Only saved to session files
  813.       Arguments:
  814.          address (number): 0->3FFF sets read address, >4000->7FFF sets write
  815.          address, >8000->87FF sets VDP write register
  816.  
  817.       Returns first argument
  818.  
  819.    VDPRegister: Set a VDP register
  820.  
  821.       Only saved to session files
  822.       Arguments:
  823.          register (number): register number, 0-7
  824.          value (number): value for register
  825.  
  826.  
  827.    GROMAddress: Set the GROM address register
  828.  
  829.       Only saved to session files
  830.       Arguments:
  831.          address (number): a number
  832.  
  833.       Returns first argument
  834.  
  835.    SetRAM: Change contents of RAM
  836.  
  837.       Only saved to session files
  838.       Arguments:
  839.          type (string): memory type: C/V/G/S
  840.          address (number): illegal addresses will be ignored
  841.          string (string): hexadecimal string
  842.  
  843.  
  844.    ===========================================================================
  845.    TI Disk DSR Options
  846.    ===========================================================================
  847.    These commands control the TI 'real' disk-on-a-disk (DOAD) emulation
  848.    ---------------------------------------------------------------------------
  849.    DiskImagePath: Set directory list to search for DOAD disk images
  850.  
  851.       Arguments:
  852.          path (string): list of directories separated by one of these
  853.          characters: ':;'
  854.  
  855.       Returns first argument
  856.  
  857.    DiskImage1: DOAD image in drive 1
  858.  
  859.       Arguments:
  860.          file (string): name of DOAD image
  861.  
  862.       Returns first argument
  863.  
  864.    DiskImage2: DOAD image in drive 2
  865.  
  866.       Arguments:
  867.          file (string): name of DOAD image
  868.  
  869.       Returns first argument
  870.  
  871.    DiskImage3: DOAD image in drive 3
  872.  
  873.       Arguments:
  874.          file (string): name of DOAD image
  875.  
  876.       Returns first argument
  877.  
  878.    DiskDSRFileName: Name of DSR ROM image which fits in the CPU address space
  879.    >4000...>5FFF
  880.  
  881.       Arguments:
  882.          file (string): name of binary image
  883.  
  884.       Returns first argument
  885.  
  886.    ===========================================================================
  887.    Emulated Disk DSR Options
  888.    ===========================================================================
  889.    These commands control the emulated files-in-a-directory (FIAD) emulation
  890.    ---------------------------------------------------------------------------
  891.    DSK1Path: Set DSK1 directory
  892.  
  893.       Arguments:
  894.          dir (directory): directory containing V9t9 files
  895.  
  896.       Returns first argument
  897.  
  898.    DSK2Path: Set DSK2 directory
  899.  
  900.       Arguments:
  901.          dir (directory): directory containing V9t9 files
  902.  
  903.       Returns first argument
  904.  
  905.    DSK3Path: Set DSK3 directory
  906.  
  907.       Arguments:
  908.          dir (directory): directory containing V9t9 files
  909.  
  910.       Returns first argument
  911.  
  912.    DSK4Path: Set DSK4 directory
  913.  
  914.       Arguments:
  915.          dir (directory): directory containing V9t9 files
  916.  
  917.       Returns first argument
  918.  
  919.    DSK5Path: Set DSK5 directory
  920.  
  921.       Arguments:
  922.          dir (directory): directory containing V9t9 files
  923.  
  924.       Returns first argument
  925.  
  926.    EmuDiskDSRFileName: Name of emulated DSR ROM image which fits in the CPU
  927.    address space >4000...>5FFF; this DSR defines DSK1 through DSK5
  928.  
  929.       Arguments:
  930.          file (string): name of binary image
  931.  
  932.       Returns first argument
  933.  
  934.    EmuDiskSharedDSRFileName: Name of emulated DSR ROM image which fits in the
  935.    CPU address space >4000...>5FFF; this DSR defines DSK3 through DSK5 and can
  936.    share space with the real (DOAD) disk DSR
  937.  
  938.       Arguments:
  939.          file (string): name of binary image
  940.  
  941.       Returns first argument
  942.  
  943.    KeepFileFormat: Toggle preservation of original file type (V9t9 or TIFILES)
  944.  
  945.       Arguments:
  946.          on|off (number): on: don't change existing file's type; off: change
  947.          type to NewFileFormat
  948.  
  949.       Returns first argument
  950.  
  951.    NewFileFormat: Select type for new files or converted files
  952.  
  953.       Arguments:
  954.          F_V9t9|F_TIFILES (number): v9t9: original V9t9 file type; tifiles:
  955.          TIFILES (XMODEM) format
  956.  
  957.       Returns first argument
  958.  
  959.    UnknownFileIsText: Toggle treatment of unknown (non-V9t9 and non-TIFILES)
  960.    files as DOS/Unix/Mac text files
  961.  
  962.       Arguments:
  963.          on|off (number): on:  read unknown file as text; off:  generate error
  964.  
  965.       Returns first argument
  966.  
  967.    AllowLongCatalogs: Allow catalogs read through DSKx. to return more than 127
  968.    records; some programs may depend on this limit
  969.  
  970.       Arguments:
  971.          on|off (number): on: allow up to 32767 entries, off: restrict to 127
  972.          entries
  973.  
  974.       Returns first argument
  975.  
  976.    RepairDamagedFiles: Repair files with bad file sizes, even when opened
  977.    read-only.  This is a bit dangerous if you try to open a non-V9t9 file,
  978.    which will (obviously) appear damaged.  V9t9 will try to rule out files that
  979.    don't pass enough sanity checks, though.
  980.  
  981.       Arguments:
  982.          on|off (number): on: repair damaged files, off: leave them alone
  983.  
  984.       Returns first argument
  985.  
  986.    FixupOldV9t9Filenames: Rename older V9t9 files which were mangled to fit in
  987.    the DOS 8.3 filename format.  These files were split at the 8th character
  988.    with a '.' and all illegal DOS characters (<>=,;:*?[]/\) were biased by 128
  989.    to make them representable on that filesystem.
  990.    New V9t9 file mangling rules assume filesystems that allow long filenames,
  991.    so there is no splitting at the 8th character, and illegal characters are
  992.    translated HTML-like into '&#xx;' where 'xx' is the hexadecimal ASCII code
  993.    for the characters.
  994.    Files renamed to the new format will not be compatible with older versions
  995.    of V9t9, unless, under Windows, you refer to the files with the short format
  996.    (i.e., 'longfilenm' --> 'longfi~1').
  997.  
  998.       Arguments:
  999.          on|off (number): on: rename old V9t9 files, off: leave them alone
  1000.  
  1001.       Returns first argument
  1002.  
  1003.    GenerateOldV9t9Filenames: Generate filenames that conform to the old V9t9
  1004.    DOS-mangled format (see above) instead of the new format. Not recommended
  1005.    unless you actively use the DOS version.
  1006.  
  1007.       Arguments:
  1008.          on|off (number): on: generate old V9t9 filenames, off: generate
  1009.          current V9t9 filenames
  1010.  
  1011.       Returns first argument
  1012.  
  1013.    dsrEmuDiskTopOfRam: Top address used in VDP RAM
  1014.  
  1015.       Arguments:
  1016.          address (number): VDP RAM address, minus one
  1017.  
  1018.       Returns first argument
  1019.  
  1020.    ===========================================================================
  1021.    TI RS232 DSR Options
  1022.    ===========================================================================
  1023.    These commands control the TI RS232 emulation
  1024.    ---------------------------------------------------------------------------
  1025.    RS232_1: Give local name for first RS232 port
  1026.  
  1027.       Not saved to configuration file
  1028.       Arguments:
  1029.          filename (string): filename or device for current operating system
  1030.  
  1031.       Returns first argument
  1032.  
  1033.    RS232_2: Give local name for second RS232 port
  1034.  
  1035.       Not saved to configuration file
  1036.       Arguments:
  1037.          filename (string): filename or device for current operating system
  1038.  
  1039.       Returns first argument
  1040.  
  1041.    RS232DSRFileName: Name of RS232 DSR ROM image which fits in the CPU address
  1042.    space >4000...>5FFF
  1043.  
  1044.       Arguments:
  1045.          file (string): name of binary image
  1046.  
  1047.       Returns first argument
  1048.  
  1049. --------------------
  1050.  
  1051.