WORMHOLE.ZIP

  Files:
   BLD_WORM.EXE  Compiled program file (using Clipper 5.2c)
   WORM.DBF      Sample database in dBase III+ format
   BLD_WORM.PRG  Source code for BLD_WORM.EXE
   README.TXT    This file
   
  BLD_WORM was a programming exercise that was designed to demonstrate 
the ability to computer generate Merlin screens.  Rather than attempting 
to write yet another screen draw program (and hassle with the task of 
compiling the drawing), I decided to attack the new screen file at a 
binary level.  I decoded Microsoft's GDI instruction set as used by 
Merlin, and by writing each property individually, was able to accomplish 
a complete new .SCR file.  The object was to produce a simulation of a 
"wormhole" effect using a computer generated screen.

  BLD_WORM was the first in many exercises designed to debug the process 
of writing the screens at a binary level.  It only uses the process of a 
singular line but will continue drawing the line using X and Y start/stop 
coordinates, colour, and width from a supplied database until it reaches 
an EOF() marker, (EndOfFile).  I recommend that an upper limit of 
approximately 400 lines be generated due to a heavy taxation on system 
resources.  It is actually very easy to quickly compile a screen that 
will not run on either Merlin or Excalibur Terminal due to number of 
lines.

  The database was originally conceived in Microsoft Excel 4.0 and was 
exported as a dBase III+ file because just about ANYTHING can work with 
and modify a dBase III+ file.  The valid reference fields in the database 
are:

  XS -  starting X coordinate (0-800)
  YS -  starting Y coordinate (0-600)
  XF -  finishing X coordinate (0-800)
  YF -  finishing Y coordinate (0-600)
  COL - the colour (0-15) of the line
  WID - the width (0-255) of the line (at least 1 to be visible)
  
  The remainder of the fields were used to generate the start/stop 
coodinates using RADIANS and TRIG functions from starting and finishing 
radii and degrees of inclination, (in the Excel spreadsheet).  They are 
included in this model in order that you have a few spare fields to work 
with.

  The file that is generated is called WORM.SCR.  A copy has not been 
included as running the BLD_WORM program will generate one in a couple of 
seconds.

  Due to being compiled with Clipper 5.2c, the supplied .EXE file needs 
to be run from a DOS prompt.  I have used variations on this technique to 
supply programming modules that generate over 800 charting and graphing 
screens a day for The Stock Market BBS, a Vancouver based Excalibur BBS.
A moderate amount (>500K) of free memory is required.

  I have included the source code as a starting kit for others 
interested in this process.  I an additionally available for work on 
projects such as these, and have amassed a substantial library of 
routines that deal with the objects available on a Excalibur screen.

  I can be reached on an almost daily basis at The Phoenix Express 
"Windows" BBS, phone 604 983-6966 or 604 983-6955.  There is an active 
Excalibur support group there that communicates regularly.  I will try to 
answer posted questions on this process there, although I am not 
particularly willing to simply give away months of work.

  If you find this package of any use, let me know what you think.  Your 
comments would be appreciated.
  
  Oh, yeah... almost forgot:
  
  These files have the same guarantee as their price, i.e. nothing.  I 
neither offer or assume any liabilty or responsibility to any
circumstances arising from either your use, or your inability to use,
these files.

  You're on your own, have fun trying to decode a nested IF ELSE 
statement!  I did.

Dennis Pugh.

