home *** CD-ROM | disk | FTP | other *** search
/ High Voltage Shareware / high1.zip / high1 / DIR37 / POVCAD1C.ZIP / POVCAD.DOC next >
Text File  |  1993-04-02  |  24KB  |  608 lines

  1.                              POVCAD 1.0c by 
  2.                             Alfonso Hermida 
  3.                      Pi Square BBS (301)725-9080
  4.                                 4/2/93
  5.  
  6. NOTE: POVCAD is written in Visual Basic 2.0 for Windows (Microsoft Corp).
  7.       To run it you'll need the runtime module VBRUN200.DLL.        
  8.                         
  9. -------------------------------------------------------------------------
  10. Copyright (c) 1993 by Alfonso Hermida.
  11. All rights reserved.  The program POVCAD.EXE is distributed "As is". 
  12. The author assumes no reponsibility for damages resulting from the use of
  13. this program.  The program has been tested but no software is "bug-free" 
  14. so...use at your own risk!
  15. -------------------------------------------------------------------------
  16.  
  17. Distribution:
  18. Feel free to distribute POVCAD.EXE and it's companion file POVCAD.DOC for
  19. non comercial purposes.  Distributors may charge up to $5 for this program.
  20. If you wish to distribute this program with a comercial software please 
  21. contact the author at the BBS number given above or by mail:
  22.        Alfonso Hermida, 9346 Kings Grant Rd, Laurel, MD 20723.
  23.  
  24. This program is distibuted as Shareware.  You may use this program for
  25. a period of 30 days at which you must either register this software or
  26. stop using it.  Registration entitles you to support thru the BBS.  
  27.  
  28. Registration cost is only $15 and helps continuing work to improve this
  29. software.  To register send your check or money order to the above address
  30. with your name, address, phone number and a password(for BBS access).  Check
  31. at the end of this document for registration form.
  32.  
  33. --------------------------------------------------------------------------
  34.  
  35. THANKS!
  36. I want to take the opportunity and thank a lot of people and BBS that have
  37. helped POVCAD become such a success.  I would like to thank Albert Waltner,
  38. Peter Jack, Curtis Olson for Beta testing and all the helpful comments.  
  39. Dan Farmer was kind enough to upload the file to COMPUSERVE.  Steve Anger
  40. gave me some help with the smooth triangle problem I was having (it turns
  41. out that the POVRAY version I was running had a bug!).  There were some
  42. great BBS such as:
  43.  
  44. * You Can Call Me Ray BBS (Illinois)
  45. * The Graphics Alternative BBS (California)
  46. * Trace of Reality BBS (Virginia)
  47. * Monsoon BBS (Maryland)
  48.  
  49. And for other specific thanks, check the BUG LIST at the end of this document.
  50. Finally, all of you who were so kind to register their copies.  This proves
  51. that Shareware is alive and well.
  52. ----------------------------------------------------------------------------
  53.  
  54.  
  55.  
  56. What's POVCAD?
  57.  
  58. POVCAD is a small solid object modeling tool to create scene files for
  59. raytracers.  It's based primarily on the POV(Persistence of Vision)
  60. raytracer written by the Persistence of Vision Group.  POV is a copyrighted
  61. freeware raytracer.  If you would like to get in contact with them, 
  62. contact Compuserve (800)848-8990, Comart forum Raytracing section 16, or
  63. call YCCMR BBS (708)358-5611, which is a raytracer specific BBS.
  64.  
  65. With POVCAD you're able to create visually the scene file and have a
  66. pretty good idea (geometry-wise) of how the objects are positioned in 
  67. 3D space.  There is no support for textures and color visualization since
  68. POVCAD is a wire frame-based program.  Nor, you'll see the results of
  69. any constructive solid geometry operation (boolean operation..for short).
  70.  
  71.  
  72. POVCAD supports the following objects:
  73. * planes
  74. * cylinder
  75. * cone
  76. * sphere
  77. * ellipsoid
  78. * torus 
  79. * box
  80. * height_field
  81. * Raw data files (loading)
  82. * Sweep (solid of revolution)
  83. * light_source 
  84.  
  85. and operations such as union, difference,intersection and composite 
  86. objects.  Textures can be selected from a list without need of typing.
  87. The scene view can be changed between isometric,YX,YZ and ZX.
  88. A session list shows the steps you took to create any image and you may
  89. select any of the objects from the list by clicking on it.
  90.  
  91. An interesting feature is the ability to create or read data files
  92. with path information for animation software.  You can create linear
  93. interpolated data, circular motion, parabolic, helix or just freehand
  94. mode, where you sketch the path with the mouse.  POVCAD does not do
  95. animation but it plots the path files so you can see how things look
  96. on the screen.  The data can be transformed like any object in POVCAD.
  97.  
  98. In the File menu, there is an option to save the session file and to 
  99. Export to POV (that is to create the POV session file).
  100.  
  101. ***** PRINTOUT **********************************************************
  102. You may select the FILE menu, then the PRINT command to get a hardcopy
  103. of the image on the screen.  You must have a printer configured to do so.
  104. ************************************************************************* 
  105.  
  106. AN IMPORTANT NOTE:  All rotations and translations are absolute(measured
  107. from the origin).  Therefore, if an object has been translated to (1,1,1)
  108. and you change the x to 1.5, it will be (1.5,1,1) and not (2.5,1,1).
  109.  
  110. My best suggestion is that you play with it for a while to get a better
  111. understanding of the program.  
  112.  
  113.  
  114. Creating an Object
  115.  
  116. To create an object is easy.  Here are the steps:
  117.  
  118. 1) Click on the Object menu and click again on the object you would
  119.    like to create.  All objects start at the origin, except the sphere
  120.    which asks for the center coordinates. 
  121.  
  122. 2) To rotate/translate or scale the object, click on Xform and select
  123.    the appropiate transformations.  The way this program was developed,
  124.    rotations are ALWAYS applied first THEN the translations.   Keep that
  125.    in mind.
  126.  
  127. 3) If you need to edit/delete an object, click on Session and click on the
  128.    object to be modified.  On the bottom right part, the current object
  129.    is shown, with it's texture.  If the object is already there,  you can
  130.    operate on it without having to click on Session.
  131.  
  132. NOTE:The LAST object created is ALWAYS the current object.  If you wish
  133.      to tranform it, just go directly to Xform or Texture (if you want
  134.      to put a texture to it).  
  135.  
  136.    To delete an object, either select it (thru the Session menu) or just
  137.    go to Edit if it's the last object drawn and click on Del.
  138.  
  139.  
  140. NOTE: The format of RAW data files is:
  141.   x1 y1 z1 x2 y2 z2 x3 y3 z3
  142.   x4 y4 z4 x5 y5 z5 .......
  143.   ...... ect ..............
  144.  
  145. where each line represents a triangle.  Usually I use Steve Anger's
  146. RAW2POV program to create objects with RAW data files.  RAW2POV will
  147. optimize A LOT the image, while POVCAD will just convert the data to
  148. triangles and that's it!  
  149.  
  150. Creating Solids of Revolution (Sweep command)
  151.  
  152. 1) Click on the PointOff button (to enable point creation)
  153. 2) Select a View different than Iso (i.e. YX,ZX or YZ)
  154. 3) Click on the window and draw a contour (up to 25 points)
  155. 4) Select the Sweep command from the Objects menu
  156. 5) give a filename.ext (the data will be saved in RAW format)
  157. 6) indicate sweep angle and number of segments
  158.  
  159. * If you wish to erase the points and start all over use the Del Points
  160.   command in the Edit menu.
  161. * SnapOn forces the points to fall in the intersections of the grid
  162.   lines, while GridOff let's you select any place on the screen.
  163.  
  164.  
  165.  
  166. Creating Constructive Solid Geometry 
  167.  
  168. Let's use an example to explain this topic:
  169. We'll assume we want to create a cylinder with a hole in the middle.
  170. Since the operation is a difference:
  171.  
  172. 1) click on CSG and then select "difference".
  173. 2) create the cylinder and position it.
  174. 3) create a sphere (the hole) and position it.
  175. 4) Click on CSG and then "Close".
  176.  
  177. Close is the command to tell the program that the current CSG operation
  178. has ended.  The Session list would look like this:
  179.  
  180. DIFFR
  181. CYL ........
  182. SPH ........
  183. ENDF
  184.  
  185. Where:
  186. DIFFR   = difference operation
  187. CYL ... = cylinder definition and transformations
  188. SPH ... = sphere definition and transformations
  189. ENDF    = tells the program that this is where the difference operation
  190.           ends
  191.  
  192. Now let's assume that you want to create a union of 2 cylinders each
  193. one with a hole in it:  This is how the Session list would look like:
  194.  
  195.                       comments:
  196. UNION                  1) union operation starts here
  197. DIFFR                  2) difference operation starts here
  198. CYL ....               3) cylinder #1
  199. SPH ....               4) sphere #1
  200. END                    5) clicked on CSG then on Close
  201. DIFFR                  6) Start another difference
  202. CYL ....               7) cylinder #2
  203. SPH ....               8) sphere #2
  204. END                    9) clicked on CSG then Close
  205. ENDF                   10)clicked on CSG then Close 
  206.                          (click on TEXTURE to add one to the object)
  207.  
  208. As you can see, the software uses END and ENDF to distinguish between
  209. intermediate CSG operations and the final CSG operation...in this case
  210. the UNION was the final and the DIFFR were the intermediate.
  211.  
  212. The same idea applies to all CSG operations.  Composite is not a CSG but
  213. it was the best place to put it. <grin>
  214.  
  215.  
  216. * TEXTURES ON CSG OBJECTS *
  217.  
  218. To put a texture on a CSG object click on ENDF(using the Session command)
  219. to make it the current object (you'll see ENDF at the bottom right part
  220. of the screen) then click on TEXTURE to add the one that you want.
  221.  
  222.  
  223. Transforming CSG /Composite objects
  224.  
  225. At this point it is NOT possible to transform (XFORM) the whole set of
  226. objects.  You may XFORM any of the individual objects that compose a CSG
  227. object.
  228.  
  229.  
  230.  
  231. Quick Comment
  232.  
  233. If you want to clip an object with 2 planes do the following:
  234. 1) Click on "intersection"
  235. 2) create the object to be clipped
  236. 3) create plane #1
  237. 4) create plane #2
  238. 5) rotate plane #2 so that the normal is facing oposite
  239.    to plane #1's normal.  (When a plane is created, the normal
  240.    is ALWAYS in the + direction of the axis.) Also you must translate
  241.    plane #2 so they're not in the same place. 
  242.  
  243.    Example:
  244.    plane#1: PLANE_Y,Translate_Y = .5 
  245.    plane#2: PLANE_Y,Translate_Y = -.5,Rotate_Z = 180
  246.    
  247.    Plane #1's normal is pointing in the +Y direction, while
  248.    plane #2's normal is in the -Y direction (due to rotation
  249.               about Z of 180 degrees)
  250.  
  251.    Any object placed in the origin will be clipped at Y=0.5 and
  252.    Y=-0.5 . Try it and see!
  253.  
  254.  
  255. Creating PATH data files for your animations
  256.  
  257. This feature allows you to create data files of paths that may be
  258. used in animations programs.  Simply select the Path menu and select
  259. which curve to create.  These data files can be XFORMed in the same
  260. fashion as any of the objects supported by POVCAD.
  261.  
  262. To create a curve, select the corresponding curve and you'll be asked
  263. for a filename to save the data. This is done to reduce memory
  264. requirements on your system.  The following is a brief description:
  265.  
  266. 0) Load and SAVE
  267.    Load read any 3D point ASCII file and converts it into a path,
  268.    i.e. lines will be drawn to connect the points sequentially.  Your
  269.    data file SHOULD NOT have an extension *.PTH since this is used by
  270.    POVCAD to save the final path files.
  271.  
  272.    SAVE converts your data file, i.e. filename.ext into filename.PTH.
  273.    Initially, filename.ext was a set of 3D points that you created
  274.    yourself or thru POVCAD.  Since you may want to rotate, scale or
  275.    translate the data, POVCAD takes those operations and changes your
  276.    data.  In order to keep the original data intact, POVCAD saves the
  277.    new data with the PTH extension.
  278.  
  279.    The EXPORT to POV function in the FILE menu also creates the *.PTH
  280.    files.  If you haven't created any 3D objects and you don't need to
  281.    create a POV file, simply use the SAVE function in the PATH menu, to
  282.    save your animation files.
  283.  
  284.    To merge 2 or more data files, drop to DOS or load a texteditor
  285.    and simply append one file to the other to create more complicated
  286.    path data files.  It's that simple! (gasp!...I hope it works)
  287.  
  288.  
  289. 1) Freehand
  290.    Converts a set of points created on the screen to a path.  Maximum
  291.    number of points is 25 (at this point at least)
  292.  
  293. 2) Linear
  294.    Click 2 points (more than that will be discarded) on the screen.
  295.    The routine will subdivide the line segment into a set of points.
  296.  
  297. 3) Circular
  298.    Creates a circular path.  No points have to be created with the
  299.    mouse.
  300.  
  301. 4) Parabolic
  302.    Follows the curve Y = aX^2 where a is the parabola coefficient
  303.    and the value of Y is the height.  The value of Z is zero but
  304.    you may create this curve from any view.  The routines will swap
  305.    the axis to reflect the view you're in.
  306.  
  307. 5) Helix
  308.    Creates a "spring".  The curve follows :
  309.     x = a cos(2*pi*t)
  310.     y = a sin(2*pi*t)
  311.     z = t
  312.     
  313.     Therefore Z is the "height" of the function.  This depends on the
  314.     current view setting.
  315.  
  316. After creating the curves you may use them to animate your raytraced
  317. images.  POVCAD simply creates the curves and shows them with the
  318. geometry so you have a better understanding of how things might look.
  319. Remember, you can scale, rotate and translate the data like any other
  320. object!  have fun!
  321.  
  322. Creating LightSources
  323.  
  324. To create a light_source object, click on the Light command in the main
  325. menu.  Enter the origin coordinates of the light_source (x,y,z).  To
  326. add a color to the light_source, select it (Session) then click on the
  327. Color command in the main menu.  You may select any color or edit the
  328. string "red # green # blue #" by replacing the "#" with appropiate numbers.
  329. If you wish to move the light_source, click on XFORM and modify the
  330. translate parameters.
  331.  
  332. The rotation angles do not apply to light_sources.  The scale factors will
  333. only affect the size of the light_source symbol (resembles a 3D axis) in
  334. POVCAD, POV does not require a scaling factor.
  335.  
  336.  
  337. How does POVCAD save the objects?
  338.  
  339. POVCAD saves 3 files for every session: {(4) is optional }
  340. 1) *.CAD   This is the object definitions file
  341. 2) *.TEX   file with the textures of each object
  342. 3) *.WRL   world definition of the session
  343. 4) *.PTH   data files to be used in your animation programs
  344.  
  345. *.CAD file structure:
  346. This is the format that POVCAD uses for those of you that want to create
  347. external programs to deal with them.  The file is an ASCII file with 
  348. double quotes at the begining and end of each statement:
  349.  
  350. rx,ry,rz = rotations about each axis (absolute)
  351. tx,ty,tz = translations on each axis
  352. sx,sy,sz = scale factors for x,y and z
  353.  
  354. **** IMPORTANT: Each parameter is separated by 1 space.  This is important
  355.            if you're writing utilities for POVCAD.  This space is REQUIRED.
  356.  
  357.  
  358. 1) Plane:    "PLN axis rx ry rz tx ty tz sx sy sz" 
  359.  
  360. Example:
  361. "PLN X 0.0 0.0 0.0 0.0 0.0 0.0 1 1 1"
  362.      
  363. 2) Cylinder  "CYL radius height rx ry rz tx ty tz sx sy sz"
  364.  
  365. Example:
  366. "CYL .2 1 0.0 0.0 0.0 0.0 0.0 0.0 1 1 1"
  367.  
  368. 3) Cone:     "CON radius height rx ry rz tx ty tz sx sy sz"
  369.  
  370. Example:
  371.    "CON .2 1 0.0 0.0 0.0 0.0 0.0 0.0 1 1 1"
  372.  
  373. 4) Sphere:   "SPH radius rx ry rz tx ty tz sx sy sz"
  374. (tx ty and tz are the center of the sphere)
  375. (sx sy sz must have the same value)
  376.  
  377. Example:
  378.    "SPH .5 0.0 0.0 0.0 0.0 0.0 0.0 1 1 1"
  379.  
  380. 5) Ellipsoid: "ELI xradius yradius zradius rx ry rz tx ty tz sx sy sz"
  381.  
  382. Example:
  383.    "ELI .5 .2 .3 0.0 0.0 0.0 0.0 0.0 0.0 1 1 1"
  384.    
  385. 6) Torus:     "TOR radius_major radius_minor rx ry rz tx ty tz sx sy sz" 
  386.  
  387. Example:
  388.    "TOR .7 .2 0.0 0.0 0.0 0.0 0.0 0.0 1 1 1"
  389.  
  390. 7) Box:       "BOX rx ry rz tx ty tz sizex sizey sizez"
  391. (the Box is a unit cube that has been scaled to size)
  392.  
  393. Example:
  394.    "BOX 0.0 0.0 0.0 0.0 0.0 0.0 1 2 .1"
  395.  
  396. 8) HeightField "HFL filename.ext rx ry rz tx ty tz sx sy sz"
  397. (POVCAD draws a pyramid to represent it, with dimensions x=1 y=1 z=1, 
  398.  so it must be scaled properly.  Check POV's docs on height_field.)
  399.  
  400. Example
  401.    "HFL mountain.gif 0.0 0.0 0.0 0.0 0.0 0.0 1000 1000 3245"
  402.  
  403. 9) RAW: "RAW filename.ext rx ry rz tx ty tz sx sy sz"
  404.    (Consider using Steve Anger's RAW2POV, it's more efficient. Don't
  405.     say I didn't tell you about it!)
  406. Example:
  407.     "RAW sweep.dat 0.0 0.0 0.0 0.5 1.3 0.0 1 1 1"
  408.  
  409.  
  410. 10) Sweep
  411.     (same as RAW only that the SWP keyword appears instead of RAW)
  412.  
  413.  
  414. 11) Path
  415.     "PTH filename.ext 0.0 0.0 0.0 0.0 0.0 0.0 1 1 1"
  416.     This command points to a file with the format:
  417.      p1.x p1.y p1.z
  418.      p2.x p2.y p2.z
  419.      ....ect .....
  420.     
  421.     which was created with POVCAD or that you made up yourself.
  422.  
  423. 12) Light Source
  424.     "LTS 0.0 0.0 0.0 X Y Z .25 .25 .25"
  425.     
  426.     Comments: 
  427.      * The first three number are not used at all.
  428.      * X Y Z refer to the light source position
  429.      * the three .25 values are scaling factors that only affect
  430.        the drawing on POVCAD.   You may change those numbers to
  431.        suit your needs by using the XFORM command (scale x,y,z).
  432.      * The light_source color is in the *.TEX file.
  433.  
  434.  
  435. The *.TEX file structure:
  436. The *.tex file has a line for every item in the *.cad file.  Some places
  437. may be empty but the file length is the same as the *.cad file.  If you
  438. created light_sources, the colors will appear here also.
  439.  
  440. The *.WRL file structure:
  441. This file has 4 values (if it's not found in your directory, POVCAD
  442. assumes a world definition of (-1,-1)-(1,1) ):
  443.  
  444. WXleft  WYbottom
  445. WXright WYtop
  446.  
  447. These values correspond to the YX plane view.
  448.  
  449. The *.PTH file structure
  450. This is a straight ASCII file with a list of 3D points:
  451.  
  452. p1.x p1.y p1.z
  453. p2.x p2.y p2.z
  454. ... ect...
  455.  
  456. The data has already been transformed by any operations you might have
  457. done inside POVCAD.
  458.  
  459.  
  460. Other Stuff
  461. --------------------------------------------------------------------
  462. Limits
  463. At this point up to 100 objects may be created.  You may do complicated
  464. objects by MERGEing files.  This will change on future versions.
  465.  
  466. CSG/COMPOSITE Objects
  467. You can not XFORM the whole CSG/COMPOSITE object...you may XFORM any of
  468. the components.
  469.  
  470. World Coordinates Definition:
  471. POVCAD starts with (-1,-1)-(1,1) => (lowerleftcorner)-(upperleftcorner).
  472. Click on View and then World to change that or use the ZoomIn/Out icons
  473. to scale up or down.  When you ZoomIn the world = world/scalefactor and 
  474. when you ZoomOut the world = world * scalefactor.  
  475.  
  476. Pan
  477. You can Pan(scroll) in all direction by clicking on the arrows.  You may
  478. change the Pan Step Size to move faster or slower. Experiment with it.
  479.  
  480. Copy
  481. The Copy function will create an exact copy of the current object. That
  482. means that it will be also in the SAME place as the original.  Then XFORM
  483. will be shown and select the transformation necessary to put the new object
  484. where it should be.  Click on redraw to refresh the screen if necessary.
  485.  
  486. Files
  487. The Export to POV creates a POV format file of the current scene.  The
  488. default name is POVCAD.OUT...the name can be changed.  It also creates 
  489. any path files (*.PTH) that are in memory.
  490.  
  491. AutoRedraw ON/OFF
  492. There's an icon to turn on/off the autoredraw feature.  With the option 
  493. on ON the drawing is sent to a buffer first and then appears on the screen.
  494. With the option on OFF the screen will be redraw everytime that you select
  495. the TEXTURE, SESSION or XFORM windows.  Experiment which one works best for you.
  496. The important point is that in ON you pay a price with memory.  Check
  497. with your system, you decide.
  498.  
  499. Things you must do on your own (Sorry!...at least for now)
  500. ---------------------------------------
  501. 1) "spotlight" light sources and camera will be missing from the files.  
  502. 2) If you forget to add textures to the objects you must add it later.
  503.    (you can always reload the session file and put them in)
  504.  
  505. Suggestions
  506. Create a standard view file with lightsources and camera and put
  507. somewhere the statement #include "myscene.pov" to include your scene.
  508. That's what I do and works OK for me.
  509.  
  510.  
  511. Your Suggestions
  512. I do welcome your comments and suggestions!  Registered users have a
  513. better chance of seeing their comments incorporated in the program.
  514. If you like it or not let me know!
  515.  
  516.  
  517. BUG LIST (ugh!) [Check Pi Square BBS for the latest updates!]
  518. ---------------
  519. Ver 1.0a 2/8/93   (thanks to Bill Martin!)
  520.   - (fixed) error in height_field definition (was totally wrong!)
  521.  
  522.   - added "object { }" and "color" keywords to light_source object
  523.  
  524.   - error on cone definition (not sure what the problem is :( )
  525.  
  526. Ver 1.0b 3/27/93 
  527.   - (fixed) You may press [OK] on the SESSION windows without having done
  528.     a selection. (the program used to crash)
  529.  
  530.   - Cone_Y was changed to QCone_Y since Cone_Y was used in an old version
  531.     of the SHAPES.INC include file.  If you have the old version, replace
  532.     QCone_Y with Cone_Y.
  533.  
  534.   - (fixed)The 3D axis was not appearing at the beginning of the program.
  535.  
  536.   - The name of the file now appears at the top of the Window (caption).
  537.     If no file is present, the caption "POVCAD version#" will appear.
  538.  
  539.   - When a POV file is created with the EXPORT function, the name of the
  540.     file, date and time of creation will appear on the top.  
  541.     
  542.     (thanks to Phil Long!)
  543.   - (fixed) The copy function was not copying the texture to the new object.
  544.  
  545.   - (fixed) When opening the texture window and color window, you may click
  546.     on the texture or color word to accept it...no need to click on [OK].
  547.   
  548.     (thanks to Bill Martin!)
  549.   - I added a scroll bar at the bottom right area of the screen, near the
  550.     current object and texture info box.  Once an object is created, it will
  551.     appear in the info box.  If you have more than one, simply scroll thru
  552.     each one...no need to use the SESSION dialog box anymore unless you want
  553.     to see more than one object at a time.  The object that appears in the box
  554.     is the current object and may be XFORMed at any time.
  555.  
  556.     (thanks to Peter Jack!)
  557.   - (fixed) Light source was not accepting negative numbers
  558.  
  559.   - (thanks to Neil Clark and Kevin Luck!)
  560.     The "SAVE AS..." was not working at at!  It would abort the program.
  561.     This is one of this shamefull bugs every software author has nightmares
  562.     about. :(   Anyways, it looks OK now.
  563.  
  564.  
  565. ------------------------------------------------------------------------
  566.  
  567.     REGISTRATION FORM FOR POVCAD 1.0c  (c) Alfonso Hermida 1993
  568.  
  569.                 COMPLETE THE REQUIRED INFORMATION
  570.                     Send check or money order to
  571.                          Alfonso Hermida
  572.                        9346 Kings Grant Rd
  573.                          Laurel MD 20723
  574.  
  575.  
  576. Name   :_________________________________         Date:_________
  577.  
  578. Address:________________________________________________________   
  579.  
  580.         ________________________________________________________
  581.  
  582.         ________________________________________________________
  583.  
  584.  
  585. Phone  :__________________________________
  586.  
  587.  
  588. Your registration entitles you to support thru Pi Square BBS.  Write
  589. a temporary password to add your account to the BBS:
  590.  
  591. BBS password: _________________________
  592.  
  593.  
  594. Registered users of a given version do not have to register for minor revisions.
  595. For example, if you registered version 1.0, then 1a,1b,1c are minor revisions,
  596. and version 2.0 will be a major revision.
  597.  
  598.  
  599. Would you be interested in the source code?  Yes[  ]   No[  ]
  600. (written in Visual Basic 2.0)
  601.  
  602. Comments:__________________________________________________________
  603.  
  604. ___________________________________________________________________
  605.  
  606. ___________________________________________________________________
  607.  
  608. ----------------------------------------------------------------------