DOCUMENTATION FOR TIGER v0.71beta
by Jonas Minnberg (Sasq)
0.71 & 0.72 also by David Ellsworth
+---------------+
| INTRODUCTTION |
+---------------+
Tiger is a portable emulator for the TI92 emulator. It uses the 68k emulation core from UAE (The Ultimate Amiga Emulator). It is freeware.
Some features:
- Saves it's state when quitting, so you start where you quitted
- Linkport emulation (see below)
- Works with Fargo
- Works with 1Mb & 2Mb ROMS, 128 or 256k memory
- Nice debugger
- Constrast emulated (Try [Alt] + [+] & [-])
Some misfeatures:
- Parallel-link and a few keys dont work in DOS
+--------------------+
| LINKPORT EMULATION |
+--------------------+
Tiger emulates the linkport in two ways. First (currently only on the Linux version) through the parallel-port. You need the kernelmodule "ti.o" for this to work. Once this is installed as "/dev/ti", you should be able to send files between a real TI92 and the emulator through the homemade parallel-cable. I have tried this with Jimmy Mårdell's Tetris, and it works fine in linkplay between a real TI92 and the emulator.
It can also load files directly from disc and emulate the TI92 protocol to load them into the emulator. This is accomplished from the commandstate (see below) with the "load" command (and also the "files" command which is perhaps less obvious).
+------------------+
| ROMDUMPS & FARGO |
+------------------+
To run this emulator you need a ROM dump. As this file is
(C) Texas Instrument it will never be distributed with
the Emulator. To get a ROM dump you need to install Fargo
on your calculator, and transfer it unsing the romdump1
or romdump2 programs. Using romdump2.92p, a normal terminalprogram
that can do "ASCII Saves" (save all input to a
textfile) and ROMCONV.EXE you can get a rom even if you
only have a graphlink cable.
Once you have the file, name it "ti92.rom" and put it in
the same directory as the executable.
If the emulator does not find "ti92.rom" (or whatever "romfile" is configured to be), then it will look for "ti92int.rom" and "ti92ext.rom" (or whatever "intromfile" and "extromfile" are configured to be). These two represent internal and external ROM, respectively. You may have two ROMs active simultaneously. The TI-92's ROM bootstrap has code to autodetect whether there is external ROM, and if so, to boot from it instead of internal ROM.
If you want to run Fargo on the emulator, you need to load a backup file with the fargo core inside (coverted with "putfargo". Just Press F10 to go to commandstate and then type "load <file>.92b" and press enter. It should load pretty fast (progress is indicated with one dot per 2k transferred).
+------------------+
| KEYBOARD MAPPING |
+------------------+
TI92 PC
[Hand] [Caps Lock]
[SHIFT] [Shift]
[ON] [Sroll Lock]
[DIAMOND] [Alt]
[2ND] [Ctrl] [STO>] [Tab] [SIN] [Delete] [COS] [End] [TAN] [Page Down] [LN] [Insert] [CLEAR] [Home] [MODE] [Page Up] [APPS] [Print Scrn] (F12 in DOS) [(-)] [<] [Theta] [;] [+] [+] [-] [-] [X] ['*] [Div] [/] [^] [§] [(] [[] [)] []]
[ScrLock] [On]
Letters, Numbers, Cursormovement, F1-F8 + some others are the same keys on both keyboards
Special Keys
[F9] Enter Debugger
[F10] Enter Commandstate
[F11] Quit emulator and save state
[Break] Quit emulator, don't save state
(Not available in DOS, try F9 and CTRL-C instead)
+--------------+
| COMMAND MODE |
+--------------+
When you press F10, you enter the command mode. Here you can enter all sorts of commands at the prompt to configure Tiger's behaviour. Here is a list of what has been implemented so far.
CONFIGURATION COMMANDS
These commands can be loaded & saved to a config file. They
can also be given on the commandline (like "tiger -colors 2
-romfile v13.rom -memsize 256") in which case it overrides
the default config file (tiger.cfg).
colors <n>
Set current number of emulated extra grayscale colors.
The three typical values are:
0 - No grayscale, only 2 colors (B/W)
2 - Two extra colors = 4 color grayscale (graylib)
5 - Five extra colors = 7 color grayscale (graylib7)
And even
11 - Really blurry, and works with both graylib and graylib7
(Note: Fargray pictures use graylib7.)
Increasing this value will make moving graphics become "blurred", just like on the real TI92. Note that graylib7 pictures are kind of weird, so my grayscale emulation gets confused. If the picture comes up wrong, press ESC and try again. It gets it right 1 time out of 4 :)
romfile <file>
Set the name of the ROM file to look for at startup. If this
file is found, the emulator attempts to autodetect whether the
ROM image is internal or external.
intromfile <file>
Set the name of the internal ROM file to look for at startup.
A TI-92 with internal ROM has a masked ROM chip soldered to
the board.
extromfile <file>
Set the name of the external ROM file to look for at startup.
A TI-92 with external ROM has an OTP ROM chip contained in a
removable module which is attached to pins on the board.
statefile <file>
Set the state file to use at startup and save at program
termination. The state file contains a snapshot of the
emulated TI-92's exact state, including processor registers,
I/O, and RAM.
tickrate <n>
Set number the rate of the timer. Only works
in the Pentium version. Defaults to 40000 and can be
any integer value. The higher the slower.
cyclerate <n>
Set the rate of instructions. Only works in
the Pentium version. Defaults to 140.
itick <n>
Sets number of instructions per timertick, the primitive
timing used in the nontimeable (non-pentium) version.
memsize <128|256>
May only be 128 or 256
iodevice <device>
Device to use for linkport. Defaults to /dev/ti. Does not
work in the DOS version.
sync <0|1>
If you set this to 0, screen updating will be syncronized with
the timer which means it will always be updated regurlarly. This
may cause grayscale pictures to flicker when you press keys and
other things happen in the code.
If you set this to 1, screen updating will be synced with Irq 1.
This means that if Irq 1 does not run, the screen is not updated.
This options usually makes grayscale rock-stable, but wont work
at all in programs that turn off Irq 1 (like "tunnel" and "torus").
This option is 0 per default but switching it to 1 is usually a
good idea when grayscale is involved.
darkcol #rrggbb
Set the dark (darkblue) color to the given RGB value (in HEX)
lightcol #rrggbb
Set the light (greengray) color to the given RGB value (in HEX)
DIRECT COMMANDS
These commands perform a certain action and cannot be present in
the config file or on the command line.
libreq <file>
Checks what libraries a fargo (92P) file requires to run.
load <file>
Loads a 92P or 92B-file into the TI92. Note that fargobackups
are supposed to give a "Transaction Failed"
message.
files
Prints the current variables present in the TI92
ls
Lists *.92P & *.92B files in the current directory.
cd [directory]
Changes to another directory.
quit
Quit the commandstate and jump back to the calculator.
putcfg [file]
Write all configurable settings to the given config-file.
If <file> is not given, write to the file that was loaded
at startup (usually tiger.cfg).
getcfg [file]
Load all settings from the given config-file. If <file>
is not given, load the file that was loaded on startup
(usally tiger.cfg).
+--------------------------+
| A FEW NOTES ABOUT TIMING |
+--------------------------+
If you run the pentium version, you should know a bit about the "tickrate" and "cyclerate" commands. I have found that the default values work pretty well for my P200.. But on my P100 it's a bit too slow. I think that the P100 is around the minimum for emulating the TI92 at full speed.
Anyway, the "cyclerate" is a measure of how long to
delay each 68000 instruction before proceeding to the
next. On slower pentiums, always set this to 0 as delay
is not necessary. On faster pentiums, the default works
pretty fine (can be adjusted from program to program if
you want as exact speed as possible).
The "tickrate" is a measure of how often the internal
timer of the TI92 should be increased by one. Since the
screen is updated every 16th time the timer ticks, this
value is important for emulator performance. For fast
pentiums, you should propably leave it at 40000. For
slower Pentiums, you should propably increase this to
leave more room for the 68000 emulation, or, if a
game is running too slow you could try to decrease this
(which will speed the game up if it is syncronized with
the timer and is not too CPU-intensive).
Good luck :)
+----------+
| DEBUGGER |
+----------+
"?" show this help
"q" goes back to emulator
"x" To dump regs and current PC
"d [start] [len]" disassembles
"m [start] [len]" shows memory
"b [adress]" lists,sets and clears breakpoints
"h[l|w|b] <data> [start] [len]" searches memory
"t" trace
"s" trace to following instruction (be careful)
"g" set PC and resume emulation
Instead of address you can use a0-a7 or d0-d7 (eg "m a7") or you can use #n for breakpoint #n (eg b #0 to remove breakpoint #0).
+------+
| TODO |
+------+
- Storing files & backups to disk
- Screenshot option
- Amiga version!
- "$5" parallel link support in DOS
- Fix and release sourcecode to people who want to port it
- Fix better documentation
+--------+
| THANKS |
+--------+
David Ellsworth - For his great work on Fargo and source of
information needed to make the emulator. Bernd Schmidt - For making UAE from which I isolated the
68k emulation core.
+---------------+
| CONTACTING ME |
+---------------+
Please report bugs!
All constructive comments appreciated!
Jonas Minnberg
jonas@upright.se (work) or
md94-jmi@nada.kth.se (school)
IRC: Sasq
David Ellsworth
davidell@ticalc.org
IRC: eXocomp
ICQ: 2300673
Homepage for Tiger:
http://www.nada.kth.se/~md94-jmi/tiger/
Bye for now!
