Dec 062017
Replacement for TP 5.5's System Unit. Provides greatly improved performance. By Eagle Software.
File SYST55C.ZIP from The Programmer’s Corner in
Category Pascal Source Code
Replacement for TP 5.5’s System Unit. Provides greatly improved performance. By Eagle Software.
File Name File Size Zip Size Zip Type
LICENSE.LIC 2297 835 deflated
RATE55.PAS 3778 1366 deflated
STATMENT.LIC 4245 1880 deflated
SYST55C.BAT 1078 457 deflated
SYST55C.DOC 27211 8639 deflated
SYST55C.TPU 31024 19698 deflated

Download File SYST55C.ZIP Here

Contents of the SYST55C.DOC file


Version 5.5c
November 13, 1990

Copyright (C) 1990 Eagle Performance Software
All Rights Reserved.

____|__ | (tm)
--| | |-------------------
| ____|__ | Association of
| | |_| Shareware
|__| o | Professionals
-----| | |---------------------
|___|___| MEMBER

SYSTEM Unit Installation Guide, Version 5.5c


1. INTRODUCTION . . . . . . . . . . . . . . . . . . . . . 3
Features . . . . . . . . . . . . . . . . . . . . . . 3
Philosophy . . . . . . . . . . . . . . . . . . . . . 3
Licensing . . . . . . . . . . . . . . . . . . . . . . 3
Discounts . . . . . . . . . . . . . . . . . . . . . . 4
Customer Service . . . . . . . . . . . . . . . . . . 4
ASP . . . . . . . . . . . . . . . . . . . . . . . . . 5

2. GETTING STARTED . . . . . . . . . . . . . . . . . . . . 6
Distribution Files . . . . . . . . . . . . . . . . . 6
Installation . . . . . . . . . . . . . . . . . . . . 6

3. PERFORMANCE . . . . . . . . . . . . . . . . . . . . . . 7
LongInt Math . . . . . . . . . . . . . . . . . . . . 7
Decimal / String Conversions . . . . . . . . . . . . 7
String handling . . . . . . . . . . . . . . . . . . . 7
Set Handling . . . . . . . . . . . . . . . . . . . . 8
Other Improvements . . . . . . . . . . . . . . . . . 8
Code Size . . . . . . . . . . . . . . . . . . . . . . 8
Greater Speeds . . . . . . . . . . . . . . . . . . . 8

4. SPEED TESTING . . . . . . . . . . . . . . . . . . . . . 9
Profiler . . . . . . . . . . . . . . . . . . . . . . 9
Rate Timer . . . . . . . . . . . . . . . . . . . . . 9

APPENDIX A: Application Products . . . . . . . . . . . . . 10

APPENDIX B: Revision History . . . . . . . . . . . . . . . 13

SYSTEM Unit Installation Guide, Version 5.5c

1. I N T R O D U C T I O N


Welcome to SYST55C replacement unit for Turbo Pascal 5.5!

How would you like to speed up your Turbo Pascal 5.5 programs without
changing a single line of code? You have just found the easiest way to do
it! SYST55C replaces the SYSTEM.TPU in your TURBO.TPL library with our
unit which has much faster algorithms for over 30 built-in procedures and
functions like Pos and Div. See as much as 800% increase in speed!

How can you do it? Simply run a batch file to replace your SYSTEM.TPU.
Then any program you compile will automatically have the faster algorithms
- no code to change. And you get the exact same results - only faster!


The RTL - Borland has been gracious enough to make the Run-Time Library
(RTL) assembler source code available to any user for their own
modifications (for a license fee of $125). There are six units specific to
TP 5.5 in the RTL and the SYSTEM unit is by far the most significant. But
why would anyone want to take the time for a critical look at this
fundamental code? Most programmers are trying to stay busy and produce
applications. But after getting a copy for ourselves, we noticed that
there were some ways that we could trim the amount of time that the CPU
spends on a number of SYSTEM routines. And if these routines can be sped
up, then your overall applications can be sped up as well - without
changing any of your source code.

The Critical Look - We decided to take whatever time it took to go back
over the SYSTEM unit to produce the fastest code possible. Here are some
of the things we considered:

