@@SELECT
       The target device which  is to  be programmed  by the Logic Lab may be
  one of the following GAL devices:
  
       GAL16V8, GAL20V8, ispGAL16Z8 or GAL39V18
  
  In addition you may select a subset of the 16V8, 20V8 or 16Z8. Selecting  a
  subset of one of these causes two things two happen. First the architecture
  is forced  to mimic the  subset, second fuse numbers are  translated during
  JEDEC uploads and downloads.  Assume you have selected the 16V8 subset 10L8
  All output logic macro cells will be pre-configured  to be combinatorial, a
  JEDEC  download will only work correctly with a file created  for a 10L8, a
  JEDEC upload will produce a file for a 10L8, and the target device will
  function exactly ( pin for pin )like a 10L8 when programmed.
  
  When the  user chooses "Select" from the main menu a new  menu is presented
  which  allows for the selection of one of the four GAL  devices above  or a
  subset.
@@CLEAR
  *     CAUTION: SAVE FILE BEFORE CLEARING THE BUFFER      *
  
       The buffer is the memory area where programming information is stored.
  This information  may enter  the buffer from one of three sources. The user
  may down  load a  JEDEC file  which is  translated into  the fuse map to be
  stored in the buffer. As a second method the user may wish to manually edit
  the contents  of the  buffer to  produce a new programming pattern. Finally
  the buffer  may be  loaded by  reading the  target GAL  device in  the  ZIF
  socket. Independent of  how the  user has  filled the  buffer when "Clear"
  is  selected this  information is  lost for  ever. The  user  is  cautioned
  to  save buffer  data (using  "Upload") prior to selecting "Clear".
@@UPLOAD
       The user  may permanently  save the  contents of the buffer on disk by
  using the  "Upload" command.    When  executed,  this  command  writes  the
  contents of  the buffer  to the  default memory device using the JEDEC data
  format.   The user  is prompted to provide a file name under which the file
  is to  be stored. If the specified name already exists the user is asked if
  they choose to overwrite the file or not.  When the choice to overwrite the
  file is made the contents of the old file are destroyed and the new file is
  written in  its place.   If  the user chooses not to overwrite the file the
  upload is aborted and control is returned to the main menu. The contents of
  the buffer  may be  a programming  pattern which  has been  read from a GAL
  device in  the ZIF socket, a pattern which has been downloaded from a JEDEC
  file, or the contents of the buffer after manually editing it.
        Note  that unless  specified, all  files are  stored  with  the  .JED
  extension.   It is  assumed that  the file  is to  be stored on the default
  drive. If you wish to store the file on another device the device name must
  be specified. For example: If "LL.EXE" is executing from C: and COUNTER.JED
  is to  be saved  to a file on Drive A: issue the following:  A:COUNTER.JED.
@@DOWNLOAD
      The contents  of a  JEDEC file  which is on disk may be down loaded to
  the buffer  storage area  of the  Logic  Lab.  When  selected,  the  option
  requests the  name of  the file  which is to be down loaded.  Note that the
  file extension  is assumed  to be  .JED.   If your  JEDEC file  has another
  extension it must be specified. The successful download is acknowledged and
  the user may strike any key to return to the main menu.
       Although down loading of a file is assumed to proceed from the default
  disk, a drive may be specified.  For example: If the host code "LL.EXE"
  is executing  from drive  C: and the A: has a floppy with COUNTER.JED
  (the desired  JEDEC file)  specify A:COUNTER.JED to download the file.
@@BUFFER
       The contents  of the  Buffer may  be displayed and edited by selecting
  this option.   When  selected the  buffer option will present the user with
  one of  two sub  menus. The  choice of the sub-menu is based upon which GAL
  device has  been selected.  One of the sub-menus is for the GAL39V18 device
  and the  second sub-menu  is for  the remaining  GAL devices.  For  further
  information of  displaying and  editing the buffer select the buffer option
  and request help.
@@LOAD
       A pattern which has been programmed into a GAL device may be read from
  the device and stored in the buffer for inspection, editing or uploading to
  a storage  device.  To correctly accomplish this task the user must specify
  the GAL device type (16V8 ect.).
@@VERIFY
       The verify option is selected to compare the contents of the buffer to
  the pattern  which has  been programmed  into a  part.   If the data in the
  buffer is  exactly the  same as  the pattern  in the part a message stating
  "data in  buffer matches  device" is returned. In the event that the buffer
  and the  part contain  different data  a message  stating "device  does not
  match buffer" is returned.  The cycle counter (number of times the part has
  been programmed) is also displayed.
