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

.
