Dec 292017
Flowchart ASM source codes, with demo.
File ASMFLO.ZIP from The Programmer’s Corner in
Category Miscellaneous Language Source Code
Flowchart ASM source codes, with demo.
File Name File Size Zip Size Zip Type
ASMFLOW.EXE 48725 29152 deflated
DEMO.BAT 349 237 deflated
FILE1.ASM 6039 1273 deflated
MANUAL.DOC 12919 4365 deflated
README 383 253 deflated

Download File ASMFLO.ZIP Here

Contents of the README file


1. ASMFLOW is a commercial program to be released in June.
This is a free demo version, not for commercial use.

2. The DEMO version has a number of internal tables and
parameters that have been reduced in size.

Mike Schmit 76347,3661

Quantum Software
19855 Stevens Creek Blvd, suite 154
Cupertino, CA 95014

Contents of the MANUAL.DOC file


1. ASMFLOW is a commercial program to be released in June.
This is a free demo version, not for commercial use.

2. The DEMO version has a number of internal tables and
parameters that have been reduced in size.

Mike Schmit 76347,3661

Quantum Software
19855 Stevens Creek Blvd, suite 154
Cupertino, CA 95014


An Assembly Language Programmer's Tool

for the IBM PC and compatibles

Fully working Demo Version
with condensed manual

(C)Copyright Quantum Software 1988

Quantum Software
19855 Stevens Creek Blvd, suite 154
Cupertino, CA 95014
(408) 244-6826


ASMFLOW is a program for IBM PC (or compatible) assembly
language programmers. The program is intended for novice to
expert programmers. ASMFLOW generates flow charts, tree
diagrams and provides a variety of other functions. All
features are implemented by performing static source code
analysis. In other words, only the source code is examined
without actually running the target software.

The major program features are:

- Flow charts
- Tree Diagrams
- Approximate Machine Cycle Information
- Stack Size determination
- Recursion detection
- CPU Register analysis
- Procedural Cross-reference
- Listings of Externals, non-Publics,
Externals not used
- Instruction Histograms


ASMFLOW.EXE runs by itself and needs no support files.

All other files are for information only.

Hard disk systems

Copy ASMFLOW.EXE to the directory where you do assembly
language work, or to a directory that is in your path.

Floppy disk systems

Copy ASMFLOW.EXE to a disk with your assembler on it or
on to its own disk. If you use menu operation, then you
can swap disks after the program starts.


ASMFLOW can be run in two modes:

1) menu operation (Chapter 2)
2) command line operation (Chapter 3)

To start in menu mode:


To start in command line mode:

ASMFLOW source

where: source is the name of your assembly
language source file


Menu operation is automatically assumed if no filename
is entered on the command line. You may optionally type
any number of command line qualifiers or switches from
the command line or a batch file.

All setup features can be seen on the one setup menu.
Once in the menu, operation is very simple. Move the
highlight bar to any field, then edit it. There are
three types of fields:

1) file names
2) numbers
3) multiple choice

The bottom of the screen prompts you for the correct
method for editing each type of field.

Help while in the menu

Press F1 at any time while in the setup menu to get
context sensitive help. Press F2 to get a general
help screen.

Saving your setups

After you have selected all the program options for a
particular run you can save these setups in a file. To
do this press F3. You will be prompted for the name of
a batch file. If no file type is given, then .BAT is
used. Once you have created the batch file, it can be
used just the same as the ASMFLOW program. If you type
in the name of the batch file with no file name
parameter then the menu mode is started, with all your
setups preset. If you enter a file name parameter then
the program is run directly from the batch file with all
your setups.

Summary of the Setup Menu Options

Input type

ASM The file is a source file
List The file contains a list of .ASM files
Make The file is a Make File

Input File

This is the name of the input file.

Output type

Screen Output to the screen
File Output to a file (named below)

Output File

This is the name of the output file, if FILE
is selected above.

Flow Charts

Off No flow chart
Single Single-spaced compact flow chart
Double Double-spaced flow chart
Charts Conventional flow chart diagram


No Comments not printed
Yes Print comments in flow charts

Tree Diagram

Off No tree diagram
Single Single-spaced tree diagram
Double Double-spaced tree diagram
Box Procedures Boxed in tree diagram


No No duplicates trees
Yes Print all duplicate trees


No Macros ignored in trees
Yes Treat macro calls like procedure calls


No Do not calculate stack depth
Yes Calculate stack depth


integer Max tree depth to display. For Boxed
trees this is the level where the tree
reverts to a single spaced tree.
(Legal values: 2 - 16)

Graphics Char set

integer Graphical character set. See help
for examples.

Printer type

integer Zero is the default value. Other values
are reserved for printers requiring special
configurations. Laser printers and Epson
printers require no special configuration.

Page length

integer Number of lines on a printed page.
Use 0 for continuous non-paged output.

Page Width