. Created 16-bit transfer methods in lieu of 8-bit.
. Replaced PUSH/POP with MOV.
. Combined register/flag operations.
. Reduced routine CALLs.
. Tightened clocks in intensive loops.
. Tested for CPU in use.
. Used CPU registers in lieu of stack.
. Used pass-through conditional jumps.
. Eliminated redundant jumps.

In some routines, this would reduce the amount of code to acheive the same
operation. In others, a few extra bytes greatly increased the speed.
SYST55C is the final result of this effort.


Registration - These routines and the documentation have been released for

Chapter 1, Introduction Page 3
SYSTEM Unit Installation Guide, Version 5.5c

distribution as Shareware. You have been given the chance to sample the
full capability of SYST without risk! If you find that SYST is a valuable
tool, then you are expected to register. You will find a reasonable
licensing schedule found in LICENSE.LIC to meet private or commercial

Source Code - Due to Borland's License Agreement on the Run-Time
Library (RTL), we are not authorized to release source code based on the
RTL no matter what modifications we have made. So, at the current time,
the source code will not be available for release and will just be managed
by Eagle Performance Software. Please contacts us for the latest


Should you register before December 31, 1990, you will be sent an even
faster system unit than the one supplied in this archive. Plus, you will
get a 50% extra discount on our STRG55C string handling unit when you
register at the same time.


If you have questions, comments, or suggestions, the Eagle can be contacted
by four means - (1) CompuServe, (2) telephone, (3) The Eagle BBS, or
(4) mail.

CompuServe - The most dependable way to contact the Eagle is through
CompuServe. For personal contact, Jordan Gallagher can be reached on the
Borland Forum by typing GO BPROGA from the CompuServe main menu to enter
the Forum for Turbo Pascal. You can contact Jordan with his PPN number of
73557,2342. Messages can also be left through EasyPlex.

Telephone - Jordan can also be reached by phone at (214) 539-7855 on
weekdays and Saturday from 9:00 a.m. to 8:00 p.m. CST.

The Eagle BBS - You can also contact us on our 24-hour BBS at (214) 539-
9878, 1200/2400 N81.

Mail - For registration or problems, please write:

Eagle Performance Software
P.O. Box 292786
Lewisville, TX 75029-2786

In your written request for resolving problems, be sure to include:

. A diskette of compilable source code of the problem.
. The Eagle product and version number.
. The computer CPU.

Chapter 1, Introduction Page 4
SYSTEM Unit Installation Guide, Version 5.5c


SYST is a shareware program conforming to the standards of the Association
of Shareware Professionals (ASP). You can get more information about ASP
by writing to:

Association of Shareware Professionals
P.O. Box 5786
Bellevue,WA 98006

This program is produced by a member of the Association of Shareware
Professionals (ASP). 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 member's products.
Please write to:

ASP Ombudsman
P.O. Box 5786
Bellevue,WA 98006

or send a CompuServe message via EasyPlex to ASP Ombudsman 7007,3536.

Chapter 1, Introduction Page 5
SYSTEM Unit Installation Guide, Version 5.5c

2. G E T T I N G S T A R T E D

This section will acquaint you with the files on distribution disk and show
you how to install the new SYSTEM.TPU.


In this version, SYST55C.ZIP contains:

Syst55c .bat: Automatic installation batch file.
Syst55c .tpu: System replacement unit.
Syst55c .doc: This file.
Rate55 .pas: A simple time test routine for reps/second.
License .lic: Order form.
Statment.lic: Statement for license terms and conditions.

| Files have been archived using PKZIP. They should be authentically verfied
| after extraction with our company name - Eagle Performance Software.


To install the new system unit, simply run the SYST55C.BAT file in your
TP55 directory. But just to make you feel comfortable about running it,
we'll explain what it does first.

1. It creates a back-up copy of your current library
TURBO.TPL in a file called TPL-BOR.TPL. (BOR = Borland)
2. It then creates a second copy of this library in a file
called TPL-EPS.TPL. (EPS = Eagle Performance Software)
3. Then it modifies TPL-EPS.TPL by installing the new
4. Finally, TPL-EPS.TPL is copied to TURBO.TPL.
5. As a clean-up measure, SYSTEM.TPU is deleted. So be sure
you have your original ZIP file of SYST55C.TPU.

