home *** CD-ROM | disk | FTP | other *** search
/ Phoenix CD 2.0 / Phoenix_CD.cdr / 02a / progaid.zip / PROGAID.DOC next >
Text File  |  1988-01-30  |  14KB  |  259 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.                       -------------------------------------
  7.                       M O N T G O M E R Y   S O F T W A R E
  8.                       -------------------------------------
  9.  
  10.                                   P R O G A I D
  11.         
  12.                                   V e r   1 . 1
  13.         
  14.                                        b y
  15.         
  16.                              B I L L   D I C K S O N
  17.  
  18.  
  19.  
  20.  
  21.  
  22.         1.      PROGRAM SUMMARY:
  23.  
  24.                         Progaid is a  32  bit multi-function programmers 
  25.                 calculator  for  the  IBM-PC/XT/AT and compatibles   The 
  26.                 registered Copywrited version is memory resident and the 
  27.                 demo   Shareware  version  is  not.    The  only   other 
  28.                 difference  between  the two is  the  inclusion  of  the 
  29.                 program  title  screen before the help screen.   If  you 
  30.                 find that this package fills your needs then I recommend 
  31.                 that  you send $30.00  for the memory  resident version.  
  32.                 The  demo version can be given freely to others  in  the 
  33.                 shareware spirit but the memory resident  version is NOT 
  34.                 to be given to any other person, as it is neither share-
  35.                 ware nor public domain.  It  is a commercial product.  A 
  36.                 contribution of  $10   or more is appreciated if you use 
  37.                 this shareware version. 
  38.  
  39.  
  40.         2.      SCREEN LAYOUT:
  41.  
  42.                         There are 5 groups of 3 32-bit words.  The words 
  43.                 are numbered 1,  2 and 3, from top to bottom.  The upper 
  44.                 left group is in binary, shaded in hex-char format.  The 
  45.                 upper right shaded group is in hexadecimal format.   The 
  46.                 lower left group is in signed decimal format.  The lower 
  47.                 middle  group  is unsigned decimal and the  lower  right 
  48.                 group  is in octal format.   The line below these groups 
  49.                 is  a status line with the following definitions.  On  a 
  50.                 color monitor the selected word will be in white.  Users 
  51.                 with  a  monochrome  monitor will have to  look  at  the 
  52.                 status line to see which <1 or 2> is the selected word. 
  53.                         
  54.                         A. NUMBER BASE for data input. (16, 10, 8)
  55.                         B. SELECTED WORD for data entry and single 
  56.                            operand instructions.
  57.                         C. Screen CHARACTER read from the low order byte 
  58.                            of the selected word.
  59.                         D. Character in the ATTRIBUTE (color) code of 
  60.                            the low order byte of the selected word.
  61.                         E. A MNEMONIC for the last operation performed.
  62.  
  63.                         When  numeric data is entered (in selected base) 
  64.                 there  is an additional line that appears with a  cursor 
  65.                 for  entering data to the SELECTED word.  The 3 words in 
  66.                 each group are numbered 1-3, from top to bottom.  Word 3 
  67.                 is a results word and cannot have data entered directly. 
  68.                 The   other  2  words  are  used  as  the  operands  for 
  69.                 functions and will accept data when selected. 
  70.  
  71.  
  72.         
  73.         3.      DATA ENTRY:
  74.  
  75.                         Data  entered  will always be entered  into  the 
  76.                 selected  word in the selected base.   Entering data  in 
  77.                 the  selected base is simply to start typing the number.  
  78.                 If  the  character is valid for the selected base,   the 
  79.                 data prompt line will appear with a cursor.  There is no 
  80.                 restriction on character case for hex input.   The input 
  81.                 routine will only allow valid characters for the current 
  82.                 number  base up to a maximum character count as dictated 
  83.                 by  the base you are in.  (dec=10,  hex=8,  oct=11   and 
  84.                 bin=32).    Two  special data input modes are  specified 
  85.                 when the characters <%> and <-> are hit.  <%> opens data 
  86.                 input in binary regardless of the current base.  <-> hit 
  87.                 when IN DECIMAL BASE will input signed numbers otherwise 
  88.                 unsigned decimal input defaults. <backspace> is the only 
  89.                 editing key valid when entering data.  A new feature  is 
  90.                 that when data is entered into the selected word the the 
  91.                 selected  word  # will be toggled.  This is more logical 
  92.                 then having to enter data and change the  selected  word 
  93.                 every  time.  If you want the selected word to remain as 
  94.                 it was before data entry,  just hit <enter> twice.   Any 
  95.                 time  either  of the <enter>  keys are hit the  selected 
  96.                 word # will toggle <1 <--> 2>. 
  97.  
  98.  
  99.  
  100.         4.      FUNCTIONS:
  101.  
  102.                         With a few exceptions, which will be noted, 
  103.                 functions work as follows in the four groups below.
  104.                         
  105.                         1. SINGLE  OPERAND FUNCTIONS such as  not,  neg, 
  106.                            etc.  work like this:   function is performed 
  107.                            on the selected word and the result is stored 
  108.                            in word #3.  The selected word is unchanged. 
  109.  
  110.                         2. DOUBLE  OPERAND  FUNCTIONS such as and,   or, 
  111.                            add,  etc. work as such:  (word #1)  function 
  112.                            (word #2) --> (word #3) 
  113.                 
  114.                         3. SPECIAL  FUNCTIONS are used to change  number 
  115.                            BASE,  change selected WORD,  HELP,  and QUIT 
  116.                            and do exactly what they imply. 
  117.                         
  118.                         4. The following functions work differently then 
  119.                            the  functions in groups 1 and 2.   SEXB  and 
  120.                            SEXW  are used to extend the sign bit of  the 
  121.                            selected word.   SEXB extends the sign of the 
  122.                            low  order  byte of the selected word  to  32 
  123.                            bits  and  SEXW extends the sign of  the  low 
  124.                            order  word  to  32  bits.    Both  of  these 
  125.                            functions  are done directly to the  selected 
  126.                            word.  <1-2>, <1-3> and <2-3> swap the words. 
  127.                            eg:  (word #1) <--> (word #2).  SCod is a way 
  128.                            to view IBM-PC keyboard scancodes exactly  as 
  129.                            they  are received from the  keyboard.    The 
  130.                            scancode is put into the low order 16 bits of 
  131.                            the selected word.   Use of <shift-PrtSc>  or 
  132.                            <cntrl-PrtSc>   will function as they usually 
  133.                            do.   <cntrl-c> and <cntrl-break> will return 
  134.                            0   as  the memory resident driver strips  it 
  135.                            from the  keyboard stream.  The  Inc  and Dec 
  136.                            functions work directly on the selected word. 
  137.         
  138.  
  139.         5.      FUNCTION KEYS:
  140.                 
  141.                 <F1>  Help      Self explanatory!
  142.                 <F2>  Base      Toggles the input base (16 -->10 -->8)
  143.                 <F3>  Add       (Wrd1)+(Wrd2) -->(Wrd3)
  144.                 <F4>  Neg       -(Sel Wrd) -->(Wrd3)
  145.                 <F5>  Inc       (Sel Wrd)+1 -->(Sel Wrd)
  146.                 <F6>  Shr     * (Wrd1)Shift Right(Wrd2) -->(Wrd3)
  147.                 <F7>  Or        (Wrd1)OR(Wrd2) -->(Wrd3)
  148.                 <F8>  And       (Wrd1)AND(Wrd2) -->(Wrd3)
  149.                 <F9>  Mul       (Wrd1)*(Wrd2) -->(Wrd3)
  150.                 <F10> 1-3       (Wrd1) <--> (Wrd3)
  151.  
  152.                 WITH SHIFT KEY:
  153.                 
  154.                 <F1>  Quit      Self explanatory!
  155.                 <F2>  Seg       (LoWord_Wrd1 * 16)+(LoWord_Wrd2) -->(Wrd3)
  156.                 <F3>  Sub       (Wrd1)-(Wrd2) -->(Wrd3)
  157.                 <F4>  Not       1's complement(Sel Wrd) -->(Wrd3)
  158.                 <F5>  Dec       (Sel Wrd)-1 -->(Sel Wrd)
  159.                 <F6>  Shl     * (Wrd1)Shift Left(Wrd2) -->(Wrd3)
  160.                 <F7>  Xor       (Wrd1)Xclusive Or(Wrd2) -->(Wrd3)
  161.                 <F8>  1-2       (Wrd1) <--> (Wrd2)
  162.                 <F9>  Div       (Wrd1)/(Wrd2) -->(Wrd3)
  163.                 <F10> 2-3       (Wrd2) <--> (Wrd3)
  164.  
  165.                 WITH ALT KEY:
  166.                 
  167.                 <F1>  Mod       (Wrd1) modulus (Wrd2) -->(Wrd3)
  168.                 <F2>  RolB    * (Wrd1)Rotate left byte(Wrd2) -->(Wrd3)
  169.                 <F3>  RolW    * (Wrd1)Rotate left word(Wrd2) -->(Wrd3)
  170.                 <F4>  RolL    * (Wrd1)Rotate left long(Wrd2) -->(Wrd3)
  171.                 <F6>  RoRB    * (Wrd1)Rotate right byte(Wrd2) -->(Wrd3)
  172.                 <F5>  RorW    * (Wrd1)Rotate right word(Wrd2) -->(Wrd3)
  173.                 <F6>  RorL    * (Wrd1)Rotate right long(Wrd2) -->(Wrd3)
  174.                 <F8>  SexB    @ sign extend byte(Sel Wrd) -->(Sel Wrd)
  175.                 <F9>  SexW    @ sign extend word(Sel Wrd) -->(Sel Wrd)
  176.                 <F10> Sum       (Sel Wrd) + (Wrd3) --> (Wrd3)
  177.  
  178.                 WITH CNTRL KEY:
  179.  
  180.                 <F1>  SCod      scancode of next key(s) hit --> (Sel Wrd)
  181.                 <F2>  Peek      (Wrd3) = long word pointed to by segmented
  182.                                 address in selected 32-bit word.
  183.  
  184.                 <enter>         Toggles the selected word # (1 <--> 2)
  185.  
  186.                 * Wrd2 contains the number of shifts or rotates. Max # is 
  187.                   7 for byte, 15 for word, and 31 for long. A mask is 
  188.                   used on word two if it is greater then the max.
  189.  
  190.                 @ Works on low order byte and word.  Done directly to 
  191.                   the operand.
  192.  
  193.  
  194.         6.              A  few notes on the history and  development  of 
  195.                 PROGAID  may  be interesting.   PROGAID  was  originally 
  196.                 concieved  on  a TRS-80  Color Computer and  written  in 
  197.                 interpreted BASIC.  It was a bear in basic and I decided 
  198.                 on  a complete re-write for the IBM-XT.   I   wrote  the 
  199.                 program,   memory  resident  driver  for  .exe,   window 
  200.                 routines  and  all  user  librarys on  the  Microsoft  C 
  201.                 Optomizing  Compiler  Ver 5.0  and the  Microsoft  Macro 
  202.                 Assembler.   I thought of using Quickbasic 4.0  but only 
  203.                 for  a  fleeting  instant.   C  is  ideally  suited  for 
  204.                 handeling these data types and operations.   The  window 
  205.                 is  as  basic  as possible so as to cover as  little  as 
  206.                 possible of the programmers file when used in the memory 
  207.                 resident  mode.    I   have tested the  memory  resident 
  208.                 version with Procomm, PC-Write, Quickbasic 3.0  and 4.0, 
  209.                 Quick C Ver 1.0,  PC-File Plus,  VP-Planner,   Codeview, 
  210.                 Debug  and  GW-Basic  and it functions  perfectly.    If 
  211.                 PROGAID fails with a software package it is probably the 
  212.                 fault of that package snatching the keyboard vector  and 
  213.                 not allowing lower level TSR's access to the vector. Any 
  214.                 TSR loaded  on  top  of  progaid  that  doesn't  require 
  215.                 <left_shift-ALT>  as a wakeup key or interrupt 67h as  a 
  216.                 vector,  should function well if written properly.  This 
  217.                 program   should   run  on  IBM-XT's, PC's,  AT's,   and 
  218.                 compatibles with a CGA or monochrome display adaptor. It 
  219.                 can not however be used with Microsoft Windows! A second 
  220.                 Memory  Resident  version is supplied when you  register 
  221.                 that uses Int  65h and  <Left-Shift><Right-Shift>  as  a 
  222.                 wakeup key in case Int 67h or <Left-Shift><Alt> conflict 
  223.                 with other programs you may be using. 
  224.                  
  225.  
  226.  
  227.         7.              This product is the result of many hours of work 
  228.                 and if more development goes into this piece of software 
  229.                 and  others as well,  depends on users contributing  via 
  230.                 the shareware concept.  For $30.00  you will receive the 
  231.                 memory  resident versions of PROGAID with more  complete 
  232.                 documentation.  Pa.  residents need not add sales tax as 
  233.                 the  price  is  reduced exactly the amount  of  the  6%. 
  234.                 Please  feel free to distribute this arced file with  no 
  235.                 changes  made  to any person or BBS.   If you  use  this 
  236.                 version  and  find  it useful but have no  need  of  the 
  237.                 memory resident version then a contribution of  $10   or 
  238.                 more  would  be  appreciated.   I  repeat  THIS  IS  NOT 
  239.                 FREEWARE  OR PUBLIC DOMAIN SOFTWARE.   It is  copywrited 
  240.                 and requires a fee if used for a period of more then  30 
  241.                 days. 
  242.  
  243.  
  244.                 Make check payable to William A. Dickson!
  245.  
  246.  
  247.                 Address: Montgomery Software
  248.                          2828 Egypt Rd. #D101
  249.                          Audubon, Pa    19407
  250.  
  251.                          Atten: Bill Dickson
  252.  
  253.  
  254.                 Phone:   215-666-6554
  255.  
  256.                 Messages can be left for me at HOMER BBS 215-269-9592!
  257.                 Registered users will receive free support and upgrades
  258.                 at a modest handeling fee. 
  259.