integer Width of a printed page. Use 80
for the screen. Must be 80 - 132.


Off No cross-reference listings.
Procedure List of all procedures that call a
given procedure.
Labels List of labels defined in a procedure
Both Both procedures and labels


No No Listings.
Yes List of all Externals, externals not
used, all publics and all items that
are not public by type.


Off no register information
I/O register inputs/outputs to each procedure
All complete register summary for each procedure


Off no instruction histogram
Brief histogram based on 16 categories of
All histogram based on 35 categories of
instructions and directives

Clock cycles

Off no clock cycle information
8088 calculate cycles for 8088/8087
80286 calculate cycles for 80286/287
80386 calculate cycles for 80386/387
All calculate cycles for all 3 processor sets


No no warnings
Yes display programming style warnings


Command line operation is provided for several reasons.
First, it can be run unattended from batch files.
Second, it is the fastest method of operation. Finally,
the program can be run as a child process with the
output redirected, then read by the parent process.
Menu operation is suggested for learning the features of
the program and creating batch files by saving your

Although command line operation is somewhat confusing
and may be difficult to learn, the following tips will
help you understand how to use command line operation:

o All switches must be preceeded by a forward slash (/)
and may appear anywhere on the command line

o Except as noted below, all switches consist of a

single letter (case ignored) optionally followed by
one or more digits

o If a switch is not followed by a digit then the value
of one is assumed

o In general, a zero value causes less processing and no
printing and higher numeric values causes more printing

o A switch that consists of only a digit, sets all
switches to that value (i.e. /0 sets all to zero)

o If a switch is set to a value less than its minimum or
greater than its maximum then it is set to the
boundary value

o Most switches have a mneumonic meaning, shown on the
next page

Command Line summary

Command Syntax:

ASMFLOW [[@|$]] [ []...] []


/A Approximate machine cycle info (0-4)
/C Comments included in flow charts
/D Duplicates in tree diagram
/E Extrn and public listings
/F Flow chart (0-3)
/G Graphics char set (0-4)
/H Help for command line operation
/I Instruction breakdown (0-2)
/K printer column width (80-132) [non mneumonic]
/L Lines per page (0=non-paged, 10-66)
/M expand Macros in tree diagram
/N max Nest level for tree diagram (2-16)
/P Printer type
/Q Quiet (1 = quiet)
/R Register usage info for procedures (0-2)
/S Stack summary info
/T Tree (0-3)
/W Warnings
/X Xref by procedure (0-6)

See the menu choices in the previous section for
a description of choices. Zero corresponds to the
none or off condition.

The source file

The first parameter (source) is required. If no file
extension is given then .ASM is assumed. Full path names and
wild cards are allowed.

If the source file name is preceeded by an at sign (@) then
the file is assumed to be a file that contains a list of the
files to process. No file extension is assumed for an @file.
The filenames in the file can have full path names, but no
wild cards. A file type of .ASM is assumed for each file in
the list.

If the source file name is preceeded by a dollar sign ($)
then this file is assumed to be a MAKE file. In this case
the make file is searched for each object (.OBJ) file
dependancy that includes an .ASM file as the first dependant

Procedure names

Procedure names may be listed after the source file name. Up
to ten procedures may be listed. If any procedures are
listed, then information about only the listed procedures is
displayed, otherwise all procedures are displayed.

Compatibility Notes

Code for 8086/88, 80186/88, 80286, 80386, 8087, 80287
and 80387 processors is supported. Although there are
no error messages, you should use proper assembly
directives to enable code for anything other than
8086/87/88, especially 80386/387. Protected mode code
is fully supported. Clock cycle and timing information
is calculated only for 8088/87, 80286/287, 80386/387.
Note that 8086 machine cycles are the same as 8088 except
that 16-bit memory accesses are faster (4 or 5 cycles)
and the pre-fetch queue is larger.

Macros are supported, except that they are not expanded.
Optionally, macros may be displayed as though they are
CALLs in the tree diagram. Macros should not contain
directives expected to affect program assembly, such as
INCLUDE directives.

REPT, IRP and IRPC directives are allowed, but the code
is not expanded.

Conditional assembly directives are allowed, except that
none of the conditions are evaluated, thus all possible
code branches are displayed.

Conditional error directives are allowed, but no errors
are produced.

%OUT directives cause the line to be displayed, during
both passes, just as in MASM.

Include files are fully supported. For internal error
message processing purposes these are limited to a
nesting level of 3. Note that there may be as many
non-nested include files as you like. The environment
string 'SET INCLUDE=' is used just as it is in MASM.

The INCLUDELIB assembly directive is accepted, but has no
affect since this is used by the linker.

All the MASM 5.x simplified segment directives are

Procedures may not be nested. Although MASM allows
nesting of procedures this is not allowed. Each PROC
directive must be followed by a matching ENDP directive.

 December 29, 2017  Add comments

Leave a Reply