Prospero Pascal for Helios Development Tools Pricing information

Prospero Pascal for Helios

Standard features

Data types:
4-byte integers, 4-byte reals, char, boolean, enumerated, subranges, arrays, records with variant parts, sets (up to 2016 elements), 4-byte pointers, files (text and non text).

Statements:
Assignment
Procedure call
GOTO (including jumps out of blocks)
Compound (BEGIN...END)
IF...THEN...ELSE...
CASE...OF
REPEAT...UNTIL...
WHILE...DO...
FOR...TO/DOWNTO...DO...

Operators:

Arithmetic + - * / DIV MOD
Logical AND OR NOT
Comparison < = > <= <> >=
Set + - * IN [...]

Procedures and functions:
Procedure and function declarations (fully recursive)
Value, VAR, procedural and functional parameters

Standard procedures and functions
reset, rewrite, get, put,
read, readln, write, writeln, page,
new, dispose, pack, unpack,
abs, sqr, trunc, round, ord, chr,
pred, succ, odd, eof, eoln,
sin, cos, exp, ln, sqrt, arctan

Extensions

Data types:

string [n] dynamic-length strings (1 to 255 bytes)
asciiz [n] null terminated strings (1 to 255 bytes)
longreal 8-byte reals
integer1,
integer2,
byte,
word predefined integer subranges
channel inter-process communication

Statements:
PAR...END (concurrent execution)
ALT...END (alternate execution)
CASE...OTHERWISE
Case-constant ranges (m..n) allowed

Operators:
Logical XOR
AND, OR, XOR and NOT may operate on integer-type values
SHL, SHR (arithmetic left and right shifts)

Separate compilation:
SEGMENT (as well as PROGRAM)
COMMON (as well as VAR)
EXTERNAL (as well as FORWARD)

Lexical enhancements:
Source file inserts ({$I filename})
Identifiers containing underscore (_)
Hex constants (e.g. 01FFH)
Longreal constants (e.g. 1.0D0)

Additional predefined procedures and functions:
These procedures can be used without being declared as external, and may be generated in-line. The names are not reserved, and can be hidden by user-declared names.

concat, copy, insert, delete, length, pos (strings)
str, val (conversion between numbers and strings)
assign, ramfile, rename, connect, handle, fresult, erase, close, append, fbuffer, echo (file handling)
update, seek, position, textnote, textpoint (random access)
readm, writem (block read and write)
exclusive, lock, lockall, unlock, unlockall (file sharing and locking)
checkfn, fstat, dstat (check file and directory names)
execprog, redirect, duplicate, exitprog, getcomm (program execution)
arcsin, arccos, tan, sinh, cosh, tanh (trigonometry)
seed, rand (random number generator)
testbit, setbit, clearbit, flipbit (bit operations)
move (block move without type checking)
sizeof, addr (size and location of variables)
newmem, dispmem (memory allocation)
initchan, inchan, outchan (interprocess links)
gettimer, delay (hardware timer)
prompt, stkavail, date, time (miscellaneous)

Additional library routines:
These procedures must be declared as external (using the supplied include files) before being used. The code to implement them is contained in the standard library. Where applicable, these functions provide compatibility with versions of Prospero Pascal on other operating systems

_excep, _error_split, _derrno, _errchk, mask_set, _mask_get, _errec_ptr, _herr, _user_error, RetCode (error reporting)
StartThread, StartProg (asynchronous processes)
ClrScr, ClrEol, GoToXY (screen handling)
ConSingle, ConSilent (console interaction)
GetTimeStamp, DateString, TimeString (date/time)
ChDir, MkDir, RmDir, GetDirName (directories)
MakeFQList (wildcard expansion)
GetEnvS, SetEnvS, DispEnv, Findfile (environment)
ProgName, Wait, CPUTyp (miscellaneous)

In addition, most Helios POSIX interface functions may be called directly, using the supplied EXTERNAL function and type definitions.


Pricing and Contact information.


Prospero Pascal for Helios Development Tools Pricing information