The installation only needs to be done one time. In fact, it won't let you
do it more than once. Should you ever want to go back to your original
library, simply copy TPL-BOR.TPL to TURBO.TPL. To install, do the following

1. Go to your TP directory and be sure that TURBO.TPL and
| 2. If you are upgrading to a new version of SYST, be sure
| that TURBO.TPL is considered your "original" library. (If
| not, copy TPL-BOR.TPL to TURBO.TPL.)
3. Also be sure that there are NO files named SYSTEM.TPU,
TPL-BOR.TPL, or TPL-EPS.TPL in this directory.
4. Copy SYST55C.TPU and SYST55C.BAT into this directory.
5. Run SYST55C.BAT.
6. Compile your programs as usual.

That's about it. Now you can enjoy what computers are meant for - speed!

Chapter 2, Getting Started Page 6
SYSTEM Unit Installation Guide, Version 5.5c

3. P E R F O R M A N C E

This section will show you which algorithms were improved and the range of
speed improvements. Speed increases were checked on a 386/20Hz computer.
Values will vary between applications and hardware.


Long integer math speed is greatly improved. Intel 80386 users will
enjoy even greater speed since the algorithms check for the CPU. A source
code line like the following:

i1 := abs(i2 * i3 div i4 mod i5);

would get these increases in speed:

