This is the subset of the Free Pascal Run-Time Library (RTL) that we are learning and using in Programming I.

This is a work in progress. I will add more functions as we learn them in this class.

The heading names below are units in the Run-Time Library. To use
the functions from any unit, you need to import it with a `uses`

clause at the top of your program. As an exception, the functions in
the `system`

unit are automatically
available in any program.

I’ve simplified some of the types below. For example, the
run-time library documentation often uses the type `AnsiString`

,
but below I’ve written just `string`

,
which is the same as long as you’re using ```
${mode
delphi}
```

as we are in this course. Similarly, I’ve written
`integer`

in place of `LongInt`

.

I’ve also converted all function names to begin with lowercase (the RTL documentation uses upper and lower case variously). Because Pascal is case-insensitive, you can call these functions using any case you like.

For more information, see the full Run-Time Library Reference at the Free Pascal site.

function isDigit(c: char): boolean

Return true if c is a digit, i.e. a character in the range ‘0’..’9’.

function isLetter(c: char): boolean

Return true if c is an uppercase or lowercase letter.

Black, Blue, Brown, Cyan, DarkGray, Green, LightBlue, LightCyan LightGray, LightGreen, LightMagenta, LightRed, Magenta, Red, White, Yellow

Color constants.

ScreenHeight : integer

The height of the terminal window in characters.

ScreenWidth : integer

The width of the terminal window in characters.

procedure clrScr

Clear the terminal window.

procedure delay(ms: Word)

Pause for the given number of milliseconds.

procedure gotoXY(x: integer; y: integer)

Move to the position (x, y) in the terminal window. The upper-left-most character is (1, 1).

function keyPressed : boolean

Return immediately, returning true if the user has pressed a key
(which you can then retrieve with the `readKey`

function) or false otherwise.

function readKey : char

Read a key from the user, without waiting for the user to press Enter. If the key is a non-symbolic key such as an arrow key, returns the character with ASCII code zero. In that case a second call to ReadKey will return a code indicating the non-symbolic key that was pressed. Some of these codes include the following: up arrow = 72, left arrow = 75, right arrow = 77, down arrow = 80.

procedure textColor(c: integer)

Set the foreground text color to c, which can be one of the color constants listed above.

function milliSecondsBetween(start: TDateTime; stop: TDateTime) : Int64

Calculate the number of whole milliseconds between two DateTime values.

Infinity : real

A special floating-point value that is greater than any other.

operator **(base: int64; exponent: int64) : int64

Raise an integer to a power. For example, ```
(3 **
4)
```

is 81.

function ifThen(val: boolean; ifTrue: integer; ifFalse: integer) : integer function ifThen(val: boolean; ifTrue: double; ifFalse: double) : double

Return the value `ifTrue`

is `val`

is `true`

, otherwise return `ifFalse`

.

function log2(x: float) : float

Return the base-2 logarithm of x.

function max(a: integer; b: integer) : integer function max(a: double; b: double) : double

Return the greater of two values.

function min(a: integer; b: integer) : integer function min(a: double; b: double) : double

Return the lesser of two values.

function sign(a: integer): integer;

Return the sign of a, which is +1, 0, or -1 in the cases where a > 0, a = 0 or a < 0, respectively.

function ifThen(val: boolean; ifTrue: string; ifFalse: string) : string;

Return the value `ifTrue`

is `val`

is `true`

, otherwise return `ifFalse`

.

function leftStr(s: string; n: int64) : string

Return the leftmost n characters of a string.

function replaceText(s, old, new: string): string

Return a copy of `s`

in which all
occurrences of `old`

have been replaced by
`new`

.

function reverseString(s: string) : string

Reverse a string. `reverseString('abcde')`

is `'edcba'`

.

function rightStr(s: string; n: int64) : string

Return the rightmost n characters of a string.

function stuffString(s: string; start: integer; length: integer; t: string) : string

Return a copy of `s`

in which the string `t`

replaces the segment of `length`

characters beginning at index `start`

. For
example, ```
stuffString('one more time', 5, 4,
'last')
```

is `'one last time'`

.

procedure halt;

Exit the program immediately.

function high(a: array) : int64

Return the upper bound of a static or dynamic array.

function length(a: string) : int64 function length(a: DynArrayType) : int64

Return the length of a string or array.

function low(a: array) : int64

Return the lower bound of a static or dynamic array.

function paramCount : integer

Return the number of parameters that were passed on the command line.

function paramStr(l: integer) : string

Return the L-th command-line parameter. Parameters are numbered starting from 1.

procedure setLength(var a: DynArrayType; len: int64)

Set the length of a dynamic array.

Elements in a dynamic array are
numbered from zero, so after a call to ```
setLength(a,
len)
```

they will have indices from 0 to `len`

