Prospero Fortran 2.1 Development Tools Pricing information

Prospero Fortran 2.1
Version iio 2.1 for OS/2 v1 and MS-DOS,
Version iid 2.1 for MS-DOS

Language features

Data types:
INTEGER range - to bytes)
INTEGER*1 range -128 to +127 in 1 byte
INTEGER*2 range -32768 to +32767 in 2 bytes
INTEGER*4 equivalent to INTEGER
REAL 7-digit precision. E±38 (4 byte, IEEE format)
DOUBLE PRECISION 16-digit precision, E±308 (8 byte IEEE format)
REAL*4 equivalent to REAL
REAL*8 equivalent to DOUBLE PRECISION
COMPLEX a pair of values of type REAL (8 bytes)
COMPLEX*8 equivalent to COMPLEX
COMPLEX*16 a pair of values of type DOUBLE PRECISION
LOGICAL .TRUE. or .FALSE. (4 bytes)
LOGICAL*1 .TRUE. or .FALSE. in 1 byte
LOGICAL*2 .TRUE. or .FALSE. in 2 bytes
LOGICAL*4 equivalent to LOGICAL
CHARACTER 1 to 32767 characters

Statements:
Type statements (INTEGER, etc.)
DIMENSION (no limit on number of dimensions)
COMMON (named and blank common)
EQUIVALENCE
IMPLICIT (including IMPLICIT NONE)
PARAMETER
EXTERNAL
INTRINSIC
SAVE
DATA
FORMAT
Assignments (arithmetic, logical and character)
GOTO (simple, assigned and computed forms)
IF (arithmetic, logical and block)
ELSE IF, ELSE, END IF
ASSIGN
CALL
CONTINUE
STOP
PAUSE
RETURN
END
DO (integer, real and double precision)
DO WHILE
ENDDO
READ
WRITE
PRINT
OPEN
CLOSE
INQUIRE
BACKSPACE
ENDFILE
REWIND
INCLUDE (source file inclusion)

Programs, subroutines, functions:
Main program unit
SUBROUTINE subprogram
FUNCTION subprogram
ENTRY statement
BLOCK DATA subprogram
Statement functions

Intrinsic functions:

INT, IFIX,
IDINT, ICHAR Conversion to integer.
REAL, FLOAT, SNGL Conversion to real.
DBLE Conversion to double precision.
CMPLX Conversion to complex.
DCMPLX Conversion to double complex.
CHAR Conversion to CHARACTER*1
AINT, DINT Round to zero (truncation).
ANINT, DNINT,
NINT, IDNINT Round to nearest integer.
ABS, IABS, DABS,
CABS, CDABS Absolute value.
MOD, AMOD, DMOD Modulus.
SIGN, ISIGN, DSIGN Sign functions.
DIM, IDIM, DDIM Dim functions.
DPROD Double precision product.
MAX, MAX0, AMAX0,
MAX1, AMAX1, DMAX1 Maximum functions.
MIN, MIN0, AMIN0,
MIN1, AMIN1, DMIN1 Minimum functions.
LEN Length of character variable.
INDEX Index of one string in another.
AIMAG, DIMAG Imaginary part of complex number.
CONJG, DCONJG Conjugate of complex number.
SQRT, DSQRT,
CSQRT, CDSQRT Square root.
EXP, DEXP, CEXP, CDEXP Exponential.
LOG, ALOG, DLOG,
CLOG, CDLOG Natural logarithm.
LOG10, ALOG10, DLOG10 Common logarithm.
SIN, DSIN, CSIN, CDSIN Sine.
COS, DCOS, CCOS, CDCOS Cosine.
TAN, DTAN Tangent.
ASIN, DASIN Arcsine.
ACOS, DACOS Arccosine.
ATAN, DATAN,
ATAN2, DATAN2 Arctangent.
SINH, DSINH Hyperbolic sine.
COSH, DCOSH Hyperbolic cosine.
TANH, DTANH Hyperbolic tangent.
LGE, LGT, LLE, LLT Character comparison.
IAND Binary AND of integers.
IOR Binary OR of integers.
IEOR Binary Exclusive OR of integers.
NOT Binary NOT of an integer.
ISHFT Binary shift of an integer.
lBSET Set a bit in an integer.
IBCLR Clear a bit in an integer.
BTEST Test a bit in an integer

Fortran 66 compatibility:
Hollerith constants and other provisions of Appendix C of the Fortran-77 standard.

Miscellaneous extensions:
Long names (up to 31 characters)
Names may contain underscores (_)
!-type comments are allowed
Lower-case letters are equivalent to upper-case (except in strings)
.XOR. (equivalent to .NEQV.)
Logical operators may take integer operands.

Extension Library

