# olib (OrCAD (TM) converter) README

    ###############################################################
    README and release notes for olib2geda - 1 settembre 2002
    OrCAD (TM) lib ASCII dump to gEDA .sym converter
    ###############################################################

    What it olib2geda?
    It's a simple automated converter from OrCAD v4 (in SDT version 1.10) parts
    library (in ASCII dump format, through "decomp" utility) to gEDA component
    definition in .sym format file.
    It allow an initial dumb conversion file to file, with one lib converted in
    multiple .sym file, one per component in library.
    The converted component file needs little editing to become usable, but in some
    case needs no editing at all.

    What olib do.
    * Convert box shaped component in OrCAD (TM) lib in .sym file in gEDA format
    * Place pin, pin name, pin type, pin number
    * Place logic bubble when needed (DOT attribute in OrCAD (TM), for logic nega-
        tion)
    * Place clock arrow when needed (CLK attribute)
    * Place reference, from REFERENCE statement in OrCAD (TM)
    * Place Part name as label and device name as attribute
    * Parse and draw non-box component, with LINE, ARC, CIRCLE and TEXT
    * Add power pin as invisible net=name:pin attribute when detected (in OrCAD (TM)
        invisible pin has tipically T0 and B0 coords)
    * Through command line switch, hides pin name in VECTOR drawed symbols, allowing
        better appearance
    * Write both new (20020825) and old (20020209) file format for .sym files
        through a switch on the command line

    What olib do not.
    * Do not parse and store alternate component drawing (statement CONVERT in
        OrCAD (TM))
    * Do not handle drawing part using VECTOR list from another part (statement
        VECTOR 'partname' in OrCAD (TM))
    * Do not handle FILL statement in VECTOR statement (incompatible with gEDA, but
        for what i know is used only for "better" part drawing)
    * Do not handle multiple part in one package (slots in gEDA)

    Bugs.
    More and more. But for the use that I do bugs aren't so critical.
    If you find a bug or want improvements to the program, feel free to contact me
    at the e-mail address at the end of this text.

    How to obtain last version.
    Open the URL:
    http://digilander.libero.it/tailchaser
    in section "Linux" you can see the main page of olib.

    Compile and install.
    [[ Ales here, I have incorperated olib into the ./configure build mechanism,
       so these instructions only apply if you build from Mario's distribution ]]

    To compile program go in directory 'src' of the unpacked tarball, and type
    'make'. This produces the binary executable, named 'olib'.
    Compilation process uses the flex scanner generator to generate the file
    'olib.c' from the 'olib.lex', and link the library math to the code. The binary
    included in the distribution is compiled on a P266-MMX with RedHat 7.2, with gcc
    version 2.96 and flex 2.5.4, but the program don't require any special feature
    or critical function, as far as I know. At the end of compilation phase, you can
    see two warnings:
    * warning, -s option given but default rule can be matched
    * warning: `yyunput' defined but not used
    this is normal, don't affect program functionality, and you can safely ignore
    it.
    Installation is not needed for normal operations, but if you want you can copy
    only the executable (olib) on a directory in the PATH.

    Use of olib.
    To convert library, first convert it to ASCII dump with 'decomp' utility
    included in the OrCAD (TM) distribution. After that invoke the lib converter:
    olib path/to/file/file_ascii prefix where 'prefix' is used to generate file name
    of every symbol, like:
    prefix-partname-1.sym
    During the process, you can see a lot of ugly text scrolling in the terminal,
    that show the progress of the conversion. If you want to read this text, you can
    redirect the stderr output to a file:
    olib path/to/file/file_ascii prefix 2> logfile.txt
    where '2>' instruct the shell to redirect stderr output to logfile.txt.
    The converter write one file per part, in the current directory. At the end of
    the execution you can see a lot of file in the directory, extracted from OrCAD
    library.
    In the (not so improbable) case of incomplete conversion of a part (i.e. because
    of unsupported VECTOR 'partname' statement), the file of the incomplete part
    will be named 'prefix-partname-1.sym.part', stand for partial conversion.
    If the conversion process stops with the message: "flex scanner jammed", the
    converter has encountered an unknown statement, an incompatible version of
    library, or a bug. If you can, please report the complete log and the library
    dump, to allow corrections or improvements.

    Mario Pascucci
    <m.pas@libero.it>