TINY

Overview

TINY is a set of programs that lets you control a DOS computer from any Java-capable machine over a TCP/IP connection. While it is unlikely that this functionality will be usefully to anyone these days,  the Java-based viewer has some interesting code in that is able to exactly replicate the appearance of an old-style DOS text screen with correct colors and fonts. This code might be useful (or at least nostalgically interesting) to someone.

Screenshot

Check out this amazing screenshot where I am using my 3.2Ghz Windows Server 2003 SP1 box to simultaneously control two DOS 6.22 boxes over the internet. The first DOS box is a Dell 90Mhz Pentium where I am using FoxPro's handy built-in calculator feature to figure out what 22 divided by 7 is. The second controlled DOS box is a Northgate 386 where I am using WordPerfect Office's excellent stand-alone calculator product to perform the same calculation - albeit with different results. Note that I am about to send a Shift-F1 keystroke to the FoxPro computer.

Check out the little icons in the upper left corners of the TINY windows - they are mini versions of the DOS screens!

TINY Features

Background

I had a strange problem - I had a room filled with several hundred DOS machines that I needed to control. I wanted to control them from my desk, and on my desktop I was running windows.

There are plenty of programs for remotely-controlling Windows machines. There is even a program that can control DOS machines from DOS machines. There are not any programs that could control a DOS machine from a Windows machine.

So I wrote TINY. It was inspired by TNE.EXE and VNC.

TNE.EXE was probably the world first remote control program. It was written by Lantasic in the 1990s and ran on top of NetBios. The host was very small (only about 4kb) and very reliable. I wanted the TINY host to be very small and reliable.

VNC is a multi-platform remote control system. The protocol is simple and you can get hosts and viewers for most platforms and can control on platform from another. I wanted to be able to control a DOS machine from a Windows machine using a simple protocol.

The TINY host is written in C and runs as a small TSR in DOS. It uses the Novell networking API to listen for incoming UDP requests. It extracts keystroke requests from incoming requests and sends back snapshots of the local screen via UDP packets.

The TINY viewer is much more interesting. It is written in Java and should run on any Java platform. Replicating the appearance of a DOS screen in Java was a challenge. To make sure I got all the DOS colors exactly right, I had to dump the color table out of an old VGA card. To make sure I got the font exactly right, I dumped the font table out of an old VGA card. The result as that a TINY viewer looks *exactly* like the DOS screen it is viewing. Anyone who spent any time using DOS will immediately recognize that a TINY screen looks distinctly different than a Windows Command Prompt window.

Download

TinyH.EXE- The server. Run this from the command line on your DOS 6.XX box (make sure you have Novell's TCPIP.NLM running) and it will go TSR and make the machine a TINY host.

TinyClient.jar- The viewer. Run this on any machine that supports Java and you'll be able to instantly connect to any TINY server on the Internet!

TinyClientSource.zip - All the Java source files to build the Tiny viewer. Check out VGASoftFont.java if you want to include a  real VGA font in your own Java programs.

TinyHSource.zip - The full source code for the Tiny server program with the project file so you can open it in Borland C version 3.1!

###