Hardware manual

TruePredicate() always returns -1.
FalsePredicate() always returns 0.
Noop() null operation; returns its first argument if any.
Dvec(caller, nV1, nV2, ...) this routine allocates "dynamic" vectors in the current frame.
caller is the name of the procedure calling Dvec. The use of the
routine is best given with an example: the routine ShowOff
wants two vectors, V1 and V2:
let ShowOff(V1length, V2length) be
[
let V1 = V1length
let V2 = V2length
Dvec(ShowOff, lv V1, lv V2)
// now V1 points to a block V1length+1 words long
// and V2 points to a block V2length+1 words long
]
Warning: any addresses that point into the stack frame of
ShowOff before it is moved by the Dvec call will not be correct
after the call. Thus, for example, a "let a = vec 10" before the
call will cause the address in a to be useless after the call.
DefaultArgs(lvNa, base, dv1, dv2,.....) Utility procedure to fill in default arguments. lvNa points to
the "numargs" variable in the procedure; abs(base) is the
number of initial arguments that are not to be defaulted; the dv
i
are the default values (i<11). If base<0, then an actual parameter
of zero will cause the default to be installed; otherwise only
(trailing) omitted parameters are defaulted. Thus:
let Mine(how, siz, zone, errRtn; numargs n) be
[
DefaultArgs(lv n, -1, 100, sysZone, SysErr)
...
]
will default arguments siz, zone, errRtn if missing or zero to 100,
sysZone and SysErr respectively. Note that Bcpl will allow you
to omit parameters in the middle of a parameter list by using
"nil," but DefaultArgs has no way of knowing that you did this.
MoveBlock(dest, src, count) Uses BLT: for i = 0 to count-1 do dest!i = src!i.
SetBlock(dest, val, count) Uses BLKS: for i = 0 to count-1 do dest!i = val.
Zero(dest, count) Same as SetBlock(dest, 0, count).
BitBlt(bbt) Executes the BITBLT instruction with bbt in AC2.
Usc(a, b) Usc performs an unsigned compare of a and b and returns -1 if
a<b, 0 if a=b, 1 if a>b.
Min(a, b), Max(a, b) Returns the minimum or maximum of two signed integers,
which must differ by less than 2^15.
Umin(a, b), Umax(a, b) Returns the minimum or maximum of two unsigned integers.
Alto Operating System May 5, 1980 14
For Xerox Internal Use Only -- December 15, 1980