X Window System Emulators

To run the Unix version of tnimage from a DOS or Windows machine, it is necessary to install an X Window system emulator, or X-Window server on the Windows computer. This allows the DOS or Windows computer to connect over the newtork to the Unix machine, and permits the user to interactively run any X Window program from any convenient location. The advantage of this is that tnimage can be run on a computer with much greater processing capability than is available to PC users, while the display appears as a window on the desktop PC. There are several Windows and DOS servers available, some of which are free:
   
   Cygwin-Xfree  -   A free version of the X Window system and utilities
                     including a compiler, that runs in Windows. Tnimage 
                     is reported to compile and run in Windows systems
                     using Cygwin. 

   Xappeal       -   DOS only   -  Free 30 day use, then $125
                     http://www.xtreme.it/xtreme.html
                     also on SimTel sites
   Exceed        -   from Hummingbird -  for Windows    -  About $500
                     http://www.hummingbird.com

   X-Win32       -   StarNet Communications Corp. micro-x@starnet.com

   Attachmate    -   http://www.attachmate.com/osg/
 
   MI/X          -   for Macintosh  (free)
                     http://www.microimages.com/freestuff/

   vnc           -   from AT&T Laboratories, Cambridge, UK (free)
		     http://www.uk.research.att.com/vnc/

   X OnNet       -   from FTP Software 
                     http://www.ftp.com/product/xonnet/

   PC-Xware
   
   Walker Richer & Quinn Reflection Suite for X 5.0
   ...
Many others reviewed here.

A comprehensive list is available here.

The only ones I have tried are Xappeal and vnc.


vnc

Vnc is not really an X server, but is a new protocol similar to X. To run vnc, a vncserver must be started on the host. A 'vncviewer' on the client connects to the vncserver on a one-to-one basis. The server sends a copy of whatever is on the screen to the server, using a proprietary, compressed protocol that is much faster than X. The advantage to this is that the server can run on Windows as well as Unix, so it is possible (for example) to play Windows Solitaire from your Linux machine with only minor delays, by connecting to a Windows computer, or even to administer a Windows machine remotely (something that Unix X users take for granted).

One disadvantage of the Windows server, however, is that everything any user does on the Windows machine is transmitted to the client, making it possible to snoop on any Windows user.

The other disadvantage of vnc is that one server must be started for each client. This means the client must first either telnet to the Unix machine to start up the server, or else leave the server running continuously before being able to connect via vnc. This effectively rules out vnc for large systems.

However, the fact that clients are available for several versions of Windows, including CE, means that vnc is great for small networks. I use vnc on my network at home to connect from a Windows laptop to a Unix machine. On a fast network such as one that someone would have in their house, vnc is so fast that it is possible to run Linux Netscape or even image analysis programs such as tnimage over the network without noticeable delays. (It is important to start up vncserver in 24-bit color mode, and not the default 8-bit TrueColor mode, as many applications do not handle this mode correctly. (The reason for this is that 8-bit TrueColor is a royal pain to program for.))

Another advantage of vnc is that installation is trivial. Simply decompress the file, type

                           vncserver :1
on the Unix side, click on the vnc icon from Windows and type your Unix password. Unix X appears as a regular application, which can be minimized, switched back to from other applications, or put on the task bar.


Xappeal

Xappeal is a DOS-based X server and is also quite fast. I ran Xappeal in conjuction with PC-TCP from FTP Software using a packet driver. It works beautifully but it is a bit tricky to get it to work with other networking software. Below is the installation procedure I used.

On Unix machine:

  1. Add your PC's IP address to /usr/lib/X11/xdm/Xservers, e.g. 123.456.789.012:0 foreign
  2. Add the IP address to /etc/X0.hosts, e.g. 123.456.789.012
These steps should not strictly be necessary.

