!!*****************************************************************
!!
!! SET BITS IN COMREG(26) TO CONTROL OMF GENERATION.
!!
!!****************************************************************
!!
SYSTEMROUTINESPEC  PHEX(INTEGER  N)

EXTERNALROUTINE  NOPTIONS(STRING  (63) S)
STRING  (5) AREA
STRING  (6) MODE
STRING  (12) C
INTEGER  J, K
INTEGER  I
CONSTSTRING  (5) ARRAY  AREAS(1 : 5) =   C 
"CODE","GLA","SST","STACK",""
CONSTSTRING  (6) ARRAY  MODES(0 : 4) =   C 
"DENSE","LOCAL","SPARSE","SERIAL",""
CONSTSTRING  (9) ARRAY  SK(1 : 23) =   C 
"MAP","FIXUPS","MAXKEYS","NOCASCADE","LIBPROC","SHARE",
"","","","","","","","","","","","","","","","NOLOCALS",
"***"
SYSTEMINTEGERMAPSPEC  COMREG(INTEGER  N)
   COMREG(26) = 0
   K = 0
   WHILE  S # '' THEN  CYCLE 
      UNLESS  S -> C.(",").S THEN  C = S AND  S = ""
      IF  C -> AREA.("=").MODE START 
         CYCLE  I = 1,1,5
            EXIT  IF  AREA = AREAS(I)
         REPEAT 
         -> ERROR IF  I = 5
         CYCLE  J = 0,1,4
            EXIT  IF  MODE = MODES(J)
         REPEAT 
         -> ERROR IF  J = 4
         COMREG(26) = COMREG(26)!(J<<(22+(I*2)))
         K = K!(1<<I)
      FINISH  ELSE  START 
         CYCLE  I = 1,1,23
            EXIT  IF  C = SK(I)
         REPEAT 
         -> ERROR IF  I = 16
         COMREG(26) = COMREG(26)!(1<<(I-1))
      FINISH 
   REPEAT 
   RETURN 
ERROR:

   PRINTSTRING("
NOPTIONS//   DO NOT RECOGNISE - ".C." ")
   NEWLINES(2)
END 

EXTERNALROUTINE  OMFPARM(STRING  (63) S)
   NOPTIONS(S)
END 
ENDOFFILE