PROGRAM:  Quixx
AUTHOR:   Jonathan Kraidin on 2/90
VERSION:  3.x2 on 02/25/92
LAST VER: 2.43 on 11/17/91
USE:      TSR Screen Animator
REQUIRES: DOS 3.0 or above (might work with 2.1 and below, but not tested)
	  CGA, EGA, VGA
          Extended or Expanded memory strongly recommended
          CGA = 32K, EGA = 64K, VGA = 160K
SOURCE:   ASSEMBLY

AUTHOR'S NOTE:  Literally hundreds of people have been sending mail asking
for user support when necessary.  I am asking that those of you who find Quixx
useful and pleasing to look at rather than a blank, lifeless screen to please
contribute $15 to register yourselves.  The source code is also available, but
only to those who are already registered users for an additional $15.  I think
you will find this an excellent screen animator.  At the end of this listing
is included a terse summary of updates to previous versions.


1. USE:

  This is a TSR program that generates a selected animation routine after a
  given idle period.  The user has a choice of a vapor plasma or warp space
  travel.  With these two animations there are 23 selections.  A simple help
  file can be called by typing QUIXX ? at the DOS prompt.  The program is
  loaded into memory with:

  QUIXX TimeOut Mode

  OR

  QUIXX Special (after the Quixx is already loaded)

  where TimeOut is the idle time in minutes (1 to 99) and Mode is from
  0 to 19.

2. ANIMATION MODES:

  Modes 1 through 15 select a constant color display for the QUIXX
  using a color palatte corresponding to the Mode.  That is Mode 2 = color 2.

  Mode 0 selects an alternating color display.  Every time the Quixx pattern
  bounces off of a wall the color increments.  Mode 16 selects a pattern where
  the colors vary within each line of the Quixx pattern.  This yields a
  constantly changing image as the vapor trail moves.  Mode 17 selects the
  same pattern-type, but in VGA mode19, allowing 256 colors.  The resolution is
  320x200.  Mode 18 is also in VGA mode19, but here the lines of the vapor
  trail are solid.  As a new lines are drawn they go go through all 256 colors.

  Mode 19 is the Glide mode.  Here the Quixx pattern is one color,
  but as the image moves its color goes through a continuous spectrum of 384
  shades.  THIS IS A GREAT MODE.

  SUMMARY OF COLOR MODES:

   Plasmas
   0       Alternating Colors
   1 - 15  Default Colors in Palette
   16      High Resolution Pattern1
   17      Vga Mode19 Pattern1 (320x200)
   18      Vga Mode19 Pattern2
   19      Glide Mode (Recommended Mode)

   Warp Space Travel
   20      Warp Travel  Mode (640x480x16)
   21      Warp Travel1 Mode (640x480x256)    [Super Vga required]
   22      Warp Travel2 Mode (640x480x256)    [Super Vga required]
   (NOTE:  21 and 22 may not be compatible with all Super Vgas)

3. EXAMPLES OF OPTIONS

  The options can be changed at any time by retyping the command.  So if you had
  typed:

  QUIXX 2 15

  selecting a 2 minute time-out using mode 15, and you then type

  QUIXX 5

  you change the timeout to 5 minutes and leave the mode unchanged.
  If you typed

  QUIXX 5 19

  you will have also changed the mode to mode 19.

4. UNLOADING THE TSR

  If you wish to unload the TSR type

  QUIXX r

  This will Remove the TSR from the TSR memory chain, regardless of the number
  of TSRs loaded before or after the QUIXX program.

5. OTHER FEATURES

  A. ENABLE/DISABLE ACTIVITY

  This allows Quixx to remain in memory as a TSR but remain dormant. By typing

  Quixx -

  the user disables the sleep count-down.  The Quixx will never become active.
  By typing

  Quixx +

  the Quixx's sleep count-down is re-enabled.  One can use this feature in a
  BATCH file if you want to selectively enable/disable the Quixx without
  changing the programs in active memory.  REMEMBER, Quixx's interrupts are
  still hooked into the BIOS.

  B. HOT-KEY enable/disable feature.

  One might be within an application and then realize he does not want Quixx
  to be active; yet, it is inconvenient to go back to the command line. By
  hitting the LEFT ALT key twice (ALT ALT) the user can toggle between enabling/
  disabling Quixx from within an application.  For example, if Quixx is active,
  hitting ALT ALT will disable Quixx and the user will hear a quick high
  tone/low tone combination.  By hitting ALT ALT again the user will hear a
  single high-pitch tone reminding him that Quixx is now active.  This is a
  very user friendly option. This option, however, will not work with Windows
  if it uses the mouse and has disabled the keyboard.  In this case, the only
  means of disabling Quixx is from the command line.

  C. SPEED CONTROL OF PATTERN

  The program automatically adjusts its pattern speed to your processor.  The
  user can now over-ride this with the speed control in Version 1.71. By typing

  Quixx f    OR    Quixx s

  the user can speed up or slow down the vapor image. This can be repeated
  multiple times to go really FAST or SLOW.  The user will be informed
  when the limit is reached.  The default speed will be used each time the user
  changes the sleep-period or the image color mode.

  D. EXTENDED/EXPANDED MEMORY SWITCH

  You can switch the memory utilization with the 'x' and 'e' parameter.  By
  typing 'Quixx x' or 'Quixx e' you force Quixx to use extended or expanded
  memory respectively.  This feature can only be used from the command line.

  E. BOSS KEY

  One may not wish others to view information that is on your screen.  By
  hitting the Left CTR key twice (CTR CTR) the screen instantely blanks;
  however, the application is still active.  Hitting any key restores the
  screen.
 
