Prospero Pascal
for Helios
Development
Tools
Pricing information

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
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