Contents of the IPM.DOC file
IPM.PAS & IPM.COM - Version 1.07B- November, 1986
(c) 1984, 1986 by Edward V. Dong, All Rights Reserved.
Edward V. Dong
12205 Alexandria Place
Chino, CA 91710
IPM.COM is a Critical Path Method Project Scheduler. The
Critical Path Method is a methodology for determining the
critical tasks that, if not accomplished by a certain time,
contribute directly to the delay of the whole project. You
should refer to various books on the subject.
This version was prompted as a result of some bug reports on
version 1.06a. A version 1.07 was previously distributed; this
version 1.07b is a MINOR update and bug fix. The bug was that
SLACK was not computed properly.
1.1 RIGHT TO USE THIS SOFTWARE. The software, IPM.COM, may be
used as is, by anyone for private purposes only. Commercial
users should contact the address above for the right to use this
software. No claim is made for the veracity of this software,
and no warranty, guarantee or other bond is expressed or implied
about the use of this software. No user may sell this software
in any form, other than for the cost of materials and mailing,
without the express, written consent of Edward V. Dong.
This software and documentation is copyright (c) 1984, 1986 by
Edward V. Dong, all rights reserved.
You are encouraged to share and copy this software otherwise.
Contributions ($15 for example) and comments should be directed
to the above address.
1.2 REQUIREMENTS. IPM will run in a minimum of 128K, under DOS
2.X, and 3.1. Originally written in Turbo Pascal 1.0 (this
version compiled, however, under Turbo 3.0), IPM requires an IBM
PC, XT, PC-3270, or AT, or a close PC compatible that supports
IBM BIOS ROM calls. It should run with or without a color
The maximum number of activities that it will handle, is 100
(actually 99), determined by the constant MaxValue in the source
Various calculations and plots can be printed to an EPSON or a
compatible printer, by first outputing them to a disk file, and
then printing those files. Basic calculation data can be
exported as a .PRN file to Lotus 1-2-3.
1.3 THEORY OF OPERATIONS. Briefy, the CPM theory is that a
project is composed of tasks or activities that are arranged in a
pattern or network, where some tasks may be performed in
If two tasks are being performed in parallel, then the one that
takes longer to do, is termed "critical". It is "critical",
because a delay in that task directly contributes to the delay of
the whole project. A delay in the other task -- as long as it is
completed before the longer task -- does not. The difference in
completion time is called "slack".
The idea in project scheduling and management is to arrange these
tasks, and to monitor them, so that the time for the whole
project is kept as short as possible, or the resources needed for
the project is "levelled". That is, you don't want to spend,
say, 6 men for 2 weeks on one part of the project, and only use 1
man for the remaining 12 weeks of the project; rather, as a
manager, you want to spread your manpower (or other resource) as
evenly as possible, because it becomes easier to manage.
1.4 BACKGROUND. IPM was originally coded because of, first, an
admiration for the Harvard Project Scheduler, and, second,
certain deficiencies in the HPM. IPM indeed stands for "Ivy
League Project Manager". While most features found in HPM are
incorporated into IPM, IPM however does not have a calendar
function nor a project-tracking function. These may be added
IPM is an evolutionary outgrowth of an earlier scheduling
program, written by E. Dong, called CPM.COM. CPM.COM was
originally coded 18 Sept 83 by E. Dong, based on the BASIC
version, 'Hard Hat Management: Two On-Site Tools', by Richard
Parry, INTERFACE AGE, February, 1981. It was first translated
into CIC86 'C', and then retranslated into Turbo Pascal, with the
last update on 24-Mar-84.
The current program, IPM.COM, was adapted from PRACTICAL PASCAL
PROGRAMS, Osborne/McGraw-Hill, by Greg Davidson, (c) 1982 by
McGraw-Hill, Inc. However, this was extensively modified, as
this book did not address the creation of GANTT or PERT charts.
The algorithm for IPM's GANTT charts is based on that created for
CPM.COM, while the algorithm for IPM's PERT charts was newly
created (in three days of intensive development). A semi-screen
editor was also created for IPM.COM.
2.0 STARTING IPM
Starting IPM is, after it has been copied to the appropriate
disk, to type IPM. When it pops up on the screen, it will
display a copyright logo, a brief text indicating the reference
to Greg Davidson's book, and a brief description of how to enter
IPM is arranged so that line 25 (and occasionally, also line 24)
shows the current available commands. You execute these commands
by typing the first letter (which should be high-lighted) and no
Initially, the only options you have at startup are: F(ile),
Q(uit), and H(elp). QUIT returns you to DOS; in some cases, it
will return you to a previous command menu instead. HELP
generates a quick summary of the basic commands only. FILE is
the command that you must enter first, in order to do anything
FILE allows you to specify the method of data entry. That is,
you can enter project data interactively at the console, or from
a file. If you're using IPM for the first time, generally there
would be no files for IPM to use, so you must enter data
initially at the console directly. FILE will prompt you for your
You should have a minimum of four tasks to use IPM; anything
else, would be a waste of time with IPM.
NOTE: CPM theory works best if the number of tasks is GREATER
than the number of nodes. A start node points to a task, which
points to another node, until the end node is reached. Between
any two nodes, there may be any number of PARALLEL tasks.
Entering necessary input data is as follows. First, IPM will
Input from Console? (Y/N)
Either an upper- or lower-case "y" or "n" may be entered. If
you enter "N", then IPM will ask for the name of the file.
This file must be in the current subdirectory, if you're
using DOS 2.0 or higher; IPM isn't smart enough (right now!)
to access across subdirectories.
If you answer "Y", then IPM will ask:
Enter Project Title/Description:
You can enter a 60-character description of the project.
This title or description will appear at the top of the
screen to let you know what project IPM is working on.
Then, IPM will prompt for the number of tasks that comprise
Enter Number of Tasks on this network:
As was said before, you should have a minimum of four tasks
to use IPM; anything else, would be a waste of time with
IPM. Then the screen will clear, and display something like
PROJECT: Sample -- Editing
Task Start End
Node Node Duration Cost Name/Description
1 0 0 0.00 0.00 Task01
2 0 0 0.00 0.00 Task02
3 0 0 0.00 0.00 Task03
4 0 0 0.00 0.00 Task04
where "Sample" here is the project title/description that
you've entered. IPM tells you that you are in editing mode,
and will have supplied a generic task name for the number of
tasks you've indicated, such as "Task01".
At this point, you will see a double command line (lines 24 &
25). You can use the command options (remember, enter only
the first or high-lighted letter of the option) to alter and
enter the task data.
You should do the following:
o IPM assumes that the first node is numbered "1", and that
the last possible node is a number less than or equal to
the total number of tasks. Therefore, you must specify
"Start" and "End" nodes for each task.
o "Duration" refers to the expected length of time that the
task should take. No units are used, so you can use days,
hours, minutes, or even seconds if you want. However, you
should use the SAME unit of time (days, weeks, or whatever)
for all entries.
To edit a line in the display, you must first enter the Taskno.
When you have done so, the line in the display will high-light.
Then you can change Duration, Task title, Task description, etc.
The Task Title, however, is limited to 8 characters only.
You can insert either a new Task or a new Node. If you enter a
new Node, you MUST specify a current Task number to go with that
To finish the editing, enter the command Q(uit). IPM will then
prompt you if you want to save it to disk, and if so, what name
should it give the file. If the file exists, IPM will ask you if
you want to overwrite (reuse) the file.
3.0 OPERATING IPM
Once you have entered the task data, you then have the following
CALCSHEET: Calculate critical path, total project duration,
and cost. You MUST run this option before doing...
GANTT: Build a GANTT chart on the console. If the CalcSheet
option was not exercised, then you will be prompted to do so.
The GANTT chart is normalized, that is, the time line is
scaled to fit the CRT display. The scaling is indicated.
PLOT: Build a PERT network chart of the project. Here you
will see the tasks going from Node to Node, in the sequence
that you've entered. Since many managers and professionals
need to see a PERT chart first, this option has the suboption
of Editing as well. Then you will go through the same
editing as before, except that the Edit screen appears in the
lower half of the CRT display, so you can see the current
PERT network. When you have finished editing, the screen
will flicker once or twice, and then paint the new PERT chart
that is the result of your editing.
EDIT: Edit tasks, as described above.
FILE: Once you have entered data (either from the console or
from disk), the next time you request F(ile), it will ask if
you want to do a N(ew project) or to O(utput to file). See
Section 4.0 below.
QUIT: Return to DOS. IPM will NOT ask you if you want to
save the current file, so be warned.
4.0 ADVANCED IPM FILE OPTIONS
After you have first entered data via F(ile), the next time (and
thereafter) you enable F(ile), it will ask you if you want to do
a N(ew project), O(utput to file), or Q(uit to main menu).
N(ew project): This is the same as if you were entering data
for the first time to IPM.
O(utput to File): When you select this option, you will see
a new command menu line of C(alcSheet), G(antt), P(lot), and
L(otus). For C, G, and P, you will first be prompted for the
filename to send the output to; this can be "LPT1:" for the
printer, but this is NOT encouraged. (Save to file first, so
you can use your text editor to modify the file for whatever
L(otus): This option outputs the results of calculations
into a file, which should be called with extension ".PRN".
Then you can use Lotus 1-2-3 to IMPORT the file (using the
NUMBERS option in Lotus), and thus generate a .WKS file.
Once you've done that, you can now use the full power of
Lotus on it.
Q(uit): Returns you to the main menu display.
The file/printer output of the G(antt) and P(lot) options will
differ from the CRT display. The reason for this, is to enable
the use of any ASCII-supported printer; except for IBM printers
and EPSON FX printers (with the appropriate fonts downloaded),
the IBM display characters above ASCII code 128 decimal are not
5.0 USEFUL TIPS
IPM uses a normalized time scale. That is, IPM does not attempt
to allocate tasks to a calendar schedule, although this,
obviously, is a prime objective. Thus, you should use
"normalized" time units, such as hours, days, or minutes; you
should use minutes, for example, if you are using this to plan
activities that will span an eight-hour day or less; hours, for
projects under a week; and days for longer-lived projects.