Random Random number generator.
ProgName Return name of the program.
GetEnvS Read an environment variable.
SetEnvS Set an environment variable.
DispEnv Dispose environment variables.
ExecPg Execute a child program.
GetCom Get the command-line of the program.
ExitPg Exit the program with a return code.
Cmnd Execute a shell command
WeekdayString Return day of week from time.
MonthString Return month from time.
Wait Pause for specified time.
StartTimer, StopTimer Record elapsed time.
GetDateTime Get current date and time.
SetDateTime Set current date and time.
Date Get current date.
Time Get current time.
FileDateTime Get file date and time.
UnpackDate, UnpackTime Unpack packed date and time formats.
GetDrive Get current drive.
SetDrive Set current drive.
GetDir Get directory for given drive.
GetCurDir Get directory for current drive.
ChDir Change directory.
MkDir Make directory.
RmDir Remove directory.
GetFileAttr Get attributes of a file.
SetFileAttr Modify file attributes.
FindFirst, FindNext Directory search.
FindFile Search for file on path.
GetVolName Get name of disk.
ClearScr Clear the screen.
ClearEol Clear to the end of the line.
CursorXY Move cursor.
CStat See if key has been pressed.
ConSingle Get character from keyboard.
ConSilent Get character from keyboard without echo.
Affirm Prompt user and return result.
SetRawMode Set console to raw mode.
SetCookedMode Set console to cooked mode.
SYS1 INT 21 interrupt (DOS only).
SYS2 General interrupt (DOS only).
Length Get significant length of character variable.
Poke, Poke 1, Poke2,
Poke4, CPoke Directly write to machine address (DOS only).
IPeek, IPeek1, IPeek2,
IPeek4, CPeek Directly read from machine address (DOS only).
ASplit Return segment and offset from an address.
IAddr Return address of variable.
IAddrC Return address of character variable.
QBreak, SBreak, RBreak Control-C handling.
IClass, ISubClass Return error class and subclass.
SetSticky, ISticky Set and return error sticky bit.
SetMask, IMask Set and return error mask.
IOSError Return operating system error number.
IUnitErr Return unit number involved in file error.
IStatErr Return statement type involved in file error.
IOSFunc Return DOS function number involved in error (DOS only).
ErrFileName Return filename associated with error.
ClearError Clear error.
UserError Force user error.
ReporterOff,
ReporterOn Turn error reporter on and off.
StartPg Start synchronous process (OS/2 v1 only).
StartThread Start a thread (OS/2 v1 only).
ISemClear,
ISemRequest, ISemSet,
ISemSetWait, ISemWait Semaphore handling (OS/2 v1 only).

F77PC Library

The F77PC graphics library provides text and graphics support for both DOS and OS/2. Under DOS, the library uses the BIOS for maximum compatibility.

Screen handling

InitScreen Initialize the graphics.
Adaptor Return the type of video adaptor.
SetScreenMode Set a particular screen mode.
ScreenMode Return the current screen mode.
ClrVideo Reset the current screen mode.
AwaitRetrace Wait for a screen retrace (reduces snow on
 some older machines).
DisplayPage Display a particular video page.
UpdatePage Direct all output to given video page.

Graphics
All graphics may operate either on the whole screen, or just within a defined graphics window.

GraphWindow Define graphics window.
GraphFrame Put a border around graphics window.
FillWindow Fill the window with specified color.
Clipon, ClipOff Turn clipping to window on or off.
XOROn, XOROff Enable and disable XOR plotting.
Plot, Pixel Plot and return color of point.
Draw, Circle Draw a line or circle.
FillShape Flood filling of any shape.
SaveWindow Save graphics window to disk.
RestoreWindow Restore graphics window from disk.
SaveScreen Save graphics screen to disk.
RestoreScreen Restore graphics screen from disk.
CGAColor, CGAPalette,
EGAPalette, EGABlink,
VGAFlash Change machine's colors.
EGABorder Change border colors.

Turtle Graphics

SetHeading, Set turtle direction.
Heading Return turtle heading.
TurnLeft, TurnRight Rotate turtle.
SetPenColor Change turtle pen color.
PenDown, PenUp The turtle only draws if the pen is down
 when it moves.
SetPosition Move turtle to absolute position.
XCor, YCor Return co-ordinates of turtle.
Turtlehome Return turtle to home position.
TurtleWindow Define turtle window.
Forwd, Back Move turtle forwards or backwards.

Text
Text may cover the whole screen, or be confined to a text window.
The following work in text and graphics modes:

Paper, Ink Set background and foreground text colors.
PutChar, PutChattr Put characters to the screen.
ScreenUnit Open a unit so that text output is directed to the current text window.
ClrScr Clear the current text window.
ClrEol Clear to the end of the line.
DelLin, Insline Delete or insert a line.
TextFrame Put border around text window.
GotoXY Move the cursor.
WhereX, WhereY Return the cursor position.
ScrollDown, ScrollUp Scroll window down or up.

The following work only in text modes:

CursorOn,CursorOff Turn the cursor on or off.
CursorShape Change the cursor shape.
CharXY, AttrXY Return the character and attribute of the character
 at the cursor position.
BlinkOn, BlinkOff Set characters flashing or not.
PushWindow Save text image.
PopWindow Restore text image.
PopImage Forget pushed text image.
PrintScreen,
PrintWindow Print screen or window.

Keyboard facilities

KeyPressed Determine if key has been pressed.
EscapeKey Determine if escape key pressed.
GetKeyboard Return character and scan code of key pressed.
KeyFlags Return status of shift keys.

Communications facilities

InitComm Initialize communications port.
WriteComm Write to a port.
ReadComm Read from port.
CommStatus Return port status.

Sound facilities

Sound, SoundOff Start or stop sound of given frequency.
Beep Simple sound.


Pricing and Contact information.


Prospero Fortran 2.1 Development Tools Pricing information.