LnSOS BOOT 1.1 SOS.KERNEL SOS KRNLI/O ERRORFILE 'SOS.KERNEL' NOT FOUND%INVALID KERNEL FILE: xةw,@  ȱlmi8#)!)JBACK6vs' '*LISTA.TEXT sa (APB.TEXT!@sL+NEWAPA.TEXT/4sm (APC.TEXTJ$sZFORTRAN.DOC4u' JBACK6sJJBACK7\sJ >dLԡm#i㰼m#iЕOLԡȱfg hi !dLԡ憦  Ljmkm l y`2 Lԡ8(Je稽)ʈ@LO^S  !"#$%&'()*+,-1 2 G^ʦS: ^zs  ^fo ''%  ^he '''File Name Selection  ^so jback6:newapa  ^he '''FORTRAN Error Messages  ^so jback6:apb  ^he '''Tables  ^so jback6:apc       @@APPENDIX B   @@@FORTRAN ERROR MESSAGES    172 Compile-time Error Messages  176 Run-time Error Messages  ^bp   @@COMPILE-TIME ERROR MESSAGES   1 Fatal error reading source block  2 Nonnumeric characters in label field  appearance  69 Adjustable bound must be simple integer variable  70 Cannot have more than 1 main program  71 The size of a named COMMON must be the same in all procedures  72 Dummy arguments cannot appear in DATA statements  73 COMMON vaed for dummy  arrays  66 Adjustable-size array declarations can only be used for dummy  arrays  67 Assumed-size array dimension specifier must be last dimension  68 Adjustable bound must be either parameter or in COMMON prior to   61 Illegal assignment - types do not match  62 Can only call SUBROUTINES  63 Dummy parameters cannot appear in COMMON statements  64 Dummy parameters cannot appear in EQUIVALENCE statements  65 Assumed-size array declarations can only be us compatible  55 Type of expression must be LOGICAL  56 Too many subscripts  57 Too few subscripts  58 Variable expected  59 '=' expected  60 Size of EQUIVALENCE'd CHARACTER items must be the same d with non-character items  50 Illegal symbol in expression  51 Can't use SUBROUTINE name in an expression  52 Type of argument must be INTEGER or REAL  53 Type of argument must be INTEGER, REAL, or CHARACTER  54 Types of comparisons must beQUIVALENCE statement forces a variable to two distinct  locations, not in a COMMON block  47 Statement number expected  48 Mixed CHARACTER and numeric items not allowed in same COMMON  block  49 CHARACTER items cannot be EQUIVALENCE' with variable declaration  43 EQUIVALENCE subscript out of range  44 Two distinct cells EQUIVALENCE'd to the same location in a COMMON  block  45 EQUIVALENCE statement extends a COMMON block in the negative  direction  46 E39 Named COMMON block already saved  40 Variable already appears in a COMMON block  41 Variables in two different COMMON blocks cannot be equivalenced  42 Number of subscripts in EQUIVALENCE statement does not agree ation  statement  34 This identifier has already been declared  35 This intrinsic function cannot be passed as an argument  36 Identifier must be a variable  37 Identifier must be a variable or the current FUNCTION  38 '/' expected  dentifier expected  29 Dimension(s) required in DIMENSION statement  30 Array dimensioned more than once  31 Maximum of 3 dimensions in an array  32 Incompatible arguments to EQUIVALENCE  33 Variable appears more than once in a type specific21 Type name expected (INTEGER, REAL, LOGICAL, or CHARACTER[*n])  22 Integer constant expected  23 Extra characters at end of statement  24 '(' expected  25 Letter IMPLICIT'ed more than once  26 ')' expected  27 Letter expected  28 I Character constant extends to end of line  16 Character constant zero length  17 Illegal character in input  18 Integer constant expected  19 Label expected  20 Error in label $ compiler directive  9 Input source file not valid textfile format  10 Maximum depth of include file nesting exceeded  11 Integer constant overflow  12 Error in real constant  13 Too many digits in constant  14 Identifier too long  15 3 Too many continuation lines  4 Fatal end of file encountered  5 Labeled continuation line 6 Missing field on $ compiler directive line  7 Unable to open listing file specified on $ compiler directive  line  8 Unrecognizable riables cannot appear in DATA statements  74 SUBROUTINE names, FUNCTION names, INTRINSIC names, etc. cannot  appear in DATA statements  75 Subscript out of range in DATA statement  76 Repeat count must be >= 1  77 Constant expected  78 Type conflict in DATA statement  79 Number of variables does not match number of values in DATA  statement list  80 Statement cannot have label  81 No such INTRINSIC function  82 Type declaration for INTRINSIC function does not maDO  154 Expressions not allowed as reading I/O list elements  155 REC= option appears twice in statement  156 REC= expects integer expression  157 END= option only allowed in READ statement  158 END= option appears twice in statement  159 Unrec specify RECL= in OPEN statement  151 Adjustable arrays not allowed as I/O list elements  152 End of statement encountered in implied DO, expressions beginning %with '(' not allowed as I/O list elements  153 Variable required as control for implied  146 FILE= option must be present in OPEN statement  147 RECL= option specified twice in OPEN statement  148 Integer expression expected for RECL= option in OPEN statement  149 Unrecognizable option in OPEN statement  150 Direct access files muster constant as option  142 Character constant expected as option  143 Integer expression expected for unit designation  144 STATUS option expected after ',' in CLOSE statement  145 Character expression as filename in OPEN 4 FORMAT label already referenced  135 FORMAT must be labeled  136 Identifier expected  137 Integer variable expected  138 'TO' expected  139 Integer expression expected  140 Assigned GOTO but no ASSIGN statements  141 Unrecognizable charact type  127 RETURN forbidden in this context  128 STOP forbidden in this context  129 END forbidden in this context  131 Label referenced but not defined  132 DO or IF block not terminated  133 FORMAT statement not permitted in this context  13 121 Assigned GOTO forbidden in this context  122 Block IF statement forbidden in this context  123 Logical IF statement forbidden in this context  124 Arithmetic IF statement forbidden in this context  125 ',' expected  126 Expression of wrongELSE block  114 '(' expected  115 ')' expected  116 THEN expected  117 Logical expression expected  118 ELSE statement forbidden in this context  119 No matching IF for ELSE  120 Unconditional GOTO forbidden in this context abel must follow DO statement  108 ENDIF forbidden in this context  109 No matching IF for this ENDIF  110 Improperly nested DO block in IF block  111 ELSEIF forbidden in this context  112 No matching IF for ELSEIF  113 Improperly nested DO or mum is 1   100 Statement out of order  101 Unrecognizable statement  102 Illegal jump into block  103 Label already used for FORMAT  104 Label already defined  105 Jump to format label  106 DO statement forbidden in this context  107 DO l 95 Type of actual argument does not agree with type of format  argument  96 The following procedures were called but not defined:  97 This procedure was already defined by a $EXT directive  98 Maximum size of type CHARACTER is 255, ministatement  92 A program unit cannot appear in a separate compilation  93 Fewer actual arguments than formal arguments in  FUNCTION/SUBROUTINE call  94 More actual arguments than formal arguments in  FUNCTION/SUBROUTINE call er unit %via a $USES command  87 Error in type of argument to an INTRINSIC FUNCTION  88 SUBROUTINE/FUNCTION was previously used as a FUNCTION/SUBROUTINE  89 Unrecognizable statement  90 Functions cannot be of type CHARACTER  91 Missing END tch actual  type of INTRINSIC function  83 Letter expected  84 Type of FUNCTION does not agree with a previous call  85 This procedure has already appeared in this compilation  86 This procedure has already been defined to exist in anothognizable I/O unit  160 Unrecognizable format in I/O statement  161 Options expected after ',' in I/O statement  162 Unrecognizable I/O list element  163 Label used as format but not defined in format statement  164 Integer variable used as assigned format but no ASSIGN statements  165 Label of an executable statement used as a format  166 Integer variable expected for assigned format  167 Label defined more than once as format  169 Function calls requias formatted  648 Unable to write blocked output, possibly no room on device  for file  649 Unable to read blocked input  650 Error in formatted textfile, no in last 512 bytes  651 Integer overflow on input  652 Too many bytes read ou d field + 1  643 Scale factor out of range of d field in E format  644 E or F format expected for real write  645 L format expected for logical write  646 A format expected for character write  647 Attempt to do unformatted I/O to a unit opened  636 Digit expected in formatted real read  637 L format expected for logical read  639 T or F expected in logical read  640 A format expected for character read  641 I format expected for integer write  642 w field in F format not greater thaner  631 Formatted I/O attempted on file opened as unformatted  632 Format fails to begin with '('  633 I format expected for integer read  634 F or E format expected for real read  635 Two '.' characters in formatted real read for reading  626 Character constant in format must not be repeated  627 '/' in format must not be repeated  628 '$' in format must not be repeated  629 BN or BZ format control must not be repeated  630 Attempt to perform I/O on unknown unit numbactor in format  621 Maximum nesting level for formats exceeded  622 ')' has repetition factor in format  623 Integer followed by ',' illegal in format  624 '.' is illegal format control character  625 Character constant must not appear in format 616 X field in format requires repetition factor  617 P field in format requires repetition factor  618 Integer appears before '+' or '-' in format  619 Integer expected after '+' or '-' in format  620 P format expected after signed repetition fitive integer required for e field in format  613 Positive integer required for w field in A format  614 Hollerith field in format must not appear for reading  615 Hollerith field in format requires repetition factor character in format   607 Integer expected for w field in format  608 Positive integer required for w field in format  609 '.' expected in format  610 Integer expected for d field in format  611 Integer expected for e field in format  612 Posr on scratch file  ^bp   @@RUN-TIME ERROR MESSAGES   600 Format missing final ')'  601 Sign not expected in input  602 Sign not followed by digit in input  603 Digit expected in input  604 Missing N or Z after B in format  605 Unexpected  define   400 Code file write error  401 Routine too complex  402 Too many SUBROUTINES/FUNCTIONS in segment  403 Procedure too large (code buffer too small)  404 Insufficient room for scratch file in system directory  405 Read erroent  210 Extra characters at end of $USES directive  211 Intrinsic units cannot be overlayed  212 Syntax error in $EXT directive  213 A SUBROUTINE cannot have a type  214 SUBROUTINE/FUNCTION name in #EXT directive has already been CHARACTER  204 Unable to open $USES file  205 Too many $USES statements  206 No .TEXT info for this unit in $USES file  207 Illegal segment kind in $USES file  208 There is no such unit in this $USES file  209 Missing UNIT name in $USES statemre '( )'  170 Only sequential formatted files can be print files   200 Error in reading $USES file  201 Syntax error in $USES file  202 SUBROUTINE/FUNCTION name in $USES file has already been declared  203 FUNCTIONS cannot return values of typet of or into a direct access unit record  653 Incorrect number of bytes read from a direct access unit record  654 Attempt to open direct access unit on unblocked device  655 Attempt to do external I/O on a unit beyond end of file record  656 Attempt to position a unit for direct access on a nonpositive  record number  657 Attempt to do direct access to a unit opened as sequential  658 Attempt to position direct access unit on unblocked device  659 Attempt to position direct .0123456789:;<=>?@ABCDEFGHO^ʦۦE+Invalid bitmap address has been found on volume   1000+ Compiler debug error messages - should never appear in  correct programs  ^bp   ror 982 Directory is not in SOS format 983 Invalid value in list parameter 984 Out of free memory for system buffer 985 Buffer table is full 986 Invalid system buffer parameter 987 Duplicate volume error 988 Not a block device 989 Level error 990 filename 972 Overrun error 973 Directory is full 974 Incompatible file format 975 Unsupported storage type 976 End of file error 977 Position is out of range 978 Access error 979 User-supplied buffer is too small 980 File is busy 981 Directory er946 Diskette has been switched  964 Invalid pathname syntax 965 Character file control block is full 966 Block file control block is full 967 Invalid file reference number 968 Path not found 969 Volume not found 970 File not found 971 Duplicate 934 Invalid control/status parameter 935 Device is not open  937 Resource is not available 938 Invalid operation 939 I/O error  943 Device is write-protected 944 Byte count is not a multiple of 512 945 Block number is too large Bad input format -- error in reading number 915 Ring buffer overflow -- input arriving too fast 916 Write-protect error -- disk is protected  919 Too many files open for system to handle   932 Invalid request code 933 Invalid control/status codey 907 Illegal pathname 908 No room -- insufficient space in directory 909 No unit -- unit is not on line 910 No such file in specified directory 911 Duplicate pathname 912 Attempt to open an already open file 913 Attempt to access a closed file 914 703 Argument to SQRT negative 704 Too many bytes read out of unformatted sequential unit record 902 Bad unit number 903 Illegal operation (e.g., read from .PRINTER)  905 Lost unit -- no longer on line 906 Lost file -- file is no longer in directorformat label  698 End of file encountered on read with no END= option  699 Integer variable not ASSIGNed a label used in assigned goto  700 Attempt to backspace UCSD file - Restriction 701 Underflow in TAN 702 Argument to LN negative or zero o do unformatted I/O to internal unit  665 Attempt to put more than one record into internal unit  666 Attempt to write more characters to internal unit than its length  667 EOF called on unknown unit  697 Integer variable not currently assigned a access unit beyond end of file for  reading  660 Attempt to backspace unit connected to unblocked device   662 Argument to ASIN or ACOS out of bounds (ABS(X) .GT. 1.0)  663 Argument to SIN or COS too large (ABS(X) .GT. 10E6)  664 Attempt tprefix /P/Q is to be used (as in ^XYZ or ^/XYZ to mean /P/Q/XYZ). Two "^"s, i.e., "^^" indicate that /P should be used (e.g., ^^XYZ or ^^/XYZ means /P/XYZ). Three "^"s, in this example, removes all directories. This is the same as not specifying any pe "^" notation is repetitive, i.e., multiple "^"s may be used to "peel" off layers of directories in a prefix. Again using the previous example, given the file /P/Q/R/S with its prefix /P/Q/R, a single "^" indicates the , but with the final directory component removed. Thus, in our example, if /P/Q/R/S is the input pathname, then ^XYZ or ^/XYZ can be used to refer to the codefile /P/Q/XYZ. The prefix is /P/Q/R, so the single "^" indicates only /P/Q is to be used. Th because it has a common node on the pathname tree. For example, /P/Q/R/S might be the input field and /P/Q/XYZ might be the name for the codefile. For these cases the special prefix character "^" has been provided. The "^" means use the previous prefixthe previous pathname. So, $$ or $/$ means use both the previous file's prefix and suffix. In other words, $/$ is identical to just a single $. In some cases you might want to refer to a file in a different directory from the previous file, but relatedhname, then $XYZ or $/XYZ means /P/Q/R/XYZ. If a "$" or a "/$" is used as a suffix (the filename), you indicate that the preceding file's is to be used. Thus .D1$ or .D1/$ would mean .D1/S assuming /P/Q/R/S was prefix and suffix based on the prefix and suffix of a previous pathname.  By placing a "$" or"$/"at the begining of a filename (with a suffix, e.g., XYZ) you indicate the prefix of the previous file is to be used. Thus, if /P/Q/R/S is the previous patcumentation for a description of the "*" abbreviation. The default prefix when none is explicitly specified with a filename is the "$" notation, which refers to "the previous pathname". ^uw 8  Additionally, we have an abbreviation scheme for both theA pathname may be viewed as having a prefix and a suffix. The prefix is the pathname of the directory containing the desired file, the suffix. Thus, for example, if /P/Q/R/S is the full pathname, /P/Q/R is the prefix, and S its suffix. See the Pascal doo change your mind about a file that was selected, a editing facility is available to make a change. These features are described in the following sections. % ^ne 4 @@PATHNAME SELECTION ty allowed in response to all pathname prompts. Additionally, there is a menu facility that allows you to examine all the files that share a common prefix. From this menu, you can then select the file you wish to enter. If you make a mistake or wish tponses to the codefile prompt (during compilation) and it was noted that you could enter a "$" as an abbreviation to indicate that the previous name (the input pathname) was to be used. This is only one special case of a more general abbreviation facili    @@APPENDIX A   @@@FILE NAME SELECTION   136 Introduction 136 Pathname Selection 137 File Selection  138 Editing Input Fields  139 SOS Error Messages  ^bp   @@INTRODUCTION ^ne 4  Chapter 4 discusses the resrefix in the first place. Thus ^^^XYZ or ^^^/XYZ is the same as just XYZ>  ^ne 5 ^tr ~  The following table summarizes these abbreviation rules using the examples we have been using (previous pathname /P/Q/R/S, current file - XYZ): ($ ---> ~/P/Q/R/S ($XYZ or $/XYZ --->~ /P/Q/R/XYZ (^XYZ or ^/XYZ ---> /P/Q/XYZ (^^XYZ or ^^/XYZ ---> /P/XYZ (^^^XYZ or ^^^/XYZ ---> XYZ (.D1$ or .D1/$ ---> .D1/S ( ^ne 4 Note that these abbreviationto type over mistakes. A character is entered in the position indicated by the cursor and the cursor moves one place to the right. ^ne 2  To delete a character, move the cursor to that character, then press the open apple and right-arrow keys simultaneoe same way. Basically editing is similar to the Systems Utility Filer, except for a few minor changes and additions.  The left and right arrow keys move the cursor back and forth enabling you be located at the end of the prompt line that caused the error. You may correct it by using the system's editing capabilities. These are discussed in the next section. % ^ne 4  @@EDITING INPUT FIELDS  All responses to the prompts can be edited thscheme. ^ne 2  Any errors that occur during pathname selection result in an error message displayed in a window on the screen. You can recover from the error by pressing RETURN or terminate the compiler with ESCAPE. If RETURN is used the cursor willthe end of the name), the pathname will end with a "/" after pressing RETURN. Pressing RETURN the second time turns on the file selector again displaying the file menu for the specified directory. You can descend through the directory tree using this will be shown on the prompt line. Press RETURN again to enter the pathname you just chose.  ^ne 2  If the file you selected was actually a directory (as indicated by a "/" at t, you will get a warning message if you select a second file. If you do select a second file, your first choice will be deselected for you.   ^ne 2  Once you are satisfied with your selection, press RETURN. The full pathname for the selected file pointing to a highlighted file with the right arrow. The highlight can be moved with the up or down arrows. If you change your mind you may deselect a highlighted file with the left arrow. Since only one file may be selected for any one compiler promppatern. A RETURN will also have the same effect as an up or down arrow when the pathname ends in a "/" or has an explicit "=" in its suffix.  ^ne 2 When the menu is displayed, the first file on the list will be highlighted. You may select a file byll be displayed showing all the files in the specified directory which satisfy the pathname pattern. If an "=" is not specified and the up or down arrow is typed, an "=" will be added to the end of the file addition to all abbreviation options provided, the compiler also supports the File Selection notation of the Systems Utility Filer by using the wildcard character, "=" in a pathname's suffix. If this is used, and an up or down arrow is typed, a menu wietermines a prefix and a suffix for the listing file and (you don't get an error file if there is a listing file, and a null response to the listing request does not affect the prefix and suffix determined by the codefile). ^ne 5 @File Selection Incannot be used (except, of course, for the abbreviation "*"). Once the input file is specified, a prefix and a suffix is determined, so the codefile specification can refer to the input file's prefix and suffix. The codefile specification, in turn, ds are based on a previous pathname. Initially, when you are prompted for the input field, there is no previous pathname. Thus the initial prefix and suffix are both null so that these abbreviations usly. All the characters to the right of the cursor will shift to the left to filling the space of the deleted character. The cursor does not move. You can also delete a character to the left of the cursor by pressing the open apple and left-arrow keys simultaneously. Everything to the right of the cursor (including the cursor) will move to the left to occupy the deleted character position. Holding down the open apple and right or left arrow keys will provide multiple deletions.  ^ne 2 To insert a230 Invalid change mode 231 Invalid page count  252 No files were selected from the directory or the directory is empty 253 Pathname does not specify a directory 254 No file was selected from the list 255 Too many open files for the Primitives to hvalid bitmap address has been found on volume 112 Invalid joystick mode 224 Invalid segment address 225 Segment request denied 226 Segment table is full 227 Invalid segment number 228 Segment not found 229 Invalid search mode r 82 Directory is not in SOS format 83 Invalid value in list parameter 84 Out of free memory for system buffer 85 Buffer table is full 86 Invalid system buffer parameter 87 Duplicate volume error 88 Not a block device 89 Level error 90 Inlename 72 Overrun error 73 Directory is full 74 Incompatible file format 75 Unsupported storage type 76 End of file error 77 Position is out of range 78 Access error 79 User-supplied buffer is too small 80 File is busy 81 Directory erro46 Diskette has been switched 64 Invalid pathname syntax 65 Character file control block is full 66 Block file control block is full 67 Invalid file reference number 68 Path not found 69 Volume not found 70 File not found 71 Duplicate fitatus code 34 Invalid control/status parameter 35 Device is not open 37 Resource is not available 38 Invalid operation 39 I/O error 43 Device is write-protected 44 Byte count is not a multiple of 512 45 Block number is too large 2 Caller's zero page is not $1A 3 Invalid extend byte in pointer 4 Invalid system call parameter count 5 Pointer parameter is out of bounds 16 Device name not found 17 Invalid device number 32 Invalid request code 33 Invalid control/sg the open apple and "?" keys simultaneously (shift is optional).  A window display will present a summary of the editing keys. The window is removed by typing either RETURN or ESCAPE. ^bp   @@SOS ERROR MESSAGES  1 Invalid system call number the open apple and "d" keys at the same time will delete everything to the right of the cursor on that line. This function is not allowed in the insert mode. ^ne 2 If you forget any of these functions you can type the "help" request function by pressinke in the Filer, you are "popping" a menu window). To restore an originally displayed line in the compiler press the open apple and ESCAPE keys simultaneously. ^ne 2  There is one additional editing function provided by the compiler. Pressing in the Systems Utility Filer has a differs from the ESCAPE in the compiler. In the Systems Utility Filer ESCAPE means restore the originally displayed information whereas pressing ESCAPE during a compiler prompt means terminate the compiler (unless, lieft or right arrow keys as described above. Insert mode is terminated by pressing the open apple and "i" keys simultaneously a second time. ^ne 2  What has been described so far is essentially the same as the Systems Utility Filer. However, ESCAPE to indicate the insert mode. Each character typed is entered at the cursor location. The cursor and everything to the right shifts to the right with each insertion. You can also move and delete characters in the insert mode by using the open apple and l character, move the cursor to the character which is immediately to the right of the desired location and press the open apple and "i" key at the same time. A vertical bar ("|") will appear within the cursor andle ^bp  ding integer value, according to the ASCII  collating sequence. CHAR is the reverse of ICHAR.    TRUNCATION   real AINT (real)  (Removes the fractional part of a real variable, returning (the result as a real.    NEAREeal) $integer IFIX (real) $ (Converts from real to integer. ( $real REAL (integer) $real FLOAT (integer) ( (Converts integer to real.  $integer ICHAR (character) ( (Converts the first character of the argument string to its (correspon This is the list of intrinsic functions available in Apple FORTRAN.  The type of the result is listed first, followed by the name of the  function in all caps, and the type of the argument(s) in parentheses.   TYPE CONVERSION $ $integer INT (rVE TURNTO   3APPLESTUFF UNIT IDENTIFIERS  (BUTTON KEYPRE NOTE (PADDLE RANDOM RANDOI (TTLOUT  ^bp   @@INTRINSIC FUNCTIONS MOVETO TURTLA (DRAWBL PENCOL TURTLX (FILLSC SCREEN TURTLY (GRAFMO TEXTMO VIEWPO (INITTU TURN WCHAR (MOe declared or defined only if your  program $USES the unit under which they are listed. If your program  does not use the particular unit, you can use the identifier names for  other purposes.   1TURTLEGRAPHICS UNIT IDENTIFIERS  (CHARTY     @@APPENDIX C   @@@TABLES    180 Unit Identifiers  181 Intrinsic Functions  184 Transcendental Functions  185 Lexical Comparisons  186 ASCII Character Codes  ^bp   @@UNIT IDENTIFIERS   The identifiers listed below arIKLMNOPQRSTUVWXYZ[X M G.EաST WHOLE NUMBER $ $real ANINT (real)  (Finds nearest whole number, that is: INT(argument+.5) if the (argument is .GE. 0, otherwise INT(argument-.5).    NEAREST INTEGER  $integer NINT (real)  (Finds nearest integer: INT(argument+.5) if argument .GE. 0, (otherwise INT(argument-.5).   ^bp   ABSOLUTE VALUE  $integer IABS (integer)  real ABS (real)  (Returns absolute value.    REMAINDERING   integer MOD (integer_a, ar Code Char % !Dec Hex Dec Hex Dec Hex Dec Hex #0 00 NUL 32 20 SP 64 40 @ 96 60 ` #1 01 SOH 33 21 ! 65 41 A 97 61 a #2 02 STX 34 22 " urns true if the first non-identical character in string a (has an ASCII collating sequence number less than the (corresponding character in string b.     (  ^bp   @@ASCII CHARACTER CODES ' #Code Char Code Char Code Ch(Returns true if the two strings are identical, or if the first (non-identical character in string a has an ASCII collating (sequence number less than the corresponding character in (string b.   LLT(a, b)  (Ret  (Returns true if the first non-identical character in string a (has an ASCII collating sequence number greater than the (corresponding character in string b.   LLE(a, b)   (Returns true if the two strings are identical, or if the first (non-identical character in string a has an ASCII collating (sequence number greater than or equal to the corresponding (character in string b.   LGT(a, b) ..............Hyperbolic Cosine  $ TANH .........................Hyperbolic Tangent    ^bp   @LEXICAL COMPARISONS   The lexical functions all return logical results, and all arguments  are character strings.  $LGE(a, b) $ ASIN .........................Arcsine  $ ACOS .........................Arccosine  $ ATAN .........................Arctangent  $ ATAN2(a, b)...................Arctan(a/b)  $ SINH .........................Hyperbolic Sine  $ COSH ..................................Natural logarithm  $ ALOG10 .......................Common logarithm  $ SIN ..........................Sine $ $ COS ..........................Cosine  $ TAN ..........................Tangent  s all return real results, and all  arguments are real. The arguments to SIN, COS, TAN, SINH, COSH and  TANH are in radians. The results of ASIN, ACOS, ATAN and ATAN2 are in  radians.   $ EXP ..........................Exponential  $ ALOG .._b,... real_n)  (Returns the smallest (least positive) of all the actual (arguments.  ^bp   SQUARE ROOT   real SQRT (real)  (Returns the square root of the argument.  ^bp   @TRANSCENDENTAL FUNCTIONS  The transcendental function(Returns the largest (most positive) of all the actual (arguments.  $integer MIN0 (integer_a, integer_b,... integer_n)  real AMIN1 (real_a, real_b,... real_n)  real AMIN0 (integer_a, integer_b,... integer_n)  integer MIN1 (real_a, realGNITUDE COMPARISON   integer MAX0 (integer_a, integer_b,... integer_n)  real AMAX1 (real_a, real_b,... real_n)  real AMAX0 (integer_a, integer_b,... integer_n)  integer MAX1 (real_a, real_b,... real_n)  .GE. 0, otherwise result is -|a|.    POSITIVE DIFFERENCE   integer IDIM (integer_a, integer_b) $real DIM (real_a, real_b)  (Takes the positive difference of the two arguments. Result is (a-b if a .GE. b, otherwise result is 0.    MAinteger_b) $real AMOD (real_a, real_b)  (Returns the result of a-INT(a/b)*b.    TRANSFER OF SIGN   integer ISIGN (integer_a, integer_b)  real SIGN (real_a, real_b)  (Converts sign of a according to sign of b. Result is |a| if (b 66 42 B 98 62 b #3 03 ETX 35 23 # 67 43 C 99 63 c #4 04 EOT 36 24 $ 68 44 D 100 64 d #5 05 ENQ 37 25 % 69 45 E 101 65 e #6 06 ACK 38 26 & 70 46 F 102 66 f #7 07 BEL 39 27 ' 71 47 G 103 67 g #8 08 BS 40 28 ( 72 48 H 104 68 h #9 09 HT 41 29 ) 73 49 I 105]_`aO^Ss\*INDEX.TEXT,sԠ\JBACK7vs' '*LISTA.TEXT^sa\(APD.TEXTcsk- \(APE.TEXTh sj\(APF.TEXTq sk/ \(APG.TEXT sk\(BIB.TEXT5C \ 124 7C | "29 1D GS 61 3D = 93 5D ] 125 7D } "30 1E RS 62 3E > 94 5E ^ 126 7E ~ "31 1F US 63 3F ? 95 5F _ 127 7F DEL     ^bp  120 78 x "25 19 EM 57 39 9 89 59 Y 121 79 y "26 1A SUB 58 3A : 90 5A Z 122 7A z "27 1B ESC 59 3B ; 91 5B [ 123 7B { "28 1C FS 60 3C < 92 "21 15 NAK 53 35 5 85 55 U 117 75 u "22 16 SYN 54 36 6 86 56 V 118 76 v "23 17 ETB 55 37 7 87 57 W 119 77 w "24 18 CAN 56 38 8 88 58 X 81 51 Q 113 71 q "18 12 DC2 50 32 2 82 52 R 114 72 r "19 13 DC3 51 33 3 83 53 S 115 73 s "20 14 DC4 52 34 4 84 54 T 116 74 t M 109 6D m "14 0E SO 46 2E . 78 4E N 110 6E n "15 0F SI 47 2F / 89 4F O 111 6F o "16 10 DLE 48 30 0 80 50 P 112 70 p "17 11 DC1 49 31 1 69 i "10 0A LF 42 2A * 74 4A J 106 6A j "11 0B VT 43 2B + 75 4B K 107 6B k "12 0C FF 44 2C , 76 4C L 108 6C l "13 0D CR 45 2D - 77 4D  ^zs  ^fo ''%  ^he ''' FORTRAN Syntax Diagrams  ^so jback7:apd ^he '''FORTRAN Statement Summary  ^so jback7:ape  ^he '''ANSI Standard vs. 77 FORTRAN  ^so jback7:apf  ^ he '''Apple FORTRAN vs. ANSI 77  ^so jback7:apg  ^so jback7:bib  Y Z FFG^ա    @@APPENDIX D   @@@FORTRAN SYNTAX DIAGRAMS   ^bp bdefO^"@gijklmnoe [,variable_name]  RETURN   REWIND unit   SAVE a[,a]...   STOP [character_constant or integer]  SUBROUTINE subroutine [([dummy_argument [,dummy_argument]...])]   arithmetic_variable = arithmetic_expression   logical_variable = logical_e[,variable_name]  INTRINSIC function [,function]...  LOGICAL variable_name [,variable_name]...   OPEN (open_list)   PAUSE [character_constant or integer]  PROGRAM program_name   READ (control_information_list) [i/o_list]  REAL variable_namGO TO (statement_label [,statement_label]...)[,] integer_variable  IF (expression) statement   IF (expression) statement1, statement2, statement3   IF (expression) THEN   IMPLICIT type (a [,a]...) [,type (a [,a]...)]...  INTEGER variable_name ment]...]) = expression  [type] FUNCTION function ([dummy_argument [,dummy_argument]...])   GO TO integer_variable [[,][statement_label [,statement_label]...)]  GO TO statement_label  [,expression_3]  ELSE   ELSE IF (expression) THEN   END   END IF   ENDFILE unit  EQUIVALENCE (name_list) [,(name_list)]...  EXTERNAL procedure [,procedure]...   FORMAT format_specification   function ([dummy_argument [,dummy_argublock]/]name_list[[,]/[common_block]/name_list]...   CONTINUE   DATA name_list/constant_list/ [[,]name_list/constant_list/]...  DIMENSION array(dimension) [,array(dimension)]...   DO statement [,] integer_variable=expression_1, expression_2   integer constant. I/O device unit numbers may be integer expressions.   ASSIGN statement label TO integer variable   BACKSPACE unit   CALL subroutine [([argument [,argument]...])] CHARACTER [*length[,]] name [,name]...   COMMON [/[common_ual arguments are separated by commas.   The type identifier below can be any of INTEGER, REAL, LOGICAL, or  CHARACTER[*length]. The length argument specifies the number of  characters that the entity can store, and is an unsigned, nonzero, name of the subroutine is not followed by  anything, or it can have one argument, in which case the argument is  enclosed in parentheses, or it can have more than one argument in  which case the argument list is enclosed in parentheses and the  individs, are in lower case.  Items enclosed in square brackets: [ ] are optional. An ellipsis  indicate that the previous item may be repeated. For instance in the  CALL statement shown below, the named subroutine can have no  arguments, in which case the     @@APPENDIX E   @@@FORTRAN STATEMENT SUMMARY  ^bp   In the following summary of Apple FORTRAN statements, FORTRAN reserved  words are capitalized; other entities that are required by the  statement, such as arguments and type qualifierxpression   character_variable = character_expression  WRITE (control_information_list) [i/o_list] ^bp  ^bp A B G^ ANSI 66 allowed multi-dimensional arrays to be specified with a one-  dimensional subscript in EQUIVALENCE statements.   ^ne 4  @I/O  No records may be written after an endfile record in a sequential  file. (This is made to be impossible by Apcript expression must not exceed its corresponding  upper bound. ANSI 66 allowed this under some circumstances.   ^ne 3  You must now always specify all the dimensions of an array element. ith constants and Hollerith data have been deleted. A new  character type has been substituted in their place, see below under  ADDITIONS. There is still an H edit descriptor, but it is not a  Hollerith constant.  ^ne 4  @ARRAYS  Each array subsh 5 of a continuation line must now contain blanks.  ANSI 66 made no requirement except that column 1 could not contain a C  unless it were to be treated as a comment. Noncontinuation lines must  be blank in column 6.  ^ne 4  @HOLLERITH  Holler A line that contains only blanks which are defined in Apple FORTRAN to  be the standard ASCII SPACE character in columns 1 to 72 is treated as  a comment line whereas ANSI 66 treated it as the initial line of a  statement.  ^ne 2  Columns 1 througThere are some conflicts between ANSI 66 and ANSI 77 FORTRAN. These  are listed in the sections immediately following. The additions made  to the language are described under ADDITIONS.   ^ne 4  @LINE FORMAT hese differences break down into two categories, first, changes  that cleaned up those undefined areas remaining in the ANSI 66  specification, and secondly changes that added capabilities not  available in ANSI 66.     ^ne 5  @@CONFLICTS   dditions  ^bp   @@INTRODUCTION  This Appendix contains a brief description of the major differences  between the new ANSI 77 Standard FORTRAN and the earlier, much more  common ANSI 66 Standard FORTRAN that you are probably more familiar  with. T    @@APPENDIX F  @@@ANSI FORTRAN: 66 VS. 77    186 Introduction  186 Conflicts  186 Line Format  186 Hollerith  186 Arrays  186 I/O  187 Intrinsic Functions  187 Other Conflicts  187 Adapting Programs  188 Aprstuvwxyz{|}~ple FORTRAN I/O.)   ^ne 4  Only positive values are allowed for I/O unit identifiers. ANSI 66 did  not specifically prohibit negative values.   You may not read into an H edit descriptor in a FORMAT statement.  ^ne 4  @INTRINSIC FUNCTIONS  An intrinsic function must appear in an INTRINSIC statement prior to  its use as an actual argument. ANSI 66 allowed it to appear in an  EXTERNAL statement instead. The intrinsic function class includes the  basic external function class of ANSI 66.  statement and the ELSE IF, ELSE and END IF statements. Together these  statements provide a vastly improved method of clearly and accurately  specifying the flow of program control. Refer to Chapter 10 for a  discussion of these IF statements. ^bp n  Chapter 10, and the CHARACTER statement is discussed in Chapter 7.  ^ne 2  ANSI FORTRAN 66 had only an Arithmetic IF statement. ANSI 77 has  extended this to include the Logical IF statement, the Block IF ted from ANSI 77.   ^ne 4  @@ADDITIONS  The three major additions to ANSI 77 are the IF statement constructs,  the CHARACTER data type, and the standardizations to I/O. I/O is  treated extensively in Chapter 11. The IF statement is discussed i* There are usually some language extensions introduced in most  versions of FORTRAN that may not be available in Apple FORTRAN which  is subset standard conforming.   ^ne 2  * The program may utilize aspects of ANSI 66 FORTRAN that have been  dele contains characters not in the ASCII set.  ^ne 3  * File name formats may be different.  * I/O capabilities may be different.   ^ne 2  * The program may utilize full language features not available in the  ANSI Standard subset.   ^ne 3  equence.  Character relational expressions may not necessarily have the same  value if the translated program used another character collating  sequence. It is possible that the character set of the source program 2 assembler code for the Apple without rewriting it.   ^ne 2  FORTRAN has never specified the collating sequence of the character  set used. Apple FORTRAN uses both the ASCII encoded binary  representation as shown in Appendix B and its collating som other  versions.   ^ne 2  Subprograms written in languages other than FORTRAN or Pascal will  need to be rewritten. This is especially true of machine language  subprograms. It may be possible, however, to use a program written in  Pascal 650 minus before the exponent field. This is an ANSI 77 feature not  present in ANSI 66.     ^ne 5  @@ADAPTING PROGRAMS  Here are some problem areas that you should consider if you are  contemplating translating programs into Apple FORTRAN frI 77.   ^ne 2  * A labeled END statement could conflict with the initial line of a  statement in ANSI 66.   ^ne 3  * The E or D output FORMAT edit descriptors will now append a plus or e compiler. Also, in  ANSI 66 a large number of systems extended the standard by allowing  the terminal parameter in a DO statement to be less than the initial  parameter, but executed the DO loop one time, rather than zero times  as specified in ANSgal to specify the type of an identifier more than once.   ^ne 3  * The range of a DO loop may be entered only by execution of a DO  statement. The concept of extended range of a DO as described in ANSI  66 no longer exists and will be trapped by th ^ne 2  There are now more intrinsic functions available than defined in ANSI  66. See Appendix B for a list of these.  ^ne 4  @OTHER CONFLICTS  This section summarizes the other conflicts between ANSI 66 and  ^br  ANSI 77.   * It is ille  ^ne 2  Naming an intrinsic function in a type-statement that conflicts with  the type of the intrinsic function does not remove the function from  the class of intrinsic functions. For ANSI 66, this would have been  sufficient to remove it.   S  There are several features from the full language that have been  included in this implementation for a variety of reasons. Some were  done at either minimal or zero cost, such as allowing arbitrary  expressions in subscript calculations. Othersiables require 4 bytes (32 bits) of storage while INTEGER and  LOGICAL variables only require 2 bytes. This is due to the fact that  the UCSD P-Code supported operations on those types are implemented in  those sizes.    @@FULL-LANGUAGE FEATURE practical way to do so in the UCSD P-Code. The instruction set does  not allow the loading of a procedure's address onto the stack, and  more significantly, does not allow the calling of a procedure whose  address is on the stack.   REAL varNTEGER and REAL data types do  not occupy the same amount of storage. Both differences are due to  limitations of the UCSD P-Code architecture. %  Parametric procedures are not supported simply because there is no tures, and extensions to the Standard. %   @@UNSUPPORTED FEATURES  There are two significant places where Apple FORTRAN 77 does not  comply with the Standard. One is that procedures cannot be passed as  formal parameters and the other is that Iliar with the ANSI  Standard FORTRAN 77 Subset language as defined in ANSI X3.9-1978. It  describes how Apple FORTRAN 77 differs from the standard language.  The differences fall into three general categories, unsupported  features, full-language fea    @@APPENDIX G   @@@APPLE FORTRAN VS. ANSI 77    190 Introduction  190 Unsupported Features  190 Full-Language Features  191 Extensions to the Standard  ^bp  @@INTRODUCTION   This appendix is directed at the reader who is famiG^ were included because it  was felt that they would significantly increase the utility of the  implementation, especially in an engineering or laboratory  application. In all cases, a program which is written to comply with  the subset restrictions will compile and execute, since the full  language includes the subset constructs. A short description of full  language features included in the implementation follows.   ^ne 3  The subset does not allow function calls orin the Efile *SYSTEM.LIBRARY if no Efile name is present, become Ecallable from the currently Ecompiling code. This directive Emust appear before the initial Enon-comment line.  ^ne 3 )$XREF Produce a cross-reference listin ^ne 11 )$USES ident Similar to the USES command in the , [ IN filename ] UCSD Pascal compiler. The already ) [ OVERLAY ] compiled FORTRAN subroutines or EPascal procedures contained in Ethe file filename, or Eimplemented to a depth of nesting Eof five files. Thus, for Eexample, a program may include Evarious files with subprograms, Eeach of which includes various Efiles which describe common Eareas; this would be a depth of Enesting of three files.  N system about the nature of the current compilation. The  set of directives is briefly described below:  ^ne 11 )$INCLUDE filename Include textually the file Efilename at this point in the Esource. Nested includes are ctive line, has been added. It is  characterized by a dollar sign ($) appearing in column 1. Certain  directives are restricted to appear in certain places. A compiler  directive line is used to convey certain compile-time information to  the FORTRAsions to the full  language standard. These are briefly described below.   ^ne 2  Compiler directives have been added to allow the programmer to  communicate certain information to the compiler. An additional kind of  line, called a compiler dire Apple FORTRAN includes the CHAR intrinsic function. CHAR (i) returns  the character in the ith position of the ASCII collating sequence.  %ICHAR(CHAR(i))=i   ^ne 4  @@EXTENSIONS TO STANDARD  The language implemented has several minor exten which takes  additional parameters that are not included in the subset. There is  also a form of the CLOSE statement, which is not included at all in  the subset. I/O is described in more detail in Chapters 11 and 12.   ^ne 4 FORTRAN allows both sequential and direct access files to be  either formatted or unformatted. The subset language requires direct  access files to be unformatted and sequential to be formatted. Apple  FORTRAN also contains an augmented OPEN statementncidentally, does not generate  any extra code to evaluate the leading plus sign. "  ^ne 2  Apple FORTRAN allows an expression for the value of a computed GOTO,  consistent with the full language rather than the subset language.   ^ne 2  Apple  statement. Apple FORTRAN allows expressions in the I/O list of a WRITE  statement providing that they do not begin with an initial left  parenthesis. User note: the expression (A+B)*(C+D) can be specified in  an output list as +(A+B)*(C+D) which, ieger  expression, as does the full language. "  ^ne 2  The subset does not allow expressions to appear in an I/O list whereas  the full language does allow expressions in the I/O list of a WRITE  full integer expressions in DO statement limit computations.  Similarly, arbitrary integer expressions are allowed in implied DO  loops associated with READ and WRITE statements.   ^ne 2  Apple FORTRAN allows an I/O unit to be specified by an int array element references  in subscript expressions, but the full language and this  implementation do. "  ^ne 2  The subset restricts expressions that define the limits of a DO  statement, but the full language does not. Apple FORTRAN also allows g Eat the end of each procedure Ecompiled.  ^ne 4 )$EXT SUBROUTINE name #parms The subroutine or function called 1or name is an assembly language )$EXT [ type ] FUNCTION routine. The routine has exactly 1name #params #params reference parameters.   ^ne 2  The edit control character $ can be used in formats to inhibit the  normal advance to the next record which is associated with the  completion of a READ or a WRITE statement. This is partiO^eF Organick. "FORTRAN 77," (Reading, Mass.: Addison-Wesley Publishing Co., 1980. (  Wagener, Jerrold L. "FORTRAN 77 Principles of Programming," (New York, N. Y.: John Wiley and Sons, 1980.    ^bp  Publishers Inc., 1978. (  Brainerd, Walter S. "FORTRAN 77." Communications of the ACM, (Vol. 21, No. 10 (Oct. 1978).   Katzan, Harry, Jr. "FORTRAN 77," New York, N. Y.: Van Nostrand (Reinhold Company, 1978. (  Meissner, Loren P., and Elliott I.   @@@BIBLIOGRAPHY   ^bp  %The FORTRAN readings suggested here provide information on the full  FORTRAN language.   Brainerd, Walter S., Charles H. Goldberg, and Jonathan L. Gross. ("FORTRAN 77 Programming," New York, N.Y.: Harper & Row (O^ա counterparts. Lower case is significant in character constants and  hollerith fields.  ^bp and returns a logical value which  indicates whether the specified unit is at its end of file. %  ^ne 2  Upper and lower case source input is allowed. In most contexts, lower  case characters are treated as indistinguishable from their upper case cularly useful  when prompting to an interactive device, such as the CONSOLE:, so that  a response can be on the same line as the prompt. %  ^ne 2  An intrinsic function, EOF, has been provided. The function accepts a  unit specifier as an argumentNSION statement  asterisk array dimension 47, 48 "dimension declarator 47 "form 47 direct access files 75, 76, 78, 85 diskettes  formatting 141-143, 160-162 making backups 140-145, 159-163 DO loop range 217 DO statement 70, 71 DO variable6-68 "CONTINUE 71 "DO 70, 71 "END 72 "logical IF 65 "PAUSE 72 "STOP 72     D   DATA statements 37, 38, 52, 53 data type correspondence 118 data types  character 41 integer 40 logical 41 real 40, 41 database 78, 87 DIMEcomputed GOTO statement 64 configuring Apple FORTRAN  multi-drive user 155, 156 "single-drive user 136-138 CONSOLE: 10, 76, 80, 82, 84, 86,  100, 105 CONTINUE statement 71 control statements arithmetic IF 65 "assigned GOTO 65 "block IF 6n 18-26 "sample listing 25  compiler directives 5, 221, 222  $EXT 14, 23, 24, 121 "$INCLUDE 23 $USES 13, 14, 23, 110-113, " 116, 121 $XREF 23, 26 compile-time error messages  172-175 computational assignment statement  54 49, 50 compilation  CODE file 12-15  error messages 20, 21, 26, " 172-175 modules 12, 13  organizing programs 12  partial 12  same name option 20 "separate 13, 113 TEXT file 12, 13 Compiler "input requirements 18 "operatio1 character collating sequence  35, 186 character data type 41, 42 character expressions 60 character set 34, 35 CHARACTER type statement 49 CHARTY subroutine 131 CLOSE statement 78, 83 CODE files 8, 12-15  comment lines 36 COMMON statement 23, BACKSPACE statement 79, 85 bilingual programs 119-122 block IF statement 66-68 BN edit descriptor 86, 94 BUTTON function 133 BZ edit descriptor 94    C   CALL statement 98, 99 Cartesian coordinates 125, 127 CHAR intrinsic function 5, 22rtle Graphics 129, 130 ASMDEMO program 10, 120-122  ASSCII Character Codes Table 186 Assembly language routines  120-122 ASSIGN statement 54, 55 assigned GOTO statement 65 assignment statements  computational 54 label 54, 55    B  59 "type conversions 59  arithmetic IF statement 65 arrays  ANSI 66 vs. ANSI 77 216 assumed size 48 asterisk dimension 47 element name 48 number of dimensions 47 order of elements 48 storage 48, 118 subscript expression 48 Tune 132 "RANDOM function 132 APPLE1 diskette 136-138, 154-156 APPLE2 diskette 136-138, 154-156 APPLE3 diskette 10  arguments  by reference 116 by value 116 arithmetic expressions  integer division 59 operators 58, 59 "result type  A   A edit descriptor 96 ANSI FORTRAN 66 4, 6, 216-218  ANSI FORTRAN 77 4, 6, 216-222  APPLESTUFF unit  BUTTON function 133 "game controls 132, 133 "KEYPRE function 134 "NOTE subroutine 134 "PADDLE function 132, 133 "RANDOI subrouti expression 5  DRAWBL subroutine 129-131    E   E edit descriptor 95 edit descriptors "apostrophe 92  blank interpretation 86, 94 character 96 "dollar sign 86, 93, 222 "Hollerith 93, 216 "integer 95 "logical 96 "nonrepeatable 92-94 "positional 93 "real 95 "repeatable 94-96 "scale factor 94, 95 "slash 93  Editor 138-152, 157-170 ELSE statement 69 ELSEIF statement 69 END statement 22, 37, 38, 72, 99 ENDFILE statement 85 ENDIF statement 69 EOF 5P edit descriptor 94, 95 P-code 8, 18  PADDLE function 132, 133 partial compilation 110, 111 Pascal  FORTRAN interface 8, 116-120 INTERFACE 116 RTFINIALIZE 120 RTINITIALIZE 119, 120 USES 118 Pascal documentation 9, 10  Pascal Operaticope 44, 45 integers 45 keywords 44 local scope 44, 45 undeclared 45 variables 45 notation conventions 34 NOTE subroutine 134    O   OPEN statement 81, 82, 86, 87 operator precedence 62 overlay 14, 15, 23, 113    P   MAINSEGX 110, 112 memory after compilation 26 modules 12, 13  MOVE subroutine 128 MOVETO subroutine 127 multi-drive user  compilation 19  Linker 28 system configuration 155, 156     N   names  common data blocks 45 global srary 29-31 Linker  mapfile 31 operation 28-32, 111 system files used 28 local scope names 44, 45 logical data type 41 logical expressions 61, 62 logical IF statement 65 LOGICAL type statement 49    M   main program 12-15, 98 REWIND 85 WRITE 84 I/O System 74-87  I/O unit number 5 I/O unit specifier 80    J     K   KEYPRE function 134 keywords 44    L   L edit descriptor 96 label assignment statement 54, 55 Lexical Comparisons Table 185 lib183 INTRINSIC statement 51 iolist  defined 80 expressions in 5 formatting 91, 92 implied DO list 81 I/O device  blocked 76 external files 75 I/O statements  BACKSPACE 85, 91 CLOSE 83 ENDFILE 85 OPEN 81, 82 READ 83, 84 INITTU subroutine 124, 125 INITTURTLE 120 integer data type 4, 40 integer division 59 INTEGER type statement 49 internal files 75, 76 intrinsic function 101-105  CHAR 5 EOF 5, 79 placement in statement 216  Intrinsic Functions Table 181-132, 133 global names 44, 45, 100 global symbol table 26 GOTO statements 64, 65 GRAFMO subroutine 125    H   H edit descriptor 93 heap marker 120    I   I edit descriptor 95 identifiers 20, 28 IMPLICIT statement 38, 46 figuring 136-138, 155, 156 system files 138, 156 FUNCTION statement 13, 37, 38,  98-100 functions  calling with I/O statements 79 external 100 formal and actual arguments " 106, 107 intrinsic 101-105    G   game controls n 37 "control 64-72 "DATA 52, 53 "defined 37 "initial line 37 "ordering 37, 38 "specification 45-52 "statement label 36  FORTRAN syntax diagrams 188-209  FORT1:  configuring 136-138, 155, 156  system files 138, 156 FORT2:  con running a compiled program " 151, 167  running a new program 145-151, " 165-167 transferring programs 217, 218 writing a program 151, 152, 168 FORTRAN statement summary 212,  213  FORTRAN statements "assignment 53-55 "continuatiod files 75, 77, 78 formatted I/O 90-96 FORTLIB.CODE 10, 15, 30  FORTRAN  ANSI 66 vs. 77 216-218 Apple unsupported features 220 "Apple vs. ANSI 77 220-222 Pascal interface 8, 116-120 program development facility 2 F   F edit descriptor 95 Filer 138-152, 157-170 files  direct access 5, 75, 76, 78, 85 external 75-77 internal 75, 76 name 75 sequential 5, 75, 77, 79, 85 FILLSC subroutine 127 formal parameters 5 FORMAT statement 37, 90-92 formatte, 79, 222 EQUIVALENCE statement 51, 52 error messages 172-177 expressions  arithmetic 58-60 character 60 logical 61, 62 operator precedence 62 relational 60, 61 external files 75-77 external FUNCTION 100 EXTERNAL statement 50    ng System 2, 3  PAUSE statement 72 pen colors 126 PENCOL subroutine 126, 127 preconnected unit 86 PRINTER: 78 program identifier 20 program input  blanks 36 character set 34, 35 "columns 35 "comment lines 36 "END statement 22 "form 21 "line length 22 "upper and lower case 21, 222  PROGRAM statement 37, 98 program units 37, 98-107    R   RANDOI subroutine 132 RANDOM function 132 READ statement 83, 84 real data type  basic real constant 41 defined 4, 4 VIEWPO subroutine 125    W   WCHAR subroutine 28, 130, 131 WRITE statement 84      6502 Assembly Language 8-10, 18   TURTLY function 128 VIEWPO subroutine 125 WCHAR subroutine 130, 131 TURTLX function 128  TURTLY function 128     U   unconditional GOTO statement 64 unformatted files 75, 78, 79,  85, 87 Unit Identifiers Table 180    V  utine 127 Pascal programs 120 PENCOL subroutine 126, 127 SCREEN function 129 text on screen 130, 131 TEXTMO subroutine 125 TURN subroutine 128 TURNTO subroutine 128 TURTLA function 128 TURTLX function 128 phics  Apple screen coordinates 124 arrays 129, 130 Cartesian graphics 127 CHARTY subroutine 131 DRAWBL subroutine 129-131 FILLSC subroutine 127 GRAFMO subroutine 125 INITTU subroutine 124, 125 MOVE subroutine 128 MOVETO subro 19-21  SYSTEM.WRK.TEXT 18, 19     T   TEXT files 8, 12, 13  TEXTMO subroutine 125 Transcendental Functions Table  184 TTLOUT subroutine 133 TURN subroutine 128 turnkey system 2, 9 TURNTO subroutine 128 TURTLA function 128 Turtle Grastatement label 64, 65 STOP statement 72 subprograms 12-15  SUBROUTINE statement 13, 37, 38,  98-100 subscript expressions 5  symbol table 45 SYSTEM.COMPILER 8, 18, 19  SYSTEM.EDITOR 18, 19  SYSTEM.LIBRARY 8, 10, 14, 29, 111 SYSTEM.WRK.CODE configuration 136-138  specification statements  COMMON 49, 50 DIMENSION 47 EQUIVALENCE 51, 52 EXTERNAL 50 IMPLICIT 46 INTRINSIC 51 SAVE 51 statement ordering 37, 38 type 48, 49 statement function 105, 106 IND statement 85 RTUNIT 8, 10, 15, 29, 110, 119 RUN Command 19  run-time error messages 176, 177    S   SAVE statement 51 SCREEN function 129 sequential files 75, 77, 79, 85 single-drive user  compilation 18, 19  Linker 28 system0  real constant 41 REAL type statement 49 record  endfile 74, 75 formatted 74-78 kinds of 74 unformatted 74-79, 85 recursive subroutine calls 99 relational expressions 60, 61 REMIN 21 RETURN character 38 RETURN statement 99, 106 REW