home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-387-Vol-3of3.iso / l / lasi41b.zip / LHI.HLP < prev    next >
Text File  |  1993-01-18  |  187KB  |  4,447 lines

  1. ≡≡
  2. Basic Information
  3.  
  4.  
  5.  Introduction
  6.  
  7.                 LASI (LAyout System for Individuals(ists))
  8.  
  9.                            (Pronounced "LAZY")
  10.  
  11.                                Version 4.1
  12.  
  13.  
  14.   The LASI CAD System consists of a main program LASI.EXE, a set of utility
  15.   programs and a help program LHI.EXE. It was originally written for the
  16.   author's own professional use to do IC and semiconductor device layout on
  17.   a personal computer. It has also been used for hybrids, printed circuit
  18.   boards, schematic diagrams and other precision drawing applications. LASI
  19.   has become particularly valuable to students, schools, universities, or
  20.   anyone who doesn't have the funding for more elaborate drawing systems.
  21.  
  22.   LASI version 4.1 has a new feature that allows basic cells to shared
  23.   between different drawings or different computers. This is allows groups
  24.   of people such as students to do their own layouts, but use common
  25.   elements that have been previously developed. Version 4.1 has therefore
  26.   been given the nickname the "educational" version, although it has the
  27.   full capabilities of previous versions and more.
  28.  
  29.   LASI is intended to be friendly and intuitively obvious, which makes it
  30.   easy to learn and operate by occasional users. Once the basics are
  31.   understood, the commands usually require little additional explanation.
  32.   Most commands operate on the drawing globally, so that there are no
  33.   special editing procedures for different parts of a drawing. There are no
  34.   hierarchical command structures with pull down menus. All commands are
  35.   essentially random access through menus at the side of the display and
  36.   may be easily aborted. Information is usually entered by mouse or
  37.   keyboard. When a command is executed, the program is designed so that the
  38.   results are displayed as soon as possible, to give good operator
  39.   interaction.
  40.  
  41.   Drawings made using LASI can be translated into other drawing systems by
  42.   utility programs. Presently, translation to and from CALMA Stream Format
  43.   and to Hewlett-Packard Graphics Language (HP-GL) is available. LASI also
  44.   has a drawing language of its own called TLC. Written in plain ASCII
  45.   text, TLC can be used to interchange drawings or to write auxiliary
  46.   programs that operate on LASI drawings.
  47.  
  48.   LASI is intended to be propagated by software alone. There is therefore
  49.   no printed manual. This LASI Help and Information program LHI.EXE
  50.   displays all the documentation, and individual topics can be printed if
  51.   desired. If a printed manual is needed, a program MANUAL.EXE is supplied
  52.   that builds a manual complete with index from any LASI help file (files
  53.   with .HLP extension).
  54.  
  55.  
  56.   You should read the remaining Basic Information topics. After that, you
  57.   can work your way through the General Information topics.
  58.  
  59.   If you are in a hurry to run LASI, it is recommended that you read the
  60.   Hardware General Information topic to see if your PC is capable of
  61.   running LASI adequately, and then go to the Quick Start topic.
  62.  
  63.   If you are new to LASI you should use the demonstration IC layout as a
  64.   tutorial, if it has been included on the distribution disk, or is
  65.   available on the network where you downloaded LASI. By working with a
  66.   simple layout, you will get a good idea of how LASI works.
  67.  
  68.   If you have been using LASI version 3.X or 4.0, you MUST read the
  69.   Converting Versions topic. You should also read the System Log, to see
  70.   what changes have been made since the last release.
  71.  
  72.  Installing LASI
  73.  
  74.   The following information outlines the installation procedures for
  75.   installing LASI on any PC. If you are reading this, you probably have
  76.   done the basic installation already. The information is given here so
  77.   that you can verify that installation has been done correctly.
  78.  
  79.   The system files are distributed in compressed form. The distribution
  80.   will be either a floppy disk version consisting of a self-extracting
  81.   executable file named LASI41.EXE, or a network version consisting of a
  82.   set of files compressed into a file LASI41.ZIP. If distributed on floppy
  83.   disk, an installation batch file INSTALL.BAT MUST be included, along with
  84.   possible optional files. If distributed on a network, the README. file,
  85.   containing installation instructions MUST be included within LASI41.ZIP.
  86.  
  87.   The system files are listed in the System Contents help topic. If for
  88.   some reason you obtain LASI as individual files, you should check to see
  89.   if you have a complete set of files. All files should have the SAME DATE
  90.   to insure compatibility.
  91.  
  92.   LASI will be ready to run with just the basic installation. When you are
  93.   more familiar with LASI's workings you can do the advanced installation.
  94.  
  95.  
  96.   Installation procedure for networked ZIP compressed files:
  97.  
  98.   1. Make a subdirectory named "\LASI4" on your hard disk under the root
  99.      directory.
  100.  
  101.   2. Using PKUNZIP or similar program, uncompress and copy the files in
  102.      LASI41.ZIP into the \LASI4 subdirectory.
  103.  
  104.   3. Add the path "disk:\LASI4" to DOS using the "PATH" DOS Command,
  105.     where "disk" is the hard disk's letter name.
  106.  
  107.  
  108.  
  109.   Installation procedure for self-extracting floppy disk version:
  110.  
  111.   1. Run the installation batch file INSTALL.BAT.
  112.  
  113.     This will create a subdirectory named "\LASI4" on your hard disk, if it
  114.     has not yet been created, and will extract and copy the system files to
  115.     that subdirectory.
  116.  
  117.   2. If there is a demonstration present on the distribution disk, you can
  118.      install it by running the associated batch file that should have been
  119.      included. If you are new to LASI you should install the demonstration,
  120.      otherwise you can skip it.
  121.  
  122.   3. Add the path "disk:\LASI4" to DOS using the "PATH" DOS Command, where
  123.      "disk" is the hard disk's letter name.
  124.  
  125.   It is usually easiest to put the "\LASI4" path in your AUTOEXEC.BAT file.
  126.  
  127.  Quick Start
  128.  
  129.   If you are eager to try out LASI here is what to do:
  130.  
  131.   1. Install a mouse and its driver software if you havn't already.
  132.  
  133.     You must have an active mouse to operate LASI.
  134.  
  135.   2. Create a "drawing directory" on the hard disk where you installed the
  136.      system files and make that directory your default directory.
  137.  
  138.     DO NOT make drawings in the \LASI4 directory.
  139.  
  140.   3. Copy the FORM.DBD file from the \LASI4 directory to the drawing
  141.      directory.
  142.  
  143.     The FORM.DBD distributed with the system files is a "generic" version
  144.     and should work with most hardware.
  145.  
  146.   4. Run LASI.EXE of you have a coprocessor, or LASIA.EXE if you don't have
  147.      a coprocessor.
  148.  
  149.     The main program should come up in "System Mode". You can get help on
  150.     any command by putting the mouse cursor on a command button and then
  151.     pressing F1.
  152.  
  153.   You are now free to experiment on your own!
  154.  
  155.  Converting Versions
  156.  
  157.  
  158.   Version 3.X to Version 4.0
  159.  
  160.   If you have not been using LASI version 3, or do not have drawings made
  161.   using it, you can skip these next instructions.
  162.  
  163.   LASI version 4 has many new features over version 3. You should read the
  164.   System Log topic for a listing of the major changes.
  165.  
  166.   1. Version 4 of LASI now keeps its files in the directory "\LASI4". It is
  167.      important that the MS-DOS PATH be changed to include "\LASI4" and not
  168.      "\LASI" as was previously used, since many of the new files have the
  169.      same name as the old.
  170.  
  171.   2. As a protection, the file name extensions have been changed so that
  172.      internal files are invisible to the wrong version. You need to convert
  173.      your internal files (.BPV and .CEL) to version 4 files (.BP4 and
  174.      .CL4). To do this quickly, the program 3TO4.COM has been supplied. To
  175.      convert your files simply run 3TO4.COM while logged into a drawing
  176.      directory. 3TO4.COM will act only on the files in that directory and
  177.      will create new files and leave the old files unchanged.
  178.  
  179.   3. Converting back to version 3 can be done by using the TLC.EXE program.
  180.      However, any text made using LASI version 4 will be ignored. The NEW
  181.      TLC.EXE must be used to make the TLC files, and the OLD TLC.EXE must
  182.      be used to convert any TLC files to version 3 internal files.
  183.  
  184.   4. The file CONSTS.DBD used in version 3 has been replaced by the file
  185.      CONSTS4.DBD. The new file contains more information in a different
  186.      order than the old CONSTS.DBD file. You may leave the old file in your
  187.      drawing directory so that you can use version 3 again for some reason.
  188.  
  189.   5. The CELLS.DBD file has been replaced by the CELLS4.DBD file This is
  190.      really the same file, but the name has been changed to prevent the
  191.      wrong  version of LASI from writing to it.
  192.  
  193.   6. FORM.DBD in version 4 contains new parameters. LASI is however smart
  194.      enough to read for parameter titles so that version 3 can read through
  195.      a version 4 FORM.DBD file and pick out only what it needs.
  196.  
  197.  
  198.   Version 4.0 to Version 4.1
  199.  
  200.   If you have not been using LASI version 3 or 4.0, or do not have drawings
  201.   made using either, you can skip these instructions.
  202.  
  203.   1. Version 4.1 of LASI allows basic cells to be taken from a common pool
  204.      located on the same PC or from a Local Area Network. You may run LASI
  205.      4.1 on any drawing done using LASI 4.0. However, the reverse is true
  206.      only if you have no pooled cells. If there are pooled cells the
  207.      results will be unpredictable, but generally not fatal. Read the new
  208.      General topics: Pooling, Pooling Old Cells, Attached Cells and the
  209.      Command topic ATTACH.
  210.  
  211.   2. Version 4.1 also has 64 layers available instead of the previous 32.
  212.      The  only change necessary is to modify the CONSTS4.DBD file. A
  213.      converter program 4TO41.COM has been furnished to easily create the
  214.      new file.
  215.  
  216.   3. The utility programs have been modified to work with 64 layers. They
  217.      will work on old 4.0 drawings, but 4.0 utilities will only work on the
  218.      first 32 layers of version 4.1 drawings.
  219.  
  220.  Terms of Distribution
  221.  
  222.   The LASI System can be copied and distributed by anyone. For floppy
  223.   distribution, the self-extracting executable LASI41.EXE, the installation
  224.   batch file INSTALL.BAT and any optional files should be copied directly
  225.   from the distribution disk.
  226.  
  227.   For the network version, the file LASI41.ZIP need only be distributed.
  228.   Any optional files may be included separately. DO NOT put any optional
  229.   files into the LASI41.ZIP compressed file.
  230.  
  231.   Files should NOT be distributed individually, since all the files are
  232.   intended to work with each other in the same distribution. Files should
  233.   all have the SAME DATE.
  234.  
  235.   LASI41.EXE or LASI41.ZIP will fit on a single 5.25" or 3.5" HD floppy
  236.   disk. Breaking the file set into smaller pieces is strongly discouraged
  237.   because of the possibility of losing files or mixing file dates.
  238.  
  239.  
  240.   Updates
  241.  
  242.   An attempt will be made to keep known users updated with the latest
  243.   version by informing them that a new version is available, where (on a
  244.   network) it is available, or by just sending out new floppy disks.
  245.  
  246.   If dangerous bugs are discovered an attempt will be made to notify or
  247.   send corrected programs to known users.
  248.  
  249.   The author maintains a database of know users, but unknown secondary
  250.   users should be kept updated by those who gave them the software.
  251.  
  252.   Updating secondary users is a responsibility that should be taken
  253.   seriously. People have been found using ancient versions of the programs,
  254.   which have since been debugged, greatly improved, or completely revised.
  255.  
  256.   To prevent continuously notifying or sending updates to anyone who really
  257.   isn't using LASI, There is a CUTOFF PERIOD OF ONE YEAR, after which
  258.   updates will have to be requested.
  259.  
  260.   As a general rule, to be sure that you have the most current software
  261.   contact the author directly.
  262.  
  263.  
  264.   Licensing
  265.  
  266.   The LASI System has been written over a period of several years, mostly
  267.   for the author's own professional use, and therefore was not intended as
  268.   profit-making software.
  269.  
  270.   For this reason, LASI is free for educational use in order to foster IC
  271.   design as a heuristic exercise and a true art. It is also free for non-
  272.   profit applications by individuals.
  273.  
  274.   However, if LASI.EXE (or LASIA.EXE) is used to MAKE A PROFIT, then a
  275.   VOLUNTARY license fee of $99 PER COMPUTER on which it is installed is
  276.   requested. This license is for a period of ONE YEAR and should be made
  277.   payable to the author.
  278.  
  279.   When LASI is licensed, FREE UPDATES including any NEW PROGRAMS will be
  280.   provided during the license period, and will continue to be provided if
  281.   the license is renewed.
  282.  
  283.   This fee is not just to ease the conscience of someone making a profit
  284.   and using LASI for free, but helps to pay for improving LASI with new
  285.   hardware and software and sending out updates to everyone. The fee is not
  286.   expected to be a compensation for the endless hours of coding and
  287.   debugging that have gone into producing LASI.
  288.  
  289.  Terms of Liability
  290.  
  291.   The LASI System is constantly being revised and is distributed on an
  292.   "as is" basis. Since the programs are quite complicated, software bugs
  293.   may be found, often when someone does something that only rarely would be
  294.   done. If you have what you think is a real bug, then report it, and an
  295.   attempt will be made to fix it.
  296.  
  297.   Neither the author nor any person distributing the LASI System assumes
  298.   any responsibility for whomever uses the programs or for how the programs
  299.   are used. Also, neither the author nor any person distributing the
  300.   software assumes any liability for any losses monetary or otherwise
  301.   incurred related to the use of the programs.
  302.  
  303.  Final Comment
  304.  
  305.   With the proper software, personal computers have easily become adequate
  306.   for small to medium sized IC layout applications. LASI can give everyone
  307.   a personal computer based work station.
  308.  
  309.   Although it may be used that purpose, LASI was not really intended for
  310.   doing routine IC or ASIC design. Instead, LASI was developed as a
  311.   "fundamental" drawing system, which can generate arbitrary shapes that
  312.   might be needed in any kind of application. It was also intended for
  313.   people who think in a particular spatial way, as anyone working with it
  314.   will soon realize.
  315.  
  316.   Actually, LASI was really intended to put some fun and relaxation into
  317.   doing layout tasks by allowing a person to work when and where they want,
  318.   and therefore, it is believed, do better more creative work.
  319.  
  320.   Anyone using LASI for fun or profit is encouraged to contact me with any
  321.   suggestions or requests for additional utility or conversion programs.
  322.  
  323.  
  324.                                         Dave Boyce
  325.  
  326.                                         Dr. David E. Boyce
  327.                                         143B Bergdorf Rd., RR1
  328.                                         Parish, NY 13131, USA
  329.                                         315-625-7291
  330.  
  331. General Information
  332.  
  333.  About LASI Programs
  334.  
  335.   The program LASI.EXE is written in C and assembly language. The C source
  336.   code consists of three separate modules containing, briefly:
  337.  
  338.     1. The main(), System Mode command and utility functions
  339.     2. The Cell Mode command functions
  340.     3. The drawing, file and hardware functions.
  341.  
  342.   For maximum speed, the elementary graphical functions are written in
  343.   assembly language. The C modules are complied using Microsoft C/C++ 7.0,
  344.   and the assembly is compiled using Microsoft Macro Assembler 5.1. The
  345.   four compiled object codes are linked together to form LASI.EXE as you
  346.   see it.
  347.  
  348.   Although LASI uses mostly integer math, it does use some floating-point
  349.   math during its drawing process. For this reason LASI is compiled in two
  350.   different ways:
  351.  
  352.   1. For use with a coprocessor, it is compiled with inline coprocessor
  353.      instructions, making LASI.EXE.
  354.  
  355.   2. For use without a coprocessor, it is compiled with alternate floating-
  356.      point math function calls, making LASIA.EXE.
  357.  
  358.   LASI draws about twice as fast with a coprocessor.
  359.  
  360.   Some of the more complex utility programs, such as LASIDRC.EXE, are also
  361.   written using C/C++ 7.0, while some of the simpler utility programs are
  362.   written in Microsoft BASIC 7.1. All utility programs are compiled using
  363.   alternate floating-point math function calls, so they will all run the
  364.   same with or without a coprocessor.
  365.  
  366.  Advanced Installation
  367.  
  368.   Once you have mastered getting LASI going and probably know what you are
  369.   doing, you can "customize" LASI to your particular hardware or drawing
  370.   style. To do this you can set certain parameters in the FORM.DBD file as
  371.   follows:
  372.  
  373.   1. If you have an appropriate line printer or plotter, set the FORM.DBD
  374.      file's "hcopy=" and "plot=" parameters to allow hard copies and plots
  375.      to be made. Use EDLIN.COM or MS-DOS 5's EDIT to change the FORM.DBD
  376.      file, to prevent any word processor formatting characters from being
  377.      inserted into the FORM.DBD file. Read the Form File topic and the HCPY
  378.      Command topic.
  379.  
  380.   2. Set the allocation parameters "rank=","box=",path=",vtx=" and "cell="
  381.      in the FORM.DBD files to the desired amounts. If you don't know how
  382.      many you need to allocate, use the default values. Read the Allocating
  383.      Memory topic.
  384.  
  385.   3. If you have extended memory, install a RAM disk by putting the driver
  386.      into your CONFIG.SYS file. Turn on the RAM disk provision by setting
  387.      the "rdisk=" parameter in the FORM.DBD file to the letter of the RAM
  388.      disk. Read the Using RAM Disk topic.
  389.  
  390.   4. Once you have been using LASI for some time you will have some
  391.      favorite commands that you use often. You can write these into the
  392.      FORM.DBD file under the "fkey=" parameter, and further customize LASI
  393.      to your own way of working. Read the Key Assignment topic.
  394.  
  395.  Allocating Memory
  396.  
  397.   A LASI drawing is made out of boxes, paths, polygons, text and cells,
  398.   which are collectively called OBJECTS. The data for these objects is kept
  399.   in what is known as conventional memory, the memory from 0K to 640K
  400.   bytes. The LASI.EXE program is loaded at some low address determined by
  401.   the DOS system. LASI.EXE will use about 235K, and the remaining memory
  402.   space can be used for drawing data.
  403.  
  404.   Conventional Memory Map:
  405.                                       Drawing Data        small prgms.
  406.           DOS+TSRs    LASI.EXE     (free in System Mode)  or more data
  407.         ├───────────┼────────────┼────────────────────────┼──────┤
  408.       0K <Minimum>    <≈235K >           <≈310K>          <64K> 640K
  409.  
  410.  
  411.   The partitioning of the data memory space between various types of
  412.   objects is written MANUALLY by the user into the FORM.DBD file. In future
  413.   versions of LASI there may be a memory management system that allocates
  414.   memory dynamically by blocks on demand.
  415.  
  416.   Since the applications for LASI or even the drawing habits of the user
  417.   can vary considerably, the required numbers of each type of object can
  418.   also vary. For instance, when doing an IC layout drawing, you might use
  419.   boxes heavily. If a schematic is being drawn, polygons and text will be
  420.   used more often. When LASI starts it reads the Form File and allocates a
  421.   fixed number of each type of object. The number can usually be increased
  422.   if necessary, and warnings occur if a limit is reached.
  423.  
  424.   There is an automatic limit on the maximum number of each type of object
  425.   that can be allocated, but the amount of memory that can be requested by
  426.   LASI with full allocations is just about all that remains of 640K of
  427.   conventional memory. DOS needs at least 64K available to load almost
  428.   anything at first. (It can then give memory back.) If you fill your
  429.   memory, you won't be able to call some other small programs from LASI,
  430.   such as the screen hardcopiers, or even help. To make the most memory
  431.   space available, you should minimize the "resident" programs (TSRs) and
  432.   drivers that you install when booting up your computer.
  433.  
  434.   With the newer DOS's you can load much of your resident software into
  435.   high memory. Read the MS-DOS 5 topic.
  436.  
  437.   You can also gain quite a bit of memory by using one of the better memory
  438.   managers such as QEMM-386 or 386MAX, which move TSRs and drivers into
  439.   high memory more effectively than DOS.
  440.  
  441.  
  442.   You should be relieved to know, however, that most drawings can be done
  443.   with nowhere near the maximum number of objects permitted. Particularly,
  444.   if you properly use cell nesting. That is, you use the wise practice of
  445.   making repetitious drawing sections into cells. Additionally, LASI in
  446.   System Mode gives back the memory allocated for objects anyway, so that
  447.   larger programs can be called from System Mode than from Cell Mode.
  448.  
  449.   Boxes are allocated independently. You will tend to use boxes in some
  450.   situations where rectangular patterns are favored, such as making simple
  451.   transistors in an IC layout. In that case, you will probably allocate
  452.   many boxes. Each box uses 10 bytes of memory.
  453.  
  454.   Paths and vertices although dependent are allocated independently because
  455.   there is no really good relationship between them. Each path requires at
  456.   least 2 vertices, but after that the number of vertices per path will
  457.   depend on what shapes you make. Curved figures can use many vertices, but
  458.   paths used for orthogonal interconnections will use just a few. LASI and
  459.   the various utility programs treat paths and vertex numbers as virtually
  460.   unrelated. Each path uses 6 bytes of memory, and each vertex uses 8 bytes
  461.   of memory.
  462.  
  463.   It has become a practice on larger CAD systems to use nothing but
  464.   polygons and eliminate boxes. If you work that way, allocate very few
  465.   boxes so that memory will available for paths and vertices.
  466.  
  467.   The depth to which you intend to nest cells is set by the user in the
  468.   Form File as the maximum RANK. The required number of cells depends on
  469.   the depth to which you nest your drawings. The maximum rank that you set
  470.   is used to divide the total memory space available to cells. If you set
  471.   the maximum rank low, you GET more cells per rank; if the maximum rank is
  472.   set high, you NEED less cells per rank.
  473.  
  474.   You can save memory by not setting the maximum rank higher than you will
  475.   ever use. For each rank you require memory space for the number of cells
  476.   allocated. Usually setting rank to 4 or 5 is sufficient. Each cell uses 6
  477.   bytes multiplied by the maximum number of ranks.
  478.  
  479.   Read the Form File topic for more information.
  480.  
  481.  Attached Cells
  482.  
  483.   A cell that is kept in a common cell pool that is shared among several
  484.   drawings is called an ATTACHED cell. The attached cell will be draw
  485.   normally, but will follow certain rules and will have some special
  486.   properties:
  487.  
  488.      Attached cells are protected and may NOT be changed using Cell Mode.
  489.  
  490.      Attached cells must have the same physical scaling as the drawing.
  491.  
  492.      Attached cells must fit within the allocated numbers of boxes, paths
  493.       and vertices in the FORM.DBD file.
  494.  
  495.      Attached cells may NOT be renamed with the RENAM command.
  496.  
  497.      Attached cells are searched for in the pool directory only, while
  498.       normal cells are searched for in the drawing directory only. If a
  499.       cell file (BP4) is not found, a "null" cell is drawn. LASI draws a
  500.       null cell as a dotted outline. A null cell is different from a cell
  501.       that has nothing in it in that there is no BP4 file for a null cell.
  502.  
  503.      Attached cells may be added to the drawing directory in two ways:
  504.  
  505.     1. You can use the System Mode IMPORT command and give the imported
  506.        cell the SAME NAME. This copies the cell's BP4 file to the drawing
  507.        directory and turns the attached cell into a normal cell.
  508.  
  509.     2. You can use the IMPORT command and give the copied cell a NEW NAME.
  510.        This is preferred if you are going to modify the cell and use it in
  511.        a few places.
  512.  
  513.  
  514.      Attached cells may be smashed using the SMSH command. This
  515.       effectively adds an attached cell's boxes and paths to the current
  516.       cell.
  517.  
  518.      Attached cells may be used in the MAKE command. They will be added to
  519.       the new cell as would any other cell, but they will still be attached
  520.       cells.
  521.  
  522.      The commands OUTL, FULL, IDEN and SHOW work on attached cells.
  523.  
  524.      If you are using a RAM disk, the first time you draw a attached cell
  525.       it will be copied to the RAM disk. It will still remain protected but
  526.       will draw faster.
  527.  
  528.      Attached cell names appear in red in the LIST command cell listing.
  529.  
  530.  
  531.   Cells with rank greater than 1 may be attached, but only the boxes, poly
  532.   and paths will be drawn and the cell will be forced to rank 1. The reason
  533.   for this is that LASI presently uses pointers to cells in its cell
  534.   placement data. These pointers would be different for different drawings.
  535.   The TLC program must be used to install any cells containing other cells.
  536.   More often, cells containing other cells are usually drawing specific and
  537.   would not be shared with other drawings anyway.
  538.  
  539.  Archiving
  540.  
  541.   It is highly recommended that you keep current backups or archives of
  542.   your drawings. You should use the TLC external data format. The TLC
  543.   format is written in ASCII text, and is very forgiving. It may in fact be
  544.   written or repaired using a text editor.
  545.  
  546.   To dump a complete drawing you only need to run TLC.EXE in a drawing
  547.   directory, or alternately, to dump only a certain cell, give it the name
  548.   of the that cell and TLC.EXE will make all the required cells. Backup TLC
  549.   files may be written directly to a floppy disk if they will all fit, or
  550.   they can be written to a hard disk and then to one or more floppy disks.
  551.  
  552.   Once TLC files are made, a complete drawing or individual cells can be
  553.   reconstructed if necessary.
  554.  
  555.   It might be said that TLC is the true way of storing LASI drawings. The
  556.   internal data files (BP4 and CL4 files) are really a convenience to
  557.   reduce the startup time for LASI.
  558.  
  559.   Read the TLC Conversion topic.
  560.  
  561.  Backups
  562.  
  563.   LASI contains an amount of protection against drawing loss. It will write
  564.   your latest drawing files to your hard disk at certain times so that if
  565.   the computer is turned off or fails, or you simply make a mistake or
  566.   change your mind, your drawing will survive.
  567.  
  568.   Whenever you exit Cell Mode all files are updated on the hard disk. This
  569.   includes the BP4 and CL4 files for the particular cell and the CELLS4.DBD
  570.   and CONSTS4.DBD files. This happens even if you are using a RAM disk for
  571.   temporary file storage.
  572.  
  573.   There are two files CELLBKUP.BP4, CELLBKUP.CL4 that store your cell as it
  574.   was when you enter Cell Mode. These may be used to return a cell to the
  575.   same state that it was when you entered Cell Mode.
  576.  
  577.   Also, there are two files SORTBKUP.BP4 and SORTBKUP.CL4 that are updated
  578.   when you use the SORT command. You may use these files to restore if you
  579.   make a major mistake. These files are also updated by a timed automatic
  580.   sort that protects your drawing even if you leave it unattended for a
  581.   while and someone comes by and turns off the computer.
  582.  
  583.   Finally, there are two files DSBKUP.BP4 and DSBKUP.CL4 that are updated
  584.   whenever you use the DEL or the SMSH command. You may recover from an
  585.   accidental delete or smash using these files.
  586.  
  587.  Command Menus
  588.  
  589.   Most operations are done by selecting a command from a menu on the side
  590.   of the screen. The mouse cursor will turn into a box around the command
  591.   that will be chosen. Clicking the right mouse button activates the
  592.   command.
  593.  
  594.   In Cell Mode there are two different menus. To flip between them, simply
  595.   click the right mouse button with the cursor in the drawing window, not
  596.   in the menu area.
  597.  
  598.   In Cell Mode the current resident command is shown at the top center of
  599.   the screen.
  600.  
  601.   The colors usually mean something. Generally the cyan commands affect
  602.   boxes and paths, the yellow affect cells, and the green both, with many
  603.   exceptions. Commands intended to stand out are generally red. Some
  604.   commands are colored just to look pretty or give good contrast.
  605.  
  606.  Command Types
  607.  
  608.   The commands that are found on the menus do many things. The commands all
  609.   have help topics in Command Information.
  610.  
  611.   The System Mode commands either operate immediately or request additional
  612.   information to be typed in. The commands may be aborted or continued to
  613.   completion.
  614.  
  615.   Cell Mode commands may be grouped into four types:
  616.  
  617.   1. RESIDENT commands are commands that stay in place until you change to
  618.      another resident command. There is always a default resident command
  619.      when working on a drawing.
  620.  
  621.     Examples of resident commands are:  ADD, GET, PUT, CGET and CPY.
  622.  
  623.   2. ONE-TIME commands are commands that abort any other commands that may
  624.      be in progress, but are not retained.
  625.  
  626.     Examples of ONE-TIME commands are:  SORT, FILL, LAYR, and OBJ.
  627.  
  628.   3. WINDOW commands are commands that change the window that is displayed.
  629.      These commands are nestable within a resident command. For example,
  630.      you can reposition the window an unlimited number of times while you
  631.      still have the second point of a MOV pending. The command listed at
  632.      the top of the display changes color to tell you that you are in a
  633.      nested command that is asking for an input.
  634.  
  635.     The window commands are:  ARROWS, CNTR, DGRD, DRAW, FIT, GRID, OCTO,
  636.     OPEN, RDRW, VIEW, WGRD, RSTR, SAVE, XPND and ZOOM.
  637.  
  638.   4. DOS commands are commands that run other programs with LASI as the
  639.      shell. These commands can cause "out of memory" or "not available"
  640.      errors if you don't have enough RAM available.
  641.  
  642.     The DOS commands are:  DOS, HCPY, PLOT, TLC-IN, TLC-OUT and help F1.
  643.  
  644.   In System Mode, information is requested at the left of the screen. In
  645.   Cell Mode information is usually requested on the last line. Any default
  646.   values, shown in parentheses, will be retained by pressing ENTER or ESC.
  647.   Usually, ENTER continues the command and ESC aborts the command.
  648.  
  649.   Important:  Any command that is expecting a cursor input point can be
  650.     cancelled by selecting the same command, a new command or by pressing
  651.     ESC. Window commands can be cancelled within a resident command without
  652.     cancelling the resident command.
  653.  
  654.  Common Problems
  655.  
  656.   When LASI is started it checks for the FORM.DBD file, the CONSTS4.DBD
  657.   file, the CELLS4.DBD file and the Text Font File (usually TXT.DBD). It
  658.   also checks the hardware for the mouse and the kind of video adapter you
  659.   have. If there is a problem LASI should tell you. This may not be perfect
  660.   and if you crash first suspect the CONSTS4.DBD file. It may be incorrect.
  661.   Simply erase it from your drawing directory. LASI will make a new one.
  662.   CONSTS4.DBD files made with older versions of LASI are not guaranteed to
  663.   work with newer versions of LASI.
  664.  
  665.   If you crash or you get a "Not Available" message, when running programs
  666.   such as TLC.EXE or LASI2HP.EXE with LASI.EXE as the shell, you probably
  667.   have run out of conventional memory. Downsize the allocated space for
  668.   boxes etc. to reduce your memory requirements by changing the settings in
  669.   the FORM.DBD file.
  670.  
  671.   LASI checks memory, and refuses to execute if it thinks that there is too
  672.   little available, but it is not perfect because it really doesn't know
  673.   how much memory a program needs. DOS eventually determines this.
  674.  
  675.  
  676.   The LASI System is a very complex and evolving system. It is possible
  677.   that situations will occur with different hardware and software
  678.   environments that will cause difficulties. Once authentic problems are
  679.   reported they are usually fixed. Consult the author or your source of
  680.   this software for the latest version.
  681.  
  682.  Drawing Display
  683.  
  684.   When operating in Cell Mode the drawing area occupies most of the screen.
  685.   The command menu appears on the right of the screen, and status
  686.   information is displayed on the top and bottom of the screen.
  687.  
  688.  
  689.       ┌─ Cell(Rank)── Command (Point)──── Cursor Position ──┬─────────┐
  690.       │                                                     │         │
  691.       │                                                     │         │
  692.       │                                                     │         │
  693.       │                                                     │         │
  694.       │                                                     │         │
  695.       │                 Drawing Area                        │  Menu   │
  696.       │                                                     │  Area   │
  697.       │                                                     │         │
  698.       │                                                     │         │
  699.       │                                                     │         │
  700.       │   (Active Count etc.)                               │         │
  701.       ├─ View(layers)── Open(layers)─────────── Indicators ─┤         │
  702.       └─ wGrid ── dGrid ── Object ── Layer ── Width ────────┴─────────┘
  703.           (Input and Messages)
  704.  
  705.  
  706.   The top status line shows the name of the cell and its rank on the left.
  707.   Near the center is the name of the current command and the point to be
  708.   inputted. Commands usually display in cyan, but nested "window" commands
  709.   display in red.
  710.  
  711.   The top line also shows the current position of the mouse cursor. The
  712.   lowercase "w" or "u" prefixing X or Y indicates that the cursor is in the
  713.   "working" or the "unit" grid.
  714.  
  715.   The upper bottom line shows the layers that are viewed and open for
  716.   modification, and at the extreme right, the status of the cell outline
  717.   name, the path center line and the text reference keyboard toggle
  718.   switches. (Read Key Assignment and the OUTL, DRAW and TEXT Commands.)
  719.  
  720.   The upper bottom line may also display other information, such as the
  721.   number of active objects or IDEN command information.
  722.  
  723.   The lower bottom line normally displays the working and dotted grids, the
  724.   name or type of object that will be added with the ADD command, the layer
  725.   if the object is a box or path, and the width of the path.
  726.  
  727.   The lower bottom line also serves as an input line for various keyboard
  728.   inputs, such as direct X and Y coordinate inputs or text string inputs.
  729.  
  730.   The bottom line also displays certain warning messages that may be sent
  731.   to indicate a problem, for example, "RAM Disk Full or Unavailable ...",
  732.   which can occur quite often.
  733.  
  734.   When the bottom two lines return to their normal status information, this
  735.   indicates that a command has been successfully completed (or aborted) and
  736.   LASI is waiting for a new command.
  737.  
  738.  Drawing Speed
  739.  
  740.   On a fairly slow computer, drawing a large number of cells can take a
  741.   considerable amount of time. LASI has several features to allow you to
  742.   work on larger drawings more effectively. These are as follows:
  743.  
  744.   1. Pressing the ESC key or clicking the right mouse button causes a
  745.      drawing sequence to abort in two stages. The first stage forces cells
  746.      to be drawn as lightly dashed outlines. The second stops the present
  747.      cell's boxes and paths from being drawn. You don't have to draw
  748.      completely if you only want to locate a certain area. Just find where
  749.      the area is, abort further drawing and ZOOM in.
  750.  
  751.   2. Cells may be replaced by their outline, which draws almost instantly.
  752.      Read the OUTL and FULL Command topics.
  753.  
  754.   3. Objects that are too small to draw may be skipped by setting the
  755.      resolution properly. Read the SET Command topic.
  756.  
  757.   4. Objects that are out of a drawing window are remembered and are
  758.      skipped for certain commands.
  759.  
  760.   5. The cell files may be (and should be) automatically transferred to a
  761.      RAM disk. Read the RAM Disk topic.
  762.  
  763.   Note:  If you speed up drawing using first method, active box sides and
  764.     active vertices are still drawn or marked, and active cells are still
  765.     drawn as filled outlines. This is to indicate where an active object is
  766.     located.
  767.  
  768.  Error Messages
  769.  
  770.   Most messages are self-evident and appear in the dialog area in System
  771.   Mode, on the bottom line in Cell Mode, or on the top line in both modes
  772.   when DOS calls are made. Most error messages due to memory limitations
  773.   are less obvious and are as follows:
  774.  
  775.     "Not Enough Memory!" means that you have run out of memory when
  776.     starting LASI. You are requesting too much memory in your FORM
  777.     parameters.
  778.  
  779.     "Not Available!" means that LASI will not act as a "shell" to execute
  780.     other programs ("child" processes). If so, downsize your Form File
  781.     allocations if you can.
  782.  
  783.     "Rank Error!" means that you are trying to enter a cell that has a
  784.     higher rank than the limit that you have set in your Form File, or you
  785.     are trying to add a cell that has rank greater than or equal to the
  786.     cell on which you ar working.
  787.  
  788.     "No Object!" means that you are trying to set an object to be added
  789.     that cannot be found in the cell list.
  790.  
  791.     "Not Enough Space to Load CELLNAME OBJECTS!" means that you have too
  792.     little space allocated to properly load a cell file.
  793.  
  794.     "OBJECT Limit Reached!" means that you are trying to add an object that
  795.     exceeds the allocation for its type.
  796.  
  797.     "Not Enough Space to Smash CELLNAME!" means that there isn't enough
  798.     space allocated to hold the objects that would result if a cell is
  799.     smashed.
  800.  
  801.     "RAM Disk Full or Unavailable ... Using Hard Disk!" means that you
  802.     either have set a RAM disk in the FORM.DBD file that doesn't exist, or
  803.     the RAM disk has run out of space for new files or new filenames. You
  804.     should erase old files from your RAM disk or, if possible, reconfigure
  805.     it in the DOS CONFIG.SYS file to provide more file space or a larger
  806.     directory.
  807.  
  808.  File Types
  809.  
  810.   LASI.EXE uses several files when it is run. These are:
  811.  
  812.   DBD (drawing basic data) files
  813.  
  814.     CELLS4.DBD is the master list of cells used by LASI.EXE to know which
  815.     cells it has to use in a drawing. The position of a cell in the file is
  816.     an index used by LASI.EXE to keep track of which cells are used in
  817.     other cells.
  818.  
  819.     FORM.DBD contains the configuration information used by LASI.EXE when
  820.     it starts. Read the Form File topic.
  821.  
  822.     CONSTS4.DBD is a file that is maintained by LASI.EXE itself, and
  823.     contains the information (or constants) that determine the immediate
  824.     settings of many parameters. Although it is ASCII this file should not
  825.     be edited.
  826.  
  827.     TXT.DBD is a generic Text Font File. This file is a binary file that
  828.     contains patterns for the text characters. This file was generated by
  829.     the MAKETXT.EXE utility and can only be modified using that utility.
  830.     Otherwise, the user is free to make his own fonts following the
  831.     directions under the topic Text Generation.
  832.  
  833.  
  834.   Cell Data Files
  835.  
  836.     Cell data files are named with the name of a cell with a BP4 or a CL4
  837.     extension.
  838.  
  839.     BP4 files are internal binary files that contain information on boxes,
  840.     paths, text and vertices. These files are maintained by LASI.EXE and
  841.     other utilities and are not to be externally edited.
  842.  
  843.     CL4 files are internal files that contain information on which cells
  844.     are contained in other cells. Rank 1 cells do not produce these files.
  845.     These files are not to be externally edited.
  846.  
  847.  Form File
  848.  
  849.   The configuration information for each drawing is in the FORM.DBD file.
  850.   This file MUST be in each drawing directory. You write it using a text
  851.   editor in standard DOS text format. The FORM.DBD file is an IMPORTANT
  852.   file because it is used by LASI.EXE and most of the UTILITY PROGRAMS to
  853.   configure to the particular drawing environment.
  854.  
  855.   The FORM parameters are keywords followed by "=" and then the FORM
  856.   variable. These may be in any order, or be omitted. If a parameter is
  857.   omitted a default parameter is used if possible.
  858.  
  859.   The present FORM parameters are:
  860.  
  861.     hdisk=C:,D:,etc.          (\LASI4 directory hard disk letter name)
  862.     rdisk=D:,etc. or blank    (RAM disk letter name)
  863.     fdisk=A: or B:            (floppy disk letter name)
  864.     rank=2-15                 (maximum rank available)
  865.     box=6500 max.             (maximum number of boxes per cell)
  866.     path=8100 max.            (maximum number of paths per cell)
  867.     vtx=32700 max.            (maximum number of vertices per cell)
  868.     cell=10900/(rank-1) max.  (maximum number of cells per cell)
  869.     hcopy=XXXX                (name of bitmap program to be used)
  870.     plot=XXXX                 (name of plotter support program)
  871.     text=XXXX                 (name of Text Font File)
  872.     vmode=vga,ega,svga,mono   (forces the display mode)
  873.     pool=pool directory       (name of cell pool directory)
  874.     fkey=command line         (progressively assigns F-keys)
  875.  
  876.      "hdisk=" sets the letter name of the hard disk where the \LASI4
  877.       directory is located and is used to find certain files.
  878.  
  879.      "rdisk=" sets the letter name of a RAM disk that was created in
  880.       memory.  Read the Using RAM Disk topic for more information.
  881.  
  882.      "fdisk=" variable sets the letter name of the default floppy drive
  883.       where certain files are routinely imported and exported. Read the
  884.       TLC-IN and TLC-OUT topics.
  885.  
  886.      "box=", "path=", "vtx=", "cell=" and "rank=" allocate memory space
  887.       for the respective objects. These are limited automatically
  888.       individually, but you can run out of total memory due to your
  889.       computer's memory limitations.
  890.  
  891.      "hcopy=" is the name of the screen hardcopy program. Read the HCPY
  892.       Command topic for information on these programs.
  893.  
  894.     Important:  If you don't have a printer on the computer leave the
  895.       hardcopy parameter "hcopy=" blank. This will prevent the system from
  896.       possibly hanging up if HCPY is pushed.
  897.  
  898.      "plot=" is the name of the plotter program. At the present there is
  899.       only one plotter program LASI2HP.EXE.
  900.  
  901.      "text=" is the name of the Text Font File. If this parameter is left
  902.       blank or if it is left out of the Form File altogether, the name
  903.       "\LASI4\TXT.DBD" will be assumed. Note that this variable may contain
  904.       a DOS path. This allows you to make your own Text Font Files and put
  905.       them in any directory.
  906.  
  907.      "vmode=" overrides the automatic sensing of VGA or EGA hardware. You
  908.       may set this to "ega", "vga", "svga" or "mono", providing your
  909.       hardware can work in that mode.
  910.  
  911.       "vga" and "ega" force 640x480 or 640x350 16 color graphics mode.
  912.  
  913.       "svga" forces 800x600 16 color VESA standard graphics mode. You must
  914.       have the hardware and the driver software that conforms to the VESA
  915.       standard or you will probably crash.
  916.  
  917.       "mono" redefines the 640x480 color palette to black, gray, white and
  918.       bright white for use with monochrome monitors and laptops.
  919.  
  920.       Any forced parameter may be followed by two floating point numbers
  921.       separated by spaces.
  922.  
  923.         Example:  "vmode=svga 1.5 .75"
  924.  
  925.       These numbers set the "mouse sensitivity" (or mickey multiplier) for
  926.       the x and y axes respectively. These numbers default to 1 if omitted.
  927.       Set these numbers to whatever feels best with your mouse.
  928.  
  929.  
  930.      "pool=" sets the directory where pooled cells are stored. If the pool
  931.       directory is on a different disk than the drawing directory, precede
  932.       the directory name with the disk letter. Omit "\" from the end of the
  933.       pool directory name. If you don't have a pool directory leave this
  934.       parameter blank or erase it from FORM.DBD altogether.
  935.  
  936.      "fkey=" parameters progressively assign a command line to a function
  937.       key, starting with F2 (F1 is always HELP.) through F10, SHIFT-F1
  938.       through SHIFT-F10, CTRL-F1 through CTRL-F10 and ALT-F1 through ALT-
  939.       F10. Read the F-keys topic for more details.
  940.  
  941.  
  942.   FORM is a command on the menus. It lists the FORM parameters of the
  943.   drawing directory where you are working.
  944.  
  945.   The FORM command also lists the approximate amount of memory that you
  946.   have left in conventional memory when all the space for objects is
  947.   allocated. Use this as a guide when setting your allocation parameters.
  948.  
  949.  Hardcopy
  950.  
  951.   Hardcopies of the drawing display can be made by calling screen bitmap
  952.   printing programs. These are small programs that are included with the
  953.   LASI System. These hardcopy programs can send the bitmap data directly to
  954.   a printing device or can produce a file for later printing.
  955.  
  956.   Any hardcopy program is installed by including its name in the "hcopy="
  957.   parameter in the FORM.DBD file. Hardcopy programs are always kept in the
  958.   \LASI4 directory. When LASI calls a hardcopy program, it attaches that
  959.   path to the filename.
  960.  
  961.   Presently there are 2 hardcopy programs in the \LASI4 directory:
  962.  
  963.   1. DMHCPY.COM makes a black and white copy of the screen in standard
  964.      Epson FX or LQ dot matrix format.
  965.  
  966.     There are 4 arguments (upper or lowercase) that may be appended to the
  967.     "hcopy=dmhcpy" parameter in the FORM.DBD file:
  968.  
  969.       "F" which causes a bitmap data file to be produced
  970.  
  971.       "Q" which causes LQ format to be produced
  972.  
  973.       "H" which causes a heavier copy to be made by duplicating any dots
  974.         printed
  975.  
  976.       "G" which turns on "generic" printer codes that will work with almost
  977.         any IBM/Epson printer. Aspect ratios will be not be 1:1.
  978.  
  979.     These arguments may be in any order.
  980.  
  981.     For example, "hcopy=dmhcpy h q f" produces a file with heavy printing
  982.     for an LQ type printer.
  983.  
  984.     If you are making a data file, a small window will open and close in
  985.     the lower left of the screen requesting a file name.
  986.  
  987.     If you produce files in the Epson FX printer format. You can build
  988.     single or multiple sheet fax files for transmission using an Intel
  989.     SatisFAXion board. You can also translate the files into other formats
  990.     using a converter such as HIJAAK.
  991.  
  992.     If you are operating in VGA graphics mode, the hardcopy that you get
  993.     will have a correct 1:1 aspect ratio, that is, if you don't use the "G"
  994.     argument.
  995.  
  996.   2. LJHCPY.COM makes a black and white copy on a LaserJet or a DeskJet
  997.      type printer. The bitmap is produced at 75 dots/in. LJHCPY.COM
  998.      produces a data file if a command line argument "F" (or "f") is
  999.      appended to the "hcopy=ljhcpy" parameter in the FORM.DBD file. This
  1000.      data file may converted to other formats, or copied to a LaserJet for
  1001.      printing later.
  1002.  
  1003.   Read the HCPY Command topic.
  1004.  
  1005.  Hardware
  1006.  
  1007.   The LASI will run in some configuration on almost any IBM compatible
  1008.   computer with the right hardware options. A faster computer is always an
  1009.   advantage. LASI will run quite nicely on a 386 or 486 based PC with clock
  1010.   speed 25 MHz or more.
  1011.  
  1012.   This is the minimum hardware required:
  1013.  
  1014.     1. 640K of conventional memory
  1015.     2. A hard disk
  1016.     3. VGA or EGA adaptor and color monitor
  1017.     4. A mouse
  1018.     5. A math coprocessor (see below)
  1019.  
  1020.  
  1021.   640K of Conventional Memory
  1022.  
  1023.     The main program LASI.EXE takes a minimum of about 235K. Drawing data
  1024.     is kept in conventional memory also, so if you don't have full memory,
  1025.     the size of your drawing will be excessively memory limited. You will
  1026.     also not be able to run certain programs from LASI.EXE.
  1027.  
  1028.     Using extended memory and MS-DOS 5 (or newer) from Microsoft or DR-DOS
  1029.     6.0 from Digital Research will improve this situation because these
  1030.     operating systems move drivers to high memory.
  1031.  
  1032.     Read the Allocating Memory topic for more information on use of memory.
  1033.  
  1034.  
  1035.   Hard Disk
  1036.  
  1037.     While working on a drawing, the basic drawing files (or cell files)
  1038.     need to be swapped back and forth to the disk. The hard disk should be
  1039.     as fast as possible. Each cell may use one or two files for storage.
  1040.     One cell file can be as large as 384K, the other 64K. Files this large
  1041.     will be rare, if not impossible due to RAM limitations. However, for
  1042.     large drawings with many cells, a total of several megabytes of disk
  1043.     space may still be needed.
  1044.  
  1045.  
  1046.   EGA or VGA Adaptor with Color Monitor
  1047.  
  1048.     LASI.EXE uses some direct hardware access so the EGA or VGA board must
  1049.     be register compatible to the IBM standard. If you have VGA graphics,
  1050.     the VGA will default to VGA 640x480 16 color graphics mode. If you have
  1051.     EGA you will default to 640x350 graphics mode. You may override the
  1052.     automatic default by setting the "vmode=" parameter in the Form File.
  1053.  
  1054.     If you have a VGA board and a monitor capable of 800x600 16 color
  1055.     graphics, you can run LASI in that mode by setting "vmode=svga" in the
  1056.     Form File. You must have a board that is VESA (Video Electronics
  1057.     Standards Association) compatible with supplemental driver software
  1058.     (furnished by the board's maker), or the board must have a BIOS that is
  1059.     directly compatible with the VESA standard. Most new boards will meet
  1060.     one of these requirements.
  1061.  
  1062.     If you have a monochrome monitor or a laptop computer with a gray scale
  1063.     VGA (or EGA) display, you can redefine the color palette to black,
  1064.     gray, white and bright white by setting "vmode=mono" in the Form File.
  1065.     This allows "poor people" with only analog VGA monochrome monitors to
  1066.     run LASI. You may have to trick your VGA board into thinking that it
  1067.     has a color monitor by grounding the ID bit 0 (pin 11 on the 15 pin D
  1068.     connector). Laptop computers with sufficient capacity will also run
  1069.     LASI. A possible problem when using a laptop is that the LCD display
  1070.     often isn't fast enough to track the mouse cursor.
  1071.  
  1072.     Because LASI.EXE writes directly to the hardware, you will get faster
  1073.     graphics if you use a 16-bit graphics board, instead of an 8-bit board.
  1074.     In ISA (AT) type computers of any CPU speed, the bus speed is usually
  1075.     still 8 MHz. This limits the drawing speed of LASI and most of any
  1076.     other graphical software, including Windows or OS/2.
  1077.  
  1078.     There are also some new bus architectures that raise the bus speed when
  1079.     servicing video, or have an independent high-speed bus, such as the
  1080.     VESA Local Bus (VL-Bus). If your graphics board can work at a higher
  1081.     speed or is VESA Local Bus compatable, your LASI drawing speed will
  1082.     greatly improve.
  1083.  
  1084.     If you are buying a computer to run LASI (or anything else), it is
  1085.     recommended you get one with a VESA Local Bus. Some manufacturers have
  1086.     their own proprietary bus; it is likely that these will die out and the
  1087.     VESA Bus will be standard. Note also that "accelerated" video boards
  1088.     are available, but are often designed to speed up Windows or specific
  1089.     CAD systems, like AutoCAD, using special driver software. These may not
  1090.     help LASI very much.
  1091.  
  1092.  
  1093.   Mouse
  1094.  
  1095.     Pretty much everything is done graphically by mouse. All mouse function
  1096.     calls conform to Microsoft Mouse Protocol. LASI.EXE does little more
  1097.     than look for button pushes and return screen location. The cursors are
  1098.     drawn directly, so LASI is very mouse tolerant. Any mouse that has at
  1099.     least two buttons, has driver software that works with EGA or VGA, and
  1100.     understands some basic Microsoft mouse driver function calls (numbers
  1101.     0-5, 10 and 11) should work with any of the LASI System programs.
  1102.  
  1103.     To use the mouse, first be sure that the mouse driver software that
  1104.     came with your mouse is installed according to your mouse's
  1105.     instructions, and that you know that the mouse works with most other
  1106.     programs. Using current Microsoft mouse driver software and a Microsoft
  1107.     compatible mouse is usually best.
  1108.  
  1109.     LASI.EXE reads "mickeys" directly (actual movement count) and moves the
  1110.     cursor accordingly. Certain mouse driver sensitivity switches (/H /V)
  1111.     won't work when this is done, but sensitivity can be sent in the
  1112.     FORM.DBD file. Read the Form File topic.
  1113.  
  1114.  
  1115.   Math Coprocessor (80287, 80387, etc)
  1116.  
  1117.     Most of the math is done in integer form, which is handled by the CPU
  1118.     directly. A certain amount of floating point arithmetic is also done.
  1119.     If you try to run LASI.EXE without a coprocessor, the program will
  1120.     return a system error. If you don't have a coprocessor and can't afford
  1121.     one, another version of LASI, LASIA.EXE is provided that uses alternate
  1122.     math function calls and is about half as fast in certain situations as
  1123.     LASI.EXE.
  1124.  
  1125.  
  1126.   Optional but desirable:
  1127.  
  1128.     1. Extended memory
  1129.     2. A printer (dot matrix or laser)
  1130.  
  1131.  
  1132.   Extended Memory
  1133.  
  1134.     In addition to using less conventional memory if a newer DOS is used,
  1135.     drawing speed may be improved by using extended memory for a RAM disk.
  1136.     The amount of additional memory is dependent on the amount of data in
  1137.     the layout drawings that you make. Experience will determine how much
  1138.     memory you need. Read the Using RAM Disk topic.
  1139.  
  1140.  
  1141.   Printer
  1142.  
  1143.     Hard copies of the screen can be made directly from LASI.EXE. Making
  1144.     hardcopies is very handy to examine and keep track of your drawings.
  1145.     Hardcopy support is provided for Epson Generic, FX and LQ type printers
  1146.     and H-P LaserJet type printers. Most printers seem to conform to these
  1147.     standards. Read the HCPY Command topic. If your printer doesn't work
  1148.     contact the author to see if anything can be done about it, providing
  1149.     you have technical information available on your printer and you know
  1150.     that it is capable of bitmap graphics.
  1151.  
  1152.  Help on Help
  1153.  
  1154.   If you are reading this help topic you are probably running the help
  1155.   reader program LHI.EXE. LHI is called from LASI by pressing F1. If the
  1156.   mouse cursor is on a COMMAND NAME the name will be passed to LHI and that
  1157.   command's help information will come up immediately.
  1158.  
  1159.   LHI.EXE will also accept DOS command line arguments as follows:
  1160.  
  1161.     [] = optional
  1162.  
  1163.         LHI [disk\path\filename] [topic1 or topic2] [topic2]
  1164.  
  1165.  
  1166.   [Disk\path\filename] is the full name of the help file to read. The
  1167.   filename must contain the extension ".HLP" or the argument will be
  1168.   considered as a topic argument. Leaving this argument out causes a
  1169.   default to "\lasi4\lhi.hlp".
  1170.  
  1171.   The [topic1 or topic2] argument is the topic for the first search. This
  1172.   may be a primary topic such as "Command Information" or a secondary topic
  1173.   such as "Copy". If the topic is more than one word enclose it in double
  1174.   quotes ("") as DOS requires.
  1175.  
  1176.   The [topic2] argument is the subtopic of topic1. This is only necessary
  1177.   if topic2 appears as a subtopic of topic1 in more than one place in the
  1178.   help file. For example, if "Introduction" appears more than once, you
  1179.   must specify the primary topic as topic1 and then "Introduction" as
  1180.   topic2.
  1181.  
  1182.   All arguments may be upper or lower case.
  1183.  
  1184.  Key Assignment
  1185.  
  1186.   Some keys on the keyboard are permanently assigned:
  1187.  
  1188.     ENTER enters information.
  1189.     DIRECTION ARROWS move the drawing window in that direction.
  1190.     TAB toggles the cursor between a small cross and crosshairs.
  1191.     A toggles the cursor between working and unit grid.
  1192.     C toggles the path center line on and off. (retained)
  1193.     N toggles the outline name on and off.
  1194.     T toggles the text reference point on and off. (retained)
  1195.     X or Y opens a PKE entry.
  1196.     Z sets the measurement reference point.
  1197.     SPACE gives a measurement from the reference point.
  1198.     ALT while pressed changes the cursor between working and unit grid.
  1199.  
  1200.   ESC has multiple uses:
  1201.  
  1202.   1. Press ESC to abort most commands at any stage of completion.
  1203.  
  1204.   2. Press ESC to abort drawing at various stages. Read the Drawing Speed
  1205.      topic for details.
  1206.  
  1207.   3. Pressing ESC causes a default value to be retained in any input that
  1208.      has a default value shown in parentheses, even if a new value has been
  1209.      typed.
  1210.  
  1211.   4. ESC returns a NULL (no characters) to such questions as the name of a
  1212.      cell and therefore aborts the process.
  1213.  
  1214.  
  1215.   F1 always calls HELP.
  1216.  
  1217.   The remaining function keys are USER DEFINABLE.
  1218.  
  1219.   F2-F10, SHIFT-F1 through SHIFT-F10, CTRL-F1 through CTRL-F10 and ALT-F1
  1220.   through ALT-F10 may be defined by writing a command with any arguments
  1221.   into the FORM.DBD file.
  1222.  
  1223.   To assign the keys you simply write the command after an "fkey="
  1224.   parameter in the FORM.DBD file. Keys are assigned progressively and the
  1225.   exact assignment can be checked by the FORM command.
  1226.  
  1227.   A command must be a command from the Cell Mode menus and must be followed
  1228.   by any arguments separated by commas.
  1229.  
  1230.     examples:   "fkey=view,1-4 10 12"
  1231.                 makes those layers visible.
  1232.  
  1233.                 "fkey=wmov,0,0,100,100,0,0,10,0"
  1234.                 moves objects in the 0,0 to 100,100 rectangle
  1235.                 10 physical units to the right.
  1236.  
  1237.   The command line may be upper or lower case and no longer than 80
  1238.   characters. Any coordinates are in physical units. Any text generated in
  1239.   this way will be created with case preserved.
  1240.  
  1241.   Commands assigned to function keys are executed on a ONE-TIME basis even
  1242.   though normally the command may be a resident type of command.
  1243.  
  1244.   Function keys work differently in System Mode, so no System Mode command
  1245.   may be assigned to a function key. Certain commands in Cell Mode work
  1246.   differently also and may no be assigned to function keys. These are LIST,
  1247.   CELL, SYS and ABRT.
  1248.  
  1249.   LASI should be smart enough to request additional arguments in the normal
  1250.   way if you list too few in the key assignment, or throw away any extras
  1251.   if you have too many. Coordinates are always requested in pairs.
  1252.  
  1253.  Local Area Network
  1254.  
  1255.   It should be possible to use the cell pooling feature of LASI 4.1 to
  1256.   provide a common pool of basic cells over a Local Area Network (LAN)
  1257.   consisting of several PCs or work stations.
  1258.  
  1259.   Put the network server disk directory prefix in the "pool=" parameter in
  1260.   the FORM.DBD file. LASI will then load an attached cell's BP4 file from
  1261.   the server. If you are using a RAM disk locally, the file will then be
  1262.   stored on the RAM disk the first time you draw it, and will remain there
  1263.   until you quit LASI.
  1264.  
  1265.   You can also make a permanent copy of a pooled cell from the network
  1266.   using the IMPORT command.
  1267.  
  1268.   For transferring cells with rank greater than 1, you must use TLC.EXE. In
  1269.   that case, the "fdisk=" parameter in FORM.DBD can be set to the server
  1270.   directory prefix with TLC files in that directory on the server. Any
  1271.   files transferred by TLC will become normal cells not attached cells.
  1272.   Care also must be taken not to write back to the server, since TLC works
  1273.   both ways.
  1274.  
  1275.  Measurements
  1276.  
  1277.   The position of the cursor in the drawing window is continuously read out
  1278.   at the top of the screen. The coordinates are either in working grid
  1279.   units or in the smallest possible grid unit, the unit grid. You may
  1280.   switch between these by pressing the A or ALT keys.
  1281.  
  1282.   There is no ruler, but distances can be measured graphically. The Z key
  1283.   zeroes the measurement system to the current cursor grid point. The
  1284.   current cursor grid point may be either in the working grid or the unit
  1285.   grid, depending on the resident command or if the cursor grid has been
  1286.   switched by the A or ALT keys.
  1287.  
  1288.   If the space bar is then pressed, a measurement from the zero point will
  1289.   be displayed at the bottom of the screen. The second point will be
  1290.   gridded to the present cursor grid.
  1291.  
  1292.  Mouse Cursor
  1293.  
  1294.   LASI is designed to be very mouse intensive. Positioning the cursor and
  1295.   clicking the mouse buttons chooses the commands and inputs most all the
  1296.   graphical information. The exceptions being when a literal or numerical
  1297.   input is required, or when a specially assigned key is used.
  1298.  
  1299.   The mouse cursor is usually a small cross that may have other figures
  1300.   added to it. When on a menu, a box will appear that indicates which
  1301.   command will be chosen. When using drawing commands dotted lines or a
  1302.   dotted rectangle will appear.
  1303.  
  1304.   The cursor can be toggled between the small cross and crosshair lines by
  1305.   pressing the TAB key. The cursor automatically turns back to the small
  1306.   cross if not on the drawing window.
  1307.  
  1308.   When a cursor input is expected, the point needed will be shown at the
  1309.   top of the screen after the command name. Most commands take one or two
  1310.   points.
  1311.  
  1312.   The cursor moves in discrete steps. When a command is chosen, the cursor
  1313.   is set to move either in the unit grid or in one of a number of preset
  1314.   working grids. The working grids are entered using the SET command, and
  1315.   are changed with the WGRD command. The cursor's grid type may change from
  1316.   command to command or during a command, but it may always be toggled from
  1317.   one type of grid to the other by pressing either the A or the ALT key on
  1318.   the keyboard.
  1319.  
  1320.   Certain cell commands use a DOUBLE CLICKING of the left mouse button to
  1321.   change the way that the command acts on cells. If you click twice
  1322.   rapidly, the cells that overlap the mouse cursor points will be affected.
  1323.   If you wait a bit between clicks, only the cells that have their areas
  1324.   fully enclosed by the mouse cursor window will be affected.
  1325.  
  1326.   The time between mouse clicks is set as the number of "ticks" using the
  1327.   SET command in Cell Mode. Each tick is about 1/20 sec. Adjust this to
  1328.   your own comfort. The number of ticks is saved and returned when you
  1329.   restart LASI.
  1330.  
  1331.   Hint:  If you want to turn off double clicking entirely, set the number
  1332.     of ticks to 0. If you always want double clicking actions, set the
  1333.     number of ticks to a large number, such as 32000.
  1334.  
  1335.  Objects
  1336.  
  1337.   A drawing is built of things called OBJECTS. In a drawing objects are
  1338.   placed in a hierarchy, the position of an object in this hierarchy is
  1339.   called its RANK.
  1340.  
  1341.   The lowest rank (0) objects are the basic constructions, BOXES, PATHS,
  1342.   POLYGONS and TEXT.
  1343.  
  1344.   The higher rank (1-15) objects are the CELLS, which are the basic
  1345.   structures of a drawing. Any cell can contain one or more objects of
  1346.   lesser rank.
  1347.  
  1348.   All the cells in a drawing are called the CELL COLLECTION.
  1349.  
  1350.  
  1351.   Boxes
  1352.  
  1353.     Boxes are objects that have the properties of four sides, each
  1354.     orthogonal to the adjacent, and a layer. Only the position of the sides
  1355.     and the layer may be changed.
  1356.  
  1357.  
  1358.   Paths
  1359.  
  1360.     Paths are a set of vertices in some order which display as a set of
  1361.     endwise merged rectangles, all with the same width, but usually
  1362.     different lengths.
  1363.  
  1364.     A path with a zero width is called a polygon (poly).
  1365.  
  1366.     A polygon is special case of a path, and the term "path" can be used to
  1367.     refer to either, except in the case where a zero width path is
  1368.     explicitly indicated.
  1369.  
  1370.     A polygon need not be closed. A line of zero width however usually does
  1371.     not reproduce anything useful in an integrated circuit, so polygons
  1372.     will usually be closed intentionally.
  1373.  
  1374.     Vertices may have their position changed, and the vertices of a path
  1375.     may be added or deleted. The width or layer of the path may be changed.
  1376.  
  1377.     Paths with a positive width are drawn with their ends flush with their
  1378.     end vertices, while paths with negative widths are drawn with their
  1379.     ends spaced out half the width from the vertices. Paths with negative
  1380.     width are discouraged and are provided only for CALMA compatibility.
  1381.  
  1382.     A path with width can have no more than 250 vertices. A polygon can
  1383.     have no more than 500 vertices.
  1384.  
  1385.  
  1386.   Text
  1387.  
  1388.     Text is a form of path that instead of displaying vertices, displays a
  1389.     string of text characters linearly. Text is stored as a special path,
  1390.     and many of the commands that affect paths work on text objects. Text
  1391.     can have a layer and a size which corresponds to a path's width.
  1392.  
  1393.  
  1394.   There are 64 layers available for boxes, paths and text, numbered 1-64.
  1395.  
  1396.  
  1397.   Cells
  1398.  
  1399.     All drawing is done on cells. A cell has a NAME by which it is called
  1400.     for drawing or for insertion into other cells. The name must be
  1401.     acceptable as a DOS filename, since cell files will be made using that
  1402.     name. A cell is named when it is created, but it may be renamed. A rank
  1403.     is also assigned when a cell is created and cannot be changed, although
  1404.     a cell can be copied to a different rank.
  1405.  
  1406.     Cell ranking is strictly enforced so that computer memory usage is
  1407.     better controlled and ambiguous constructions (i.e. cells in
  1408.     themselves) are avoided.
  1409.  
  1410.     In general, the overall layout drawing will be the highest ranking
  1411.     cell. There however may be many cells of that rank, for perhaps
  1412.     different versions of the same integrated circuit.
  1413.  
  1414.     Cells have a property known as AREA. The area of a cell is the region
  1415.     within the rectangle that fully encloses all the objects that make up
  1416.     the cell. A cell's OUTLINE is the perimeter of the area, or simply the
  1417.     enclosing rectangle. Cells may be drawn in full, or may be drawn as
  1418.     only their outline. Cells in a part of a drawing that is not currently
  1419.     being worked upon may be outlined to improve clarity and to speed up
  1420.     redrawing.
  1421.  
  1422.     When a cell is drawn as its outline it may be manipulated as though it
  1423.     was drawn fully. However, when cells are outlined, double clicking the
  1424.     mouse has no effect on the action of a command. An outlined cell must
  1425.     always be fully enclosed by the mouse cursor window to have any action.
  1426.     Read the Mouse Cursor General topic and the individual command topics.
  1427.  
  1428.  Operating Modes
  1429.  
  1430.   There are two operating modes, System Mode and Cell Mode:
  1431.  
  1432.   System Mode is a housekeeping mode which has commands for overall
  1433.   manipulation of cells and the control of certain drawing parameters.
  1434.  
  1435.   Cell Mode is the mode where actual drawing is done. When Cell Mode is
  1436.   entered a cell drawing is opened for creation or modification.
  1437.  
  1438.      Cell Mode has up to 15 ranks.
  1439.  
  1440.      The rank of Cell Mode is obtained from the cell being drawn.
  1441.  
  1442.      Each Cell Mode rank keeps separate parameters, such as window size
  1443.       and position, in order to simplify moving between different ranks of
  1444.       cells while working on a drawing.
  1445.  
  1446.      The maximum number of ranks is set in the FORM.DBD file.
  1447.  
  1448.      All Cell Modes are identical except for the ranking.
  1449.  
  1450.      Both modes have a menu of commands on the side of the screen. The
  1451.       commands are explained under their own help topics.
  1452.  
  1453.      When LASI is started it goes to System Mode.
  1454.  
  1455.      Using the SYS command that appears in the Cell Mode menu is the
  1456.       normal way to reenter System Mode from Cell Mode.
  1457.  
  1458.      Using the CELL and LIST commands which appear in both mode menus is
  1459.       normal way to enter Cell Mode and open another cell.
  1460.  
  1461.   Cell Mode also may be entered directly by adding the name of a cell to
  1462.   the command line when starting LASI.
  1463.  
  1464.  
  1465.     Example: "lasi flipflop" when typed in DOS runs LASI and
  1466.               enters into the cell named "FLIPFLOP".
  1467.  
  1468.  
  1469.   Read the CELL, LIST and SYS commands.
  1470.  
  1471.  PKE Feature
  1472.  
  1473.   Parallel Keyboard Entry can be done any time a command is requesting a
  1474.   point normally inputted by the mouse. To start a PKE entry press either
  1475.   the X or Y keys. The coordinate pair will appear in the lower left corner
  1476.   of the screen.
  1477.  
  1478.   Pressing the X or Y key clears that coordinate to zero and a new value
  1479.   may then be typed into that coordinate. Coordinate values may contain a
  1480.   decimal point or a minus sign. Corrections may be made by pressing X or Y
  1481.   again, clearing the value to zero, or by using the BACKSPACE key.
  1482.  
  1483.   To enter the coordinate pair press ENTER.
  1484.  
  1485.   To abort a pending PKE entry, click on any menu button using the mouse,
  1486.   except any of the window commands, or press ESC.
  1487.  
  1488.   Note:  Some commands that require an incremental input and not an
  1489.     absolute position (MOV for example) accept only a single PKE distance
  1490.     entry instead of two mouse cursor inputs.
  1491.  
  1492.  Pooling
  1493.  
  1494.   In version 4.1 of LASI, rank 1 cells may be kept in a common "pool". This
  1495.   pool is a drawing directory that contains cells that might be used in
  1496.   many different layouts, such as logic elements or standard transistors.
  1497.   The basic cell BP4 file is taken either from the default drawing
  1498.   directory or the pool drawing directory.
  1499.  
  1500.   Cell Source Diagram:
  1501.  
  1502.                    ┌───────────┐ Attached Cell
  1503.               BP4  │   POOL    │----->-┐
  1504.               File └───────────┘       | Attach
  1505.                          |             | Command
  1506.                          |             |    ┌───────────┐
  1507.                          | IMPORT      ├--->│  Drawing  │
  1508.                          | Command     |    └───────────┘
  1509.                          V             |
  1510.                    ┌───────────┐       |
  1511.               BP4  │ Draw Dir. │----->-┘
  1512.               File └───────────┘ Normal Cell
  1513.  
  1514.  
  1515.   The pool directory is set with the "pool=" parameter in the FORM.DBD
  1516.   file. The pool variable is the name of the directory where pooled cells
  1517.   are stored.
  1518.  
  1519.     Example:  "pool=c:\ourpool" would be a line in FORM.DBD
  1520.  
  1521.   If the pool directory is on a different disk than the drawing directory,
  1522.   precede the directory name with the disk letter. Omit "\" from the end of
  1523.   the pool directory name.
  1524.  
  1525.   The cells are "attached" to a drawing using the ATTACH command in System
  1526.   Mode.
  1527.  
  1528.   The attached cells may be included in a drawing by first making them the
  1529.   object to be added with the OBJ command and then adding with the ADD
  1530.   command. Once added the attached cells may be manipulated like any other
  1531.   normal cell.
  1532.  
  1533.   Read the Attached Cells topic and the ATTACH and IMPORT Command topics.
  1534.  
  1535.  Pooling Old Cells
  1536.  
  1537.   It is fairly easy to replace cells made with previous versions of LASI
  1538.   with cells from a common pool. First, the cells to be replaced must be
  1539.   placed in the POOL directory cell collection. The easy way to do this is
  1540.   to use the TLC program to first produce TLC files and then use the TLC
  1541.   program to transfer the TLC files to internal form in the POOL directory.
  1542.  
  1543.   After you are sure that the cells are in the pool, you can run LASI
  1544.   version 4.1 in the DRAWING directory and use the ATTACH command on the
  1545.   cells to be taken from the pool.
  1546.  
  1547.   Once you have decided that all is correct, and you expect to never need
  1548.   the cell in the drawing directory again, you can simply erase the unused
  1549.   BP4 files from the DRAWING directory using DOS's file delete.
  1550.  
  1551.   Do NOT use the KILL command to erase cells, because this removes cells,
  1552.   normal or attached, completely from a drawing.
  1553.  
  1554.   If you happen to run the 4.0 version of LASI on a drawing containing
  1555.   attached cells, the results that you get when drawing will be somewhat
  1556.   unpredictable. Whatever is in the buffers at the time will be drawn in
  1557.   place of the attached cell. This does no harm to the drawing data unless
  1558.   you go into Cell Mode on one of the attached cells. Doing this will
  1559.   generate a BP4 file in the DRAWING directory, and the parameters of the
  1560.   cell in the cells list (CELLS4.DBD) will be rewritten.
  1561.  
  1562.   Fortunately, if you run LASI 4.1 again on the drawing data, the attached
  1563.   cell will be rerecognized and the pool cell will reappear. To correct any
  1564.   problem of wrong data in the cells list you can simply reATTACH the cell.
  1565.   You can also cautiously delete any false BP4 files that may have been
  1566.   placed in the DRAWING directory.
  1567.  
  1568.  Starting a Drawing
  1569.  
  1570.   This is an elaboration on Quick Starting. If you have run LASI you
  1571.   already know how to get LASI up and working, here are more details that
  1572.   you would normally go through when really using LASI seriously.
  1573.  
  1574.   To start a drawing:
  1575.  
  1576.   1. Create a "drawing directory" as an independent directory.
  1577.  
  1578.     The drawing directory should be named for the drawing to be made. Each
  1579.     different drawing is kept on the hard disk by isolating it in its own
  1580.     directory. The drawing directory will contain certain .DBD files
  1581.     (drawing basic data) and the "internal" files (.BP4 and .CL4) for the
  1582.     cells that you create.
  1583.  
  1584.     NEVER make drawings in the \LASI4 directory.
  1585.  
  1586.   2. Copy a FORM.DBD file to the drawing directory.
  1587.  
  1588.     The FORM.DBD file customizes LASI to the specific hardware and
  1589.     allocates memory for the different objects that make up a drawing. The
  1590.     FORM.DBD is local to a drawing directory so it can be different for
  1591.     each drawing. You may copy a FORM file from another drawing or use the
  1592.     generic one that comes with the system files. Read the Form File topic
  1593.     for a description of the different parameters.
  1594.  
  1595.   3. Edit the FORM.DBD file if necessary.
  1596.  
  1597.     The FORM.DBD file is important since it configures your drawing to your
  1598.     hardware. You can usually use the default values in the original
  1599.     distribution FORM.DBD at first, but you eventually will need to change
  1600.     FORM.DBD using a editor such as EDLIN.COM or EDIT from MS-DOS 5. Once
  1601.     you establish a "normal" FORM.DBD file, you can just copy it from
  1602.     drawing to drawing.
  1603.  
  1604.   4. Make the drawing directory your default directory, and run the program
  1605.      LASI.EXE (or LASIA.EXE if you don't have a coprocessor).
  1606.  
  1607.     The program will start in System Mode. When you first begin a drawing
  1608.     you should check the scale using the SCALE command and decide if the
  1609.     parameters are what you want. The scale really only relates the
  1610.     physical units in which you do a drawing to the basic units in which
  1611.     the drawing is actually stored. If you do not use the appropriate
  1612.     scale, you may create cells that have too little resolution, or too
  1613.     much resolution, and the overall size of your drawing will be too
  1614.     small.
  1615.  
  1616.     The RESIZE.EXE utility program allows the resolution or basic units
  1617.     used to draw cells to be changed later, but it is better to set the
  1618.     correct scale in the beginning.
  1619.  
  1620.   5. If you are using the cell pooling feature of LASI 4.1 attach any
  1621.      pooled cells that you think you might need.
  1622.  
  1623.     You can always attach cells, but bringing in basic cells is a good
  1624.     place to start.
  1625.  
  1626.   6. Use the CELL command to go to Cell Mode and create new cells.
  1627.  
  1628.     Start by drawing the lowest rank cells that will be used as building
  1629.     blocks for higher rank more complex cells, and eventually the overall
  1630.     layout. Generally, repetitive structures should be made as individual
  1631.     cells and used to build other cells. However, too few boxes or paths
  1632.     can be a waste of a cell. With experience you will develop a feel of
  1633.     how to partition your cell structuring.
  1634.  
  1635.   Hint:  If you have a similar drawing in another directory and you have
  1636.     already defined the hardware and drawing parameters, you can copy the
  1637.     CONSTS4.DBD file into the new directory. This will save you the trouble
  1638.     of redefining things over again. The CELLS4.DBD file is NEVER copied
  1639.     from drawing to drawing since it serves as a cell reference list that
  1640.     is different with each drawing. For the same reason, you MAY NOT copy
  1641.     BP4 and CL4 files between drawings.
  1642.  
  1643.  Undoing
  1644.  
  1645.   There is no UNDO command. The reason for this is that commands operate
  1646.   globally on drawing objects. Since a large number of objects may be
  1647.   changed, it simply too cumbersome to always keep a backup of each
  1648.   operation.
  1649.  
  1650.   Instead, whenever you enter into Cell Mode or use the SORT, DEL or SMSH
  1651.   command, a backup copy of the drawing is stored on the hard disk. To
  1652.   retrieve the stored backup, you use the ABRT command.
  1653.  
  1654.   If you don't sort, and you leave LASI unattended, after a certain amount
  1655.   of time, LASI will automatically sort and backup cell drawing data on its
  1656.   own.
  1657.  
  1658.   Read the SORT, DEL, SMSH and ABRT Command topics.
  1659.  
  1660.  Universe
  1661.  
  1662.   The drawing area is 65536 units in each direction since positions are
  1663.   determined by a 16 bit integer. This drawing space might be called the
  1664.   drawing's universe.
  1665.  
  1666.   If objects are moved they may exceed the signed integer limits of -32768
  1667.   to 32767 basic units. Objects that move beyond the limits go through
  1668.   "integer infinity" and reappear from the opposite direction.
  1669.  
  1670.   If this happens, you will find that objects, particularly paths, can be
  1671.   very distorted. To correct this, move the objects back so that all points
  1672.   are in the same universe.
  1673.  
  1674.   Distortions can always be corrected by a linear move if done immediately.
  1675.   More than one "infinity" in sequence may not be correctable.
  1676.  
  1677.   Commands affected:  CPY, FLP, MOV, ORIG, WMOV, QMOV, CMOV, ROT, STEP
  1678.  
  1679.  Using MS-DOS 5
  1680.  
  1681.   Using DOSSHELL found in MS-DOS 5 is an easy way to setup drawings when
  1682.   using LASI. You can make each drawing a Program Item either by itself or
  1683.   as a part of a Program Group. Set the "Commands" property to "lasi.exe"
  1684.   and the "Startup Directory" to the drawing directory.
  1685.  
  1686.   The ability to MS-DOS 5 to load drivers into the upper memory area (640K
  1687.   to 1MB) on a 80386 or 80486 computer should be used to save conventional
  1688.   memory. This will give you more memory for a larger number of LASI
  1689.   objects. If you have some extended memory, even on a 80286 computer, you
  1690.   can still gain more memory by installing HIMEM.SYS and putting "DOS=HIGH"
  1691.   in the CONFIG.SYS file.
  1692.  
  1693.   Using DOS's FASTOPEN.EXE can help the drawing speed by reducing the time
  1694.   that LASI takes to swap data in and out, either to RAM disk or hard disk.
  1695.   You should experiment to find which DOS features work best.
  1696.  
  1697.   If you are using another DOS such as DR-DOS, similar advice applies.
  1698.  
  1699.  Using a RAM Disk
  1700.  
  1701.   Drawing speed can be greatly improved if a RAM disk is used. Cell files
  1702.   that normally would be kept on a hard disk can be placed on a RAM disk by
  1703.   using the MS-DOS VDISK.SYS or RAMDRIVE.SYS drivers, or similar software.
  1704.   LASI will automatically swap cell files to a RAM disk when it draws, and
  1705.   then restore them to the hard disk when it is finished.
  1706.  
  1707.   To use a RAM disk you must first create the RAM disk during DOS bootup
  1708.   time by adding the driver to your CONFIG.SYS file. The RAM disk should be
  1709.   located in extended (or expanded) memory.
  1710.  
  1711.   To have LASI recognize a RAM disk, the "rdisk=" parameter of the FORM.DBD
  1712.   file must be the letter name of the RAM disk. For example, if the RAM
  1713.   disk installs as disk E:, then "rdisk=E:" would be the parameter.
  1714.  
  1715.   If you have no RAM disk installed, set the "rdisk=" parameter to the
  1716.   letter name of your drawing directory disk, or simply leave the "rdisk="
  1717.   parameter blank, since the drawing directory is on the default disk
  1718.   drive.
  1719.  
  1720.   The RAM disk must be large enough to hold all the cell files in a
  1721.   drawing. Computers with a megabyte or more of additional memory above
  1722.   640K are needed for most real work. When creating the RAM disk the
  1723.   driver's parameters must be set to hold both the amount of memory and the
  1724.   number of files expected.
  1725.  
  1726.   When LASI is run, it presently does not erase the RAM disk files. Old
  1727.   files may therefore clutter your RAM disk. Since it is not too hard to
  1728.   erase the wrong disk, possibly your hard disk, it is recommended that you
  1729.   make a batch file (.BAT) to erase the RAM disk when beginning a new
  1730.   drawing, load a mouse driver, if needed, and then run LASI. Of course,
  1731.   whenever you turn off the computer power, the RAM disk is erased anyway.
  1732.  
  1733.   If you do run out of RAM disk space a warning will appear on the screen.
  1734.   LASI will try to preserve your drawing by switching to the hard disk if
  1735.   it finds that the RAM disk is full. Drawing will slow down noticeably in
  1736.   that case. In particular, if the basic objects (boxes, paths and text)
  1737.   are no longer swappable to the RAM disk, you will see the hard disk being
  1738.   accessed if you are drawing a cell that contains other cells. If this
  1739.   happens, you should exit LASI, increase your RAM disk space, if possible,
  1740.   and rerun LASI.
  1741.  
  1742.   Important:  If you do not use a RAM disk, run a disk organizing program
  1743.     such as Disk Optimizer or Speed Disk from Norton's Utilities on your
  1744.     hard disk often. If cell files become highly fragmented, the drawing
  1745.     time for LASI can become incredibly long.
  1746.  
  1747.  Using a Disk Cache
  1748.  
  1749.   Installing a software disk caching driver can also speed up the redrawing
  1750.   of cells just as using a RAM disk. The disadvantages are that you will
  1751.   occasionally go to the hard disk if you lose a file from the RAM cache,
  1752.   and you will use more RAM in the DOS program area below 640K unless your
  1753.   cache uses high memory for its manager. The advantage is that you will
  1754.   not have to worry about running out of RAM disk space.
  1755.  
  1756.   Any disk cache driver, such as SMARTDRV from Microsoft, should work.
  1757.   Installing the disk cache in extended memory just as with a RAM disk is
  1758.   preferred, and the cache size should be as large as is needed to get a
  1759.   good hit ratio. If you run Windows, you probably have SMARTDRV already
  1760.   installed, in fact, SMARTDRV.EXE 4.0 that comes with Windows 3.1 is quite
  1761.   good.
  1762.  
  1763.   To use a cache set the "rdisk=" parameter in FORM.DBD to the same drive
  1764.   letter name as your drawing directory or leave it blank.
  1765.  
  1766.   Many of the newer hard disks have caches in their hardware already. You
  1767.   may find that the hardware cache is adequate and that a software cache is
  1768.   not necessary. The best thing to do is to experiment.
  1769.  
  1770.  Using MS-Windows
  1771.  
  1772.   LASI will run under Microsoft's Windows 3.1 as a DOS Application. Each
  1773.   drawing can be setup by first creating a "LASI" Program Group and
  1774.   installing it as a Program Item using the Program Manager. When creating
  1775.   the Item you should enter and appropriate "Description" and a "Command
  1776.   Line" as disk:\LASI4\LASI.EXE, where "disk" is the disk where LASI is
  1777.   installed. You should enter the particular drawing directory as the
  1778.   "Working Directory".
  1779.  
  1780.   Since LASI is a DOS program and is rather computationally intensive, it
  1781.   will run best in Standard Mode, where it will run as a single activity.
  1782.   It probably will not run well in 386 Enhanced Mode, where it may have to
  1783.   share time with other programs. It must always be run as a Full Screen
  1784.   program. It will also be memory limited to DOS's 640K. You may have to
  1785.   downsize your allocations in the Form File, or you may run out of memory
  1786.   when running programs like TLC.EXE from LASI.
  1787.  
  1788.   It helps to install HIMEM.SYS and use only part of any extended RAM for
  1789.   your RAM disk (use RAMDISK.SYS), leaving room for Windows to use part of
  1790.   extended memory for its own use.
  1791.  
  1792.   Installing the disk cache SMARTDRV.SYS can also improve disk speed so
  1793.   that a RAM disk may be unnecessary.  Read the Using RAM Disk topic.
  1794.  
  1795.  
  1796.   LASI is a DOS program with its own graphical interface. Although its
  1797.   displays may not be as elaborate as Windows displays, LASI functions
  1798.   quite a bit faster overall, particularly on slower computers. To those
  1799.   who are happily running LASI under DOS, running it under Windows seems to
  1800.   have little advantage; it in fact wastes memory. You might like to
  1801.   experiment however to see if there are any benefits in your own
  1802.   individual case.
  1803.  
  1804. Command Information
  1805.  
  1806.  Abrt
  1807.  
  1808.   ABRT aborts the current Cell Mode cell.
  1809.  
  1810.      This command will restore either the original cell that existed when
  1811.       the mode was entered or the cell as it was when the last SORT, DEL or
  1812.       SMSH command was done.
  1813.  
  1814.      Answering anything other than "o", "s" or "d" to the "Restore ..."
  1815.       question cancels the ABRT command.
  1816.  
  1817.   Using the ABRT command along with the SORT, DEL or SMSH command provides
  1818.   and "undo" feature.  Read the SORT, DEL and SMSH topics.
  1819.  
  1820.  Add
  1821.  
  1822.   ADD adds an object to the drawing.
  1823.  
  1824.      The object to be added is set initially by OBJ and is indicated at
  1825.       the bottom of the screen.
  1826.  
  1827.      A box requires two points at diagonally opposite corners.
  1828.  
  1829.      A path takes a vertex from each cursor input. A path adds a new
  1830.       vertex after the first active vertex found in the order in which the
  1831.       path is drawn.
  1832.  
  1833.      A cell is added with its origin at a single cursor input point.
  1834.  
  1835.   The cursor will indicate the adding action that will take place. On
  1836.   boxes, the box outline will be shown in dots. On paths, segments will be
  1837.   previewed as dotted lines. Cells are added as a single point.
  1838.  
  1839.  aGet
  1840.  
  1841.   AGET (all get) is a combination of FGET and CGET.
  1842.  
  1843.      This command acts on cells, boxes, paths and text in the same way as
  1844.       those commands.
  1845.  
  1846.   AGET is useful if you are MOVing, CPYing or FLPing large sections of a
  1847.   drawing because you can see just which object are active before the
  1848.   operation, and unlike WGET it will not distort paths.
  1849.  
  1850.  aPut
  1851.  
  1852.   APUT (all put) makes all boxes, paths and cells inactive.
  1853.  
  1854.      This command is for making sure that all objects are inactive.
  1855.  
  1856.      The active object count is cleared directly by this command.
  1857.  
  1858.   APUT is a handy command to make objects inactive with a single mouse
  1859.   button click.
  1860.  
  1861.  Arc
  1862.  
  1863.   ARC calls the arc generator.
  1864.  
  1865.   Rules for making arcs:
  1866.  
  1867.      An arc is generated starting at the first active vertex found on a
  1868.       path, and is swung around an arc center point to an end point.
  1869.  
  1870.      The center and end points are single cursor input points.
  1871.  
  1872.      The number of segments and the direction of generation (cw or ccw)
  1873.       must be entered when requested.
  1874.  
  1875.      To start an arc from nothing you must first add a single active
  1876.       vertex and then call the generator. The arc takes its width and layer
  1877.       from the original path object or "arc seed".
  1878.  
  1879.      Arc internal points are made to the nearest unit grid.
  1880.  
  1881.      Arc end points are snapped to the nearest working grid.
  1882.  
  1883.   Hint:  If you are generating an arc with many vertices, you can speed up
  1884.     the process by pressing ESC or clicking the right mouse button,
  1885.     bypassing drawing.
  1886.  
  1887.  Arrows
  1888.  
  1889.   Up, down, left and right arrows pan the drawing window.
  1890.  
  1891.      The window is moved by a certain fraction of its width in the
  1892.       indicated direction.
  1893.  
  1894.      The display is redrawn.
  1895.  
  1896.   The arrow keys on the keyboard perform this same function to be
  1897.   consistent with other drawing systems.
  1898.  
  1899.   Read DRAW.
  1900.  
  1901.  Attach
  1902.  
  1903.   ATTACH installs a cell from a common cell pool in a drawing's cell
  1904.   collection.
  1905.  
  1906.      ATTACH will first search to find if a cell already exists in the
  1907.       drawing. If one is found you will be ask if you want to continue. If
  1908.       a cell is not found, it will be immediately added to the cell
  1909.       collection.
  1910.  
  1911.      ATTACH will turn a normal cell into an attached cell, but the
  1912.       attached cell must exist in the pool directory.
  1913.  
  1914.      Higher rank cells may be attached but you will only get the boxes,
  1915.       poly and paths of the cell, and the cell will changed to a rank 1
  1916.       cell.
  1917.  
  1918.      If the "pool=" parameter in FORM.DBD is missing or blank, the ATTACH
  1919.       command will not work.
  1920.  
  1921.   Read the Attached Cells General topic.
  1922.  
  1923.  Cap
  1924.  
  1925.   CAP calls the capacitance calculator.
  1926.  
  1927.   To measure capacitance:
  1928.  
  1929.   1. You first must enter the capacitance units/physical area unit. This
  1930.      will usually be in pF/um2.
  1931.  
  1932.   2. After you enter the capacitance per unit area, all paths with ANY
  1933.      active vertex will be measured automatically, and the total
  1934.      capacitance will be displayed. To compensate for corners, half the
  1935.      width is subtracted from each segment length.
  1936.  
  1937.   3. After all paths are measured, all boxes with ANY active sides will be
  1938.      measured automatically, and the total capacitance of the paths and
  1939.      boxes will be displayed.
  1940.  
  1941.   4. The command will then go into manual mode. Any polygons or areas in
  1942.      cells that should be included can then be manually measured.
  1943.  
  1944.   5. When in manual mode, at the command prompt "[/]", you must fill the
  1945.      area to be measured with rectangular cursor areas by clicking the left
  1946.      mouse button at diagonally opposite corners of the areas.
  1947.  
  1948.   6. An area's capacitance and the sum of previous capacitances will always
  1949.      be displayed at the bottom of the screen.
  1950.  
  1951.   7. To end measuring, click the mouse on any menu button except a window
  1952.      command, or press ESC.
  1953.  
  1954.   Note:  To automatically measure an area, it must be either a path or a
  1955.     box in the present cell. Areas that are visible but are part of a cell
  1956.     within the present cell must be still manually measured.
  1957.  
  1958.   This command may be used as an area parameter calculator. For example,
  1959.   you can calculate the area of an integrated circuit by setting the
  1960.   capacitance per area to 1.
  1961.  
  1962.  cCel
  1963.  
  1964.   CCEL changes any active cells into the specified cell.
  1965.  
  1966.      This command will not work in a rank 1 cell.
  1967.  
  1968.      Attempting to change to an unknown cell or a cell too high in rank
  1969.       will abort the command.
  1970.  
  1971.   Cancel CCEL by pressing ENTER only or ESC.
  1972.  
  1973.  Cell
  1974.  
  1975.   CELL exits Cell or System Mode and enters Cell Mode.
  1976.  
  1977.   To enter Cell Mode using the CELL command:
  1978.  
  1979.      A cellname must be provided.
  1980.  
  1981.      If you execute CELL in Cell Mode, the first active cell that is found
  1982.       in the drawing becomes the default cellname. If there is a default
  1983.       cellname, you will be transferred to that cell directly.
  1984.  
  1985.      If no cellname is found, you will be asked for one.
  1986.  
  1987.      If a cell is a new one, the rank will also be requested.
  1988.  
  1989.      To create a new cell you must use this command.
  1990.  
  1991.      If a mistake is made, or you want to go to System Mode press ENTER
  1992.       only or ESC to the cellname or rank question.
  1993.  
  1994.   Note:  You can also get to a cell by selecting the cell from the cell
  1995.     list using the LIST command, or you can go directly to a cell by typing
  1996.     the cellname on the DOS command line after "lasi" when starting the
  1997.     program.
  1998.  
  1999.  cGet
  2000.  
  2001.   CGET (cell get) makes cells active.
  2002.  
  2003.      If the rectangular cursor window completely encloses the cell's area
  2004.       the cell will become active.
  2005.  
  2006.     or:
  2007.       If the mouse button is double clicked while making the cursor window,
  2008.       a cell will become active if the cells's area overlaps the cursor
  2009.       window. This does not work if the cell is drawn as an outline.
  2010.  
  2011.      An active cell turns bright white on all layers.
  2012.  
  2013.      An active cell drawn as an outline turns bright white and is filled
  2014.       with dots.
  2015.  
  2016.      There is no dependence on VIEW or OPEN.
  2017.  
  2018.   CGET only works on the top level of cells and has no effect on boxes or
  2019.   paths.
  2020.  
  2021.  Clrs
  2022.  
  2023.   CLRS enters into the Layer Attribute Display and allows the color of a
  2024.   layer to be set.
  2025.  
  2026.      The number of the layer is shown in the layer color.
  2027.  
  2028.   To exit, press ESC to the "Color Layer" question.
  2029.  
  2030.  Clyr
  2031.  
  2032.   CLYR changes the layer of boxes, paths or text.
  2033.  
  2034.      If the value entered is not 1 through 64, the layer will be reasked.
  2035.  
  2036.      The default layer is the layer currently set by the LAYR command.
  2037.  
  2038.      Boxes must have ALL sides active to change layer.
  2039.  
  2040.      Paths must have ANY vertex active to change layer.
  2041.  
  2042.      Text will change layer if active.
  2043.  
  2044.   Read LAYR.
  2045.  
  2046.  cMov
  2047.  
  2048.   CMOV (cell move) moves cells directly.
  2049.  
  2050.      A cell will be moved if the rectangular cursor window completely
  2051.       encloses the cell's area.
  2052.  
  2053.     or:
  2054.       If the mouse button is double clicked while making the cursor window,
  2055.       the cell will be moved if the cell's area overlaps the cursor window.
  2056.       This does not work if the cell is drawn only as an outline.
  2057.  
  2058.      The first two cursor points form the cursor window.
  2059.  
  2060.      The next two cursor points determine the distance to be moved.
  2061.  
  2062.      The move part of the command accepts a single PKE distance entry.
  2063.  
  2064.   CMOV only works on the top level of cells and has no effect on boxes and
  2065.   paths.
  2066.  
  2067.  Cntr
  2068.  
  2069.   CNTR centers the drawing window.
  2070.  
  2071.      The new center is a single point input from the mouse or a PKE
  2072.       coordinate entry.
  2073.  
  2074.      The display is redrawn.
  2075.  
  2076.   Read DRAW.
  2077.  
  2078.  Copy
  2079.  
  2080.   COPY allows NORMAL cells to be copied or appended to other NORMAL cells.
  2081.  
  2082.   Rules for COPYing:
  2083.  
  2084.      The source cell must be a NORMAL cell (not attached) in the drawing
  2085.       cell collection.
  2086.  
  2087.      If the destination cell has a NEW NAME, a new cell will be created.
  2088.  
  2089.      If the destination cell already exists, the source cell will be
  2090.       APPENDED to the existing cell.
  2091.  
  2092.      If either the source or destination cells are attached cells, the
  2093.       command will abort.
  2094.  
  2095.   Inter-rank copying is permitted. If the source cell contains cells that
  2096.   have rank equal to or greater than the destination cell, those cells will
  2097.   not be copied. Boxes, paths and text are always copied.
  2098.  
  2099.   Appended objects appear as active objects in the destination cell. This
  2100.   allows you to move the appended parts if they overlay any previous
  2101.   objects. When you first enter Cell Mode when doing this procedure, the
  2102.   status at the bottom will not indicate any active objects. Ignore it.
  2103.  
  2104.   If the source or destination cells are incorrect, or if copying will
  2105.   overflow the allocation in FORM of any objects, the copy operation will
  2106.   be cancelled and a message will be shown.
  2107.  
  2108.   Read the IMPORT Command Topic.
  2109.  
  2110.  cPut
  2111.  
  2112.   CPUT (cell put) makes cells inactive.
  2113.  
  2114.      This the inverse of CGET, and works the same way.
  2115.  
  2116.   Read APUT.
  2117.  Cpy
  2118.  
  2119.   CPY copies active objects.
  2120.  
  2121.      The displacement is determined by a 2-point cursor input.
  2122.  
  2123.      The original objects are made inactive and the copies are made
  2124.       active.
  2125.  
  2126.      Boxes are copied if ALL sides are active.
  2127.  
  2128.      Cells are copied if they are active.
  2129.  
  2130.      Vertices of paths are copied only if they are active. To copy a path
  2131.       completely it must be fully active. This feature allows you to copy
  2132.       sections of paths.
  2133.  
  2134.      Text is copied if it is active.
  2135.  
  2136.      CPY accepts a single PKE distance entry.
  2137.  
  2138.   Read STEP.
  2139.  
  2140.  Cut
  2141.  
  2142.   CUT breaks a path into two separate paths at an active vertex.
  2143.  
  2144.      This command works if there is ONLY ONE active vertex.
  2145.  
  2146.      The last vertex at the cut point of the newly created path is made
  2147.       active.
  2148.  
  2149.   Use this command to break paths into segments to create new
  2150.   constructions, and to make shorter paths and poly that will be more
  2151.   manageable for translation into other drawing systems.
  2152.  
  2153.  cWth
  2154.  
  2155.   CWTH changes the width of paths and the size of text.
  2156.  
  2157.      The default width is the width currently set by the WDTH command.
  2158.  
  2159.      Paths with ANY vertex active will change width.
  2160.  
  2161.      Text that is active will change its size to the new width.
  2162.  
  2163.   Read WDTH.
  2164.  
  2165.  Dash
  2166.  
  2167.   DASH enters into the Layer Attribute Display and allows the type of dash
  2168.   to be set for a layer.
  2169.  
  2170.      The pattern of the dash number is shown by the sample lines.
  2171.  
  2172.      The dash number of the layer is shown above the corresponding colored
  2173.       layer number.
  2174.  
  2175.   To exit, press ESC to the "Dash Layer" question.
  2176.  
  2177.  Del
  2178.  
  2179.   DEL deletes objects or parts of objects.
  2180.  
  2181.      An object's layer must be VIEWed and OPENed to be deleted.
  2182.  
  2183.      Boxes are deleted if ALL sides are active.
  2184.  
  2185.      Active vertices of paths are deleted.
  2186.  
  2187.      Text is deleted if it is active.
  2188.  
  2189.      Paths with one or no vertices on any layer are deleted.
  2190.  
  2191.      Cells that are active are deleted without regard to the layers that
  2192.       they contain and the status of the VIEW and OPEN commands.
  2193.  
  2194.   Important:  Before any object is deleted, the hard disk files DSBKUP.BP4
  2195.     and DSBKUP.CL4 are updated. If you make a mistake and delete the wrong
  2196.     thing, you can use the ABRT command to restore the drawing.
  2197.  
  2198.  dGrd
  2199.  
  2200.   DGRD sets the dot grid.
  2201.  
  2202.      The dot grid is in physical units.
  2203.  
  2204.      The dot grid may be any acceptable size and can be toggled on and off
  2205.       with the GRID command.
  2206.  
  2207.      If the grid is smaller than the resolution set by the SET command it
  2208.       will not be drawn.
  2209.  
  2210.      The present dot grid will be shown at the bottom of the screen.
  2211.  
  2212.   Read SET.
  2213.  
  2214.  DOS
  2215.  
  2216.   DOS temporally runs other programs from the DOS command line.
  2217.  
  2218.      At least 64K of memory must be available for this command to work.
  2219.  
  2220.      The DOS command from System Mode makes more memory available than the
  2221.       DOS command from Cell Mode because it deallocates drawing space. If
  2222.       you use too much memory you may get an "Not Available" message.
  2223.  
  2224.      Certain DOS command line operations may be done, like DIR for
  2225.       example.
  2226.  
  2227.      Certain small programs may be run if they can load into available
  2228.       memory.
  2229.  
  2230.   DO NOT run LASI utility programs from this command since the drawing
  2231.   information may not be current on the hard disk.
  2232.  
  2233.  Draw
  2234.  
  2235.   DRAW redraws the drawing window on the screen.
  2236.  
  2237.      Drawing of boxes, paths and text takes place in ascending layer
  2238.       order.
  2239.  
  2240.      Lesser cells are drawn starting at the lowest rank and are overlayed
  2241.       upward.
  2242.  
  2243.      The boxes, paths and text of the current cell always overlay all
  2244.       layers of any lesser cells.
  2245.  
  2246.      If during redraw a cell to be drawn exceeds the space allocation set
  2247.       with the Form File, a message will be printed and drawing will stop.
  2248.  
  2249.      Paths with widths near the unit grid limit may appear distorted. This
  2250.       is because all drawing points are set in the unit grid.
  2251.  
  2252.      If you try to draw a path or poly with a vertex count exceeding the
  2253.       limits of 250 and 500 respectively, the object may not draw or fill
  2254.       correctly, but drawing will fail gracefully.
  2255.  
  2256.      Paths may be drawn with or without a dashed center line. To toggle
  2257.       the center line on and off press the C key. A "C" displayed in the
  2258.       lower right of the screen indicates that center lines are ON.
  2259.  
  2260.   Read the Drawing Speed General topic for useful information.
  2261.  
  2262.  fGet
  2263.  
  2264.   FGET (full get) makes a box or path fully active.
  2265.  
  2266.      A box is made fully active if ANY side is made active as would be
  2267.       done using GET.
  2268.  
  2269.      A path is made fully active if ANY vertex is made active as would be
  2270.       done using GET.
  2271.  
  2272.      FGET is the same as GET for text.
  2273.  
  2274.      This command allows the entire box or path to be operated upon by any
  2275.       subsequent command if only a part is accessible.
  2276.  
  2277.   If you want to delete a box or path completely use this command first.
  2278.  
  2279.  Fill
  2280.  
  2281.   FILL enters into the Layer Attribute Display and allows the type of fill
  2282.   to be set for a layer.
  2283.  
  2284.      The pattern of the fill number is shown by the sample boxes.
  2285.  
  2286.      The fill number of the layer is shown above the corresponding colored
  2287.       layer number.
  2288.  
  2289.      Boxes, paths and closed polygons will be filled with the chosen fill
  2290.       pattern.
  2291.  
  2292.      The fill of all layers may be temporally turned off by answering
  2293.       "off" to the "Fill Layer" question. Calling FILL again will turn fill
  2294.       back on.
  2295.  
  2296.   To exit, press ESC to the "Fill Layer" question.
  2297.  
  2298.  Fit
  2299.  
  2300.   FIT sets the size of the drawing window so that it will show all of the
  2301.   objects in a cell.
  2302.  
  2303.      There is no dependence in VIEW or OPEN.
  2304.  
  2305.      The display is redrawn.
  2306.  
  2307.      If there are no objects present, fit will expand the drawing window
  2308.       to the maximum size permitted or the whole "universe".
  2309.  
  2310.   Read DRAW and the Universe General Topic.
  2311.  
  2312.  Flp
  2313.  
  2314.   FLP flips objects.
  2315.  
  2316.      Flipping in either X or Y determined by a 2-point cursor input.
  2317.  
  2318.      The larger dimension of the cursor input determines the flip axis.
  2319.  
  2320.      The cursor will show the approximate flip axis.
  2321.  
  2322.      Boxes flip if ALL sides are active.
  2323.  
  2324.      ALL vertices of a path flip if ANY vertex is active.
  2325.       
  2326.      Text will flip if active.
  2327.  
  2328.   Note:  FLP and ROT do no commute. That is, the order in which these
  2329.     commands are used is important. Objects FLPed and ROTed in different
  2330.     orders are not the same.
  2331.  
  2332.   Read ROT.
  2333.  
  2334.  Form
  2335.  
  2336.   FORM displays the settings in the FORM.DBD file.
  2337.  
  2338.      The parameters and their variables are shown on the first page.
  2339.  
  2340.      The function key assignments are shown on the next two pages or until
  2341.       there are no more assignments.
  2342.  
  2343.      Press ESC or click the right mouse button to goto the next page.
  2344.  
  2345.   Read the Form File topic in General Information.
  2346.  
  2347.  fPut
  2348.  
  2349.   FPUT (full put) makes boxes and paths fully inactive.
  2350.  
  2351.      This is the inverse of FGET.
  2352.  
  2353.      A box is made fully inactive if ANY side is made inactive.
  2354.  
  2355.      A path is made fully inactive if ANY single vertex is made inactive.
  2356.  
  2357.      FPUT is the same as PUT for text.
  2358.  
  2359.   Use this command to make fully inactive a box or path when only a part of
  2360.   the box or path is displayed.
  2361.  
  2362.  Full
  2363.  
  2364.   FULL removes cells from being drawn as an outline.
  2365.  
  2366.      Cells are changed from being drawn as an outline if a cell's area is
  2367.       completely enclosed by the rectangular cursor window.
  2368.  
  2369.   Read OUTL.
  2370.  
  2371.  Get
  2372.  
  2373.   GET makes single parts of boxes and paths active.
  2374.  
  2375.      The layer must be VIEWed and OPENed.
  2376.  
  2377.      Box sides are made active if they pass anywhere within the
  2378.       rectangular cursor window.
  2379.  
  2380.      Path vertices are made active if they are within the cursor window.
  2381.  
  2382.      Text is made active if its reference point is in the cursor window.
  2383.  
  2384.   When made active:
  2385.  
  2386.      Box sides turn bright white.
  2387.  
  2388.      Vertices are marked and segments of paths that will move as a unit
  2389.       turn bright white.
  2390.  
  2391.      Text turns bright white.
  2392.  
  2393.   GET is the default command when LASI is started.
  2394.  
  2395.  Grid
  2396.  
  2397.   GRID toggles the dot grid on and off.
  2398.  
  2399.      The menu button intensifies to indicate that the grid is on.
  2400.  
  2401.      The dot grid will not be drawn if the spacing is less that the
  2402.       drawing resolution set using the SET command.
  2403.  
  2404.   Read SET and DGRD.
  2405.  
  2406.  Hcpy
  2407.  
  2408.   HCPY expands the screen and calls a hardcopy program that makes a bitmap
  2409.   copy of the screen on a printer or to a file.
  2410.  
  2411.   When HCPY is called the screen will redraw to full size. The system will
  2412.   wait for a key to be pressed:
  2413.  
  2414.      Press ENTER if you want to add the name, date and time to the screen
  2415.       and start a hardcopy.
  2416.  
  2417.      Press CTRL-ENTER if you want to make a hardcopy of the screen without
  2418.       the name, date and time.
  2419.  
  2420.      Press ESC anytime if you want to abort hardcopying.
  2421.  
  2422.   Note:  At least 64K of remaining memory is necessary to run a hardcopy
  2423.     program. If there isn't, the hardcopy will not execute and you will
  2424.     return to LASI Cell Mode.
  2425.  
  2426.   Read the Hardcopy General topic.
  2427.  
  2428.  Iden
  2429.  
  2430.   IDEN identifies an active object.
  2431.  
  2432.      Objects are taken in the order: box/path/cell.
  2433.  
  2434.      Only the first active object found is reported.
  2435.  
  2436.      For a box the layer is shown.
  2437.  
  2438.      For a path the layer and the width are shown.
  2439.  
  2440.      For text the layer and size are shown.
  2441.  
  2442.      For a cell the name, position and orientation are shown.
  2443.  
  2444.      No active object gives a parts count of the current cell.
  2445.  
  2446.   Read SHOW.
  2447.  
  2448.  Import
  2449.  
  2450.   IMPORT allows ATTACHED cells to be brought into a drawing as NORMAL
  2451.   cells.
  2452.  
  2453.   Rules for IMPORTing:
  2454.  
  2455.      The source must be an ATTACHED cell in the drawing cell collection.
  2456.  
  2457.      If the destination cell has the SAME NAME as the source cell, the
  2458.       cell becomes a NORMAL cell and replaces all occurrences of its use in
  2459.       all other cells.
  2460.  
  2461.      If the destination cell has a NEW NAME, a NEW NORMAL cell will be
  2462.       created with the new name.
  2463.  
  2464.      The destination will always become a rank 1 cell.
  2465.  
  2466.      If the source cell is not attached, the destination cell is already
  2467.       present or is an attached cell with a different name, the command
  2468.       will be aborted.
  2469.  
  2470.      Cells never export back to the pool.
  2471.  
  2472.   If imported to the SAME NAME, a BP4 file will be copied from the pool to
  2473.   the drawing directory. You would use this procedure if you want to
  2474.   replace all occurrences of an attached cell in other cells with a normal
  2475.   cell that may be modified. You can then RENAM the normalized cell, and
  2476.   ATTACH the original cell again to make other modified versions.
  2477.  
  2478.   If the destination has a NEW NAME, a new normal cell will be created and
  2479.   the attached cell will remain unaffected. You can then modify the new
  2480.   cell and use it where desired.
  2481.  
  2482.   Notice that the difference between these two procedures is that in the
  2483.   first procedure the attached cell is replaced automatically wherever it
  2484.   is used. In the second procedure you generate an independent cell and you
  2485.   must replace any occurrences of the attached cell individually.
  2486.  
  2487.   If the source or destination cells are incorrect, or if importing will
  2488.   overflow the allocation in FORM of any objects, the import operation will
  2489.   be cancelled and a message will be shown.
  2490.  
  2491.   Read the COPY Command topic.
  2492.  
  2493.  Join
  2494.  
  2495.   JOIN connects two paths head to tail to form a new single path.
  2496.  
  2497.   Rules for JOINing:
  2498.  
  2499.      This command works only if there are exactly two active vertices
  2500.       which are the end and beginning of a path.
  2501.  
  2502.      If the active vertices are beginning and end of the same path and the
  2503.       path is not already closed, a segment will be added to close the path
  2504.       and both vertices will be made inactive.
  2505.  
  2506.      If the active vertices are beginning and end of different paths and
  2507.       the vertices are at the same location, the paths will be merged into
  2508.       a single path, one vertex will be deleted, and one vertex will remain
  2509.       active.
  2510.  
  2511.      If the active vertices are beginning and end of different paths and
  2512.       the vertices are at different locations, a segment will be added, the
  2513.       paths will be merged into a single path, and both vertices will
  2514.       remain active.
  2515.  
  2516.   Use this command to condense paths to reduce data, and to make closed
  2517.   poly constructions out of poly segments.
  2518.  
  2519.  Kill
  2520.  
  2521.   KILL removes a cell from the drawing
  2522.  
  2523.      Cells are removed from the drawing's cell collection.
  2524.  
  2525.      KILLed cells are removed from any other cells.
  2526.  
  2527.      The cell internal files at the DOS system level are erased.
  2528.  
  2529.   Important:  It is recommended that you keep an archive of your cells
  2530.     using the TLC.EXE utility program. This is the only way that you can
  2531.     recover a cell that has been accidentally KILLed.
  2532.  
  2533.  Layr
  2534.  
  2535.   LAYR sets the layer of boxes, paths or text to be ADDed.
  2536.  
  2537.      If the value entered is not 1 through 64, the layer will be reasked.
  2538.  
  2539.   Read CLYR.
  2540.  
  2541.  List
  2542.  
  2543.   LIST lists the cells in the cell collection.
  2544.  
  2545.      This command appears in both System and Cell Modes.
  2546.  
  2547.      The mouse will also be active and the cursor can be positioned on the
  2548.       name of any of the cells listed. If the left mouse button is clicked
  2549.       on the cellname, Cell Mode will be entered for that cell.
  2550.  
  2551.      If the left mouse button is clicked in a location that will not
  2552.       select a cell, it will be ignored.
  2553.  
  2554.      Pressing ESC or clicking the right mouse button will step to the next
  2555.       page or will exit to the present mode.
  2556.  
  2557.      Attached cell names appear in red in the cell list.
  2558.  
  2559.   The list of cells has a history feature. The number that appears in front
  2560.   of a cellname indicates the inverse order in which the cells were last
  2561.   opened. That is, number 1 is the last cell you worked on, number 2 the
  2562.   second to last, and so on. This allows you to go through a sequence of
  2563.   deeply nested cells, and then randomly return to a higher ranked cell.
  2564.  
  2565.   Rules for cell history:
  2566.  
  2567.      If a cell is opened again, previous events for that cell are purged
  2568.       from the history.
  2569.  
  2570.      An asterisk indicates the current cell.
  2571.  
  2572.   Hint:  LIST is the fastest way to change from cell to cell because you
  2573.     don't have to type or even precisely remember a cellname.
  2574.  
  2575.  Make
  2576.  
  2577.   MAKE makes a new cell from the active cells, boxes, paths and text.
  2578.  
  2579.   Rules for MAKE:
  2580.  
  2581.      Boxes, paths and text are copied if ANY part is active.
  2582.  
  2583.      The rank of the new cell will be one higher than the highest rank of
  2584.       any active cells.
  2585.  
  2586.      The name must not already be in the cell collection. If it is, the
  2587.       prompt will be reasked. No name at all or ESC will cancel MAKE.
  2588.  
  2589.   When MAKE makes a new cell it first determines the area or outline of the
  2590.   current cell on which you are working. It then uses this area as the area
  2591.   of the new cell. It also uses the current origin as the origin of the new
  2592.   cell. Normally, you will enter into Cell Mode with the new cell and
  2593.   reposition the origin with the ORIG command. When Cell Mode is then
  2594.   exited the correct area will be recalculated.
  2595.  
  2596.   Hint:  When MAKE is used to create a new cell, its name is at the end of
  2597.     the cell list. Use LIST to go to the new cell to make any changes.
  2598.  
  2599.  
  2600.   MAKE can be used to copy portions of one cell to another cell. First make
  2601.   a temporary cell and then go to System Mode and COPY the temporary cell
  2602.   to the destination cell. When you enter the destination cell the you will
  2603.   find the temporary cell appended to it. You can then KILL the temporary
  2604.   cell.
  2605.  
  2606.  Mov
  2607.  
  2608.   MOV moves the active sides of boxes, active vertices, and active cells.
  2609.  
  2610.      The distance is determined from a 2-point cursor input.
  2611.  
  2612.      The cursor will show the approximate move.
  2613.  
  2614.      MOVs are always done in multiples of the working grid, unless you
  2615.       press the A or ALT keys to switch to the unit grid.
  2616.  
  2617.      MOV accepts a single PKE distance entry.
  2618.  
  2619.   Read WMOV, QMOV and CMOV.
  2620.  
  2621.  Obj
  2622.  
  2623.   OBJ sets the name or type of object to be added.
  2624.  
  2625.      Responding with "b" will make boxes and "p" will make paths.
  2626.  
  2627.      For adding a cell give the name of the cell.
  2628.  
  2629.   Note:  Boxes, paths and cells are treated equally as far as adding is
  2630.     concerned. However, boxes, paths and text are "basic" objects while
  2631.     cells are compound objects. Generally, there are different commands for
  2632.     these different types of objects.
  2633.  
  2634.  Octo
  2635.  
  2636.   OCTO is a toggle that changes octagonal cursor mode on certain commands.
  2637.  
  2638.      The menu button intensifies to indicate that octagonal mode is on.
  2639.  
  2640.      When octagonal mode is on, the cursor displacement is snapped to the
  2641.       nearest 45 degrees. The commands ADD (for paths), MOV, WMOV, QMOV,
  2642.       CMOV and CPY are affected.
  2643.  
  2644.   This command is used to restrict drawing so that only 45 and 90 degree
  2645.   angles are allowed, which preserves drawing neatness and conforms to
  2646.   certain physical artwork generation requirements.
  2647.  
  2648.  Open
  2649.  
  2650.   OPEN sets the layers that can have their boxes, paths and text made
  2651.   active.
  2652.  
  2653.      Boxes, paths and text that are not OPENed are blocked from the GET,
  2654.       FGET, WMOV, QMOV, PBEG and PEND commands.
  2655.  
  2656.      Cell commands like CGET, CPUT or CMOV are not affected.
  2657.  
  2658.   VIEW and OPEN accept layer inputs that can be single layers in any order,
  2659.   or a dash (-) can be used to indicate all inclusive layers between the
  2660.   end layers. A dash alone will give all layers from 1 to 64.
  2661.  
  2662.  Orig
  2663.  
  2664.   ORIG relocates the coordinates of all objects in a drawing so that the
  2665.   single cursor input point is the 0,0 position.
  2666.  
  2667.      This command allows objects to be constructed almost anywhere on the
  2668.       drawing window and then be repositioned as desired.
  2669.  
  2670.      The working grid is the default grid, but may be changed to the unit
  2671.       grid with the A or ALT keys.
  2672.  
  2673.   Set you cell origin as soon as you make a cell, or you may have to
  2674.   relocate the cell each time it is used in higher ranking cells.
  2675.  
  2676.  Outl
  2677.  
  2678.   OUTL sets cells to draw as an outline.
  2679.  
  2680.      Cells are changed to outlines if a cell's area is completely enclosed
  2681.       by the rectangular cursor window.
  2682.  
  2683.     or:
  2684.       If the mouse is double clicked while making the cursor window, cells
  2685.       will be changed if the cell's area overlaps the cursor window.
  2686.  
  2687.      An outlined cell will be drawn as a white rectangle with the name of
  2688.       the cell in text in the lower left corner. An active cell in outline
  2689.       will be drawn as a bright white rectangle filled with dots.
  2690.  
  2691.      The cell's name can be toggled on and off by pressing the N key. An
  2692.       "N" displayed in the lower right of the screen indicates that names
  2693.       are ON.
  2694.  
  2695.   You can greatly speed up an overall redraw by setting the cells in an
  2696.   region where you are not currently working to outline. When a cell is set
  2697.   to outline, retrieval of the cell's files from a disk is unnecessary and
  2698.   drawing the internal parts of a cell is skipped.
  2699.  
  2700.   Read FULL.
  2701.  
  2702.  OvSz
  2703.  
  2704.   OVSZ expands the sides of boxes, paths and closed poly by a certain
  2705.   distance.
  2706.  
  2707.   Rules for OVSZing:
  2708.  
  2709.      A negative distance shrinks the sides.
  2710.  
  2711.      Only active box sides are oversized.
  2712.  
  2713.      All sides of paths or closed polygons are oversized if any vertex is
  2714.       active.
  2715.  
  2716.      The oversizing algorithm used must identify a polygon as having a
  2717.       rotational angle of +/-360 deg. If this cannot be done, the poly will
  2718.       be unchanged.
  2719.  
  2720.      If a poly contains adjacent sides that are folded back 180 deg on
  2721.       each other, the results will be undefined since the direction of
  2722.       folding cannot be identified.
  2723.  
  2724.   Note:  Acute angles on closed poly are not oversized correctly. You need
  2725.     to insert an additional vertex at an acute angle to prevent the peak of
  2726.     an acute angle from extending beyond the oversize distance.
  2727.  
  2728.   Read PSIZ.
  2729.  
  2730.  pBeg
  2731.  
  2732.   PBEG makes the first vertex of a path active.
  2733.  
  2734.      This command works if ANY vertex of a path falls within the
  2735.       rectangular cursor window.
  2736.  
  2737.      PBEG is useful when the JOIN command is being used.
  2738.  
  2739.   Read PEND.
  2740.  
  2741.  pEnd
  2742.  
  2743.   PEND makes the last vertex of a path active.
  2744.  
  2745.      This command works if ANY vertex of a path falls within the
  2746.       rectangular cursor window.
  2747.  
  2748.      This command is useful both to find the end of a path and to reopen a
  2749.       closed path.
  2750.  
  2751.   Read PBEG.
  2752.  
  2753.  Plot
  2754.  
  2755.   PLOT calls the plotting program.
  2756.  
  2757.      A plot will be made of the last cell as it was shown in the drawing
  2758.       window.
  2759.  
  2760.      The drawing window center and width and the cellname are passed to
  2761.       the plotting program.
  2762.  
  2763.      The plotting program is named in the FORM "plot=" parameter.
  2764.  
  2765.      Presently, the only plotting program is LASI2HP.EXE.
  2766.  
  2767.   It is possible that you will not have enough contiguous memory available
  2768.   to run a plot program from LASI. If this happens, the program will not
  2769.   execute and you will return to LASI. To remedy this situation, either add
  2770.   more RAM, if possible, remove any unnecessary resident programs (TSRs) or
  2771.   reduce the amount of memory used by LASI in the "box=", "path=", "vtx="
  2772.   and "cell=" FORM parameters. If this fails, run the plotting program by
  2773.   itself.  Read the HPGL Conversion help category for how to do this.
  2774.  
  2775.  pRev
  2776.  
  2777.   PREV reverses the order of the vertices in a path.
  2778.  
  2779.      A path must have at least one active vertex.
  2780.  
  2781.      ALL paths that have any active vertex will be reversed.
  2782.  
  2783.   Reversing the order allows vertices to be added to either the beginning
  2784.   or end of a path. It also allows paths to be JOINed properly.
  2785.  
  2786.  pSiz
  2787.  
  2788.   PSIZ changes the size of a path while still preserving its shape.
  2789.  
  2790.      The multiplier is 1 for no change, and can be any number that will
  2791.       not cause the path to overflow the drawing area. The geometric center
  2792.       of the path is kept constant.
  2793.  
  2794.      If a small path is resized or if it is made too small, it may change
  2795.       shape due to the limited resolution of the unit grid.
  2796.  
  2797.      PSIZ acts on paths that have ANY vertex active.
  2798.  
  2799.   Use PSIZ to make different sizes of complex polygon figures such as
  2800.   symbols or lettering.
  2801.  
  2802.   Read OVSZ.
  2803.  
  2804.  Put
  2805.  
  2806.   PUT makes single parts of boxes and paths inactive.
  2807.  
  2808.      This is the inverse of GET and works the same way.
  2809.  
  2810.   Read FPUT and APUT.
  2811.  
  2812.  qMov
  2813.  
  2814.   QMOV (quick move) functions like the sequence GET, MOV, PUT.
  2815.  
  2816.      This command works on box sides that pass through the cursor window,
  2817.       and on vertices or text reference points that are enclosed by the
  2818.       cursor window.
  2819.  
  2820.      Box and path layers must be VIEWed and OPENed.
  2821.  
  2822.      The move part of this command accepts a single PKE distance entry.
  2823.  
  2824.   QMOV is useful for making small vertex movements and small box side
  2825.   movements when the path or box is only partly accessible.
  2826.  
  2827.   Read WMOV.
  2828.  
  2829.  Quit
  2830.  
  2831.   QUIT exits from the LASI drawing system to DOS.
  2832.  
  2833.      All current information about the drawing is saved on the hard disk
  2834.       in the drawing directory.
  2835.  
  2836.      The condition of DOS when LASI was entered is restored.
  2837.  
  2838.   The drawing may be reentered by running LASI.EXE again. However, the
  2839.   cells that may have been stored on a RAM disk will be unknown to LASI and
  2840.   will have to be relearned by drawing them once.
  2841.  
  2842.  ReNam
  2843.  
  2844.   RENAM changes the name of a cell.
  2845.  
  2846.      Cellnames must conform to DOS filename rules.
  2847.  
  2848.      This command will not work if the new name is the name of a cell that
  2849.       already exists in the cell collection or is a reserved name such as
  2850.       "b" or "p".
  2851.  
  2852.   To give a cell another cell's name in a cell collection, you must first
  2853.   RENAM or KILL the original cell and then RENAM the cell.
  2854.  
  2855.  Res
  2856.  
  2857.   RES calls the resistance calculator.
  2858.  
  2859.   To measure resistance:
  2860.  
  2861.   1. You first must enter the sheet resistance in resistance units/square.
  2862.      This will usually be ohms/square.
  2863.  
  2864.   2. You will next be asked for the End Compensation. This is the number of
  2865.      squares to be added or subtracted to compensate for any effects of
  2866.      resistor heads. This depends on how you draw your resistors and can be
  2867.      a fractional number.
  2868.  
  2869.   3. After you enter the sheet resistance, if a path with ANY active vertex
  2870.      is found, the path will be automatically traced from beginning to end
  2871.      and the total resistance will be displayed. To compensate for corners,
  2872.      half the width is always subtracted from each segment length.
  2873.  
  2874.   4. After a SINGLE path is measured the command will enter manual mode.
  2875.  
  2876.   5. If no path has been found, you will have to manually enter the
  2877.      resistor width, otherwise, the path width is taken as the resistor
  2878.      width.
  2879.  
  2880.   6. In manual mode, at the "<-->" command prompt, the width of the
  2881.      resistor must be measured by a 2-point cursor input or a single PKE
  2882.      distance entry.
  2883.  
  2884.   7. At the command prompt "R-->", you can then calculate resistance by
  2885.      making 2-point cursor distance measurements along the length of a
  2886.      resistor. The distance will be displayed by a dashed line, and the
  2887.      incremental resistance and the total resistance will be displayed at
  2888.      the bottom of the screen.
  2889.  
  2890.   8. To end measuring, click the mouse on any menu button except a window
  2891.      command, or press ESC.
  2892.  
  2893.   Note:  To automatically measure a path, it must be a path in the present
  2894.     cell. Paths that are visible but are part of a cell within the present
  2895.     cell must still be manually measured.
  2896.  
  2897.   This command can be used as a ratio parameter calculator. For example, to
  2898.   measure a MOS gate size, set the sheet resistance to 1. Measure the gate
  2899.   width as the resistor width and the gate length as the resistor length.
  2900.  
  2901.  rDrw
  2902.  
  2903.   RDRW is the same as DRAW except that layers are drawn in reverse
  2904.   descending order.
  2905.  
  2906.      The drawing order rules for lesser cells of DRAW apply to RDRW.
  2907.  
  2908.   This command is useful if you want to overlay fills so that objects that
  2909.   would normally be covered by objects on higher layers remain visible.
  2910.  
  2911.   Read DRAW.
  2912.  
  2913.  Rot
  2914.  
  2915.   ROT rotates objects.
  2916.  
  2917.      Rotation is around a single cursor input point.
  2918.  
  2919.      Boxes, text and cells rotate +/-90, 180 deg.
  2920.  
  2921.      Paths rotate through any angle.
  2922.  
  2923.      Boxes rotate if ALL sides are active.
  2924.  
  2925.      ALL vertices of a path rotate if ANY vertex is active.
  2926.  
  2927.      Text and cells rotate if they are active.
  2928.  
  2929.   Note:  Sometimes a rotated path may not be exactly identical to an
  2930.     original if it has been rotated and then rotated back. This is caused
  2931.     by rounding coordinates to the unit grid each time a rotation takes
  2932.     place.
  2933.  
  2934.   Read FLP.
  2935.  
  2936.  Rstr
  2937.  
  2938.   RSTR restores a drawing window.
  2939.  
  2940.      RSTR does not accept keyboard entries in the usual way, that is,
  2941.       terminated by ENTER. It requires only a number key to be pressed.
  2942.  
  2943.      Only the keys 0-9 will execute the command, otherwise the window
  2944.       number will be reasked.
  2945.  
  2946.      Window 0 is always the previous window.
  2947.  
  2948.      Windows 1-9 should have been saved using the SAVE command.
  2949.  
  2950.      The restored drawing window is immediately redrawn.
  2951.  
  2952.      Press ESC to abort RSTR.
  2953.  
  2954.   Note:  RSTR has a LAST WINDOW FEATURE. Whenever a window is changed, the
  2955.     previous window remembered. Reclicking the right mouse button will
  2956.     cause the original window to be restored.
  2957.  
  2958.  Save
  2959.  
  2960.   SAVE saves a drawing window.
  2961.  
  2962.      The windows are numbered 1-9.
  2963.  
  2964.      SAVE does not accept keyboard entries in the usual way, that is,
  2965.       terminated by ENTER. It requires only a number key to be pressed.
  2966.  
  2967.      Only the keys 1-9 are acceptable window numbers, otherwise, the
  2968.       window number will be reasked.
  2969.  
  2970.      Press ESC to abort SAVE.
  2971.  
  2972.   The windows saved are global, that is they are independent of the Cell
  2973.   Mode rank that you are in. The windows are stored in the CONSTS4.DBD file
  2974.   when you quit LASI, and are returned when you rerun the program.
  2975.  
  2976.  Scale
  2977.  
  2978.   SCALE is used to set the name of the physical scale units of the drawing
  2979.   and the number of basic units per physical unit.
  2980.  
  2981.   Rules for setting scales:
  2982.  
  2983.      The scale units name can be anything, but for integrated circuits
  2984.       "um" and "mil" are preferred because some utility programs use these
  2985.       units.
  2986.  
  2987.      Only the first 5 characters will be accepted for the scale name.
  2988.  
  2989.      The number of basic units per physical unit will usually be an
  2990.       integer greater than 1, but fractional scales are permitted.
  2991.  
  2992.   The scale that is set by this command really only relates the basic units
  2993.   in which a drawing is internally done to the inputs that you give to
  2994.   certain questions and to dimensions that you see externally. All inputs
  2995.   and outputs are converted by the scale to and from basic units.
  2996.  
  2997.   When setting up a scale, you should determine the maximum size that your
  2998.   drawing could be and then set your scale so that the maximum number of
  2999.   basic units (65536) is slightly larger than that size. For example, a
  3000.   typical integrated circuit will fit in 16 mm, which would result from
  3001.   using a scale of 4 basic units/micron, or .25um drawing resolution.
  3002.  
  3003.  Set
  3004.  
  3005.   SET allows you to change certain parameters and the actions of certain
  3006.   commands.
  3007.  
  3008.   Presently 5 parameters can be set:
  3009.  
  3010.   1. SET sets the resolution of the drawing in (screen width/size of
  3011.      figure) units.
  3012.  
  3013.      Boxes are not drawn if both dimensions are less than the resolution.
  3014.  
  3015.      Paths or poly are not drawn if the distance from the minimum vertex
  3016.       to the maximum vertex in both dimensions is less than the resolution.
  3017.  
  3018.      Paths are drawn as lines if their width is less than the resolution.
  3019.  
  3020.      Text is not drawn if its size (height) is less than the resolution.
  3021.  
  3022.      The dot grid is not draw if its spacing is less than the resolution.
  3023.  
  3024.   Normally, resolution of 200 is about right.
  3025.  
  3026.   2. The text spacing ratio can be set. This is the fraction of the size of
  3027.      text characters with which the characters are spaced. The value is
  3028.      clamped between .5 and 2.
  3029.  
  3030.   3. The number of "ticks" that determine the mouse button double click
  3031.      interval can be set. The number is an integer and is clamped between 0
  3032.      and 32767.
  3033.  
  3034.   4. The Auto Sort Time, the time before an automatic SORT and backup takes
  3035.      place can be set. The time can be from 1 to 32767 minutes.
  3036.  
  3037.   5. The number of working grids that you intend to use can be set so that
  3038.      you won't have to step through extra working grids with the WGRD
  3039.      command.
  3040.  
  3041.   6. The size of the working grids in physical units can be set. You must
  3042.      enter all the grids, but pressing ENTER or ESC keeps the default value
  3043.      in the parentheses.
  3044.  
  3045.   Press ESC to exit SET anywhere in the sequence.
  3046.  
  3047.  Show
  3048.  
  3049.   SHOW gives information about an object.
  3050.  
  3051.   In System Mode, SHOW gives the following information about a cell:
  3052.  
  3053.      The cell's rank, number in the cell collection and if it is attached.
  3054.  
  3055.      The cell's outline boundaries as found in the cell list.
  3056.  
  3057.      The number of cells, boxes, paths and vertices in the cell.
  3058.  
  3059.      A listing of the named cell's lesser cells.
  3060.  
  3061.      The number of boxes and paths (text) on the layers.
  3062.  
  3063.   In Cell Mode, SHOW gives information on the first active object that it
  3064.   finds in the order. box/path/cell:
  3065.  
  3066.      For a box the positions of the sides and the layer are shown.
  3067.  
  3068.      For a path the vertex positions, the layer, the width and an active
  3069.       vertex mark "*" are shown.
  3070.  
  3071.      For text the reference point, the layer, the size and the characters
  3072.       will be shown.
  3073.  
  3074.      For a cell the information is similar to the System Mode SHOW, but
  3075.       also includes the position and orientation of the cell.
  3076.  
  3077.      No active object gives a parts count of the current cell.
  3078.  
  3079.   Press ESC or click the right mouse button to continue or exit from SHOW.
  3080.  
  3081.  Smsh
  3082.  
  3083.   SMSH smashes any active cells, text or boxes into their component objects
  3084.   and adds them to the current cell. The original active objects are
  3085.   deleted.
  3086.  
  3087.   Rules for SMSHing::
  3088.  
  3089.      Cells are smashed down one rank at a time. You may have to do
  3090.       multiple smashes if you want to reduce higher rank cells all the way
  3091.       to boxes, paths and text.
  3092.  
  3093.      Text is smashed into poly objects that replace the original text.
  3094.       These poly are the same as any other poly, and may be rotated to any
  3095.       angle or given width to make paths. Smashing text can increase the
  3096.       number of paths and vertices considerably if you are not careful.
  3097.  
  3098.      Boxes must have all sides active. A box will be replaced by a five
  3099.       vertex polygon with the same dimensions.
  3100.  
  3101.   Note:  If you try to SMSH any object that will cause any of your object
  3102.     limits set in FORM.DBD to be exceeded, the object will not be smashed
  3103.     but will remain intact and active. You will get a message for each
  3104.     object component that cannot be added. If you are smashing text or
  3105.     boxes you may get a partial poly conversion, but the original object
  3106.     will remain.
  3107.  
  3108.   Important:  Before any object is smashed, the hard disk files DSBKUP.BP4
  3109.     and DSBKUP.CL4 are updated. If you make a mistake and smash the wrong
  3110.     thing, you can use the ABRT command to restore the drawing.
  3111.  
  3112.  Sort
  3113.  
  3114.   SORT cleans, sorts and stores a backup of the drawing.
  3115.  
  3116.      Boxes which have two or more sides superimposed are deleted.
  3117.  
  3118.      Sequential vertices with the same coordinates are deleted.
  3119.  
  3120.      Paths with one or no vertices are deleted.
  3121.  
  3122.      Any cells that may for some reason have rank greater or equal to the
  3123.       current cell will be deleted.
  3124.  
  3125.      Boxes, paths and text are sorted in ascending order of their layers
  3126.       and their Y-position.
  3127.  
  3128.      Cells are sorted according to their Y-position and their order in the
  3129.       CELLS4.DBD file.
  3130.  
  3131.      BP4 and CL4 files of the current cell are updated on the hard disk.
  3132.  
  3133.      The backup files SORTBKUP.BP4 and SORTBKUP.CL4 are updated on the
  3134.       hard disk. These may be used to restore the cell if the ABRT command
  3135.       is used. This allows you to "undo" what was done since the last SORT.
  3136.  
  3137.      You may stop a long sort by pressing the SPACE bar. Eventually, when
  3138.       objects are in good order, sorting will be fast.
  3139.  
  3140.   Note:  The SORT command will be executed automatically if you do not
  3141.     click either mouse button before the Auto Sort Time times out. This
  3142.     feature protects your drawing if you leave it unattended.
  3143.  
  3144.   Hint:  Sorting should be done periodically while working on a drawing.
  3145.     This not only cleans any defective objects, but also improves drawing
  3146.     speed by ordering the cells.
  3147.  
  3148.  Step
  3149.  
  3150.   STEP steps active objects into an Nx by Ny two-dimensional array.
  3151.  
  3152.      Stepping distances in X and Y are determined by a 2-point cursor
  3153.       input. This may also be entered as a single PKE distance entry.
  3154.  
  3155.      The original active objects are copied repeatedly just as though the
  3156.       CPY command was used. The final copied objects remain active, while
  3157.       all previous copies become inactive.
  3158.  
  3159.      Stepping can be ended by pressing the SPACE bar.
  3160.  
  3161.   Note:  Care should be used with this command because you can easily fill
  3162.     up your cell's object capacity if you don't watch your numbers. If this
  3163.     happens press SPACE to end stepping.
  3164.  
  3165.  Sys
  3166.  
  3167.   SYS exits directly from Cell Mode to System Mode.
  3168.  
  3169.      All active objects are made inactive.
  3170.  
  3171.      The current cell is saved on the hard disk in the drawing directory.
  3172.  
  3173.   Note:  Any cells that may have been put on a RAM disk remain known to
  3174.     LASI when you go to System Mode. You lose these only when you QUIT.
  3175.  
  3176.  Text
  3177.  
  3178.   TEXT generates a text object.
  3179.  
  3180.   To generate text you must input the following:
  3181.  
  3182.   1. The reference point, a single cursor input point, which is the lower
  3183.      left corner of the character field where the first text character is
  3184.      to be placed.
  3185.  
  3186.   2. The text character string of up to 40 characters terminated by ENTER.
  3187.  
  3188.   The string of text should appear in the drawing made from polygons. The
  3189.   layer and size of the characters will be taken from the current LAYR and
  3190.   WDTH settings. The CLYR and CWTH commands may be used to change the text
  3191.   layer and size.
  3192.  
  3193.   Text Properties:
  3194.  
  3195.      Text is always left justified and appears on a single line. There is
  3196.       no text editor, so you must delete and rewrite any text.
  3197.  
  3198.      You can make the text active using the GET or FGET commands.
  3199.  
  3200.      You may copy, rotate, flip and move the text using the CPY, ROT, FLP
  3201.       and the several types of move commands.
  3202.  
  3203.      Text size will always be in integral multiples of 15 basic units.
  3204.       This is to prevent distortion of the characters.
  3205.  
  3206.      A text object is seen by LASI as a single point, the reference point.
  3207.       To operate on a text object, the reference point must fall within any
  3208.       cursor window.
  3209.  
  3210.      The T key toggles the reference point between visible (a small
  3211.       diamond, same color as text) and invisible. A "T" displayed in the
  3212.       lower right of the screen indicates that reference points are
  3213.       visible.
  3214.  
  3215.   Hint:  To make text characters that are to appear permanently on any IC
  3216.     masks, first make text of the appropriate size and then SMSH the text.
  3217.     Since any characters must have a width that will reproduce on the
  3218.     masks, you will first have to give the smashed poly some width with the
  3219.     CWTH command, and then modify the paths using the MOV, CUT, JOIN, etc.
  3220.     commands to make the characters look better.
  3221.  
  3222.   Read the Text Generation help category for more information.
  3223.  
  3224.  TLC-In
  3225.  TLC-Out
  3226.  
  3227.   TLC-IN and TLC-OUT are commands that call the TLC.EXE program which
  3228.   converts internal cell data TO and FROM transportable (TLC) format. "In"
  3229.   means convert TLC files FROM some source TO internal form in your present
  3230.   drawing. "Out" means convert FROM internal form in your present drawing
  3231.   TO some destination in TLC format.
  3232.  
  3233.   Normally TLC files are put on a floppy disk. This lets you keep your
  3234.   drawing on floppy disk, and then load and save that drawing or individual
  3235.   cells as needed. It is also recommended that you keep drawing backups
  3236.   this way.
  3237.  
  3238.   With either command, the default source or destination disk drive is the
  3239.   floppy drive that is in the "fdisk=" parameter in the FORM.DBD file. Any
  3240.   acceptable drive or path may be entered in place of that drive.
  3241.  
  3242.   If you want to refer to TLC files in the current drawing directory enter
  3243.   a period "." to the drive question.
  3244.  
  3245.   You may specify up to 10 Cell Names separated by spaces.
  3246.  
  3247.   TLC-OUT without any Cell Name(s) dumps to the destination disk ALL
  3248.   drawing cells as TLC files along with the CELLS.REF file.
  3249.  
  3250.   TLC-IN without any Cell Name(s) retrieves ALL cells by reading the
  3251.   CELLS.REF file on the Source disk and translating TLC files into internal
  3252.   file form (BP4 & CL4 files).
  3253.  
  3254.   These commands have considerable power since you can also specify the
  3255.   name of any system disk device as the source or destination. You can also
  3256.   give a path as part the disk specification, so that cell files can be
  3257.   TAKEN FROM or SENT TO other directories other than your drawing
  3258.   directory.
  3259.  
  3260.   Unless you are familiar with the use of DOS paths and remember just where
  3261.   you put things, you can get into trouble this way by mixing up the cells
  3262.   in different drawings.
  3263.  
  3264.  
  3265.   Note:  These commands really only run TLC.EXE as a child process from
  3266.     LASI.EXE. It is possible that you might run out of memory, and the
  3267.     program will return a "Not Available" or other error message. If this
  3268.     happens, you must run TLC.EXE alone in memory. Read the TLC Conversion
  3269.     help category for instructions on running TLC.EXE.
  3270.  
  3271.  View
  3272.  
  3273.   VIEW sets the layers that will be drawn on the display.
  3274.  
  3275.      Boxes, paths and text that are not VIEWed are blocked from the GET,
  3276.       FGET, WMOV, QMOV, PBEG and PEND commands.
  3277.  
  3278.      Any active boxes or vertices will be drawn as bright white line
  3279.       segments or as bright white vertex marks regardless of the VIEW
  3280.       setting. This allows you to see where any active object are located,
  3281.       which still will be affected by MOV, CPY, ROT, FLP or DEL commands.
  3282.  
  3283.   VIEW and OPEN accept layer inputs that can be single layers in any order,
  3284.   or a dash (-) can be used to indicate all inclusive layers between the
  3285.   end layers. A dash alone will give all layers from 1 to 64.
  3286.  
  3287.   Read OPEN.
  3288.  
  3289.  Wdth
  3290.  
  3291.   WDTH sets the width of paths and the size of text to be ADDed.
  3292.  
  3293.      The present range of acceptable widths is 2 to 1024 basic units.
  3294.  
  3295.      If a pathwidth is entered that is unacceptable, then the prompt will
  3296.       be repeated with the value in the default parentheses.
  3297.  
  3298.      A width of 0 is also acceptable. This produces paths of zero width or
  3299.       polygons (poly) or text of minimum size.
  3300.  
  3301.   A positive width causes the end of a path to be flush with its
  3302.   coordinate. A negative width produces a path whose end extends half the
  3303.   width beyond the coordinate. This is for CALMA compatibility. Use of
  3304.   negative widths is generally discouraged.
  3305.  
  3306.   Read CWTH.
  3307.  
  3308.  wGet
  3309.  
  3310.   WGET (window get) is a combination of GET and CGET.
  3311.  
  3312.      Cells, boxes, paths and text are affected the same way as those
  3313.       commands.
  3314.  
  3315.      WGET is useful if you want to activate a number of objects of
  3316.       different types to do some operation on all of them simultaneously.
  3317.  
  3318.   WGET is useful if you are MOVing large sections of a drawing because you
  3319.   can see just which object are active before the operation. WGET makes
  3320.   active single sides of boxes and single vertices of paths, which are then
  3321.   pulled with active cells when MOVing is done.
  3322.  
  3323.   Read AGET.
  3324.  
  3325.  wGrd
  3326.  
  3327.   WGRD steps through the list of working grids.
  3328.  
  3329.      The working grids should have been entered using the SET command.
  3330.  
  3331.      The present working grid will be shown at the bottom of the screen.
  3332.  
  3333.   WGRD when assigned to a function key accepts a numerical argument.
  3334.  
  3335.   For example, a parameter in the FORM.DBD file "fkey=wgrd,10" assigns a
  3336.   function key so that when the key is pressed the working grid is set to
  3337.   10 physical units. However, if "fkey=wgrd" is the parameter, you will be
  3338.   prompted for a working grid to be set.
  3339.  
  3340.   Read SET and the Form File General topic.
  3341.  
  3342.  wMov
  3343.  
  3344.   WMOV (window move) moves boxes, paths and cells.
  3345.  
  3346.      The sides of boxes or vertices of paths are moved if they are
  3347.       enclosed within the rectangular cursor window.
  3348.  
  3349.      Cells are also moved, but only if the cursor window completely
  3350.       encloses the cell's area. The cell may be drawn fully or be in
  3351.       outline.
  3352.  
  3353.      The first two cursor points form the cursor window.
  3354.  
  3355.      The next two cursor points determine the distance to be moved.
  3356.  
  3357.      A box side must be completely enclosed by the cursor window.
  3358.  
  3359.      Box and path layers must be VIEWed and OPENed.
  3360.  
  3361.      The move part of this command accepts a single PKE distance entry.
  3362.  
  3363.   WMOV is useful for stretching large sections of drawings orthogonally,
  3364.   for selectively doing box side movements and for quickly doing small
  3365.   vertex movements.
  3366.  
  3367.  Xpnd
  3368.  
  3369.   XPND expands the width of the drawing window.
  3370.  
  3371.      The new window width is multiplied by 2.
  3372.  
  3373.      The display is redrawn.
  3374.  
  3375.   Continuously XPNDing will eventually cause the window to expand to the
  3376.   maximum size permitted or the whole "universe".
  3377.  
  3378.   Read DRAW and the Universe General topic.
  3379.  
  3380.  Zoom
  3381.  
  3382.   ZOOM reduces the drawing window size.
  3383.  
  3384.      The new drawing window will be the best fit of the rectangular cursor
  3385.       window.
  3386.  
  3387.      The display is redrawn with the new drawing window.
  3388.  
  3389.      ZOOM works over a 1000:1 range.
  3390.  
  3391.   Hint:  To ZOOM to a minimum window at a certain position, click the mouse
  3392.     on that same position twice. This will zoom to the default minimum
  3393.     window size centered at the cursor position.
  3394.  
  3395.   Read DRAW.
  3396.  
  3397. TLC Conversion
  3398.  
  3399.  Introduction
  3400.  
  3401.   TLC (Transportable LASI Cells) is a form of LASI cell data that is used
  3402.   for drawing cell data storage and interchange. TLC files are ASCII
  3403.   sequential files written in a well documented form. TLC files are easily
  3404.   readable by programming languages including BASIC and C. TLC is
  3405.   convenient for writing special programs to be used with LASI such as
  3406.   drawing transformation utilities or translators from other drawing
  3407.   systems. (TILT.EXE and CSF2TLC.EXE are examples.)
  3408.  
  3409.   Each TLC file contains the information needed to construct a single cell.
  3410.   The file contains information on the boxes, paths, text and cells in a
  3411.   cell. It does not contain information on how to make any cells that may
  3412.   be used within a cell. To build a complete drawing you need a COMPLETE
  3413.   set of TLC files.
  3414.  
  3415.   By way of definition, cell files in TLC are called EXTERNAL files, while
  3416.   cell files used by LASI directly (BP4 and CL4) are called INTERNAL files.
  3417.   TLC files have the extension .TLC in DOS. Internal files are designed for
  3418.   the computers convenience, while external files are designed for human
  3419.   convenience.
  3420.  
  3421.   Using TLC is the ONLY WAY that cells can be installed in a LASI drawing
  3422.   from an external source. This is because the internal files use a pointer
  3423.   system of referring to a cell to save memory space. This pointer is the
  3424.   position in the CELLS4.DBD file of a cell's information, which cannot be
  3425.   changed without changing all cell references. The program TLC.EXE takes
  3426.   referencing into account and adjusts accordingly.
  3427.  
  3428.   Since each cell has its own TLC file, and a TLC file may not really
  3429.   contain all the information to construct a cell if it has lesser cells
  3430.   within it, the TLC files for the lesser cells will have to be present for
  3431.   conversion to internal form. When converting to external form, the
  3432.   TLC.EXE program is smart enough to make the TLC files of any lesser cells
  3433.   automatically.
  3434.  
  3435.   When conversion from external to internal is being done, the lesser cells
  3436.   will also be made in internal form if they are not already present in the
  3437.   drawing cell collection. You may optionally also replace any cells that
  3438.   are already there with new ones.
  3439.  
  3440.  Conversion Errors
  3441.  
  3442.   It is possible that files may be missing, incorrect or there may not be
  3443.   enough memory when converting. TLC.EXE will try to construct a drawing as
  3444.   best as possible by making a FALSE CELL. A false cell is a cell
  3445.   containing only the name of the cell enclosed in double angle brackets in
  3446.   text on layer 64. The rank of a false cell will always be 1, so that it
  3447.   will always appear in other cells. If a false cell is made, TLC will
  3448.   indicate the error, and continue as well as it can.
  3449.  
  3450.   Since it has rank 1, the false cell will contain no other cells. However,
  3451.   if the error is corrected, and TLC is used to overwrite the false cell,
  3452.   normal cell nesting will be constructed. The false cell may be thought of
  3453.   as a token or placeholder for the missing cell where it is used in other
  3454.   cells. TLC will always try to replace the token cell with the actual cell
  3455.   in the drawing cell collection once the correct information is available
  3456.   to make the actual cell.
  3457.  
  3458.  Pooled Cells
  3459.  
  3460.   When converting internal files to TLC files, TLC.EXE will look for an
  3461.   ATTACHED cell that may be used in a drawing in the POOL directory as
  3462.   listed in the FORM.DBD file. If it doesn't find it, it will produce a
  3463.   token TLC file consisting of the name of the cell in text. It will not
  3464.   look for an attached cell in the drawing directory.
  3465.  
  3466.   When converting from TLC form, TLC.EXE will put ALL cells in the DRAWING
  3467.   directory since it has no knowledge (nor should it) of any cells that may
  3468.   have come from a pool. Keep this in mind if you are converting into a
  3469.   drawing.
  3470.  
  3471.  Conversion Options
  3472.  
  3473.   The TLC.EXE program has 4 Conversion Options, two for conversion TO TLC
  3474.   and two FROM TLC:
  3475.  
  3476.   1. Convert ALL Cells to TLC:
  3477.      ALL Cells are converted from the source to the destination. This is
  3478.      the standard drawing dump to TLC form.
  3479.  
  3480.   2. Convert NAMED Cells to TLC:
  3481.      NAMED cells are converted to TLC from the source to the destination.
  3482.      Cells that are needed to construct a cell of greater rank are also
  3483.      converted as an option.
  3484.  
  3485.   3. Convert ALL Cells from TLC:
  3486.      This requires that the CELLS.REF file exist at the source. The names
  3487.      of all the cells at the source are simply read from the CELLS.REF file
  3488.      in that location and are converted as if they had been named
  3489.      individually in Option 4. If the CELLS.REF file is missing at the
  3490.      source then Option 4 only may be used.
  3491.  
  3492.   4. Convert NAMED Cells from TLC:
  3493.      NAMED cells are converted to internal files. The CELLS4.DBD file at
  3494.      the destination is augmented with the NAMED cell. If lesser cells are
  3495.      needed they are also converted from the source TLC into internal files
  3496.      at the destination. If the cells are not present at the destination
  3497.      they will be converted automatically. If the lesser cells are present
  3498.      at the destination you will have the option to replace them with new
  3499.      ones. Therefore, to fully reconstruct a cell from TLC, all lesser
  3500.      cells must be present either in the source or destination cell
  3501.      collections in TLC or internal form.
  3502.  
  3503.   When converting back from TLC form, the TLC program knows if a cell is in
  3504.   the destination by reading the CELLS4.DBD file. TLC will replace the
  3505.   named cell but will OPTIONALLY replace lesser cells, the cells within the
  3506.   named cell. If any cells do not exist in the drawing cell collection they
  3507.   will be made.
  3508.  
  3509.   If the CELLS4.DBD file is not present at the destination, then one is
  3510.   made.
  3511.  
  3512.   To convert a complete layout drawing from TLC, you start with a blank
  3513.   directory, and name the main drawing cell to be converted (or use Option
  3514.   3). The TLC program then reconstructs the whole drawing by making all
  3515.   lesser cells first, and then the named main cell.
  3516.  
  3517.   In all options the CONSTS4.DBD file of the source or destination
  3518.   directory is left unaffected. If a drawing is reconstructed from TLC, you
  3519.   must load your favorite CONSTS4.DBD file, or let LASI provide a default
  3520.   one when it starts up.
  3521.  
  3522.  Running TLC.EXE
  3523.  
  3524.   When running TLC.EXE you pass parameters as arguments on the DOS command
  3525.   line. Arguments are separated by one or more spaces.
  3526.  
  3527.   The FIRST parameter is the CONVERSION DIRECTION consisting of the brace
  3528.   characters "{" or "}". The direction is indicated by how the brace points
  3529.   at "tlc".  For example, "tlc } etc." converts FROM TLC form.
  3530.  
  3531.   The SECOND is the SOURCE path, the disk name or "." for the current
  3532.   directory.
  3533.  
  3534.   The THIRD is the DESTINATION path, the disk name or "." for the current
  3535.   directory.
  3536.  
  3537.   The NEXT parameters are needed only if options 2 or 4 are be used, and
  3538.   are a list of up to 10 NAMES of cells to be converted according to that
  3539.   option.
  3540.  
  3541.   Hint:  Run the TLC.EXE program without any arguments to get HELP.
  3542.  
  3543.   Important:  The FORM.DBD file must always be present in the directory
  3544.     where the internal (BP4 and CL4) files exist or are to be generated.
  3545.     TLC.EXE needs this information to allocate space.
  3546.  
  3547.  
  3548.   Things to remember when converting:
  3549.  
  3550.     The first THREE parameters MUST be present to be counted correctly.
  3551.  
  3552.     For options 1 and 3 the file CELLS4.DBD or CELLS.REF must be in the
  3553.     source directory.
  3554.  
  3555.     If there are no NAME parameters, options 1 and 3 are assumed and
  3556.     performed according the direction of the brace character.
  3557.  
  3558.  The CELLS.REF File
  3559.  
  3560.   As TLC makes it, the CELLS.REF file is a copy of CELLS4.DBD.
  3561.  
  3562.   You may change the CELLS.REF file to convert modified lists of cells into
  3563.   Internal form.
  3564.  
  3565.   To remove a cell, delete the cell's name and the data line that follows
  3566.   it in the CELLS.REF file.
  3567.  
  3568.   To add a cell, insert the cell's name on a single line and then the
  3569.   cell's rank on the next line. You don't need any additional data on the
  3570.   second line.
  3571.  
  3572.   The entry on the first line of the CELLS.REF file is the number of cells
  3573.   in the file. If you add or delete cells, you should adjust this number.
  3574.   When TLC converts to Internal form using CELLS.REF, it counts either to
  3575.   the number of cells it reads on the first line or to the end of the file,
  3576.   whichever comes first.
  3577.  
  3578.   Do all this with a text editor that produces standard DOS text files.
  3579.  
  3580.  TLC Format
  3581.  
  3582.   Cell files in TLC have a record structure. There are presently five kinds
  3583.   of records: Header, Cell, Box, Path and Text.
  3584.  
  3585.   The records for the objects in the cell are preceded by an "equals code"
  3586.   consisting of two characters: the first being "=" and the second being
  3587.   "H", "C", "B", "P" an "T" for Header, Cell, Box, Path or Text
  3588.   respectively. The TLC program then looks for the type of object to be
  3589.   made and acts accordingly. If at some time in the future, other objects
  3590.   are added to LASI, similar code will be used.
  3591.  
  3592.   If a data error is encountered during translation, it is possible that
  3593.   one or two objects may be incorrectly reconstructed from TLC. The equals
  3594.   code will try to resynchronize the data and correct translation will then
  3595.   resume. The Header record contains an object count and this is compared
  3596.   to the actual number of objects made, and miscounts are indicated by the
  3597.   TLC program.
  3598.  
  3599.   All records, including the Header, may be written in any order in a TLC
  3600.   file.
  3601.  
  3602.  Records in Detail
  3603.  
  3604.   Header Record:      <nl>= carriage return + linefeed    <sp>= space
  3605.  
  3606.       1= "=H" (literal)<nl>
  3607.       2= Name of Cell (DOS file name)<nl>
  3608.       3= Version of LASI (literal)<nl>
  3609.       4= Version of TLC (literal)<nl>
  3610.       5= Basic Units per Physical Unit<nl>
  3611.       6= Name of Physical Unit (literal)<nl>
  3612.       7= Date of Cell Conversion (literal)<nl>
  3613.       8= Time of Cell Conversion (literal)<nl>
  3614.       9= Rank of Cell<sp>
  3615.       10= Left Outline Boundary in basic units<sp>
  3616.       11= Bottom Boundary in basic units<sp>
  3617.       12= Right Boundary in basic units<sp>
  3618.       13= Top Boundary in basic units<nl>
  3619.       14= Number of Boxes<sp>
  3620.       15= Number of Paths<sp>
  3621.       16= Number of Vertices<sp>
  3622.       17= Number of Cells<nl>
  3623.  
  3624.       Note:  Versions must begin with a numeric character
  3625.  
  3626.   Cell Record Entries:
  3627.  
  3628.       1= "=C" (literal)<nl>
  3629.       2= Name of Lesser Cell<nl>
  3630.       3= Orientation (see below)<sp>
  3631.       4= X Position in basic units<sp>
  3632.       5= Y Position in basic units<sp>
  3633.       6= reserved (presently zero)<nl>
  3634.  
  3635.       Property Number: (0-15)
  3636.         16 bit integer, all bits 0 except:
  3637.  
  3638.           Bit 4,
  3639.             0= draw cell fully
  3640.             1= draw cell outline
  3641.  
  3642.         Orientation:
  3643.           Bit 3,
  3644.             0= cell not flipped
  3645.             1= cell is flipped in X before rotation
  3646.  
  3647.           Bits 2 and 1,
  3648.             0,0 = no rotation
  3649.             0,1 = 90 deg rotation CCW
  3650.             1,0 = 180 deg rotation CCW
  3651.             1,1 = 270 deg rotation CCW
  3652.  
  3653.   Box Record Entries:
  3654.  
  3655.       1= "=B" (literal)<nl>
  3656.       2= Layer of Box<sp>
  3657.       3= X of Lower Left Corner in basic units<sp>
  3658.       4= Y of Lower Left Corner in basic units<sp>
  3659.       5= X of Upper Right Corner in basic units<sp>
  3660.       6= Y of Upper Right Corner in basic units<nl>
  3661.  
  3662.   Path/Poly Record Entries:
  3663.  
  3664.       1= "=P" (literal)<nl>
  3665.       2= Layer of Path/Poly<sp>
  3666.       3= Width in basic units<sp>
  3667.       4= No. of Vertices in path/poly<nl>
  3668.       5= Vertices in basic units in the form:
  3669.       X1<sp>Y1<sp>X2<sp>Y2<sp>X3<sp>Y3<sp>X4<sp>Y4<sp>X5<sp>Y5<nl>
  3670.       .......Xn-1<sp>Yn-1<sp>Xn<sp>Yn<nl>
  3671.  
  3672.       (Groups of 5 coordinates separated by <sp> ended by <nl>,
  3673.       always with <nl> after Last Coordinate Pair)
  3674.  
  3675.   Text Record Entries:
  3676.  
  3677.       1= "=T" (literal)<nl>
  3678.       2= Layer of Text<sp>
  3679.       3= Size in basic units<sp>
  3680.       4= No. of Vertices used by text (includes Ref Point)<sp>
  3681.       5= Orientation 0-7 (same as cells)<nl>
  3682.       6= X Ref Point in basic units<sp>
  3683.       7= Y Ref Point in basic units<nl>
  3684.       8= ASCII character text string<nl> (u/l case, up to 32 characters)
  3685.  
  3686. CSF Conversion
  3687.  
  3688.  Introduction
  3689.  
  3690.   LASI drawings are not very useful if they cannot be transformed into the
  3691.   more commonly used CAD system formats. The most common is GDSII CALMA
  3692.   Stream Format. Although CALMA drawing systems for ICs have become
  3693.   somewhat obsolete, the data format survives, and newer CAD systems such
  3694.   as CADENCE or MENTOR can usually convert it. LASI can be converted to
  3695.   CALMA Stream Format (CSF) exactly, and from CSF with some limitations.
  3696.  
  3697.   LASI has a drawing structure that is very similar to the CALMA drawing
  3698.   system, with the exception that LASI has box objects and is more limited
  3699.   in its data capacity and cell nesting depth. In LASI, cells are similar
  3700.   to CALMA structures, except that a definite rank is given to a cell. In
  3701.   LASI there are no CALMA boundary figures, instead there are zero width
  3702.   paths called poly. LASI drawings transform easily into CALMA because a
  3703.   box can be made into a boundary, a poly can become a boundary also, a
  3704.   path can transform directly into a path, and cells can easily become
  3705.   structures, partly due to their ranked orderly nesting.
  3706.  
  3707.   Since LASI drawings are more or less a subset of CALMA, conversion to
  3708.   CALMA is easy. More difficult is conversion from CALMA to LASI because
  3709.   there are things in CALMA (like arrays) that don't exist in LASI (yet).
  3710.   Conversion is possible in most cases if certain restrictions are used in
  3711.   the original CALMA drawing (such as limiting the structure nesting or
  3712.   using only small arrays).
  3713.  
  3714.  Conversion Programs
  3715.  
  3716.   The LASI2CSF.EXE program converts a LASI drawing into a binary file which
  3717.   is in CALMA Stream Format (CSF). This format is used as the standard for
  3718.   preserving and interchanging CALMA drawings. The file generated by
  3719.   LASI2CSF.EXE may be sent directly to a CALMA, may be put onto magtape if
  3720.   sent to some larger computer that has magtape capability, or may be put
  3721.   on a floppy disk (in DOS format) for reading by work stations with that
  3722.   capability.
  3723.  
  3724.   The CSF2TLC.EXE program will read back a CSF file and will construct a
  3725.   LASI drawing in TLC form as best as possible. A drawing first done on
  3726.   LASI will reconstruct exactly if returned from a CALMA without having
  3727.   been modified in some non-compatible way. Drawings made originally on
  3728.   CALMA may occasionally convert differently, since LASI presently doesn't
  3729.   have such things as datatypes, texttypes, arrays or layer 0.
  3730.  
  3731.   CSF2TLC produces TLC files for good reason. There can be essentially an
  3732.   infinite number of TLC files, so that a CSF file with almost any number
  3733.   of structures can be converted to TLC files. The TLC files can then be
  3734.   selectively converted into LASI drawings if necessary due to any LASI
  3735.   object allocation limitations.
  3736.  
  3737.   Note that CALMA Stream Files used by LASI2CSF.EXE and CSF2TLC.EXE have
  3738.   the extension ".CSF". This is a convention that not always standard. You
  3739.   may have to rename you file extensions.
  3740.  
  3741.  Running LASI2CSF.EXE
  3742.  
  3743.   1. LASI2CSF.EXE must be present in the \LASI4 directory with a "PATH"
  3744.      opened to it by execution of the DOS PATH command. You MUST run the
  3745.      program with the current DOS directory the directory of the drawing to
  3746.      be converted.
  3747.  
  3748.   2. LASI2CSF will ask for the CALMA drawing name. This is the name that
  3749.      the drawing would have on the CALMA. This may be defaulted by just
  3750.      pressing ENTER.
  3751.  
  3752.   3. LASI2CSF reads the CELLS4.DBD file, the CONSTS4.DBD file and the
  3753.      FORM.DBD file in the current directory. CONSTS4.DBD sets the scales
  3754.      that appear in the starting dialog as default values. FORM.DBD will
  3755.      allocate memory for the data that the program processes so that memory
  3756.      usage will correspond to LASI's usage.
  3757.  
  3758.   4. LASI2CSF asks for the "Disk\Path\Name" of the CSF file. The extension
  3759.      ".CSF" will be added, so don't include it in the name of the CSF file.
  3760.      If a name is unacceptable, it will be reasked until an acceptable one
  3761.      is given.
  3762.  
  3763.   5. If you have previously run LASI2CSF, there will be a setup file in the
  3764.      drawing directory named LASI2CSF.SET. If this is found, you will be
  3765.      asked if you want to use the information. This can save time if you do
  3766.      conversions often on a drawing. If you choose to use the default setup
  3767.      data, steps 6-10 below will be skipped.
  3768.  
  3769.   6. LASI2CSF will then ask for scale information. When converting to CALMA
  3770.      you must know what physical units you used and how many LASI units per
  3771.      physical unit you used in the LASI drawing. You must tell LASI2CSF how
  3772.      many CALMA units you want per physical unit. You may default to 1000
  3773.      basic units/micron and produce an exact 56-bit floating point
  3774.      representation in the CSF file. This seems to be necessary for CADENCE
  3775.      conversion, and perhaps other CAD systems.
  3776.  
  3777.   Important: If you have a problem with exact representation report it to
  3778.     the author.
  3779.  
  3780.   7. Since LASI has layers 1-64 but CALMA has layers 0-63, you will be
  3781.      asked if you want to relocate LASI layer 64 to any CALMA layer. You
  3782.      can then relocate that layer back to LASI layer 64 if you convert back
  3783.      from CALMA.
  3784.  
  3785.   8. CALMA uses several parameters to construct text. The most important
  3786.      are Texttype and Font, which may be used to identify the text. You can
  3787.      relate these to each of four LASI text sizes. The parameters that LASI
  3788.      can set are in order:
  3789.  
  3790.        Texttype, which can be 0-63.
  3791.  
  3792.        Font, which can be 0-3.
  3793.  
  3794.        Magnification, which can be used to change text size if the other
  3795.         parameters produce text of the same size.
  3796.  
  3797.        Text Width, which is usually 0, but may have to be set so that
  3798.         certain CAD systems will accept the text.
  3799.  
  3800.        Vertical Justification, which may be set to top, center and bottom.
  3801.         LASI text is always left-bottom justified so normally you will set
  3802.         this to bottom or "B".
  3803.  
  3804.   9. Certain CAD systems use filenames in lowercase. You can have the names
  3805.      of cells or structures converted to lowercase in the CSF file.
  3806.  
  3807.   10. If the LASI drawing contains an open polygon, it may be an
  3808.      intentional zero width path, or it may be a mistake where a polygon
  3809.      has not been closed. You can optionally close any open polygons or you
  3810.      can have them translated as a path with zero width.
  3811.  
  3812.   11. When converting to CALMA, you will be given the choice of converting
  3813.      only certain cells to CALMA structures. This is useful when you have
  3814.      most of your structures already in the CALMA. If you chose to select
  3815.      certain cells to be converted, you will be given a choice of also
  3816.      converting the lesser cells that are used in the specified cells. A
  3817.      list will be displayed during conversion that will show just what
  3818.      cells are being converted to the CSF file.
  3819.  
  3820.  Running CSF2TLC.EXE
  3821.  
  3822.   1. When converting from CALMA to LASI path and filename questions similar
  3823.      to those when running LASI2CSF.EXE will be asked.
  3824.  
  3825.   2. If you have previously run CSF2TLC, there will be a setup file in the
  3826.      drawing directory named CSF2TLC.SET. If this is found, you will be
  3827.      asked if you want to use the information. This can save time if you do
  3828.      conversions often on a drawing. If you choose to use the default setup
  3829.      data, steps 3-8 below will be skipped.
  3830.  
  3831.   3. When converting from CALMA the physical units will automatically be
  3832.      microns, but you may specify the LASI basic units.
  3833.  
  3834.   4. You will be asked if you want to use the "2048"VAX filter. If the
  3835.      binary file has been run through a VAX on magtape, it might contain
  3836.      two extra characters at beginning of a VAX file record. You can tell
  3837.      CSF2TLC to drop two characters every 2048 characters. If errors occur
  3838.      try this option.
  3839.  
  3840.   5. You will then be asked for the layers and the datatypes to be
  3841.      converted. You respond to this question with the notation similar to
  3842.      the VIEW, OPEN, etc. commands in LASI, with numbers separated by
  3843.      spaces or dashes.  A space separates individual layers and a dash
  3844.      means "include all layers between".
  3845.  
  3846.   6. You will be given the option of converting CALMA 4-sided rectangular
  3847.      boundaries to LASI boxes. If the rectangular boundaries are not to be
  3848.      modified, boxes are better for LASI.
  3849.  
  3850.   7. There is an option to convert any text found in the stream file to
  3851.      LASI text. The Texttype number (0-63) or the Font number (0-3) in a
  3852.      CALMA text record may be related to a LASI text size. A texttype is
  3853.      always present in a CALMA text record, but font may also be used by
  3854.      other CAD systems. If a texttype of 0-63 is related to a LASI text
  3855.      size, it will be used first, regardless of the font set. If you want
  3856.      to use font, enter "-" as the texttype to use. If neither texttype nor
  3857.      font is designated, a default minimum set of parameters will be used.
  3858.  
  3859.     Additionally you may use some of the other CALMA text parameters by
  3860.     setting them to "y" or "n":
  3861.  
  3862.        If magnification information is present, it may be used.
  3863.  
  3864.        If orientation (+/-90, 180 deg) is present, it may be used.
  3865.  
  3866.        If vertical justification information is present, it may be used.
  3867.  
  3868.     Any multiple line CALMA text will be broken into separate LASI text
  3869.     lines, and any horizontal justification will be changed to left
  3870.     justification.
  3871.  
  3872.     The text that you get may not look exactly the same as the original
  3873.     text since LASI uses its own character patterns.
  3874.  
  3875.   8. You will be asked if you want to relocate CALMA layer 0 to any LASI
  3876.      layer (1-64). Any CALMA layer 0 will default to LASI layer 64.
  3877.  
  3878.  
  3879.   9. Like LASI2CSF, CSF2TLC request options on just which cells or
  3880.      structures you want to be converted. You may name specific cells or
  3881.      structures to be converted if a few are wanted. If the named
  3882.      structures contain other structures that have not been named, CSF2TLC
  3883.      will find these and try to convert them also. You may therefore name
  3884.      only your top structure and CSF2TLC will find the rest.
  3885.  
  3886.   10. LASI cellnames must be legal names for DOS files. The names of the
  3887.      CALMA structures may not conform to DOS standards and must be changed.
  3888.      CSF2TLC will try to find acceptable names, but you may also manually
  3889.      change any illegal names.
  3890.  
  3891.   11. You will be asked if you want CSF2TLC to replace any TLC files that
  3892.      it finds already in the directory. Otherwise, CSF2TLC will keep any
  3893.      old TLC files that it finds and will only create the new ones that it
  3894.      needs.
  3895.  
  3896.   In most questions, the default entry will appear in the parentheses if
  3897.   one is available. Pressing ENTER defaults.
  3898.  
  3899.  CSF2TLC Operations
  3900.  
  3901.   CSF2TLC first scans the CSF file to determine a hierarchy of cells. It
  3902.   also tries to convert CALMA structure names to names that are DOS
  3903.   acceptable. If a name is found that is a reserved word such as "PRN", or
  3904.   the name contains characters that are illegal in DOS such as "*", you
  3905.   will be asked for a substitute name. If you have told CSF2TLC not to try
  3906.   to rename, any names with greater than 8 characters will call for a
  3907.   substitute also.
  3908.  
  3909.   CSF2TLC will search the current directory for the TLC cell file of a cell
  3910.   that might not exist as a structure in the CSF file, but still be used in
  3911.   other structures in the CSF file. This allows the TLC file of a cell to
  3912.   be reconstructed without the lesser cells being present as structures in
  3913.   the CSF file. The only requirement is that the TLC files of its lesser
  3914.   cells exist already in the drawing directory.
  3915.  
  3916.   After the scanning has been done to establish hierarchy and the presence
  3917.   of TLC files, a list of the cell names, their rank, the presence of the
  3918.   structure in the CSF file, the presence of a TLC file in the directory
  3919.   and the structure name is printed.
  3920.  
  3921.   If the TLC file is already present it is retained even though the
  3922.   structure may exist in the CSF file. To have a new TLC file generated,
  3923.   the old TLC file must be deleted from the current directory, or the
  3924.   option of replacing all TLC files must be used when running CSF2TLC.
  3925.  
  3926.   If the lesser cell exist neither as a structure in the CSF file nor as a
  3927.   TLC file in the drawing directory, then the name of the expected cell is
  3928.   inserted into the TLC file being made and a warning message is given.
  3929.  
  3930.  Possible Problems
  3931.  
  3932.   On conversion from CALMA to LASI, if any structures are missing and a TLC
  3933.   file is not present, there is no way to tell if the missing structures or
  3934.   TLC files contain other missing structures or cells.
  3935.  
  3936.   Presently, arrays of objects do not exist in LASI. Therefore, when
  3937.   converting from CALMA, CSF2TLC makes arrays by copying cells. This can
  3938.   fill the LASI cell capacity if you don't watch out.
  3939.  
  3940.   When CSF2TLC encounters text in a CSF file, it ignores justification and
  3941.   breaks down any multi-line CALMA text into single line LASI text objects.
  3942.   This means that your translated text may not be located in the same
  3943.   place. You should also use only single line left justified text on the
  3944.   CALMA or other drawing system if you intend to bring it into LASI.
  3945.  
  3946.   Some features of CALMA are presently simply ignored, such as stretched
  3947.   components, and nodes.
  3948.  
  3949.   If you abort while CSF2TLC is making a TLC file you will probably get an
  3950.   incomplete file. Erase it.
  3951.  
  3952. HPGL Conversion
  3953.  
  3954.  Introduction
  3955.  
  3956.   LASI drawings can be quit large and complex. It is necessary to produce
  3957.   large plots to examine drawings for errors, or just for display. LASI
  3958.   therefore must be able to produce plots. The most commonly used plotting
  3959.   language is Hewlett-Packard's HPGL (Hewlett-Packard Graphics Language),
  3960.   which is used by all H-P and many other makes of plotters. By using the
  3961.   LASI2HP.EXE program, LASI drawings can be converted directly into HPGL,
  3962.   either as a file, or as a direct drive for a plotter from one of the
  3963.   personal computer's serial ports.
  3964.  
  3965.  Configuration Files
  3966.  
  3967.   Before you run LASI2HP on anything you must make a configuration data
  3968.   file. Run "lasi2hp" and answer "y" to the Configure (y or n) prompt.
  3969.  
  3970.   The program stores plotting configurations in ".PCF" files. The title of
  3971.   a configuration must conform to DOS file naming rules. These files remain
  3972.   in the drawing directory.
  3973.  
  3974.   Some of the questions asked will be defaulted from the program
  3975.   initialization or the previous configuration file. Pressing ENTER to any
  3976.   question will default to the value show in parentheses. Otherwise enter
  3977.   the new value.
  3978.  
  3979.   Some of the questions will be obvious and some may need explanation:
  3980.  
  3981.   1. Configuration will ask if your plotter has a center or lower-left
  3982.      (bottom-left) hardware origin. Most small plotters have a lower-left
  3983.      origin, while larger plotters use a center origin. Read your plotter
  3984.      manual for this information.
  3985.  
  3986.   2. The borders that you must specify are the distance at the edges of a
  3987.      sheet of paper that the plotter can't use, i.e. roller track, etc.
  3988.      Read your plotter manual for this distance. The size of your paper
  3989.      less these borders is the useful size of your paper.
  3990.  
  3991.   3. You can set the location and size of the plotting area on the paper by
  3992.      specifying the left, bottom, right and top edges. You can use this to
  3993.      make multiple drawings on a single sheet of paper.
  3994.  
  3995.   4. If you use hardwired handshaking to keep the plotter buffer from being
  3996.      overflowed by plotting data, you will be asked if you want to use the
  3997.      DSR (data set ready) line or the CTS (clear to send) line to detect
  3998.      that the plotter buffer is full. On an AT type of PC these lines are
  3999.      pins 6 and 8 respectively on a 9-pin serial port. The Hewlett-Packard
  4000.      plotters normally indicate a full buffer by dropping the DTR (pin 20
  4001.      on the 25-pin RS-232 connector) line. This line can be connected to
  4002.      either CTS or DSR, but DSR is preferred.
  4003.  
  4004.   5. LASI2HP will ask you if you want to use your plotter's polygon mode
  4005.      commands. These are the commands PM, EP and FP which are available on
  4006.      the better plotters (see your plotter manual). These commands allow
  4007.      you to fill closed polygon areas. If this mode is used paths will be
  4008.      expanded into a closed polygon area.
  4009.  
  4010.   6. If you want to have paths standout in the drawing, answer that you
  4011.      want path center lines drawn. Paths will be drawn with a dashed line
  4012.      along their center.
  4013.  
  4014.   7. LASI2HP will draw any cells that are displayed in LASI Cell Mode as an
  4015.      outline either in outline or in full detail. The configuration may set
  4016.      to always draw fully if desired. You may also set the pen to be used
  4017.      for outlines.
  4018.  
  4019.   8. Each layer has three attributes, Pen, Line and Fill. You may assign
  4020.      attributes randomly, by giving a layer number 1 to 64 to the "Layer?"
  4021.      question. Pressing ENTER only will end the assignment process. Note
  4022.      also that the layer number is displayed in the color you used in the
  4023.      drawing.
  4024.  
  4025.   9. When assigning pens to layers note that you may enter up to 8
  4026.      different pens. Your plotter might not support that many, so assign
  4027.      them accordingly.
  4028.  
  4029.   10. You may assign different line types to make dashed lines. The types
  4030.      are numbered 0-6 and correspond to the line types described in the H-P
  4031.      plotter manual that comes with an H-P plotter. If a line is to be
  4032.      drawn solid, set the layer by pressing only ENTER.  A dash "-" will
  4033.      indicate a solid line on that layer.
  4034.  
  4035.   11. You may set the fill type attribute to be used on a layer. These
  4036.      presently are left crosshatch, right crosshatch, horizontal, vertical
  4037.      and nothing (indicated by "L","R","H","V" and "-"). Boxes will always
  4038.      be filled, but you must use the plotter's polygon mode to fill polygon
  4039.      areas.
  4040.  
  4041.   12. If a layer has had its Fill set as above, and a line type has also
  4042.      been set, the line type is used as the fill line type. The perimeter
  4043.      of a filled area is drawn solid and not with the line type set for
  4044.      that layer. The spacing of the dashes and fill lines will be
  4045.      calculated from the fill spacing configuration parameter.
  4046.  
  4047.   13. After you are satisfied with the configuration, you may store it with
  4048.      the same title or any other title. You can save time by copying
  4049.      configurations, make changes, and then storing under a new title.
  4050.  
  4051.  Running LASI2HP.EXE
  4052.  
  4053.   LASI2HP.EXE reads BP4 and CL4 internal files in the local drawing
  4054.   directory.
  4055.  
  4056.   You must be logged into the drawing directory of the cell to be plotted.
  4057.  
  4058.   To drive a plotter directly, the plotter must be connected to one of the
  4059.   computer's serial ports, COM1, COM2, COM3 or COM4.
  4060.  
  4061.  
  4062.   There are 3 ways to run LASI2HP:
  4063.  
  4064.   1. Run by typing "lasi2hp", which allows you to configure and then run a
  4065.      plot, or to simply make configuration files.
  4066.  
  4067.   2. Run by typing (or batch filing) "lasi2hp name", where "name" is the
  4068.      cell that you want to plot. In this case configuration must be done
  4069.      previously, and the plot will be fitted to the full size of the cell.
  4070.  
  4071.   3. Run by typing "lasi2hp name x-center y-center width". This is how LASI
  4072.      passes the particular window to be plotted when the PLOT button is
  4073.      pushed in the LASI System Mode menu.
  4074.  
  4075.   In each case you will be asked for the configuration title and whether
  4076.   your plotter or disk is ready.
  4077.  
  4078.   When making a plotting file you may specify a name, path or disk for the
  4079.   output file. Entering nothing makes a file with the plotted cell's name
  4080.   in the local drawing directory.
  4081.  
  4082.   Hint:  If LASI2HP asks for a new scale. You might want to give a scale
  4083.     slightly smaller than the maximum scale indicated. This may eliminate
  4084.     some part of a drawing being cut off due to aspect ratio differences
  4085.     between your paper and the area to be drawn.
  4086.  
  4087.  Other Uses
  4088.  
  4089.   Since the plot file that LASI2HP makes is in standard HPGL language. The
  4090.   file can be changed to other formats using a converter such as HIJAAK. It
  4091.   can also be converted directly by WordPerfect 5.1 and other desktop
  4092.   publishers into drawings that can be inserted into WordPerfect (or other
  4093.   DTP) written text. Drawings made by LASI can therefore be placed directly
  4094.   into reports, theses, dissertations, etc. that are written using common
  4095.   wordprocessors that can do graphics converted from HPGL.
  4096.  
  4097.   The HPGL can be converted into LaserJet format to print high quality
  4098.   diagrams. Also, conversion to FAX format is possible so that you can send
  4099.   high quality fax diagrams using any of the available fax boards.
  4100.  
  4101. Text Generation
  4102.  
  4103.  Introduction
  4104.  
  4105.   Text is generated by LASI version 4 by storing strings of ASCII
  4106.   characters as though they were paths. A reference point is stored as the
  4107.   first vertex, and then subsequent vertices contain up to 4 ASCII
  4108.   character bytes. When a string of text is drawn, it is expanded much like
  4109.   a path, except that the characters are drawn in sequence from predefined
  4110.   polygon patterns.
  4111.  
  4112.   Each character is defined in the Text Font File. (TXT.DBD is the generic
  4113.   file supplied with the system.) This file may have any name other that
  4114.   TXT.DBD, but this name must be installed the FORM.DBD file using the
  4115.   "text=" parameter. Otherwise the default "TXT.DBD" is assumed. Read the
  4116.   Form File General topic.
  4117.  
  4118.   The Text Font File is a binary file which contains a single record of 128
  4119.   bytes for each of 96 characters. The characters may be drawn and modified
  4120.   by the user using LASI itself. The information in this file is loaded
  4121.   into memory when LASI is started, so that drawing of text can be done
  4122.   without slow disk access.
  4123.  
  4124.   When entering text, the position is requested and the size and layer are
  4125.   taken from the current pathwidth and layer settings. The text string is
  4126.   then simply typed in and terminated by ENTER. Like paths, text layer,
  4127.   size, orientation and position can be changed using the same commands
  4128.   that are used for paths.
  4129.  
  4130.  The Text Font File
  4131.  
  4132.   The Text Font File is ninety-six 128 byte records long. Each record
  4133.   corresponds to an ASCII character starting at decimal 32 (space) and
  4134.   ending at decimal 127 (delete, non-printing). When a character is typed
  4135.   under LASI, the correct record is found and the information is used to
  4136.   make path objects in the drawing. The records are randomly written by the
  4137.   MAKETXT.EXE program by typing the desired character and then giving the
  4138.   name of the cell which contains the character drawing.
  4139.  
  4140.   The vertices of the path pattern are written in a single byte of a record
  4141.   in the form of the X-coordinate as the upper 4 bits and the Y-coordinate
  4142.   as the lower 4 bits (nibbles). The coordinates may then be only the
  4143.   numbers 0-15. The coordinate combination (15,15) is however prohibited
  4144.   because it is used to indicate the end of a path.
  4145.  
  4146.   A record therefore contains vertex coordinate bytes from 0-254, with 255
  4147.   decimal (or FF in Hex) bytes marking the end of a path. The remaining
  4148.   bytes in a record are always filled with FF bytes to prevent further
  4149.   paths being made as the record is read.
  4150.  
  4151.   The maximum number of vertices that a record can hold is dependent on the
  4152.   number of independent paths, but can be determined from:
  4153.  
  4154.               total no. vertices = 128 - total no. paths
  4155.  
  4156.  
  4157.   There can be any character drawing in the pattern file corresponding to a
  4158.   given typed character. In fact, different Text Font Files (with different
  4159.   names) can be kept for different uses, and they can be conveniently
  4160.   "turned on" by naming them in the Form File.
  4161.  
  4162.  The Character Field
  4163.  
  4164.   Characters start as little cells containing a drawing of a character. The
  4165.   data format of the character drawing is quite different from a cell and
  4166.   will be describe later. A character is drawn as a rank 1 cell using paths
  4167.   (of 0 width) on a 16x16 (0-15) field of basic drawing units. The lower
  4168.   left corner of the field is position 0,0. The vertices of the paths fall
  4169.   on the basic unit grid points. The vertices may be on any grid point
  4170.   except 15,15.
  4171.  
  4172.  
  4173.                                               15
  4174.                 . . . . . . . . . . . . . . . x 15  (15,15 not used)
  4175.                 . . . . . . . . . . . . . . . .
  4176.                 . . . . . . . . . . . . . . . .
  4177.                 . . . . . . . . . . . . . . . .
  4178.                 . . . . . . . . . . . . . . . .
  4179.                 . . . . . . . . . . . . . . . .
  4180.                 . . . . . . . / \ . . . . . . .
  4181.                 . . . . . . / . . \ . . . . . .
  4182.                 . . . . . / . . . . \ . . . . .
  4183.                 . . . . / . . . . . . \ . . . .
  4184.                 . . . / . . . . . . . . \ . . .  ^
  4185.                 . . . | _ _ _ _ _ _ _ _ | . . .  |
  4186.                 . . . | . . . . . . . . | . . .  Y
  4187.                 . . . | . . . . . . . . | . . .
  4188.                 . . . . . . . . . . . . . . . .
  4189.      (origin) 0 . . . . . . . . . . . . . . . .
  4190.                 0
  4191.                             X -->
  4192.  
  4193.         Character Drawing Field in basic units (Letter A Shown)
  4194.  
  4195.  
  4196.   Once a character cell is drawn, the program MAKETXT.EXE is used to
  4197.   install the character in the Text Font File.
  4198.  
  4199.  Usefulness of Text
  4200.  
  4201.   Text is usually used to mark your drawings with information such as the
  4202.   names of cells or component names and values. Text will be translated
  4203.   with the other drawing data into text in other drawing systems. Text may
  4204.   also be used as a pattern for putting writing on IC masks by smashing the
  4205.   text using the SMSH command and giving the resulting polygons some width.
  4206.  
  4207.   Text objects have a very useful property. Text can be considered as a
  4208.   NODE with a NAME. You can therefore use text to mark connection points to
  4209.   cells or subassemblies. You can then search for those points by NAME and
  4210.   obtain a physical location on a drawing. This can be used to do automatic
  4211.   cell placement and interconnection. This means that you can do schematic
  4212.   capture, or do actual layout from wiring lists used by programs like
  4213.   PSpice.
  4214.  
  4215.   Inversely, you can also write programs that locate NODES by position in
  4216.   LASI layouts or schematic drawings and associate TEXT with the NODE. You
  4217.   can therefore produce wiring lists for PSpice directly from drawings that
  4218.   contain node names and device names written ON the drawing.
  4219.  
  4220.   Since the internal form of LASI data is generally proprietary, you would
  4221.   write programs in C or BASIC that operate on TLC files.
  4222.  
  4223. System Contents
  4224.  
  4225.  LASI System Files
  4226.  
  4227.   LASI.EXE        Main program
  4228.   LASIA.EXE       No coprocessor version of LASI.EXE
  4229.   LASI2CSF.EXE    LASI to CALMA converter
  4230.   LASIDRC.EXE     The LASI Design Rule Checking Program
  4231.   CSF2TLC.EXE     CALMA to TLC converter
  4232.   LHI.EXE         LASI help and information reader
  4233.   LASI2HP.EXE     Hewlett-Packard plotter utility
  4234.   MAKETXT.EXE     Text Font File maker
  4235.   MANUAL.EXE      Manual printer
  4236.   TLC.EXE         Transportable cell file converter
  4237.  
  4238.   CELLSORT.EXE    Cell sorting utility
  4239.   CMDLAYER.EXE    Drawing global layer copy/move/delete utility
  4240.   RESIZE.EXE      Resizing utility
  4241.   SNAP.EXE        Cell grid snapping utility
  4242.   TILT.EXE        Drawing tilting 3-D presentation utility
  4243.   UNDUP.EXE       Drawing duplicate object remover utility
  4244.  
  4245.   TLC2CIF.EXE     LASI TLC format to CIF format converter
  4246.   CIF2TLC.EXE     CIF format to LASI TLC format converter
  4247.  
  4248.   3TO4.COM        LASI vers 3 to vers 4 converter
  4249.   4TO41.COM       LASI 4.0 to 4.1 CONSTS file converter
  4250.   DMHCPY.COM      Screen hardcopy for dot matrix FX or LQ type printers
  4251.   LJHCPY.COM      Screen hardcopy for LaserJet type printers
  4252.  
  4253.   FORM.DBD        Generic configuration file
  4254.   TXT.DBD         Generic Text Font File
  4255.  
  4256.   LHI.HLP         Main help text file
  4257.   LASIDRC.HLP     DRC help text file
  4258.  
  4259.   INSTALL.BAT     Batch file for LASI41.EXE installation
  4260.   README.         Instructions for LASI41.ZIP installation
  4261.  
  4262.   Optional:       (May be included or available on request)
  4263.  
  4264.   LASIDEMO        Demonstration OPAMP layout
  4265.   CHRS            Text character cell collection
  4266.  
  4267. System Log
  4268.  
  4269.  System Update Log for Version 4
  4270.  
  4271.   Changes in Version 4.0:
  4272.  
  4273.   The LASI.EXE program has been completely rewritten in a combination of C
  4274.   and Assembly Language. Many new features have been added, which include:
  4275.  
  4276.   1. Text objects, which retain the ASCII character identity and which use
  4277.      much less memory than the previous text that was generated from poly
  4278.      objects. The new text is treated as a modified poly object and may be
  4279.      rotated and reflected using the same commands. Since it keeps its
  4280.      ASCII identity, the new text may be translated as true text into other
  4281.      drawing systems.
  4282.  
  4283.   2. New internal data format, which uses less memory and loads faster. A
  4284.      conversion program 3TO4.COM is supplied to change the old format into
  4285.      the new format.
  4286.  
  4287.   3. VGA 640x480 pixel display mode support, with automatic VGA sensing,
  4288.      but an optional EGA 640x350 display mode.
  4289.  
  4290.   4. User definable function keys that allow any command formerly needing
  4291.      mouse or keyboard input to be executed by simply pressing a function
  4292.      button. (40 keys, F1-10, SHIFT F1-10, CTRL F1-10, ALT F1-10)
  4293.  
  4294.   5. An oversize command OVSZ that replaces the BPEXP.EXE program
  4295.      previously supplied, that allows boxes, poly and paths to be expanded
  4296.      or compressed by a constant distance.
  4297.  
  4298.   6. Different dashed line patterns that are assigned as an attribute to
  4299.      each drawing layer.
  4300.  
  4301.   7. A drawing cell collection that can now hold 500 different cells in
  4302.      place of 255 as with previous versions.
  4303.  
  4304.   8. New hardcopy programs that work with VGA or EGA automatically.
  4305.  
  4306.   9. A WGRD command that when assigned to a function key accepts working
  4307.      grid size arguments.
  4308.  
  4309.   10. A CMOV command that moves cells only.
  4310.  
  4311.   11. Improved RES and CAP commands with automatic measuring.
  4312.  
  4313.   12. Different text fonts may now be included in the Form File.
  4314.  
  4315.   13. The cursor can now be toggled between a small cross and crosshairs.
  4316.  
  4317.   14. LASI.EXE now works only with a coprocessor. Another version LASIA.EXE
  4318.      is supplied for non-coprocessor computers.
  4319.  
  4320.   15. TLC.EXE now generates token files for missing or incorrect cells.
  4321.  
  4322.   16. outlined cells now have their name in the lower left corner
  4323.  
  4324.   17. OUTL and FULL commands now work directly, not only on active cells,
  4325.      and these commands are now resident commands.
  4326.  
  4327.   18. A cells history feature has been added that allows you to retrace a
  4328.      series of nested cells.
  4329.  
  4330.   19. The JOIN command now closes open polygons.
  4331.  
  4332.   20. The working and unit cursor grids can be toggled by pressing the A
  4333.      key or the ALT key.
  4334.  
  4335.   21. The effect of the cursor window on certain cell commands can be
  4336.      changed by double clicking the mouse.
  4337.  
  4338.   22. The CALMA conversion programs LASI2CSF.EXE and CSF2TLC.EXE now have
  4339.      more elaborate text conversion facilities.
  4340.  
  4341.   23. The SMSH command now works on text and boxes.
  4342.  
  4343.   24. The CALMA Stream converter now allows open polygons to be converted
  4344.      optionally to closed boundaries or zero width paths.
  4345.  
  4346.  
  4347.   Changes in Version 4.1:
  4348.  
  4349.   1. Rank 1 cells can now be taken from a common "pool" directory and be
  4350.      used in any drawing. Using this feature several PCs can be NETWORKED
  4351.      together with common access to basic cells.
  4352.  
  4353.   2. The ATTACH and IMPORT commands have been added to be used with cells
  4354.      from the "pool".
  4355.  
  4356.   3. Missing cell files (BP4 and CL4) now cause a dotted outline to be
  4357.      drawn.
  4358.  
  4359.   4. VESA compatible VGA 800x600 16 color graphics mode is now supported.
  4360.  
  4361.   5. A monochrome gray scale mode has been added for VGA monochrome
  4362.      monitors and laptop computers with VGA displays.
  4363.  
  4364.   6. There are now 64 layers (1-64) available.
  4365.  
  4366.   7. The design rule checking program LASIDRC.EXE is now included.
  4367.  
  4368.   8. The help program LHI.EXE can now do searches for individual topics.
  4369.  
  4370.   9. The mouse now uses direct movement information so that the cursor
  4371.      should work properly in all display modes regardless of the mouse
  4372.      driver you use.
  4373.  
  4374.   10. Most commands now abort if ESC is pressed.
  4375.  
  4376.   11. A sort and backup of a drawing is done after a certain amount of time
  4377.      if LASI is left unattended.
  4378.  
  4379.   12. A backup of a cell drawing is made if any deleting or smashing is
  4380.      done.
  4381.  
  4382.   13. The OCTO command nolonger cancels any command in progress.
  4383.  
  4384.   14. Help on a command may now called directly by putting the mouse cursor
  4385.      on a command button and pressing F1.
  4386.  
  4387.   15. The program MANUAL.EXE has been added that prints a manual.
  4388.  
  4389.   16. The T key now toggles the text reference point on and off.
  4390.  
  4391.   17. The CPYLAYER.EXE, MOVLAYER.EXE and DELLAYER.EXE utility programs have
  4392.      been condensed into a single CMDLAYER.EXE utility program.
  4393.  
  4394. Suggestion Box
  4395.  
  4396.  Suggestions from Users of LASI
  4397.  
  4398.   These are some of the ideas for LASI improvements or for special programs
  4399.   that operate in the LASI drawing environment, listed somewhat in order of
  4400.   priority. Some are fairly ambitious. These changes and new programs are
  4401.   more or less in progress. Expect to see these in future releases of LASI.
  4402.  
  4403.   Since LASI is rather democratic (within limits), people are encouraged to
  4404.   contribute ideas of their own or, even better, to write programs for
  4405.   themselves that do useful things.
  4406.  
  4407.  
  4408.   1. Schematic/Layout Capture - a utility program that takes schematics or
  4409.      layouts containing schematic information drawn using LASI and produces
  4410.      a circuit network definition list that may be used by PSpice or other
  4411.      circuit analysis programs.
  4412.  
  4413.   2. Automatic Memory Allocation - the memory space used by objects will be
  4414.      block allocated as it is needed. The operator will not have to be
  4415.      concerned with the expected numbers of objects that will be needed in
  4416.      a drawing, or whether imported drawings will fit correctly.
  4417.  
  4418.   3. Use of Extended or Expanded Memory - automatic memory allocation will
  4419.      require more drawing data memory than is available in a PC's 640K of
  4420.      conventional memory. To find more memory LASI will have to swap blocks
  4421.      of data to extended (XMS) or expanded (EMS) memory. This will slow
  4422.      LASI down a bit but will allow almost unlimited drawing size.
  4423.  
  4424.   4. A 32-bit LASI - another version of the LASI drawing program that uses
  4425.      32-bit position information instead of 16-bit. This would give almost
  4426.      unlimited precision, but would require more memory usage and slightly
  4427.      slower operation. Present IC technology is borderline with 16-bit
  4428.      precision, so this may be the next version of LASI.
  4429.  
  4430.   5. Automatic Verification - a utility program that uses the properties of
  4431.      design rule checking and text nodes to determine if everything is
  4432.      properly connected in an IC layout. This may be combined with
  4433.      Schematic/Layout Capture listed above.
  4434.  
  4435.   6. Automatic Layout - a utility program that takes connection information
  4436.      from lists used by simulation programs (various SPICE's) and uses the
  4437.      node property of LASI text to place and interconnect cells.
  4438.  
  4439.   7. A Prettier Display - although it does most things much more quickly,
  4440.      LASI still has to compete with Windows programs that have attractive
  4441.      graphical user interfaces. LASI is quite simple in the way that it
  4442.      produces a display, and this is reflected in the rather small program
  4443.      size for the amount of function you get. If extended memory is used in
  4444.      the future to hold drawing data, there may be an increased use of
  4445.      graphic resources.
  4446.  
  4447.