On DOS machine:

  1. Install Xappeal. The 4 zip files must be copied to your hard disk and unzipped first. The HD must also be defragged first. Also, it must be installed in a different directory from the final destination. Xappeal creates a hidden file in your C:\ directory which contains the date of installation in encrypted form. After 30 days, you have to purchase the product.
  2. Copy PC/TCP's NE2000 or other appropriate packet driver to C:\xappeal\drv\net
  3. Run pktmux12.exe in c:\ to extract the packet driver and multiplexer.
  4. Change autoexec.bat - add:
            c:\xappeal\drv\net\ne2000 0x60 10 0x300
               The 0x60 is the interrupt vector
               10 is the IRQ of the Ethernet card
               0x300 is the address of the Ethernet card
               (change as needed)
            c:\xappeal\pktmux 4
               This multiplexes 4 interrupt vectors to the packet driver.
               Install 2 virtual packet drivers, one at 0x63 and one at 0x65
               by adding the lines:
            c:\xappeal\pktdrv
            c:\xappeal\pktdrv
            ...[add more if desired]..
               Then add the line:
            c:\pctcp\ethdrv -i 0x61
               This gives 0x61 to ethdrv and PC/TCP also grabs the highest 
               packet driver (0x65) for itself.
               
            c:\xappeal\pktstats
               This will print out information about what is happening.   
    
  5. Change c:\xappeal\x.bat (the file created by xappeal to start X):
     
            pktdrv 63 /r   = Frees up 0x63 which was rendered inaccessible
                             by PC/TCP.
               Modify the video card line to include the interrupt vector:
            set xappeal=svga s3801 pktint 63
               Modify the line showing the address of the real Unix machine:
            c:\xappeal\xappeal -query 128.168.100.123 
               (substitute the Unix machine's IP address)
            50lines
               Restore screen mode after finished with Xappeal (optional)
    
  6. You can now run X windows programs on the other (Unix) computer. Type "X" should get an X-shaped cursor, a checkered screen, and then an xdm login prompt.
  7. After running X, you have to reboot, as PC/TCP is now screwed up. Sometimes X will not start up if PC/TCP has been used. In this case, the only solution is to power down and reboot (soft reboot will not help).

If there is no login prompt:

  1. Make sure xdm is running on the Unix side. (Type "xdm").
  2. Try a different interrupt (0x65 doesn't work, use 0x63 on the PC).

This procedure is a bit ridiculous, I know. A much better solution is to get rid of DOS and Windows and install Linux or 386BSD. Below is the procedure:

       deltree windows
       deltree dos
These are the most useful commands on any PC!

Here is a copy of an x.bat file from a computer with a S3 video card and a 3c509 network card:

          pktdrv 66 /r
          if "x%1" == "x" goto nohost
          set xappeal=svga s3801 pktint 66
          C:\XAPPEAL\xappeal -query %1
          goto exit
          :nohost
          C:\XAPPEAL\xappeal -query 128.231.2.3
          :exit    
Here is the autoexec.bat from the same computer:
          @ECHO OFF
          43lines
          PROMPT $p$g
          SET PATH=C:\WINDOWS;C:\;C:\DOS;C:\NSHELL\;c:\pctcp3;c:\xappeal;
          SET PATH=c:\bc7\bin;c:\bc7\binb;c:\bc7\prog;%PATH%
          SET PATH=C:\ZORTECH\BINDOS;%PATH%
          SET TEMP=C:\DOS
          SET INCLUDE=c:\zortech\x32vm\include; c:\zortech\include; c:\zortech\tools\include
          SET LIB=c:\bc7\lib;C:\ZORTECH\LIBDOS;C:\ZORTECH\X32VM\LIB
          SET HELPFILES=c:\bc7\help;
          SET CFLAGS=

          rem CD-rom driver
          C:\DOS\MSCDEX.EXE /D:SONY_4X0 /M:12 /V

          rem ================================================================
          rem Junk added by Windows
          rem ================================================================
          c:\windows\net start
          rem c:\windows\smartdrv.exe /X

          rem ================================================================
          rem Windows hates this one
          rem ================================================================
          rem subst d: c:\pub

          rem ================================================================
          rem ====== For Xappeal =============================================
          rem ================================================================
          LH /L:1,12864 3c5x9pd.com 0x65
          c:\3c5x9pd.com 0x65
          c:\xappeal\pktmux 4
          c:\xappeal\pktdrv
          c:\xappeal\pktdrv
          set pctcp=C:\PCTCP3\PCTCP.INI
          set xappeal=svga s3801 pktint 66
          c:\pctcp3\ethdrv.exe
          c:\xappeal\pktstats

          dosedit
          mouse
          if exist c:\windows\win386.swp del c:\windows\win386.swp
          nsh                                
The advantage of XAppeal is that it is a true version of X, and thus it is not necessary to do anything in particular on the server end. Most large installations have an X server running, so that anyone with a computer account can run any large programs that may be available on the server (for instance, Mathematica, Gcc, etc.) using Xappeal from their local PC, without having to ask the system administrator to do anything.