LnSOS BOOT 1.1 SOS.KERNEL SOS KRNLI/O ERRORFILE 'SOS.KERNEL' NOT FOUND%INVALID KERNEL FILE: xةw,@  ȱlmi8#)!)JBACK1v2' '*LISTA.TEXT 3-CONTENTS.TEXT3k3 ,LISTCON.TEXT3d2 *NEW1X.TEXT"03b ,PREFACE.TEXT; 3l,III.PCL.17u' JBACK12JJBACK2G4JJBACK06Y READ.ME.FIRST" >dLԡm#i㰼m#iЕOLԡȱfg hi !dLԡ憦  Ljmkm l y`2 Lԡ8(Je稽)ʈ@LO^Sՠ A B G^۟ ^zs  ^bp 1  ^fo ''%  ^so jback1:new1x  ^co [FORTRSH:CONTENTS.TEXT]  ^bp  ^sp 4  @@@TABLE OF CONTENTS      @@PREFACE    @@CHAPTER 1   @@@OVERVIEW  "2 Introduction "3 Using This Manual "4 What Is Apple FORTRAN? "4 Apple vs. ANSI 77 Subset F  95 I Integer Editing  95 F Real Editing  95 E Real Editing  96 L Logical Editing  96 A Character Editing  ^bp  @@CHAPTER 13    @@@PROGRAM UNITS "  98 Introduction  98 Main Programs  98 Subrouti92 Apostrophe Editing  93 H Hollerith Editing  93 X Positional Editing  93 / Slash Editing  93 $ Dollar Sign Editing  94 P Scale Factor Editing  94 BN/BZ Blank Interpretation  94 Repeatable Edit Descriptors!85 BACKSPACE !86 ENDFILE !86 REWIND !86 Notes on I/O Operations    @@CHAPTER 12    @@@FORMATTED I/O " !90 Introduction !90 Formatting I/O  91 Formatting and the I/O List  92 Nonrepeatable Edit Descriptors  ormatted vs. Unformatted Files !75 Sequential vs. Direct Access !76 Internal Files !76 Units !77 Choosing a File Structure !79 I/O Limitations !79 I/O Statements !81 OPEN !83 CLOSE !84 READ !85 WRITE IF...THEN...ELSE !68 Block IF !69 ELSEIF !69 ELSE !69 ENDIF !70 DO !71 CONTINUE !72 STOP !72 PAUSE !72 END  ^bp  @@CHAPTER 11    @@@INPUT/OUTPUT OPERATIONS  !74 I/O Overview !74 Records !75 Files !75 Fsions !61 Logical Expressions !62 Operator Precedence    @@CHAPTER 10    @@@CONTROL STATEMENTS   64 Introduction !64 Unconditional GOTO !64 Computed GOTO !65 Assigned GOTO !65 Arithmetic IF !66 Logical IF !66 Block !54 Label Assignment Statement  ^bp  @@CHAPTER 9    @@@EXPRESSIONS   58 Introduction !58 Arithmetic Expressions !59 Integer Division !59 Type Conversions and Result Types !60 Character Expressions !60 Relational Expresatement !49 COMMON Statement !50 EXTERNAL Statement !51 INTRINSIC Statement !51 SAVE Statement !51 EQUIVALENCE Statement  52 DATA Statements !53 Assignment Statements !54 Computational Assignment Statement   @@CHAPTER 8    @@@FORTRAN STATEMENTS  !44 Introduction !44 FORTRAN Names !44 Scope of FORTRAN Names !45 Undeclared Names !45 Specification Statements !46 IMPLICIT Statement !47 DIMENSION Statement !48 Type Stines !36 Statements, Labels, and Lines !37 Statement Ordering !38 The END Statement  ^bp  @@CHAPTER 7    @@@DATA TYPES " !40 Introduction !40 The Integer Type !41 The Real Type !41 The Logical Type !41 The Character Type   @@CHAPTER 5    @@@THE LINKER  !28 Introduction !28 Files Needed !29 Using the Linker    @@CHAPTER 6    @@@PROGRAM STRUCTURE   34 Introduction !34 Character Set !35 Lines !35 Columns !36 Blanks !36 Comment LER 4    @@@THE COMPILER  !18 Introduction !18 Files Needed !19 Using the Compiler !21 Form of Input Programs  21 Lower and Upper Case !22 Line Length and Positioning !23 Compiler Directives !23 Compiler Listing   6502 Assembler !10 The Linker    @@CHAPTER 3    @@@PROGRAMS IN PIECES  !12 Introduction !12 Partial Compilation  13 Source Code in Pieces !13 Object Code in Pieces !14 Units, Segments, and Libraries  ^bp  @@CHAPTORTRAN "6 ANSI 77 vs. Full Language "6 ANSI 77 vs. ANSI 66    @@CHAPTER 2    @@@FORTRAN READER'S GUIDE  "8 Getting Oriented ! 9 Guide to Pascal Documentation ! 9 The COMMAND Level ! 9 The Filer ! 9 The Editor "9nes  99 SUBROUTINE Statement  99 CALL Statement  100 Functions  100 External Functions  101 Intrinsic Functions  102 Table of Intrinsic Functions  105 Statement Functions  106 The RETURN Statement  106 Parameters  (  @@CHAPTER 14    @@@COMPILATION UNITS   110 Introduction  110 Units, Segments, Partial Compilation  111 Linking  112 $USES Compiler Directive  113 Separate Compilation  113 FORTRAN Overlays    @@CHAPT^fo ''%  ^so /p/jback1/contents   O^cK$ndix D: FORTRAN Syntax Diagrams  181 Appendix E: FORTRAN Statement Summary  185 Appendix F: ANSI Standard 66 vs. 77 FORTRAN  189 Appendix G: Apple FORTRAN vs. ANSI 77    @@@BIBLIOGRAPHY    @@@INDEX  ^bp  132 Using the Game Controls  134 Making Music: the NOTE Subroutine  134 The KEYPRE Function    @@@APPENDICES   135 Appendix A: File Name Selection  141 Appendix B: FORTRAN Error Messages  149 Appendix C: Tables  157 AppeGraphics  127 Turtle Graphic Subroutines  128 Turtle Graphic Functions  129 Sending an Array to the Screen  130 Text on the Graphic Screen  131 The Applestuff Unit  132 RANDOM Function/RANDOI Subroutine UNITS   124 The Turtle Graphics Unit  124 The Apple Screen  124 The INITTU Subroutine  125 The GRAFMO Subroutine  125 The TEXTMO Subroutine  125 The VIEWPO Subroutine  126 Subroutines for Using Color  127 Cartesian ER 15    @@@BI-LINGUAL PROGRAMS   116 Introduction  116 Pascal in FORTRAN Main Programs  118 FORTRAN in Pascal Main Programs  119 I/O from Bilingual Programs  120 Calling Machine Code Routines  ^bp  @@CHAPTER 16    @@@SPECIAL been added to Apple FORTRAN.  These extensions make it easier to program, and easier to use FORTRAN  programs interactively. Putting FORTRAN on the Pascal Operating System  has caused two minor language restrictions in FORTRAN which are  discussed bed to FORTRAN programs, and vice  versa.   * Assembly language subroutines can be linked to either Pascal or  FORTRAN programs or both.   There are other advantages. The Pascal Operating System supports a  number of desirable features that have running a given program when the computer is turned on.   * Both the FORTRAN and Pascal languages operate on the same Apple.   * Only one operating system needs to be learned to run either FORTRAN  or Pascal.   * Pascal subroutines can be linkhandler, assembly  language compiler, plus various and sundry utility programs) is  identical to that supplied for Pascal.   * It is easy to make a turnkey FORTRAN system that immediately begins ting the  FORTRAN language on the Apple Pascal Operating System, you get several  distinct programming advantages. For example:   * The complete FORTRAN program development facility (including a text  editor, file handler, code library and library s. ANSI 66   ^bp     @@INTRODUCTION  Apple FORTRAN is a programming language that runs on the Apple Pascal  Operating System. This powerful operating system is general enough to  be able to support languages other than just Pascal. By put ^co [FORMAN1:CHAP1.TEXT]  ^bp 1 ^fo ''%     @@CHAPTER 1    @@@OVERVIEW  2 Introduction "3 Using This Manual "4 What Is Apple FORTRAN? "4 Apple vs. ANSI77 Subset FORTRAN  6 ANSI 77 vs. Full Language "6 ANSI 77 v!#$%&'()*+,-./0123456789A B Y Z B 8 G^*+(elow under Apple vs. ANSI 77 Subset FORTRAN.  The essential difference between the Apple Pascal and Apple FORTRAN  packages is in the Compiler program. There are some other minor  differences that will be discussed later in this manual. The output  code generated by both FORTRAN and Pascal compilers is the same, and  both Pascal and FORTRAN created code files can be handled  interchangeably by the single operating system.  ns were of sufficient interest and generality that in 1977 ANSI  produced another Standard called ANSI FORTRAN 77 to incorporate these  developments. This newer Standard is just coming into wide acceptance  now. It is upon the official ANSI subset of can National Standards Institute (ANSI)  issued a Standard for FORTRAN that helped a great deal to clarify the  language. This is sometimes referred to as ANSI FORTRAN 66. After  that, development of the language continued, and enough of the  additio word FORTRAN for Pascal, and the like.    ^ne 5  @@WHAT IS APPLE FORTRAN?  FORTRAN has been around longer than almost any other high level  programming language. As such, it has been through various stages of  development. In 1966 the Ameri sections have been rewritten  in this manual. In certain other cases, you will be instructed to read  a particular section of the Pascal documentation with "FORTRAN colored  glasses," substituting the name of one disk for another and the e any problem in learning about the Editor, Filer and Linker  because these tools are independent of the programming language used.  ^ne 2  Other parts of the Pascal documentation are specifically directed to  the Pascal language user. Some of those Apple /// Pascal Manuals.  ^ne 2  The Pascal Operating System documentation describes two things: the  program development system and the operating system proper. The  examples in the Pascal documentation are Pascal programs. This will  not pos All those parts of the operating system which are common to both  Pascal and FORTRAN have been put into the documentation for the Pascal  Operating System. In order to learn how to create, edit and run  FORTRAN programs, you must have a copies of they language routines from FORTRAN,  color graphics techniques, and other special Apple features.   ^ne 3  The appendices summarize information given elsewhere in the manual and  provide other useful tidbits.  ^ne 2 ers  details of data types, expressions, statements, I/O considerations,  and the format of programs acceptable to the FORTRAN compiler.  ^ne 3  The remaining chapters, Chapters 15 and 16, discuss linking FORTRAN to  Pascal programs, CALLing assemblze FORTRAN programs efficiently, the input  requiirements of the FORTRAN compiler, and the use of the Linker. The  next major section of this manual, Chapters 6 through 14, contains the  language specifications and description of Apple FORTRAN. It cov System environment. It tells you where to look to find the most  important features in the documentation for the Pascal Operating  System.   ^ne 2  The remainder of the first section of this manual, Chapters 3 through  5, discusses how to organi required to link Pascal and FORTRAN programs  together, or to link FORTRAN and Assembly language programs.   ^ne 5  @@USING THIS MANUAL  The next chapter discusses using FORTRAN in the Pascal Operating d store files on disks.   * Use the FORTRAN compiler to translate text files into code files.   ^ne 3 * Use the Linker, if necessary, to combine code files into one executable code file.  * Execute the program.   ^ne 2  Additional steps are ^ne 3  The program development system consists of the Editor, Linker, and  Filer and some other utility and library programs. The sequence of  program development is:   * Use the Editor to write FORTRAN programs.   * Use the Filer to fetch anthe ANSI FORTRAN 77 full  language that Apple FORTRAN is based. FORTRAN continues to grow and to  find new environments, so that almost every implementation of FORTRAN  has some features which are unique to the particular processor being  used. Apple FORTRAN is no exception.   ^ne 3  For this reason, it is important for users familiar with other  versions of FORTRAN to get a clear view of how Apple FORTRAN compares  with other varieties. There are three questions that need to be These extensions are the  Compiler Directives which have been added to allow you to transmit  certain information to the FORTRAN compiler. An additional kind of  line, called a Compiler Directive Line, is recognized by the compiler  to enable it to cribed in more detail  in Chapter 11.  ^ne 2  * CHAR intrinsic function - Apple FORTRAN includes the CHAR intrinsic  function.  ^ne 2  In some cases Apple FORTRAN has features that are not anywhere in the  ANSI Standard, subset or full langugage. sequential files to be formatted. The OPEN statement has been  augmented to accept additional parameters from the full language that  are not included in the subset. The CLOSE statement, which is not  included in the subset, is provided. I/O is des 2  * Generalized I/O - Apple 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 requires C+D) to circumvent this  problem. Incidently, this does not generate any code at run time to  evaluate the leading plus sign. "  ^ne 2  * Expressions in computed GOTO - Apple FORTRAN allows an expression  for the value of a computed GOTO. "  ^ne  * Expressions in I/O list - Apple FORTRAN allows expressions in the  I/O list of a WRITE statement, provided that they do not begin with a  left parenthesis. Note that expressions such as: (A+B)*(C+D) can be  specified in an output list as +(A+B)*( limit computations. Similarly, arbitrary integer expressions in  implied DO loops associated with READ and WRITE statements are  allowed. "  ^ne 2  * Unit I/O Number - Apple FORTRAN allows an I/O unit to be specified  by an expression. "  ^ne 2ns.   ^ne 2  * DO Variable Expressions - The subset restricts expressions that  define the limits of a DO statement, but the full language does not.  Apple FORTRAN also allows full integer expressions in DO statement RAN allows that are in the  full ANSI FORTRAN language specification, but not in the subset. These  are:  ^ne 2  * Subscript Expressions - Apple FORTRAN and the full ANSI 77 language  allow function calls and array references in subscript expressioonzero REAL constants must fall  within the range of approximately 5.8E-39 and approximately 1.7E+38.   ^ne 3  * Subprogram names cannot be passed to other subprograms as formal  parameters.   ^ne 3  There are some capabilities which Apple FORT ANSI says they must be the same. REAL data types are given 4 bytes of  storage whereas INTEGER and LOGICAL data types are given 2 bytes. This  means for INTEGER data, the range of numbers representable is from  -32768 to +32767. The magnitude of nses goes beyond the Standard.  ^ne 2  In two instances Apple FORTRAN does not conform to ANSI subset  FORTRAN:   * INTEGER and REAL data types do not use the same amount of memory.  @APPLE VS. ANSI 77 SUBSET FORTRAN  ^zz  While Apple FORTRAN conforms largely to the ANSI Standard subset,  there are some small differences. It does not support some features,  takes some others from the full language specification, and in some  ca answered:   * How is Apple FORTRAN different from ANSI Standard subset FORTRAN 77?   * How is the ANSI subset different from the full language?   * How is ANSI 77 different from ANSI 66?   We will now treat each of these in turn.  ^ne 4 receive this information. See Chapter 4 for a  description of these statements. Also, Apple FORTRAN includes the EOF  intrinsic function.  ^ne 5  @ANSI 77 VS. FULL LANGUAGE ^zz  To help make clear what features are available in the ANSI Standard  subset, two appendices that summarize the subset have been included in  this manual. Appendix D shows the syntax diagrams for the complete  subset, along with those things which are INC. OR SILICON VALLEY SOFTWARE INC. BE LIABLE FOR DIRECT, INDIRECT,  INCIDENTAL, OR CONSEQUENTIAL DAMAGES RESULTING FROM ANY DEFECT IN THE  SOFTWARE, EVEN IF APPLE COMPUTER INC. OR SILICON VALLEY SOFTWARE, INC.  HAS BEEN ADVISED OF THE POSSIBILITY OON VALLEY  SOFTWARE INC., ITS DISTRIBUTOR, OR ITS RETAILER) ASSUMES THE ENTIRE  COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION AND ANY  INCIDENTAL OR CONSEQUENTIAL DAMAGES. IN NO EVENT WILL APPLE COMPUTER AND SILICON VALLEY SOFTWARE INC. SOFTWARE IS SOLD  OR LICENSED "AS IS". THE ENTIRE RISK AS TO ITS QUALITY AND PERFORMANCE  IS WITH THE BUYER. SHOULD THE PROGRAMS PROVE DEFECTIVE FOLLOWING THEIR  PURCHASE, THE BUYER (AND NOT APPLE COMPUTER INC., SILICOFTWARE INC. MAKE NO  WARRANTIES, EITHER EXPRESS OR IMPLIED, WITH RESPECT TO THIS MANUAL OR  WITH RESPECT TO THE SOFTWARE DESCRIBED IN THIS MANUAL, ITS QUALITY,  PERFORMANCE, MERCHANTABILITY, OR FITNESS FOR ANY PARTICULAR PURPOSE.  APPLE COMPUTER INC.^pi 2  ^zs  NOTICE   Apple Computer Inc. reserves the right to make improvements in the  product described in this manual at any time and without notice.    DISCLAIMER OF ALL WARRANTIES AND LIABILITY   APPLE COMPUTER INC. AND SILICON VALLEY S:<=>?@ABCDEFA B G^*˦oollerith data type, are discussed  in Appendix F. Additional capabilities were added to ANSI 77, and  undefined areas in ANSI 66 were clarified. ^bp specific to Apple FORTRAN.  Appendix E gives a list of all statements in the subset and their  syntax.  ^ne 5  @ANSI 77 VS. ANSI 66  ^zz  The differences between ANSI FORTRAN 77 and ANSI FORTRAN 66, such as  the fact that ANSI 77 deleted the HF SUCH DAMAGES. SOME STATES DO  NOT ALLOW THE EXCLUSION OR LIMITATION OF IMPLIED WARRANTIES OR  LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE ABOVE  LIMITATION OR EXCLUSION MAY NOT APPLY TO YOU. !  This manual is copyrighted. All rights are reserved. This document  may not, in whole or part, be copied, photocopied, reproduced,  translated or reduced to any electronic medium or machine readable form  without prior consent, in writing, from Apple Computer Inc.  &1983 by APPLE COMPUJBACK2v4' '*NEW2X.TEXTI 4k6 G+NEW3BX.TEXTZ 4k$ G+NEW3AX.TEXTk 4aG*NEW4B.TEXTv05k7 G*NEW5X.TEXT 5k G*LISTA.TEXTn indication that the  associated product or service has met quality assurance standards  prescribed by the University. Any unauthorized use thereof is  contrary to the laws of the State of California.   ^bp  lifornia  at San Diego under the direction of Kenneth L. Bowles.   "UCSD Pascal" is a trademark of the Regents of the University of  California. Use thereof in conjunction with any goods or services is  authorized by specific license only and is a)R TM  The Apple Pascal System incorporates UCSD Pascal and Apple extensions  for graphics and other functions. UCSD Pascal was developed largely by  the Institute for Information Science at the University of CaN is based is:  ANSI X3.9-1978, American National Standard Programming Language FORTRAN  which is available from: American National Standards Institute, Inc.,  1430 Broadway, New York, New York 10018  ^bp   ACKNOWLEDGEMENTS  ual To familiarize you with the Pascal Operating System, this Fortran manual refers you to "Pascal documentation." These manuals are the Pascal manuals included with your Apple /// Pascal System.  ^ne 2  The published Standard on which Apple FORTRAith this more recent  version of FORTRAN.   * Provide you with the complete language specification of Apple  FORTRAN.  The complete Apple FORTRAN documentation includes one other manual:   * Apple Language System Installation and Operation Man * Acquaint you with the Apple FORTRAN operating environment on the  Apple ///. FORTRAN uses the Apple Pascal Operating  System.   * Introduce you to the principal differences between ANSI FORTRAN 77  and ANSI FORTRAN 66, if you are not familiar wo the full language over the  previous standard, ANSI FORTRAN 66.  The purposes of this manual are:   * Acquaint you with Apple FORTRAN's differences and extensions to  standard FORTRAN 77.  atures of  the full language not included in the standard subset. Apple FORTRAN  also has features that are the result of the unique operating  environment of the Apple. The ANSI standard subset itself includes  most of the important revisions made ter. Apple FORTRAN conforms to the  American National Standard FORTRAN subset, also known as ANSI subset  FORTRAN 77.   Apple FORTRAN contains features which are extensions to the ANSI  standard subset. For instance, it incorporates a number of fe APPLE COMPUTER INC.   ^bp       8APPLE /// FORTRAN   REFERENCE MANUAL  ^bp ^zs  @@@PREFACE  This manual describes the Apple FORTRAN programming language for the  Apple /// computTER INC. &20525 Mariani Avenue &Cupertino, California 95014 &(408) 996-1010  1980 by SILICON VALLEY SOFTWARE INC. &1531 Sandpiper Drive &Sunnyvale, California 94087    The word APPLE and the Apple logo are registered trademarks of 5aG*NEW4A.TEXT(6k& GA B Y Z A AG^| P-code. Both the FORTRAN and Pascal compilers generate P-code, they  don't generate the native 6502 machine code of the Apple. The P-code  produced by the compilers is executed by a P-code interpreter, which  translates P-code instructions into the is the File Selection error file FORTRAN.ERRORS contains all the Compiler and Run-Time errors  ^ne 2  * The Pascal documentation makes references to Pascal Pseudo-code NC) must be in the SYSTEM.LIBRARY file along with REALMODES AND TRANSCEND. FORTRAN has three associated files all of which must be located in the same subdirectory: & %FORTRAN.LIB is the Compiler Library SOS.ERRORS ich is executed from within the Apple /// Pascal environment. It is not a stand-alone  bootable system and to use it, the Pascal system must first be loaded. All the Pascal files are untouched except that the FORTRAN run-time units (FORTIO and FORTFU not suffice. All those cases are discussed in this chapter.   Here are some observations about the relationship between the Pascal  and FORTRAN languages on the Pascal Operating System:   ^ne 2  * Apple /// FORTRAN is an applications program whs and disk names  for operating with Pascal. For FORTRAN, the only interpretation  required in most cases will be the substitution of disk names, and  the word FORTRAN for Pascal. There are some instances when this will help you interpret those  manuals in terms of FORTRAN.   The Pascal documentation gives a complete description of the Editor,  Filer, Linker, and numerous other aspects of the operating system. The  documentation necessarily gives program example As we mentioned previously, this manual should be used with whichever  Pascal manual you have to get the complete picture of how to use Apple  FORTRAN. The two purposes of this chapter are to give you a list of  things to read in those manuals, and to   @@CHAPTER 2    @@@FORTRAN READER'S GUIDE   8 Getting Oriented "9 Guide to Pascal Documention "9 The COMMAND Level "9 The Filer "9 The Editor  9 6502 Assembler !10 The Linker ^bp    @@GETTING ORIENTED  HJKLMNOPQRSTUVWXnative machine code of the  Apple. This allows both FORTRAN and Pascal to run on the Pascal  Operating System.   ^ne 2  * There are two fundamental kinds of disk files that the operating  system uses: TEXT and CODE. TEXT files are in human-readable format,  CODE files are machine-readable. TEXT files are just streams of  characters, whether they are English, FORTRAN or whatever. CODE files  are what the FORTRAN and Pascal compilers generate from reading  FORTRAN or Pascal language TEXT fileto manipulate libraries. The structure of libraries is the same, but the content of the SYSTEM.LIBRARY is slightly different in FORTRAN.  ^ne 3  Those using the Librarian should also read the section Library Mapping  which describes a program that anual on the System Librarian should be read by those who will be creating, augmenting or altering library files. There is a main library called SYSTEM.LIBRARY. Both Pascal and FORTRAN use the same Librarian program eparation Tools manual.   ^ne 5  @UTILITY PROGRAMS  ^zz  The procedure for Formatting Disks is discussed in the Utilities  Diskette section of the Apple /// Owner's Guide.   ^ne 2 The section in the Apple /// Pascal Program Preparation Tools mcutable CODE file. Most of the time, FORTRAN programs do not require linking. There are some exceptions and these are discussed in Chapter 5, The Linker in this manual. The procedure for using the Linker is detailed in the Apple /// Pascal Program Pr few lines of code to work with FORTRAN. Program ASMDEMO with the  changes required by FORTRAN is shown in Chapter 15 of this manual.   ^ne 5  @THE LINKER  ^zz   ^ne 2  The Linker combines separately compiled CODE files together into one exe discusses how to write and link such subroutines.  However, the example host program given at the end of the chapter is  in Pascal. The assembly language program ASMDEMO requires changes to a  ^bp ing for writing FORTRAN programs as well as Pascal programs.    ^ne 5  @6502 ASSEMBLER  ^zz  It is possible to have a FORTRAN program call assembly language  subroutines. The chapter on the 6502 Assembler, of whichever Pascal  manual you have,ion, Filer, Editor manual.  ^ne 4  @THE EDITOR  ^zz  Same as above for Editor applications.   ^ne 3  In the section Text Changing Commands, under I(nsert - Inserting with  A(uto-indent TRUE, F(illing FALSE, note that this is the normal  settmanual for all applications.  Information on creating a turnkey program is included in the Apple /// Pascal Program Preparation Tools manual.  ^ne 6  @THE FILER  ^zz  For all applications of the Filer, refer to the Apple /// Pascal - IntroductRead  the introductory sections of whichever manual you have to get an  overview of the Pascal Operating System.   ^ne 5  @THE COMMAND LEVEL  ^zz Read the sections of the Apple /// Pascal - Introduction, Filer, Editor    ^ne 5  @@GUIDE TO PASCAL DOCUMENTATION   What follows is a reading guide to the Pascal Operating System  documentation, suggesting what you should read for various FORTRAN  applications, and making specific substitutions and rewordings. f, it is possible for you to  change any file to have any suffix. Some care should be taken  ^ne 2  to make sure that files with text have a .TEXT suffix, and files with  code have a .CODE suffix. * FORTRAN recognizes SOS and Apple][ formatted disks. has a .CODE suffix or a .LIBRARY suffix. Files with a .CODE suffix are  assumed to have a particular inner organization that allows system  programs to manipulate them in appropriate ways. While the system  generally takes care of the suffixes itsels. Files that have names ending  with the suffixes .TEXT and .CODE are treated specially by the  operating system. For instance, the Editor will only allow you to edit  a file that has a .TEXT suffix. The Linker will only link a file that allows you to view the contents of any  library.   ^bp ion process is the compilation  of the main program that uses the subprograms. A PROGRAM statement  informs the compiler that it is compiling a main program. A $USES  statement must precede the PROGRAM statement before any executable  statement. The will describe just what is in the  CODE file. This linker packet will also include  ^ne 2  details about the subprograms in the compilaton unit such as their  type, number of arguments and so on.   ^ne 2  The second step in the separate compilat statement. The compiler then proceeds to compile the subprograms. When  it has successfully compiled the subprograms, the compiler will write  out a CODE file containing both the code of the compiled program, as  well as a packet of information thatngle TEXT file  may actually contain more than one complete subprogram, if desired.  When the compiler begins, it sees that there is no main program  included, because the first statement is a SUBROUTINE or FUNCTION ent TEXT files, all the pieces must be supplied to  the compiler so as to make at least one complete subprogram.   ^ne 2  In the simplest case, separate compilation is done in two steps as  follows. First, each of the subprograms is compiled. A sibprograms independently from the main program is called separate  compilation.   ^ne 2  A complete subprogram can still be broken down into different TEXT  files, if desired. The point is that no matter how the subprogram is  spread across differ  ^ne 5  @OBJECT CODE IN PIECES ^zz  If the source code in a TEXT file is a complete subprogram, it can be  compiled separately instead of being included in the compilation of the  whole program to which it belongs. The technique of compiling  suY[\]^_`abcdefghiH^ $USES statement tells the compiler that subprograms in  the CODE file named in the $USES statement are required in the main  program. The compiler then looks up the named file and reads in the  names of all subprograms and their descriptions. The compiler is then  able to compile any references to these subprograms that the main  program may make. The $USES statement is described in more detail in  Chapters 4 and 14.   ^ne 3  If no $n program to use the same subprogram. Usually, these  subprograms are placed in a common CODE file, using the library utility program, LIBRARY.CODE on /PASCAL3/. Such a CODE file is then termed a CODE library. This is described in Chapter 14. There irams. It becomes an OVERLAY unit when it is named in a $USES  statement that includes the word OVERLAY. See Chapter 14 for the  details of this usage.   ^ne 2  The ability to separately compile subprograms makes it possible for  more than one mai is terminated, the space used for the unit is returned to the pool of  available memory.   ^ne 2  An OVERLAY unit must have been separately compiled in advance of use.  It is compiled in the manner described above for separately compiled  subprogecutes a  function call in an expression that refers to a subprogram in an  OVERLAY unit. Then the whole unit is brought into memory and the  appropriate subprogram is executed. When execution of the subprogram When the program is loaded into memory prior to  execution, the OVERLAY units are not loaded, but remain behind in the  CODE file or in SYSTEM.LIBRARY. They remain out of memory until the  main program executes a CALL statement for a subroutine or exins the code for the main program  as well as the code for the subprograms.   ^ne 2  The purpose of OVERLAY units is to be able to split up programs that  would otherwise be too big for memory. An OVERLAY unit is normally not  resident in memory. There are two principal ways of using compilation units, as regular  units or as OVERLAY units. When regular units are linked into a main  program, the subprograms in the unit are actually copied into the  ^ne 2  resulting CODE file which then contalation unit. The term  compilation unit is not to be confused with the FORTRAN concept of an  I/O unit. An I/O unit refers to a particular input/output device; a  compilation unit is a part of a CODE file.   ^ne 2 n Chapter 14.   ^ne 5  @@UNITS, SEGMENTS AND LIBRARIES  A group of one or more subprograms, when compiled together, form what  is called a compilation unit. When a subprogram is separately compiled,  the CODE file which results contains a compiS statement in the  Pascal language compiler called the USES statement that enables FORTRAN  programs and Pascal programs to be linked. The actual use of the  Linker is discussed in Chapter 5. More complex uses of the $USES  statement are discussed i When the main program and separately compiled subprograms are to be  linked into one executable CODE file, you must tell the Linker all the  files that make up the one executable program.   ^ne 2  There is a companion facility to the FORTRAN $USE^ne 3  O.K., that's the simple case. It is possible to do a variety of things  with this mechanism, including having separately compiled subprograms  called from other separately compiled subprograms.   ^ne 2 eparately compiled subprogram into the main program CODE file it  is currently generating. Instead, it generates a packet of information  that will tell the Linker how to couple the subprograms into the main  program during the linking process.   USES or $EXT statement is encountered by the FORTRAN compiler  then the compiler will expect to find the entire program in the current  TEXT files being compiled.  ^ne 2  Note that the FORTRAN compiler does not incorporate the actual code of  the ss a CODE library that comes with your system named SYSTEM.LIBRARY. It contains a variety of compilation units such as units of run-time routines required by most running FORTRAN programs, called FORTIO and FORTFUNC. In addition, it contains routines to do color graphics, and a variety of other things. You may put your own "homebrewed" compilation units into this library, too!  ^bp   ^bp  once, then stored in a library for later use.   * Many useful subprograms have been written for you and included in  the system library. They may be used directly in your programs.   * Procedures written in Pascal and Assembly language can be linceptually into sections which can  be developed independently and later combined, thereby speeding their  development by focusing attention on one problem at a time.   * Subprograms that can be used in many programs need only be written les. These modules can then be developed by themselves, and  perhaps even be used in more than one program. The ability to treat  blocks of code as modules has several advantages over writing one  large program:  * Large tasks may be broken down co a variety of ways that allow you to optimize  the stages of writing and organizing programs. One of the most  important is that for large programming tasks you can remove groups of  subprograms from the main program and put them into individual  modu   @@CHAPTER 3    @@@PROGRAMS IN PIECES   !12 Introduction !12 Partial Compilation !13 Source Code in Pieces !13 Object Code in Pieces !14 Units, Segments, and Libraries   ^bp    @@INTRODUCTION  The FORTRAN system hasjlmnopqrstA B Y Z G^Knked to  FORTRAN language main programs.   * Several very efficient methods of handling subprograms are available  in the operating system. These methods help make the size of compiled  programs smaller, so that the storage capacity of either the disk or  the computer's memory is not exceeded by a large program. These  methods are discussed more fully later on in this chapter.  Sectioning programs is what makes it possible to treat blocks of code  as modules. While this is an extremely usefuluwxyz{|}~A B Y Z G^R)e $INCLUDE statement in Chapter 4.  e program at once. Secondly, it means that  different tasks of a program can appear in separate TEXT files. This  helps keep program structure and organization clear. For more  information on dividing programs into modules, see the discussion of  than't split up statements) and that the whole  collection of files, when reassemled by the compiler, must still make  up a complete FORTRAN program.   ^ne 2  Dividing a program into modules can serve two purposes. First, you  need not edit an entir special statements are entered in the program which cause the FORTRAN  compiler to include the separate files in the compilation at the  correct point.   ^ne 2  The only restrictions are that you must break the program at line  boundaries (you cll be discussed  next.   ^ne 5  @SOURCE CODE IN PIECES  ^zz  It is possible for any part of a program to be split up and placed in  different TEXT files. In place of the part of the program removed, three levels where programs can be broken into modules: the  source code level, the object code level, and the code image level  while the program is running. Each level has distinct purposes. These  purposes and the advantages of using each level wile, called the object  code, which contains the entire program and is stored on the disk.  When the program is to be executed, it is all loaded in memory at once  and started. A program loaded in memory is called a code image.   ^ne 2  There are  A FORTRAN program consists of one main program and its appropriate  subprograms. In the simplest case, the main program and any  subprograms appear in the same TEXT file, called the source code, and  are compiled at one time. The result is a CODE fi capability, it  introduces some complexities. The purpose of this chapter is to  explain the use of the features of the Apple Operating System.     ^ne 5  @@PARTIAL COMPILATION    ^ne 5  @@FORM OF INPUT PROGRAMS  FORTRAN source programs will usually be prepared using the Editor. The  FORTRAN system will process them regardless of their means of  preparation, however, providing they are in valid TEXT format. For  ins before any  specification or executable statement, but otherwise have no  restrictions on placement or order. These directives are: %  ^ne 4  $INCLUDE filename   To facilitate the manipulation of large programs, the Apple compiler  has extend column 1 of such compiler  directive lines.   ^ne 2  Some of these directives are restricted to certain locations in the  text. Specifically, the $INCLUDE statement may occur anywhere a  comment line may appear. The other directives must appear information to the compiler via the text of the file being compiled.  To this end, Apple FORTRAN recognizes another kind of line, besides  comment lines, initial and continuation lines, called a compiler  directive line. A dollar sign ($) appears inor  Apple FORTRAN allow comments following the final END statement of a  program.   ^ne 5  @@COMPILER DIRECTIVES  Compiler directives provide you with a way of communicating certain cked for unintentional line truncations. But  it's far better to avoid the truncations in the first place.   ^ne 2  Source lines that are empty or completely filled with blanks are  treated as comment lines by FORTRAN 77. Neither ANSI FORTRAN 77 nn-time error, however, or simply cause some strange behavior in your  program.  ^ne 2  The FORTRAN compiler can produce a listing of the program source that  it compiled. The listing reflects the columns read by the FORTRAN  compiler and can be che of character constants.   ^ne 2  Lines longer than 72 columns are truncated to 72 columns. No error  message is generated by characters appearing beyond column 72 unless  this truncation introduces some syntax error. It may later generate a  rue.   ^ne 2  The fact that shorter lines are not padded out with blanks means that  character constants that are split across lines will not end up with a  lot of blanks in them. See Chapter 7 for a discussion of the treatment blanks. Text  beyond column 72 is ignored. FORTRAN reserves the first 6 columns to  represent whether the line is an initial or continuation line.  Columns 1 through 5 are for a label, and a nonblank character in  column 6 denotes a continuation lintants may be specified in either upper or lower case. Example:  OPEN(1,FILE='*Bats').   ^ne 5  @LINE LENGTH AND POSITIONING ^zz  Apple FORTRAN allows lines of text to be up to 72 columns wide.  Shorter lines are not padded out to 72 columns with  and open all stand for the same FORTRAN keyword.   ^ne 2  * In character constants, the exact letters provided by the user are  passed directly through the system.   ^ne 2  * Options to I/O statements which have the syntax of character  consxture  of upper and lower case with the following convention:   ^ne 3  * No distinction is made between upper and lower case to represent  FORTRAN keywords or defined symbols in a program. Example: oPeN, OPEN, n the Pascal documentation.  Source programs must be TEXT files and must be passed to the Compiler  from a blocked file device (i.e., a diskette).  ^ne 5  @LOWER AND UPPER CASE ^zz  Apple FORTRAN accepts both upper and lower case input, or any mitance, a FORTRAN program from another processor can be transferred  to the Apple over the REMIN: remote input port. The Filer's T(ransfer  command can be used to copy text arriving via REMIN: into a diskette  file. See the information on the Filer ied the FORTRAN 77 standard with an $INCLUDE compiler  directive. The directive must have the $ appearing in column 1. The  meaning is to compile the contents of the file 'filename' before  continuing with the current file. The included file may contain  additional $INCLUDE directives, up to a maximum of five levels of  files (four levels of $INCLUDE directives). It is often useful to have  the description of a COMMON block kept in a s( + +18. 0 SUBROUTINE INIT(B,D) +19. 0 INTEGER B(10,10) +20. 0 CHARACTER*4 D +21. 0 +22. 0 RETURN +23. 2 END ( (B INTEGER 2* 18 19 (D CHAR* 4 1*(C CHAR* 4 103 9 11 (EX1234 PROGRAM 6 (I INTEGER 105 12 13 13 14 14 15 (IABS INTRINSIC 15 (INIT SUBROUTINE 2,FWD 11 (***** Error number: 57 in line: 13 (Too few subscripts +14. 20 I = I + 1 +15. 26 IF (IABS(10-I) .NE. 0) GOTO 200 +16. 37 +17. 37 END ( (A INTEGER 3 8 11 13 0 ,6. 0 PROGRAM EX1234 ,7. 0 ,8. 0 INTEGER A(10,10) ,9. 0 CHARACTER*4 C +10. 0 +11. 0 CALL INIT(A,C) +12. 6 I = 1 +13. 9 200 A(I) = I ort (another ESCAPE) or continue (RETURN). A sample compiler listing follows.   ^bp  SAMPLE COMPILER LISTING: (Apple /// Fortran Compiler [A3/1.03] ,0. 0 C ,1. 0 C --- Example Program #1234 ,2. 0 C ,3. 0 ,4. 0 $XREF ,5.ne numbers,  symbol tables, and error messages. Also, cross reference information  is listed if the $XREF compiler directive is specified. The compiler can be interrupted by pressing ESCAPE. A message is displayed which gives the user the option to ab unit, but not both.    ^ne 5  @@COMPILER LISTING  The compiler listing, if requested, contains various bits of  information that may be useful to the FORTRAN programmer. The listing  consists of the user's source code as read, along with li parameters.  $EXT for a given name should occur only once in a compilation. If a  program and a unit called by that program both use a given assembly  ^ne 2  language routine, the $EXT should only occur in the program or the s-reference listing of the compilation.    ^ne 5  $EXT SUBROUTINE name #params  $EXT [type] FUNCTION name #params   The subroutine or function specified by 'name' is an assembly language  routine. The routine has exactly '#params' referenceght into memory  during execution only while being referenced from the main program,  ^ne 2  instead of having the code added to the CODE file of the host program.  See Chapter 14 for more information on $USES. %  ^ne 3  $XREF   Produces a cros SYSTEM.LIBRARY if no file name is present, become defined and  available to the currently compiling program. This directive must  appear before the first non-comment input line. The optional OVERLAY  statement is used if the named unit is to be brous the program  being compiled to refer to that separately compiled code. The named  file must be a CODE file. The separately compiled FORTRAN subroutines  or Pascal procedures contained in the named file, or in the file a source file. An $INCLUDE can appear anywhere a  comment line is legal.    ^ne 4  $USES ident [IN filename] [OVERLAY]   The $USES statement has the effect of making separately compiled  subprograms known to the FORTRAN compiler. This allowingle file and to include  it in each subroutine that references that COMMON area, rather than  making and maintaining many copies of the same source, one in each  subroutine. There is no limit to the number of $INCLUDE directives  that can appear in 18 20 (INIT SUBROUTINE 2 18 ( ( (EX1234 PROGRAM (INIT SUBROUTINE 2,7 ( (24 lines. 1 errors. (Smallest available space = 3966 words.   ^ne 2  The first line indicates which version of the compiler was used for this compilation (version 1.03 in this example). The leftmost column of numbers is the source line number. The next column indicates the procedure relative instruction counter that A B Y Z glG^˞emory space becomes less than  700 to 1000 words, the symbol table is nearly full, since some of the  memory pool is used for other purposes during the compilation of  executable statements.  ^bp e 2  The last line shows the maximum amount of RAM used, recorded at the  first executable statement of each program unit. This can be used as  an indication of the amount of memory that remains available for  additional symbols. When the available m contains all global FORTRAN symbols referenced in the compilation. No  cross reference is given. The number of source lines compiled and the  number of errors encountered follows. If there were any errors, then  no object file is produced.   ^nat it will reside in the same  segment, but has not appeared yet, it is listed as a forward program  unit by the notation FWD.   ^ne 2  At the end of the compilation the global symbol table is printed. It e 2  If the identifier is not a variable, it is described appropriately.  For subroutines and functions, the unit relative procedure number is  given. If it resides in a different segment, then the segment number  follows. If the compiler assumes thpe and  location. If the variable is a parameter, its location is followed by  an asterisk, such as the variables B and D in the SUBROUTINE INIT. If  the variable is in a common block, then the name of the block follows  between two slashes.   ^n their definition. If the $XREF compiler directive has been issued, a  table of all lines containing an instance of that identifier in the  current program unit is also printed.   ^ne 2  If the identifier is a variable, it is accompanied by its ty).   ^ne 2  At the end of each program unit (function, subroutine, or main  program), a local symbol table is printed. This table lists all  identifiers that were referenced in that program unit, along with sks followed by the error number, line number, and error description as appears in the example between lines 13 and 14. In this case it is error number 57, "Too few subscripts", indicating that there are not enough subscripts in the array reference A(I the corresponding line of source code occupies as object code. It is only meaningful for executable statements and data statements. To the right of the instruction counter is the source statement.   ^ne 2  Errors are indicated by a row of asteriAgain, the Linker looks first for the exact filename that you type, and if the search was unsuccessful, adds the suffix .CODE and looks again. In any case, it always displays the name of the file actually opened. The Linker will continue to prompt youe boot disk. This is never done for  FORTRAN programs because the FORTRAN run-time routines will be loaded automatically from SYSTEM.LIBRARY during their execution.   ^ne 2 Enter the names of the CODE files (if any) that your program requires. either a  library file or a single compilation unit. The Linker treats them in  exactly the same way. Typing * and then pressing the RETURN key in  response to a request for a library file name will cause the Linker to  reference SYSTEM.LIBRARY on thlly finding a host file, the Linker then asks for the  name of the first CODE file containing separately compiled subprograms  that are to be linked to the main program. ( (LIB FILE?  ^ne 2  There are two kinds of files that can be supplied here, /MYDISK/MYFILE the Linker returns the message  'NO FILE /MYDISK/MYFILE.CODE   ^ne 2  You'll also notice that when the Linker reports information about a  file it always displays the full name, including the disk name.   ^ne 5  After successfu the Linker cannot find a file with the  exact filename you typed, it adds the suffix .CODE to the filename, if  the suffix was not specified originally, and tries again. For this  reason, if you respond by typing the non-existent filename subprograms are  to be linked. If you just press the RETURN key in response to the  prompt, the Linker uses the boot disk's workfile SYSTEM.WRK.CODE  as the hostfile. If your main program is not in the workfile, enter  the filename containing it. If  ^ne 7  Start the Linker by typing L for L(ink from the COMMAND level prompt  of the FORTRAN system and receive the prompt:  (LINKING...   LINKER II.1 [A4] (HOST FILE?   ^ne 2  The hostfile is the main program CODE file into which %Host codefile Any file, any subdirectory. Default is boot  UNDEFINED (TYPE (CONTINUE), (TERMINATE)    ^ne 4  s no mapfile to be  written. The mapfile is a diagnostic and system programming tool, and  is not required for most uses of the Linker.  ^ne 3  The Linker now reads all the CODE files presented and begins the which contains a text version of what the Linker did to link the CODE  files. Note that the suffix .TEXT is appended to the specified  filename unless a period is the last lr of the filename. Normally  you will simply press the RETURN key. This causelevant library file names have been entered, answer the  next LIB FILE? prompt by just pressing the RETURN key to proceed. The  Linker will now prompt with:  (MAP NAME?  ^ne 2  If you respond by typing a file name, the Linker writes a mapfile   If you specify a library file that does not contain the proper  information, you may get one of these messages:   BAD SEG KIND (Is this really a Pascal or FORTRAN program?) (BAD SEG NAME (Is this a text file ?)   ^ne 5  When all rem. The file SYSTEM.LIBRARY on /PASCAL1 was created with  this program. For information on LIBRARIES and the LIBRARIAN see the  documentation for the Pascal Operating System in the Utility Programs  Section.   ^ne 5  ^co [FORMAN2:CHAP7.TEXT]    @@CHAPTER 4    @@@THE COMPILER   !18 Introduction !18 Files Needed !19 Using the Compiler !21 Form of Input Programs !21 Lower and Upper Case !22 Line Length and Positioning !22 Compiler DirecA B Y Z  # G^^zs  ^fo ''%  ^so jback2:new2x  ^so jback2:new3ax  ^so jback2:new3bx  ^he '''The Compiler  ^so jback2:new4a  ^so jback2:new4b  ^he '''The Linker  ^so jback2:new5x  tives !23 Compiler Listing  ^bp     @@INTRODUCTION  This chapter details the input requirements of the FORTRAN compiler  and describes its operation.  All input source files read by FORTRAN must be .TEXT files. This  allows the compiler to read large blocks of text from a disk file in a  single operation, increasing the compile speed significantly. The  simplest way to prepare .TEXT files is to use the screen oriented  editor. This means, however, that one cannot type programs directlyadditional shortcuts and handy features that are available to you for specifying a pathname. These are discussed in detail in Appendix A.   ^ne 2  If you want your program stored under another filename, type the  desired filename. If no .CODE suffly want to remember only one name for both versions of your program. The dollar sign repeats your entire source file pathname. Note that this use is different from the use of the dollar sign in the Filer. There are a few piled version of your program to have the same pathname  as the text version of your program, just type a dollar sign ( $ ) and  press the RETURN key. Of course, the suffix will be .CODE instead of  .TEXT. This is a handy feature, since you will usualyou wish to save  the compiled version of your program:  *TO WHAT CODEFILE?   ^ne 3  If you simply press the RETURN key the compiled version of your program will be saved on the boot disk's workfile SYSTEM.WRK.CODE.  ^ne 2  If you want the com automatically. If you wish to defeat this suffix-adding feature and  compile a textfile whose filename does not end in .TEXT, type a period  after the last character of your filename.   ^ne 4  Next you will be asked for the name of the file where prompted by the Compiler for a source  filename: *COMPILE WHAT TEXT?   ^ne 2  You should respond by typing the pathname of the text file that you wish  to have compiled.   ^ne 2  If no .TEXT suffix is specified, the system will add one uations where linking will be necessary. These are discussed in the next Chapter .  ^ne 4  The Compiler is invoked by typing X from the Command level of the  Pascal operating system and then keying in the pathname for FORTRAN.CODE.  You are then re usually two steps to taking a FORTRAN program from a TEXT file to a running program. First you compile the source (the TEXT file), then you execute the resulting object code, which loads the code into memory and begins running it.  There are sit%Textfile to be compiled Any subdirectory or any disk, any drive; @default is boot disk's text workfile, @SYSTEM.WRK.TEXT, in any drive. @  %FORTRAN.CODE Any subdirectory; required.    ^ne 5  @@USING THE COMPILER There aon virtually any computer that operates Pascal  without recompiling. For more information on the pseudo-machine code,  see the Pascal documentation.    @@FILES NEEDED  These files are needed to run the FORTRAN compiler:   ^ne 6 role of this interpreter to  take the P-code instructions and use them to drive the Apple's central  processing unit which uses low-level (6502) machine language  instructions. The point of a P-code interpreter is that it allows  your program to run  When you instruct the computer to eXecute your compiled program, the  Pascal operating system passes the P-code in the file to a P-code  interpreter. After a successful booting operation, the interpreter is  resident in the Apple's memory. It is the The basic purpose of the compiler is to read TEXT files which contain  FORTRAN source programs and convert them into P-code. The output file  containing the P-code must always have the filename suffix .CODE.  Such files are called CODE files.   into the compiler from the keyboard. For a more precise description  of the fields in a FORTRAN source statement, see Chapter 6 which  explains the basic structure of a FORTRAN program.  ix is specified, the system will add  one automatically. If you wish to defeat this feature, in order to  specify an output filename that does not have a .CODE suffix, type a  period after the last character of your output filename.  ^ne 4 You will then be asked for the name of the file where you wish to list  the compilation: (List to what file? You may choose to not list by pressing RETURN however, the compiler  listing may be useful to the programmer. See the Compiler Listing  section in  anything into that name, you may want to rename it using the Filer if  you don't want to lose it.  r  corresponding error numbers appears in Appendix B of this manual.  ^ne 2  The code workfile, SYSTEM.WRK.CODE, is automatically erased when any  text workfile is U(pdated from the Editor. So, if you have compiled ue. You can abort by pressing ESCAPE again or continue compiling by pressing RETURN. If you abort or allow the compilation to finish you can then return  to the Editor to fix the problem(s) and recompile. The list of compiler error messages with thei? .PRINTER % % % %***** Error number: 159 in line: 12 %Unrecognizable I/O unit   ^ne 2  Compilation will not stop when an error is detected. Pressing the ESCAPE key will interrupt the compilation and you will be given the option to abort or contin for the kind of error. The following example shows an error message  during compilation:   ^ne 10 %Apple /// Fortran Compiler [A3/1.03] % %Compile what text? /P/FORTRAN/EXAMPLE.TEXT %To what code file? /P/FORTRAN/EXAMPLE.CODE %List to what file filename SYSTEM.WRK.CODE on the boot disk.  ^ne 2  If the compiler reports an error, it will tell you which line number  was being compiled when the error was detected and will give a code rflow".  ^ne 2  If the compilation is successful (that is, no programming errors are  detected), the Compiler saves the compiled code under the filename that you specified earlier. If you didn't specify a filename the compiled code is saved under the "Memory available" field ("wwwww") indicates the number of 16-bit words available for symbol table storage and compiler execution. It is updated when the "" field is updated. If the number falls too low, the compiler may fail with a "stack oveThe "Total lines" field ("mmmm") shows the total number of lines read by the compiler during compilation. This includes all units and include files. As with the "" field, the counter is only four digits so its value is mod 10000. Theed. The width of this field varies as the pathnames change. Since the counter is only four digits, the count is mod 10000. The "" field is always eight characters and shows the current program or subroutine being processed. p corners of the screen which show the progress of the compilation. The "" shows the current file being processed or a unit name during $USES processing. The 4-digit counter ("nnnn") shows which line number in the file is being processhat code file? .CODE %List to what file? % % % % %4 lines. 0 errors. %Smallest available space = 21021 words   ^ne 2  While the compiler is running, four counters ("odometers") are displayed in inverse video at the to screen:   ^ne 14 % nnnn Total lines mmmm % Memory available wwwww % %Apple /// Fortran Compiler [A3/1.03] % %Compile what text? .TEXT %To wthis chapter for the details.  ^ne 2  The Compiler then begins compiling the specified file. While the  compiler is running, messages on the screen show the progress of the  compilation. Below is an example of the messages which appear on the O^˦J% '''Program Units  ^so /p/jback4/new13a  ^so /p/jback4/new13b  ^so /p/jback4/new13c   ack3/new8b  ^oh '''Expressions  ^so /p/jback3/new9x  ^oh '''Control Statements  ^so /p/jback4/new10  ^oh '''Input/Output Operations  ^so /p/jback4/new11a  ^so /p/jback4/new11b  ^so /p/jback4/new11c  ^oh '''Formatted I/O  ^so /p/jback4/new12  ^ohh '''The Compiler  ^so /p/jback2/new4a  ^so /p/jback2/new4b  ^oh '''The Linker  ^so /p/jback2/new5x  ^oh '''Program Structure  ^so /p/jback3/new6x  ^oh '''Data Types  ^so /p/jback3/new7x  ^oh '''FORTRAN Statements  ^so /p/jback3/new8a  ^so /p/jb ^zs  ^bp 1  ^pi 2  ^fo ''%  ^so /p/jback1/contents  ^eh 'Apple /// FORTRAN''  ^oh '''Overview  ^so /p/jback1/new1x  ^oh """FORTRAN Reader's Guide  ^so /p/jback2/new2x  ^oh '''Programs in Pieces  ^so /p/jback2/new3ax  ^so /p/jback2/new3bx  ^oO^˦^7k+)CH13.TEXT8l JBACK0v6' '.CH1THRU13.TEXT6l# /CH14THRUDX.TEXT,6l .CH9THRU13.TEXT7l% -CH1THRU4.TEXT7l -CH3THRU7.TEXT7k6.CH8THRU13.TEXTile-time error messages  142-145 computational assignment statement  54 computed GOTO statement 64 CONSOLE: 10, 76, 80, 82, 84, 86,  100, 105 CONTINUE statement 71 control statements arithmetic IF 65 "assigned GOTO 65 "block IF 66-68 "C0 "separate 13, 113 TEXT file 12, 13 Compiler "input requirements 18 "operation 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 compCLOSE statement 78, 83 CODE files 8, 12-15  comment lines 36 COMMON statement 23, 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 2L statement 98, 99 Cartesian coordinates 125, 127 CHAR intrinsic function 5, 190 character collating sequence  35, 186 character data type 41, 42 character expressions 60 character set 34, 35 CHARACTER type statement 49 CHARTY subroutine 131 ent 65 assignment statements  computational 54 label 54, 55    B   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   CALions 47 order of elements 48 storage 48, 118 subscript expression 48 Turtle Graphics 129, 130 ASMDEMO program 10, 120-122  ASSCII Character Codes Table 156 Assembly language routines  120-122 ASSIGN statement 54, 55 assigned GOTO statemarithmetic expressions  integer division 59 operators 58, 59 "result type 59 "type conversions 59  arithmetic IF statement 65 arrays  ANSI 66 vs. ANSI 77 185 assumed size 48 asterisk dimension 47 element name 48 number of dimensPLESTUFF unit  BUTTON function 133 "game controls 132, 133 "KEYPRE function 134 "NOTE subroutine 134 "PADDLE function 132, 133 "RANDOI subroutine 132 "RANDOM function 132  arguments  by reference 116 by value 116 pe  ^oh '''ANSI Standard 66 vs. 77 FORTRAN  ^so /p/jback7/apf  ^oh '''Apple FORTRAN vs. ANSI 77  ^so /p/jback7/apg  ^so /p/jback7/bib  @@@INDEX  ^bp  A   A edit descriptor 96 ANSI FORTRAN 66 4, 6, 185-187  ANSI FORTRAN 77 4, 6, 185-191  APx  ^oh '''File Name Selection  ^so /p/jback6/newapa  ^oh '''FORTRAN Error Messages  ^so /p/jback6/apb  ^oh '''Tables  ^so /p/jback6/apc  ^oh ''' FORTRAN Syntax Diagrams ^so /p/jback7/apd  ^pn 181  ^oh '''FORTRAN Statement Summary  ^so /p/jback7/a^zs  ^pi 2  ^fo ''%  ^pn 109  ^eh 'Apple /// FORTRAN''  ^oh '''Compilation Units  ^so /p/jback5/new14x  ^oh '''Bi-Lingual Programs  ^so /p/jback5/new15ax  ^so /p/jback5/new15bx  ^oh '''Special Units  ^so /p/jback5/new16ax  ^so /p/jback5/new16bONTINUE 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 DIMENSION statement  asterisk array dimension 47, 48 "dimension declarator 47 "form 47 direct access files 75, 76, 78, 85 DO loop range 217 DO statement 70, 71 DO variable expression 5  DRAWBL subroutine 129-131    E   E edit descrip   O   OPEN statement 81, 82, 86, 87 operator precedence 62 overlay 14, 15, 23, 113    P   P edit descriptor 94, 95 P-code 8, 18  PADDLE function 132, 133 partial compilation 110, 111 Pascal  FORTRAN interface 8, 116-120 INTERFi-drive user  compilation 19  Linker 28     N   names  common data blocks 45 global scope 44, 45 integers 45 keywords 44 local scope 44, 45 undeclared 45 variables 45 notation conventions 34 NOTE subroutine 134  logical data type 41 logical expressions 61, 62 logical IF statement 65 LOGICAL type statement 49    M   main program 12-15, 98 MAINSEGX 110, 112 memory after compilation 26 modules 12, 13  MOVE subroutine 128 MOVETO subroutine 127 multon 134 keywords 44    L   L edit descriptor 96 label assignment statement 54, 55 Lexical Comparisons Table 155 library 29-31 Linker  mapfile 31 operation 28-32, 111 system files used 28 local scope names 44, 45 blocked 76 external files 75 I/O statements  BACKSPACE 85, 91 CLOSE 83 ENDFILE 85 OPEN 81, 82 READ 83, 84 REWIND 85 WRITE 84 I/O System 74-87  I/O unit number 5 I/O unit specifier 80    J     K   KEYPRE functiles 75, 76 intrinsic function 101-105  CHAR 5 EOF 5, 79 placement in statement 196  Intrinsic Functions Table 151-153 INTRINSIC statement 51 iolist  defined 80 expressions in 5 formatting 91, 92 implied DO list 81 I/O device   H edit descriptor 93 heap marker 120    I   I edit descriptor 95 identifiers 20, 28 IMPLICIT statement 38, 46 INITTU subroutine 124, 125 INITTURTLE 120 integer data type 4, 40 integer division 59 INTEGER type statement 49 internal fi I/O statements 79 external 100 formal and actual arguments " 106, 107 intrinsic 101-105    G   game controls 132, 133 global names 44, 45, 100 global symbol table 26 GOTO statements 64, 65 GRAFMO subroutine 125    H  55 "continuation 37 "control 64-72 "DATA 52, 53 "defined 37 "initial line 37 "ordering 37, 38 "specification 45-52 "statement label 36  FORTRAN syntax diagrams 158-179 FUNCTION statement 13, 37, 38,  98-100 functions  calling with 190 "Apple vs. ANSI 77 190-192 Pascal interface 8, 116-120 program development facility 2  running a compiled program " 151, 167 transferring programs 197, 198 FORTRAN statement summary 192,  193  FORTRAN statements "assignment 53- name 75 sequential 5, 75, 77, 79, 85 FILLSC subroutine 127 formal parameters 5 FORMAT statement 37, 90-92 formatted files 75, 77, 78 formatted I/O 90-96 FORTLIB.CODE 10, 15, 30  FORTRAN  ANSI 66 vs. 77 185-187 Apple unsupported features logical 61, 62 operator precedence 62 relational 60, 61 external files 75-77 external FUNCTION 100 EXTERNAL statement 50    F   F edit descriptor 95 files  direct access 5, 75, 76, 78, 85 external 75-77 internal 75, 76 , 95 "slash 93 ELSE statement 69 ELSEIF statement 69 END statement 22, 37, 38, 72, 99 ENDFILE statement 85 ENDIF statement 69 EOF 5, 79, 222 EQUIVALENCE statement 51, 52 error messages 142-147 expressions  arithmetic 58-60 character 60 tor 95 edit descriptors "apostrophe 92  blank interpretation 86, 94 character 96 "dollar sign 86, 93, 191 "Hollerith 93, 185 "integer 95 "logical 96 "nonrepeatable 92-94 "positional 93 "real 95 "repeatable 94-96 "scale factor 94ACE 116 RTFINIALIZE 120 RTINITIALIZE 119, 120 USES 118 Pascal documentation 9, 10  Pascal Operating 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, 192  PROGRAM statement 37, 98 program units 37, 98-107    R   RANDOI subroutine O^˦ble 150    V   VIEWPO subroutine 125    W   WCHAR subroutine 28, 130, 131 WRITE statement 84      6502 Assembly Language 8-10, 18         TURTLX function 128 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 Taubroutine 128 MOVETO subroutine 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 RTLA function 128 Turtle Graphics  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 s 14, 29, 111 SYSTEM.WRK.CODE 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 TUstatement function 105, 106 statement 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,ion 129 sequential files 75, 77, 79, 85  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 utine calls 99 relational expressions 60, 61 REMIN 21 RETURN character 38 RETURN statement 99, 106 REWIND statement 85 RTUNIT 8, 10, 15, 29, 110, 119 RUN Command 19  run-time error messages 146, 147    S   SAVE statement 51 SCREEN funct 132 RANDOM function 132 READ statement 83, 84 real data type  basic real constant 41 defined 4, 40  real constant 41 REAL type statement 49 record  endfile 74, 75 formatted 74-78 kinds of 74 unformatted 74-79, 85 recursive subroh '''The Compiler  ^so /p/jback2/new4a  ^so /p/jback2/new4b  ^zs  ^bp 1  ^pi 2  ^fo ''%  ^so /p/jback1/contents  ^eh 'Apple /// FORTRAN''  ^oh '''Overview  ^so /p/jback1/new1x  ^oh """FORTRAN Reader's Guide  ^so /p/jback2/new2x  ^oh '''Programs in Pieces  ^so /p/jback2/new3ax  ^so /p/jback2/new3bx  ^oO^˦? ^oh '''Formatted I/O  ^so /p/jback4/new12  ^oh '''Program Units  ^so /p/jback4/new13a  ^so /p/jback4/new13b  ^so /p/jback4/new13c    ^zs  ^pi 2  ^fo ''%  ^pn 57  ^eh 'Apple /// FORTRAN''  ^oh '''Expressions  ^so /p/jback3/new9x  ^oh '''Control Statements  ^so /p/jback4/new10  ^oh '''Input/Output Operations  ^so /p/jback4/new11a  ^so /p/jback4/new11b  ^so /p/jback4/new11c O^NO^am Structure  ^so /p/jback3/new6x  ^oh '''Data Types  ^so /p/jback3/new7x  ^zs  ^bp 1  ^fo ''%  ^pn 11  ^eh 'Apple /// FORTRAN''  ^oh '''Programs in Pieces  ^so /p/jback2/new3ax  ^so /p/jback2/new3bx  ^oh '''The Compiler  ^so /p/jback2/new4a  ^so /p/jback2/new4b  ^oh '''The Linker  ^so /p/jback2/new5x  ^oh '''Progr ^zs  ^bp 1  ^fo ''%  ^pn 43  ^eh 'Apple /// FORTRAN''  ^oh '''FORTRAN Statements  ^so /p/jback3/new8a  ^so /p/jback3/new8b  ^oh '''Expressions  ^so /p/jback3/new9x  ^so /p/jback3/page51  ^oh '''Control Statements  ^so /p/jback4/new10  ^oh '' WAP /// SIG PUBLIC DOMAIN LIBRARY PDS NAME: FORTRAN Manual: Disk 1 DISK ID#: 3PCL-17 BOOTABLE?: Nonbootable DESCRIPTION: Disk One of Two disks containing the manual for the Fortran Language. Pascal required to read/print these files (wh ^zs  ^pi 2  ^fo ''%  ^pn 97  ^eh 'Apple /// FORTRAN''  ^oh '''Program Units  ^so /p/jback4/new13a  ^so /p/jback4/new13b  ^so /p/jback4/new13c   O^˦'Input/Output Operations  ^so /p/jback4/new11a  ^so /p/jback4/new11b  ^so /p/jback4/new11c  ^oh '''Formatted I/O  ^so /p/jback4/new12  ^oh '''Program Units  ^so /p/jback4/new13a  ^so /p/jback4/new13b  ^so /p/jback4/new13c   ich are Pascal Text Files). Use Pascal Menu.Maker, disk 3PCL-10 to read or System Utilities to print (disk 3SYS-02 - use "Copy Files" and copy to .Printer). py to -: .Printer). -: - "-saving archive file-" -œ12510(-#2,FILENAME$2-<-INC=1NLASTpF-#2;INC,N$(INC),G(INC,1),G(INC,2),G(INC,3),G(INC,4),S(INC),F(INC,1),F(INC,2),GT(INC),P(INC),W(INC),SEX$(INC)P-INC'Z-::"79C";"-ARCHIVE FILE SAVED-"0d-25);NLAST;" REC!M@! BROOKS LOIStp8 !F`! COLESON RUBYLl p !F! CURRING NAOMIPj@Y!F! EWINS PAULINEh(@ !F ! FERISS MARYZ@V! BALL MYRTLEF,p` !F! BICMAN BETTEv [@!F@! BOWMAN JOEp&f@!M!BOWMAN MARGARET  !F ! BRODY CHUCK~(@ AVOID LOSING NEW DATA."; 0AN$*0230<0 Error routine **************[07);20);"ERROR !!!! RETURNING TO PRINTER MAIN MENU.":PAUSE=1500:PAUSE::23030 "BOWL.PROGRAM" 2.0 100-12520 spacing of"3/12);"the Senior Center's DATAPOINT printer."M05);"14...Generate new bowler list: Establish the initial bowler list."= 05);"15...Quit program: Exits the program."O012);"REMEMBER TO USE THE 'SAVE DATA' COMMAND TO Reviews the directory of selected disks."S/5);"11...Save archive file: Saves and locks data in an archive file."C/5);"12...Load archive file: Recalls an archive file."L/5);"13...Select printer options: Sets the font and lineSave data: Saves to disk. Default '.D2/BOWL.DATA'"G/12);"REMEMBER...IF YOU WRITE OVER AN EXISTING FILE, THE DATA IN"N/12);"THAT FILE WILL BE OVERWRITTEN AND LOST !!! Use a new file name."S/5);"10...Read disk directory: 6);" Choices include screen, disk file, printer."K/12);"NOTE: THIS IS WHERE THE NEW PERFORMANCE DATA IS CALCULATED !!!"V/6);"8...Reorder bowler list: Reorders list alphabetically or by averages."Q/6);"9...dify data file: Alters the individual summary data."Fv/6);"5...Add to bowler list: New bowler names added here."M/6);"6...Delete record: Bowler names removed from the list.",/6);"7...Process and display records:"U/ormation."IN/6);"2...Loads data from file: Recalls previously stored data."OX/6);"3...Enter game data: Enter the day's bowling results here."Mb/12);"ALL THE INDIVIDUAL GAME SCORES SHOULD BE ENTERED AT ONE SITTING."Ml/6);"4...Mo30);"-averages of 100 or greater"//30);"-averages between 90 and under 100"&/30);"-averages under 90"0/AN$N:/:3);"The program is menu-driven and allows for the following actions:"DD/6);"1...Program information: Presents this infy, 1990, andis designed to suit the particular needs of their bowling activity.";." A summary of individual scores is maintained in addition to a listing of the high perform-ance in several categories.";)/" This is done for bowlers with:":(/ORDS STORED IN ";FILENAME$n-#2:FILENAME$x-AN$-230<. Program information **************=.:=4:"80C";"-ROCKVILE SENIOR CENTER BOWLING PROGRAM-".5);"This program was prepared for the Rockville Senior Center in Jul!F0! FREISS JOE:$@@!M@! FREISS SYLVIA@y*@_!FP! GONNALE HARRY^&@ @!M`! HICCS JAMES^"@!Mp! HOCHSON JEANT& contains a program designed by Jim Salerno to keep track of bowling scores for a Senior League. It works great, but please study it carefully, as it was designed for a specific group. It is adaptable to you own needs. On Side Two y060 WELCOME! /// SIG Public Domain Library Disk Category: Miscellaneous/III.MSC.16 Disk Format: Self-booting - Both Sides Side One of this PD disk /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// SIG, Washington Apple Pi 7910 Woodmont Ave. #910 Bethesda, Md. 20814 (301) 654-8BERNIE72pP !M! TAYLER JOHNj@!M! URBAN CLARA*@ !F! WALTHERS IRA8,@$`!M!WALTHERS MARGARET.02@ !F ! ZETH JANEN"p` !F$! PARDET B.J."\"@\!F(!BARBORE RUTHIE<@!F,!SHAMOUNT BERTHAf M@!FGUS'4@!M !SHARTIN BERNIE72pP !M! TAYLER JOHNj@!M! URBAN CLARA*@ !F! WALTHERS IRA8,@$`!M!WALTHERS MARGARET.02@ !F  ',p2 !Fx! RICHEL ARLENE~ 0_@!F! ROWMAN ELAINEC@@!F! SEGERT GERRYb"@@!F! SEGERT GUS'4@!M !SHARTIN  ,p"` !FP! MACKIE JIM(0p@ !MX! MILLET BILL\@!M`! MILLET MARY:w @q!Fh! MOCCEK MOLLY,p0O!Fp! PAYNSON MARY7@!F(! KINDS RUTHTp !F0!KRAYSON ALBERTR&@!M8! KRATSON IRENE4t$p@ !F@!LANBERT LUTHERH0p! !MH!LANBERT VIRGINIA\J@@!F! HOCHSON RALPH:@!M! HOPPE WALTl .W@!M! HOWARK MANNYx(p> !M! KINBERT AARONL&@!M ! KINER PAULINEB ou will find "Grid/Grade", programs for teachers to help them keep track of students grades, etc. We hope you enjoy these programs and invite your comments and contributions. ns. ,B$(I),16,B)#5,".PRINTER" $ž#4120 .#4;a$ 8#5;a$ B1070LV:=24:=0::#X=1100: TEXT SLOW-DOWN LOOPX810 Halt Subroutine::=23:=0::"79C";"PRESS ANY KEY TO HALT LISTING.": 1300(=23::=12:=0:120=+B$(I),16,B)1408A$(1000),B$(1000),C%(511),C$(20),name$(20):=10:=0 :120>::=23:=0::"79C";"WOULD YOU LIKE A PRINTED COPY?":1C$:C$<>"Y"C$<>"y"C$<>"N"C$<>"n"1010C$="N"C$="n"120#4C$<>"n"850\C$="N"C$="n"1000;f:=23:=0::"79C";"PRESS ANY KEY TO HALT LISTING": p840z2,280,21K:=23:=0::"79C";"TO PRINT OR RETURN TO MENU, HIT THE SPACE BAR":C$:C$<>" "930:ۺ1000 :=".d1"01:=0::"80C";A$;::12)E=23:=0::"79C";"PRESS ANY KEY TO HALT LISTING"::2,280,21 840#2,B$(I),16,B) ž#2910*#2;A$:A$:12304810 >:120*H:=23:=0::"79C";"CONTINUE...?":0RC$:C$<>"Y"C$<>"y"C$<>"N"IC 0")700B$(I),"TEXT 0")740B$(I),"CAT 0")960B$(I),"FONT 0")1660B$(I),"FOTO 0")1730400A$="RUNNING "+B$(I),16,B)"79C";A$;:=0B$(I),16,B):A$="LISTING "+B$(I),16,B)$=2)I=I+1&I2=-1:I=I-2:NIBOTM<30XTHPOS=44I=IBOTM/2)*2:=+IBOTM/2)-1:0b=+IBOTM/2-.5):I=IBOTM:I/2=I/2)I=I-1lvB=B$(I),16)," ")-1B$(I),"BASA=:A=21A=9oldprefix$=A=31110A=27:=".D1":980A=13630=THPOS:B$(I);A<8A>11400A-7500,520,550,580:=THPOS:B$(I);:380: 500THPOS=4:I/2=I/2)I=I-1I=IBOTM THPOS=44:I/2<>I/,A$="TEXT 0":406A$="CAT 0":40@A$="FONT 0":40JA$="FOTO 0":40TA$(L),"BLOCKS")370*^=27:=19:"FREE MEMORY AVAILABLE: ";h=7:=20:"80C";A$(L);$r:=5:THPOS=4:I=1:IBOTM=J-1:480|Q=:=26:=21:1400 =Q:WW=0PE> sets Prefix to .D1; aborts."12);::"80C";a$;:d$=DISKNAME$$=23:=0::"80C";d$;::12)1,180,22F=3:=14:"This /// SIG Disk is \^ 1991, Washington Apple `, Ltd."=4:B$(1)="":B$(2)="""A$="BASIC 0":40* :"79C";"-LOADING SENIOR CENTER BOWLER LIST PROGRAM-":"BOWL.LIST.PRGM"7):110=0::"79C";"CONTINUE...?":'(<>89<>121<>78<>11013202=78=11010<9F=23:=0::"79C";"PRESS ANY KEY TO HALT LISTING":P2,280,2 Z1310dn"x ..... "DATE.TIME.LINE" ....M=Ҡ,4,2))BM1430,1440,1450,1460,1470,1480,1490,1500,1510,1520,1530,1540M$="JANUARY":1550M$="FEBRUARY":1550M$="MARCH":1550M$="APRIL":1550M$="MAY":1550M$="JUNE":1550M$="JULY":1550M$="AUGUST":1550M$="SEPTEMBER":1550M$="OCTOBER":15BOWLING BY JIM SALERNO 00:X::RELEASE:#530%& Menu.Maker v. 4.55.1 (side two)B$(I),16,B)name$=34)+D$+34) GLOAD.D$16);1) GRAFIXONX=12000:X::RELEASE:#5302l ...... WAP /// SIG MENU.MAKER (VERSION 4.54)16,B)name$=34)+D$+34) GLOAD.D$16);1) GRAFIXONX=120:=21:1400 T1400 ^:WW=1:h |: CHANGE THE FONT".D1/download.inv"C$=B$(I),16,B)array$="C%"name$=34)+C$+34)getfont(@name$,@array$)loadfont(@array$)J=1:SAME=0:215#5,".GRAFIX"".D1/BGRAF.INV"D$=50M$="NOVEMBER":1550M$="DECEMBER":1550826);"-";M$;" ";Ѡ,2));", ";"19";Р,2);" ";/П,2))=>13П,2))-12;џ,6);:1580$"П,2))=0"12";џ,6);:ٟ;$,П,2))=>12" PM-":" AM-" 61630@WW=1390J=26