6. POPUP MENU

   Now that you have familiarized yourself with the options you can change
   these features from within any application by activating the PopUp menu.
   This is done my hitting the key F1 twice (F1 F1).  The space bar controls
   the MODE selection; the left and right arrows control animation speed; the
   up and down arrows control idle-time; and the Left ALT control the enable/
   disable switch.  ENTER restores the computer to its previous application.
   The PopUp menu will not work with WINDOWS.

******************************************************************************
COMPATIBLITY NOTES:

IT IS STRONLY RECOMMENDED THAT YOU HAVE EXPANDED OR EXTENDED MEMORY to prevent
memory conflicts when the TSR saves your video screen.  While the program will
use higher memory without EXPANDED memory, the program may crash your system
depending on what applications are running.  This program has worked well using
Expanded Memory with programs like WordPerfect and Harvard Graphics.

Please note, that version 3.x2 and above allocates the required conventional
memory during load-time if no higher memory is available.  Quixx will not
crash your system with other applications; however, some programs will not be
able to run after Quixx reserves it memory.  If you have a VGA Quixx will
take 190K of RAM.

  EXTENDED MEMORY ADDITION

  Quixx will first check for the expanded memory driver; if not found,
  quixx will check for the extended memory driver, HIMEM.SYS.  If none of these
  are found then High Memory is used.  Again, if you see the warning message
  Quixx can cause machine crashes.

  If you wish to run with WINDOWS you need to force Quixx to use extended
  memory.  If Quixx defaults to expanded memory use the 'x' parameter to
  try and force it to use extended memory.

  IF USING EXTENDED MEMORY YOU NEED **** HIMEM.SYS *****
  IF USING EXPANDED YOU NEED AN EXPANDED MEMORY DRIVER MEETING THE LIM SPECS.
  IF YOU DO NOT SEE QUIXX DISPLAY THAT IT RESERVED MEMORY FOR ITSELF THERE
    CAN BE CRASHES!

  If only a CGA is present only the color white is used.  No other modes work.
  Modes 17, 18, and 19 are meant for the VGA and will not work properly on an
  EGA monitor.  Modes 21 and 22 are for the Super Vga and also need a
  multisync monitor.

6. MOUSE SENSING

   Mouse is sensed at COM1, COM2 and PS/2 port. The port is only checked for
   activity if it is present.  If you are using a Bus Mouse there is a chance
   that your mouse will not be sensed if it is NOT an MS Bus Mouse (InPort
   Mouse) or a Mouse Systems Bus Card.  This is because the mouse protocols
   can be different for each manufacturer.

   Because Quixx modifies the execution of its code if a mouse is present
   I suggest that if you are using a mouse to always have the MOUSE.SYS or
   MOUSE.COM file already loaded from your config.sys or autoexec.bat file.
   Otherwise, Quixx may not properly detect your hardware.

7. WINDOWS COMPATABLITY

   The program as of the above date has been tested briefly with Windows 3.0.
   If you are using a mouse on COM 1 or 2 (COM or Bus Mouse) or a PS/2 mouse
   it will be 'sensed' when you move it and Quixx will restore your screen.
   The keyboard will not work if you are using a mouse.

   Quixx only works with WINDOWS if you have EXTENDED MEMORY.  In addition,
   Quixx must be loaded before WINDOWS in order to reserve the necessary
   memory for its screen saves.

   If you are having problems with Windows I suggest you make a BATCH file to
   remove/load Quixx when entering/exiting Windows.  If you are
   EXITING Windows (whether you have a mouse or not) you should use a
   BATCH file that will REMOVE Quixx from memory (Quixx r) and then
   RE-INSTALL it after you are done with Windows. 

