home *** CD-ROM | disk | FTP | other *** search
/ World of Graphics / WOGRAPH.BIN / 508.GUIDE.DOC < prev    next >
Text File  |  1992-10-15  |  105KB  |  2,387 lines

  1.                                                             
  2.                               
  3.                               
  4.                     REFERENCE GUIDE FOR:
  5.  
  6.  
  7.               VERSION 7.32  (Oct. 15th, 1992)
  8.  
  9.                              OF
  10.  
  11.  
  12.  
  13.  
  14.  
  15.                             P11
  16.  
  17.  
  18.  
  19.                A GRAPHICS PROGRAM WRITTEN BY:
  20.  
  21.                      RUSSELL D. HOFFMAN
  22.                       P.O. Box 188006
  23.                      CARLSBAD, CA 92009
  24.                        (800) 551-2726
  25.                        (619) 720-7261
  26.                  America Online:RUSSELL DH
  27.                    CompuServe:70743,1226
  28.                               
  29.                               
  30.                               
  31.  
  32.      THE AUTHOR ASSUMES NO RESPONSIBILITIES AS TO THE
  33.     APPLICABILITY OF THIS PROGRAM TO YOUR NEEDS OR THE
  34.  ACCURACY OF ITS FUNCTIONS.  PLEASE NOTIFY THE AUTHOR OF
  35.  ANY INACCURACIES FOUND AND OF ANY DESIRED NEW FEATURES.
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.          CONCEIVED, DESIGNED, WRITTEN AND PRODUCED
  43.    BY RUSSELL D. HOFFMAN IN THE UNITED STATES OF AMERICA.
  44.             PROGRAM COPYRIGHT (c) 1984 to 1992,
  45.    DOCUMENTATION COPYRIGHT (c) 1985 to 1992 by RUSSELL D.
  46.                           HOFFMAN.
  47.                               
  48.                               
  49.                               
  50.                ALL WORLDWIDE RIGHTS RESERVED.
  51.           
  52.      This  release  of  this  product  is  SHAREWARE.    The
  53. shareware concept entitles you to use the product freely for
  54. a limited  time (in  this case, the exact amount of use that
  55. is appropriate is decided by you.)   After deciding you like
  56. it, you  should register  your copy, because that is how the
  57. developer makes  a living  and has  the resources  to create
  58. newer and  better versions.   It  is beneficial  to  you  to
  59. register  for   many  reasons.    First,  you  will  receive
  60. notification of what the current version contains and places
  61. to get  it.   Second, by supporting the project you increase
  62. the quality  of those  future releases.  Third, sometimes we
  63. offer discounts  and special prices on other products so you
  64. save in  the end.   Fourth, you will then be able to use the
  65. product entirely guilt-free!
  66.      Schools may  register  ONE  entire  classroom  for  the
  67. single-user registration fee.
  68.      
  69.      Registration fee:        ONLY  $25.00!
  70.      >>>>>Think of  it as  joining the  P11 Fan  Club if  it
  71. makes you feel better!<<<<<
  72.      Please send just a few of your hard-earned dollars to:
  73.      THE ANIMATED SOFTWARE COMPANY
  74.      P.O. Box 188006
  75.      Carlsbad, CA 92009
  76.      SUPPORT THE  SHAREWARE CONCEPT--KEEP  QUALITY  SOFTWARE
  77. INEXPENSIVE!
  78.           
  79.      
  80.      
  81.      
  82.      TABLE OF CONTENTS:
  83.      
  84.      1)   Introduction
  85.      2)   Overview
  86.      3)   Application Development
  87.      4)   Starting the Program
  88.      5)   Stopping the Program
  89.      6)   Setting Your System Configuration
  90.      7)   Picture and Font Files
  91.      8)   Text and Macro Files
  92.      9)   Print Files
  93.      10)  Auxiliary Files
  94.      11)  Hue Files
  95.      12)  Data Files
  96.      13)  Variables
  97.      14)  A Parachute
  98.      15)  Animating Images
  99.      16)  Branching Within Text Files
  100.      17)  DOS Functions
  101.      18)  A Special Note about Drive Specifications
  102.      19)  BACK UP YOUR FILES REGULARLY!
  103.      20)  Misc. Stuff You Should know
  104.      21)  Initial Variable Values
  105.      22)  Drawing Images (Including Fonts)
  106.      23)  Fonts
  107.      24)  Bitplane Mode Fonts
  108.      25)  Drawing Editor Key Usage
  109.      26)  Vector Drawing
  110.      27)  Vector Frame Editor Key Usage
  111.      28)  Editing Text Files
  112.      29)  Text Editor Key Usage
  113.      30)  Quick Reference Guide--Command Syntax
  114.      
  115.      >>>>>Be  sure   to  also   use  our   other  electronic
  116. documents, including  the  ERRORS  list  and  the  TECHNICAL
  117. REFERENCE, as well as our educational lessons.<<<<<
  118.      
  119.  
  120.                               
  121.  
  122.  
  123.                               
  124.  
  125.  
  126.                         INTRODUCTION
  127.  
  128.      This  program   is  a   multi-faceted  environment  for
  129. creating and  running computer  graphics applications  on an
  130. IBM-PC  hardware  configuration  with  DOS  2.0  or  higher.
  131. Supported input  devices in  addition to  the keyboard are a
  132. Microsoft  or  compatible  mouse,  Summagraphics  1201-A  or
  133. compatible digitizer,  or a  joystick.   The minimum  memory
  134. requirement is roughly 256K for the runtime and 512K for the
  135. editor.   EMM (LIM  version 3.2 or higher) can be used.  For
  136. VGA resolutions  using EMM  is   highly  recommended.    The
  137. program requires  a color  graphics board and color monitor.
  138. It uses most CGA, EGA, and VGA PC-compatible screen modes.
  139.      A runtime  version is  included which you should use to
  140. distribute  your   creations.     Several  utility  programs
  141. (SHOWER.EXE, SCRNSAVE.EXE,  HPRASTER.EXE  and  SHOW_PCX.EXE)
  142. are  also   included.     The  utility   programs  are  self
  143. documented--simply type  the utility program's name and then
  144. at least one space and a question mark, and press return.
  145.      
  146.      
  147.      
  148.      
  149.  
  150.                           OVERVIEW
  151.  
  152.      There are  eight (8)  types of  files that this program
  153. handles.    They  are  distinguished  by  their  extensions:
  154. picture files (extension PIC), font files (FON), text  files
  155. (TXT), macro  files (MAC),  print files  (PRN),  "auxiliary"
  156. files (AUX), data files (DAT), and hue files (HUE).
  157.      There are  several utility  programs  included  in  the
  158. package.  Their use is explained separately.
  159.      Picture and  font files  are collections  of  drawings.
  160. Text and Macro files are command sequences.  Print files are
  161. output-only files.   Auxiliary  files  can  be  read  in  or
  162. written  out   and  contain   alphanumeric  information   in
  163. "numbered storage  locations" ("boxes")  which we  refer  to
  164. throughout this  manual as "auxboxes". Data files are comma-
  165. delimited ASCII  files for  input (records within data files
  166. are separated  by line-feed and carriage-return characters.)
  167. Hue  files  contain  information  used  to  control  display
  168. colors.
  169.      The graphics  editor needs  certain files,  for example
  170. the graphics  interface icons,  that should  be in  the path
  171. \P11 on the current drive.  If you install properly with our
  172. batch files these directories will be set up automatically.
  173.                               
  174.  
  175.  
  176.                               
  177.  
  178.  
  179.                               
  180.  
  181.  
  182.                   APPLICATION DEVELOPMENT
  183.  
  184.      When creating  graphics programs, you will be using the
  185. drawing capabilities  of the  program, or  the text  editing
  186. capabilities, or  going between  the two,  or running a text
  187. file (testing your creation).  Text files may be started and
  188. stopped at  will  and  "single-stepped"  if  desired  during
  189. creation and  debugging.   Picture files can be animated for
  190. viewing while  working  on  them.    Many  commands  can  be
  191. executed in  "instant" mode  (by pressing  Function Key  10)
  192. when working  on either  graphics or  text.   Function  keys
  193. display helpful  information about the current files, and F1
  194. (HELP) will  give you information on what keys are currently
  195. valid and what they do.
  196.  
  197.      
  198.  
  199.                               
  200.  
  201.  
  202.                               
  203.  
  204.  
  205.                               
  206.  
  207.  
  208.                     STARTING THE PROGRAM
  209.  
  210.      The program  MUST start by reading a file.  The default
  211. file name  is "MAINMENU.TXT"  which it  will read  from  the
  212. current drive and current path (directory). It will read any
  213. other text file, if you specify the file name (with optional
  214. drive and directories) on the command line.
  215.      If the  program cannot  find  the  file  specified  (or
  216. MAINMENU.TXT when  no file  was specified) it will display a
  217. message asking you to specify a different drive, path and/or
  218. file name.   If  it finds  the text file it will read it and
  219. begin executing it.
  220.  
  221.      The editor version can begin by reading TXT, PIC or FON
  222. files.   The runtime  version must  start by  reading a  TXT
  223. file.
  224.  
  225.      
  226.      
  227.  
  228.      
  229.  
  230.      
  231.  
  232.                     STOPPING THE PROGRAM
  233.  
  234.  
  235.      Any error  will stop  processing and  display an  error
  236. code unless  an \ON  ERROR trap has been executed.  The user
  237. should press  <F1>, but  pressing <ESCAPE>  three times will
  238. exit the error routine too.  When running a text file errors
  239. will put  you in  the editor,  usually  at  the  spot  where
  240. processing could not continue.
  241.  
  242.      The user  can exit the tutorial at any time by pressing
  243. ESCAPE and  then responding  correctly to  the  prompt  that
  244. follows.  The screen mode will reset to whatever it was when
  245. the program was loaded, and the cursor type will be reset to
  246. the standard  defaults.  If password protection has been set
  247. up, password  checking will  occur before the option to exit
  248. is given.
  249.  
  250.      When the  program ends  the DOS return code is set to 0
  251. if ending was normal and intentional, 1 if an error occurred
  252. and 2  if a  critical (probably  disk) error  occurred.   An
  253. error code  of 3  is theoretically possible if both critical
  254. error and  a program  error occurred.   We've  never seen it
  255. happen, though.
  256.  
  257.      Execution can  be stopped  at any  time by pressing the
  258. ESCAPE key.  When ESCAPE is pressed you are given the option
  259. of ending  the execution of the text file.  This will either
  260. put you in the editor, or return you to DOS if you are using
  261. the runtime  version.    The  escape  key  message  is  non-
  262. destructive, it  will restore  the screen  if processing  is
  263. resumed.
  264.  
  265.      
  266.  
  267.      
  268.  
  269.      
  270.  
  271.      
  272.  
  273.              SETTING YOUR SYSTEM CONFIGURATION
  274.  
  275.      
  276.  
  277.      NOTE:   Unless you  are getting errors telling you that
  278. you have  insufficient memory to run the program, you should
  279. ignore this  section until  you are  ready to fine-tune your
  280. own creations for distribution.
  281.  
  282.      You  can  set  various  "startup"  parameters  for  the
  283. program to  use in  the environment  string P11FLAGS=.  (For
  284. the SHOWER  utility, use  the string name P11SHOW= instead.)
  285. This is done at the DOS prompt or from a batch file with the
  286. SET command (see your DOS documentation.)
  287.  
  288.      Alternately,  you  can  set  these  parameters  on  the
  289. command line  as the  FIRST THING  on the command line after
  290. the program  name and at least one space, in brackets ([,]).
  291. Do not name the string in this case, simply list the desired
  292. variables within the brackets.  Follow the brackets with the
  293. filename you  wish to  start with.   The total length of the
  294. information following  the program  name cannot exceed about
  295. 125 characters.   If environment parameters AND command line
  296. parameters are  both used,  the environment  parameters  are
  297. evaluated first,  then the  command line  parameters,  which
  298. will overlay the equivalent environment parameters.
  299.  
  300.      The primary purpose of all these parameters is to allow
  301. your programs  to run  in  the  minimal  base  (RAM)  memory
  302. possible.
  303.  
  304.      The other  side of  the  coin  is  that  these  startup
  305. parameters effect  what can  be done with the program as you
  306. use it.   For  example if  you make the maximum picture size
  307. very small, you will use less RAM, but on the other hand you
  308. will not  be able  to read  large picture  images.  When you
  309. write an  application for  general distribution,  you should
  310. try to  figure out  the minimal  memory  configuration  your
  311. program needs, then set these variables accordingly in a DOS
  312. batch file and have the user run that batch file to run your
  313. application.   That way,  you ensure that the largest number
  314. of machines will be able to handle your application.
  315.      
  316.      
  317.      Here are  the possible  startup  parameters  and  their
  318.      meanings:
  319.      
  320.      B:#       0 or 1.  Background screen memory area is NOT
  321.      reserved if  set to  0.   Default is 1.  The background
  322.      screen is  used with  masking, and  screen save, and by
  323.      the editor.   When  the program  goes into a new screen
  324.      mode (and  at startup)  the background  screen area  is
  325.      reserved.   This area  can hold  a complete copy of the
  326.      screen.   The size  of the  area depends  on the screen
  327.      mode.  \SAVE SCREEN will save the screen to disk in the
  328.      directory \P11\TEMP  if this  parameter is set to zero,
  329.      otherwise the  screen will  be saved  in the background
  330.      screen area RAM.
  331.           Saving in RAM, though very fast, can take a lot of
  332.      base RAM,  so saving  the screens to disk can be useful
  333.      even though  it is a lot slower.  To do masking (a type
  334.      of animation  technique), you   need  to save  at least
  335.      part of  the screen  in RAM--whatever  parts will  have
  336.      masked images  moving within  them.  To use masking you
  337.      must specify  the lines  which should  be saved in RAM.
  338.      Do this with the \SCREEN command.  If LINES= is are not
  339.      specified and  B: is  zero, the  entire screen  will be
  340.      saved to disk.  If the LINES= option of screen is used,
  341.      then only that portion of the screen will be saved with
  342.      \SAVE SCREEN,  but it  will be saved in RAM and will be
  343.      used by masking operations.
  344.           This option in NOT recommended in most situations:
  345.      It is  slow and  if you  do masking,  it can complicate
  346.      tutorial writing  somewhat.  Only if you will NEVER use
  347.      the background  frame for  any purpose  is this  option
  348.      likely to  be useful,  or if  you have  no other way to
  349.      reduce RAM usage to an acceptable level.
  350.      
  351.      C:#.      16 to 64.  Maximum picture size in K.  (A "K"
  352.      is 1024 bytes.)  Default is 64K.
  353.      
  354.      EMM:#.      Zero means do not use EMM, any other number
  355.      is the  number of pages to use.  Default is -1, use all
  356.      available.
  357.      
  358.      FONT:#     The size of the font area in K (1024 bytes).
  359.      The default  is 20K,  the minimum is 8K, the maximum is
  360.      63K, but  must be equal to or less than whatever C:# is
  361.      set to.
  362.      
  363.      FRAME:#      The maximum number of frames.  The default
  364.      is 1000, but it can be set between 10 and 8000.
  365.      
  366.      SCREEN:#,#,#      This  is  the  same  as  the  \SCREEN
  367.      command, except  you cannot use the MODE=# option. This
  368.      option will  cause the  program to immediately begin in
  369.      the mode you want rather than the default, CGA mode.
  370.      
  371.  
  372.                               
  373.  
  374.  
  375.                               
  376.  
  377.  
  378.                               
  379.  
  380.  
  381.                    PICTURE AND FONT FILES
  382.  
  383.      There are  two types  of drawings available, raster and
  384. vector.   Raster drawings  are images  created on the screen
  385. and saved  as a  block of  memory containing  the horizontal
  386. line-by-line color  values.   This roughly  corresponds to a
  387. sheet of  paper with  an electronic  eraser, airbrush, zoom,
  388. etc.   Raster drawings  are always  rectangular. They do not
  389. change size  no matter  what you  change in  them, just as a
  390. sheet of  paper does not change size no matter what you draw
  391. on it.   In  this program raster drawings can be larger than
  392. the screen; the screen acts as an edit and display window.
  393.      Vector drawings  can be  thought of  as the  dots in  a
  394. connect-the-dot drawing.  Vector images are composed of dots
  395. which you draw.  Vector images change size with each dot you
  396. add or  remove, but  not when  you change  an existing dot's
  397. position or  color.   The order of the dots is important and
  398. affects many functions.  A vector drawing can be larger than
  399. the screen.   Perhaps most importantly, a vector drawing can
  400. be used  as a  path for  other raster  or vector drawings to
  401. follow.   It can  also be  used as a time base for variable-
  402. speed animation.
  403.      Both raster  and vector  frames can  have  base  offset
  404. values and  base  timing  values.    Base  offsets  are  the
  405. standard location  for that  frame on the screen.  The frame
  406. will be  edited and  displayed there  unless you  specify  a
  407. different location.  This is especially helpful if animating
  408. just a small portion of a picture, perhaps a blinking eye or
  409. a mouth  movement.   When displaying  the picture  the  base
  410. offset will  be added  to whatever  position you  specify to
  411. display the image.
  412.      The base timing value is a timing unit that can be used
  413. as a  delay amount  to wait between placing the frame on the
  414. screen and displaying the next frame.  Using the base timing
  415. value is just one option for timing control.
  416.      Picture files store raster or vector pictures, or both.
  417. Individual raster  frames can  be any  size from one (1) dot
  418. across and  one (1)  down to  over 4000 dots across and 4000
  419. down.   (Maximum frame size is about 64K.)  Fonts are raster
  420. drawings and can also be any size, but you have a maximum of
  421. about 63K for an entire font.
  422.      The smaller  you make your drawings the faster they can
  423. move and  the less  room they  take up.    Size  for  raster
  424. drawings is  a product of the X- and Y- lengths plus a small
  425. constant.  For vector drawings it is dependent on the number
  426. of dots  in the drawing plus a constant.  The maximum number
  427. of dots in a vector frame is about 4,000.
  428.      Bitplane fonts  are a little more complicated: refer to
  429. the special instructions later in this document for creating
  430. bitplane fonts.
  431.      
  432.  
  433.      
  434.  
  435.  
  436.                     TEXT AND MACRO FILES
  437.      Text files  and  macro  files  contain  commands  which
  438. control picture display, user input, text to be shown, etc..
  439. Text and  macro files  contain combinations  of text  to  be
  440. shown on  the screen  and commands  to  be  executed.    The
  441. difference between a text line and a command is that command
  442. lines have  a backslash  (\) in  column one  (1).   Multiple
  443. commands can  be placed on one line by simply coding another
  444. backslash.
  445.      The \  (backslash) commands  are a programming language
  446. with  many  special  graphics  commands  which  allow  easy,
  447. flexible control  of the screen.  Other commands provide for
  448. input from  the viewer, speed control, storage and retrieval
  449. of data  and so on.  The program includes an editor that you
  450. can use to create text files.
  451.      Any text editor or word processor can be used to create
  452. text files  PROVIDING you  create  an  ASCII  file  with  no
  453. imbedded non-printable  ASCII characters (the tab character,
  454. for example,  should not  be used.)  Those characters  whose
  455. ASCII code  is less  than 32  or greater  than 127  are  not
  456. permitted except the carriage return/line feed at the end of
  457. each line  (13,10).   Lines can  be  up  to  256  characters
  458. including the cr/lf.
  459.      A sample text file might look like this:
  460.           
  461.           \READ SOMEFONT.FON
  462.           \LOCATE 0,0
  463.           \WIDTH 40
  464.           \HEIGHT 99
  465.           \SCROLL 12
  466.           These are lines of text that will be
  467.           scrolled up the screen in a window
  468.           located in the upper left corner (0,0)
  469.           of the screen and 99 dots high (about
  470.           half the screen in CGA mode), at
  471.            "speed" 12.  The lower the number, the
  472.           FASTER the scroll, with 0 as fast as
  473.           possible.
  474.           \END
  475.           
  476.           
  477.      Each text  file can  be up to about 10K in size and can
  478. call other  text and macro files so there is really no limit
  479. to how  "big" an  application program  can  be.    The  main
  480. difference between  text and  macro files  is that  when you
  481. read in a new text file it overlays the one that was in RAM.
  482. Macros get  stacked "on top of" one another until you either
  483. \CLEAR them  (with the  MACROS option)  or exhaust  the  10K
  484. macro area (which is an error).
  485.      Macros are  created as  text files,  saved to disk, and
  486. then the extension is renamed from .TXT to .MAC.
  487.  
  488.      
  489.                         PRINT FILES
  490.  
  491.      Print files  are output-only  files that can be created
  492. with the  \PRINT statement.   They  are written to disk with
  493. the name  you specify.   They might be used, for example, to
  494. create a  record of what the user did when running a program
  495. you have written.  Print data can go directly to the printer
  496. (LPT1, LPT2,  LPT3) if  it has  been opened  first (see  the
  497. \OPEN command.)
  498.  
  499.      
  500.  
  501.  
  502.      
  503.  
  504.  
  505.                       AUXILIARY FILES
  506.  
  507.      Auxiliary files  are data storage files which will hold
  508. up to about 4K of information in NUMBERED locations which we
  509. call "auxboxes".  Auxbox numbers must be from 1 to 32767 but
  510. since each  auxbox needs  a 4-byte  "header" and contains at
  511. least one  byte of  actual data, not all numbers can be used
  512. at the  same time.   The  auxiliary file  is created or read
  513. into RAM making access very fast.  Locations are referred to
  514. either by a number preceded by a pound sign (#23, #4543, #1)
  515. or by a symbolic name which you assign.
  516.      Auxiliary  locations  can  contain  either  numbers  or
  517. alphanumerics (strings).   Numeric  types can have math done
  518. on them  or be part of mathematical equations.  Alphanumeric
  519. types can  be strung  together (using  \BUILD) or  cut  into
  520. pieces.   The maximum  length of  a non-numeric auxbox is 80
  521. bytes.   Both types can be copied, printed, converted to the
  522. other type,  displayed on  the screen  and used as places to
  523. store user  input.   The entire auxiliary file can be stored
  524. on disk.
  525.      Numeric values  are displayed  using the  standard  DOS
  526. font and  the \CURSOR  command for  position.  Alphanumerics
  527. use the  current font  you have  read into  memory  and  are
  528. positioned with  the \LOCATE  command.   To display  numeric
  529. auxboxes with  the current  font rather  than the  DOS font,
  530. simply use  the \CONVERT command to change them from numeric
  531. to alphanumeric values first.
  532.      Location #32767,  the last, is reserved for the current
  533. time and date.  This location can only be read--it cannot be
  534. written to  or deleted.   It can be referred to as TIME&DATE
  535. (with no  spaces) or  by its  number, #32767, and contains a
  536. twenty-byte formatted  alphanumeric value obtained from DOS.
  537. The format  is MM/DD/YY  HH:MM:SS.hh (hh  is hundredths of a
  538. second.)  In the year 2000 YY will be 00, in 2001 it will be
  539. 01, etc.
  540.  
  541.      
  542.      
  543.  
  544.  
  545.                          HUE FILES
  546.  
  547.      Hue files  contain the  definitions for the displayable
  548. colors for  each mode.  The color components are Red, Green,
  549. and Blue.   Each of these values can be from 0 to 63, giving
  550. 262,144 color  choices. (except  in  EGA  which  limits  the
  551. values to  0 through  15.)   How many of these colors can be
  552. displayed at  one time  is determined  by the current screen
  553. mode and is either 2, 4, 16 or 256.
  554.      Your machine  must be  equipped with  advanced (MCGA or
  555. VGA) video  hardware to  be able  to change the hues, but if
  556. you have  the right hardware you will also be able to change
  557. the hues for CGA and monochrome modes.
  558.      
  559.      
  560.  
  561.                          DATA FILES
  562.  
  563.      Data  files   are  input-only  files  containing  comma
  564. delimited fields  in records  that are delimited by carriage
  565. return/line feed characters (13,10).
  566.      Data files  must be  opened before they can be read and
  567. should be  closed afterwards.   Each \DATA command reads one
  568. record and  transfers the  data to  auxboxes.  See the \DATA
  569. command for more information.
  570.  
  571.                               
  572.  
  573.  
  574.                               
  575.  
  576.  
  577.                          VARIABLES
  578.  
  579.      In addition  to  the  auxiliary  locations,  there  are
  580. twenty-six (26)  internal variables labeled "A" through "Z",
  581. which are  solely for  numerics.   They are  somewhat faster
  582. than auxboxes and remain in RAM when a new AUX file is read.
  583.      Some variables  have special  uses and they MUST NOT be
  584. used in  any  way  that  would  conflict  with  these  uses.
  585. Specifically, variable  "A" is  used  to  store  answers  to
  586. questions you  ask the  program about  current settings (see
  587. below).   Variable "B"  holds the  decimal  value  that  DOS
  588. returns from the last user keypress.  After \MARQUE, \MOUSE,
  589. \RUN and \SHOW, variable "C" contains the number of complete
  590. cycles that occurred.  Variables "D" and "E" hold digitizer,
  591. mouse, or  joystick position  values if these are activated.
  592. Variable "F"  holds the last input device button(s) pressed.
  593. \EXECUTE will  also change  variables "A"  and "C".   Except
  594. when you  need these  features  do  not  use  variables  "A"
  595. through "F".
  596.      At the  start of  the program  most  variables  contain
  597. information about such things as the number of drives in the
  598. machine, the  current drive  being  used,  the  DOS  version
  599. number, etc. (see Initial Variable Values, below.)
  600.  
  601.                               
  602.  
  603.  
  604.                         A PARACHUTE
  605.  
  606.      The program  will not  let you execute any command that
  607. reads in  a hue, text or picture file if it will overlay any
  608. changes.   This protects  you from  accidentally having your
  609. changes destroyed.   You can manually read in new files with
  610. an option to overwrite current changes, or you can save your
  611. changes and then run your text files normally.
  612.      The inability  to accidentally  overlay  changes  is  a
  613. crucial part  of the  program's "philosophy".   For example,
  614. the current  frame you  are drawing  can be restored to it's
  615. previous image by pressing ESCAPE and then responding to the
  616. screen prompts.   The current line in the editor can also be
  617. restored by  pressing ESCAPE.   While editing hues, pictures
  618. and text ESCAPE lets you undo changes that you just made.
  619.      
  620.      
  621.      
  622.  
  623.                       ANIMATING IMAGES
  624.  
  625.      This  program's   command  language  lets  you  animate
  626. pictures and  place  them  on  the  screen.    Commands  are
  627. "instant" or may be stored in text or macro files.
  628.      The simplest  way to  animate frames  is with the \SHOW
  629. command. \SHOW  describes the location on the screen and the
  630. frames to  be displayed.    Frames  are  selected  from  the
  631. current file.  For example:
  632.           
  633.           \SHOW LOCATE=35,45 FRAMES=1,4
  634.           
  635.      would cycle through frames 1, 2, 3 and 4 at location 35
  636. (X-axis), 45  (Y-axis).  The upper left corner of the screen
  637. is location  0,0.   Several other parameters may be included
  638. in this  command.    See  the  command  description  in  the
  639. technical reference for more information about \SHOW.
  640.      Pictures can  also  be  displayed  using  the  \SPRITE,
  641. \SPRINT  and   \RUN  commands.     \SPRITE  sets  up  motion
  642. parameters;.   \SPRINT indicates  which frames should follow
  643. those parameters.   Then  \RUN executes  the  motion-control
  644. sequence.   Over 120  separate elements can be controlled at
  645. once   from a  choice of  over eight  thousand (the  maximum
  646. number of frames in RAM or EMM at one time).
  647.      Paths  for  artwork  can  be  mathematically  described
  648. (increments and  decrements to the current position) or they
  649. can be  the sequential  dots of a vector drawing--any vector
  650. drawing can  be used  as a  path for either raster or vector
  651. drawings.   \SPRITE, \SPRINT,  and \RUN  can also be used to
  652. open or move windows, make images appear at different times,
  653. and much  more.   It is  a powerful animation tool and worth
  654. exploring!
  655.  
  656.                               
  657.  
  658.      
  659.      
  660.      
  661.  
  662.                 BRANCHING WITHIN TEXT FILES
  663.  
  664.      Branching  within   text  files   may  be  conditional,
  665. unconditional or  based on  user input.   A  \X  (paragraph)
  666. command indicates  a place  in a text file which can be used
  667. as a  destination.  Branching commands include \JUMP, \CALL,
  668. \CALLM, \ON  KEY and  \ON ERROR.   A \RETURN ends a "called"
  669. section of  the program  and branches  back to  the  command
  670. after the one where the call occurred.
  671.      The following text file would display the decimal value
  672. for any key pressed in the upper left corner of the screen:
  673.           
  674.           \X STARTING_LINE
  675.           \CURSOR 0,0
  676.           \DISPLAY B
  677.           \JUMP STARTING_LINE
  678.           
  679.      STARTING_LINE is  the name of the place that \JUMP will
  680. go to.  You could use any name.  Branching can occur forward
  681. or back  to anywhere  in  the  text  or  macro  file.    The
  682. following commands  accomplish almost  the  same  thing  but
  683. don't reset the cursor location:
  684.           
  685.           \X A \DIS B \JU A.
  686.           
  687.      Here the paragraph name is "A" and abbreviated forms of
  688. the commands  have been  used (but see the important note on
  689. using (and  not  using)  abbreviations  in  the  section  on
  690. command syntax).
  691.      
  692.      
  693.  
  694.      
  695.  
  696.  
  697.                        DOS FUNCTIONS
  698.  
  699.      The following  DOS functions  are available by pressing
  700. F10 twice:   Copy,  Directory, Rename,  Change default drive
  701. and/or path,  Erase file, a check of available space on disk
  702. drives, and  Execute a  second copy  of DOS  (temporary  DOS
  703. exit).   By exiting  to DOS  you can do just about anything,
  704. including formatting disks, or anything else if you have the
  705. memory available.   (You  should  not  format  disks  unless
  706. absolutely necessary.)
  707.  
  708.                               
  709.  
  710.  
  711.                               
  712.  
  713.  
  714.          A SPECIAL NOTE ABOUT DRIVE SPECIFICATIONS
  715.  
  716.      Because the  26 variables  use single  letters,  drives
  717. must  always   be  specified   with  numbers,  variables  or
  718. auxboxes.   Thus the  command \READ  C:GALLOP.TXT would  not
  719. read from  drive "C"  unless variable  "C" held the value 3.
  720. One way to code this in P11 is \READ 3:GALLOP.TXT.
  721.      Drive (and  path) do  not need  to  be  specified;  the
  722. previous specification will remain valid.
  723.      The exception  to numeric  drive specifications  is for
  724. the file included on the command line during initial program
  725. load. You  can use letters at this point.  This is so that a
  726. "user"  does   not   have   to   work   with   the   numeric
  727. specifications.   For consistency numeric literals (1, 2, 3,
  728. etc.) can also be used on the command line.
  729.  
  730.                               
  731.  
  732.  
  733.                               
  734.  
  735.  
  736.                    BACK UP YOUR FILES!!!
  737.  
  738.      Be sure  to BACK  UP YOUR FILES REGULARLY.  We suggest,
  739. for this  and all  applications where you create new data, a
  740. "staggered rotation"  policy:   Rotate 5 or 6 diskettes more
  741. or less  hourly.   Whenever you  do something  important  or
  742. difficult to reproduce pluck that diskette from the rotation
  743. and set it aside.  Next, rotate 5 or so diskettes on a daily
  744. basis.   Again, pluck and replace with fresh ones as needed.
  745. Do this  on a weekly basis also.  And lastly, do it monthly,
  746. but keep  those forever.   Save  to different  disks.  Don't
  747. just overlay  the saved  version again  and again and again.
  748. Disks are  cheap.   Data (time  and effort) is expensive and
  749. sometimes irreplaceable.
  750.      With a  reliable hard  disk, save  to diskette at least
  751. daily,  and   still  pluck   whenever  you'd  hate  to  redo
  752. something.     You  may  want  to  save  files  to  slightly
  753. different names,  such as  incrementing the  last two digits
  754. (HORSE01.PIC,  HORSE02.PIC,   etc.)  so   you  have  several
  755. versions available  in case you want to go back a few steps.
  756. Print text files regularly.
  757.      An important  aspect of  the program  is that,  by  and
  758. large, you  can press  any key  and nothing  very disastrous
  759. will happen.   To  overwrite changes requires a confirmation
  760. to be sure no major damage will occur.  However, nothing can
  761. save you  from power  spikes, glitches, spilled coffee, etc.
  762. so save your files regularly!
  763.      This program  creates ".BAK"  files.   You should still
  764. save to  slightly different  names  or  different  disks  to
  765. maintain old  and current  data files.   You  can  tell  the
  766. program NOT to rename the current file to .BAK and to simply
  767. overwrite instead.  Note that  all  file  types--font,  hue,
  768. picture, and text--are renamed simply to .BAK, replacing any
  769. .BAK file  of the same name.  So to maintain backup versions
  770. of different types of files be sure to use different names.
  771.      
  772.      
  773.      
  774.  
  775.                 MISC. STUFF YOU SHOULD KNOW
  776.  
  777.      When saving  picture or font files the program will ask
  778. which frames ("from" and "to") are to be saved.  The program
  779. will then  calculate whether  or  not  file  compression  is
  780. feasible  and   if  so,  will  ask  if  you  want  the  file
  781. compressed.   Compressed files  take less space on disk, and
  782. reading and decompressing a file is often faster than simply
  783. reading a  non-compressed file.  This is especially true for
  784. 256-color mode.
  785.      Raster pictures  are  stored  as  "words"  (two  bytes)
  786. horizontally.   This means  that if you specify a width that
  787. is not on a word boundary the program will actually create a
  788. frame the  size of the next word boundary, which in CGA mode
  789. is every eight (8) dots (there are four (4) dots per byte in
  790. CGA mode).   This  has one  important effect:  if you use an
  791. even number  of words (widths of 8,16,24,32, etc.) the \SHOW
  792. command treats  this as  a special  "simple"  case  and  can
  793. display the  frame much  more rapidly than if it has to show
  794. odd dots.  The fastest display possible with this program is
  795. with this method.  The FAST option of \SPRITE also uses this
  796. speedy feature.
  797.      If you  choose to have a mask for your raster frame, it
  798. is automatically  generated while  editing.    The mask is a
  799. very  useful  feature,  because  it  allows  you  to  "bring
  800. forward" a  background image  with the  foreground image you
  801. are displaying.
  802.      The \SHOW  command and  the FAST option of \SPRITE will
  803. automatically use the background screen area as the original
  804. background image.  To use masking, first use \SAVE SCREEN to
  805. save the  screen image into the background screen area, then
  806. display the  foreground frames  you want with \SHOW or \RUN.
  807. If they  have masks,  the masked  area will  come  from  the
  808. background screen.   If  the foreground image is moving, the
  809. frames should be large enough to include the movement.  This
  810. will clear  the old  image when  the new foreground frame is
  811. shown.
  812.      The mask that the program generates will be the inverse
  813. of the  blank (zero)  dots.   Zero color  dots  will  become
  814. "high-value" dots and all other dots will become zero in the
  815. mask.   The mask  can be touched up manually using "E" (edit
  816. mask) in  the picture  editor.   However, if  you  edit  the
  817. picture again a new mask will automatically be created.  You
  818. would then have to manually touch up the mask again.  If you
  819. do manually edit a mask, the only useful color to draw in is
  820. zero (0).   It  has the  effect of  overlaying a  zero-color
  821. portion of an image onto a background.
  822.                               
  823.      It is  important to  remember that  all numbers MUST be
  824. whole numbers  between -32768 and +32767 inclusive.  Numbers
  825. are stored  as signed  "word" (2-byte)  values, which cannot
  826. handle a  greater capacity.   It  is your  responsibility to
  827. ensure that  you code your text files with the understanding
  828. that 32767+1 will wrap around and produce -32768, and so on.
  829.      If using the IBM operating system OS/2, you need to SET
  830. HARDWARE TIMER ON.
  831.                               
  832.                               
  833.                               
  834.      
  835.      
  836.  
  837.                   INITIAL VARIABLE VALUES
  838.  
  839.  
  840.                               
  841.  
  842.  
  843.      Some of  the 26 variables contain initial values at the
  844. start of  the program.   Others  contain  mouse-related  and
  845. keyboard-related values  and change whenever necessary.  You
  846. should not  try to  store values  in the  variables that the
  847. program changes!   Currently  variables  A  through  F  have
  848. special uses.   "B"   is the last keypress, "D" and "E" hold
  849. the current  mouse position,  and "F"  is the  current mouse
  850. buttons pressed.   Variable  "A" is  used by  the program to
  851. store it's  responses to  questions you ask of it.  Variable
  852. "C" contains  the number  of cycles  completed during cycle-
  853. based activities  such as  \RUN, \SHOW,  \MOUSE, \MARQUE and
  854. \WAIT.  \EXECUTE will change variables "A" and "C".
  855.      
  856.      Many parameters  can be  looked at  rather than  set by
  857. using a  question mark  (?) instead  of a  value.    When  a
  858. question mark  is used where a value is expected the current
  859. value of the parameter is put in variable "A".  For example,
  860. the command  \FRAME ?  would put  the total number of frames
  861. currently in memory in variable "A".
  862.      The variables  are assigned the following values at the
  863. start of the program:
  864.  
  865.      
  866. A..Size of  available RAM  memory.  Actually this is the
  867.     size of  the largest  available chunk, normally after
  868.     initial program  load  this  will  be  all  available
  869.     memory.
  870. B..Zero (0).  Immediately accepts keypresses, though.
  871. C..Zero (0).
  872. D..Set by input device.  X-axis location.
  873. E..Set by input device.  Y-axis location.
  874. F..Set by buttons on input device.
  875. G..Major version number of this program.
  876. H..Minor version number of this program.
  877. I..Major version number of the DOS being used.
  878. J..Minor version number of the DOS being used.
  879. K..Current drive (1=A, 2=B, etc.)
  880. L..Maximum number  of drives.   This  number is  derived
  881.     from several  values that DOS supplies and may not be
  882.     correct above  the #  of diskettes  and 1 hard drive.
  883.     You cannot  access a  drive with a value greater than
  884.     this number (1=A, 2=B, etc.).  If it is incorrect try
  885.     reloading the  program using  the highest value drive
  886.     as the default drive.
  887. M..Machine ID.   This number is also provided by DOS and
  888.     for some  "clones" and  "compatibles" it  may not  be
  889.     correct.  For some common machines it's meaning is as
  890.     follows:
  891.  
  892.                     255 - PC
  893.                     254 - PC/XT
  894.                     253 - PCjr.
  895.                     252 - PC/AT (also COMPAQ portable).
  896.                     249 - PC Convertible.
  897.                     154 - COMPAQ-Plus (XT type).
  898.                      45 - COMPAQ (PC type).
  899.  
  900. N..EMM status.   0 if no EMM (in which case variable "O"
  901.     should be  zero (0)  too.) If EMM is available a bit-
  902.     mapped  field   indicating  the   status  information
  903.     returned from the EMM driver software is placed here.
  904.     If this  is NOT  0, the EMM is unusable.  If it is 0,
  905.     EMM is  usable only  if  "O",  #  of  EMM  pages,  is
  906.     nonzero.
  907. O..EMM pages available for pictures.  EMM pages are each
  908.     16384 bytes.
  909. P..Maximum  number  of  frames  allowed.    (set  by  an
  910.     environmental variable, or defaults to 1000.
  911. Q..Maximum  picture   size  (set   by  an  environmental
  912.     variable.)
  913. R..Maximum size of a font file in K, after decompression
  914.     (set by an environmental variable.)
  915. S..Screen mode on entry to the program.
  916. T..Video type (not used by program, yet.)
  917.                     0 -  Probably CGA  (or monochrome) or
  918.     unknown.
  919.                     1 - Monochrome EGA.
  920.                     2 - Color EGA.
  921.                     4 - Color EGA.
  922.                     5 - Monochrome EGA.
  923.                     7 - Monochrome VGA.
  924.                     8 - Color VGA.
  925.      
  926.      
  927.      
  928.      
  929.                               
  930.  
  931.               DRAWING IMAGES (INCLUDING FONTS)
  932.  
  933.      The drawing  editor lets  you edit individual frames in
  934. an animation sequence.  It uses icons which can be "clicked"
  935. on and  off with  the mouse button, or all icon options have
  936. keyboard equivalents.
  937.      To move the cursor in any of eight directions press the
  938. keys that  surround the  "5" key  on the numeric keypad.  Be
  939. sure "Num Lock" is OFF on your keyboard.  Home, Pg Up, Pg Dn
  940. and End move diagonally.  Arrow keys are used for horizontal
  941. and vertical motion.  You can change the distance moved with
  942. each directional keypress by entering a new number using the
  943. numeric keys  above the QWERTY part of the keyboard.  On XT-
  944. style keyboards, toggle between fast movement and single-dot
  945. movement with  the "5"  key on most numeric keypads (or with
  946. another key  you specify with \KEYS).  This allows very fast
  947. keyboard-controlled movement around the screen.
  948.      If you  have a  digitizer, joystick  or mouse,  it will
  949. draw in  the current  color when  button #1 is pressed.  Use
  950. <CTRL>+RETURN to  reverse to  button #1  off means  draw, on
  951. means don't draw.
  952.      When drawing  diagonals be  aware of the SCALING FACTOR
  953. of the  screen.   In CGA  mode this  is approximately 10:12,
  954. assuming a typical screen ASPECT RATIO of 4:3.  When drawing
  955. a diagonal  line the  diagonal movement  is not  a 45-degree
  956. angle; it  simply moves  over-and-up (or whatever direction)
  957. instead.
  958.      The cursor's  numeric X-Y  location can be displayed by
  959. pressing the  space bar.  To toggle off the position display
  960. press the space bar again.  The size of the cursor crosshair
  961. is also varied with the space bar.
  962.      
  963.      
  964.  
  965.                            FONTS
  966.  
  967.      Fonts are created as picture files and then written out
  968. as pictures, fonts, or proportional fonts.  To be written as
  969. a font  you must create the frames as all raster and all the
  970. same height.    Non-proportional  fonts  must  be  on  word-
  971. boundary widths  (multiples of  8 dots wide in CGA mode) and
  972. all frames must be the same width.
  973.      When you  read a  font it  is automatically  put in the
  974. font area--NOT  the picture  area.   If  the  file  is  read
  975. manually (with  F6, not  with a text file \READ command) you
  976. are  then  prompted  as  to  whether  or  not  you  want  it
  977. transferred into the picture area.  You can have a different
  978. font in the font area but you can't edit that one.
  979.      You could  also rename the font as a .PIC file and read
  980. it in that way.  When transferring a font from the font area
  981. to the  picture area  the program will automatically enlarge
  982. the font's frame headers to the size that pictures use.
  983.  
  984.      
  985.  
  986.  
  987.      
  988.  
  989.  
  990.                     BITPLANE MODE FONTS
  991.  
  992.       Bitplane  fonts are  created as  monochrome  bitmapped
  993. fonts and  then the mode byte must be changed using a binary
  994. editor such  as Norton  Utilities.    Do  NOT  try  to  edit
  995. bitplane fonts:    you  must  edit  the  original  bitmapped
  996. monochrome font  or change the mode back to monochrome, edit
  997. it then, and then change it back.
  998.      
  999.      
  1000.      
  1001.      
  1002.  
  1003.                   DRAWING EDITOR KEY USAGE
  1004.  
  1005.  
  1006.                               
  1007.  
  1008.  
  1009. A     Airbrush or  cycled colors  instead of a solid cursor.
  1010.       For cycling, each dot drawn will increment through the
  1011.       chosen cycle  colors.   For airbrush,  area (size) and
  1012.       intensity of  spray are  adjusted with the cursor size
  1013.       keys, +  and -.  When called from the keyboard you can
  1014.       set up  to 10  different colors  to be  airbrushed  or
  1015.       cycled.
  1016.  
  1017. B     Buttons.  Sets the meaning of the buttons available on
  1018.       the input  device.   Also useful  if your input device
  1019.       does not  return  correct  button  values.    For  the
  1020.       keyboard, buttons  are imitated by using quote marks--
  1021.       the left quote mark (`) simulates the left button, the
  1022.       right quote (') the right button, and the double quote
  1023.       ("), both buttons.
  1024. C     Color.   Sets the  current color.  Enter a valid color
  1025.       number for the screen mode you are in, or press return
  1026.       to capture  the color  from the cursor position on the
  1027.       screen.
  1028.  
  1029. D     Dot color of the cursor crosshair. Enter a valid color
  1030.       number for the cursor.  For 256-color mode the highest
  1031.       color values  are not available.  Press return for the
  1032.       program to try to pick a high-contrast color.
  1033.  
  1034. E     Edit the  mask.   The mask  for a  raster frame can be
  1035.       manually edited, but this should ONLY be done when all
  1036.       other changes  to the  frame have  been completed.  If
  1037.       additional changes  are made  to the  frame, the  mask
  1038.       will automatically be recreated.
  1039.  
  1040. F     Flip a  drawing on  the horizontal or vertical axis or
  1041.       both.  Flip on the Y-axis will flip excess dots to the
  1042.       next word  boundary if  you have not set the X-axis to
  1043.       an word  boundary.   However this  area is not stored.
  1044.       Only the  screen image  is affected.   If a box is set
  1045.       only the area in the box is flipped.
  1046.  
  1047. G     Grid.   When two  points are set, a lowercase "g" is a
  1048.       grid of dots, an uppercase "G" is a grid of horizontal
  1049.       and vertical lines.
  1050.  
  1051. H     Hue.   Lets you  change the hue for the current color.
  1052.       This option  will not  function if  your hardware will
  1053.       not support hues.
  1054.  
  1055. J     Joystick reset  to zero.  If your  joystick starts  to
  1056.       wander to one side or another, press this key when you
  1057.       have centered  the joystick  and appropriate  software
  1058.       values will be recalculated.
  1059.  
  1060. L     Line.   Makes the current shape a line when F2 has set
  1061.       a second  point.   Use input  button or  keyboard left
  1062.       quote mark (`) to draw the line.
  1063.  
  1064. M     MAsk, mErge (vector) or Mirror. Three separate options
  1065.       are available  from the  M key. After pressing M press
  1066.       either A (mAsk), E (mErge), or I (mIrror).
  1067.  
  1068.       MAsk. This  is not the same as the mask for the frame.
  1069.       This  simply  masks  the  screen  colors  for  drawing
  1070.       purposes.   Specify a  color not to mask, and you will
  1071.       only be able to draw over that color. All other colors
  1072.       on the  screen cannot  be changed until you toggle off
  1073.       this option by pressing M, then A, then RETURN.
  1074.  
  1075.       MErge.   (Available for  vector only.   See vector key
  1076.       usage.)
  1077.       MIrror. Create  mirror  images  as  you  draw.  Mirror
  1078.       horizontally, vertically,  both, or  in four  sectors.
  1079.       The  current   locked  point,  or  the  screen  center
  1080.       (vector)   or displayed  image center  (raster) can be
  1081.       used as the mirror-line.
  1082.  
  1083. O     Oval.   When F2  has set a second point this makes the
  1084.       current shape  an oval.   A  lowercase "o" is an empty
  1085.       oval, an uppercase "O" is a filled circle.
  1086.  
  1087. P     Pattern.   Any raster  frame may be used as a pattern.
  1088.       The frame  will be  "tiled" from  the  current  locked
  1089.       location when  the option  is called.   (Locations are
  1090.       "locked" by pressing both input device buttons.)
  1091.  
  1092. Q     Rotate.  Vector frames may be rotated between 0 and 90
  1093.       degrees, in 1-degree increments.  Raster frames may be
  1094.       rotated 90  or 180  degrees only.   Rotation may occur
  1095.       around the  current locked  point or the screen center
  1096.       (vector) or  displayed image  center  (raster).    The
  1097.       cursor may  also be  rotated if  it is a star (rosette
  1098.       pattern, from 0 to 359 degrees.
  1099.  
  1100. R     Rectangle.   When F2 has set a second point this makes
  1101.       the current  shape a rectangle.  A lowercase "r" is an
  1102.       empty  rectangle,   an  uppercase   "R"  is  a  filled
  1103.       rectangle.
  1104.  
  1105. S     Scale an image, Star shaped cursor.
  1106.  
  1107.       Scale Lets  your expand  or compress  a drawing.   You
  1108.       will be  prompted for  a multiplicand, which cannot be
  1109.       zero and  must be  less than  255.   Next you  will be
  1110.       asked for  a divisor.   This  also cannot  be zero and
  1111.       must be  less than 255.  The next question asks if you
  1112.       want the X-axis or the Y-axis values changed, or both.
  1113.       If you  are scaling  a vector frame the first and last
  1114.       dots will  not be  changed, and  you can  also set  an
  1115.       offset to  be added  to all positions.  This must be a
  1116.       value between  -4094 and  +4095 inclusive and is added
  1117.       AFTER the  multiplication and division operations have
  1118.       taken place. The command will be canceled if you press
  1119.       ESCAPE or  if any  value is invalid (which may produce
  1120.       an error  message).   The frame  size is  not  changed
  1121.       during this operation.
  1122.  
  1123.       Star lets you set up a very complex star-shaped cursor
  1124.       that can  have from  2  to  360  points.    There  are
  1125.       numerous options  to the  star shape (also referred to
  1126.       in  this  document  as  a  rosette.)    You  can  have
  1127.       concentric shapes,  a spiral,  and many  star and  box
  1128.       shapes, and  all are rotatable and scalable.  The best
  1129.       way to  understand the  star shape  is to play with it
  1130.       for a while.
  1131. T     Tilt allows  you to  slant, bend  or compress drawings
  1132.       along an  axis.   If entered  in "box"  mode  (see  F2
  1133.       below, and  "R" above)  it will  affect only the boxed
  1134.       area including  the dots  along the  box border lines.
  1135.       This option  lets you  shrink or  slant drawings along
  1136.       lines or curves.  Following prompts, you must choose a
  1137.       side, set the line or curve (or use the previous one),
  1138.       and state  whether you  want to  slant or compress the
  1139.       drawing along  the defined  line or  curve.  For large
  1140.       frames on  slow machines this command can take as much
  1141.       as several  minutes.   The tilt  line is stored in the
  1142.       "temporary line  area" and  can be  reused if  nothing
  1143.       else that  uses that  area  is  done  (PAINT  ALL  and
  1144.       \APPEND use that area for their own purposes).
  1145.  
  1146. U     Rosette. If  two points  are  active  this  makes  the
  1147.       current shape  a star pattern, or rosette.  The number
  1148.       of points  and many  other things can be adjusted with
  1149.       the Star option of the "S" key.  A lowercase "u" is an
  1150.       empty pattern and a capital "U" is a filled pattern.
  1151.  
  1152. X     Xor  mode.     Xor   (pronounced   "ecks-or")   is   a
  1153.       mathematical function,  the mathematics  of which  are
  1154.       neither complicated nor important.  Xor will cause all
  1155.       dots that  are written to be "xor'ed" onto the screen.
  1156.       The color that appears will be a function of the color
  1157.       you are  drawing and  the color that is already there.
  1158.       A background  color, having  a mathematical  value  of
  1159.       zero (0),  will xor to NO CHANGE.  This is the way the
  1160.       math works,  so color  zero (0)  is like clear when in
  1161.       xor mode.  A special feature of xor is that if you xor
  1162.       an image  twice in  the same position the second image
  1163.       erases the  first.   The net  result is that it leaves
  1164.       the old  image (whatever  was on  the  screen  before)
  1165.       unchanged.   One important  option of \SPRITE lets you
  1166.       do this automatically.  Press "X" and don't answer the
  1167.       prompt with "Y" to toggle off this function.
  1168.  
  1169. Z     Zoom.   Edit an  enlargement  of  a  local  dot  area.
  1170.       Multiple zoom ratios are available; set the first time
  1171.       you access  zoom, and  reset when needed with <ALT>-Z.
  1172.       Z  pressed   during  zoom   resets  the  current  zoom
  1173.       location.  Press the RETURN key to end zoom.
  1174.  
  1175. <CTRL>+d   Digitizer.   You will be prompted for the port to
  1176.            use (COM1  is the  default but  you can  use COM2
  1177.            also), and  for the  width and  height and offset
  1178.            values for  the digitizer.   Press return for the
  1179.            default values.  (in CGA mode, 328, 318 units.)
  1180.  
  1181. <CTRL>+f   Forward.  Advance one frame.  When advancing past
  1182.            the top  frame it  will cycle around to the first
  1183.            frame.   If image changes exist it will require a
  1184.            confirm.
  1185. <CTRL>+j   Joystick.     The  joystick   provides   relative
  1186.            positions.   When initiated  it will  ask you  to
  1187.            move  the   joystick  to   the   upper-left   and
  1188.            lower-right corners,  and to  press a  key.  When
  1189.            initializing the  joystick this  way, Resolution,
  1190.            and Sample  values are  asked for  (just pressing
  1191.            return uses  low, default  values).  You can also
  1192.            set the joystick to move away from a centerpoint,
  1193.            within the  values given  for resolution.  If you
  1194.            do this,  change the current centerpoint with the
  1195.            asterisk (*)  key.   You will probably find using
  1196.            the joystick  to move  around a  centerpoint  the
  1197.            most effective  way to draw with a joystick.  The
  1198.            joystick can  also be  used  WITH  the  mouse  to
  1199.            rotate and  scale the  cursor if  the cursor is a
  1200.            rosette.   This  can  do  some  really  beautiful
  1201.            patterns very quickly!
  1202.  
  1203. <CTRL>+m   Mouse.   Can only  be initialized if there are no
  1204.            changes to  the current  picture, hue,  and  text
  1205.            files in  RAM,  unless  it  had  been  previously
  1206.            initialized and  then turned  off.   If the mouse
  1207.            software has  been loaded  prior to  loading this
  1208.            program   the   mouse   will   automatically   be
  1209.            initialized.
  1210.  
  1211. <CTRL>+r   Rewind.   Goes back  one frame  (or around to the
  1212.            top if  on the  first frame).   If  image changes
  1213.            exist it will require a confirm.
  1214.  
  1215. <CTRL>+t   Text mode.   Lets  you enter text characters from
  1216.            the current  font.    These  characters  will  be
  1217.            AND'ed, OR'ed, or XOR'ed if in those modes. Press
  1218.            ESCAPE to turn off text mode.
  1219.  
  1220. <CTRL>+<BACKSPACE>  Will shift  the image  back to  the home
  1221.            position (0,0).
  1222.  
  1223. <CTRL>+<END>   Will shift  the position of the graphics face
  1224.            around among  four different  options and "none".
  1225.            The graphics  face is  used for  picking  options
  1226.            with a  mouse or  other input  device.    In  "no
  1227.            graphics face"  mode, use  the keyboard  to  pick
  1228.            drawing options.
  1229.  
  1230. <CTRL>+<HOME>  When you  press the  control key and the Home
  1231.            key (on  the numeric  keypad)  the  area  of  the
  1232.            screen not used by the raster picture is cleared.
  1233.  
  1234. <CTRL>+<RETURN>     Toggles the  drawing mode  for the input
  1235.            device buttons  or for  the keyboard.    Normally
  1236.            button #1  is depressed  to draw, but that can be
  1237.            reversed so that it draws when not pressed.  When
  1238.            not using  any input device, this toggles drawing
  1239.            on and off.
  1240.  
  1241. <CTRL>+<Pg Up> Will shift  the image  up so  that the bottom
  1242.            portion may be edited.
  1243.  
  1244. <CTRL>+<Pg Dn> Will shift  the image  down so  that the  top
  1245.            portion may be edited.
  1246.  
  1247. <CTRL>+<Right Arrow>  Will shift the image right so that the
  1248.            left portion may be edited.
  1249.  
  1250. <CTRL>+<Left Arrow> Will shift  the image  left so  that the
  1251.            right portion may be edited.
  1252.  
  1253. <TAB>, <SHIFT+TAB>  Tab  will   move  the  cursor  into  the
  1254.            picture frame,  shift-tab will  transfer it  from
  1255.            the zoomed  area to  the picture  frame or  vice-
  1256.            versa.
  1257.  
  1258. <SPACE BAR>    Toggles the size of the cursor crosshairs and
  1259.            the numeric display of the cursor position.
  1260.  
  1261. <ESC>      Reset image  to original state or previous state,
  1262.            and reset draw mode options.  If you just entered
  1263.            an "instant"  command, paint-all,  flip, or other
  1264.            "powerful" option or if you have drawn "autosave"
  1265.            number of  dots (see  F8), you  can undo the last
  1266.            change with  ESCAPE.   You can  also undo all the
  1267.            way back  to the  way the  frame was  when it was
  1268.            originally put  on the  screen.  You can undo the
  1269.            undo if you undo it right away (with ESCAPE).  If
  1270.            painting with  the 'ALL'  option pressing  ESCAPE
  1271.            will stop  the process,  though  not  necessarily
  1272.            right away.
  1273.  
  1274. <ALT>+#    # is  a numeric  key above  the QWERTY portion of
  1275.            the keyboard.   Jumps to the frame specified with
  1276.            <ALT>+j.
  1277.  
  1278. <ALT>+j    Sets up  to 10  frames to  instantly jump to with
  1279.            <ALT>+# key combinations.
  1280.  
  1281. <ALT>+k    Keystroke recorder and playback mechanism, active
  1282.            only in the drawing editor.
  1283.  
  1284. <ALT>+o    Turn onion skin editing off, or change the number
  1285.            of layers.
  1286.  
  1287. ( and )    The parenthesis  turns the parabolic cursor shape
  1288.            on and  off.   The parabolic shape can be rotated
  1289.            with the joystick or with "Q" (rotate) option.
  1290. + and -    The plus (+) and minus (-) keys change the cursor
  1291.            size (like changing the size of the pen tip).  In
  1292.            airbrush mode,  they change  the intensity of the
  1293.            spray.
  1294.  
  1295. ',`, and " Tick marks  (quotes)  emulate  the  input  device
  1296.            buttons, button  #1, #2,  and both, respectively.
  1297.            Button #1  (normally the left button) toggles the
  1298.            cursor--touches the  pen  to  the  paper,  so  to
  1299.            speak.   Button #2  lets you  move an object that
  1300.            has two  points away from the second point.  Both
  1301.            buttons #1  and #2  together normally are used to
  1302.            lock the second point.
  1303.  
  1304. |          Vertical dash  lets you set the number of dots to
  1305.            skip when drawing straight lines.
  1306.  
  1307. *          Resets  the   joystick  center   to  the  current
  1308.            location  if  using  the  centered  mode  of  the
  1309.            joystick.
  1310.      
  1311.      Function keys have the following meanings in draw mode:
  1312.  
  1313. <F1>  Help key.   It displays brief descriptions for all the
  1314.       valid keys.
  1315.  
  1316. <F2>  Sets a  second point  for drawing  lines, circles, and
  1317.       rectangles.   The "r/R", "o/O", "u/U", "(/)" and "l/L"
  1318.       keys are  active only  after the  second point is set.
  1319.       These  stand   for  Rectangle,  Oval,  rosette  (u/U),
  1320.       parabola  ((/)),   and  Line,   respectively.      See
  1321.       descriptions of  these keys.   When  set on,  pressing
  1322.       <F2> a  second time  turns off  the second  point.  At
  1323.       this time  if the  current shape  is "R"  you will  be
  1324.       given an  option to  save the  rectangle for redisplay
  1325.       later with <F5>.  This area is very temporary, though.
  1326.       It is destroyed when new picture files are read in and
  1327.       when text files are run.
  1328.  
  1329. <F3>  Lets you  jump to  a new  frame, copy  a frame  to the
  1330.       current frame,  delete the current frame, insert a new
  1331.       frame, or  change the  base location  and timing  of a
  1332.       frame.  When copying a frame the original frame at the
  1333.       "to" location  is completely  overlaid.   Copy, Delete
  1334.       and Insert require confirmation.
  1335.  
  1336. <F4>  Lets you  enter an  "instant"  \DRAW  command  without
  1337.       having to type the "\DRAW" portion of the command.
  1338.  
  1339. <F5>  Will get  a box  that you  saved with F2.  You will be
  1340.       prompted for several things including which corner the
  1341.       cursor is  on and  whether or not to xor the rectangle
  1342.       onto the  screen.   Also, if changes had been made you
  1343.       will be  required to overwrite the frame in RAM before
  1344.       this command  will execute.   It  ends by asking if it
  1345.       should restore the image back from RAM.  This function
  1346.       gives you  a temporary  storage area for a rectangular
  1347.       area of the screen.
  1348.  
  1349. <F6>  (Also discussed  in the Getting Started section.)  The
  1350.       option to  Animate ("A")  can be taken here.  You will
  1351.       be prompted  for the starting and ending frame numbers
  1352.       and those  frames will  be shown.  Animating here will
  1353.       clear current  \SHOW options.   This  "movie"  can  be
  1354.       ended by pressing ESCAPE.
  1355.  
  1356.       Another option  with <F6>  is Save ("S"). You can save
  1357.       picture, font,  hue,  or  text  files.    When  saving
  1358.       pictures and  fonts you  are asked  which frames (from
  1359.       and to)  you want  to save and whether or not you want
  1360.       the file compressed.
  1361.  
  1362.       <F6> also lets you Read ("R") a new Font, Text, Hue or
  1363.       Picture file.  If changes exist that would be overlaid
  1364.       you will  be warned  of this  and given  a  chance  to
  1365.       cancel the read operation.
  1366.  
  1367.       You can  eXit ("X")  back to  DOS with  <F6>.   If  no
  1368.       changes exist  to any files exit will be immediate and
  1369.       without prompts.
  1370.  
  1371.       <F6> twice will quick-transfer from the picture editor
  1372.       to the text editor or vice-versa.
  1373.  
  1374. <F7>  Sets paint  mode.   Paint mode  can be directional and
  1375.       does not  need to  fill an area.  Paint will go in any
  1376.       specified direction  until it  hits a specified border
  1377.       color.   Prompts guide  your selections.  The possible
  1378.       directions are  up,  down,  left,  right,  horizontal,
  1379.       vertical, "both"  (horizontal  and  vertical),  "small
  1380.       square" ("all"  but only within a small box around the
  1381.       current cursor  position), and  "all".  If XOR mode is
  1382.       on, painting  is done  with  XOR.    If  mask  is  on,
  1383.       painting is  done with mask.  Invalid selections or no
  1384.       selections turn  off paint  mode.  To successfully use
  1385.       "ALL" you  should be  sure that  the area  you wish to
  1386.       paint is  completely surrounded  by either  the border
  1387.       color or  the color  you plan  to paint  with.   After
  1388.       setting paint mode to "all" the very next dot you draw
  1389.       is  the  "seed"  and  painting  proceeds  out  in  all
  1390.       directions from  that  point.    The  option  is  then
  1391.       toggled off.   If the screen mask option is activated,
  1392.       it will be used during the paint operation.  PAINT ALL
  1393.       uses the "temporary line area" to accomplish it's task
  1394.       so don't  use this  option when saving a line for tilt
  1395.       purposes.
  1396. <F8>  Adjust cursor  crosshair size,  use frame as cursor or
  1397.       set the  "autosave"  value  (autosave  is  for  raster
  1398.       images only).   You can temporarily use any frame as a
  1399.       cursor.   You can  also adjust  the size of the cursor
  1400.       crosshair to  a new value.  The bigger the cursor, the
  1401.       slower it  moves.   Autosave saves the screen for UNDO
  1402.       purposes after  a specified  number of  dots  or  line
  1403.       segments have  been drawn.  (Line segments count as 3,
  1404.       dots  count   as  one.)    Other  operations  such  as
  1405.       "instant" commands  and paint-all also save the screen
  1406.       and reset  this counter.  The saved screen is restored
  1407.       with ESCAPE.
  1408.  
  1409. <F9>  Displays a  message describing  the size,  base, frame
  1410.       type, etc. for the current frame.
  1411.  
  1412. <F10> Lets you  enter instant commands and is described more
  1413.       fully in the Technical Reference.
  1414.  
  1415.  
  1416.  
  1417.  
  1418.  
  1419.  
  1420.  
  1421.                               
  1422.  
  1423.  
  1424.                        VECTOR DRAWING
  1425.  
  1426.  
  1427.                               
  1428.  
  1429.      The creation  of vector  (or "connect-the-dots") frames
  1430. differs from  that of  raster images  in several ways.  When
  1431. creating a  vector frame  you specify  the number of dots in
  1432. the image.   To  increase this  size later  you will have to
  1433. copy the image to a larger frame.  To truncate a lot of dots
  1434. (due perhaps  to an  overestimate of the number needed for a
  1435. specific image)  you may want to copy the frame to a smaller
  1436. vector image.   To  delete a dot use the <DEL> key.  It will
  1437. beep as each dot is removed.  If you have deleted dots, they
  1438. may be  added again  until the  image is the same size as it
  1439. was prior to editing.
  1440.      In  a   vector  drawing,  the  order  of  the  dots  is
  1441. important.  The first and last dots of vector images are not
  1442. actually part  of the  image.  They  are  only  shown  while
  1443. editing and  do not  appear while  running sprites  or  when
  1444. using \SHOW.   Their purpose is to define the upper-left and
  1445. lower-right corners  of the  drawing, respectively.  It is a
  1446. good idea to put these points as close to the corners of the
  1447. rectangle that  would hold a vector image as possible.  This
  1448. will allow  images which  are off  the screen or outside the
  1449. viewed window  during sprite  operations not be searched dot
  1450. by dot for dots that should be displayed.  This may increase
  1451. display speed  significantly.   0,0 is a common location for
  1452. the first  dot, and  the screen lower right (or 0,0) for the
  1453. last.   However,  interesting  and  useful  effects  can  be
  1454. achieved by  positioning these  endpoints elsewhere.   These
  1455. two dots  have NO function when \SHOW is used--they are only
  1456. important when  the image  is shown with the \SPRITE method.
  1457. The dot  color of  the first and last dots is irrelevant but
  1458. must be used to enter the dot anyway.
  1459.      When you  choose a color, dots of that color are drawn.
  1460. This replaces  the old  dot unless  you are  in "insert dot"
  1461. mode (toggled  with the  "Ins" key).  Insert mode pushes all
  1462. dots above  the current  dot in  the image  up  one  in  the
  1463. sequence and the top dot falls out.
  1464.      On the  right side  of the  bottom line  are characters
  1465. indicating the  current status  of various  modes, including
  1466. information display  mode, insert  mode  and  image  display
  1467. mode.
  1468.      Dot location  coordinate values must be less than 4096.
  1469. If they  become larger  they will  be "clipped".    Clipping
  1470. involves "masking out" the high-order binary bits, which has
  1471. the effect  of subtracting  4096 repeatedly  until the value
  1472. becomes less than 4096.
  1473.      For vector images, a crosshair appears for the existing
  1474. current dot as well as for the cursor.  This is the dot that
  1475. would be  replaced if you write a new dot, or that a new dot
  1476. would be written in front of if you are in insert dot mode.
  1477.  
  1478.                               
  1479.  
  1480.  
  1481.  
  1482.  
  1483.                VECTOR FRAME EDITOR KEY USAGE
  1484.  
  1485.  
  1486.  
  1487.  
  1488. E     Eliminate dots.   You can eliminate duplicate adjacent
  1489.       dots, all  duplicate dots,  all dots  of  a  specified
  1490.       color, or  all off-screen  dots.   The first  and last
  1491.       dots are  not effected  by  this  option.    Duplicate
  1492.       adjacent dots  are dots of the same color and location
  1493.       which are  sequentially next  to  each  other  in  the
  1494.       image.
  1495.  
  1496. I     Invert frame.    Switches  the  second  dot  with  the
  1497.       penultimate dot, the third with the third from the end
  1498.       and so on.  Will not invert the first and last dots of
  1499.       the image.  This reverses the order of the dots.
  1500.  
  1501. K     Keep dot  position.   Toggles "Color  Only" mode.   In
  1502.       this mode only the color of the vector dot is changed,
  1503.       not the position.  If in Xor mode ("X"), the new color
  1504.       will be  the  mathematical  Xor  product  of  whatever
  1505.       colors are  involved in the operation (see "X").  When
  1506.       on,  the   current  cursor   position  is  irrelevant.
  1507.       However you  will  have  to  move  the  cursor  anyway
  1508.       because the editor waits for the position to change to
  1509.       enter a new dot.
  1510.  
  1511. M     Merge, Mask,  Mirror. Merge  another vector image with
  1512.       the  current  frame  above  the  current  dot.    This
  1513.       overlays the  dot after  the current  dot and  as many
  1514.       subsequent dots  as needed  to copy the frame. It will
  1515.       stop when either frame reaches the second-to-last dot.
  1516.       It will NOT merge the other frame's first or last dots
  1517.       nor overlay this  frame's first or last dots.  Current
  1518.       cursor location  determines placement  of  the  merged
  1519.       image.
  1520.  
  1521. V     Toggles the  display itself and is a three-way toggle.
  1522.       It also  puts a  code in the lower right corner of the
  1523.       screen: it will show "P" if it is toggled to only show
  1524.       the image  up to the current dot (a partial image), it
  1525.       will show "A" (for "all") if it is toggled to show all
  1526.       of the  vector image.  An "N" means do not display the
  1527.       drawing at  all. <CTRL>+<HOME>  will clear  the screen
  1528.       and restore  the image according to the setting of the
  1529.       display mode.
  1530.  
  1531. , or < & . or >     The comma  (,) or less than sign (<) and
  1532.       period (.) or greater than sign (>) advance and rewind
  1533.       through individual vector dots.  Editing begins at the
  1534.       current dot.
  1535.  
  1536. #     The current  vector dot  is normally  displayed on the
  1537.       bottom line  whenever it  is changed,  but this can be
  1538.       toggled off with the "#" key.
  1539.  
  1540. <INS> Insert Dot mode.  When a dot is drawn and this mode is
  1541.       on, a  new dot  is inserted  at the  current location.
  1542.       All dots  above the  current dot  are upped one dot in
  1543.       the sequence and the top one falls out.  "Ins" toggles
  1544.       off options "X" and F7.
  1545.  
  1546. <DEL> Delete  the  current  dot  with  a  "Y"  confirmation.
  1547.       Pressing "Y"  repeatedly deletes  additional dots (the
  1548.       frame must  be at  least one dot).  Pressing the "Del"
  1549.       key toggles off options F7, "X", and "Ins".
  1550.  
  1551. <F4>  Finds the next dot at the current location (F) or lets
  1552.       you jump  to a  different dot within an image (J).  If
  1553.       finding a  dot at the current cursor location the last
  1554.       dot in the image will become the current dot if no dot
  1555.       is found.
  1556.  
  1557.  
  1558.  
  1559.  
  1560.  
  1561.  
  1562.                      EDITING TEXT FILES
  1563.  
  1564.  
  1565.                               
  1566.  
  1567.      Text files  are created  with the  text editor,  or any
  1568. word processor.   Within  text files  all commands  MUST  BE
  1569. CAPITALIZED and  have a backslash ("\") in column one.  This
  1570. indicates the  line is a command line.  Occasionally you may
  1571. not  want   all  parts   of  a   command  line  capitalized.
  1572. Specifically,  items   inside   of   quote   marks,   called
  1573. alphanumeric literals, need not be capitalized.
  1574.         Lines are  scrolled up within the text window.  When
  1575. you start,  the window  is about  a third of the screen high
  1576. (the bottom  third.)   An option  of F2  lets you  move this
  1577. window.   The top  line in  the window  is used  for certain
  1578. editing messages.
  1579.      Only ASCII  character values  from 32  to 127 are valid
  1580. within a  line.   Invalid keys  will beep  (unless you  have
  1581. turned off sound).
  1582.      To test-run  your text  file, press  the Home key three
  1583. times to  go to  the beginning  of the  file, then press F6,
  1584. then "R"  to Run  the file.  You may want to save it to disk
  1585. first.  When you exit a running text file you will be on the
  1586. last line executed.
  1587.  
  1588.                               
  1589.  
  1590.  
  1591.  
  1592.  
  1593.  
  1594.  
  1595.                    TEXT EDITOR KEY USAGE
  1596.  
  1597.  
  1598.  
  1599.  
  1600. <F1>  Help using the text editor.
  1601.  
  1602. <F2>  Editor options.   Press  a second  key to  invoke  the
  1603.       option.  Options are listed below.
  1604.  
  1605. <F3>  First space after the last character in the line.
  1606.  
  1607. <F4>  Gets the  last deleted  line from  the delete  buffer.
  1608.       The next  time you press F4 you'll get the line before
  1609.       that, etc.  for about 400 bytes.  Each time you repeat
  1610.       F4, the  next deleted  line is  placed in  the current
  1611.       line at  the current location.  Pressing any other key
  1612.       accepts the deleted line into the current line.
  1613.  
  1614. <F5>  Beginning of the line.
  1615.  
  1616. <F6>  Lets you save a file or name a new file.  Also you can
  1617.       run the  text file  from the  current line or from the
  1618.       beginning of  the file.  You can exit to DOS either by
  1619.       naming a file with the first four characters "EXIT" or
  1620.       by taking  the "X"  option  of  <F6>.    Use  <F6>  to
  1621.       transfer  to  the  picture  editor.    F6  twice  will
  1622.       immediately transfer to the picture editor.
  1623.  
  1624. <F7>  End of the line.
  1625.  
  1626. <F8>  Gets the  last line entered from the buffer.  It works
  1627.       just like <F4> but from the "accepted line" buffer.
  1628.  
  1629. <F9>  Will either put you at the last cursor position of the
  1630.       previous edited line or, if an error occurred, it will
  1631.       put you at the error spot (or try to).  This will ONLY
  1632.       happen  if   you  enter  the  line  immediately  after
  1633.       returning to the editor due to an error.
  1634.  
  1635. <F10> Lets you  enter an  "instant" command.   Pressed twice
  1636.       gives you  DOS options  as described  in the Technical
  1637.       Reference.
  1638.  
  1639. <HOME> Once goes  to the  beginning of the line.  Twice in a
  1640.       row goes  to the  top of  the text area on the screen.
  1641.       Three times in a row goes to the start of the file.
  1642.  
  1643. <END> Once goes to the end of the line.  Twice in a row goes
  1644.       to the  bottom of  the text area on the screen.  Three
  1645.       times in a row goes to the end of the file.
  1646.  
  1647. <Left arrow>,  <Right arrow>  move the cursor one space left
  1648.       or  right.
  1649.  
  1650. <Up arrow>,  <Down arrow>  move the  cursor up  or down  one
  1651.       line.
  1652.  
  1653. <END> Puts you  at the  first space after the last character
  1654.       in the line.
  1655.  
  1656. <LEFT SHIFT>+<Tab>, <RIGHT SHIFT>+<Tab> Moves the  cursor  8
  1657.       places to the right, or 8 places to the left.
  1658.  
  1659. <INS> Insert mode.   Characters  beyond the  current  cursor
  1660.       location are shifted right one character.  The program
  1661.       beeps if the end character would be shifted out of the
  1662.       line.  Cursor position is incremented.
  1663. <DEL> Deletes the  character that the cursor is on and moves
  1664.       all characters  that are  to the  right of the deleted
  1665.       character left one position.
  1666.  
  1667. <PG UP>  Scrolls the  text area  up one page.  The number of
  1668.       lines this is depends on the size of the text window.
  1669.  
  1670. <PG DN>  Scrolls the text area down one page.
  1671.  
  1672. <BACKSPACE> (Signified  by a  left-pointing  arrow  on  most
  1673.       keyboards.)  Will delete the character to the left and
  1674.       move the  cursor left  one position.  It will not move
  1675.       any other characters.
  1676.  
  1677. <CTRL>+<LEFT ARROW>  (on the four) will move the cursor left
  1678.       one word.
  1679.  
  1680. <CTRL>+<RIGHT ARROW> (on the six) will move the cursor right
  1681.       one word.
  1682.  
  1683. <CTRL>+r searches  in the  current direction  for  the  next
  1684.       occurrence of  a string.  If found  it  replaces  that
  1685.       string and  places the  cursor at  the  start  of  the
  1686.       string.
  1687.  
  1688. <CTRL>+s searches  in the  current direction  for  the  next
  1689.       occurrence of  a string.  If found  it will put you at
  1690.       the start of the string.
  1691.  
  1692. <CTRL>+<RETURN> will   divide the line into two lines at the
  1693.       cursor position.
  1694.  
  1695. <CTRL>+<HOME> once  clears the  text area,  twice clears the
  1696.       whole screen.   Pressing <CTRL>-Home a third time will
  1697.       restore the non-text area of the screen.
  1698.  
  1699.  
  1700.      <ALT>+Function key combinations and <CTRL>+Function key
  1701. combinations can be used to save and retrieve strings:
  1702.  
  1703. <CTRL>+Function Key  gets a string of that length (<F1> = 1,
  1704.       <F2> =  2, <F10>  = 10, etc.) beginning at the current
  1705.       cursor position and saves it in a special buffer.  The
  1706.       cursor is  moved forward to the end of the string.  To
  1707.       retrieve saved strings press <ALT>+function key.
  1708.  
  1709. <ALT>+Function  Key   will   get   a   string   saved   with
  1710.       <CTRL>+function  key   and  put   it  at  the  current
  1711.       position. If  you are in Insert Character mode it will
  1712.       insert the string.  These strings are initially spaces
  1713.       until you  reset them  with  the  <CTRL>+function  key
  1714.       combination.
  1715.      
  1716.      When entering numeric data, including when you have the
  1717. user enter a number, the program will not allow you to enter
  1718. non-numerics  except   a  minus  (-)  sign  in  the  leading
  1719. position.   However with  the arrow  and function keys it is
  1720. possible to  create an  invalid value  (for example,  23  45
  1721. could be  entered.)  This program will ignore the part after
  1722. the space  in such  a number.  You cannot  enter  a  decimal
  1723. point, since all numbers in this program are whole numbers.
  1724.      
  1725.      
  1726.      
  1727.  
  1728. <F2>  Has the  following options  (this list  appears on the
  1729.       top line of the text window when F2 is pressed):
  1730.                               
  1731.                 <F1>,<F2>,B,C,D,J,M,P,R,S,T
  1732.                               
  1733.        Your response is capitalized and has the following
  1734.                          meanings:
  1735.  
  1736. <F1>  Help.   Lists the meanings of all the keys that can be
  1737.       used with <F2>.
  1738.  
  1739. <F2>  Information.   Pressing F2  twice in  succession  will
  1740.       display information  which may  be useful in debugging
  1741.       text files.   Variables "A" through "Z" are displayed.
  1742.       The sizes  of the  text  file,  the  macro  area,  the
  1743.       auxiliary file,  and the  symbolic names  storage area
  1744.       are  displayed.     The   last  two  error  codes  are
  1745.       displayed.   All auxboxes  and  their  names  will  be
  1746.       displayed.   Press any  key (except ESCAPE) to advance
  1747.       to the  next screen  of information.  The last  auxbox
  1748.       holds the  time and date.  This box will be constantly
  1749.       changing  to   reflect  the  current  time  and  date.
  1750.       Although hundredths of a second are kept, they are not
  1751.       entirely accurate because DOS does not update the time
  1752.       that frequently.  (DOS updates the time about 18 times
  1753.       per second.)  Press ESCAPE to return to the editor.
  1754.  
  1755. B     Block edge  mark.   This option is used in conjunction
  1756.       with C,  D and  M to  accomplish block copies, deletes
  1757.       and moves.  First the starting and ending lines of the
  1758.       block are delineated, then the block is either copied,
  1759.       deleted, or  moved.  To mark the block put yourself at
  1760.       the line  you want  to start the block on.  Press <F2>
  1761.       and then B.  A message indicating a block endpoint has
  1762.       been marked  will appear.   Next move the cursor up or
  1763.       down to  the other  end of  the block and press F2 and
  1764.       then B  again.   The  lines  between  the  two  marks,
  1765.       including the  lines the  marks are  on, are now ready
  1766.       for moving  or copying. To copy or move a single line,
  1767.       place both marks on that line.  Move the cursor to the
  1768.       line you wish to move or copy the block to, then press
  1769.       <F2> and  then M  or C,  or just  press <F2>  and D to
  1770.       delete a  line.    You  cannot  make  editing  changes
  1771.       between the  time when  you start  setting a block and
  1772.       when you move/copy/delete it.
  1773.  
  1774. C     Copy a block.  Used with the B option explained above.
  1775.  
  1776. D     Delete line  mode.   Deletes the current line and puts
  1777.       it in  the delete-line  buffer.   Deleted lines can be
  1778.       retrieved with  F4.   You can  delete additional lines
  1779.       with "y".   A  message  indicating  this  will  appear
  1780.       within the line after the first line is deleted.  This
  1781.       message overlays  the line  and appears to the left of
  1782.       the line number.  The message is non-destructive.
  1783.  
  1784. J     Jump to a line number.
  1785.  
  1786. M     Move block.  Used with the B option explained above.
  1787.  
  1788. P     Print.   Lets you  print out the text file or a marked
  1789.       block of  text.   You will  be prompted for one or two
  1790.       options.   The defaults  will print  line numbers, the
  1791.       name and  size of  the file,  and the  time and  date.
  1792.       While printing  you cannot do anything else.  Pressing
  1793.       any key  will give  you the  opportunity to cancel the
  1794.       print request.
  1795.  
  1796. R     Replace.   You will be prompted for a string to search
  1797.       for and  a replacement  string.   You will be given an
  1798.       opportunity to  replace all  occurrences in  the  text
  1799.       file or  just the  first one found.  <CTRL>+r will let
  1800.       you replace  the next  occurrence.  The search ignores
  1801.       case. If you choose global replacement it will be from
  1802.       the current  cursor location  forward (or back) to the
  1803.       end (beginning)  of the  file.   An asterisk  (*) is a
  1804.       wild-card character  in  the  search  portion  of  the
  1805.       search/replace.
  1806.  
  1807. S     Search.   You will  be prompted  for a  search string.
  1808.       Ignores case.   To  search for  the next matching item
  1809.       press <CTRL>+s.   To  start the search over again from
  1810.       the beginning  of the file press the Home key and then
  1811.       <CTRL>+s.  A failure to find a match will leave you on
  1812.       the last line of the file.  A find will put the cursor
  1813.       in the  line at  the beginning  of  the  string.    An
  1814.       asterisk (*) is a wild-card character.
  1815.  
  1816. T     Text window size.  This allows you to set the size and
  1817.       location of  the text  editor window.    \SCREEN  will
  1818.       reset this to the default area.
  1819.      
  1820.      
  1821.      
  1822.      
  1823.                        COMMAND SYNTAX
  1824.  
  1825.      
  1826.      See  the   section  on  commands  and  syntax  and  the
  1827. beginning of  the alphabetical listing of all commands for a
  1828. complete description  of syntax requirements and the meaning
  1829. of the symbols that appear below.  This guide should be used
  1830. in conjunction  with the  main technical reference which has
  1831. more complete descriptions of each command.
  1832.      Briefly, anywhere  a pound sign appears, you can code a
  1833. variable, a  number, or  a  numeric  auxbox  if  the  syntax
  1834. requires a  number, or  it could  also  be  an  alphanumeric
  1835. auxbox, a  mathematical  expression  such  as  (X+Y),  or  a
  1836. literal inside  single or double quotes if the syntax allows
  1837. it.    Things  in braces  are optional, though sometimes you
  1838. must choose  from  a  set.    Brackets  when  listed  should
  1839. immediately follow  the auxbox name or number they accompany
  1840. with no  intervening spaces.   They  denote  strings  within
  1841. alphanumeric  auxboxes.    All  command  words  and  keyword
  1842. parameters are  separated by  at least one space; values are
  1843. generally separated by commas and no spaces.
  1844.  
  1845.  
  1846.  
  1847. ACTIVATE  \ACTIVATE {SCREEN #}
  1848.              Activates the  background screen  for  creating
  1849.              complex images.   The background screen is also
  1850.              used for MASK operations during \SHOW and \RUN.
  1851.              Any  error,  even  if  trapped,  will  activate
  1852.              screen 0.
  1853.  
  1854. ADD       \ADD # TO #
  1855.              Adds the first value to the second value.  Will
  1856.              "wrap around"  if the  result is  greater  than
  1857.              32767 or less than -32768.
  1858.  
  1859. APPEND    \APPEND NNNNNNNN.PIC #,#
  1860.              Appends frames  from the  named picture file to
  1861.              the current  picture file  in RAM  or EMM.  The
  1862.              #'s are  the "from"  and "to"  frames to append
  1863.              from within  the picture.   Use  1,-1 to append
  1864.              all the frames.  The total number appended will
  1865.              be in variable "A".
  1866.  
  1867. AUTHORITY \AUTHORITY {HIGH}
  1868.              Allows the \OUT command to work.
  1869.  
  1870. BEEP      \BEEP {#,#}
  1871.              Beeps the speaker for duration # at tone #.
  1872.  
  1873. BLANK     \BLANK #,#,#,#
  1874.              Blanks the  screen from X-low, Y-low to X-high,
  1875.              Y-high.  X-low <= X-high and Y-low <= Y-high.
  1876. BREAK     \BREAK {ON} or OFF
  1877.              Puts program in single-step mode for debugging.
  1878.  
  1879. BUILD     \BUILD #=#{,#,# etc.}
  1880.              Builds   alphanumeric   auxboxes   from   other
  1881.              auxboxes  and   literals.    Maximum  80  bytes
  1882.              altogether.
  1883.  
  1884. BUTTON    \BUTTON 1=# 2=# 3=# ... 7=# or 0
  1885.              Assigns  key  values  to  input  device  button
  1886.              presses or  if zero,  asks the  user  to  press
  1887.              buttons for assignment.
  1888.  
  1889. CALL      \CALL NNNNNN
  1890.              Sends processing  to the named paragraph (up to
  1891.              30 characters long).  A \RETURN will then cause
  1892.              processing to  go to  the  command  immediately
  1893.              after the \CALL.
  1894.  
  1895. CALLM     \CALLM NNNNNN
  1896.              Sends processing  to the named paragraph in the
  1897.              macro area.   Similar to \CALL but specifically
  1898.              calls paragraphs in the macro area.
  1899.  
  1900. CIRCLE    \CIRCLE ANGLE=#,# COLOR=# LOCATION=#,# RADIUS=#,#
  1901.              Draws a  circle.  Angle draws a partial circle.
  1902.              The angle  is "true"  only for radii that match
  1903.              the dot  scaling factor,  which in  CGA is 1 to
  1904.              1.20 assuming a standard monitor's aspect ratio
  1905.              (usually 4:3).
  1906.  
  1907. CLEAR     \CLEAR {KEYBOARD, MACROS, MOUSE, NAMES, ON ERROR,
  1908.           ON KEYS, PICTURES, SCREEN, SHOW, SPRITES or SPRITE
  1909.           #}
  1910.              Resets to  the default  values for that option.
  1911.              Use only one option at a time.
  1912.  
  1913. CLOCK     \CLOCK SPEED=# CURSOR=#,#
  1914.           FORMAT={HH:MM:SS,MM:SS,HH:MM,SS}
  1915.              Sets  the  clock  speed  for  the  asynchronous
  1916.              internal clock, or sets the cursor location and
  1917.              format for an on-screen current time display.
  1918.  
  1919. CLOSE     \CLOSE NNNNNNNN.EXT or LPT#:
  1920.              Closes a  print file  (extension  PRN)  or  the
  1921.              system printer  (LPT1, 2  or 3), or a data file
  1922.              (DAT), or a disk-based animation file (PIC).
  1923.  
  1924. CONNECT   \CONNECT {YES or ON} or {NO or OFF}
  1925.              Turns the  connected-dot mode of vector drawing
  1926.              on and  off.   If no  parameters are entered it
  1927.              turns option  on.  Effects draw mode and \SHOW.
  1928.              Use \SPRITE  CONNECT=ON to  have connected line
  1929.              segments in \RUN.
  1930. CONVERT   \CONVERT #
  1931.              Changes an  auxbox from numeric to alphanumeric
  1932.              or from alphanumeric to numeric.
  1933.  
  1934. CRAWL     \CRAWL #{,{AOX},#}
  1935.              Sets text  display mode  to CRAWL from right to
  1936.              left.
  1937.  
  1938. CURSOR    \CURSOR #,#{,#,#}
  1939.              Sets the  cursor for user input and for numeric
  1940.              display.   First value  is the  column (X-axis)
  1941.              and second  value is the row (Y-axis).  If four
  1942.              values are  specified this  forms a  window for
  1943.              user input.  The upper left corner is 0,0.
  1944.  
  1945. DATA      \DATA #{,#,#...}
  1946.              Reads data  (input fields)  from an  \OPENed
  1947.              .DAT file  into named  auxboxes.   Reads one
  1948.              record delimited  by a  carriage-return/line
  1949.              feed (13,10).
  1950.  
  1951. DELETE    \DELETE {FRAME # or MACRO NNNNNNNN}
  1952.              Deletes the  frame number or macro name (NOT
  1953.              the macro itself).
  1954.  
  1955. DISPLAY   \DISPLAY #{,#,#,# etc.}
  1956.              Displays  auxboxes,   variables,  literals   in
  1957.              single or  double quotes,  or  numbers  on  the
  1958.              screen.  Numeric   data  is  displayed  at  the
  1959.              \CURSOR   location,    alphanumeric   data   is
  1960.              displayed at the \LOCATE location.
  1961.  
  1962. DIGITIZER \DIGITIZER {INITIALIZE #,#{,#{,#,#}}}, {OFF}, {?}
  1963.              Turns digitizer  on or  off or  places  current
  1964.              state in  variable "A".   If turning it on, the
  1965.              first two  numbers are  the active  widths, the
  1966.              third number if included is the COM port to use
  1967.              (1 or  2), and the fourth and fifth numbers, if
  1968.              included,  are   the  offsets  to  add  to  all
  1969.              digitizer values.
  1970.  
  1971. DIVIDE    \DIVIDE # BY # {REMAINDER #}
  1972.              Divides the  first number  by the second number
  1973.              and puts  the result in the first location.  If
  1974.              the REMAINDER  option is  used the remainder is
  1975.              put in the third location.
  1976.  
  1977. DOT       \DOT #,#,#{,{AOX}}
  1978.              Display a  dot at the location specified in the
  1979.              first two  values.   The color  is specified in
  1980.              the third  value.   Sets AND,  OR, and XOR mode
  1981.              for subsequent  \DRAW and  \LINE commands.    A
  1982.              question mark  (?) in  the third  position will
  1983.              put the  color  of  the  dot  at  the  location
  1984.              specified in variable "A".
  1985.  
  1986. DRAW      \DRAW {UDLREFGH}#, C#, J#,#, M{+,-}#,{+,-}#, P
  1987.           #,{UDLRHVA}, S{X,Y or A}
  1988.              Draws  line   segments  as   specified  in  the
  1989.              parameters.
  1990.  
  1991. ELIMINATE \ELIMINATE #{,# TO #,#,#,# TO # etc.}
  1992.              Removes unneeded auxboxes. (NOT their names.)
  1993.  
  1994. ELSE      \ELSE
  1995.              Starts the "false" processing section of an \IF
  1996.              statement.
  1997.  
  1998. END       \END
  1999.              Causes processing  to return  to the editor, or
  2000.              to DOS in the run-time version.
  2001.  
  2002. ENDIF     \ENDIF
  2003.              Ends all  \IF statements that are coded in-line
  2004.              before it.  Stops nesting.  When the \THEN side
  2005.              of an  \IF statement  is  finished,  processing
  2006.              goes to  the first  command or  text line after
  2007.              this one.
  2008.  
  2009. ERROR     \ERROR ?
  2010.              Puts the  most recent  error code that occurred
  2011.              in variable "A".
  2012.  
  2013. EXCHANGE  \EXCHANGE {SCREEN}
  2014.              If you  stored a screen image with \SAVE SCREEN
  2015.              this exchanges  the  current  screen  with  the
  2016.              stored screen.
  2017.  
  2018. EXECUTE   \EXECUTE DOS>{NNNNNNN} or \EXECUTE >NNNNNNN
  2019.              Executes a  second copy  of DOS  or executes  a
  2020.              program.   This is  a very powerful command and
  2021.              should be fully reviewed before being used.
  2022.  
  2023. FRAME     \FRAME #,#,#,#{,M and/or O} or \FRAME # or \FRAME
  2024.           ?
  2025.              Adds a frame to the end of the picture file. If
  2026.              four values  are specified  a raster  frame  is
  2027.              saved from  the screen location (rounded to the
  2028.              nearest byte  on the horizontal axis) specified
  2029.              in the  first two  numbers,  and  is  the  size
  2030.              specified in  the second  two numbers.   M will
  2031.              create a  masked frame,  while O will create an
  2032.              onion skin  frame.    If  only  one  number  is
  2033.              present a  vector frame  of that  many dots  is
  2034.              created.   If a  question-mark (?)  is the only
  2035.              parameter the  total number of frames in RAM or
  2036.              EMM will be placed in variable "A".
  2037. HEIGHT    \HEIGHT #
  2038.              Specifies the  height  of  a  text  window  for
  2039.              \SCROLL and \OVERLAY to use.
  2040.  
  2041. HUE       \HUE {COLOR=#,#} {INCREMENT=#,#,#} {SET=#,#,#}
  2042.           {HOLD=YES or NO} {CYCLE=YES} GRAY={Y or N}
  2043.              Sets colors to new hue values.  The hold option
  2044.              means do  not actually  set the  hardware, just
  2045.              set up the internal hue table.
  2046.  
  2047. IF        \IF # {<>=} # {{AND or OR} # {<>=} #}
  2048.              Begins an  "if" statement.   The  values, which
  2049.              can be alphanumeric, are evaluated according to
  2050.              the operator  (<, >  or =)  and processing then
  2051.              goes to  either the \ELSE clause if false or to
  2052.              the \THEN clause if true.
  2053.  
  2054. IN        \IN # {BYTE, WORD}
  2055.              The #  is the appropriate port that you wish to
  2056.              read.   Reads either  a byte or a word and puts
  2057.              it variable "A".  Generally # is 0 to 255.
  2058.  
  2059. JOY       \JOY or \JOYSTICK  {INITIALIZE {CENTER=#,#}
  2060.           {RESOLUTION=#,#} {SAMPLES=#}} {OFF} {ZERO}
  2061.           {ACCURACY=#,#}
  2062.              Adjusts the  current cursor  location X  and  Y
  2063.              values and  puts them  in variables "D" and "E"
  2064.              respectively, or displays messages for the user
  2065.              to initialize  the  joystick  for  future  use.
  2066.              Turns digitizer off.
  2067.  
  2068. JRCOLOR   \JRCOLOR #,#,#,#,#
  2069.              Sets  the  background,  three  foreground,  and
  2070.              border colors, respectively, for many TANDY and
  2071.              all PCjr machines in CGA mode.
  2072.  
  2073. JUMP      \JUMP NNNNNN
  2074.              Names a  paragraph (\X  command)  for  text  to
  2075.              continue processing at.
  2076.  
  2077. KEY       \KEY CYCLE=# DECREASE=# END=# FORWARD=# INCREASE=#
  2078.           MINUS=# NEXT=# PLUS=# REVERSE=# SINGLES=#
  2079.              Defines user control keys, mainly for \SHOW and
  2080.              \RUN.
  2081.  
  2082. LENGTH    \LENGTH #
  2083.              Puts  length   in  bytes  of  an  auxbox  in
  2084.              variable "A".   Numeric  auxboxes are always
  2085.              two (2)  bytes long.  If the auxbox does not
  2086.              exist, the length will be zero.
  2087.  
  2088. LINE      \LINE #,#,#,#,#{,B or ,BF}  or \LINE ,#,#,#
  2089.              First two  numbers are  the X,  Y values of one
  2090.              end of  a line,  second two are the X, Y values
  2091.              of the  other end.   The  fifth  value  is  the
  2092.              color.   In the  second option  only the second
  2093.              endpoint and  the color  are specified, and the
  2094.              current location is used as the start point. ,B
  2095.              draws a box while ,BF draws a filled-in box.
  2096.  
  2097. LOAD      \LOAD NNNNNNNN.PIC
  2098.              Works like  a combination  of \OPEN  and \READ.
  2099.              You can  \READ and \LOAD at the same time.  You
  2100.              cannot  \OPEN  and  \LOAD  at  the  same  time.
  2101.              Places a picture file in RAM (NOT EMM) but does
  2102.              not decompress  it before  showing the  frames.
  2103.              Only decompresses the frame being shown.
  2104.  
  2105. LOCATE    \LOCATE #,#
  2106.              Sets a  cursor where  text lines  will display.
  2107.              Also sets location for alphanumerics shown with
  2108.              \DISPLAY.
  2109.  
  2110. MARQUE    \MARQUE #,#,#,#{,#{,#}}
  2111.              Sets up  a "Broadway"  ("Hollywood"  for  those
  2112.              West of  the Mississippi)  style animation. The
  2113.              first four  numbers give  the X and Y locations
  2114.              for the  rectangle.   The fifth  value  is  the
  2115.              number of colors to use (plus one).  If a sixth
  2116.              number is  included the fifth and sixth numbers
  2117.              are the  "from" and  "to" numbers.   Speed  and
  2118.              running time is set with \ROUNDS.
  2119.  
  2120. MEMORY    \MEMORY {?} {EMM}
  2121.              Puts  amount   of  memory  left  for  pictures,
  2122.              executing subprograms,  etc. in  variable  "A".
  2123.              Value is  in K (1024 bytes).  The question mark
  2124.              (?) is  optional.   If EMM,  puts the number of
  2125.              NEVER-USED 16K pages in variable "A".
  2126.  
  2127. MOUSE     \MOUSE {INITIALIZE, OFF or ?} or ACCURACY=#,#
  2128.           END=#,#,#,# FRAME=#,# KEEP={Y or anything else}
  2129.           LOCATION=#,# AND={YES or NO} OR={YES or NO}
  2130.           ROUNDS=# SPEED=# WINDOW=#,#,#,# XOR={N or anything
  2131.           for yes} RESOLUTION=#,#
  2132.              Allows  the  user  to  use  the  current  input
  2133.              device.   They may  use the cursor keys and the
  2134.              numeric keys  above  the  QWERTY  part  of  the
  2135.              keyboard instead.
  2136.  
  2137. MOVE      \MOVE #{[#,#]} TO #
  2138.              Moves the first value to the location following
  2139.              the word  TO.  The destination may be an auxbox
  2140.              or a variable.
  2141.  
  2142. MULTIPLY  \MULTIPLY # BY #
  2143.              Multiplies the  first value by the second value
  2144.              and  puts   the  result  in  the  first  value.
  2145.              Numbers greater than 32767 will "wrap around".
  2146.  
  2147. NAME      \NAME #=NNNNNNNNN
  2148.              Symbolically names  an auxbox.  Name is 3 to 30
  2149.              characters long and can subsequently be used to
  2150.              reference an auxbox instead of using it's #.
  2151.  
  2152. ON ERROR  \ON ERROR JUMP or CALL  NNNNNNNN.
  2153.              Sets a place for the program to go if ANY error
  2154.              occurs (except  certain severe  errors.) To  be
  2155.              used with caution.
  2156.  
  2157. ON KEY    \ON KEY then many options.  See \ON KEY.
  2158.              Sets a  paragraph  for  various  keystrokes  to
  2159.              cause a  jump or call to in the text file.  See
  2160.              the command for important considerations.
  2161.  
  2162. OPEN      \OPEN NNNNNNNN.EXT or LPT#:
  2163.              EXT must  be PRN,  PIC, or  DAT.   PRN opens  a
  2164.              print file  or the  system printer (LPT1, LPT2,
  2165.              LPT3, or  LPT?) for  subsequent \PRINT commands
  2166.              to use.   PRN can be followed by ADD to open an
  2167.              existing file.   DAT  opens  a  data  file  for
  2168.              input, and  PIC opens a disk-based picture file
  2169.              for disk-based animation.
  2170.  
  2171. OUT       \OUT #,# {BYTE, WORD}
  2172.              Places the value in the second variable out the
  2173.              port specified in the first variable.  Can only
  2174.              be used if \AUTHORITY is HIGH.
  2175.  
  2176. OVERLAY   \OVERLAY #{, {AOX}}
  2177.              Sets text  display mode  to overlay at speed #.
  2178.              If the  ,A, ,O,  or ,X  option is  used text is
  2179.              ANDed, ORed, or XORed onto the screen.
  2180.  
  2181. PAINT     \PAINT #,{UDLRVHBA}
  2182.              Puts  program  in  paint  mode  for  subsequent
  2183.              \LINE, \DRAW  and other commands.  Paints up to
  2184.              color #  in direction  Up, Down,  Left,  Right,
  2185.              Vertical,   Horizontal,    or   vertical    and
  2186.              horizontal (Both).   No  value or options turns
  2187.              paint  mode   off.    "A"  will  PAINT  in  all
  2188.              directions when the next dot is drawn.
  2189.  
  2190. PASSWORD  \PASSWORD EXIT=# {or "NNNNNN" or 'NNNNNN'} TIME=#
  2191.              Sets up password protection for exits to DOS.
  2192.  
  2193. PEN       \PEN AIRBRUSH=NO or #{,#,#...} COLOR=# CYCLE={NO
  2194.           or #{,#,#...}} WIDTH=# XOR={AND, OR, XOR, YES
  2195.           (XOR), ON (XOR), NO, OFF}
  2196.              Sets up pen options for subsequent \DOT, \DRAW,
  2197.              \LINE and  \CIRCLE  commands.    XOR  will  not
  2198.              affect \DOT.
  2199.  
  2200. PRINT     \PRINT #,{#,# etc., with or without a trailing
  2201.           comma.}
  2202.              Sends data  to a  previously opened  print file
  2203.              (which is  on disk)  or to LPT1, LPT2, or LPT3.
  2204.              Format for the values are similar to \DISPLAY.
  2205.  
  2206. QUESTION  \QUESTION #,#{,#{,L}}
  2207.              Gets a  text line  from the  user.   If  the
  2208.              second value  is zero  this gets  a  numeric
  2209.              value  at   the  current  \CURSOR  location,
  2210.              otherwise this  gets an  alphanumeric string
  2211.              of the  length given.   The result is placed
  2212.              in the  first value, which can be a variable
  2213.              if the  second value  is 0,  or it can be an
  2214.              auxbox.   The third  value if present is the
  2215.              starting cursor  position within the string.
  2216.              The third  value must be included to specify
  2217.              the fourth  parameter, L or LOWER. This will
  2218.              allow the user to type lowercase letters.
  2219.  
  2220. READ      \READ {drive:}{/path/}NNNNNNNN.EXT
  2221.              Used to  read new text, hue, macro, picture,
  2222.              font, and auxiliary files into RAM.  In most
  2223.              cases this  does not  reread files  that are
  2224.              already in  RAM.   Use 1,  2 etc.  for drive
  2225.              specifications.
  2226.  
  2227. RESTORE   \RESTORE {SCREEN}
  2228.              Restores a  full screen  previously saved  with
  2229.              \SAVE.
  2230.  
  2231. RETURN    \RETURN
  2232.              Will return processing to the command after the
  2233.              last \CALL or \ON...CALL.
  2234.  
  2235. ROTATE    \ROTATE ANGLE=# FRAME=# LOCATION=#,#
  2236.              Lets you  rotate a vector frame around a point,
  2237.              from 0 to 90 degrees in a clockwise direction.
  2238.  
  2239. ROUNDS    \ROUNDS # {SPEED # or [#, {REPEAT}]} {FIXED}
  2240.           {REVERSIBLE} {WAVING} (RANGE=#,#} {RETRACE}
  2241.              Sets the  number of  cycles and  the timing for
  2242.              \SHOW, \RUN and \MARQUE.
  2243.  
  2244. RUN       \RUN {FROM #} {TEXT} {MOUSE} {HUES} {NUMBERS {#}
  2245.           or FACTS {#}}
  2246.              Displays  animation   set  up  by  \SPRITE  and
  2247.              \SPRINT.   FROM starts   animation on the cycle
  2248.              specified.  TEXT displays subsequent text lines
  2249.              concurrently.     MOUSE  uses  previous  \MOUSE
  2250.              options to use a mouse concurrently.  The other
  2251.              options are  debugging tools  and not available
  2252.              in the runtime version.
  2253.  
  2254. SAVE      \SAVE {SCREEN}
  2255.              Saves the  screen in  a storage  area.  Restore
  2256.              later using \RESTORE, or swap using \EXCHANGE.
  2257.  
  2258. SCREEN    \SCREEN #,#{,#} or {MODE=#} {LINE=#,#}
  2259.              Sets the screen mode (third parameter), and for
  2260.              CGA, the background and palette for the screen,
  2261.              or use  the keyword  format  for  other  screen
  2262.              modes and to use the LINE= option.
  2263.  
  2264. SCROLL    \SCROLL #{, {AOX},#}
  2265.              Set text mode to scroll at the speed set by the
  2266.              first value.  Text can be ANDed, ORed, or XORed
  2267.              with the color given in the third parameter.
  2268.  
  2269. SET       \SET {COLOR=# DOT={# or ?} FRAME=# LOCATION=#,#}
  2270.           {MODE={GET or SET}}
  2271.              Changes or  gets information  about  individual
  2272.              dots in  a vector  frame.   SET is  the default
  2273.              MODE.   If DOTS=?  is used  the total number of
  2274.              dots in the FRAME is placed in variable "A".
  2275.  
  2276. SHOW      \SHOW #,#,#,#{,A ,O ,X or ,S} or:                 
  2277.                \SHOW AND={YES, NO} FRAME=#,# LOCATE=#,#
  2278.           MOTION=#,# OR={YES, NO} PATH=#{,#} SAVE={YES, NO}
  2279.           WINDOW=#,#,#,# XOR={YES, NO}
  2280.              In the  first format  the first two numbers are
  2281.              the location on the screen.  The second two are
  2282.              the "from"  and "to"  frames to  show.   If the
  2283.              fourth value  is  missing  a  single  frame  is
  2284.              shown.   To AND,  OR, XOR  or SAVE  a frame the
  2285.              third and  fourth numbers  must be equal.  Only
  2286.              raster frames can be saved this way.
  2287.              
  2288.              In the  second format the options are listed as
  2289.              keyword parameters.   See  \SHOW  for  complete
  2290.              documentation.
  2291.  
  2292. SOUND     \SOUND ON or OFF
  2293.              Toggles the \BEEP command's ability to be heard
  2294.              as well as any beeping the program does.
  2295.  
  2296. SPRINT    \SPRINT #{,# TO #,#,# etc.}
  2297.              Sets frames  to be shown with \RUN according to
  2298.              parameters previously set with \SPRITE.
  2299.  
  2300. SPRITE    \SPRITE AND={YES or NO} ANIMATE={# or NO}
  2301.           CONNECT={YES or NO} INCREMENT=#,# END=#,#,#,#
  2302.           FAST={Y or anything} MOTION=#,# OPEN=#,#,#,#
  2303.           TYPE={R or anything} OR={YES or NO} PATH={#,# or
  2304.           NO} ROUNDS=#,# STRING=#,# WINDOW=#,#,#,#
  2305.           WPATH={#,# or NO} XOR={N, AUTO or Y} ZING=#,#,#
  2306.           {or NO}
  2307.              See \SPRITE.   Sets up parameters for animating
  2308.              frames with  subsequent \SPRINT  commands.  See
  2309.              \SPRITE in the technical reference for complete
  2310.              information  on  this  powerful  and  important
  2311.              animation command.
  2312.  
  2313. SUBTRACT  \SUBTRACT # FROM #
  2314.              Subtracts the  first  number  from  the  second
  2315.              number  and  puts  the  result  in  the  second
  2316.              location.  Numbers will "wrap" if out of range.
  2317.  
  2318. TEXT      \TEXT PLANE=NNNN
  2319.              Indicates which  planes to  write  text  to  in
  2320.              bitplane modes.   Is  a binary  number (1's and
  2321.              0's.)   To write  to all  four planes  16 color
  2322.              bitplane modes, NNNN=1111.
  2323.  
  2324. THEN      \THEN
  2325.              Identifies the commands to be processed when an
  2326.              \IF statement  evaluates to  TRUE.   You  never
  2327.              need to actually code this statement because it
  2328.              is implied as the next statement after \IF.
  2329.  
  2330. WAIT      \WAIT {LIMIT # or NOW # or RETURN # {"NNNNNN"}
  2331.              Waits now,  waits for  the return  key, or sets
  2332.              future time limits for \QUESTION responses.
  2333.  
  2334. WIDTH     \WIDTH # {DOTS} {RIGHT, LEFT, BOTH or CENTERED}
  2335.           {PROPORTIONAL}
  2336.              Sets the  width in  characters or DOTS for text
  2337.              display.  If specified in characters the actual
  2338.              width in  dots will  depend on  the size of the
  2339.              current font.  Also sets text justification and
  2340.              indicates if  the font  is proportional,  which
  2341.              changes the  way some  aspects of justification
  2342.              work.
  2343.  
  2344. WRITE     \WRITE {drive:}{/path/}NNNNNNNN.EXT
  2345.              The only  valid file  that can  be written  out
  2346.              with  this  command  in  release  7.24  is  the
  2347.              auxiliary file.   Print  files do  not use this
  2348.              command, and text, font, and picture files must
  2349.              be written out manually.
  2350.  
  2351. X         \X NNNNN
  2352.              Names a  paragraph  for  \JUMP's,  \CALL's  and
  2353.              \CALLM's to  branch to.   \ON KEY and \ON ERROR
  2354.              use it  too.   Name may  be up to 30 characters
  2355.              long.
  2356. ZING      \ZING  AXIS={X, Y or B} CORNERS=#,#,#,# FRAME=#
  2357.           LOCATION=#,# MODE={A, O, X, B or F}
  2358.              Gets dots  from a  raster frame. Axis specifies
  2359.              an axis  to flip  the image on, if any. Corners
  2360.              are the  X-low, Y-low,  X-high, Y-high  corners
  2361.              within the frame.  Location specifies the upper
  2362.              left  corner   to  place   the  image.     Mode
  2363.              determines use of XOR, background or foreground
  2364.              mode.  Only one of the modes (or none) is valid
  2365.              at a time.
  2366.  
  2367. *         \*
  2368.              A comment  line and  is ignored.   Must  be the
  2369.              last or only command on a line.  Should be used
  2370.              in place of an empty line (CR/LF only).
  2371.  
  2372. "         \"
  2373.              Used to  allow the  first character  of a  text
  2374.              line to  be printed  on  the  screen  to  be  a
  2375.              backslash (\)  or to  allow the displaying of a
  2376.              blank  line  on  the  screen.    Anything  that
  2377.              follows the  \" will  be printed  as if it were
  2378.              text.   No commands  can follow  this one  on a
  2379.              line (up  to a  carriage return  and line  feed
  2380.              (13,10)).
  2381.  
  2382. +         \+
  2383.              Used  to  inhibit  \ON  KEY  keypress  checking
  2384.              between command lines.  Useful for setting up a
  2385.              series of  \ON KEY specifications.  Must be the
  2386.              last command on a line.
  2387.