Ti994W - Another Ti99/4A emulator for windows

by: Frederik G. Kaal
    De Dadelboom 81
    1911 KK Uitgeest
    The Netherlands
    
For 15 years now, I'm working for a company in the netherlands wich builds
traffic controllers and all the equipment around it to manage the controlers.
   
When I first saw Edward Swartz V9t9 I got the idea to build a traffic
controller emulator, wich is based on the motorola MC6809 microprocessor,
with the same principle as Edward Swartz used: build a processor in
software and use the original proms.

We have worked with this dos-bases traffic emulator for a few years until
all the programmers got a new machine with Windows 3.11. Now I had to teach
myself windows programming in 21 days (at least that is what the name of
the book was, but it took me some days more) to create a windows version of
the same program. After the update from windows 3.11 to windows NT4 and
convert my traffic emulator from a 16bits to a 32bits windows program I got
the idea to build my own tms9900 emulator. With this emulator I was able
to test a printf() function which I had to use for my Dm2k program.
Just recently a have added a lot of more stuff to create a full TI99/4A
emulator.

Ti994W supports:
Not everything and not 100%, but I can live with that for now!

A keyboard:
	F1 through F9 is interpreted as ftcn-1 through fctn-9
	The arrow keys as fcnt-X/E/S/D
	The tab-key as fctn-7
	The ctrl-key as the ctrl-key
	The right alt-key as the fcnt-key (saw some problems in win NT4)
	No QUIT key, use the menu option: Interrupt->Reset
	
	When using a mouse in graphics and text mode, you can click 
	on characters wich are send as keystrokes to the program. In
	this way you can use the mouse in menus like TI-writer or
	the Editor/Assembler.

Joysticks:
	Not implemented yet, but you van use the arrow keys and Q as fire
	and WER for all kind of directions!
	    S D
	    ZXC	
	    
	I will finish this if I have bought some joysticks or game-paddle
	for my PC first.

Vdp:
	Graphics mode, Text mode, Bitmap mode, Multi color mode (slow)
	You can speed things up to disable VDP emulation and choose some
	windows font!
	
Dsr:
	All in one and very facke.
	DSK1., DSK2., DSK3. and DSK. (not fully tested). Should read and
	write all file types. These DSK's are very modern, you can create
	subdirectories! All files are in V9T9 format.
	
	PIO., PIO/1. This is your windows default printer. You can also
	print to some PDF printer-driver, very neat!
	RS232. RS232/1. RS232/2. These are redirected to COM1 and COM2.
	See also the debug screen and the commands ?, LVL2, LVL3, PTD.

Cru:
	All 4096-bits are there to see in the debug and/or watch window!
	
Cpu-memory:
	All 64Kb for the Proms and Memory expansion. Writing to the Proms
	(>0000 through >5FFF) is prohibited (obviously!)
	
Gpl-memory:
	All 64Kb for a maximum of 8 modules. See also the TI994W.INI-file!
	
Interrupts:
	Be carefull! Only Interrupt->Reset is usefull at the moment.


I only supplied the Diagnostic module and Demonstration module but you
can use the same ROM and GROM image files as for V9T9. See also the
TI994W.INI file for some information how to configure TI994W.EXE!


Thanks to:
T. Nouspikel: for his wonderfull site with a lot of information.
M. Brent: for his Classic99 emulator wich gave some hints to solve my
problems.



History:
First attempt: Emulated a TMS9900 microprocessor, had a window with all
the registers and a debug screen. Could single-step and set breakpoints.

Second attempt: Wouldn't it be nice to have the whole E/A environment.
Added a method to read the TI99 proms and groms. Added another window
wich emulates the VDP-screen (not the TMS9918, who needs that anyway)
and some way to read in PC-files to test and execute.

Third attempt: I need to read the keyboard. What does the created characters
look like? I have to emulate the VDP a bit more, I only need graphics mode
and 40 column mode. Now I can run TI-Basic.

Fourth attempt: I want to read/write files. Need some DSR. Created I facke
one. I can also try some other modules. What is TI-writer trying to do
(call files!) oh-oh, need some real code here, found on Thierry Nouspikel's
site some dis-assembled roms, very handy. Are sprites difficult to add? and
Mutlicolor-mode? and Bitmap-mode? Hey I can run my own Sim99!

Fifth attempt: I want to make a listing! and whiler I'm trying that I can
also use the Com ports as RS232. Extended basic is faster. How is that rom
mapping working anyway? Not to difficult, Extended basic runs but sometimes
comes back in TI-basic (?). Got some problems with the break (fctn-4) key.
Extended basic doesn't use the same routine in rom as TI-basic.

Version 1.1a: Took a look at M. Brents Classic99 for some hints. I addopted
his sound routines and his keyboard/joystick routine. I had to change it a 
bit, can't throw all my stuff overboard! Now it's getting fun, I can play
those old basic music programs. Some are going to fast though! Still have
problems with the diagnostic RAM test. I don't now what it is testing!
Got the same errors with the Diagnostic RAM test on my Geneve, so this
part of my emulator is the same, Ha!

 


