; Mesa-NovaDefs.asm; edited by Johnsson, January 18, 1978  2:21 PM

; structure of monitor locks
lockqueue = 0		; lock: {locked, unlocked},
			; queue: POINTER [0..77777B] TO PSB

; structure of PSBs	; PSB: TYPE = RECORD [
link = 0		; link: PSBptr, -- must be 0 !!
cleanUpLink = 1		; cleanUpLink: PSBptr,
timeout = 2		; timeout: INTEGER
bitsandpriority = 3	; enterfailed, detached: BOOLEAN,
			; fill: [0..37B],
  state = 600		; state: {frameReady, frameTaken, dead, alive}
  timeoutAllowed = 100	; timeoutAllowed: BOOLEAN,
  abortPending = 40	; abortPending: BOOLEAN,
  timeoutPending = 20	; timeoutPending: BOOLEAN,
  waitingOnCV = 10	; waitingOnCV: BOOLEAN,
  priority = 7		; priority: [0..7],
frame = 4		; frame: FrameHandle]
lPSB = 5

; structure of StateVector
stk0 = 0
stkp = 10
dest = 11
source = 12
lStateVector = 11.

; structure of Frame
pc = 1

; fixed addresses
SDC = 20
currentPSB = 21
readyList = 22
currentState = 23
bootPageTable = 24
Emulate = 25
  oSTOP = 1
  oME = 4
  oMRE = 5
  oMXW = 6
  oMXD = 7
  oNOTIFY = 10
  oBCAST = 11
  oREQUEUE = 12
CVA = 40		; Array of pointers to Naked CVs
ACTIVE = 453		; Active interrupt mask
INTPC = 500		; Saved PC on interrupt