home *** CD-ROM | disk | FTP | other *** search
/ Fun & Games 30 / fun_&_games_nr_30.iso / fg30 / levels / descent / devil / readme.txt < prev    next >
Text File  |  1995-05-22  |  24KB  |  504 lines

  1. Welcome to DEVIL, the Descent Editor for Vertices, Items and Levels at all.
  2.  
  3.         __          __  ___    ___        ___   __    __
  4.        |  ||\      |  ||___\   \  \      /  /  |  |  |  |
  5.        |  ||  \    |  | ____    \  \    /  /   |  |  |  |
  6.        |  | \   \  |  ||____\    \  \  /  /    |  |  |  |
  7.        |  |___\  | |  |______     \  \/  /     |  |  |  |____
  8.        |_________| |_________\     \____/      |__|  |_______\
  9.                     
  10.         This is the README.TXT for version V1.0
  11.  
  12. DEVIL is free software, and you are welcome to redistribute it under certain
  13. conditions, therefore DEVIL comes with ABSOLUTELY NO WARRANTY;
  14. for details see the file 'COPYING'. go32.exe is copyright by DJ Delorie;
  15. for copying this see 'COPYING.DJ'. The graphics library is copyright
  16. by Csaba Biegel; see 'COPYING.CB'. You get GNU-C with source-code on nearly 
  17. every ftp-site (for example ftp.uni-stuttgart.de).
  18.  
  19. I've tried to write this file in English because I think most of you
  20. are better in reading very bad English than correct German, but I
  21. would prefer if someone can correct this :-))).
  22.  
  23. ATTENTION:
  24.  If you think you've build a great macro, please mail it to me. I am still
  25.  searching for a good idea for specifying macros.
  26.  
  27. Note that DEVIL.DOC & BUILDLEV.DOC are not documenting the new features
  28. of release V1.0. Refer to refman.doc if you've any questions.
  29.  
  30. NEW: I've introduced some sort of mailing list. If you always want to get
  31. the latest Devil release via E-Mail (uuencoded), please send me short
  32. mail (the source-code will only be included if you say so).
  33.  
  34.   CONTENTS:
  35.   
  36.   [0] THE VERSION NUMBERS.
  37.   
  38.   [1] INSTALLING DEVIL
  39.       [1a] What do I need to run DEVIL ?
  40.       [1b] How to install this thing ?
  41.       [1c] If one file is missing what do I have to do?
  42.       [1d] DEVIL crashes before the screen appears. 
  43.       [1e] DEVIL runs only in VGA-mode but I have a VESA-card.
  44.  
  45.   [2] BUILDING LEVELS
  46.       [2a] Building a level.
  47.       [2b] Including the level in descent (easy way).
  48.       [2c] Including the level in descent/Compiling your own HOG-files.
  49.       [2d] Extracting the original levels.
  50.       [2e] Extracting other files.
  51.       [2f] Restoring the original descent.
  52.       [2g] Copying macros.
  53.  
  54.   [3] BUGS AND OTHER WELL KNOWN FEATURES
  55.       [3a] How many bugs I've to expect ?
  56.       [3b] Bugtypes.
  57.       [3c] Report a bug.
  58.  
  59.   [4] FURTHER PLANS
  60.       [4a] Next version.
  61.       [4b] Soon.
  62.       [4c] Sometimes.
  63.       [4d] Never.
  64.       
  65.   [5] ONE OR TWO WORDS TO THE SOURCECODE
  66.       [5a] Why is DEVIL.INI so long?
  67.       [5b] Sourcecode itself.
  68.       [5c] Extending DEVIL.
  69.       [5d] Recompiling DEVIL.
  70.  
  71.   [A] UPDATES
  72.   
  73.   [B] Things I've tried without success.
  74.   
  75. [0] THE VERSION NUMBERS.
  76.  Since version V1.0a DEVIL is numbered in the following way:
  77.  The full working, official release I will copy on anonymous ftp-sites
  78.  is called V1.0, V1.1 and so on. The beta-testing versions are
  79.  called V1.0a, V1.0b, V1.0c and so on. So don't copy a beta-testing
  80.  version on ftp-sites, please.
  81.  
  82. [1] INSTALLING DEVIL
  83.  
  84.  [1a] What do I need to run DEVIL ?
  85.   To run DEVIL you need the following things: 
  86.    1. DESCENT registered version (I won't release a editor for the shareware
  87.       version because the guys from Parallax don't want this).
  88.    2. A fast computer with coprocessor (the program isn't optimized in
  89.       any way yet, especially I do all the calculations needed for
  90.       plotting with floating point, so without a copro it's very very very
  91.       very slow, but you can try it with emu387 (is not included).
  92.       On a 486/66 it should be quite good).
  93.    3. A VESA-compatible graphics card is recommended for 640*480*256.
  94.       Some problems have occured with the built-in VESA driver from go32
  95.       with the last version, so I have included this time all drivers
  96.       I have.
  97.    4. The following files: devil.bat devilexe.exe, devil.ini, extract.exe,
  98.       hogfile.exe, devil.pal, devil.fnt and some levels, drivers and
  99.       macros & documentation files is the full version. You need
  100.       devil.exe, devil.ini, devil.pal and devil.fnt and one level or
  101.       extract.exe.
  102.       
  103.  [1b] How to install this thing ?
  104.   If you have the descedit.zip file just pkunzip it with -d in the descent
  105.   directory. Then copy the descent.hog file to a save place (inclevel.exe
  106.   will modify it). Since you read this file you've done this before, I
  107.   suppose? In your DESCENT directory is now a directory called DEVIL
  108.   with the two subdirectories LEVELS and MACROS. 
  109.   
  110.   If you've several single files, first look if you've all files mentioned
  111.   in [1a] if not see [1c]. If you've all files you must do the following
  112.   things:
  113.    1. make an subdirectory called "DEVIL" (the name IS (!) important)
  114.       in your descent directory (this is important). In this
  115.       directory you make two subdirectories called "MACROS" and "LEVELS"
  116.       (name and position important). The .doc files you can copy 
  117.       whereever you want.
  118.    2. copy *.exe and devil.* in the "DEVIL" directory.
  119.    3. copy any *.rdl file you have in the LEVELS directory.
  120.    4. copy any *.rmc file you have in the MACROS directory.
  121.    
  122.  [1c] If one file is missing what do I have to do?
  123.   The other files:
  124.    - descent, registered version: buy it.
  125.    - go32.exe,emu387: look for djgpp (gnu-c for msdos from DJ Delorie). This
  126.       is nearly on every server.
  127.    - devil.pal, a .rdl file: if you've extract.exe you can use this
  128.       to extract files from the hogfile.
  129.    - devil.exe,devil.ini,extract.exe,hogfile.exe,devil.fnt,devil.pal:
  130.       Have a look at the sites listed in appendix [A] for the Devil files.
  131.       You can also try one of the following sites (but there you probably
  132.       won't find the newest version):
  133.       (I suppose you must look in incoming directories to find it):
  134.        ftp.cdrom.com         (/pub/games/descent/incoming)
  135.        wuarchive.wustl.edu   (??? some incoming directory for DESCENT)
  136.        ftp.uni-heidelberg.de (/incoming) 
  137.    - devsrc.zip: This is the source-code. I have seperated it from the
  138.       rest of the file because it's much too long to copy it every time
  139.       if you don't need it.
  140.        
  141.  [1d] DEVIL crashes before the screen appears. Help?
  142.   If DEVIL crashes with a message like General Protection Fault or something
  143.   like this, try a clean configuration only with HIMEM.SYS from MSDOS.
  144.   If this also crashes, you have a system which go32 thinks is not worthy
  145.   running DEVIL. Sorry about this, have a look at the next section.
  146.   
  147.   If DEVIL crashes with the message "Unknown adapter type". You have three
  148.   chances: First have a look in your CONFIG.SYS if there's something
  149.   like a DISPLAY.SYS driver loaded. If it is loaded, remove it and try again.
  150.   
  151.   If it still won't work look at the DEVIL.BAT file. There are some drivers
  152.   mentioned. Perhaps you can find one with a name which is similar to your
  153.   card. Then change the line
  154.     set grx20drv=vesa
  155.   into
  156.     set grx20drv=<drivername>
  157.   Of course you must replace <drivername> with the name of the driver
  158.   (i.e. cl5426)
  159.   Also you can try to load a resident VESA-bios. Perhaps you try different
  160.   BIOS's, not every BIOS will work with you graphics card&go32.
  161.  
  162.   If you've tried all drivers and DEVIL still prints this idiotic message
  163.   you must use VGA - sorry. Do this with 
  164.     set grx20drv=stdvga
  165.   and start DEVIL with /VGA. You can't fit bitmaps in this mode, I hope
  166.   I can fix this bug with the next release.
  167.   
  168.  [1e] DEVIL runs only in VGA-mode but I have a VESA-card.
  169.   Try the drivers in the drivers directory. See previous section.
  170.   
  171. [2] BUILDING LEVELS
  172.  [2a] Building a level.
  173.   Start devil.bat. If it does some output and then returns to the DOS-prompt
  174.   look in the file devil.err and see the previous sections. 
  175.   
  176.   If DEVIL has started, build an level. This is not an easy task, but 
  177.   I'm sure you will see how it works.
  178.   See the doc-files for documentation. The saved levels will be in
  179.   the levels-directory (that's not very surprising I suppose).
  180.   NEW: You can play a level with 'Play level' and the old configuration
  181.   will be saved.
  182.  
  183.  [2b] Including the level in DESCENT (easy way).
  184.   Just copy your levelfile in the DESCENT directory and name it
  185.   LEVEL01.RDL (the 01 can be replaced by 01-27,S1-S3). DESCENT will
  186.   load this level automatically and replace the original level. You can
  187.   also use the batch file launch.bat like
  188.    c:\descent\devil> launch my_level
  189.   This will copy levels\my_level.rdl to ..\level01.rdl (if you're in the 
  190.   devil directory) and start DESCENT.
  191.   
  192.  [2c] Including the level in descent/Compiling your own HOG-files.
  193.   If you want to produce your own missions you can compile your own
  194.   HOG-files with hogfile.exe. It will ask you all necessary data
  195.   and produce the specified HOG-file. If this HOG-file and the corresponding
  196.   MSN-file is in the DESCENT-directory, DESCENT will recognize this and
  197.   ask you which mission you want to play.
  198.   
  199.  [2d] Extracting the original levels.
  200.   This is done with extract.exe. Assuming that you will extract
  201.   the level 01, type in the levels-directory (!):
  202.    C:\DESCENT\DEVIL\LEVELS> ..\extract.exe level01.rdl ..\..\descent.hog
  203.   Instead of 01 you can write 01-27, S1-S3 (S must be uppercase).
  204.   The last parameter is the hog-file from which you want to 
  205.   extract, if it's '..\..\descent.hog' you can omit it.
  206.   The HOG-file is not changed. Try '$' instead of a 'level01.rdl' for the
  207.   contents of the HOG-file. Extract works also with other non-original
  208.   HOG-files.
  209.  
  210.  [2e] Extracting other files.
  211.   The same thing as extracting the levels. extract.exe can use wildcards
  212.   so perhaps you wanna extract all files in a seperate directory with *.*.
  213.   Extract copies the files in the current directory.
  214.  
  215.  [2f] Restoring the original DESCENT.
  216.   Delete all level??.rdl files from your DESCENT directory.
  217.  
  218.  [2g] Copying macros.
  219.   If your friend has build some macros you want to include, just copy
  220.   them in your macros directory and start DEVIL.
  221.  
  222. [3] BUGS AND OTHER WELL KNOWN FEATURES
  223.  
  224.  [3a] How many bugs I've to expect ?
  225.   I hope this version is a bit more bug-free then V0.99 or V0.97 but
  226.   I don't guarantee for anything of course. So thanks in advance to all
  227.   people who mail me bugs.
  228.   Save early and save often (as you know it from several games). 
  229.   I hope there are not so many bugs that are destroying your savefile or
  230.   make DEVIL not to read saved files, but (again) I guarantee for nothing. If
  231.   you've a really, really great level that you've build for hours and hours
  232.   and DEVIL won't load him anymore, send me an EMail with a short message
  233.   what you've done last and what's in the file devil.err. It's always
  234.   a good idea to look in the file devil.err, perhaps you can do
  235.   some repair for yourself.
  236.   
  237.  [3b] Bugtypes.
  238.   I distinguish the following bugtypes:
  239.    A. Real, heavy bug: DEVIL crashes down with a message like
  240.        General Protection Fault
  241.       and a lot of registers and numbers and so on.
  242.       If you've discoverd such a bug I hope you've saved your work so
  243.       far. Please send me the clear readable message and the last few
  244.       steps you've made before the crash, so I can see what to do.
  245.    B. Middle bug: DEVIL crashes not really down, but goes to the DOS-prompt.
  246.       In this case it's a good idea to look in the file DEVIL.ERR.
  247.       Please send me the text written in there and the description of
  248.       your last few actions.
  249.    C. Weird bug: DESCENT won't load the level or crashes loading the level.
  250.       Also report to me (but first look at the documentation for possible
  251.       reasons). 
  252.    D. No bug: Suggestions to improve DEVIL. Also report to me.
  253.  
  254.  [3c] Report a bug.
  255.   Report a bug to: ubdb@rz.uni-karlsruhe.de
  256.        or          ub0u@rz.uni-karlsruhe.de
  257.   Just send one of the four topics under [3b] as head of your email so we
  258.   can sort it.
  259.  
  260. [4] Further plans
  261.  
  262.  [4a] Definitely next (full) version.
  263.   Inserting a cube between two other.
  264.   Set light automatically, depending on the position of the light textures.
  265.   Do light shading with several paths.
  266.   
  267.  [4b] Next weeks 
  268.   A setup program for DEVIL.INI, so you can change keys and menus and so on. 
  269.   A macro previewer. 
  270.   Making real descent specs if no one does it.
  271.   Describing exactly what to do to extend DEVIL.
  272.   Tune the plot-routine especially avoid the copro. 
  273.   Cleaning up the program code.
  274.   Perhaps make some sort of DEVIL-language.
  275.   
  276.  [4c] Sometimes
  277.   If I get an idea how to do it, texture-mapping on one cube, so you
  278.   can see it from the inside (??). 
  279.   Decoding POF-files and making an editor for them.
  280.   
  281.  [4d] Never
  282.   A bitmap editor.
  283.   An editor for sounds or decoding the soundfile (because of lack of
  284.    knowledge).
  285.   
  286. [5] ONE OR TWO WORDS TO THE SOURCECODE
  287.  
  288.  [5a] Why is DEVIL.INI so long?
  289.   I've tried to keep as much data as possible out of the real sourcecode,
  290.   especially the data which refers to the keys, the menustructure and
  291.   the DESCENT data, so you can edit or complete it without compiling
  292.   DEVIL once again. I will release a setup program for adding something
  293.   to DEVIL.INI but if you're a tough guy, you can try to understand and
  294.   modify it with a normal editor (I put some comments in it, but I don't
  295.   know if they're up to date).
  296.   
  297.  [5b] Sourcecode itself.
  298.   If you're trying to understand the sourcecode I must give you one hint:
  299.   The WALLS are named DOORS in the sourcecode and the SIDES are called
  300.   WALLS. It's bit confusing, but has historical reasons (I first thought
  301.   the WALLS are only DOORS). I suppose you'll be astonished at the do_event.c
  302.   file especially the function array do_event. I've done it this way and
  303.   not with a switch() because I think in this way it's easier to extend.
  304.   Just put your procedure name at the end of this array, an corresponding
  305.   entry in the enum evcodes in do_event.h, and the number of this
  306.   evcode as an entry in DEVIL.INI.
  307.   
  308.  [5c] Extending DEVIL.  
  309.   In my opinion, the best way to extend DEVIL is to send me your sourcecode
  310.   (of course). I will put a node in the credits and make an event in
  311.   DEVIL for it. If you want to do this for yourself, look at [5b] or wait
  312.   some time until I've released a setup program and fully information
  313.   about how extending DEVIL.
  314.   
  315.  [5d] Recompiling DEVIL.
  316.   If you want to recompile DEVIL on another compiler, just have a look at
  317.   the system.c/system.h files. They contain all non-ANSI-C-routines DEVIL
  318.   needs. The rest of DEVIL is strict ANSI-C. The only non-ANSI-C
  319.   convention is that an 'int' is 4 bytes long.
  320.   Please send me an E-Mail if you recompile DEVIL on another compiler so
  321.   I can always give you the newest source-code.
  322.   
  323. [A] UPDATES
  324.  The latest release is always available at
  325.   http://www.uni-karlsruhe.de/~ubdb/index.html
  326.   http://cnt.eitc.edu/todd/descent.html
  327.   The Fighting Eagle BBS: (317)662-8122
  328.   
  329.  0.95b - first release, a bit chaotic, COPYING files missing (in some cases),
  330.      wrong DOC file.
  331.  0.96b - Changed tiny bug with alternate exit, switch for doors in devil.ini
  332.      renamed, correct DOC file, complete README.TXT.
  333.  0.96b2  Fixed a lot of bugs: 
  334.        - Connecting cube with itself is no longer possible.
  335.        - Killing the status line sometimes.
  336.        - Choosing does not implement beaming anymore.
  337.        - Default filename (also change in devil.ini)
  338.        - Deleting is now possible with the current object if it's tagged.
  339.      The current object is just set to the previous (or next) object.
  340.        - Saving is no longer aborted, if a thing is out of bounds, but
  341.      a warning is printed if you want to ignore this. Also the exit side.
  342.        - If you enter something via keybord you can't delete too much anymore.
  343.        - Fixed bug entering strings: now it's possible to use spaces.
  344.        - Status line strings are now shortened if too long.
  345.        - No "General Protection Fault" if you tag a non existing wall.
  346.        - tuned bitmap routine (wasn't that difficult)
  347.      introduced: g, G for fitting to bitmap/side
  348.        - Numlock is now turned on at start.
  349.        - Normal quit made.
  350.        - Fixed bug in initio with doortextures
  351.        - Tried to fixed bug with macro saving but..-
  352.      KNOWN BUGS:
  353.        - Numlock on/off with keyboard LED does not work (look at the screen)
  354.        - Saving the same macro under several filenames will rename the first
  355.      saved macro (but on the disk there are two files, I hope). 
  356.      Try exiting and loading devil again.
  357.  0.97  - Fixed the damned bug with the macros.
  358.        - In wallmode now the texture for the wall side is shown.
  359.        - Fixed the "General Protection Fault" bug with producers that
  360.      produce nothing.
  361.        - Fixed another "GPF" when you run at the beginning of the doortypes.
  362.        - Introduced texture1&texture2 in wall menu.
  363.        - A normal texture2 is now also a wall texture 1.
  364.      KNOWN BUGS:
  365.        - Numlock on/off with keyboard LED still does not work 
  366.      (look at the screen)
  367.        - Changing textures with tagged walls in wall mode doesn't work.
  368.  0.99  - Made the SOURCE-code portable (with system.c/system.h)
  369.        - VGA-version is now built-in.
  370.        - fixed a bug in door textures.
  371.        - corrected the calculation of the texture coords
  372.          (works now even with very weird wall).
  373.        - fixed bug in the convex/weird-routine.
  374.        - added align to axis.
  375.        - you can't set the exit on a wall anymore.
  376.        - improved the helptxt.
  377.        - changed violet lines in texture/plot window.
  378.        - added "make room"-feature.
  379.        - fixed bug with left upper movebutton.
  380.        - fixed bug moving tagged cubes: they're now first all moved and then
  381.          checked, not moved and checked one by one.
  382.        - added "special tag" for points.
  383.        - made hogfile-sampler.
  384.        - changed drawing of tagged lines to one-point-thick lines
  385.          because of system.c/system.h.
  386.        - introduced changing rotating angle for fitbitmap.
  387.        - fixed bug that produced a 0-Byte file if you aborted saving macros.
  388.        - added the "align bitmaps"-feature.
  389.        - added an other rotating mode for cubes (with 4 & 6) where the current
  390.          cube is not rotated.
  391.        - changed the displaying of light&coords.
  392.        - Internal menu is now working completely.
  393.        - added scaling of macros&textures.
  394.        - introduced seperate rotation angle for things.
  395.        - you can insert now a macro on the exit.
  396.        - current position&direction is shown permanently.
  397.        - added growing&shrinking cubes and walls.
  398.        KNOWN BUGS: more I can describe.
  399.  1.0a  - added button for calculating textures.
  400.        - fixed the crash if you try to move a wall.
  401.        - now showing hotkeys in menus.
  402.        - connections for macros are now aligned vice versa 
  403.          (the macro is aligned to the current side).
  404.        - fixed the bug with the orientation of the second texture.
  405.        - crash if changing in wall mode.
  406.        - movebuttons won't work with mouse
  407.        - thing texture
  408.        - door texture
  409.        - killing of texture
  410.        - moving down in menu
  411.        - growing&shrinking now calculating textures and door grfx
  412.        - Clicking on scrolled data field is possible now.
  413.        - The doors are now correct changed if you change the animation.
  414.        - Setting door open - switch is now working without an error message.
  415.        - The items/hostages are now shown yellow not blue like the tagged 
  416.          objects.
  417.        - A blowdoor is now initialized with correct values&texture.
  418.        - You can now stretch the bitmap in 'fit bitmap' in x/y direction
  419.          (try switching numlock on/off).
  420.        - A thing is now inserted with the top to the current wall.
  421.        - Connections are now done with the variable UConn. in Internal menue.
  422.        - Hostages work now.
  423.        - Cubesize is now restricted (cause of the textures).
  424.        - Textures can now be selected with the mouse.
  425.        - Level reading tolerates now minor bugs.
  426.        - I hope the open-at-end bug is fixed.
  427.        - GPF if changing cube from producer to normal type is fixed.
  428.        - Arrange bitmaps works now.
  429.        - Source code is now strict ANSI-C.
  430.        - Fixed bug with Ins in side mode if a cube is surrounded by other 
  431.          cubes.
  432.        - Changed the read level routine a bit (can now read level26).
  433.        - Better map (try it, with lines of in Drawing Menu).
  434.        - Font is changed (hope that fixes the problems with several grfx 
  435.          cards).
  436.        - Added shift+left mousebutton for tagging several objects.
  437.        - Added tag box for tagging several objects
  438.        - Saving now checks for duplicate reactors and keys and starts with
  439.          illegal numbers. Also for reactors in no 'reactor'-cubes.
  440.        - You can change the level-name shown in DESCENT.
  441.        - Light shading feature added.
  442.        - Insert points.
  443.        - Insert&Delete sides with tagged walls.
  444.        - Shrink&grow now work with grid.
  445.        - You can lock side, so their texture is not calculated if you move
  446.          their points.
  447.        - Fit bitmap is now with&without tagged sides.
  448.        - Size of things is now correct (you won't see a difference).
  449.        - You can use the cube/side tags in side/point mode.
  450.        - If you leave DEVIL it starts with the same level on the same
  451.          position.
  452.        - You're asked is you want to leave DEVIL without saving changed
  453.          you've made.
  454.        - The play level feature is added.
  455.  1.0b  - Fixed little bug with text in the left upper corner by fit bitmap.
  456.        - Changed exit codes for handling GPFs.
  457.        - Changed name of the exe-file.
  458.        - works only with V1.4
  459.  1.0c  - works now with V1.0 and V1.4
  460.        - if macro saving is aborted, no file is created anymore.
  461.        - in macro choosing text is now correct even if you've overwritten
  462.          a macro.
  463.        - 'side lock' is now copied in macros & saved with levels.
  464.        - fixed a bug in savecube with the producers.
  465.        - size of things in old levels is now set & plot correctly.
  466.  1.0   - fixed the bugs with tagging.
  467.        - you can switch now between x-tagged display mode and normal tagged
  468.          display mode.
  469.        - introduced the number of tagged objects in the upper right corner.
  470.        - fixed the bug with updating the texture window.
  471.        - fixed the mouse bug if you click buttons rapidly.
  472.        - Devil now changes to cube mode after making a macro.
  473.        - Devil works with DPMI
  474.        - S3 cards can use the accelerated line function of the card
  475.          (have a look in the devil.bat file)
  476.        - Fit bitmap in VGA mode won't work.
  477.  
  478. [B] Things I've tried without success.
  479.  Hope this section won't get very long:
  480.   - Drawing a grid. Well, this is a difficult point. I've tried it with
  481.     points&lines and with different distances and it never looks like
  482.     this can help anyone to make a level. If someone has a good idea how
  483.     to draw a three dimensional grid, mail me.
  484.        
  485. Have a good time, build many levels, bomb all enemies and send me an email
  486.  
  487. Achim (ubdb@rz.uni-karlsruhe.de)
  488.  
  489. The Tao of programming
  490. ----------------------
  491.  
  492.  Master : The Tao of programming is in every program,
  493.           no matter of how insignificant it is.
  494.  Student: Really in every program?
  495.  Master : Yes, in every program.
  496.  Student: Is the Tao of programming in a handheld-calculator?
  497.  Master : It is in a handheld-calculator.
  498.  Student: Is the Tao even in a digital wrist watch?
  499.  Master : It is even in a digital wrist watch.
  500.  Student: And is the Tao of programming in a DOS for a PC?
  501.  The master coughed, shifted his position slightly and said:
  502.           'The lesson is over for today.'
  503.  
  504.