@@PROGRAM
       The GAL device may be programmed to contain the contents of the buffer
  by making  this selection.   When  the programming  has been  completed the
  message "Programming  done" and  the cycle  counter status (number of times
  the part  has been  programmed) are displayed.  The user may hit any key to
  return to the main menu.
@@MASTER
       The GAL  device may  be designated  as a  Master device at the time of
  programming.   When this  is done the contents of the buffer are programmed
  in to  the GAL  device and  the Master bit is set. After the Master bit has
  been set  subsequent attempts  to program  the  part  will  result  in  the
  following  messages:
        "You are about to program a Master device are you
         sure you want to do this?"
  
        "Enter Y to continue"
  If the user depresses <enter> the programming cycle is aborted. Entering Y
  <enter> will cause the part to be overwritten.
@@SECURITY
       The pattern  which has  been programmed  into the  GAL device  is made
  unreadable by  setting the security flag.  Once this flag has been set in a
  device it  may not  be cleared except by reprogramming the part and thereby
  erasing the  secure data.
       The user  selects "Security"  from the main menu to invoke setting the
  security on  the  part  being  programmed  and  all  parts  which  will  be
  programmed until  the security  feature has  been reset.    When  the  user
  selects security the following message appears on the screen:

       "Do you want to automatically secure the parts
        after programming?"  "Enter Y or N."
  
  Selecting Y<enter> causes all future parts to be secured until the security
  flag is  reset by selecting "Secure" again.  Selecting N <enter> will abort
  the securing process.
       It should be noted that the security flag selection is not stored with
  the JEDEC  file and  any attempt  to download a file and program parts will
  result in  parts which  are not  secure. 
@@MAIN
       The contents  of the  main array  is displayed  when this  function is
  selected. The data is displayed as an array of 'X'and '-'characters arranged
  represent the product ( AND ) terms for each output. An 'X' represents the
  inclusion  of an  input in the product term while the '-' represents the
  opposite.   The pattern  representing the main array may be edited manually
  by the user. To edit the main array select 'E' from the following prompt:

        Enter ESC to end display, E to edit display, CR to view next 8 rows
  
     Change the  input   term  to either  an 'X'  or a  '-' by  entering  the
  appropriate character  from the  keyboard. Use the left and right arrows to
  position the  cursor over  the input    term to  be changed.   When through
  editing depress  the <ESC> key to display the rest of the product terms or
  depress the <ENTER> key to edit the next product term. Select '.' when the
  above prompt reappears to return to the EDIT BUFFER menu.
@@UES
 The user  may enter  an electronic  signature for part identification.
This 8 character signature consists of character data between 0-9, A-Z, and
a-z. The  user may  enter the  characters of  this signature  in hex format
at the following prompt:

Electronic Signature in HEX. Enter 0-9 & A-F
Press enter to finish
00 00 00 00 00 00 00 00

  The electronic signature is then displayed in character format.
Electronic Signature as characters. Enter 0-9, A-Z, a-z 
Press enter to finish
a a a a a a a a	

Pressing enter stores the electronic signature and returns to the EDIT menu.
@@ARCH
    Selecting this function will allow the user to edit the architecture fuses
  in the 16V8/16Z8/20V8 buffer.  These fuses are grouped according to function
  and  displayed one row at a time.   A row  may be edited using  <,>,X and -.

         PIN              22 21 20 19 18 17 16
         POLARITY FUSES    X  X  X  -  X  X  X
  The - fuse above represents the state of the POLARITY fuse for pin 19.
  
  Each output pin has associated with it several architecture fuses. These are

  1) Polarity fuse to control output polarity.
  2) AC1 fuse which is used to control the output configuration.
  3) Eight Product term disable fuses.

    In addition there are the SYN fuse and the AC0 fuse.  These affect all the
  outputs.   The combination of SYN , AC0 and AC1n (n = pin number) determines
  wether the output is SYNCHRONUS or COMBINATORIAL, how the output is fed back
  to the array and whether to use a product term for output enable or not. The
  product  term disable fuses are used to disable unused product  terms in the
  16V8/20V8  when emulating a device with less than 8 product terms per output
  ( i.e. a 10L8 ).
@@AND
       The contents of the main and array is displayed when this  function is
  selected.   The data  is displayed  as an  array of  'X' and '-' characters
  arranged to represent the product (AND) terms in the 39V18. An 'X' represents
  the inclusion  of an input in the product term while the '-' represents the
  opposite. The output of each of the product terms is avaliable to all of the
  sum ( OR ) terms in the OR array. The pattern representing the main and 
  array may be edited manually by the user. To edit the main and array select
  'E' from the following prompt:

        Enter ESC to end display, E to edit display, CR to view next 8 rows

     Change the  input   term  to either  an 'X'  or a  '-' by  entering  the
  appropriate character  from the  keyboard. Use the left and right arrows to
  position the  cursor over  the input    term to  be changed.   When through
  editing depress  the <ESC> key to display the rest of the product terms or
  depress the <ENTER> key to edit the next product term. Select '.' when the
  above prompt reappears to return to the EDIT BUFFER menu.
