Invoking FORTRAN-80 and MACRO-80
FORTRAN-80 Compilation Switches
FORTRAN-80 Library Subroutines
FORTRAN-80 Logical Device Assignments
Invoking LINK-80
LINK-80 Switches
Creating a FORTRAN-80 .COM File
:Invoking FORTRAN-80 and MACRO-80
    The FORTRAN-80 compiler and the MACRO-80 assembler,  named F80 and M80
respectively, are invoked in a similar fashion.  In both cases, the name of
the  program is given followed by an argument list.   This argument list is
of the general form --
         obj-dev:filename.ext,list-dev:filename.ext=
              source-dev:filename.ext
    These symbols are defined as follows --
       obj-dev:  The device on which the object program is to be written.
       list-dev:  The device on which the program listing is written.
       source-dev:   The  device from which the source  program  input  to
FORTRAN-80 or MACRO-80 is obtained.
       filename.ext:   The  filename and filename extension of the  object
program file,  the listing file,  and the source program file.

    The default extensions are --

              FOR  FORTRAN-80 Source File
              MAC  MACRO-80 Source File
              PRN  Print (Listing) File
              REL  Relocatable Object File
              COM  Absolute Object File ORGed to 100H

    The specifications for either the object file,  the listing  file,  or
both  may  be  omitted.   If neither a listing file nor an object  file  is
desired, place only a comma to the left of the equal sign.  If the names of
the object file and the listing file are omitted,  the default is the  name
of the source file.  Logical CP/M devices may be specified as follows --

              A:, B:    Disk Drives (Only A: or B:)
              HSR:      High Speed Reader
              LST:      Line Printer
              TTY:      Teletype or CRT

Examples --
    A>F80
    *=TEST
         Compile the program TEST.FOR and place the object in TEST.REL
    *,TTY:=TEST
         Compile  the  program  TEST.FOR  and  list  the  program  on  the
terminal.  No object is generated.
    *TESTOBJ=TEST.FOR
         Compile the program TEST.FOR and put object in TESTOBJ.REL
    *TEST,TEST=TEST
         Compile  TEST.FOR,  and  put  object in TEST.REL and  listing  in
TEST.PRN
    *,=TEST.FOR
         Compile TEST.FOR but produce no object or listing  file.   Useful
for checking for errors.

  In  all  cases,  the  * is the prompt from  FORTRAN-80.   The  indicated
operations  may also be performed by typing 'F80' followed by  the  option,
like 'F80 =TEST'.
  Refer to the 'FORTRAN-80 User's Manual', Copyright 1977, by Microsoft.
:FORTRAN-80:  FORTRAN-80 Compilation Switches
    A number of different switches may be given in the command string that
will affect the format of the listing file.  Each switch should be preceded
by a slash (/):

Switch    Function
------    --------
  O      Print all listing addresses in octal
  H      Print all listing addresses in hexadecimal (default)
  N      Do not list generated code
  R      Force generation of an object file
  L      Force generation of a listing file
  P      Each /P allocates an extra 100 bytes of runtime stack space
  M      Specifies to the compiler that the generated code should be in  a
         form which can be loaded into ROM.

:FORTRAN-80:  FORTRAN-80 Library Subroutines
    The  standard library (FORLIB.REL) includes the following  subroutines
and functions --

    ABS       IABS      DABS      AINT      INT       IDINT
    AMOD      MOD       AMAX0     AMAX1     MAX0      MAX1
    DMAX1     AMIN0     AMIN1     MIN0      MIN1      DMIN1
    FLOAT     IFIX      SIGN      ISIGN     DSIGN     DIM
    IDIM      SNGL      DBLE      EXP       DEXP      ALOG
    DLOG      ALOG10    DLOG10    SIN       DSIN      COS
    DCOS      TANH      SQRT      DSQRT     ATAN      DATAN
    ATAN2     DATAN2    DMOD      PEEK      POKE      INP
    OUT

:FORTRAN-80:  FORTRAN-80 Logical Device Assignments

    LUN*      Device
    ----      ------
    1,3,4,5   Preassigned to CON:
    2         Preassigned to LST:
    6-10      Preassigned to Disk Files (Reassignable)
    11-255    User-Assignable

* LUN = Logical Unit Number
:LINK-80:  Invoking LINK-80
    Each command to LINK-80 consists of a number of filenames and switches
separated by commas --
         obj-dev1:filename.ext/sw1,obj-dev2:filename.ext, ...
    If  the  input  device  for a file is  omitted,  the  default  is  the
currently logged disk.   If the extension of a file is omitted, the default
is  .REL.   After  each  line is typed,  LINK-80 will load  or  search  the
specified files,  and,  when finished, it will list all symbols that remain
undefined followed by an asterisk.   LINK-80 is invoked by the program name
'L80'.
    LINK-80  can be used to generate a .COM file of a FORTRAN-80  program.
This can be done by typing --
         L80 program/E
LINK-80 will respond with a string of the form --
         [aaaa bbbb nn]
The user may then create the .COM file by typing --
         SAVE nn program.COM
:LINK-80:  LINK-80 Switches
    The following are the switches for LINK-80.   As for FORTRAN-80, these
switches are preceeded by a slash (/).

Switch    Function
------    --------
  R      Reset.  Initialize loader.
E,E:name  Exit LINK-80.   FORLIB.REL will be searched to  satisfy  existing
         undefined references.   If 'name' is specified, the value of this
         symbol is used as the start address of the program.
G,G:name  Go.   Start execution of program.  FORLIB.REL will be searched to
         satisfy any existing undefined references.
  U      List all undefined references.
  M      Map.  List all defined references and their values; all undefined
         references are followed by an asterisk.
  S      Search.   Search the file specified before this switch to satisfy
         references.
  N      If a filename/N is specified,  the program will be saved on  disk
         under the selected name with a default extension of .COM.
P and D   See Addenda to Section 2 of documentation.

    Three numbers are specified after the /E and /G switches are executed.
They are given in the form --
         [aaaa bbbb nn]
 aaaa - start address of program
 bbbb - address of next available byte
 nn   - number of 256-byte pages used
:Creating a FORTRAN-80 .COM File
    There  are  two  basic  ways to create a .COM  file  of  a  FORTRAN-80
program.   For example,  to generate PROG.COM from PROG.FOR, proceed in one
of the following ways --

I.  Using SAVE
    F80 =PROG
    L80 PROG/E
      [aaaa bbbb nn] -- response from LINK-80 (necessary data)
    SAVE nn PROG.COM

II.  Using /N LINK-80 Switch
    F80 =PROG
    L80 PROG/E,PROG/N