[comp.sys.ti] info about TI-99 emulator

iws9012@eva.fmi.uni-passau.de (Thomas Opheys) (04/17/91)

Information about my TI-99/4A emulator. I would have answerded all the mails
I received but at my university I am not allowed to mail that much outside of
Germany because of the costs. So I try to answer all questions in comp.sys.ti
hoping not to bore those who aren't interested.

The emulator will require the following hardware: an IBM PC, any DOS version,
and a standard VGA card capable of the 640x480x16 mode. The faster the
machine, the better...

The emulator is 100% written in Assembler, for speed reasons. Someone asked me
if it was possible to port it to the Amiga. Now you know the answer: naturally
I could give you the source code but it will be a full time job to rewrite it
for an Amiga or any other machine. You won't get a good TI emulator written in
any higher language, not even C.

How will the emulator work? You'll see the original TI screen on your PC
monitor. While the TI graphics only uses 256x192 pixels, there is enough space
to display more information on the PC screen. When running in debug mode, the
emulator displays the processor data like registers, status, debugged assem-
bler instruction, VDP and GROM addresses and lots more. In addition, there
is a display of the current GPL instruction being executed by the GPL inter-
preter. The rest of the screen is reserved for some switches (ON/OFF, Load
Interrupt) and Lamps (access of the peripheral cards, interrupts).
Naturally, the performance of the emulator isn't too good with that huge
amount of data displayed. So you can switch it to speed mode which just
displays the TI screen. As I see it now, the emulator will be only slightly
slower on a 20 MHz 386 than the original TI. But I can get it faster...

The whole hardware is supported: Keyboard, Video Display Processor with all
modes (text, graphics, bitmap, multicolor), Sound Processor (in the moment,
only one sound channel (of four), because of the restrictions in PC sound,
but SoundBlaster owners will get the full TI sound), 32k memory expansion,
Mini Memory, GROM/ROM modules like Extended Basic, Editor/Assembler and
peripheral cards like the P-code card, RS232 and Disk Controller.

RS232 and Disk Controller can be the only sources of incompatibilities. Because
of timig problems, the Disk Controller and RS232 hardware can't be emulated
correctly on the hardware level. So the DSR ROMs will be patched so that every
software level call of the card routines are handled by DOS. That means that
you can print to "RS232.BA=9600.CR.LF" without problems, but terminal software
like Telco won't work because they access the hardware directly.
Even more complicated will be the disk controller access. I will provide a
patch of the ROMs that enable you to access every file name on your PC hard
disk just by giving the normal DOS name (i.e. RUN "C:\TI\LOAD" in Extended
Basic). And whenever accessing "DSKx" or using programs that read sectors of
these DSKs (like Disk Manager 1000), the emulator accessed special files on
your PC hard disk that represent a TI disk. A utility to copy whole TI disks
to the PC will be provided. Again, software that directly accessed the hardware
of the controller won't work (COPY-C, Turbo-Copy and RapidCopy).

Another thing you can forget is the speech synthesizer... But I shure hope
that you didn't even expect that. SoundBlaster owners can perhaps play the
words in ROM, but I think I can never emulate the Speech Synthesizer due to
lack of hardware information...

In the moment, the emulator is absolute not ready. The processor is nearly
ready (only three instructions are missing) and the TMS9900 intructions,
registers and status and the GPL code are correctly displayed debugged on
screen. If anyone wants to play a little with the program in its actual
state, the only way in the moment is to send me a disk and money for mail
return (poor student...) because they kill me if I post it to
comp.binaries.ibm.pc... And, as I said before, I CAN, but I am not allowed
to E-mail outside Germany.

Any suggestions, hints, hardware information (NEDDED!) and testers are
welcome! Everyone can get the source and I don't want any money. I am just
loving that GREAT machine...


Thomas Opheys, Franz-Stockbauer-Weg 1, App. 88, W-8390 Passau, Germany

------------------------------------------------------------------------------
iws9012@eva.fmi.uni-passau.de    Sledge Hammer and I - we're just good friends
------------------------------------------------------------------------------

ego@aix01.aix.rpi.edu (Erik G Olson) (04/17/91)

This sounds great! Some thoughts occur to me about two things, speech
and graphics.

One, speech is probably quite hopeless. But I'm convinced of it. Here
some reasons why, or maybe they won't be new to you. The TI speech data,
those rather short strings of bytes that cause the speech to form,
are complex control codes which regulate a series of seven or eight
filters which in turn interconnect via feedback. Because of the
extreme specialisation of this hardware, very little data is actually needed
to represent the otherwise complex total of audio data. The hardware
is specifically tuned to the modeling of human speech, unlike nearly all
other speech hardware. (Including the new Disney Sound Source, which
sports a large vocabulary of real samples of real speech parts, which it 
modifies before sending to a plain old 8-bit (logarithmic) D/A device.)

On the other hand, the PCjr speech card, last seen around 1983, contains
a TI chipset for speech, but might have been a different version
of the chipset used for the 4A. I don't know anything about the PCjr's bus, 
but if these cards can be scrounged up from somewhere, perhaps they can 
be made to work in a PC? Just a wild idea.

And about graphics: would it be so far-fetched to include the full
resolution of the 9938 chip while you're at it? It looks to me like that
would be rather simple after the basic 9918 functions were programmed.
After all, the 9938 is much cleaner than the 9918 in terms of memory
layout. And a lot of programs that do come out these days are
designed to take advantage of the extra hardware; I bet anyone
serious enough to use a TI emulator or rich enough to have a 386,
would be the kind of person to be writing software for a 9938 card.
But then again, you're just doing this for fun, I take it. 
 
-- 
=======================+=========================================
Erik G Olson              "There was virtue in the world before 
                            there was orthodoxy in it."
ego@pawl.rpi.edu            --The Independent Whig