Operation Increase
---------------------------- --------
* 15%
div / mod (16-bit cpu's) 250-630%
div / mod (32-bit cpu's) 800%
abs 5%


Conversions from string to scalars and vice-versa are improved in speed as
well. The improvement is readily noticed. Scalars are bytes, short
integers, integers, words, and long integers. Some values of reals are
also affected, but it is minimal. The procedures Str and Val are directly
affected as well as conversions in Read, ReadLn, Write, and WriteLn
statements. Intel 80386 users will also notice an additional increase in
speed since the routine detects the CPU in operation.

Procedure Increase
---------------------------- --------
Str (scalar) 40-100%
Str (scalar) (32-bit cpu's) 55-120%
Val (scalar) 19%


String handling is improved mostly by using 16-bit transfers instead of
just 8-bit handling. Plus, the algorithms are more efficient. The
longer the string, the more apparent the increase in speed. The speed
increases below reflect the maximum increase on 255-char strings:

Chapter 3, Performance Page 7
SYSTEM Unit Installation Guide, Version 5.5c

Operation Increase
---------------------------- ----------
Loading, storing, moving up to 70% (such as ":=" )
Comparing up to 70% (such as Str1 Pos up to 340%
Concat up to 63%
Copy up to 34%
Insert / Delete up to 400%
Covert char to string 8%


Set handling is also improved slightly overall, but the variable range is
improved greatly. Improvements are as follows:

Operation Increase
---------------------------- ----------
Subset/superset relation up to 18%
Intersection 8%
Union 8%
Add variable range up to 850%
Add component 5%
Difference 7%


Other procedures have also been improved with more efficient preparation
for DOS interfaces. But depending on your version of DOS and the
efficiency of your hardware, you may or may not see any difference in

Procedure Procedure
------------ ---------
Assign MkDir
Rename ChDir
WriteBlock RmDir

Copying of objects is also improved up to 95%.


Should your programs use all of the new features, they would increase in
size by only 347 bytes - not a bad trade-off for the speed!


Should you decide to register, you will be sent an even faster system unit
with the added features of variable and memory handling. Plus, you can
| register for STRG56 string unit at a 50% discount before December 31, 1990.

Chapter 3, Performance Page 8
SYSTEM Unit Installation Guide, Version 5.5c

4. S P E E D T E S T I N G


The easiest way to see differences in speed is to run your program through
a profiler program such as the one provided by Borland called Turbo
Profiler. This program is provided with Turbo Assembler/Debugger 2.0. It
will display the actual time used in the time-sensitive portions of your
code that you want to observe. This tool can give you the proof you need
to see speed improvements.


Should you not have access to a profiling tool, a simple rate timer program
has been included called RATE55.PAS so you can test your own code

Insert Code - The program is already set to run testing the DIV operation.
If you run it as is, the program will run about 2 seconds and and return
the result of "Reps/Second". This tells how many times the sequence of
code was executed. The higher the number of reps, the faster the speed.
You can test the program under either TPL-BOR.TPL or TPL-EPS.TPL by simply
copying the appropriate file to TURBO.TPL. The increase in speed can be
seen by comparing the results between the two system units. You can modify
the code in the "Insert Code" area to test any sequence of code you want.

Reset Variables - Sometimes you will need to reset a variable to its
original value before testing again. Since you don't want the time it
takes to reset the variables to affect the results, they should be
subtracted out. The RATE55 program automatically does this. For example,
if you were to test the DELETE procedure, you code may look something like
the following:

fillchar (MyStr,256,'a');
MyStr[0] := 255;
Delete (MyStr,1,1);

The first two lines do the job of resetting the MyStr variable. Instead of
placing these two lines in the "Insert Code" area, they should be placed
in the ResetVariables procedure. Only the last line should be placed in
the "Insert Code" area. If you check out the code, you'll see that the
ResetVariables procedure is used for both resetting the variables and is
later subtracted out of the final result. This gives you a true value for

Init - Different from repeatedly resetting a variables, use the Init
procedure for a one time initialization. This will allow you to preserve
a given value throughout the testing process.

RepsPerSec - The variable RepsPerSec (or R) is the variable to observe in
your watch window for the final results which is also output to the screen.
Take your choice and see how much SYST55C improves your speed.

Chapter 4, Speed Testing Page 9
SYSTEM Unit Installation Guide, Version 5.5c

A P P E N D I X A : A P P L I C A T I O N P R O D U C T S

Eagle Performance Software has developed identical products for both Turbo
C and Turbo Pascal. Our pledge is to provide you quality products with
unparalleled performance and ease of use. All registered users receive the
complete source code when a signed license agreement is returned. (SYST is
currently not eligible for source code release. Contact us for latest


STRG - Extremely-high speed string processing routines for strings,
characters, and all types of numbers including case, classification,
comparison, conversions, copy, count, delete, format, justification,
membership, parse, position, replace, search, sort, tabbing, ASCIIZ, many
with match/ignore case and many more - 109 routines in 6.3kb or less.

File name CIS Name Compiler Release date
----------- ---------- -------- ------------
STRG55.ZIP STRG55.ZIP TP55 10-01-88
STRG56.ZIP STRG56.ZIP TP55 11-15-90


QWIK - For direct screen video, QWIK is the highest performance screen
writing tools available today for all text modes in any video
configuration. QWIK provides capabilities far beyond those in the
unit/library that comes with your compiler. Here are some of the

- Writes on all IBM compatible computers, displays and adapters
including MDA, CGA, EGA, MCGA, VGA, 8514/A, Hercules and 3270 PC.
- Superior video detection routine.
- Eliminates snow and flicker.
- Writes directly to the screen in absolute rather than relative
- Writes in all text modes and column modes.
- Writes on all video pages.
- Writes on virtual screens in RAM.
- Writes text and attribute, text only, or attribute only.
- Reads strings, characters and attributes.
- Uses End-Of-String (EOS) marker for quick string chaining.
- Provides standardized cursor shapes for all adapters.
- Enhanced cursor movement.
- Compatible with DESQview and similar multitasking environments.
- Over 650% faster than standard direct screen writing.
- Only 2.7k bytes of code if all 43 utilities are used.
- Optimized by the compiler and drops unused code.
- Used in all other Eagle products.
- Excellent documentation like this document.

Appendix A: Application Products Page 10
SYSTEM Unit Installation Guide, Version 5.5c

Here are the product versions:

File name CIS Name Compiler Release date
----------- ---------- -------- ------------
QWIK55.ARC QWIK55.ARC TP4-5.5 08-24-89
QWIK56.ARC QWIK55.ARC TP4-5.5 11-01-90
QWIKC21.ARC QWKC21.ARC TC2 07-06-89


WNDW - For multi-level virtual windows, WNDW is the highest
performance window utilities available today. It offers very
powerful utilities for full window control and management you
probably never thought possible. They are simple and yet very
powerful with high speed and tight code. With WNDW, you can choose
the absolute writing routines of QWIK, the window- relative writing
routines of WNDW, and even customize your own. Here are some of the
features you will discover:

- Uses the powerful direct screen writing routines of QWIK.
- Up to 254 fixed or virtual windows can be on the screen at one
- Extremely high-speed virtual screens in RAM (up to 40 times
- Virtual windows are fully updated on screen, even if covered.
Screens can scroll underneath one another right on the screen at
very high speeds!
- Virtual windows have virtual titles.
- Fully supported hidden windows saved in RAM.
- Fully supports all video pages.
- Adjustable-rate moving, resizing, and scrolling.
- All windows can be randomly accessed, not just stacked or tiled.
- 28 window-relative writing routines.
- 15 different border styles with shadow and zoom effects.
- Full line drawing procedures.
- Full cursor mode control for each window.
- Writes in all text modes and column modes.
- Only 13k bytes of code if all 69 utilities are used.
- Used in all other Eagle products.
- Excellent documentation like this document.

Here are the product versions:

File name CIS Name Compiler Release date
----------- ---------- -------- ------------
WNDW55.ARC WNDW55.ARC TP4-5.5 08-24-89
WNDWC21.ARC WNDC21.ARC TC2 08-01-89


PULL - For multi-level pull-down menus, PULL is fully featured and fully
configurable. Includes execute, single, and multiple choice menus,

Appendix A: Application Products Page 11
SYSTEM Unit Installation Guide, Version 5.5c

unlimited nested submenus, data entry windows, help windows, directory
windows, message system, and fully completed interfaces. Some of the
features are:

- Uses QWIK and WNDW.
- Work window(s) and complete interface for menus
- Pull-down menus with 3 menu modes and 8 line modes
- Pull-down file directory
- Highlighted command letters
- Unlimited levels of submenus
- Unlimited data entry windows for 9 types of data
- Data entry for the work window(s)
Free field entry with either fixed column or flexible column
Full editing capability including insert cursor mode
Full field selection with cursor keys
Automatic NumLock for numerical data entry
Right or left justification for data entry output
Error messages for invalid data entries
Error messages for data entries out of range
- Automatic sizes and locations for menus.
- Operation by cursor keys or command keys
- Pull/Pop between work window and nested submenu(s)
- Programmable control of pull and pop sequences
- Context-sensitive help
- Message lines for prompts and processing
- Full working shell for user development
- Excellent documentation like this document.

Here are the product versions:

File name CIS Name Compiler Release date
----------- ---------- -------- ------------
PULL55.ARC PULL55.ARC TP4-5.5 08-24-89
PULLC21.ARC PULC21.ARC TC2 08-01-89


CompuServe - All updated files and later versions can be found on the
CompuServe Borland Forums (GO BPROGA for TP and GO BPROGB for TC) or the
IBM Programming Forum (GO IBMPRO).

The Eagle BBS - You can also get the latest files on our 24-hour BBS at
(214) 539-9878, 1200/2400 N81.

Appendix A: Application Products Page 12
SYSTEM Unit Installation Guide, Version 5.5c

A P P E N D I X B : R E V I S I O N H I S T O R Y


Version 5.5 (08-03-90):
. Initial release

Version 5.5a (11-05-90):
. Fixed Copy routine for negative values of count as integer in
lieu of byte.

| Version 5.5b (11-10-90):
| . Fixed variable range set routine. Last value was considered 1-based
| and stayed one short of the given range. Reset to 0-based.

| Version 5.5c (11-13-90):
| . CLD left out of Str procedure (Str2Int) sometimes indicating an
| invalid number string and the value of zero.
| . Documentation length reduced 1 row for convenience of laser printers.


The original Turbo Pascal Runtime Library is copyright (C) 1990 by Borland
International, Inc.

Modification is copyright (C) 1990 by James H. LeMay for Eagle Performance
Software. All Rights Reserved. Protected by the United States Copyright

Appendix B: Revision History Page 13

 December 6, 2017  Add comments

Leave a Reply