– 1, inclusive. If this call increases the size of an array, the
new array elements will all be zero.

function eof : boolean

Return true if we have reached the end of standard input, i.e. the user has pressed Ctrl+D (on Linux or macOS) or Ctrl+Z (on Windows). (“eof” stands for “end of file”).

function eoln : boolean

Return true if we are at the end of an input line.

procedure read(args: arguments)

Read one or more values from a single line of standard input, without consuming a following newline.

procedure readLn(args: arguments)

Read one or more values from a single line of standard input. Any extra text on the input line is ignored.

function seekEof : boolean

Advance past all whitespace (such as spaces or newlines), then return true if we have reached the end of standard input, false otherwise.

procedure write(args: arguments)

Write one or more values to standard output, with no following newline.

procedure writeln(args: arguments)

Write one or more values to standard output, followed by a newline.

procedure assign(out f: file; name: string) procedure assign(out t: text; name: string)

Assign a filename to a binary or text file.

procedure close(var f: file) procedure close(var t: text)

Close a binary or text file.

function eof(var f: file) function eof(var t: text)

Return true if we are at the end of the given file.

function eoln(var t: text)

Return true if we are at the end of a line.

procedure read(var f: file; args: arguments) procedure read(var f: text; args: arguments)

Read one or more values from a binary or text file.

procedure readln(var f: text; args: arguments)

Read a line containing one or more values from a text file.

procedure reset(var f: file) procedure reset(var t: text)

Open a file for reading.

procedure rewrite(var f: file) procedure rewrite(var t: text)

Open a file for writing. If the file does not exist, it is created. If the file exists, it is truncated to length 0.

procedure seek(var f: file; pos: int64)

Seek to a record offset in a file. This works only for binary files, not text files.

function seekEof(var t: text): boolean

Advance past all whitespace (such as spaces or newlines) in a text file, then return true if we are at the end of the file, false otherwise.

procedure write(var f: file; args: arguments) procedure write(var f: text; args: arguments)

Write one or more values to a binary or text file.

procedure writeln(var f: text; args: arguments)

Write a line containing one or more values to a text file.

MaxInt : integer

The maximum value that can be held in an integer. If you have enabled Delphi mode, integers are signed 32-bit values and MaxInt is 2,147,483,647.

function abs(l: integer) : integer function abs(d: double) : double

Return the absolute number of an integer or floating-point number.

function cos(d: double) : double

Return the cosine of the given angle in radians.

function exp(d: double) : double

Return the exponent of `d`

, i.e. the
number e to the power `d`

.

function frac(d: double) : double

Return the fractional part of a floating-point value. For example,
`frac(pi)`

is 0.14159...

function ln(d: double) : double

Return the natural logarithm of the value d, which must be positive.

function pi : double

Return the constant value π ≈ 3.14159...

function random(n: integer) : integer

Return a random integer r from a uniform distribution in the range 0 ≤ r < n .

procedure randomize

Initialize the random number generator with a seed based on the current time. You must call this once at the beginning of any program if you want random numbers to be different on each program run.

function round(d: double) : int64

Round a floating-point number to the nearest integer. The algorithm
uses "banker’s rounding": values of the form *i* +
0.5 (for any integer *i*) are always rounded towards an even
number.

function sin(d: double) : double

Return the sine of the given angle in radians.

function sqrt(d: double) : double

Return the square root of a floating-point number.

function trunc(d: double) : int64

Return the integer part of `d`

, which is
always smaller than (or equal to) `d`

in
absolute value.

LineEnding = #10

A newline character. The ASCII value of this character may vary from platform to platform.

function chr(b: byte) : char

Return the character with ASCII value `b`

.
For example, `chr(65)`

is `'A'`

.

function lowerCase(c: char): char function lowerCase(s: string): string

Convert a character or string to lowercase.

function ord(x: TOrdinal) : integer

Convert an ordinal value such as a character or enumerated value to
an integer. For example, `ord('A')`

is 65.

function pos(c: char; s: string): integer

Return the first index at which c occurs in s, or 0 if c is not in s.

function stringOfChar(c: char; n: integer) : string

Return a string consisting of the character `c`

repeated `n`

times.

function upCase(c: char): char function upCase(s: string): string

Convert a character or string to uppercase.

function fileExists(fileName: string) : boolean

Return true if the given file exists.

function floatToStr(value: double) : string

Convert a floating-point number to a string.

function intToStr(value: integer) : string

Convert an integer to a string.

function now : TDateTime

Return the current date and time.

function strToFloat(s: string) : double

Convert a string to a floating-point number. If the string does not represent a valid floating-point number, the program will fail.

function strToInt(s: string) : integer

Convert a string to an integer. If the string does not represent a valid integer, the program will fail.

function trim(s: string) : string

Trim whitespace from the ends of a string.