Category : Miscellaneous Language Source Code
Archive   : LIBRY44.ZIP
Filename : LIBRY1.DOC

 
Output of file : LIBRY1.DOC contained in archive : LIBRY44.ZIP
.pn 1
.pa
REQUIREMENTS AND CONVENTIONS

LIBRY is an indexed collection of object modules that can be linked to other
FORTRAN object modules. An object module is a binary file produced by a
compiler that contains machine instructions, data, and linker flags. LIBRY
contains object modules written in both assembler and FORTRAN. The linker
will take the object module created by your FORTRAN compiler, add to it what
it needs from LIBRY, and create an executable module. In order to run any
program, you must convert it through these steps into an executable module
(unless you are running interpretive BASIC). LIBRY is also compatible with a
few other programming languages; however, BASIC is not one of these. If all
you have is BASIC don't bother reading any further. LIBRY is only available
in object module form (the source codes are not available under any
circumstances).

On the PC LIBRY is contained in the file LIBRY.LIB. On the HP-1000F LIBRY is
contained in the file %LIBRY. On the HP-A900 LIBRY is contained in the file
LIBRY.REL.

In order to produce a compatible object module, you must have a Microsoft
FORTRAN compiler (version 3.31 or later) or HP FTN7X. In order to link your
object module and LIBRY, you must have a Microsoft linker (LINK version 3.0 or
later - I don't know what versions of LINK that come with DOS are compatible -
you get LINK when you purchase FORTRAN anyway) or HP LOADR or LINK. Your LINK
(or DOS) manual will tell you how to access a library. Refer to the LOADR or
LINK manuals for HP applications.

If you are using a PC you also need two other libraries that come with
Microsoft FORTRAN (FORTRAN.LIB and MATH.LIB). Do not attempt to link
LIBRY.LIB with an object module created by a FORTRAN compiler other than
Microsoft's. Do not attempt to link LIBRY.LIB with an object module created
by anyone's BASIC compiler. Do not attempt to link LIBRY.LIB with either of
the two optional math libraries that come with Microsoft FORTRAN (8087.LIB or
ALTMATH.LIB) as these have some unidentified bugs in them.

If you are using Microsoft FORTRAN don't use any of the following metacommands
in your FORTRAN source code: $LARGE, $DECMATH, $NOFLOATCALLS, or $STORAGE:4
as they will make your object module incompatible with LIBRY.LIB.

All integers must be of the type INTEGER*2. Put

IMPLICIT INTEGER*2 (I-N)

in EVERY program segment (this greatly increases speed too). You must use the
"/FPi" and "/4I2" options when using Microsoft FORTRAN/V4.0 or later. All
reals must be of the type REAL*4. Put

IMPLICIT REAL*4 (A-H,O-Z)

in EVERY program segment. All double precision reals must be of the type
REAL*8. Put

IMPLICIT REAL*8 (A-H,O-Z)

in each program segment where double precision reals are used. Remember that
all double precision constants must have a "D" in them in order to allocate
the proper space (don't pass "0." as a constant to a routine expecting a
double precision real - use "0.D0"). All logicals must be of the type
LOGICAL*2. Character variables can be of any length (I hate FORTRAN compilers
that permit only fixed length character variables so I do all character
manipulation in assembler).

If you are using a PC you don't need a math coprocessor (Intel 8087/80287) in
order to run a program linked with LIBRY; but it makes a TREMENDOUS
difference (a factor of 120 or so for floating point operations). The vector
emulations will run even without a math coprocessor; but in that case the
speed is already so slow that nothing will help. The improvement in speed
with the vector emulations varies depending on the relative speed of your
processor and coprocessor (not MHz speed but MIPS and FLOPS - a 5MHz-80286 is
quite a bit faster than a 5MHz-8088 while a 5MHz-8087 is just as fast as a
5MHz 80287). The greatest improvement is realized on a PC with a
5MHz-8088/5MHz-8087 pair; and the least improvement is realized on an AT with
an 8MHz-80286/5MHz-80287 pair.


  3 Responses to “Category : Miscellaneous Language Source Code
Archive   : LIBRY44.ZIP
Filename : LIBRY1.DOC

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/