Prospero Fortran for GEM version mmg 2.13 for Atari ST - extra remarks
----------------------------------------------------------------------
Errata
------
AES-74
The menu_create function has three parameters rather than two. The
correct definition is as follows :-
INTEGER*4 FUNCTION menu_create(titles, items, about)
INTEGER*4 titles, items
CHARACTER*(*) about
The titles parameter specifies the total number of titles to be added,
while the items parameter specifies the total number of items to be
added - these figures need not include the Desk title and associated
items, which are added automatically.
AES-137
The example of the use of objc_create needs a call of objc_draw before
calling form_do near the end, or the form will not be displayed.
Improvements and changes from version 1.1
-----------------------------------------
The Prospero Fortran package has been improved in various ways since
version 1.1, notably as follows :-
1. The package now includes an integrated Workbench development
environment, from which the compiler, linker and other
programs are run. This is the program F-BENCH.PRG.
2. The package now includes a symbolic debugger, the file
PROBE.PRG, to allow the single stepping of programs at the
source language level, with interrogation of variables etc.
3. The package now includes a cross-reference generator (the
file XREF.OVL, which can only be executed from the
Workbench).
4. The PRL (Prospero Resident Library) is no longer required,
and all programs produced can now be run as stand-alone
applications.
5. The compiler accepts identifiers up to 31 characters in
length (unless the option to accept standard Fortran-77 only
is used), and other lexical enhancements such as
underscores in identifiers and !-type comments.
6. The GEM bindings have been rewritten to take advantage of
the 31 character names, and several extra bindings have been
added to make GEM programming easier. The bindings are now
fully documented in 500 pages. It is now possible to write
Desk Accessories.
7. Several new library procedures have been added, including
routines to access the BIOS, XBIOS and LINE A routines,
and to follow pointers
Additional sample programs
--------------------------
This issue includes some source (.FOR) files containing sample Fortran
programs not listed in the manual.
1. MAZES.FOR
This program will print out a different maze every time it is run (and
guarantees only one path through). It illustrates use of several
Fortran features: logical and character variables and arrays,
statement functions, DATA statements with character constants, Block
IFs, computed GOTOs, and the random number generator (RANDOM). It is
not a very "typical" example of Fortran coding style, but indicates
that Fortran can be used to solve logical as well as number-crunching
problems.
2. PRINTF.FOR
This is a utility program to copy a file of variable-length formatted
records from disk to the printer, when the first character of each
record will be interpreted as carriage-control information in the
normal Fortran manner. The coding includes examples of using
CHARACTER variables and substrings, PARAMETER statements, OPEN
statements, and the GETCOM procedure.
3. TOSDEMO.FOR
This program demonstrates use of the supplied SYS routine for making
calls to the TOS executive (see User Manual, Part III, section 8.7.1).
Two calls are made, one to output a string to standard output, and one
to diskover the operating system version number. For further details,
refer to the commented source.
4. GEMDEMO.FOR
This is a simple program to illustrate use of the supplied GEM VDI and
AES interface routines (see User Manual, Volumes 2 and 3). The program
displays an "alert", which can be clicked with the mouse. It then uses
GEM AES calls to set up a window, and VDI calls to display a graph,
clipped to the window.
5. MENUDEMO.FOR
A demonstration of how the additional GEM bindings can be used to set
up and use a menu bar in a Prospero Fortran program, without the use
of a resource editor.
6. DIALDEMO.FOR
A simple demonstration of how dialog boxes can be created and used
without the need for a resource editor
7. DOODLE.FOR
A complete (though very simple) GEM application written in Prospero
Fortran, demonstrating how to handle menus, windows and redraws, and
various other aspects of GEM AES and VDI. The code can be used as the
basis for other GEM applications.
8. CLOCKDA.FOR
A simple desk accessory which displays an analog clock in a window.
After linking, the .PRG file produced should be renamed .ACC, and
copied to a startup disk. When the machine is reset and started using
this startup disk, the desk accessory will install itself in the Desk
menu ready for use.
Note. Desk accessories are difficult to debug, and if they go wrong
may cause the machine to reboot. A desk accessory should therefore not
be installed on a hard disk until it is known to be working, or it may
be difficult to remove! It is usually best to write the accessory as a
stand-alone application while it is still being developed, and convert
it to an accessory once it is debugged.
9. LINEA.FOR
A very simple demonstration of some of the capabilities of the Line A
routines, which give access to the Atari's high speed graphics
routines.
10. XBIOS.FOR
A simple example of how to call the Atari's XBIOS operating system
routines.
A problem with zero-length text files
-------------------------------------
End-of-file is not signalled on text files of zero length. This is
due to a problem in GEMDOS. In particular, therefore, the compiler
and Workbench cannot handle properly a source file of zero length.
Non-text files of zero length are handled properly.
Integrity of issued files
-------------------------
The Prospero Fortran software is normally supplied on write-protected
disks. Do not write-permit the master copy or execute the Workbench
from it. Copy the files from the supplied disks onto your own disk(s).
You may then verify that the working copy is correct (see below), and
go on to edit, compile, link, and run your own programs as described
in Part I of the User Manual.
Checking validity of files
__________________________
The program FCHECK.PRG is supplied to guard against copying errors in
the issued software. It asks for a directory name, which may be
simply a disk drive such as B:, and sumchecks all the files in that
directory whose names it recognises. These sumchecks are compared
against information recorded within itself (the correct sumchecks) and
either "OK" or an error message is given, for each file.
To run the program, double-click on the FCHECK.PRG icon, and reply to
the prompt with the desired directory name (e.g. A:).