                RELEASE NOTES FOR CUSP v5.0/CHASM v4.0 (April/91)
               ==================================================
                                        
         ****************************************************************
                 TO QUICKLY TRY OUT SOME BASIC FEATURES, FOLLOW 
                   THE TUTORIAL IN APPENDIX B OF THE TEXTBOOK
         ****************************************************************
        
        Most of the examples in the textbook are supplied (some had to be 
        fleshed  out with mainlines etc). The correlation between  Figure 
        number and program name is provided in the "Program Index" in the 
        textbook. Beware of the starting addresses, some are *not* $000.
        
        Questions  or Bug reports can be directed by electronic  mail  to 
        "cusp@sce.carleton.ca" or by writing to:
        
        Prof. Gerald Karam
        Department of Systems and Computer Engineering
        Carleton University
        Ottawa, Ontario, CANADA K1S 5B6
        
        Configuring CUSP.EXE:
        
             Although   it   provides edit and assemble  commands,   CUSP  
        does  not include  either a built-in editor or a built-in  assem-
        bler.    Instead   it  responds  to   the   edit   and   assemble  
        commands  by  invoking  external programs.  In order for  editing  
        and assembling to be possible, CUSP.EXE must  be "configured"  to 
        reflect the programs to be invoked, where  they are located,  and 
        the arguments to be passed to them.
        
             In   the   case   of the edit command, you  may  have   CUSP  
        invoke   any  editor of your choice, and the  arguments  required 
        will  depend  upon   your choice.  In the case  of  the  assemble 
        command,  you will presumably always want  to  invoke  CHASM.EXE, 
        and  will almost always want to  make  use  a particular  set  of 
        arguments.   Even  in  this   relatively   straightforward  case, 
        however, there remains the matter of where CHASM.EXE is located.
        
             In  both  the edit and assemble cases, CUSP.EXE  is  config-
        ured  by specifying a "command line" of the following form:
        
                  drive:\path\filename.EXE  argument_list
        
        The   argument  list is optional, and if present  may  take   any  
        form.  Apart from filename substitution (see below) it is  simply 
        passed  to  the invoked program verbatim.  Note that,  except  in 
        that  a full pathname and the .EXE extension must  be  specified, 
        the  "command line" is analogous to that you would use to  invoke 
        your editor or CHASM from the DOS prompt.
        
             If  the  argument list contains any occurrences of  '%f'  or 
        '%b", CUSP will  obtain  a filename from the user every time  the 
        program is  to  be invoked,  and will replace each occurrence  of 
        '%f'  in the argument  list with  the  full  filename,  and  each 
        occurrence of  '%b'  with  the  base filename  (the full filename 
        less its extension).  A  typical  assembler command line is shown 
        below.  Yours will normally be identical except in that CHASM.EXE 
        may be located in a different directory or on a different drive.
        
                  C:\CUSP\CHASM.EXE %f /OBJECT=%b.OBJ /LIST=%b.LST
        
             Given this command line, executing the assemble command will  
        cause  CUSP  to  obtain a filename from the user.  Assuming,  for  
        the   sake   of example,  that  the   user  enters  'SAMPLE.CSP',  
        CUSP   will   then  invoke 'C:\CUSP\CHASM.EXE' and  pass  it  the 
        following arguments:
        
                  SAMPLE.CSP /OBJECT=SAMPLE.OBJ /LIST=SAMPLE.LST
        
             CUSP.EXE   may  be  configured  (or reconfigured)   at   any  
        time   by  executing  CUSP-CFG.EXE.  If there is  a  file  called 
        CUSP.EXE in the  same directory  as  CUSP-CFG, the user is  asked 
        whether  this file  is  to  be configured.  Otherwise, or if  the 
        user replies in the negative, CUSP-CFG prompts  the  user for the 
        name  of  the copy of CUSP.EXE to  be  operated upon.   This  may 
        include  whatever  path  (drive and  directory)   information  is 
        necessary to specify the file.
        
             CUSP.EXE    is   also  configured  during  the   course   of   
        software  installation  (see  below).  In this case the  user  is  
        prompted   for   an editor  command  line,   but   the  assembler  
        command  line  is  generated automatically.  Typically the  auto-
        matically  generated command line  will be  satisfactory, and  if 
        it is not it can easily be changed  by  running CUSP-CFG.
        
        Software Installation:
        
             Much  of  the  data on the distribution diskette  is  stored  
        in   a compressed  format  and  cannot  be   directly   accessed.    
        Installation  involves  decompressing  this data and copying  the 
        files produced  to  a directory  of the user's choice.  Installa-
        tion  also  copies  CUSP.EXE  to the destination  directory,  and 
        configures it (see above) in the process.
        
             Installation  is  performed  by  executing  START.EXE.    It 
        achieves  the required data decompression by invoking EXPLODE.EXE 
        with  the appropriate arguments, and then copies  and  configures 
        CUSP.EXE.
        
             The   destination directory may be on a high density   disk-
        ette.   If your  system  has two 1.2M diskettes, for example, you 
        could   place   the  distribution diskette  in  drive  'A:',  run 
        'A:START', and specify 'B:\' as the destination directory.   This 
        would  result in the CUSP software being installed  in  the  root 
        directory  of the diskette in drive 'B:'.  If   the  distribution  
        diskette is first copied to a high density  diskette,  the desti-
        nation   directory  may  even be  on  the  distribution  diskette  
        itself.   In   this case one would normally  select  a  directory 
        other  than the  root directory  so  as to avoid mixing the  dis-
        tribution and  installed  files (e.g. one might select  'A:\CUSP' 
        as the destination directory).
        
        CuspHelp:
        
             CuspHelp  is a "Terminate-Stay-Resident" (TSR) help  program 
        that  can be used during all stages of developing CUSP  programs.  
        To load CuspHelp into memory,  simply enter "[path]CUSPHELP<cr>", 
        where  "[path]" is the DOS path to the directory containing  Cus-
        pHelp and "<cr>" indicates pressing the Enter key (return).  Once 
        CuspHelp is loaded into memory, it can be invoked at any time  by 
        pressing the "hotkey" (Shift-F1 -- press the F1 key while holding 
        the  Shift  key down). Since CuspHelp is never further  than  the 
        hotkey  away,   it may be invoked from inside  an  editor  (while 
        editing  a CUSP program) or from inside the CUSP  program  (while 
        debugging and executing CUSP programs).
        
             Invoking  CuspHelp always causes the first page to  be  dis-
        played.   The position of the "cursor" is indicated by the  high-
        lighted  entry.   The cursor can be moved using  the  arrow  keys 
        (note that in order to use the arrow keys on the numeric  keypad, 
        the NumLock key must be OFF).  Oncethe cursor is positioned  over 
        a  topic of interest,  then pressing the Enter key (return)  will 
        cause a new page of information on the selected topic to be  dis-
        played.   If  the new page contains additional topics,  then  the 
        cursor  may  be used to select further information.  A  page  may 
        also  show "PgUp" and/or "PgDn" in the lower right corner of  the 
        border indicating that the PgUp and/or PgDn keys will also  cause 
        the display of related pages.   
        
             You  may  exit  from CuspHelp at any time  by  pressing  the 
        escape  key (Esc).  Note that pressing Esc does not  remove  Cus-
        pHelp from memory and pressing the hotkey will re-invoke CuspHelp 
        again.
        
             A  special note should be made that the backspace  key  (<-) 
        causes  CuspHelp to display the "most recently"  displayed  page.  
        This  is  a particularly convenient feature for  "recalling"  the 
        last  page that was displayed during the previous invocation.   A 
        "recall"  can be performed by pressing the hotkey to invoke  Cus-
        pHelp and then immediately pressing backspace.