@@RESET
       The reset product ( AND ) term is displayed when this function is
  selected.   The data  is displayed  as a line  of  'X' and '-' characters
  arranged to  represent the 39V18 reset product term.  An 'X' represents
  the connection  of an input to the AND term while the '-' represents the
  opposite. The pattern representing the reset product term may be edited
  manually by the user. Change the  input   term  to either  an 'X' or a '-'
  by  entering  the appropriate character  from the  keyboard. Use the left
  and right arrows to position the  cursor over  the input term to be changed.
  When through press <ENTER> to return to the EDIT BUFFER menu.
@@OE
       The contents of the main and array is displayed when this  function is
  selected.   The data  is displayed  as an  array of  'X' and '-' characters
  arranged to  represent the product terms which control the output buffers of
  each output. An 'X' represents the inclusion of an input in the product term
  while the '-' represents the opposite. The pattern representing the output
  enable and array may be edited manually by the user. To edit the output
  enable array select 'E' from the following prompt:

        Press E to edit output enable product terms

     Change the  input   term  to either  an 'X'  or a  '-' by  entering  the
  appropriate character  from the  keyboard. Use the left and right arrows to
  position the  cursor over  the input    term to  be changed.   When through
  editing depress  the <ESC> key to display the rest of the product terms or
  depress the <ENTER> key to edit the next product term. Press <ENTER> when the
  above prompt reapears to return to the EDIT BUFFER menu.
@@OR
       The contents of the OR array is displayed when this  function is
  selected.   The data  is displayed  as an  array of  'X' and '-' characters
  arranged to represent the sum ( OR )  terms in the 39V18. An 'X' represents
  the inclusion of an output of a product term in the sum term while the '-' 
  represents the opposite. The output of each of the product terms is avaliable
  to all of the sum ( OR ) terms in the OR array. The pattern representing the
  OR array may be edited manually by the user. To edit the OR array select
  'E' from any of the following prompts:

    Enter ESC to end display, E to edit display, CR to view OLMC SUM term rows
    Enter ESC to end display, E to edit display, CR to view SLMC SUM term rows
    Enter E to edit display, CR to return to edit menu

     Change the  input   term  to either  an 'X'  or a  '-' by  entering  the
  appropriate character  from the  keyboard. Use the left and right arrows to
  position the  cursor over  the input    term to  be changed.   When through
  editing depress  the <ESC> key to display the rest of the sum terms or
  depress the <ENTER> key to edit the next sum term.
@@ARCH18
    Selecting this function will allow the user to edit the architecture fuses
  in the  39V18  buffer.  These fuses are grouped  according  to function  and
  displayed one row at a time.   A row  may be edited using  <,>,X and -.
         OLMC OUTPUT PIN  14 15 16 17 18 19 20 21 22 23
         OLMC clock fuses  X  X  X  -  X  X  X  X  X  X
  The - fuse above represents the state of the clock fuse for pin 17.
   The architecture of the 39V18 has 18 "outputs". Eight of these are "buried"
  and can be used for internal states. Each of the outputs has associated with
  it a MACRO CELL. The Buried outputs have State Logic Macro Cells (SLMC) and
  the other outputs have Output Logic Macro Cells (OLMC). These cells provide
  the following.
  1) Clock fuse  (OLMC or SLMC) output clocked from array or pin 13
  2) Outsyn fuse (OLMC or SLMC) output registered or combinatorial
  3) XORE fuse   (OLMC or SLMC)	'E' sum term polarity control
  4) XORD fuse   (OLMC only)    'D' sum term polarity control

   In addition there are Input Logic Macro Cells and I/O Logic Macro Cells.
  These provide the following.
  1) Syn fuse   ( ILMC or IOLMC ) input is synchronus or not
  2) Latch fuse ( ILMC or IOLMC ) input is latched or not
@@CKS
    The fuse checksum is calculated by treating groups of 8 fuses as bytes and
  adding them to form an unsigned 16 bit sum. Each byte is formed by using the
  lowest number fuse for the least significant bit and so on. For example  the
  first byte would have fuse 0 as its LSB and fuse 7 as its MSB.   The current
  value of the  checksum is displayed  whenever a device is loaded , a file is
  downloaded  or upon  exit from the edit menu.  Selecting Checksum will force
  recalculation and display of the checksum.