8. SOURCE CODE AVAILABILITY

   The assembly source is available on request.  It is several pages long and
   includes four modules:

   1. TSR and DOS interface routines
   2. QUIXX animation routines
   3. Graphics routines/Expaned memory routines
   4. Command line routines

   The code is well commented in most parts and can teach the reader about:

   .non-reentrant TSRs
   .unloading TSRs
   .accessing Video Memory/saving/restoring
   .reading COM ports
   .using Expanded and Extended Memory
   .writing graphics algorithms
   .reading/writing directly to the CGA/EGA/VGA graphics registers

   The program after version 2.40 is shareware. Copying is prohibited without
   permission of the author or registration.  Shareware companies are entitled
   to distribute the program if they make note that this program is not free and
   a $15 registration fee is required.  The source is $15 to registered users
   and well worth it.  If interested write to:

Jonathan Kraidin
6100 City Line Avenue
Apartment 1504
Philadelphia, PA  19131
(215) 878-6666

CIS 72571, 2122

Disclaimer:  The author of this program makes no guarentees to its function,
compatibility with other software or lack of risk in its use.  While Quixx
should not cause any problems, this program is executed at the users own risk
and the author is not responsible for any damages, data loss or problems
resulting directly or indirectly from its use.

In no event shall the author or distributers be liable for any damages
whatsoever (including, without limitation, damages for loss of business
profits, business interruption, loss of business information, or other
pecuniary loss) arising out of the use of or inability to use this product,
even if the author has been advised of the possibility of such damages.

Windows is a product of MicroSoft Corporation.

; Revisions:
; Version 1.0 : Completed in 2/?/90
;          .tsr module
;          .quixx routine
;          .keyboard reentry bug fix (on most computers?)
;          .vga capability added          
;          .expanded memory usage included
;          .tsr unloader included
;          .256 color vga capability added
; Version 1.4 : Completed 4/?/90
;          .initial EGA/VGA registers restored properly    
; Version 1.5 : Completed 11/10/90
;          .glide mode (DAC register manipulation)
; Version 1.6 : Completed 01/15/91
;          .COM1 port monitoring bug for mouse fixed
; Version 1.7 : Completed 03/26/91
;          .Enable/Disable flag entered (Special feature)
; Version 1.71: Completed 04/02/91
;          .User speed control added    (Special feature)
; Version 1.72: Completed 04/29/91
;          .Adjusted mouse movement detection
; Version 2.00: Completed 05/05/91
;          .Extended Memory usage added
;          .graphic screen saving algorithm changed from saving all four planes
;           at each pixel TO saving all data from each plane THEN switching
;           planes.  This speeds up the SAVE and RESTORE screen time by 30%
;          .Extended/Expanded memory allocation for screen saves reduced
;          .VGA19 screen read/restore algorithm tested; bugs fixed
;          .specially hook our INT 8, 9, B and C handlers ahead of all
;           applications when Quixx activated to guarantee we can properly
;           sense keyboard and mouse usage and not worry about other
;           applications interfering with the process
; Version 2.01: Completed 05/14/91
;          .WINDOWS compatable
;          .MS Bus Mouse properly handled
;          .mouse rewrites to screen fixed!
; Version 2.02 and 2.03: Completed 05/16/91
;          .considered case where Extended and Expanded exist
;          .corrected bug if EMS/XMS exist, but insufficient memory
;          .EGA video/expanded memory bug fixed
;          BUGS! BUGS! BUGS!
; Version 2.10: Completed 06/08/91
;          .Compatible with Windows in Enhanced mode (?)
;          .PS/2 mouse now sensed (?)
; Version 2.11: Completed 06/09/91
;          .COM mouse bugs using hardware interrupts fixed
;          .TSR unload feature used to remove mouse handlers and then
;           reload them so that they are at top of chain and continuity is
;           maintained even if several applications are loaded/unloaded
; Version 2.20: Completed 07/22/91
;          .added ability to handle 43/50 line conditions for EGA/VGA monitors
; Version 2.21: Completed 08/17/91
;          .COM1 bug with Windows addressed: response time too slow (CLI/STI)
; Version 2.30: Completed 08/19/91
;          .extended/expanded memory override option added
; Version 2.40: Completed 10/16/91
;          .hot-key enable/disable option added
; Version 2.41: Completed 11/06/91
;          .printer activity bug fixed (Thanx Marvin)
; Version 2.42: Completed 11/17/91
;          .numeric keypad makecodes (double scan codes) accounted for so they
;           are not processed when restoring screen.
; Version 2.43: Completed 11/28/91
;          .BIOS clock bug fixed: CLI instruction removed from video routines
;           and screen 'fix_up' done after QUIXX call instead of within end
;           of INT 9 routine.
;          .Random number Generator revised.
;          .save/restore pagemap register only used with expanded memory.
