From: "Jonas Otter" <jonas at otter.se>
The architecture has so-called display registers, each of which pointed
to a stack frame for a lexicographical level in the code, i.e. the
procedure call level. Data is addressed as an address couple consisting
of a display register number and an offset, stored in a so-called
Indirect Reference Word (IRW). Data outside of the stack can be
addressed by means of descriptors. Data in another program's stack is
addressed by means of Stuffed Indirect Reference Words (SIRW), which
include a stack number and an offset. The operating system keeps track
of individual program stacks by means of a tree of pointers to job
stacks. Also, to keep track of the procedure calling and return linkage,
Mark Stack Control Words (MSCW) are created whenever a procedure is
called. The Display Registers point to the MSCWs.
Yes, that all sounds familiar.
Do you recall the sizes?
All this is designed to support block-structured high
level languages, in
fact all the operating system software is (was) written in various ALGOL
dialects.
My favorite dialect was NEWP. I particularly liked the UNSAFE directive.
I worked for Burroughs from just before the name change to Unisys
(summer '86) to spring '89, my first job out of college. I worked on A
Series, V Series, B1000, BTOS and DOS stuff while I was there. At
school, I used BSD Unix on VAX and DEC-20, so the Burroughs stuff was
really different (from stack machines to two-wire direct, poll/select
terminals) and fun to play with and learn.
alan