; Mesa-NovaDefs.asm; edited by Johnsson, April 6, 1979  5:15 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
hardMRE = 20		; non zero if MRE should trap to Nova Code
currentPSB = 21
readyList = 22
currentState = 23
bootPageTable = 24
Emulate = 25
  oSTOP = 1
  oME = 2
  oMXD = 3
  oMRE = 4
  oMXW = 5
  oNOTIFY = 6
  oBCAST = 7
  oREQUEUE = 10
CVA = 40		; Array of pointers to Naked CVs
ACTIVE = 453		; Active interrupt mask
INTPC = 500		; Saved PC on interrupt

; swat interface (OS 16 only)
callSwatTrap = 77402