@@16V8
      Select a 16V8 as the target device. The programmer will be checked for a 
  16V8 prior  to LOAD, VERIFY or PROGRAM operations.  Download operations will
  work correctly only with a file assembled for a 16V8. Upload operations will
  produce a JEDEC file for a 16V8.
@@16Z8
      Select a 16Z8 as the target device. The programmer will be checked for a 
  16Z8 prior  to LOAD, VERIFY or PROGRAM operations.  Download operations will
  work correctly only with a file assembled for a 16V8. Upload operations will
  produce a JEDEC file for a 16Z8.
@@20V8
      Select a 20V8 as the target device. The programmer will be checked for a 
  20V8 prior  to LOAD, VERIFY or PROGRAM operations.  Download operations will
  work correctly only with a file assembled for a 20V8. Upload operations will
  produce a JEDEC file for a 20V8.
@@39V18
      Select a 39V18 as the target device. The programmer will be checked  for 
  a 39V18 prior to LOAD, VERIFY or PROGRAM operations. Download operations will
  work correctly only with a file assembled for a 39V18. Upload operations will
  produce a JEDEC file for a 39V18.
@@16V8RAL
      A sub-menu will appear to allow selection of the desired subset of the 
  16V8. Selection of a subset of the 16V8 will result in the following. The
  programmer will be checked for a 16V8 or a RAL which matches the subset you
  have chosen prior to LOAD, VERIFY or PROGRAM operations. Download operations
  will work correctly only with a file assembled for the subset. Upload
  operations will produce a JEDEC file for the subset.
@@16Z8RAL
      A sub-menu will appear to allow selection of the desired subset of the 
  16Z8. Selection of a subset of the 16Z8 will result in the following. The
  programmer will be checked for a 16Z8 prior to LOAD, VERIFY or PROGRAM
  operations. Download operations will work correctly only with a file
  assembled for the subset. Upload operations will produce a JEDEC file
  for the subset.
@@20V8RAL
      A sub-menu will appear to allow selection of the desired subset of the 
  20V8. Selection of a subset of the 20V8 will result in the following. The
  programmer will be checked for a 20V8 or a RAL which matches the subset you
  have chosen prior to LOAD, VERIFY or PROGRAM operations. Download operations
  will work correctly only with a file assembled for the subset. Upload
  operations will produce a JEDEC file for the subset.
@@TEST
      A sub-menu will appear to allow selection of one of several tests to
  be executed. These tests have been developed in cooperation with Lattice
  Semiconductor Co and are intended for use only by manufacturers of GAL
  devices.
@@EDIT16
      This executes a test routine which performs the following steps in
  an endless loop.

      1) enter 16V8/20V8/16Z8 edit mode.

      2) read MES ( Vie = 12 volts ) and determine value for Vie and Tpwp.

      3) perform a bulk erase cycle.

      4) write MES back to part.

      This loop will work for 16V8, 20V8 and 16Z8. Press any key and
  the loop will stop after completing step 4.    
@@EDIT39
      This executes a test routine which performs the following steps in
  an endless loop.

      1) enter edit mode.

      2) exit edit mode.

      This loop will work for 16V8,20V8,16Z8 or 39V18. Simply select the 
  desired device and the edit mode will be entered and exited accordingly.

  Press any key and the loop will stop after completing step 2.
@@WRITE
      This executes a test routine which performs the following steps in
  an endless loop.

      1) enter 16V8/20V8/16Z8 edit mode.

      2) read MES ( Vie = 12 Volts ) and determine value for Vie and Tpwp.

      3) perform as bulk erase cycle.

      4) write MES back to part.

      5) write rows 0 .. 31 with a 0101.... pattern.


      This loop will work for 16V8, 20V8 and 16Z8. Press any key and
  the loop will stop after completing step 5.
@@SERIAL
      The serial number of the Logic Lab being used is read and displayed.

@@IGNORE
      Causes the MES ( Manufacturers Electronic Sigunature ) to be read but
  ignored. This option will allow a device with an invalid MES to be read 
  or programmed. When used in conjuction with the Change MES option a MES can
  be entered into a device.

@@CHANGE
      Allows the MES ( Manufacturers Electronic Sigunature ) to be edited.
  If this option has been selected, the programming cycle will pause, the
  current value of the MES will be displayed ( in HEX ) and the user may
  alter the MES. Cursor keys may be used to position the cursor on the HEX
  digit(s) to be changed. ENTER enters the changes and the programming cycle 
  will continue using the new MES. NOTE no checking is done for valid HEX
  entry.
@@FAST
      Set/Reset a flag which when set will force the read/write/verify routine
  to set the architecture row per the specification for the 10 ns GALS
@
