!!*****************************************************************
!!
!! 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