


                                   ASMPROC

                                 Revision 1.00


               Copyright 1993 by Gordon Haff and Bit Masons Consulting.
                              All rights reserved.

                                Freeware program.


          Command:  ASMPROC

          Purpose:  Print out procedure lists from your assembly language
                    sources with the line numbers on which they start and
                    the type of the procedure (e.g. near and far) if
                    given.  The procedure names within a file can be
                    sorted in alphabetical order or left in unsorted (line
                    number) order.  Optionally, include files can also be
                    processed.

                    Source code using Spontaneous Assembly syntax (i.e.
                    .proc directives) is handled automatically.

                    Output is to stdout so can be redirected using
                    standard DOS redirection to a file or printer.

                    Basically, the purpose is to give you a quick way of
                    generating a listing of all your procedures without
                    creating huge assembler cross-reference listings with
                    a lot more information than you need.

          Syntax:   ASMPROC filenames [/i] [/s] [/?]

          Prereqs:  100% IBM Compatible PC running DOS 3.0 or higher

          Archive:  ASMPR100.ZIP

          New Feature Summary:

                    This is an initial release.






                                 Ŀ
                           Ŀ                   (tm)
                         ĳ         o    
                              Ŀ   Association of
                                         Shareware
                           ĳ    o        Professionals
                         ĳ        
                                   MEMBER


          ASMPROC 1.00                                                2



                                     DISCLAIMER

          The author hereby disclaims all warranties relating to these
          products, whether express or implied, including without
          limitation any implied warranties of merchantability or fitness
          for a particular purpose. The author cannot and will not be
          liable for any special, incidental, consequential, indirect or
          similar damages due to loss of data or any other reason, even if
          the author or an authorized agent has been advised of the
          possibility of such damages.  In no event shall the liability
          for any damages ever exceed the price paid for the license to
          use the software, regardless of the form and/or extent of the
          claim.  The user of this program bears all risk as to the
          quality and performance of the software.

                                       LICENSE

          ASMPROC is distributed as free, copyrighted software.  What
          this means is that you can use these programs for as long as you
          like without cost or obligation.  What you cannot do is to sell
          this software or make a profit off of it (except as described
          below) without the express written permission of the author.

          ASMPROC is the sole property of Gordon Haff.  This program may
          be freely copied and transferred to individual parties.  It may
          be posted on Bulletin Board systems (BBS) for electronic access
          as long as NO FEE is charged for its distribution except for
          private BBS operations that charge a regular user subscription
          fee.  Computer information services such as Compuserve (CIS),
          Genie, and Byte Information Exchange (BIX) are authorized to
          post this product for subscriber access.  ASMPROC may be
          distributed on diskette only by 1) disk distributors/vendors who
          are associate members of the Association of Shareware
          Professionals (ASP) or 2) users groups which do not charge more
          than a nominal fee ($5) to cover the costs of distribution.  Any
          changes to these policies must be made in writing by the author.

          This software is produced by a member of the Association of
          Shareware Professionals (ASP).  The ASP wants to make sure that
          the shareware principle works for you. If you are unable to
          resolve a shareware-related problem with an ASP member by
          contacting the member directly, ASP may be able to help. The ASP
          Ombudsman can help you resolve a dispute or problem with an ASP
          member, but does not provide technical support for members'
          products.  Please write to the ASP Ombudsman at 545 Grover Rd.,
          Muskegon, MI 49442-9427 or send a Compuserve message via
          easyplex to ASP Ombudsman 70007,3536.

          ASMPROC 1.00                                                3

                                  TECHNICAL SUPPORT


          Since this program is a freebie, unlike the shareware programs
          for which I request a registration fee, I'm not going to make any
          guarantees here with respect to bug fixes or other technical
          support.  Having said that, I do like my programs to be as
          bug-free as possible, so feel free to report any problems which
          you run across.


               Contact via:

                    Channel 1 BBS            (617) 354-8873
                    Compuserve User ID#      72561,2637  (See Note 1)
                    InterNet/ARPANET         72561.2637@compuserve.com

                    U.S. Mail                3205 Windsor Ridge Dr.
                                             Westboro MA 01581
                    Telephone                (508) 898-3321 (after 6pm
                                                          Eastern time)

          The above are roughly in order of preference (i.e. how quickly
          I'm likely to see your message and be able to respond).  I check
          Channel One almost daily and the other electronic services at
          least weekly in most cases.  In addition, I monitor the Interlink
          and the PCRelay Shareware relays through Channel One.

          Note 1:
          When contacting me via Compuserve, please use the Easyplex mail
          system since I do not regularly monitor any of the IBM SIG
          message bases.

          ASMPROC 1.00                                                4


          1.0     Why ASMPROC?
          --------------------

          I write a *lot* of assembler.  My Directory Freedom file
          management utility (recently mentioned in PC Magazine, by the
          way (*)) is something over 500K of source code spread across a
          dozen or so files at this point.  Being a reasonably organized
          programmer, this means many, many procedures all calling each
          other in various and sundry and not always terribly organized
          ways.  It gets HARD to keep track of all that stuff.

          Now, I know you're saying "BUT... my assembler has all those
          fancy listing options and yours must too.  Why don't you just
          use it and stop whining !?"

          Well, yes.  I do have a very nice assembler and lots of other
          toys too from the good folks in Scotts Valley but it really
          doesn't do what I want in this area.  I've concluded that the
          real purpose of the listing options in TASM and other compilers
          is to let you generate a volume of listing ten times the
          original length of your source code with little work.  This
          listing can then be used to convince your boss that you've
          REALLY been working and not just testing out Nels Anderson's
          latest game.

          In other words (to be serious for just a second), the assembler
          listings are usually FAR more than I want.  In practice, I end
          up grepping or searching a file with LIST to find what I need.
          But I've often thought it would be real nice to have a simple
          listing of the procedures that only took a few seconds to
          generate and could be printed out without laying to waste huge
          expanses of forest.

          So I sat down and churned out ASMPROC (in C++, not assembler
          :-)).




          (*) OK, so it was the Letters column but you have to start
          somewhere. [Brought to you by Shameless Plugs, Inc.]

          ASMPROC 1.00                                                5


          2.0     How does it Work?
          -------------------------

          The syntax is as follows:

          ASMPROC filenames [/i] [/s] [/?]

          Switches may be in any order.  A - can be used in place of the /
          for any UNIX junkies out there.  Filenames may include
          wildcards.

          At a minimum, you have to enter one filename (including
          extension).  Everything else is optional.


          /i

          This instructs ASMPROC to process any include files.  So if you
          have a file called FOO.ASM which has lines such as:

               INCLUDE FOOBAR.ASM
               INCLUDE BLECH.ASM

          FOOBAR.ASM and BLECH.ASM will be processed just as if they were
          included on the command line.


          /s

          By default, ASMPROC displays procedures within a file in line
          number order.  This switch instructs ASMPROC to sort instead in
          procedure order (i.e. alphabetical).


          /? (or /h or even just ?)

          Gives a brief help screen.



          ASMPROC 1.00                                                6

          As an example, the following command line:

          ASMPROC /s /i TESTASM.ASM > SAMPLE

          produced this output (in the file SAMPLE).  (DFATTR.ASM was
          specified as an include file within TESTASM.ASM.)


          ASMPROC 1.0  by Gordon Haff.  Copyright 1/93.
                       type ASMPROC -? for help.

          testasm.asm:
             init_mem                                  36      near
             post_exec                                159      near
             pre_exec                                  72      near

          dfattr.asm:
             archive                                   28      near
             attrib                                    83      near
             chmod                                      7      near
             getmod                                    17      near
             hidden                                    54      near
             read_only                                 41      near
             system                                    69      near
             update_attribute                         160      near


          The numbers are the line numbers at which the procedures
          started; i.e. the line on which the PROC keyword appeared.  All
          the PROC's in these source code files were specified as NEAR.
          The FAR and AUTO (used in Spontaneous Assembly) keywords are
          also recognized for procedure types.

          That's about all there is to it.



          ASMPROC 1.00                                                7

          3.0       Special Features and Limitations
          ------------------------------------------

          ASMPROC explicitly deals with the following constructs:

            o  Comment blocks using the COMMENT keyword
            o  Spontaneous Assembly .PROC syntax
            o  TASM Ideal Mode INCLUDE "filename" syntax
            o  Standard ; (semicolon) comments

          This is the part where I get to document my way out of things I
          didn't feel like doing.

          ASMPROC cannot handle the following:

            o  \ (Backslash) as a comment character.  (By not handle, I 
               mean that the contents after the backslash would be parsed 
               as code rather than a comment.  So a line like the 
               following:
                    mov  dx,ax     \ just like in proc foobar
               would cause foobar to be interpreted as a procedure at this 
               line.

            o  If you specify include directories from the assembler 
               command-line, ASMPROC obviously has no way of knowing about 
               these directories and hence it won't be able to find your 
               include files

          ASMPROC did correctly (as far as I can tell) deal with over 500K
          of my Directory Freedom assembly sources.  It is
          case-insensitive and also generally insensitive to word ordering
          in addition to explicitly dealing with the .proc keyword used by
          Spontaneous Assembly.  It hasn't been torture-tested with every
          sort of boundary condition but, as I say, it worked for me
          across quite a range of files.  

          If you run across other assembler styles which ASMPROC doesn't
          seem to handle properly and you send me a sample, I may make the
          appropriate modificatiobs.  No guarantee, though, because I'm
          not making any money off this and ASMPROC is, essentially, an
          internal development tool.


          4.0     Technical and Acknowledgments.
          --------------------------------------

          ASMPROC 1.00 was developed using Borland C++ 3.1 and Container
          Class libraries.  Some string routines that are part of the
          Tesseract Development System from Innovative Data Concepts were
          also used.

          The hardware environment was a homebrew 386 (named Dejah Thoris)
          based on an AMI 20MHz full-size motherboard with a Micropolis
          662MB ESDI disk and Ultrastore 12(F) ESDI controller.  It is a
          dual monitor system with an Orchid Prodesigner 512KB VGA board
          and an IBM MDA board.  It runs DOS 5.0.

          ASMPROC 1.00                                                8


          5.0     Other Programs by Gordon Haff and Bit Masons Consulting:
          -----------------------------------------------------------------

          Directory Freedom (DF):

              Offers users a fast, compact alternative to DOS Shells which
            provides 1) selective file and directory operations; 2) a
            scrollable environment for examining files and directories; 3)
            user-defined keys which can operate upon highlighted files
            (e.g. by defining an editor).  All this in a program which
            takes less than 35KB since it is written in assembler! Easily
            customized through an external configuration program. A "look-
            and-feel" similar to PC Mag's DR, but does much more.  Now with
            SmartViewers and many more exciting new features.
                         Shareware: $25 Registration
                         Latest version: 4.60 (DF460.ZIP)


          the last word:

            'the last word' is a quotations trivia game in which 1 to 4
            players compete against each other and their own high scores in
            identifying the source of quotations and completing partial
            quotes.  Most answers are entered free-form and are matched
            against a set of acceptable responses with a sophisticated
            pattern-recognition algorithm.  'the last word' runs in text
            mode -- including on mono displays -- and offers a high level
            of user configurability.
                         Shareware: $15 Registration
                         Latest version: 1.00  (LWORD100.ZIP)


          CONVERT:

            Unit conversion calculator for Windows 3.0.  Comes with a data
            file containing a large number of common (and not so common)
            conversions in categories such as length, speed, pressure,
            volume, and time.  The data file is a plain ASCII text file so
            the user may add or delete units to best fit his individual
            needs.
                           Free, copyrighted software
                           Latest version: 1.0  (CNVRT100.ZIP)



          ASMPROC 1.00                                                9

          X-Ray Viewers:

            The X-Ray Viewers provide a scrollable environment for
            examining the contents of various types of archive files and
            allows the user to view those contents by piping them to LIST.
            In other words, you can read a text file contained within, for
            example, a .ZIP file without extracting the archive.  In
            combination with the SmartViewer functions in DF, the X-Ray
            viewers make the examination of .ZIP, .ARJ, .LZH, and .ZOO
            files almost automatic (just highlight a file and press
            <Enter>).  "Freeware" but requires the appropriate archive
            program and LIST to function.
                           Free, copyrighted software
                           Latest revision: 1.10  (XRAY110.ZIP)


          Name Date (ND)

            This program can be set to a user-defined function key and
            will rename the highlighted file to a new name which is
            derived from the current date. For example, FILENAME.TXT would
            be renamed to 891015.TXT if the date were Oct 15, 1989.  It
            appends a letter to the base name (e.g. 891015A.TXT,
            891015B.TXT, etc.) if the "dated name" already exists.  I find
            this very useful for handling message-base files from BBS's.
            Version 2.00 adds a great deal of flexibility with
            command-line switches.
                           Free, copyrighted software
                           Latest revision: 2.0;
                           Archive name: NAMD200.ZIP (ND200.ZIP on Compuserve)


          MAKETEST:

            Command-line utility to create test files.  Lets you create
            any number of test files with user-specified names and sizes.
            Automatically can add characters to avoid duplicate names.
            This is an easy way to create something like 100 zero-length
            files.  Handy for users or programmers who want to test a
            program's capabilities.
                           Free, copyrighted software with QB source
                           Latest version: 1.0  (MKTST100.ZIP)


          These programs and others (Multi-Edit macros for use with Qmail
          Deluxe, for example) are available on many fine bulletin boards.
          The latest releases are always available on Channel One.   If you
          just have to get a copy of one or more of these programs and
          can't find one, however, I can send them out for a nominal media
          and postage charge.

          ASMPROC 1.00                                               10

          6.0     History:
          ---------------

          Rev. 1.00      Initial Release