home *** CD-ROM | disk | FTP | other *** search
/ Phoenix CD 2.0 / Phoenix_CD.cdr / 01e / miscutil.zip / BURNOUT.DOC < prev    next >
Text File  |  1987-12-14  |  32KB  |  693 lines

  1.  
  2.                            BURNOUT II Documentation
  3.                            ------------------------
  4.                                V2.30 14-Dec-1987
  5.  
  6.         Function
  7.         --------
  8.         BURNOUT is an enhanced version of the old screen blanking
  9.         program of the same name; its primary purpose is to blank out
  10.         your video display after a specified length of time.  BURNOUT II
  11.         is significantly enhanced over BURNOUT; not only does it allow
  12.         you better control over its operations, but it is written as a
  13.         virtual device driver so that you can control it directly from
  14.         your own programs.
  15.  
  16.  
  17.         V2.30 notes
  18.         ------------
  19.         In hardware blanking mode (H+) this version will blank EGA and
  20.         VGA adapters, and it will turn off the CGA text mode border.
  21.         EGA owners should now use H+, because it will blank the screen
  22.         in any video mode (including 43-line mode) and it won't affect
  23.         communications, as H- mode does.
  24.  
  25.         If you select H+ mode via CONFIG.SYS (i.e., at boot time),
  26.         BURNOUT 2.30 will use about 2K less memory than 2.20 did.
  27.         You will not be able to use H- mode after booting, however.
  28.  
  29.  
  30.         V2.20 Notes
  31.         -----------
  32.         This version will blank CGA-compatible adapters in graphics
  33.         modes.
  34.  
  35.         The R parameter has been added.  This is of interest primarily
  36.         to programmers.
  37.  
  38.  
  39.         V2.10 Notes
  40.         -----------
  41.         This version adds "on demand" screen blanking.  By pressing the
  42.         left shift key and <Ctrl> simultaneously, you can force the
  43.         screen to blank.  The key combination can be altered via the new
  44.         F parameter.
  45.  
  46.  
  47.         Installation
  48.         ------------
  49.         To install BURNOUT, follow two steps: place the file BURNDEV.SYS
  50.         in the root directory of your boot diskette or hard disk, and
  51.         modify the CONFIG.SYS file to include the statement
  52.         "device=burndev.sys".
  53.  
  54.         In case you are not familiar with CONFIG.SYS: this is a small
  55.         text file that DOS reads when booting.  It contains various
  56.         pieces of information that DOS and other programs can use when
  57.         setting themselves up.  Look in the root directory of your boot
  58.         disk for the file CONFIG.SYS.  If no such file exists, just
  59.         type:
  60.  
  61.                 copy con \config.sys<Enter>
  62.                 device=burndev.sys<Enter>
  63.  
  64.         Then press F6 (you'll see "^Z") and <Enter>, and you're done.
  65.  
  66.         If you already have a CONFIG.SYS file (which is likely), you
  67.         must edit it to include the statement "device=burndev.sys".  Do
  68.         this using your text editor or word processor in text mode (or
  69.         Edlin).  Retain all existing information, and add the new line.
  70.  
  71.         Now reboot your machine.  If all goes well, it will boot as
  72.         usual.  There will be no indication that anything has happened.
  73.         However, the screen should blank out after about ten minutes of
  74.         inactivity.  You can clear the screen instantly by pressing the
  75.         left shift key and <Ctrl> simultaneously.  After the screen has
  76.         cleared, any keystroke and most video activity will restore it.
  77.  
  78.         BURNDEV uses about 2400 bytes of memory if installed in H+ mode,
  79.         4400 bytes if installed in H- mode (see below).
  80.  
  81.  
  82.         BURNOUT parameters
  83.         ------------------
  84.         There are several ways in which you can alter the operation of
  85.         BURNOUT.  There is a demo program called BURNOUT.COM that you
  86.         can use for this purpose.  Its syntax is as follows:
  87.  
  88.                 BURNOUT [count] [V±] [H±] [C±] [Fn] [R]
  89.  
  90.         The parameters are as follows:
  91.  
  92.         COUNT: changes the number of clock ticks until the screen
  93.         blanks (this is called the "reset count").  For example,
  94.  
  95.                 BURNOUT 5000
  96.  
  97.         sets the reset count to 5000.  This means that if BURNOUT
  98.         observes no keyboard or video activity within 5000 clock
  99.         ticks, it will blank the screen.  On the IBM PC, there are
  100.         about 18.2 ticks per second, so this means that the screen will
  101.         clear after about 5000/18.2 seconds (275 seconds, or about four
  102.         and a half minutes).  (The default value on powerup is 10800
  103.         ticks, or about 10 minutes).  You can set the reset count
  104.         anywhere from 1 tick (not highly recommended) to 65535 ticks
  105.         (about an hour).
  106.  
  107.         If you set the reset count to 0, BURNOUT will be effectively
  108.         "deinstalled" until you set a new nonzero count.  This is useful
  109.         for programs that don't get along with the screen blanker.
  110.  
  111.         V: This stands for Video, and tells BURNOUT whether you want it
  112.         to monitor video activity in addition to keyboard activity.
  113.         You can set either "V+" (monitor video), or "V-" (don't).  Thus,
  114.  
  115.                 BURNOUT 5000 V-
  116.  
  117.         sets the reset count to 5000 ticks, and not to monitor video.
  118.         Why would you not want to monitor video?  Primarily because some
  119.         programs continuously update the display (e.g., with a ticking
  120.         clock) even when they're not doing anything.  If you use V+, the
  121.         screen would never blank.  The default setting is V+.
  122.  
  123.         H: This stands for Hardware, and tells BURNOUT whether you want
  124.         it to blank the screen by manipulating the hardware (i.e., by
  125.         turning off the video signal), or by software (which it does by
  126.         temporarily changing screen attributes to black-on-black, or
  127.         nondisplay).  Some explanation is in order.
  128.  
  129.         The preferred method of blanking the screen is to do it by
  130.         manipulating the PC's video controller.  This method is very
  131.         fast and in general has fewer problems than the software method.
  132.         However, it does have two problems.  First, it is nonportable:
  133.         it doesn't work with all PC-compatibles.  Second, there have
  134.         been reports that this method (which is used by most screen
  135.         blanking programs) can PHYSICALLY DAMAGE a few non-IBM video
  136.         adapters, notably the Hercules and similar cards.
  137.  
  138.         DO NOT USE H+ IF YOU ARE USING A HERCULES OR SIMILAR VIDEO
  139.         ADAPTERS!!! YOU HAVE BEEN WARNED!!!
  140.  
  141.         If you ARE using a standard IBM video adapter or the equivalent,
  142.         try H+, with a setting of about 10 seconds, to make sure it
  143.         works:
  144.  
  145.                 BURNOUT 180 H+
  146.  
  147.         The screen should blank in about 10 seconds.  If it does not,
  148.         you will have to use H- (which is the default [safe] setting).
  149.         Reset BURNOUT to some reasonable period of time, of course,
  150.         after you have tested.
  151.  
  152.         NOTE: in H- mode, BURNOUT won't clear a 43-line EGA screen
  153.         fully, and it won't turn off the CGA border.
  154.  
  155.         C: This stands for Continuous Clear.  If you are using H+, you
  156.         can skip this one, because it is ignored in hardware blanking
  157.         mode.  As mentioned above, software blanking is achieved by
  158.         simply changing all video attributes to nondisplay
  159.         (black-on-black).  Now, if you are running in V- mode (not
  160.         monitoring video), or if you are running a program that
  161.         achieves video output by writing data directly to screen memory,
  162.         new data will begin to appear on the screen, even though it is
  163.         blanked.  Continuous Clear attempts to remedy this by simply
  164.         resetting all the attributes to black-on-black every time the
  165.         clock ticks (18 times per second).  The new data will flash on
  166.         the screen and disappear immediately.
  167.  
  168.         F: This stands for Forced clear.  It allows you to alter the
  169.         key combination that will clear the screen instantly.  You will
  170.         need these codes:
  171.  
  172.                 Right shift:  1
  173.                 Left shift:   2
  174.                 Ctrl:         4
  175.                 Alt:          8
  176.  
  177.         Decide what keys you want to use (any combination is OK), and
  178.         add up the codes.  For example, if you want the screen to clear
  179.         when you press both shift keys, add 1 + 2.  Use the sum with the
  180.         F parameter:
  181.  
  182.                 BURNOUT F3
  183.  
  184.         If you wish to disable forced blanking, use zero:
  185.  
  186.                 BURNOUT F0
  187.  
  188.         Note that the maximum valid parameter is 15 (1+2+4+8, meaning
  189.         all four keys must be pressed).  Any parameter above 15 will be
  190.         ignored.
  191.  
  192.         R:  this stands for Reset.  It resets the current tick counter
  193.         to the reset value (i.e., to the COUNT value, default 10800) and
  194.         restores the screen if it is currently blanked.  This is of
  195.         interest primarily to programmers who want to prevent BURNDEV
  196.         from blanking the screen during lengthy computations.
  197.  
  198.                         *       *       *       *
  199.  
  200.         BURNOUT parameters can be entered in any order; illegal
  201.         parameters, capitalization, and separators are IGNORED.  Thus,
  202.         the following are all equivalent:
  203.  
  204.                 BURNOUT 5000 V+ H- F6
  205.                 BURNOUT F6v+h-5000
  206.                 BURNOUT H+, F6, V-, 5000
  207.                 BURNOUT 5000H-F6V+
  208.  
  209.         Obviously, you cannot enter something like:
  210.  
  211.                 BURNOUT F75000
  212.  
  213.         to set the force keys to 7 and the count to 5000.  You'd have to
  214.         use "5000F7" or "5000 F7", etc.  In particular, note that
  215.         "F7 5000" will NOT work.  When we said that separators are
  216.         ignored, we meant ignored.  "F7 5000" and "F75000" are
  217.         identical insofar as BURNOUT is concerned.
  218.  
  219.         If you enter a COUNT greater than 65535, you're on your own.
  220.         You won't get what you expect.
  221.  
  222.         If you don't like the way BURNOUT.COM works, you're free to
  223.         "roll your own"; see the section on writing to BURNDEV.
  224.  
  225.         When BURNOUT is finished, it will display the current device
  226.         status.  For example:
  227.  
  228.                 Status: 09994,10000, ,C-,V+,H+
  229.  
  230.         The format of the status line is:
  231.  
  232.                 Status: nnnnn,nnnnn,B,C+-,V+-,H+-
  233.  
  234.         The first number is the current number of clock ticks remaining
  235.         till the next screen blank; the second is the reset count (in
  236.         this case, the two numbers will be very close).  The "B", if
  237.         present, indicates that the screen is currently Blanked (you
  238.         won't see this after running BURNOUT--it is part of the stantus
  239.         report for the programmers' interface).  The "C", "V", and "H"
  240.         flags indicate the current status of Continuous Clear, Video
  241.         monitoring, and Hardware clearing.  If the parameter is active,
  242.         the indicator will be followed by a plus sign (+), otherwise a
  243.         minus sign (-).  In the above example, then, the current count
  244.         is 09994, the reset count is 10000, the screen is not blanked
  245.         (naturally), Continous Clear is off, and Video monitoring and
  246.         Hardware clearing are on.
  247.  
  248.         If you run BURNOUT without any parameters, it will simply
  249.         display status without changing anything.
  250.  
  251.  
  252.         Setting parameters via CONFIG.SYS
  253.         ---------------------------------
  254.         You can also include any of these parameters in the CONFIG.SYS
  255.         file so that they will be set immediately when you boot.  For
  256.         example,
  257.  
  258.                 device=burndev.sys 8000 H+ V- F5
  259.  
  260.         If you set H+ mode via CONFIG.SYS, BURNOUT will use about 2K
  261.         less memory.  However, you will not be able to switch to H- mode
  262.         after booting.  (more precisely, BURNOUT will permit you to
  263.         switch to H- mode, but the screen will never blank.
  264.  
  265.  
  266.         Software blanking, hardware blanking, and hardware damage
  267.         ---------------------------------------------------------
  268.         As of this writing (December 13, 1987), the BURNOUT system has
  269.         been available to the public for over four years.  We know that
  270.         it is installed on many thousands of systems, and we have NO
  271.         knowledge that BURNOUT has ever harmed a video adapter.  The
  272.         warning above stems from our knowledge that the hardware
  273.         blanking technique as used by a similar program has, in fact,
  274.         been known to damage some Hercules graphics adapters.
  275.  
  276.         To the best of our knowledge, hardware blanking is entirely safe
  277.         on all video adapters sold by IBM, and on all adapters that are
  278.         fully compatible.  We know for a fact that it is safe on
  279.         IBM-manufactured monochrome, CGA, and EGA adapters.
  280.  
  281.         Software blanking is safe on all adapters.  It does not
  282.         manipulate the hardware at all; it merely changes all video
  283.         attributes (colors) to black-on-black, causing text to become
  284.         invisible.  However, doing so is a time-consuming process (in
  285.         computer terms), and it can cause problems for some programs.
  286.         In particular, software blanking can create problems for
  287.         communications programs during lengthy file transfers; if the
  288.         screen blanks during a transfer, data will be lost and the
  289.         transfer will probably fail.  Also, software blanking will not
  290.         work on anything other than an 80x25 screen.  So, hardware
  291.         blanking is to be preferred--if it's safe.
  292.  
  293.         The point of all this is, don't be panicked by the warnings
  294.         contained herein.  Some people have told us, "we don't use
  295.         BURNOUT because it is dangerous; instead, we use program X."
  296.         Well, chances are excellent that program X uses exactly the same
  297.         technique--they just don't bother to tell you of the potential
  298.         danger, and they don't provide the alternative (and safe)
  299.         software blanking method.  If you have an IBM adapter, use H+
  300.         with confidence.  If you have a Hercules adapter, use H-.  If
  301.         you have something else, PLEASE don't call us.  We can't
  302.         help--we can't possibly purchase and test all of the adapters on
  303.         the market because we derive no revenues from BURNOUT.  Ask your
  304.         dealer if the card's video signal can be disabled in the same
  305.         manner as the CGA's video signal, i.e., by turning off bit 3 of
  306.         port 3D8h.
  307.  
  308.  
  309.         Using the BRNDEV device
  310.         -----------------------
  311.         NOTE:  you will only need to read this section if you are a
  312.         programmer and are interested in controlling the BURNOUT system
  313.         from your own programs.
  314.  
  315.         As mentioned above, the screen blanker is implemented as a
  316.         virtual device.  The advantage to this is that it can be
  317.         interrogated or controlled very easily, from the DOS command
  318.         line or from your own programs.  In fact, BURNOUT.COM is a very
  319.         simple program that takes your command line parameters, sends
  320.         them to the BURNOUT device, reads the current status back from
  321.         the device, and displays the results.  This section explains how
  322.         to do this.
  323.  
  324.         When DOS finds the "device=burndev.sys" line in config.sys, it
  325.         loads and installs the burndev.sys program as a virtual device.
  326.         What this means, practically speaking, is that there is now a
  327.         new "device" attached to your PC.  You already have several
  328.         devices installed:  CON, PRN, COM1 and COM2, AUX, your disk
  329.         drives, and possibly a RAM (or virtual) disk if you have
  330.         installed VDISK.SYS or another disk emulator.
  331.  
  332.         The new device is known to DOS by the name "BRNDEV" (note:  this
  333.         is NOT "BURNDEV", it's "BRNDEV", no U).  Like other devices, you
  334.         can write (send information) to the device, and you can read
  335.         (receive information) from the device.  BRNDEV is designed to
  336.         accept certain very specific information (the BURNOUT
  337.         parameters) when it is written to, and to return certain very
  338.         specific information (the BURNOUT status) when it is read from.
  339.  
  340.  
  341.         Writing to BRNDEV
  342.         -----------------
  343.         NOTE:  you will only need to read this section if you are a
  344.         programmer and are interested in controlling the BURNOUT system
  345.         from your own programs.
  346.  
  347.         How do you "write" to BRNDEV?  There are many ways.  The
  348.         simplest is to do it right from the keyboard, at the DOS prompt:
  349.  
  350.                 copy con brndev<Enter>
  351.                 @8000 V-#<Enter>
  352.                 ^Z<Enter>
  353.  
  354.         The "copy con brndev" command instructs DOS that you want to
  355.         copy input from the console device to the BRNDEV device.  The
  356.         console input "@5000 V-#<Enter>" is copied to the BURNOUT device
  357.         when you hit the Ctrl-Z (end of copy) and <Enter> (execute)
  358.         keys.  To prove it worked, type "BURNOUT" and look at the new
  359.         parameters; they should reflect a reset count of 8000 and no
  360.         video monitoring.  (The significance of @ and # will be
  361.         explained shortly.)
  362.  
  363.         Another way to write to the device would be to copy a small
  364.         textfile to BRNDEV.  As an example, type
  365.  
  366.                 copy con brndemo.txt<Enter>
  367.                 @10000V+#<Enter>
  368.                 ^Z<Enter>
  369.  
  370.         You should now have a small textfile, the contents of which are
  371.         "@10000V+#".  To sen it to BRNDEV, just type
  372.  
  373.                 copy brndemo.txt brndev
  374.                         or
  375.                 type brndemo.txt > brndev
  376.  
  377.         Run BURNOUT to prove that the parameters have changed.
  378.  
  379.         The purpose of the "@" at the beginning of the output to BRNDEV
  380.         is to tell the device to flush or rewind its I/O buffers.
  381.         BRNDEV just sees a sequence of characters coming from DOS; it
  382.         has no particular way to know when it is getting a new sequence
  383.         of command characters.  The "@" tells it to get rid of any old,
  384.         leftover junk and to start fresh.  Make a habit of prefixing all
  385.         BRNDEV commands with an @ symbol.
  386.  
  387.         The "#" is the "execute" character.  It tells BRNDEV that it has
  388.         received the whole parameter list.  Only when BRNDEV sees the #
  389.         will it examine the parameter list and execute the commands.
  390.         Thus, "#" should be at the end of all BRNDEV commands; something
  391.         like "@5000 C+H-" will have no effect at all.  "#" also has a
  392.         second purpose, which will be covered below.
  393.  
  394.         It is also possible, of course, to send commands to BRNDEV from
  395.         high level languages or from assembler programs.  Here's a BASIC
  396.         example:
  397.  
  398.                 10 OPEN "BRNDEV" FOR OUTPUT AS #1
  399.                 20 PRINT #1, "@5000 C+ H-#";
  400.                 30 CLOSE 1
  401.  
  402.         And C (this is C86); you'd want to add some error detection:
  403.  
  404.                 {
  405.                 FILE *burnout, *fopen();
  406.                 static char command[] = "@5000 C+ H-#";
  407.  
  408.                         burnout = fopen("brndev","w");
  409.                         fwrite(command, 1, strlen(command), burnout);
  410.                         fclose(burnout);
  411.                 }
  412.  
  413.         For an 8086 assembler example, see the source for BURNOUT.COM
  414.         (BURNOUT.ASM), which is included in the BURNOUT library.
  415.         Basically, you have to open the device (filename=BRNDEV, fomode
  416.         0 or 2), and use function 40H (FWRITE) to write bytes to the
  417.         device using the returned handle.
  418.  
  419.         Remember that you can use the R parameter (write an "@R#" to the
  420.         device) to restore a blanked screen and reset the BURNDEV
  421.         counter with performing any video output.
  422.  
  423.  
  424.         Reading from BRNDEV
  425.         -------------------
  426.         NOTE:  you will only need to read this section if you are a
  427.         programmer and are interested in controlling the BURNOUT system
  428.         from your own programs.
  429.  
  430.         Unfortunately, reading from BRNDEV is not quite as simple as
  431.         writing to it.  There's no way that I can think of to do it from
  432.         the command line; you really need a program (I suppose you could
  433.         CTTY BRNDEV and then reboot when the machine went crazy [just
  434.         kidding, don't try it]).  Also, there is a bug in DOS 2.x that
  435.         prevents you from using BASIC for this purpose (fixed under 3.0,
  436.         however).  Under 3.0, the BASIC program would be:
  437.  
  438.                 10 OPEN "BRNDEV" FOR OUTPUT AS #1
  439.                 20 PRINT #1, "@#";
  440.                 30 CLOSE 1
  441.                 40 OPEN "BRNDEV" FOR INPUT AS #1
  442.                 50 BSTAT$ = INPUT$(19,1)
  443.                 60 CLOSE 1
  444.                 70 PRINT "BURNOUT status is "; BSTAT$
  445.  
  446.         Note that we always write an "@#" to the device before reading
  447.         its status.  The @'s function is described as above, to flush
  448.         any unfinished I/O from BRNDEV's buffers.  The # is used for a
  449.         slightly different purpose, however.  It still tells BRNDEV to
  450.         execute any pending commands (but there are none, because the @
  451.         just flushed them).  The second purpose of # is the key one
  452.         here: it tells BRNDEV to prepare for a status request.  When
  453.         BRNDEV sees the #, it examines its current status and puts the
  454.         data into a buffer, from which it will be retrieved when it gets
  455.         the request.  Without the preparatory #, you'll get old data.
  456.  
  457.         The significance of the "19" in the INPUT$ statement is that the
  458.         BRNDEV status report is 19 characters long.
  459.  
  460.         Here's a C example:
  461.  
  462.                 {
  463.                 FILE *burnout, *fopen();
  464.                 static char command[] = "@#";
  465.                 char status[30];
  466.  
  467.                         burnout = fopen("brndev","rw");
  468.                         fwrite(command, 1, strlen(command), burnout);
  469.                         fread (status, 1, 255, burnout);
  470.                         fclose(burnout);
  471.                         printf("BURNOUT status is %s\n", status);
  472.                 }
  473.  
  474.         Note that we requested 255 characters.  DOS, in general, will
  475.         halt a device read when it encounters a carriage return from the
  476.         input stream (unless the device is in "raw" or binary mode).
  477.         BRNDEV makes a habit of sending a CR after the last byte of the
  478.         status report, so this will terminate the read automatically; no
  479.         need to worry about the true length of the report.  BASIC,
  480.         however, will just keep reading until it accumulates the
  481.         requested number of characters, so you do have to be watchful
  482.         there.  The same trick (requesting too many characters) will
  483.         also work in assembler programs (again, see BURNOUT.ASM).
  484.  
  485.         Now, about that bug in DOS 2.x.  It turns out that DOS will mess
  486.         up if you ever request a single byte from an installed character
  487.         device, which is what BRNDEV is.  (Technically: EOF is set on
  488.         the device, and you will not be able to do any further reads
  489.         unless you mess with IOCTL and explicitly reset EOF.)  Thus, the
  490.         following assembler code will NOT work under 2.x:
  491.  
  492.                 mov cx,19         ; Loop for 19 bytes
  493.         Label:
  494.                 push cx           ; Save loop count
  495.                 mov ah,3FH        ; Read from file
  496.                 mov bx,BHandle    ; BRNDEV file handle (from FOPEN)
  497.                 mov cx,1          ; One byte at a time
  498.                 mov dx,offset buf ; Where to put the data
  499.                 int 21H           ; Perform read
  500.                 (do something with the byte)
  501.                 pop cx            ; Recover loop count
  502.                 loop label        ; Loop till 19 bytes read
  503.  
  504.         The first byte will be read OK, but no further input will be
  505.         received.  You MUST read at least 2 bytes at a time.
  506.  
  507.         This bug can be overcome in assembler and C by simply requesting
  508.         the full status report in one read.  However, it appears that
  509.         BASIC requests only one byte at a time, even if you use
  510.         something like INPUT$(19,n).  Reading the second byte then
  511.         results in a READ PAST EOF error.
  512.  
  513.  
  514.         Tricks
  515.         ------
  516.         NOTE:  you will only need to read this section if you are a
  517.         programmer and are interested in controlling the BURNOUT system
  518.         from your own programs.
  519.  
  520.         You can do neat stuff like waiting for the screen to burn out,
  521.         then turning it back on:
  522.  
  523.                 1  REM DEMO PROGRAM TO WAIT UNTIL SCREEN BLANKS
  524.                 2  REM
  525.                 10 OPEN "BRNDEV" FOR OUTPUT AS #1
  526.                 20 OPEN "BRNDEV" FOR INPUT AS #2
  527.                 30 WHILE NOT BURNED.OUT
  528.                 40    PRINT #1,"@#";
  529.                 50    A$ = INPUT$(19,2)
  530.                 60    BURNED.OUT = (MID$(A$,13,1) = "B")
  531.                 70 WEND
  532.                 80 BEEP: PRINT "Burned out!"
  533.                 90 CLOSE 1: CLOSE 2
  534.  
  535.         The 13th character of the status report, "B", will appear in the
  536.         report only when the screen is blanked.
  537.  
  538.         Also, your programs can cancel BURNOUT totally, if desired:
  539.  
  540.                 1  REM DEMO PROGRAM TO DISABLE BURNOUT
  541.                 2  REM
  542.                 10 OPEN "BRNDEV" FOR OUTPUT AS #1
  543.                 20 PRINT #1,"@0#";
  544.                 30 CLOSE 1
  545.  
  546.         (I am not a BASIC programmer, so if any of these demo BASIC
  547.         programs are dumb, someone tell me.)
  548.  
  549.         Naturally, it would be possible (and friendly) to read in the
  550.         BURNOUT parameters, modify them while your program is running,
  551.         and restore the original parameters when you are done.
  552.  
  553.         You can test whether or not BRNDEV is installed in a batch file
  554.         by using the IF EXIST function:
  555.  
  556.                 if exist brndev (do something)
  557.  
  558.         If you use Seaware's Extended Batch Language, you can use this
  559.         test instead:
  560.  
  561.                 bat stateof BRNDEV
  562.                 bat if %r = 0 type BURNOUT IS INSTALLED | goto -A1
  563.                 bat type BURNOUT IS NOT INSTALLED
  564.                 bat -A1
  565.  
  566.         Personal REXX users can try:
  567.  
  568.                 if dosdir('brndev') \= ''
  569.                     then say 'BURNOUT is installed'
  570.  
  571.         If you have a one-floppy machine, you can trick DOS and BAT into
  572.         not checking the second logical drive (and stopping the batch to
  573.         ask you to "Insert diskette for drive B") by using
  574.  
  575.                 if exist a:brndev (in DOS batches)
  576.                 bat stateof A:BRNDEV (in EBL batches)
  577.  
  578.         DOS apparently doesn't care if you prefix a device name with a
  579.         drive ID.
  580.  
  581.  
  582.         Incompatibilities and Problems
  583.         ------------------------------
  584.         I am aware of only a few problems and interactions with other
  585.         programs.  In order for BURNOUT to "see" keyboard and video
  586.         activity, active programs must use ROM BIOS (or DOS, which
  587.         itself uses BIOS) for their keyboard input and video output.  A
  588.         few progams use neither; hence BURNOUT never sees their
  589.         activity, and the screen will be irrevocably blanked.  These
  590.         programs are mostly word processors; two that I know of are
  591.         WordVision and some versions of XyWrite.  You must disable
  592.         BURNOUT before using either of these ("BURNOUT 0" will do the
  593.         trick).  Most people do this in a batch or a PCED synonym:
  594.  
  595.                 (batch file)
  596.                 burnout 0
  597.                 wv
  598.                 burnout 10000
  599.  
  600.                 (PCED)
  601.                 ced syn wv 'burnout 0^*wv^burnout 10000'
  602.  
  603.         There are also problems with some communications programs if you
  604.         use software blanking.  If you are performing an extended length
  605.         file transfer the screen may blank during the transfer.
  606.         Software blanking takes a little time, and communications input
  607.         can be lost while it is being accomplished.  This, of course,
  608.         messes up the transfer.  And Continuous Clear is even worse.
  609.         The solution is to either use hardware blanking, or to disable
  610.         BURNOUT while transfers are taking place.  You MAY be able to
  611.         get away with leaving BURNOUT enabled, but disabling Continuous
  612.         Clear (C-).
  613.  
  614.         Note that the word "BRNDEV" becomes a reserved word to DOS.  You
  615.         cannot name any file BRNDEV (or even BRNDEV.TXT, or whatever).
  616.         DOS won't let you do that.  If you do succeed, you won't be able
  617.         to erase it.  This is why the driver is stored in a file named
  618.         BURNDEV.SYS rather than BRNDEV.SYS.
  619.  
  620.  
  621.         Tick chart
  622.         ----------
  623.         To save wear and tear on your calculator, here are some
  624.         approximate tick counts:
  625.  
  626.                 Minutes   Count
  627.                 -------   -----
  628.                    1       1100
  629.                    2       2200
  630.                    3       3275
  631.                    4       4375
  632.                    5       5450
  633.                    6       6550
  634.                    7       7650
  635.                    8       8725
  636.                    9       9825
  637.                   10      10920
  638.                   20      21850
  639.                   30      32760
  640.                   40      43680
  641.                   50      54600
  642.                   60      65520
  643.  
  644.  
  645.         Copyright/License/Warranty
  646.         --------------------------
  647.         This document and the program files BURNOUT.COM, BURNOUT.ASM,
  648.         and BURNDEV.SYS ("the software") are copyrighted by the author.
  649.         The copyright owner hereby licenses you to:  use the software;
  650.         make as many copies of the program and documentation as you
  651.         wish; give such copies to anyone; and distribute the software
  652.         and documentation via electronic means.  There is no charge for
  653.         any of the above.
  654.  
  655.         However, you are specifically prohibited from charging, or
  656.         requesting donations, for any such copies, however made; and
  657.         from distributing the software and/or documentation with
  658.         commercial products without prior permission.  An exception is
  659.         granted to not-for-profit user's groups, which are authorized to
  660.         charge a small fee (not to exceed $7) for materials, handling,
  661.         postage, and general overhead.  NO FOR-PROFIT ORGANIZATION IS
  662.         AUTHORIZED TO CHARGE ANY AMOUNT FOR DISTRIBUTION OF COPIES OF
  663.         THE SOFTWARE OR DOCUMENTATION, OR TO INCLUDE COPIES OF THE
  664.         SOFTWARE OR DOCUMENTATION WITH SALES OF THEIR OWN PRODUCTS.
  665.  
  666.         THIS INCLUDES A SPECIFIC PROHIBITION AGAINST FOR-PROFIT
  667.         ORGANIZATIONS DISTRIBUTING THE SOFTWARE, EITHER ALONE OR WITH
  668.         OTHER SOFTWARE, AND CHARGING A "HANDLING" OR "MATERIALS" FEE OR
  669.         ANY OTHER SUCH FEE FOR THE DISTRIBUTION.  NO FOR-PROFIT
  670.         ORGANIZATION IS AUTHORIZED TO INCLUDE THE SOFTWARE ON ANY MEDIA
  671.         FOR WHICH MONEY IS CHARGED.  PERIOD.
  672.  
  673.         No copy of the software may be distributed or given away without
  674.         this document; and this notice must not be removed.
  675.  
  676.         There is no warranty of any kind, and the copyright owner is not
  677.         liable for damages of any kind.  By using this free software,
  678.         you agree to this and you acknowledge that you are aware that
  679.         BURNDEV and similar programs can, in some modes, cause physical
  680.         damage to some brands of display adapters.
  681.  
  682.         The software and documentation are:
  683.  
  684.                        Copyright (C) 1985, 1986, 1987 by
  685.  
  686.                             Christopher J. Dunford
  687.                            The Cove Software Group
  688.                                 P.O. Box 1072
  689.                            Columbia, Maryland 21044
  690.  
  691.                                 (301) 992-9371
  692.                         CompuServe 76703,2002 [IBMNET]
  693.