ICUTPL488                     
[   
[      TPL file 
[
[   
[   *** Nucleus Files ***
[   
[       NUCDAT.A38
[   
#GEN NUCDA.A38
#MESSAGE Beginning NUCLEUS File Generation
[
NAME NUCDAT
[
#IF #nuc.deh = 'Y'
    extrn systemexceptionhandler : near
#ENDIF
#IF #nuc.deh = 'N'
    extrn suspend_me : near
#ENDIF
#IF #nuc.deh = 'S'
    extrn sdb_call : near
#ENDIF
#IF #nuc.deh = 'J'
    extrn del_cur_job : near
#ENDIF
#IF #nuc.deh = 'U'
    extrn rqsysex : near
#ENDIF
[
DATA    SEGMENT RW PUBLIC 
[
    	PUBLIC BUS_TYPE
   #IF #hard.bus = '1'
#ASSIGN #3 = 1
   #ENDIF
   #IF #hard.bus = '2'
#ASSIGN #3 = 2
   #ENDIF
   #IF #hard.bus = '3'
#ASSIGN #3 = 3
   #ENDIF
BUS_TYPE        DB #3
    	PUBLIC MESSAGE_OFF_MASK
   #IF #hard.bus = '2'
#ASSIGN #3 = 1 << #mbii.mdl
   #ELSE
#ASSIGN #3 = 0
   #ENDIF
MESSAGE_OFF_MASK    DB #3
        PUBLIC  CLOCK_LEVEL
CLOCK_LEVEL     DB #hard.cil
        PUBLIC  CLOCK_OFF_MASK
#ASSIGN #3 = 1 << #hard.cil
CLOCK_OFF_MASK  DB #3
        PUBLIC  CLOCK_CONTROL_PORT
#ASSIGN #3 = #hard.tp + 3 * #hard.tps
CLOCK_CONTROL_PORT  DW  #3
        PUBLIC  CLOCK_X_PORT
#ASSIGN #3 = #hard.tp + #hard.tps * #hard.cn
CLOCK_X_PORT    DW  #3
        PUBLIC  CLOCK_COUNT
#ASSIGN #3 = #hard.cf * #hard.cin
CLOCK_COUNT     DW  #3
        PUBLIC  CLOCK_MODE_WORD
#ASSIGN #3 = 34H + 40H * #hard.cn
CLOCK_MODE_WORD DB  #3
[
        PUBLIC  INIT_CMD3_MASTER
#IF   ~ #int.is          [   if no slaves
INIT_CMD3_MASTER DB 0
[   
#ELSE
    #ASSIGN #2 = 0
    #ASSIGN #1 = 1
    #LOOP #1 #REP(SLAVE)
      #ASSIGN #2 = #2 | (1 << #slave(#1).sil) [  do not change the value of #2
                                               [  it is used for IMR, EOI, PIF
    #ENDLOOP
INIT_CMD3_MASTER DB #2
#ENDIF
        PUBLIC  IMR_PORT
#ASSIGN #4 = #int.mp + #int.mps  [  imr(0) is master any other slave imr is 
                                 [ initialized to this value if slave not used.
IMR_PORT DW #4
[
[       #1 is the number of the slave being handled
[       #7 is the number of the slave of the next line
[       #8 is the number of the next line in the screen to be handled
[
#ASSIGN #8 = 1
#ASSIGN #1 = 0
#LOOP #1  7    
    #IF   #8 > #REP(SLAVE)      [  there isn't a  next line
        DW  #4              
    #ELSE   
        [
        #ASSIGN  #7 = #slave(#8).sil
        [   if slave #1 is not the next slave  OR  next slave is not chosen
        #IF  (#1 < #7) |  (0 = ( #2 & (1 << #7)) )
        DW  #4              
        #ELSE   [  slave #1 is the next and it was chosen
            #ASSIGN #5 = #slave(#8).sip + #slave(#8).sps
        DW  #5
            #ASSIGN  #8 = #8 + 1        [ move to next
        #ENDIF
    #ENDIF
#ENDLOOP
        PUBLIC  EOI_PORT
#ASSIGN #4 = #int.mp               [   imr(0) is master any other slave imr is 
                                  [   initialized to this value if slave not used.
EOI_PORT DW #4
[
[       #1 is the number of the slave being handled
[       #7 is the number of the slave of the next line
[       #8 is the number of the next line in the screen to be handled
[
#ASSIGN #8 = 1
#ASSIGN #1 = 0
#LOOP #1  7    
    #IF   #8 > #REP(SLAVE)      [  there isn't a  next line
        DW  #4              
    #ELSE   
        [
        #ASSIGN  #7 = #slave(#8).sil
        [   if slave #1 is not the next slave  OR  next slave is not chosen
        #IF  (#1 < #7) |  (0 = ( #2 & (1 << #7)) )
        DW  #4              
        #ELSE   [  slave #1 is the next and it was chosen
        DW  #slave(#8).sip 
            #ASSIGN  #8 = #8 + 1        [ move to next
        #ENDIF
    #ENDIF
#ENDLOOP
        PUBLIC  ISR_PORT
ISR_PORT        equ EOI_PORT
        PUBLIC  PIC_INFO
PIC_INFO DB 080H            [   pic present + 8254pic = 80H + 0 -> fixed val
[
[       #1 is the number of the slave being handled
[       #7 is the number of the slave of the next line
[       #8 is the number of the next line in the screen to be handled
[
#ASSIGN #8 = 1
#ASSIGN #1 = 0
#LOOP #1  7    
    #IF   #8 > #REP(SLAVE)      [  there isn't a  next line
        DB  0              
    #ELSE   
        [
        #ASSIGN  #7 = #slave(#8).sil
        [   if slave #1 is not the next slave  OR  next slave is not chosen
        #IF  (#1 < #7) |  (0 = ( #2 & (1 << #7)) )
        DB  0              
        #ELSE   [  slave #1 is the next and it was chosen
        DB  80h
            #ASSIGN  #8 = #8 + 1        [ move to next
        #ENDIF
    #ENDIF
#ENDLOOP
        PUBLIC  NDP_EXISTS
#IF #hard.npx
NDP_EXISTS      DB  001H
#ELSE
NDP_EXISTS      DB  000H
#ENDIF
        PUBLIC  ICU_INIT_BOARD
[
[  Change the rom_board_type if you change the icu_init_board list.
[
#IF #hard.if = 0
ICU_INIT_BOARD  DB  000H
#ENDIF
#IF #hard.if = 1
ICU_INIT_BOARD  DB  001H
#ENDIF
#IF #hard.if = 2
ICU_INIT_BOARD  DB  000H
#ENDIF
#IF #hard.if = 3
ICU_INIT_BOARD  DB  003H
#ENDIF
#IF #hard.if = 4
ICU_INIT_BOARD  DB  004H
#ENDIF
#IF #hard.if = 5
ICU_INIT_BOARD  DB  005H
#ENDIF
#IF #hard.if = 6
ICU_INIT_BOARD  DB  006H
#ENDIF
#IF #hard.if = 7
ICU_INIT_BOARD  DB  007H
#ENDIF
#IF #hard.if = 8
ICU_INIT_BOARD  DB  008H
#ENDIF
#IF #hard.if = 0FDH
ICU_INIT_BOARD  DB  0FDH
#ENDIF
#IF #hard.if = 0FEH
ICU_INIT_BOARD  DB  0FEH
#ENDIF
#IF #hard.if = 0FFH
ICU_INIT_BOARD  DB  0FFH
#ENDIF
        PUBLIC  SYS_CONSOLE
#IF #nuc.rie
SYS_CONSOLE  DB  001H
#ELSE
SYS_CONSOLE  DB  000H
#ENDIF
[   
even
        PUBLIC  ndpsaveareasize
ndpsaveareasize DW  110
        PUBLIC  ROOT_OBJ_DIR
ROOT_OBJ_DIR    DW  #nuc.rod
[    exception mode: Never - 0
[                    prog  - 1
[                    environ - 2
[                    all   - 3
        PUBLIC  ROOT_EXCEP_MODE
#IF #nuc.em = 'N'
ROOT_EXCEP_MODE DB  000H
#ENDIF
#IF #nuc.em = 'P'
ROOT_EXCEP_MODE DB  001H
#ENDIF
#IF #nuc.em = 'E'
ROOT_EXCEP_MODE DB  002H
#ENDIF
#IF #nuc.em = 'A'
ROOT_EXCEP_MODE DB  003H
#ENDIF
[
[ NMI handler:
[     0 - Yes, SDB, User
[     1 - No
[     2 - Job
[     3 - Ignore
[
        PUBLIC  NMI_HANDLER_TYPE
#IF ( #nuc.nmi = 'Y') | ( #nuc.nmi = 'S') | ( #nuc.nmi = 'U')
NMI_HANDLER_TYPE DB 00H
#ENDIF
#IF #nuc.nmi = 'N'
NMI_HANDLER_TYPE DB 01H
#ENDIF
#IF #nuc.nmi = 'J'
NMI_HANDLER_TYPE DB 02H
#ENDIF
#IF #nuc.nmi = 'I'
NMI_HANDLER_TYPE DB 03H
#ENDIF
        PUBLIC CONFIG_NMI_ENABLE
CONFIG_NMI_ENABLE   DB #nuc.neb
[
[ HW handler:
[     0 - Yes, SDB
[     1 - No
[     2 - Job
[
        PUBLIC  HW_HANDLER_TYPE
#IF (#nuc.stk = 'Y') | (#nuc.stk = 'S')
HW_HANDLER_TYPE DB 00H
#ENDIF
#IF #nuc.stk = 'N'
HW_HANDLER_TYPE DB 01H
#ENDIF
#IF #nuc.stk = 'J'
HW_HANDLER_TYPE DB 02H
#ENDIF
        PUBLIC  PARAM_VALIDATE
[   
#IF #nuc.pv | #glob.bio
PARAM_VALIDATE  DB  001H
#ELSE
PARAM_VALIDATE  DB  000H
#ENDIF
        PUBLIC  systemexceptionhandlerptr
#IF #nuc.deh = 'Y'
systemexceptionhandlerptr   DP  systemexceptionhandler
#ENDIF
#IF #nuc.deh = 'N'
systemexceptionhandlerptr   DD  suspend_me
#ENDIF
#IF #nuc.deh = 'S'
systemexceptionhandlerptr   DP  sdb_call
#ENDIF
#IF #nuc.deh = 'U'
systemexceptionhandlerptr   DD  rqsysex
#ENDIF
#IF #nuc.deh = 'J'
systemexceptionhandlerptr   DD  del_cur_job
#ENDIF
[            PUBLIC  SLOT_GROUPS
[    SLOT_GROUPS     DW ..........
[            PUBLIC  N_SLOT_GROUPS
[    N_SLOT_GROUPS   DB  ....
[      
[          #1 - loop variable
[          #3 - number of slot groups
[          #4 - value of last minimum osext.gsn 
[          #5 - value of current minimum osext.gsn 
[          #6 - index of the last osext
[          #7 - index of the current osext
[          #9 - maximum slot number
[   
[    calculate #9 - the maximum number of slots 
[              #9 = MAX(nuc.nge, nuc.hse+1, (MAX(osext.gsn) + 1)) | rom.nsg
        PUBLIC  SLOT_GROUPS
SLOT_GROUPS     LABEL DWORD
#ASSIGN #3 = 0
#ASSIGN #9 = #nuc.nge
#IF #rom.syr
	#ASSIGN #9 = #rom.nsg
#ENDIF
#IF #nuc.hse >= #nuc.nge
    #ASSIGN #9 = #nuc.hse + 1
#ENDIF
#ASSIGN #1 = 1
#LOOP #1 #REP(OSEXT)
    #IF #osext(#1).gsn >= #9
        #ASSIGN #9 = #osext(#1).gsn + 1
    #ENDIF
#ENDLOOP
[   
#IF   #REP(osext) = 0
    #IF  #nuc.hse = 0
          [     if there is no lse,hse
        #ASSIGN #2 = #9 - 1
        #IF 440 <= #2
       DW     440
       DW     ##2
            #ASSIGN #3 = #3 + 1
        #ENDIF
    #ELSE   [    there is lse,hse
        #ASSIGN #2 = #nuc.lse - 1
        #IF 440 <= #2
       DW     440
       DW     ##2
            #ASSIGN #3 = #3 + 1
        #ENDIF
        #ASSIGN  #2 = #nuc.hse+1
        #ASSIGN  #8 = #9 - 1
        #IF #2 <= #8
       DW     ##2
       DW     ##8
            #ASSIGN #3 = #3 + 1
        #ENDIF
    #ENDIF
#ELSE
    #ASSIGN #4 = 439
    #ASSIGN #5 = 0
    #ASSIGN #6 = 1
    #ASSIGN #7 = 1
    #FOREVER
        [   
        [          find the next OS Extension. 
        [          #5 - used to find the next minimum osext
        [   
        [     update the last and current osext.gsn 
        #ASSIGN #5 = 0FFFFH
        #ASSIGN #1 = 1
        #LOOP #1 #REP(OSEXT)
            [   
            [        if osext(#1).gsn is bigger then the last and smaller then 
            [          the minimum temporary then swap between them and save it's 
            [          number of repetition
            #IF ( #osext(#1).gsn > #4 )  &  ( #osext(#1).gsn < #5 )
                #ASSIGN #5 = osext(#1).gsn     
                #ASSIGN #7 = #1
            #ENDIF 
            [   
            [      if osext(#1).gsn is equal to the last minimum and their indexes
            [        are not the same then there are two osext having the same EPN
            [    first iteration #6 = 1
            #IF ( #osext(#1).gsn = #4 )  &  ( #1 <> #6 )
                #ERROR Two OS Extensions have the same slot number
            #ENDIF 
        #ENDLOOP
        [   
        [       if current = last then last <- #9
        [   
        #IF  #5 = 0FFFFH
            #ASSIGN #5 = #9
        #ENDIF
        #IF  (#nuc.hse = 0) |  (#5 < #nuc.lse)  |  (#4 > #nuc.hse) 
            [     if there is no lse,hse or outside the lse-hse area
            #ASSIGN #2 = #4 + 1
            #ASSIGN #8 = #5 - 1
            #IF #2 <= #8
       DW     ##2
       DW     ##8
                #ASSIGN #3 = #3 + 1
            #ENDIF
        #ENDIF
        #IF #nuc.hse <> 0
        [      if    current >= hse  and  last < lse 
            #IF  (#5 >= #nuc.hse)   &   (#4 < #nuc.lse)
                #ASSIGN #2 = #4+1
                #ASSIGN #8 = #nuc.lse - 1
                #IF  #2 <= #8
       DW     ##2
       DW     ##8
                    #ASSIGN #3 = #3 + 1
                #ENDIF         
                #ASSIGN #2 = #nuc.hse+1
                #ASSIGN #8 = #5 - 1
                #IF  #2 <= #8
       DW     ##2
       DW     ##8
                    #ASSIGN #3 = #3 + 1
                #ENDIF         
            #ENDIF         
        #ENDIF         
        [   
        [    #5 = #9 when it is the last osext.
        [   
        #IF #5 = #9
            #EXIT
        #ENDIF
        #ASSIGN #4 = #5
        #ASSIGN #6 = #7
    #ENDFOREVER
#ENDIF
        PUBLIC  N_SLOT_GROUPS
N_SLOT_GROUPS   DB  #3
even
[
        PUBLIC  ICU_IDT_LIM
#ASSIGN #2 = #nuc.nie - 1
ICU_IDT_LIM     DW  #2
[
#ASSIGN #2 = #REP(MEMF)
        PUBLIC  N_AREAS
N_AREAS         DW  #2
        PUBLIC  M_AREAS
M_AREAS LABEL DWORD
#ASSIGN #1 = 1
#LOOP #1 #REP(MEMF)
                DD  #memf(#1).fsl
                DD  #memf(#1).fsh
#ENDLOOP
[    and off all the numbers...
        PUBLIC  LEVEL_S_SLAVE
#IF #REP(slave) = 0
LEVEL_S_SLAVE   DB  0
#ELSE
    #ASSIGN #2 = 0
    #ASSIGN #1 = 1
    #LOOP #1 #REP(SLAVE)
        #IF #slave(#1).lss
            #ASSIGN #3 = 1
        #ELSE
            #ASSIGN #3 = 0
        #ENDIF
        #ASSIGN #2 = #2 + ( #3 << #slave(#1).sil )
    #ENDLOOP
LEVEL_S_SLAVE   DB  #2
#ENDIF
[
        PUBLIC  ROUND_ROBIN_LIMIT
ROUND_ROBIN_LIMIT   DB  #nuc.rrp
        PUBLIC  K_TIME_QUOTA
K_TIME_QUOTA    DB  #nuc.rrt
                DB  0
   #IF #nuc.mce <> 0
    #ASSIGN #2 = ( #nuc.mce * 6 ) + 2
   #ELSE
    #ASSIGN #2 = 1
   #ENDIF
        PUBLIC  I_DATACHAIN
I_DATACHAIN     DB  #2  DUP (?)
        PUBLIC  O_DATACHAIN
O_DATACHAIN     DB  #2  DUP (?)
[
#IF #REP(COMNT) = 0
	PUBLIC	SYSINFO_TEXT
SYSINFO_TEXT	DB	' ',0
#ENDIF
#ASSIGN #1 = 1
#LOOP #1 #REP(COMNT)
	#IF #1 = 1
		#IF #REP(comnt) <> 1
	PUBLIC	SYSINFO_TEXT
SYSINFO_TEXT	DB	'#COMNT(#1).NAM',0DH,0AH
		#ELSE
	PUBLIC	SYSINFO_TEXT
SYSINFO_TEXT	DB	'#COMNT(#1).NAM',0
		#ENDIF
	#ELSE
		#IF #REP(comnt) <> #1
				DB	'#COMNT(#1).NAM',0DH,0AH
		#ELSE
				DB	'#COMNT(#1).NAM',0
		#ENDIF
	#ENDIF
#ENDLOOP
    	PUBLIC MON_PRESENT
#IF #glob.SDM
MON_PRESENT  DB  0FFH
#ELSE
MON_PRESENT  DB  000H
#ENDIF
DATA    ENDS
[
JOBDAT  SEGMENT RW  PUBLIC
$INCLUDE    (#incl.nuf!NRJOB.INC)
#ASSIGN #2 = #nuc.rod * 4
                DD  #2  DUP (0)
JOBDAT  ENDS
[
CODE SEGMENT ER   PUBLIC 
  #IF (#nuc.cs)
    PUBLIC  MESSAGE_BASE
MESSAGE_BASE        DW #mbii.mdp
    PUBLIC  MESSAGE_SEPARATION
MESSAGE_SEPARATION  DB #mbii.mds
    PUBLIC  MESSAGE_LEVEL
MESSAGE_LEVEL       DB #mbii.mdl
    PUBLIC  MESSAGE_WIDTH
    #IF #mbii.abw = '1'
MESSAGE_WIDTH       DB 085H
    #ELSE
MESSAGE_WIDTH       DB 086H
    #ENDIF
[
    PUBLIC DMADATAPORT
DMADATAPORT         DW #mbii.ddp
    PUBLIC DMABASEADDRESS
DMABASEADDRESS      DW #mbii.aib
    PUBLIC DMAINPUTCHANNEL
DMAINPUTCHANNEL     DW #mbii.aci
    PUBLIC DMAOUTPUTCHANNEL
DMAOUTPUTCHANNEL    DW #mbii.aco
    PUBLIC DMABURSTREG
DMABURSTREG         DW #mbii.gbr
    PUBLIC DMADELAYREG
DMADELAYREG         DW #mbii.gdr
    PUBLIC  DAG_PRESENT
	#IF #mbii.dda
DAG_PRESENT     DB  001H
	#ELSE
DAG_PRESENT     DB  000H
	#ENDIF
    PUBLIC DAG_BASE_PORT
DAG_BASE_PORT       DW #mbii.dba
    PUBLIC DAGDUTYCYCLE
DAGDUTYCYCLE        DB #mbii.mdc
    PUBLIC LOCALBUSWIDTH
    #IF #mbii.abw = '1'
LOCALBUSWIDTH       DB 16
    #ELSE
LOCALBUSWIDTH       DB 32
    #ENDIF
    PUBLIC DUTYCYCLE1
DUTYCYCLE1          DB #mbii.mco
    PUBLIC DUTYCYCLE2
DUTYCYCLE2          DB #mbii.mct
    PUBLIC MSGTASKPRIORITY
MSGTASKPRIORITY     DB ##ncom.pmt
    PUBLIC DELTASKPRIORITY
DELTASKPRIORITY     DB ##ncom.pdt
    PUBLIC NUM_TRANS_BUFFERS
NUM_TRANS_BUFFERS   DW ##ncom.mst
    PUBLIC NUM_CNTRL_BUFFERS
NUM_CNTRL_BUFFERS   DW ##ncom.msm
    PUBLIC INTERNAL_TIMEOUT
INTERNAL_TIMEOUT    DW #ncom.rft
    PUBLIC COMM_QUEUE_SIZE
COMM_QUEUE_SIZE     DB 5
    PUBLIC COMM_NUM_TRANS
COMM_NUM_TRANS      DB ##ncom.dpt
    PUBLIC CONFIG_HOST_ID
CONFIG_HOST_ID      DW #ncom.dhi
    PUBLIC PARAM_VALID
    #IF #ncom.vbp
PARAM_VALID         DB  001H
    #ELSE
PARAM_VALID         DB  000H
    #ENDIF
  #ENDIF
    #ASSIGN #2 = (#nuc.mce * 6) + 2
    PUBLIC CHAINBLOCKSIZE
CHAINBLOCKSIZE      DW #2
    PUBLIC MAXELEMENTS
MAXELEMENTS         DW #nuc.mce
#IF #nuc.mce <> 0
    #ASSIGN #2 = (#nuc.mce * 8) - 8
#ELSE
    #ASSIGN #2 = 0
#ENDIF
    PUBLIC LAST_LOGICAL_ENTRY
LAST_LOGICAL_ENTRY	DD #2
    #ASSIGN #2 = (#nuc.mce * 8) + 2
    PUBLIC LOGCHAINBLOCKSIZE
LOGCHAINBLOCKSIZE	DW #2  
    PUBLIC MSG_TRACE_LENGTH
MSG_TRACE_LENGTH    DB  #ncom.ntm
CODE ENDS
END
#ENDFILE
[   
[       NTABLE.A38
[
#GEN NTABL.A38
[
NAME    NTABLE
$INCLUDE (#incl.nuf!NTABLE.INC)
[ For SDM III initialization
#IF glob.SDM
extrn	M_INITIALIZE:	far
extrn	SDM_INITIALIZE:	far
extrn	SDM_INTERCEPT:	far
#ENDIF
CODE    SEGMENT ER PUBLIC 
    extrn CPYRT : near
#IF #hard.npx
    extrn NPX_IN_SYSTEM : near
#ELSE
    extrn NO_NPX_IN_SYSTEM : near
#ENDIF
    extrn RMX_SYSTEM : near
    extrn RQCREATEJOB : near
    extrn RQCREATETASK : near
    extrn RQDELETETASK : near
    extrn RQSUSPENDTASK : near
    extrn RQRESUMETASK : near
    extrn RQSLEEP : near
    extrn RQGETTASKTOKENS : near
    extrn RQENDINITTASK : near
    extrn RQSIGNALEXCEPTION : near
    extrn RQGETTYPE : near
    extrn RQENABLEDELETION : near
    extrn RQDISABLEDELETION : near
    extrn RQFORCEDELETE : near
    extrn RQCATALOGOBJECT : near
    extrn RQLOOKUPOBJECT : near
    extrn RQUNCATALOGOBJECT : near
    extrn RQSETOSEXTENSION : near
    extrn RQCHANGEOBJECTACCESS : near
    extrn RQGETOBJECTACCESS : near
    extrn RQDELETEJOB : near
    extrn RQOFFSPRING : near
    extrn RQGETPRIORITY : near
    extrn RQSETPRIORITY : near
    extrn RQCREATEMAILBOX : near
    extrn RQRECEIVEMESSAGE : near
    extrn RQSENDMESSAGE : near
    extrn RQDELETEMAILBOX : near
    extrn RQCREATESEMAPHORE : near
    extrn RQRECEIVEUNITS : near
    extrn RQSENDUNITS : near
    extrn RQDELETESEMAPHORE : near
    extrn RQCREATEREGION : near
    extrn RQSENDCONTROL : near
    extrn RQRECEIVECONTROL : near
    extrn RQACCEPTCONTROL : near
    extrn RQDELETEREGION : near
    extrn RQCREATESEGMENT : near
    extrn RQDELETESEGMENT : near
    extrn RQGETSIZE : near
    extrn RQGETPOOLATTRIB : near
    extrn RQSETPOOLMIN : near
    extrn RQCREATEDESCRIPTOR : near
    extrn RQDELETEDESCRIPTOR : near
    extrn RQCHANGEDESCRIPTOR : near
    extrn RQGETADDRESS : near
    extrn RQSETINTERRUPT : near
    extrn RQRESETINTERRUPT : near
    extrn RQENTERINTERRUPT : near
    extrn RQEXITINTERRUPT : near
    extrn RQSIGNALINTERRUPT : near
    extrn RQWAITINTERRUPT : near
    extrn RQENABLE : near
    extrn RQDISABLE : near
    extrn RQGETLEVEL : near
    extrn RQCREATEEXTENSION : near
    extrn RQCREATECOMPOSITE : near
    extrn RQDELETEEXTENSION : near
    extrn RQDELETECOMPOSITE : near
    extrn RQINSPECTCOMPOSITE : near
    extrn RQALTERCOMPOSITE : near
    extrn RQSETEXCEPTIONHANDLER : near
    extrn RQGETEXCEPTIONHANDLER : near
    extrn RQEOFFSPRING : near
    extrn RQTIMEDINTERRUPT : near
    extrn RQSENDDATA : near
    extrn RQRECEIVEDATA : near
    extrn RQCREATEBUFFERPOOL : near
    extrn RQDELETEBUFFERPOOL : near
    extrn RQRELEASEBUFFER : near
    extrn RQREQUESTBUFFER : near
    extrn RQECREATEJOB_ : near
    extrn RQCREATETASK_ : near
    extrn RQDELETETASK_ : near
    extrn RQSUSPENDTASK_ : near
    extrn RQRESUMETASK_ : near
    extrn RQSLEEP_ : near
    extrn RQGETTASKTOKENS_ : near
    extrn RQENDINITTASK_ : near
    extrn RQSIGNALEXCEPTION_ : near
    extrn RQGETTYPE_ : near
    extrn RQENABLEDELETION_ : near
    extrn RQDISABLEDELETION_ : near
    extrn RQFORCEDELETE_ : near
    extrn RQCATALOGOBJECT_ : near
    extrn RQLOOKUPOBJECT_ : near
    extrn RQUNCATALOGOBJECT_ : near
    extrn RQSETOSEXTENSION_ : near
    extrn RQCHANGEOBJECTACCESS_ : near
    extrn RQGETOBJECTACCESS_ : near
    extrn RQDELETEJOB_ : near
    extrn RQOFFSPRING_ : near
    extrn RQGETPRIORITY_ : near
    extrn RQSETPRIORITY_ : near
    extrn RQCREATEMAILBOX_ : near
    extrn RQRECEIVEMESSAGE_ : near
    extrn RQSENDMESSAGE_ : near
    extrn RQDELETEMAILBOX_ : near
    extrn RQCREATESEMAPHORE_ : near
    extrn RQRECEIVEUNITS_ : near
    extrn RQSENDUNITS_ : near
    extrn RQDELETESEMAPHORE_ : near
    extrn RQCREATEREGION_ : near
    extrn RQSENDCONTROL_ : near
    extrn RQRECEIVECONTROL_ : near
    extrn RQACCEPTCONTROL_ : near
    extrn RQDELETEREGION_ : near
    extrn RQCREATESEGMENT_ : near
    extrn RQDELETESEGMENT_ : near
    extrn RQGETSIZE_ : near
    extrn RQSETPOOLMIN_ : near
    extrn RQCREATEDESCRIPTOR_ : near
    extrn RQDELETEDESCRIPTOR_ : near
    extrn RQCHANGEDESCRIPTOR_ : near
    extrn RQGETADDRESS_ : near
    extrn RQSETINTERRUPT_ : near
    extrn RQRESETINTERRUPT_ : near
    extrn RQWAITINTERRUPT_ : near
    extrn RQENABLE_ : near
    extrn RQDISABLE_ : near
    extrn RQCREATEEXTENSION_ : near
    extrn RQCREATECOMPOSITE_ : near
    extrn RQDELETEEXTENSION_ : near
    extrn RQDELETECOMPOSITE_ : near
    extrn RQINSPECTCOMPOSITE_ : near
    extrn RQALTERCOMPOSITE_ : near
    extrn RQSETEXCEPTIONHANDLER_ : near
    extrn RQGETEXCEPTIONHANDLER_ : near
    extrn RQEOFFSPRING_ : near
    extrn RQGETPOOLATTRIB_ : near
    extrn RQTIMEDINTERRUPT_ : near
    extrn RQSENDDATA_ : near
    extrn RQRECEIVEDATA_ : near
#IF #hard.bus = '2'
    extrn RQGETINTERCONNECT_ : near
    extrn RQSETINTERCONNECT_ : near
#ENDIF
    extrn RQCREATEBUFFERPOOL_ : near
    extrn RQDELETEBUFFERPOOL_ : near
    extrn RQRELEASEBUFFER_ : near
    extrn RQREQUESTBUFFER_ : near
#IF (#nuc.cs)
    extrn RQGETHOSTID_: near
    extrn RQATTACHPORT_: near
    extrn RQBROADCAST_: near
    extrn RQCANCEL_: near
    extrn RQCONNECT_: near
    extrn RQCREATEPORT_: near
    extrn RQDELETEPORT_: near
    extrn RQDETACHPORT_: near
    extrn RQGETPORTATTRIBUTES_: near
    extrn RQSEND_: near
    extrn RQSENDRSVP_: near
    extrn RQSENDREPLY_: near
    extrn RQSENDSIGNAL_: near
    extrn RQRECEIVE_: near
    extrn RQRECEIVEREPLY_: near
    extrn RQRECEIVESIGNAL_: near
    extrn RQRECEIVEFRAGMENT_: near
    extrn RQATTACHBUFFERPOOL_: near
    extrn RQDETACHBUFFERPOOL_: near
    extrn COMMINIT: near
#ELSE
PUBLIC	MESSAGE_TASK2, K_DELETE_PT_LST, K_INSERT_PT_PRI, COMMINIT

MESSAGE_TASK2	label	near
K_DELETE_PT_LST	label	near
K_INSERT_PT_PRI	label	near
COMMINIT		label	near
	RET
#ENDIF
[ For SDM III initialization
#IF ~glob.SDM
PUBLIC  M_INITIALIZE
M_INITIALIZE	proc	far
	RET
M_INITIALIZE	ENDP
PUBLIC  SDM_INITIALIZE
SDM_INITIALIZE	proc	far
	RET
SDM_INITIALIZE	ENDP
PUBLIC  SDM_INTERCEPT
SDM_INTERCEPT	proc	far
	RET 14H
SDM_INTERCEPT	ENDP
#ENDIF
CODE ENDS
END
#ENDFILE
[   
[       NJOBCF.A38
[   
#GEN NJOBC.A38
[
NAME    NJOBCF
$INCLUDE (#incl.nuf!NJOBCF.MAC)
#IF #glob.sdb
    extrn   rqsdbinittask : far
#ENDIF
#IF #glob.bio
    extrn    rqaiosinittask : far
#ENDIF
#IF (#sysj.pci)
    extrn   pciinittask : far
    extrn	pcidata     : far
#ENDIF
#IF (#glob.net) & (#glob.bio)
    #IF #rnet.ce
    extrn   rmxnet_begin : far
    #ELSE
    extrn   rmxnet_cp_begin : far
    #ENDIF
#ENDIF
#IF (#sysj.ina) & ~(#glob.net)
    extrn   mipdriver     : far
#ENDIF
#IF (#sysj.tp4) & ~(#glob.net)
    extrn   commentry     : far
#ENDIF
#IF (#sysj.dl) & (#glob.bio) & (#hard.bus = '2')
    extrn   rqdlinittask : far
    extrn   rqdldata     : far
#ENDIF
#IF (#sysj.atc) & (#hard.bus = '2') & (#glob.bio)
    extrn   atcsinittask : far
    extrn	atcsdata     : far
#ENDIF
#IF (#sysj.a50) & (#hard.bus = '2') 
    extrn   atcs450inittask : far
    extrn	atcs450data     : far
#ENDIF
#IF (#sysj.vts) & (#glob.bio)
    extrn   srvstart     : far
#ENDIF
#IF (#sysj.fpi) & (#hard.bus = '2')
    extrn   fpiinittask : far
    extrn	fpidata     : far
#ENDIF
#IF #glob.eio
    extrn   rqeiosinittask : far
#ENDIF
#IF #glob.hi
    extrn    rqhiinittask : far
#ENDIF
[
#ASSIGN #1 = 1
#LOOP #1 #REP(USERJ)
    #ADD_FAR_EXTRN   #userj(#1).tsa
    #IF #LEN(userj(#1).var) <> 0
    #ADD_FAR_EXTRN   #userj(#1).var
    #ENDIF
    #IF #LEN(userj(#1).ehs) <> 0
    #ADD_FAR_EXTRN   #userj(#1).ehs
    #ENDIF
#ENDLOOP
[
#ASSIGN #1 = 1
#LOOP #1 #REP(osext)
    #IF #LEN(osext(#1).EPN) <> 0
    #ADD_FAR_EXTRN  #osext(#1).EPN
    #ENDIF
#ENDLOOP
[
DATA    SEGMENT RW PUBLIC 
        PUBLIC  LEV1_JOBS
LEV1_JOBS:
#ASSIGN #2 = 0
#IF #glob.sdb
; System Debugger
User_Job2<      10H,; dir$size    
&    0100H,; pool$min    
&    0100H,; pool$max    
&      10H,; max$objects 
&      10H,; max$tasks   
&       0H,; max$prio    
&       0H,; ex_mode     
&    0H,0H,; ex_hand_p   
&       1H,; job$flags   
&      130,; task$prio   
&       0H,; filler      
&    rqsdbinittask,; task$entry  
&       0H,; ds$base     
&    0H,0H,; stk$ptr     
&     200H,; stk$size    
&       0H ; task$flags  
& >
#ASSIGN #2 = #2 + 1
#ENDIF
#IF #glob.bio
; BIOS
User_Job2<    00H,; dir$size  
&   #bios.pmi ,; pool$min    
&   #bios.pma ,; pool$max    
&       0FFFFH,; max$objects 
&       0FFFFH,; max$tasks   
&           0H,; max$prio    
&           0H,; ex_mode     
&        0H,0H,; ex_hand_p   
&           0H,; job$flags   
&          128,; task$prio   
&           0H,; filler      
&    rqaiosinittask,; task$entry  
&           0H,; ds$base     
&        0H,0H,; stk$ptr     
&         400H,; stk$size    
&           0H ; task$flags  
& >
#ASSIGN #2 = #2 + 1
#ENDIF
[
#IF (#sysj.pci)
; MBII PCI Server Job
%JOB1(#pcij.ods, #pcij.pmi, #pcij.pma, #pcij.mob, 
     #pcij.mtk, #pcij.mpr, 0, 0,
#IF #pcij.pv
        02H, #pcij.tp, pciinittask )
#ELSE
        00H, #pcij.tp, pciinittask )
#ENDIF
DW  SEG pcidata
%JOB2(0:0,  #pcij.ssi, 00H)
#ASSIGN #2 = #2 + 1
#ENDIF
[
#IF (#glob.net) & (#glob.bio)
; iRMX-NET Job
%JOB1(#rnetj.ods, #rnetj.pmi, #rnetj.pma, #rnetj.mob, 
     #rnetj.mtk, #rnetj.mpr, 0, 0,
#IF #rnetj.pv
        02H,
#ELSE
        00H,
#ENDIF
#IF #rnet.ce
             #rnetj.tp, rmxnet_begin )
#ELSE
             #rnetj.tp, rmxnet_cp_begin )
#ENDIF
DW  0
#IF #rnetj.npx
%JOB2(0:0,  #rnetj.ssi, 01H)
#ELSE
%JOB2(0:0,  #rnetj.ssi, 00H)
#ENDIF
#ASSIGN #2 = #2 + 1
#ENDIF
[
#IF (#sysj.tp4) & ~(#glob.net)
; iTP4 Job
%JOB1(#itp4j.ods, #itp4j.pmi, #itp4j.pma, #itp4j.mob, 
     #itp4j.mtk, #itp4j.mpr, 0, 0,
#IF #itp4j.pv
        02H, #itp4j.tp, commentry )
#ELSE
        00H, #itp4j.tp, commentry )
#ENDIF
DW  0
#IF #itp4j.npx
%JOB2(0:0,  #itp4j.ssi, 01H)
#ELSE
%JOB2(0:0,  #itp4j.ssi, 00H)
#ENDIF
#ASSIGN #2 = #2 + 1
#ENDIF
[
#IF (#sysj.ina) & ~(#glob.net)
; iNA Job
%JOB1(#inaj.ods, #inaj.pmi, #inaj.pma, #inaj.mob, 
     #inaj.mtk, #inaj.mpr, 0, 0,
#IF #inaj.pv
        02H, #inaj.tp, mipdriver )
#ELSE
        00H, #inaj.tp, mipdriver )
#ENDIF
DW  0
#IF #inaj.npx
%JOB2(0:0,  #inaj.ssi, 01H)
#ELSE
%JOB2(0:0,  #inaj.ssi, 00H)
#ENDIF
#ASSIGN #2 = #2 + 1
#ENDIF
[
#IF (#sysj.dl) & (#glob.bio) & (#hard.bus = '2')
; Downloader Job
user_Job2<   0 ,; dir$size 
&         400H ,; pool$min    
&       0FFFFH ,; pool$max    
&       0FFFFH,; max$objects 
&       0FFFFH,; max$tasks   
&           0H,; max$prio   
&           0H,; ex_mode     
&       0H, 0H,; ex_hand_p   
&           0H,; job$flags   
&          140,; task$prio   
&           0H,; filler   
& rqdlinittask,; task$entry 
& SEG rqdldata,; ds$base     
&        0H,0H,; stk$ptr    
&         400H,; stk$size   
&           0H ; task$flags  
&   >
#ASSIGN #2 = #2 + 1
#ENDIF
[
#IF (#sysj.atc) & (#hard.bus = '2') & (#glob.bio)
; MBII ATCS/279 Server Job
%JOB1(#atcj.ods, #atcj.pmi, #atcj.pma, #atcj.mob, 
     #atcj.mtk, #atcj.mpr, 0, 0,
#IF #atcj.pv
        02H, #atcj.tp, atcsinittask )
#ELSE
        00H, #atcj.tp, atcsinittask )
#ENDIF
DW  SEG atcsdata
%JOB2(0:0,  #atcj.ssi, 00H)
#ASSIGN #2 = #2 + 1
#ENDIF
[
#IF (#sysj.a50) & (#hard.bus = '2')
; MBII ATCS/450 Server Job
%JOB1(#atc50.ods, #atc50.pmi, #atc50.pma, #atc50.mob, 
     #atc50.mtk, #atc50.mpr, 0, 0,
#IF #atc50.pv
        02H, #atc50.tpr, atcs450inittask )
#ELSE
        00H, #atc50.tpr, atcs450inittask )
#ENDIF
DW  SEG atcs450data
%JOB2(0:0,  #atc50.ssi, 00H)
#ASSIGN #2 = #2 + 1
#ENDIF
[
#IF (#sysj.vts) & (#glob.bio)
; VT Server Job
%JOB1(#vtsj.ods, #vtsj.pmi, #vtsj.pma, #vtsj.mob, 
     #vtsj.mtk, #vtsj.mpr, 0, 0,
#IF #vtsj.pv
        02H, #vtsj.tp, srvstart )
#ELSE
        00H, #vtsj.tp, srvstart )
#ENDIF
DW  0
%JOB2(0:0,  #vtsj.ssi, 00H)
#ASSIGN #2 = #2 + 1
#ENDIF
[
#IF (#sysj.fpi) & (#hard.bus = '2') & (#glob.bio)
; Front Panel Interrupt Server Job
%JOB1(#fpij.ods, #fpij.pmi, #fpij.pma, #fpij.mob, 
     #fpij.mtk, #fpij.mpr, 0, 0,
#IF #fpij.pv
        02H, 155, fpiinittask )
#ELSE
        00H, 155, fpiinittask )
#ENDIF
DW  SEG fpidata
%JOB2(0:0,  #fpij.ssi, 00H)
#ASSIGN #2 = #2 + 1
#ENDIF
[
[ User jobs before EIOS
[
#ASSIGN #1 = 1
#LOOP #1 #REP(USERJ)
#IF (#userj(#1).seq = 'B') 
;*** JOB #1 ***
; NAME : #userj(#1).nam
#ASSIGN #3 = 0
#IF (#userj(#1).em = 'P') | (#userj(#1).em = 'A')
    #ASSIGN #3 = #3 | 1
#ENDIF
#IF (#userj(#1).em = 'E') | (#userj(#1).em = 'A')
    #ASSIGN #3 = #3 | 2
#ENDIF
%JOB1(#userj(#1).ods, #userj(#1).pmi, #userj(#1).pma, #userj(#1).mob, 
#IF #LEN(userj(#1).ehs) = 0
     #userj(#1).mtk, #userj(#1).mpr, #3, 0,
#ELSE
     #userj(#1).mtk, #userj(#1).mpr, #3, #userj(#1).ehs,
#ENDIF
#IF #userj(#1).pv
        02H, #userj(#1).tp, #userj(#1).tsa )
#ELSE
        00H, #userj(#1).tp, #userj(#1).tsa )
#ENDIF
#IF #LEN(userj(#1).var) <> 0
        DW  SEG  #userj(#1).var
#ELSE
        DW  0
#ENDIF
#IF #userj(#1).npx
%JOB2(#userj(#1).ssa,  #userj(#1).ssi, 01H)
#ELSE
%JOB2(#userj(#1).ssa,  #userj(#1).ssi, 00H)
#ENDIF
#ASSIGN #2 = #2 + 1
#ENDIF
#ENDLOOP
[
#IF #glob.eio
; EIOS
user_Job2< #eios.dds ,; dir$size 
&    #eios.pmi ,; pool$min    
&    #eios.pma ,; pool$max    
&       0FFFFH,; max$objects 
&       0FFFFH,; max$tasks   
&           0H,; max$prio   
&           0H,; ex_mode     
&       0H, 0H,; ex_hand_p   
&           0H,; job$flags   
&          140,; task$prio   
&           0H,; filler   
&      rqeiosinittask,; task$entry 
&           0H,; ds$base     
&        0H,0H,; stk$ptr    
&         600H,; stk$size   
&           0H ; task$flags  
&   >
#ASSIGN #2 = #2 + 1
#ENDIF
[
[ User Jobs after EIOS
[
#ASSIGN #1 = 1
#LOOP #1 #REP(USERJ)
#IF (#userj(#1).seq = 'A') 
;*** JOB #1 ***
; NAME : #userj(#1).nam
#ASSIGN #3 = 0
#IF (#userj(#1).em = 'P') | (#userj(#1).em = 'A')
    #ASSIGN #3 = #3 | 1
#ENDIF
#IF (#userj(#1).em = 'E') | (#userj(#1).em = 'A')
    #ASSIGN #3 = #3 | 2
#ENDIF
%JOB1(#userj(#1).ods, #userj(#1).pmi, #userj(#1).pma, #userj(#1).mob, 
#IF #LEN(userj(#1).ehs) = 0
     #userj(#1).mtk, #userj(#1).mpr, #3, 0,
#ELSE
     #userj(#1).mtk, #userj(#1).mpr, #3, #userj(#1).ehs,
#ENDIF
#IF #userj(#1).pv
        02H, #userj(#1).tp, #userj(#1).tsa )
#ELSE
        00H, #userj(#1).tp, #userj(#1).tsa )
#ENDIF
#IF #LEN(userj(#1).var) <> 0
        DW  SEG  #userj(#1).var
#ELSE
        DW  0
#ENDIF
#IF #userj(#1).npx
%JOB2(#userj(#1).ssa,  #userj(#1).ssi, 01H)
#ELSE
%JOB2(#userj(#1).ssa,  #userj(#1).ssi, 00H)
#ENDIF
#ASSIGN #2 = #2 + 1
#ENDIF
#ENDLOOP
[
#IF #glob.hi
; HI
user_Job2<  20H,; dir$size
&     #hi.pmi ,; pool$min
&     #hi.pma ,; pool$max
&       0FFFFH,; max$objects
&       0FFFFH,; max$tasks
&           0H,; max$prio
&           0H,; ex_mode
&       0H, 0H,; ex_hand_p
&           0H,; job$flags
&          140,; task$prio
&           0H,; filler
&      rqhiinittask,; task$entry
&           0H,; ds$base
&        0H,0H,; stk$ptr
&        1000H,; stk$size
&           0H ; task$flags
&   >
#ASSIGN #2 = #2 + 1
#ENDIF
        PUBLIC  N_LEV1_JOBS
N_LEV1_JOBS     DW #2
        PUBLIC  OS_EXT_LIST
OS_EXT_LIST LABEL DWORD
#IF #REP(OSEXT) <> 0
  #ASSIGN #1 = 1
  #LOOP #1 #REP(OSEXT)
        DW #osext(#1).gsn
    #IF #LEN(osext(#1).EPN) <> 0
        DP #osext(#1).EPN
    #ELSE
        DP 0
    #ENDIF
  #ENDLOOP
#ELSE
        DW 00000H
#ENDIF
[
        PUBLIC  NUM_OS_EXT
#ASSIGN #2 = #REP(OSEXT)
NUM_OS_EXT      DW #2
                DB 0
DATA ENDS
[
END
#ENDFILE
#MESSAGE ...................................................DONE
[
[*** BIOS Files ***
[
[    ITABLE.A38
[
#GEN ITABL.A38 #COND #glob.bio
#MESSAGE Beginning BIOS File Generation
NAME ITABLE
$INCLUDE (#incl.bif!ITABLE.INC)
[
[   #0 is true iff bios.asc is true or required
[
#ASSIGN #0 = bios.asc | glob.eio | glob.al
[
#IF #0
    #ASSIGN #2 = 4
#ELSE
    #IF #bcall.nsc
        #ASSIGN #2 = 4
    #ELSE
        #IF #bcall.ssc
            #ASSIGN #2 = 2
        #ELSE
            #ASSIGN #2 = 1
        #ENDIF
    #ENDIF
#ENDIF
#IF #rnet.con
    #ASSIGN #2 = 5
#ENDIF
%NUM_FILE_DRIVERS(#2 )
%ATTACH_DEVICE_TASK_PRIO(#bios.adp )
%CONN_JOB_DELETE_TASK_PRIO(#bios.con )
#ASSIGN #3 = 1000 / #hard.cin
%TIMER_TASK_DATA(#bios.ttp , #3 )
#IF ~(#bios.tf | #glob.hi)          [  glob.tf is required if glob.hi
%DUMMY_TIMER
#ENDIF
[
[   #0 is true iff bios.asc is true or required
[
#IF ~( #bios.ace | #glob.udi )      [  bios.ace is required if glob.udi
%NO_CREATE_FALSE
    #IF ~#0 & ~#bcall.ssc & ~#bcall.nsc
%NO_TRUNCATE
    #ENDIF
#ENDIF
#IF ~( #bios.smi  | #glob.hi )       [  bios.smi is required if glob.hi
%NO_SYSTEM_MANAGER_USER_ID
#ENDIF
BIOS_CODE SEGMENT
    extrn COMMONIOTASK:NEAR
    extrn REQCREATEUSER:NEAR
    extrn REQATTACHDEVICE:NEAR
    extrn REQINSPECTUSER:NEAR
    extrn REQDELETEUSER:NEAR
    extrn REQSETDEFAULTUSER:NEAR
    extrn REQGETDEFAULTUSER:NEAR
    extrn REQDETACHDEVICE:NEAR
    extrn COMMONDETACHDEVICE:NEAR
    extrn REQENCRYPT:NEAR
    extrn REQCREATEFILE:NEAR
    extrn REQATTACHFILE:NEAR
    extrn REQDETACHFILE:NEAR
    extrn REQOPEN:NEAR
    extrn REQCLOSE:NEAR
    extrn REQREAD:NEAR
    extrn REQWRITE:NEAR
    extrn REQSEEK:NEAR
    extrn REQCONNECTIONSTATUS:NEAR
    extrn COMMONGETCONNST:NEAR
    extrn REQFILESTATUS:NEAR
    extrn REQSPECIAL:NEAR
    extrn REQSETDEFAULTPREFIX:NEAR
    extrn REQGETDEFAULTPREFIX:NEAR
    extrn REQWAITIO:NEAR
    extrn REQGETPATHCOMPONENT:NEAR
    extrn RQCREATEUSER_:NEAR
    extrn RQAPHYSICALATTACHDEVICE_:NEAR
    extrn RQAATTACHFILE_:NEAR
    extrn RQACLOSE_:NEAR
    extrn RQACREATEFILE_:NEAR
    extrn RQADELETECONNECTION_:NEAR
    extrn RQAGETCONNECTIONSTATUS_:NEAR
    extrn RQAGETFILESTATUS_:NEAR
    extrn RQAGETPATHCOMPONENT_:NEAR
    extrn RQAOPEN_:NEAR
    extrn RQAPHYSICALDETACHDEVICE_:NEAR
    extrn RQAREAD_:NEAR
    extrn RQAWRITE_:NEAR
    extrn RQDELETEUSER_:NEAR
    extrn RQGETDEFAULTUSER_:NEAR
    extrn RQINSPECTUSER_:NEAR
    extrn RQSETDEFAULTUSER_:NEAR
    extrn RQWAITIO_:NEAR
    extrn RQENCRYPT_:NEAR
    extrn RQASPECIAL_:NEAR
    extrn RQSETDEFAULTPREFIX_:NEAR
    extrn RQGETDEFAULTPREFIX_:NEAR
    extrn RQACHANGEACCESS_:NEAR
    extrn RQACREATEDIRECTORY_:NEAR
    extrn RQAGETDIRECTORYENTRY_:NEAR
    extrn RQARENAMEFILE_:NEAR
    extrn RQATRUNCATE_:NEAR
    extrn RQAGETEXTENSIONDATA_:NEAR
    extrn RQASETEXTENSIONDATA_:NEAR
    extrn RQASEEK_:NEAR
    extrn RQAUPDATE_:NEAR
    extrn RQADELETEFILE_:NEAR
#IF (#bios.gc = '5') | (#bios.gc = 'C') | (#bios.gc = 'A')
    extrn RQGETGLOBALTIME_:NEAR
    extrn RQSETGLOBALTIME_:NEAR
#ENDIF
#IF #bios.tf | #glob.hi
    extrn RQSETTIME_:NEAR
    extrn RQGETTIME_:NEAR
#ENDIF
#IF #0 | #bcall.psc
    extrn PHYSUPDATE:NEAR
    extrn ATTACHPHYSICALDEVICE:NEAR
    extrn ATTACHPHYSICALFILE:NEAR
    extrn PHYSDETACHFILE:NEAR
    extrn PHYSOPEN:NEAR
    extrn PHYSCLOSE:NEAR
    extrn PHYSREAD:NEAR
    extrn PHYSWRITE:NEAR
    extrn PHYSSEEK:NEAR
    extrn PHYSGETFILEST:NEAR
    extrn PHYSGETPATH:NEAR
    extrn PHYSSPECIAL:NEAR
#ENDIF
#IF #0 | #bcall.ssc
    extrn ATTACHSTREAMDEVICE:NEAR
    extrn CREATESTREAMFILE:NEAR
    extrn ATTACHSTREAMFILE:NEAR
    extrn STRDETACHFILE:NEAR
    extrn STROPEN:NEAR
    extrn STRCLOSE:NEAR
    extrn STRREAD:NEAR
    extrn STRWRITE:NEAR
    extrn STRGETFILEST:NEAR
    extrn STRGETPATH:NEAR
    extrn STRSPECIAL:NEAR
    extrn STRDELETE:NEAR
#ENDIF
#IF #0 | #bcall.nsc
    extrn NUMUPDATE:NEAR
    extrn ATTACHNAMEDDEVICE:NEAR
    extrn CREATENAMEDFILE:NEAR
    extrn REQCREATEDIRECTORY:NEAR
    extrn ATTACHNAMEDFILE:NEAR
    extrn NUMDETACHFILE:NEAR
    extrn REQRENAMEFILE:NEAR
    extrn NAMRENAME:NEAR
    extrn NAMDELETE:NEAR
    extrn NAMEDDELETE:NEAR
    extrn REQCHANGEACCESS:NEAR
    extrn NAMEDCHANGEACCESS:NEAR
    extrn NAMCHACCESS:NEAR
    extrn NUMOPEN:NEAR
    extrn NUMCLOSE:NEAR
    extrn NUMREAD:NEAR
    extrn NUMWRITE:NEAR
    extrn NUMSEEK:NEAR
    extrn REQTRUNC:NEAR
    extrn NUMTRUNC:NEAR
    extrn NUMGETFILEST:NEAR
    extrn NAMGETPATH:NEAR
    extrn REQGETDIRECTORYENTRY:NEAR
    extrn NAMDIRENTRY:NEAR
    extrn REQNUMGETEXTENSIONDATA:NEAR
    extrn NAMGETEXTDATA:NEAR
    extrn REQNUMSETEXTENSIONDATA:NEAR
    extrn NAMSETEXTDATA:NEAR
    extrn NUMSPECIAL:NEAR
#ENDIF
#IF #0 | #bcall.nsc | #bcall.ssc
    extrn REQDELETEFILE:NEAR
#ENDIF
#IF #0 | #bcall.nsc | #bcall.psc
    extrn REQUPDATE:NEAR
#ENDIF
#IF (#glob.net) & (#rnet.con)
    extrn IRMVERSION : near
    extrn REMINIT_ : near
#ENDIF
BIOS_CODE ENDS
#IF (#glob.net) & (#rnet.con)
    extrn REMUPDATE : far
    extrn REMATTACHFILE : far
    extrn REMCREATE : far
    extrn REMEXPNULLREQ : far
    extrn REMNONNULLCHANGEACCESS : far
    extrn REMNONNULLDELETE : far
    extrn REMREAD : far
    extrn REMWRITEORTRUNC : far
    extrn REMSEEK : far
    extrn REMSPECIAL : far
    extrn REMATTACHDEVICE : far
    extrn REMDETACHDEVICE : far
    extrn REMOPEN : far
    extrn REMCLOSE : far
    extrn REMGETCONNST : far
    extrn REMGETFILEST : far
    extrn REMGETEXTDATA : far
    extrn REMSETEXTDATA : far
    extrn REMNULLCHANGEACCESS : far
    extrn REMNULLDELETE : far
    extrn REMRENAME : far
    extrn REMGETPATHCOMP : far
    extrn REMDETACHFILE : far
#ENDIF
%def_system_manager
%const(filedriverinfo,LABEL,WORD)
#IF #0 | #bcall.psc
%FILE_DRIVER_INFO(FALSE,16,2048,24)
#ELSE
%FILE_DRIVER_INFO(0,0,0,0)
#ENDIF
#IF #0 | #bcall.ssc
%FILE_DRIVER_INFO(FALSE,18,1024,24)
#ELSE
%FILE_DRIVER_INFO(0,0,0,0)
#ENDIF
%FILE_DRIVER_INFO(0,0,0,0)
#IF #0 | #bcall.nsc
%FILE_DRIVER_INFO(TRUE,28,2048,62)
#ELSE
%FILE_DRIVER_INFO(0,0,0,0)
#ENDIF
#IF (#glob.net) & (#rnet.con)
%FILE_DRIVER_INFO(TRUE,32,0,0)
#ELSE
%FILE_DRIVER_INFO(0,0,0,0)
#ENDIF
%const(fileconnreqhandler,LABEL,WORD)
BIOS_CODE SEGMENT
REQ_FILE_DRIVER <
#IF #0 | #bcall.psc
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& ,
& ,
& ,
& ,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& ,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& ,
& ,
& ,
& CONFIGURED
&>
#ELSE
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& ,
& ,
& ,
& ,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& ,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& ,
& ,
& ,
& NOTCONFIGURED
&>
#ENDIF
REQ_FILE_DRIVER <
#IF #0 | #bcall.ssc
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& ,
& CONFIGURED,
& ,
& ,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& ,
& ,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& ,
& ,
& ,
&
&>
#ELSE
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& ,
& NOTCONFIGURED,
& ,
& ,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& ,
& ,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& ,
& ,
& ,
&
&>
#ENDIF
REQ_FILE_DRIVER<>
REQ_FILE_DRIVER <
#IF #0 | #bcall.nsc
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED
&>
#ELSE
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED
&>
#ENDIF
REQ_FILE_DRIVER <
#IF (#glob.net) & (#rnet.con)
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED,
& ,
& CONFIGURED,
& CONFIGURED,
& CONFIGURED
&>
#ELSE
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED,
& ,
& NOTCONFIGURED,
& NOTCONFIGURED,
& NOTCONFIGURED
&>
#ENDIF
filedriverconfigtab    LABEL    WORD
            public     filedriverconfigtab
#IF #0 | #bcall.psc
IOS_FILE_DRIVER <
& ,
& COMMONIOTASK,
& PHYSUPDATE,
& ATTACHPHYSICALFILE,
& ATTACHPHYSICALFILE,
& ,
& ,
& PHYSREAD,
& PHYSWRITE,
& PHYSSEEK,
& PHYSSPECIAL,
& ATTACHPHYSICALDEVICE,
& COMMONDETACHDEVICE,
& PHYSOPEN,
& PHYSCLOSE,
& COMMONGETCONNST,
& PHYSGETFILEST,
& ,
& ,
& ,
& ,
& ,
& PHYSGETPATH,
& ,
& ,
& PHYSDETACHFILE
& >
#ELSE
IOS_FILE_DRIVER <>
#ENDIF
#IF #0 | #bcall.ssc
IOS_FILE_DRIVER <
& NULLFDINIT,
& COMMONIOTASK,
& ,
& ATTACHSTREAMFILE,
& CREATESTREAMFILE,
& ,
& ,
& STRREAD,
& STRWRITE,
& ,
& STRSPECIAL,
& ATTACHSTREAMDEVICE,
& COMMONDETACHDEVICE,
& STROPEN,
& STRCLOSE,
& COMMONGETCONNST,
& STRGETFILEST,
& ,
& ,
& ,
& STRDELETE,
& ,
& STRGETPATH,
& ,
& ,
& STRDETACHFILE
& >
#ELSE
IOS_FILE_DRIVER <>
#ENDIF
IOS_FILE_DRIVER <>
#IF #0 | #bcall.nsc
IOS_FILE_DRIVER <
& ,
& COMMONIOTASK,
& NUMUPDATE,
& ATTACHNAMEDFILE,
& CREATENAMEDFILE,
& NAMEDCHANGEACCESS,
& NAMEDDELETE,
& NUMREAD,
& NUMWRITE,
& NUMSEEK,
& NUMSPECIAL,
& ATTACHNAMEDDEVICE,
& COMMONDETACHDEVICE,
& NUMOPEN,
& NUMCLOSE,
& COMMONGETCONNST,
& NUMGETFILEST,
& NAMGETEXTDATA,
& NAMSETEXTDATA,
& NAMCHACCESS,
& NAMDELETE,
& NAMRENAME,
& NAMGETPATH,
& NAMDIRENTRY,
& NUMTRUNC,
& NUMDETACHFILE
& >
#ELSE
IOS_FILE_DRIVER <>
#ENDIF
#IF (#glob.net) & (#rnet.con)
;IOS_FILE_DRIVER <				; struc not used due to ASM/386 problems
dd REMINIT_ 
dd 0
dd OFFSET REMUPDATE 
dd OFFSET REMATTACHFILE 
dd OFFSET REMCREATE 
dd OFFSET REMNONNULLCHANGEACCESS 
dd OFFSET REMNONNULLDELETE 
dd OFFSET REMREAD 
dd OFFSET REMWRITEORTRUNC 
dd OFFSET REMSEEK 
dd OFFSET REMSPECIAL 
dd OFFSET REMATTACHDEVICE 
dd OFFSET REMDETACHDEVICE 
dd OFFSET REMOPEN 
dd OFFSET REMCLOSE 
dd OFFSET REMGETCONNST 
dd OFFSET REMGETFILEST 
dd OFFSET REMGETEXTDATA 
dd OFFSET REMSETEXTDATA 
dd OFFSET REMNULLCHANGEACCESS 
dd OFFSET REMNULLDELETE 
dd OFFSET REMRENAME 
dd OFFSET REMGETPATHCOMP 
dd OFFSET REMEXPNULLREQ 
dd OFFSET REMWRITEORTRUNC 
dd OFFSET REMDETACHFILE
;& >
#ELSE
IOS_FILE_DRIVER <>
#ENDIF
BIOS_CODE ENDS
END
#ENDFILE
[
[    ICDEV.A38
[
#GEN ICDEV.A38 #COND #glob.bio
NAME ICDEV
$INCLUDE (#incl.bif!IDEVCF.INC)
BIOS_CODE SEGMENT
ATRT_clock EQU  03H
iCSM_clock EQU  02H
i546_clock EQU  01H
no_clock   EQU  00H
	PUBLIC	RQGLOBAL_CLOCK_TYPE
#IF #bios.gc = 'C'
RQGLOBAL_CLOCK_TYPE		DW iCSM_CLOCK
#ELSE
	#IF #bios.gc = '5'
RQGLOBAL_CLOCK_TYPE		DW i546_CLOCK
	#ELSE
		#IF #bios.gc = 'A'
RQGLOBAL_CLOCK_TYPE		DW ATRT_CLOCK
		#ELSE
RQGLOBAL_CLOCK_TYPE		DW	no_clock
		#ENDIF
	#ENDIF
#ENDIF
	PUBLIC	RQGLOBAL_CLOCK_NAME
#IF #bios.gc = '5'
#ASSIGN #3 = #LEN(bios.gcn)
RQGLOBAL_CLOCK_NAME		DB	#3, '#bios.gcn'
#ELSE
RQGLOBAL_CLOCK_NAME		DB 0
#ENDIF
[
[   #1 - used for loop
[   #2, #3 - used for local calculations
[   #4 - used to save highest device number
[   #5 - used to save highest device unit number
[   #8 - used for duib number
[   #9 - used for device number
[   #7 - used for unit number
[
#ASSIGN #4 = 0
#ASSIGN #5 = 0
#ASSIGN #7 = 1
#ASSIGN #8 = 1
#ASSIGN #9 = 1
DUIBTABLE	LABEL BYTE
			PUBLIC DUIBTABLE
define_duib <
#ASSIGN #9 = #get_dev_num( 'BB' )       [   to start from 1
#IF   #9 > #5
    #ASSIGN #5 = #9
#ENDIF  
#ASSIGN #8 = #get_du_num('BB',0)
#IF   #8 > #4
    #ASSIGN #4 = #8
#ENDIF  
& 'BB',
& 003h,
& 00F7h,
& 00h,
& 0,
& 0,0,
& 0,
& 0,
& 0,
& bytebucketinitio,
& bytebucketfinishio,
& bytebucketqueueio,
& bytebucketcancelio,
& 0,
& 0,
& 0FFFFH,
& 0,
& 130,
& false,
& 0,
& 0
&>
define_duib <
#ASSIGN #8 = #get_du_num('STREAM',0)
#IF   #8 > #4
    #ASSIGN #4 = #8
#ENDIF  
& 'STREAM',
& 003h,
& 00F3h,
& 00h,
& 0,
& 0,0,
& 0,
& 1,
& 1,
& bytebucketinitio,
& bytebucketfinishio,
& bytebucketqueueio,
& bytebucketcancelio,
& 0,
& 0,
& 0FFFFH,
& 0,
& 130,
& false,
& 0,
& 0
&>
#ASSIGN #1 = 1
#LOOP #1 #REP(I214)
DEFINE_DUIB <
& '#I214(#1).nam' ,
	#ASSIGN #2 = 0
	#IF #I214(#1).pfd 
	    #ASSIGN #2 = #2 + 1
	#ENDIF
	#IF #I214(#1).nfd 
	    #ASSIGN #2 = #2 + 8
	#ENDIF
& #2,
& 0FFH,
    #IF ((#I214(#1).un \ 16) > 11) | ((#I214(#1).un \ 16 ) < 8)
        #ASSIGN #2 = 11H
    #ELSE
        #IF (#I214(#1).efi = '8') 
            #ASSIGN #2 = 1
        #ELSE
            #ASSIGN #2 = 9
        #ENDIF
        #IF #I214(#1).suf = 'U'        [  Uniform
            #ASSIGN #2 = #2 + 16
        #ENDIF
        #IF #I214(#1).sds = 'D'
            #ASSIGN #2 = #2 + 4
        #ENDIF
        #IF #I214(#1).sdd = 'D'
            #ASSIGN #2 = #2 + 2
        #ENDIF
    #ENDIF
& #2 ,
& #I214(#1).gra,
    #ASSIGN #2 = #I214(#1).dsz & 0FFFFH
& #2,
    #ASSIGN #2 = (#I214(#1).dsz >> 16) & 0FFFFH
& #2,
#ASSIGN #9 = #get_dev_num(I214(#1).dev )
#IF   #9 > #5
    #ASSIGN #5 = #9
#ENDIF  
& #9,
& #I214(#1).un,
#ASSIGN #8 = #get_du_num(  I214(#1).dev ,I214(#1).un  )
#IF   #8 > #4
    #ASSIGN #4 = #8
#ENDIF  
& #8,
& INITIO,
& FINISHIO,
& QUEUEIO,
& CANCELIO,
& DINFO_#9,
& #I214(#1).uin,
& #I214(#1).rut,
& #I214(#1).nb,
& 130,
    #IF #I214(#1).cup
& TRUE,
    #ELSE
& FALSE,
    #ENDIF
& #I214(#1).mb,
& 0
&>
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(I220)
DEFINE_DUIB <
& '#i220(#1).nam' ,
	#ASSIGN #2 = 0
	#IF #i220(#1).pfd 
	    #ASSIGN #2 = #2 + 1
	#ENDIF
	#IF #i220(#1).nfd 
	    #ASSIGN #2 = #2 + 8
	#ENDIF
& #2,
& 0FFH,
& 11H,
& #i220(#1).gra,
    #ASSIGN #2 = #i220(#1).dsz & 0FFFFH
& #2,
    #ASSIGN #2 = (#i220(#1).dsz >> 16) & 0FFFFH
& #2,
#ASSIGN #9 = #get_dev_num(i220(#1).dev )
#IF   #9 > #5
    #ASSIGN #5 = #9
#ENDIF  
& #9,
& #i220(#1).un,
#ASSIGN #8 = #get_du_num(  i220(#1).dev ,i220(#1).un  )
#IF   #8 > #4
    #ASSIGN #4 = #8
#ENDIF  
& #8,
& INITIO,
& FINISHIO,
& QUEUEIO,
& CANCELIO,
& DINFO_#9,
& #i220(#1).uin,
& #i220(#1).rut,
& #i220(#1).nb,
& 130,
    #IF #i220(#1).cup
& TRUE,
    #ELSE
& FALSE,
    #ENDIF
& #i220(#1).mb,
& 0
&>
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(I8251)
DEFINE_DUIB <
& '#i8251(#1).nam',
& 00001H,
& 0FBH,
& 00,
& 00,
& 00,
& 00,
#ASSIGN #9 = #get_dev_num(i8251(#1).dev )
#IF   #9 > #5
    #ASSIGN #5 = #9
#ENDIF  
& #9,
& #i8251(#1).un,
#ASSIGN #8 = #get_du_num( i8251(#1).dev ,i8251(#1).un )
#IF   #8 > #4
    #ASSIGN #4 = #8
#ENDIF  
& #8,
& TSINITIO,
& TSFINISHIO,
& TSQUEUEIO,
& TSCANCELIO,
& DINFO_#9,
& #i8251(#1).uin,
& 0FFFFH,
& 0,
& 130,
& FALSE,
& #i8251(#1).mb,
& 0
&>
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(I350)
DEFINE_DUIB <
& '#i350(#1).nam',
& 00001H,
& 0F3H,
& 00,
& 00,
& 00,
& 00,
#ASSIGN #9 = #get_dev_num(i350(#1).dev )
#IF   #9 > #5
    #ASSIGN #5 = #9
#ENDIF  
& #9,
& 0,
#ASSIGN #8 = #get_du_num( i350(#1).dev,0)
#IF   #8 > #4
    #ASSIGN #4 = #8
#ENDIF  
& #8,
& INITIO,
& FINISHIO,
& QUEUEIO,
& CANCELIO,
& DINFO_#9,
& 00,
& 0FFFFH,
& 0,
& 130,
& FALSE,
& #i350(#1).mb,
& 0
&>
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(I8274)
DEFINE_DUIB <
& '#i8274(#1).nam',
& 00001H,
& 0FBH,
& 00,
& 00,
& 00,
& 00,
#ASSIGN #9 = #get_dev_num(i8274(#1).dev )
#IF   #9 > #5
    #ASSIGN #5 = #9
#ENDIF  
& #9,
& #i8274(#1).un,
#ASSIGN #8 = #get_du_num( i8274(#1).dev ,i8274(#1).un )
#IF   #8 > #4
    #ASSIGN #4 = #8
#ENDIF  
& #8,
& TSINITIO,
& TSFINISHIO,
& TSQUEUEIO,
& TSCANCELIO,
& DINFO_#9,
& #i8274(#1).uin,
& 0FFFFH,
& 0,
& 130,
& FALSE,
& #i8274(#1).mb,
& 0
&>
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(I386)
DEFINE_DUIB <
& '#i386(#1).nam',
& 00001H,
& 0F3H,
& 00,
& 00,
& 00,
& 00,
#ASSIGN #9 = #get_dev_num(i386(#1).dev )
#IF   #9 > #5
    #ASSIGN #5 = #9
#ENDIF  
& #9,
& 0,
#ASSIGN #8 = #get_du_num( i386(#1).dev,0)
#IF   #8 > #4
    #ASSIGN #4 = #8
#ENDIF  
& #8,
& INITIO,
& FINISHIO,
& QUEUEIO,
& CANCELIO,
& DINFO_#9,
& 00,
& 0FFFFH,
& 0,
& 130,
& FALSE,
& #i386(#1).mb,
& 0
&>
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(I208)
DEFINE_DUIB <
& '#i208(#1).nam',
    #ASSIGN #2 = 0
	#IF #i208(#1).pfd 
	    #ASSIGN #2 = #2 + 1
	#ENDIF
	#IF #i208(#1).nfd 
	    #ASSIGN #2 = #2 + 8
	#ENDIF
[    #ASSIGN #2 = #i208(#1).pfd + 8 * #i208(#1).nfd
& #2,
& 0FFH,
    #IF (#i208(#1).efi = '8' )
        #ASSIGN #2 = 1
    #ELSE
        #ASSIGN #2 = 9
    #ENDIF
    #IF #i208(#1).suf = 'U'        [  Uniform
        #ASSIGN #2 = #2 + 16
    #ENDIF
    #IF #i208(#1).sds = 'D'
        #ASSIGN #2 = #2 + 4
    #ENDIF
    #IF #i208(#1).sdd = 'D'
        #ASSIGN #2 = #2 + 2
    #ENDIF
& #2,
& #i208(#1).gra,
    #ASSIGN #2 = #i208(#1).dsz & 0FFFFH
& #2,
    #ASSIGN #2 = (#i208(#1).dsz >> 16) & 0FFFFH
& #2,
#ASSIGN #9 = #get_dev_num(i208(#1).dev )
#IF   #9 > #5
    #ASSIGN #5 = #9
#ENDIF  
& #9,
& #i208(#1).un,
#ASSIGN #8 = #get_du_num( i208(#1).dev ,i208(#1).un )
#IF   #8 > #4
    #ASSIGN #4 = #8
#ENDIF  
& #8,
& INITIO,
& FINISHIO,
& QUEUEIO,
& CANCELIO,
& DINFO_#9,
& #i208(#1).uin,
& #i208(#1).rut,
& #i208(#1).nb,
& 130,
    #IF #i208(#1).cup
& TRUE,
    #ELSE
& FALSE,
    #ENDIF
& #i208(#1).mb,
& 0
&>
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(IRAM)
DEFINE_DUIB <
& '#iram(#1).nam',
	#ASSIGN #2 = 0
	#IF #iram(#1).pfd 
	    #ASSIGN #2 = #2 + 1
	#ENDIF
	#IF #iram(#1).nfd 
	    #ASSIGN #2 = #2 + 8
	#ENDIF
& #2,
& 0FFH,
& 00000H,
& #iram(#1).gra,
    #ASSIGN #2 = #iram(#1).dsz & 0FFFFH
& #2,
    #ASSIGN #2 = (#iram(#1).dsz >> 16) & 0FFFFH
& #2,
#ASSIGN #9 = #get_dev_num(iram(#1).dev )
#IF   #9 > #5
    #ASSIGN #5 = #9
#ENDIF  
& #9,
& #iram(#1).un,
#ASSIGN #8 = #get_du_num( iram(#1).dev ,iram(#1).un )
#IF   #8 > #4
    #ASSIGN #4 = #8
#ENDIF  
& #8,
& RAMINITIO,
& RAMFINISHIO,
& RAMQUEUEIO,
& RAMCANCELIO,
& 0,
& #iram(#1).uin,
& #iram(#1).rut,
& #iram(#1).nb,
& 130,
    #IF #iram(#1).cup
& TRUE,
    #ELSE
& FALSE,
    #ENDIF
& #iram(#1).mb,
& 0
&>
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(I544)
DEFINE_DUIB <
& '#i544(#1).nam',
& 00001H,
& 0FBH,
& 00,
& 00,
& 00,
& 00,
#ASSIGN #9 = #get_dev_num(i544(#1).dev )
#IF   #9 > #5
    #ASSIGN #5 = #9
#ENDIF  
& #9,
& #i544(#1).un,
#ASSIGN #8 = #get_du_num( i544(#1).dev ,i544(#1).un )
#IF   #8 > #4
    #ASSIGN #4 = #8
#ENDIF  
& #8,
& TSINITIO,
& TSFINISHIO,
& TSQUEUEIO,
& TSCANCELIO,
& DINFO_#9,
& #i544(#1).uin,
& 0FFFFH,
& 0,
& 130,
& FALSE,
& #i544(#1).mb,
& 0
&>
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(I534)
DEFINE_DUIB <
& '#i534(#1).nam',
& 00001H,
& 0FBH,
& 00,
& 00,
& 00,
& 00,
#ASSIGN #9 = #get_dev_num(i534(#1).dev )
#IF   #9 > #5
    #ASSIGN #5 = #9
#ENDIF  
& #9,
& #i534(#1).un,
#ASSIGN #8 = #get_du_num( i534(#1).dev ,i534(#1).un )
#IF   #8 > #4
    #ASSIGN #4 = #8
#ENDIF  
& #8,
& TSINITIO,
& TSFINISHIO,
& TSQUEUEIO,
& TSCANCELIO,
& DINFO_#9,
& #i534(#1).uin,
& 0FFFFH,
& 0,
& 130,
& FALSE,
& #i534(#1).mb,
& 0
&>
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(I2530)
DEFINE_DUIB <
& '#I2530(#1).NAM',
& 00001H,
& 0FBH,
& 00,
& 00,
& 00,
& 00,
#ASSIGN #9 = #get_dev_num(i2530(#1).dev )
#IF   #9 > #5
    #ASSIGN #5 = #9
#ENDIF  
& #9,
& #i2530(#1).un,
#ASSIGN #8 = #get_du_num( i2530(#1).dev ,i2530(#1).un )
#IF   #8 > #4
    #ASSIGN #4 = #8
#ENDIF  
& #8,
& TSINITIO,
& TSFINISHIO,
& TSQUEUEIO,
& TSCANCELIO,
& DINFO_#9,
& #i2530(#1).uin,
& 0FFFFH,
& 0,
& 130,
& FALSE,
& #i2530(#1).mb,
& 0
&>
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(I8848)
DEFINE_DUIB <
& '#I8848(#1).NAM',
& 00001H,
& 0FBH,
& 00,
& 00,
& 00,
& 00,
#ASSIGN #9 = #get_dev_num(i8848(#1).dev )
#IF   #9 > #5
    #ASSIGN #5 = #9
#ENDIF  
& #9,
& #i8848(#1).un,
#ASSIGN #8 = #get_du_num( i8848(#1).dev ,i8848(#1).un )
#IF   #8 > #4
    #ASSIGN #4 = #8
#ENDIF  
& #8,
& TSINITIO,
& TSFINISHIO,
& TSQUEUEIO,
& TSCANCELIO,
& DINFO_#9,
& #i8848(#1).uin,
& 0FFFFH,
& 0,
& 130,
& FALSE,
& #i8848(#1).mb,
& 0
&>
#ENDLOOP
[ Creating 186/224A driver DUIBs
[
#ASSIGN #1 = 1
#LOOP #1 #REP(I224A)
DEFINE_DUIB <
& '#i224A(#1).nam',                     [ device-uint name.
	#ASSIGN #2 = 0
	#IF #i224A(#1).pfd
		#ASSIGN #2 = #2 + 1
	#ENDIF
	#IF #i224A(#1).nfd
		#ASSIGN #2 = #2 + 8
	#ENDIF
& #2,                                  [ FILE$DRIVERS
& 0FFH,                                [ FUNCTS
	#IF ((#i224A(#1).un \ 16) > 7) | ((#i224A(#1).un \ 16 ) < 4)
		#ASSIGN #2 = 11H
	#ELSE
		#IF (#i224A(#1).efi = '8')
			#ASSIGN #2 = 1
		#ELSE
			#ASSIGN #2 = 9
		#ENDIF
		#IF #i224A(#1).suf = 'U'        [  Uniform
			#ASSIGN #2 = #2 + 16
		#ENDIF
		#IF #i224A(#1).sds = 'D'        [  Double
			#ASSIGN #2 = #2 + 4
		#ENDIF
		#IF #i224A(#1).sdd = 'D'
			#ASSIGN #2 = #2 + 2
		#ENDIF
	#ENDIF
& #2,                                                 [ FLAGS
& #i224A(#1).gra,                                      [ DEV$GRAN
	#ASSIGN #2 = #i224A(#1).dsz & 0FFFFH               [ DEV$SIZE
& #2,
	#ASSIGN #2 = (#i224A(#1).dsz >> 16) & 0FFFFH
& #2,
#ASSIGN #9 = #get_dev_num(i224A(#1).dev)               [ DEVICE
#IF  #9 > #5            [ IF new_dev_num > highest_dev_num
   #ASSIGN #5 = #9      [ THEN set highest_dev_num to new_dev_num.
#ENDIF
& #9,
& #i224A(#1).un,                                       [ UNIT
#ASSIGN #8 = #get_du_num(i224A(#1).dev ,i224A(#1).un)   [ DEV$UNIT
#IF  #8 > #4            [ IF new_dev_unit_num > highest_dev_unit_num
   #ASSIGN #4 = #8      [ THEN set highest_dev_unit_num to new_dev_unit_num.
#ENDIF
& #8,
& INITIO,
& FINISHIO,
& QUEUEIO,
& CANCELIO,
& DINFO_#9,
& #i224A(#1).uin,                   [ UNIT$INFO$P
& #i224A(#1).rut,                   [ UPDATE$TIMEOUT
& #i224A(#1).nb,                    [ NUM$BUFFERS
& 130,                             [ PRIORITY
	#IF #i224A(#1).cup              [ FIXED$UPDATE
& TRUE,
	#ELSE
& FALSE,
	#ENDIF
& #i224A(#1).mb,                    [ MAX$BUFFERS
& 0		                           [ RESERVED
&>
#ENDLOOP
[
[ 186/410 driver DUIB
[
#ASSIGN #1 = 1
#LOOP #1 #REP(I410)
DEFINE_DUIB <
& '#I410(#1).NAM',
& 00001H,
& 0FBH,
& 00,
& 00,
& 00,
& 00,
#ASSIGN #9 = #get_dev_num(I410(#1).dev )
#IF   #9 > #5
    #ASSIGN #5 = #9
#ENDIF  
& #9, [ current device number
& #I410(#1).un, [ this unit number
#ASSIGN #8 = #get_du_num( I410(#1).dev ,I410(#1).un )
#IF   #8 > #4
    #ASSIGN #4 = #8
#ENDIF  
& #8, [ current device-unit number
& TSINITIO,
& TSFINISHIO,
& TSQUEUEIO,
& TSCANCELIO,
& DINFO_#9,
& #I410(#1).uin,
& 0FFFFH,
& 0,
& 130,
& FALSE,
& #I410(#1).mb,
& 0
&>
#ENDLOOP
[
[ Creating MBII PCI driver DUIBs
[
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(ipci) < #1
		#EXIT
	#ENDIF
	[
	[ Get PCI device type from uinfo; need to find matching uinfo first.
	[ Save device type in #3.
	[
	#ASSIGN #2 = 1
	#ASSIGN #3 = 2				[ assume it's a floppy initially
	#LOOP #2 #REP(upci)
		#IF #EQU(ipci(#1).uin, upci(#2).nam)
			#IF #EQU(ipci(#1).dev, upci(#2).dev)
				#IF #EQU(upci(#2).pdt , 'W' )
					#ASSIGN #3 = 1
				#ENDIF
				#IF #EQU(upci(#2).pdt , 'F' )
					#ASSIGN #3 = 2
				#ENDIF
				#IF #EQU(upci(#2).pdt , 'T' )
					#ASSIGN #3 = 3
				#ENDIF
				#ASSIGN #2 = #REP(upci) + 1			[ must exit loop
			#ENDIF
		#ENDIF
	#ENDLOOP
[
DEFINE_DUIB <
& '#IPCI(#1).nam',                     [ device-uint name.
	#ASSIGN #2 = 0
	#IF #IPCI(#1).pfd
		#ASSIGN #2 = #2 + 1
	#ENDIF
	#IF #IPCI(#1).nfd
		#ASSIGN #2 = #2 + 8
	#ENDIF
& #2,                                  [ FILE$DRIVERS
& 0FFH,                                [ FUNCTS
	#IF #3 = 1
		#ASSIGN #2 = 31H				[ flags for wini
	#ENDIF
	#IF #3 = 3
		#ASSIGN #2 = 11H				[ flags for tape
	#ENDIF
	#IF #3 = 2							[ calculate flags for floppy
		#IF (#IPCI(#1).efi = '8')
			#ASSIGN #2 = 1
		#ELSE
			#ASSIGN #2 = 9
		#ENDIF
		#IF #IPCI(#1).suf = 'U'        [  Uniform
			#ASSIGN #2 = #2 + 16
		#ENDIF
		#IF #IPCI(#1).sds = 'D'        [  Double
			#ASSIGN #2 = #2 + 4
		#ENDIF
		#IF #IPCI(#1).sdd = 'D'
			#ASSIGN #2 = #2 + 2
		#ENDIF
	#ENDIF
& #2,                                                 [ FLAGS
& #IPCI(#1).gra,                                      [ DEV$GRAN
	#ASSIGN #2 = #IPCI(#1).dsz & 0FFFFH               [ DEV$SIZE
& #2,
	#ASSIGN #2 = (#IPCI(#1).dsz >> 16) & 0FFFFH
& #2,
#ASSIGN #9 = #get_dev_num(IPCI(#1).dev)               [ DEVICE
#IF  #9 > #5            [ IF new_dev_num > highest_dev_num
   #ASSIGN #5 = #9      [ THEN set highest_dev_num to new_dev_num.
#ENDIF
& #9,
& #IPCI(#1).un,                                       [ UNIT
#ASSIGN #8 = #get_du_num(IPCI(#1).dev ,IPCI(#1).un)   [ DEV$UNIT
#IF  #8 > #4            [ IF new_dev_unit_num > highest_dev_unit_num
   #ASSIGN #4 = #8      [ THEN set highest_dev_unit_num to new_dev_unit_num.
#ENDIF
& #8,
& INITIO,
& FINISHIO,
& QUEUEIO,
& CANCELIO,
& DINFO_#9,
& #IPCI(#1).uin,                   [ UNIT$INFO$P
& #IPCI(#1).rut,                   [ UPDATE$TIMEOUT
& #IPCI(#1).nb,                    [ NUM$BUFFERS
& 130,                             [ PRIORITY
	#IF #IPCI(#1).cup              [ FIXED$UPDATE
& TRUE,
	#ELSE
& FALSE,
	#ENDIF
& #IPCI(#1).mb,                    [ MAX$BUFFERS
& 0		                           [ RESERVED
&>
#ASSIGN #1 = #1 + 1
#ENDFOREVER
[
#ASSIGN #1 = 1
#LOOP #1 #REP(I279)
DEFINE_DUIB <
& '#I279(#1).NAM',
& 00001H,
& 0FBH,
& 00,
& 00,
& 00,
& 00,
#ASSIGN #9 = #get_dev_num(i279(#1).dev )
#IF   #9 > #5
    #ASSIGN #5 = #9
#ENDIF  
& #9,
& #i279(#1).unb,
#ASSIGN #8 = #get_du_num( i279(#1).dev ,i279(#1).unb )
#IF   #8 > #4
    #ASSIGN #4 = #8
#ENDIF  
& #8,
& I279INITIO,
& I279FINISHIO,
& I279QUEUEIO,
& I279CANCELIO,
& DINFO_#9,
& #i279(#1).unn,
& 0FFFFH,
& 0,
& 130,
& FALSE,
& #i279(#1).mb,
& 0
&>
#ENDLOOP
[
[ VT driver DUIBs
[
#ASSIGN #1 = 1
#LOOP #1 #REP(IVT)
DEFINE_DUIB <
& '#IVT(#1).NAM',
& 00001H,
& 0FBH,
& 00,
& 00,
& 00,
& 00,
#ASSIGN #9 = #get_dev_num(IVT(#1).dev )
#IF   #9 > #5
    #ASSIGN #5 = #9
#ENDIF  
& #9, [ current device number
& #IVT(#1).un, [ this unit number
#ASSIGN #8 = #get_du_num( IVT(#1).dev ,IVT(#1).un )
#IF   #8 > #4
    #ASSIGN #4 = #8
#ENDIF  
& #8, [ current device-unit number
& TSINITIO,
& TSFINISHIO,
& TSQUEUEIO,
& TSCANCELIO,
& DINFO_#9,
& #IVT(#1).uin,
& 0FFFFH,
& 0,
& 130,
& FALSE,
& #IVT(#1).mb,
& 0
&>
#ENDLOOP
[
[   
[      TPL file 
[
#ASSIGN #1 = 1
#LOOP #1 #REP(I120S)
DEFINE_DUIB <
& '#I120S(#1).nam',
& 00001H,
& 0FBH,
& 00,
& 00,
& 00,
& 00,
#ASSIGN #9 = #get_dev_num(I120S(#1).dev )
#IF   #9 > #5
    #ASSIGN #5 = #9
#ENDIF  
& #9,
& 0,
#ASSIGN #8 = #get_du_num( I120S(#1).dev,0)
#IF   #8 > #4
    #ASSIGN #4 = #8
#ENDIF  
& #8,
& TSINITIO,
& TSFINISHIO,
& TSQUEUEIO,
& TSCANCELIO,
& DINFO_#9,
& #I120S(#1).uin,
& 0FFFFH,
& 0,
& 130,
& FALSE,
& #I120S(#1).mb,
& 0
&>
#ENDLOOP
[                      PC Bus Hostess 550 driver
#ASSIGN #1 = 1
#LOOP #1 #REP(I120H)
DEFINE_DUIB <
& '#I120H(#1).nam',
& 00001H,
& 0FBH,
& 00,
& 00,
& 00,
& 00,
#ASSIGN #9 = #get_dev_num(I120H(#1).dev )
#IF   #9 > #5
    #ASSIGN #5 = #9
#ENDIF  
& #9,
& #I120H(#1).un,
#ASSIGN #8 = #get_du_num( I120H(#1).dev ,I120H(#1).un)
#IF   #8 > #4
    #ASSIGN #4 = #8
#ENDIF  
& #8,
& TSINITIO,
& TSFINISHIO,
& TSQUEUEIO,
& TSCANCELIO,
& DINFO_#9,
& #I120H(#1).uin,
& 0FFFFH,
& 0,
& 130,
& FALSE,
& #I120H(#1).mb,
& 0
&>
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(I120C)
DEFINE_DUIB <
& '#I120C(#1).nam',
& 00001H,
& 0FBH,
& 00,
& 00,
& 00,
& 00,
#ASSIGN #9 = #get_dev_num(I120C(#1).dev )
#IF   #9 > #5
    #ASSIGN #5 = #9
#ENDIF  
& #9,
& 0,
#ASSIGN #8 = #get_du_num( I120C(#1).dev,0)
#IF   #8 > #4
    #ASSIGN #4 = #8
#ENDIF  
& #8,
& TSINITIO,
& TSFINISHIO,
& TSQUEUEIO,
& TSCANCELIO,
& DINFO_#9,
& #I120C(#1).uin,
& 0FFFFH,
& 0,
& 130,
& FALSE,
& #I120C(#1).mb,
& 0
&>
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(I120P)
DEFINE_DUIB <
& '#i120P(#1).nam',
& 00001H,
& 0F2H,
& 00,
& 00,
& 00,
& 00,
#ASSIGN #9 = #get_dev_num(i120P(#1).dev )
#IF   #9 > #5
    #ASSIGN #5 = #9
#ENDIF  
& #9,
& 0,
#ASSIGN #8 = #get_du_num( i120P(#1).dev,0)
#IF   #8 > #4
    #ASSIGN #4 = #8
#ENDIF  
& #8,
& INITIO,
& FINISHIO,
& QUEUEIO,
& CANCELIO,
& DINFO_#9,
& 00,
& 0FFFFH,
& 0,
& 130,
& FALSE,
& #i120P(#1).mb,
& 0
&>
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(I120F)
DEFINE_DUIB <
& '#i120F(#1).nam',
    #ASSIGN #2 = 0
	#IF #i120F(#1).pfd 
	    #ASSIGN #2 = #2 + 1
	#ENDIF
	#IF #i120F(#1).nfd 
	    #ASSIGN #2 = #2 + 8
	#ENDIF
[    #ASSIGN #2 = #i120F(#1).pfd + 8 * #i120F(#1).nfd
& #2,
& 0FFH,
	#IF #i120F(#1).efi = '8'
		#ASSIGN #2 = 1
	#ELSE
		#ASSIGN #2 = 9
	#ENDIF
    #IF #i120F(#1).suf = 'U'        [  Uniform
        #ASSIGN #2 = #2 + 16
    #ENDIF
    #IF #i120F(#1).sds = 'D'
        #ASSIGN #2 = #2 + 4
    #ENDIF
    #IF #i120F(#1).sdd = 'D'
        #ASSIGN #2 = #2 + 2
    #ENDIF
& #2,
& #i120F(#1).gra,
    #ASSIGN #2 = #i120F(#1).dsz & 0FFFFH
& #2,
    #ASSIGN #2 = (#i120F(#1).dsz >> 16) & 0FFFFH
& #2,
#ASSIGN #9 = #get_dev_num(i120F(#1).dev )
#IF   #9 > #5
    #ASSIGN #5 = #9
#ENDIF  
& #9,
& #i120F(#1).un,
#ASSIGN #8 = #get_du_num( i120F(#1).dev ,i120F(#1).un )
#IF   #8 > #4
    #ASSIGN #4 = #8
#ENDIF  
& #8,
& INITIO,
& FINISHIO,
& QUEUEIO,
& CANCELIO,
& DINFO_#9,
& #i120F(#1).uin,
& #i120F(#1).rut,
& #i120F(#1).nb,
& 130,
    #IF #i120F(#1).cup
& TRUE,
    #ELSE
& FALSE,
    #ENDIF
& #i120F(#1).mb,
& 0
&>
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(I120W)
DEFINE_DUIB <
& '#i120W(#1).nam' ,
	#ASSIGN #2 = 0
	#IF #i120W(#1).pfd 
	    #ASSIGN #2 = #2 + 1
	#ENDIF
	#IF #i120W(#1).nfd 
	    #ASSIGN #2 = #2 + 8
	#ENDIF
& #2,
& 0FFH,
  #IF #i120W(#1).un = 0 | #i120W(#1).un = 6     [ not a partition
& 11H,
  #ELSE                                   [ set 'partitioned' bit in duib.flags
& 31H,
  #ENDIF
& #i120W(#1).gra,
    #ASSIGN #2 = #i120W(#1).dsz & 0FFFFH
& #2,
    #ASSIGN #2 = (#i120W(#1).dsz >> 16) & 0FFFFH
& #2,
#ASSIGN #9 = #get_dev_num(i120W(#1).dev )
#IF   #9 > #5
    #ASSIGN #5 = #9
#ENDIF  
& #9,
& #i120W(#1).un,
#ASSIGN #8 = #get_du_num(  i120W(#1).dev ,i120W(#1).un  )
#IF   #8 > #4
    #ASSIGN #4 = #8
#ENDIF  
& #8,
& INITIO,
& FINISHIO,
& QUEUEIO,
& CANCELIO,
& DINFO_#9,
& #i120W(#1).uin,
& #i120W(#1).rut,
& #i120W(#1).nb,
& 130,
    #IF #i120W(#1).cup
& TRUE,
    #ELSE
& FALSE,
    #ENDIF
& #i120W(#1).mb,
& 0
&>
#ENDLOOP
[
[ PC Bus SCSI DUIBs
[
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(i120a) < #1
		#EXIT
	#ENDIF
	[
	[ duib.flags needs to be different for wini and tape.
	[ Get device type from uinfo; need to find matching uinfo first.
	[ Save flags in #3.
	[
	#ASSIGN #2 = 1
	#ASSIGN #3 = 31H			[ assume wini flags initially
	#LOOP #2 #REP(u120a)
		#IF #EQU(i120a(#1).uin, u120a(#2).nam)
			#IF #EQU(i120a(#1).dev, u120a(#2).dev)
				#IF #u120a(#2).dt = 0
					#ASSIGN #3 = 31H					[ wini flags
				#ELSE
					#ASSIGN #3 = 11H					[ tape flags
				#ENDIF
				#ASSIGN #2 = #REP(u120a) + 1			[ must exit loop
			#ENDIF
		#ENDIF
	#ENDLOOP
[
DEFINE_DUIB <
& '#I120A(#1).nam' ,
	#ASSIGN #2 = 0
	#IF #I120A(#1).pfd 
	    #ASSIGN #2 = #2 + 1
	#ENDIF
	#IF #I120A(#1).nfd 
	    #ASSIGN #2 = #2 + 8
	#ENDIF
& #2,
& 0FFH,
& #3,
& #I120A(#1).gra,
    #ASSIGN #2 = #I120A(#1).dsz & 0FFFFH
& #2,
    #ASSIGN #2 = (#I120A(#1).dsz >> 16) & 0FFFFH
& #2,
#ASSIGN #9 = #get_dev_num(I120A(#1).dev )
#IF   #9 > #5
    #ASSIGN #5 = #9
#ENDIF  
& #9,
& #I120A(#1).un,
#ASSIGN #8 = #get_du_num(  I120A(#1).dev , I120A(#1).un )
#IF   #8 > #4
    #ASSIGN #4 = #8
#ENDIF  
& #8,
& INITIO,
& FINISHIO,
& QUEUEIO,
& CANCELIO,
& DINFO_#9,
& #I120A(#1).uin,
& #I120A(#1).rut,
& #I120A(#1).nb,
& 130,
    #IF #I120A(#1).cup
& TRUE,
    #ELSE
& FALSE,
    #ENDIF
& #I120A(#1).mb,
& 0
&>
#ASSIGN #1 = #1 + 1
#ENDFOREVER
[
#USER_DEV_DUIB
[
[ user drivers
[
#ASSIGN #1 = 1
#LOOP #1 #REP(USERD)
    #IF ~#EQU( userd(#1).dpn , 'NONE')
$include (#userd(#1).dpn )
    #ENDIF
    #ASSIGN #9 = #9 + #userd(#1).nd
	#IF   #9 > #5
    	#ASSIGN #5 = #9
	#ENDIF  
    #ASSIGN #8 = #8 + #userd(#1).ndu
	#IF   #8 > #4
    	#ASSIGN #4 = #8
	#ENDIF  
#ENDLOOP
#ASSIGN #5 = #5 + 1
#ASSIGN #4 = #4 + 1
NUM_DUIB EQU (THIS BYTE - DUIBTABLE) / SIZE DEFINE_DUIB
BIOS_CODE ENDS
%DEVICE_TABLES(NUM_DUIB,#4 ,#5, #bios.cut )
CODE SEGMENT
    #ADD_NEAR_EXTRN  DEFAULTFINISH
    #ADD_NEAR_EXTRN  DEFAULTINIT
    #ADD_NEAR_EXTRN  DEFAULTSTOP
#IF #idevs.s14 | #idevs.ram | #idevs.l86 | #idevs.l50
    #ADD_NEAR_EXTRN   INITIO
    #ADD_NEAR_EXTRN   FINISHIO
    #ADD_NEAR_EXTRN   QUEUEIO
    #ADD_NEAR_EXTRN   CANCELIO
#ENDIF
#IF #idevs.s20 | #idevs.s08 | #idevs.s24 | #idevs.pci
    #ADD_NEAR_EXTRN   INITIO
    #ADD_NEAR_EXTRN   FINISHIO
    #ADD_NEAR_EXTRN   QUEUEIO
    #ADD_NEAR_EXTRN   CANCELIO
#ENDIF
#IF #idevs.s14 
    #ADD_NEAR_EXTRN   I215INIT
    #ADD_NEAR_EXTRN   I215START
    #ADD_NEAR_EXTRN   I215FINISH
    #ADD_NEAR_EXTRN   I215INTERRUPT
  #IF #bios.tsp
	PUBLIC X217CFGSTART
    #ADD_NEAR_EXTRN   I217START
X217CFGSTART DD I217START
	PUBLIC X217CFGINTERRUPT
    #ADD_NEAR_EXTRN   I217INTERRUPT
X217CFGINTERRUPT DD I217INTERRUPT
  #ELSE
	PUBLIC X217CFGSTART
    #ADD_NEAR_EXTRN   I217DUMMYSTART
X217CFGSTART	DD I217DUMMYSTART
	PUBLIC X217CFGINTERRUPT
    #ADD_NEAR_EXTRN   	I217DUMMYINTERRUPT
X217CFGINTERRUPT DD I217DUMMYINTERRUPT
  #ENDIF
#ENDIF
#IF #idevs.s20 
    #ADD_NEAR_EXTRN   I220INIT
    #ADD_NEAR_EXTRN   I220START
    #ADD_NEAR_EXTRN   I220FINISH
    #ADD_NEAR_EXTRN   I220INTERRUPT
#ENDIF
#IF #idevs.t74 | #idevs.t51 | #idevs.tcc | #idevs.t44 | #idevs.t30| #idevs.t34
    #ADD_NEAR_EXTRN   TSINITIO
    #ADD_NEAR_EXTRN   TSFINISHIO
    #ADD_NEAR_EXTRN   TSQUEUEIO
    #ADD_NEAR_EXTRN   TSCANCELIO
#ENDIF
#IF #idevs.S10 | #idevs.TVT
    #ADD_NEAR_EXTRN   TSINITIO
    #ADD_NEAR_EXTRN   TSFINISHIO
    #ADD_NEAR_EXTRN   TSQUEUEIO
    #ADD_NEAR_EXTRN   TSCANCELIO
#ENDIF
#IF #idevs.l50
    #ADD_NEAR_EXTRN   PRINTERSTARTINTERRUPT
    #ADD_NEAR_EXTRN   PRINTERSTOP
#ENDIF
#IF #idevs.l86
    #ADD_NEAR_EXTRN   PRINTER286START
    #ADD_NEAR_EXTRN   PRINTER286STOP
    #ADD_NEAR_EXTRN   PRINTER286INTERRUPT
#ENDIF
#IF #idevs.s08
    #ADD_NEAR_EXTRN   I208INIT
    #ADD_NEAR_EXTRN   I208FINISH
    #ADD_NEAR_EXTRN   I208START
    #ADD_NEAR_EXTRN   I208INTERRUPT
#ENDIF
#IF #idevs.ram
    #ADD_NEAR_EXTRN   RAMINITIO
    #ADD_NEAR_EXTRN   RAMFINISHIO
    #ADD_NEAR_EXTRN   RAMQUEUEIO
    #ADD_NEAR_EXTRN   RAMCANCELIO
#ENDIF
#IF #idevs.s24
    #ADD_NEAR_EXTRN   mb2pciinit
    #ADD_NEAR_EXTRN   mb2pcistart
    #ADD_NEAR_EXTRN   mb2pcimessage
#ENDIF
#IF #idevs.pci
    #ADD_NEAR_EXTRN   mb2258init
    #ADD_NEAR_EXTRN   mb2258start
    #ADD_NEAR_EXTRN   mb2258message
#ENDIF
#IF #idevs.g79
	#ADD_NEAR_EXTRN  I279INITIO
	#ADD_NEAR_EXTRN  I279FINISHIO
	#ADD_NEAR_EXTRN  I279QUEUEIO
	#ADD_NEAR_EXTRN  I279CANCELIO
#ENDIF
    #ADD_NEAR_EXTRN   BYTEBUCKETINITIO
    #ADD_NEAR_EXTRN   BYTEBUCKETFINISHIO
    #ADD_NEAR_EXTRN   BYTEBUCKETQUEUEIO
    #ADD_NEAR_EXTRN   BYTEBUCKETCANCELIO
#IF #idevs.S1P | #idevs.S1F | #idevs.S1W
    #ADD_NEAR_EXTRN   INITIO
    #ADD_NEAR_EXTRN   FINISHIO
    #ADD_NEAR_EXTRN   QUEUEIO
    #ADD_NEAR_EXTRN   CANCELIO
#ENDIF
#IF #idevs.S10 | #idevs.TVT | #idevs.S1S | #idevs.S1C | #idevs.S1H
    #ADD_NEAR_EXTRN   TSINITIO
    #ADD_NEAR_EXTRN   TSFINISHIO
    #ADD_NEAR_EXTRN   TSQUEUEIO
    #ADD_NEAR_EXTRN   TSCANCELIO
#ENDIF
#IF #idevs.S1P
    #ADD_NEAR_EXTRN   I120LPSTART
    #ADD_NEAR_EXTRN   I120LPSTOP
    #ADD_NEAR_EXTRN   I120LPINTERRUPT
#ENDIF
#IF #idevs.S1F
    #ADD_NEAR_EXTRN   I120FDINIT
    #ADD_NEAR_EXTRN   I120FDFINISH
    #ADD_NEAR_EXTRN   I120FDSTART
    #ADD_NEAR_EXTRN   I120FDINTERRUPT
#ENDIF
#IF #idevs.S1W
    #ADD_NEAR_EXTRN   ISYS120WINIINIT
    #ADD_NEAR_EXTRN   ISYS120WINISTART
    #ADD_NEAR_EXTRN   ISYS120WINIINT
#ENDIF
#IF #idevs.S1A
    #ADD_NEAR_EXTRN   X1540INIT
    #ADD_NEAR_EXTRN   X1540FINISH
    #ADD_NEAR_EXTRN   X1540START
    #ADD_NEAR_EXTRN   X1540INTERRUPT
#ENDIF
#USER_RAD_EXTRN
[
[  MSC driver
[
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(d214) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(d214(#1).dev )
DINFO_#9  RADEV_DEV_INFO <
#ASSIGN #6 = #d214(#1).il & 7FFFH
& #6,
& #d214(#1).itp,
& 700,
& 1240,
	#ASSIGN #3 = 0
	#ASSIGN #2 = 1
	#LOOP #2 #REP(I214)
		#IF #EQU(d214(#1).dev, I214(#2).dev)
            #IF #I214(#2).UN > #3
                #ASSIGN #3 = #I214(#2).UN
            #ENDIF
		#ENDIF
	#ENDLOOP
#ASSIGN #3 = #3 + 1
& #3,
& I215INIT,
& I215FINISH,
& I215START,
& DEFAULTSTOP,
& I215INTERRUPT,
& 0FFFFH,
& 0,
& 0
&>
DW #d214(#1).wip
DB 0000H
  #IF  #d214(#1).ipa = 0
    #ASSIGN #6 = #d214(#1).wip 
    #ASSIGN #6 = ( #6 << 4 ) + 6
DD #6
  #ELSE
DD #d214(#1).ipa
  #ENDIF
	#ASSIGN #3 = 0
	#ASSIGN #2 = 1
	#LOOP #2 #REP(U214)
		#IF #EQU(d214(#1).dev, U214(#2).dev)
			#ASSIGN #3 = #3 + 1
#U214(#2).nam RADEV_UNIT_INFO <
& 00000H,
& #U214(#2).mr,
& #U214(#2).cs
&>
DW 00001H
DW #U214(#2).nc
DB #U214(#2).nfh
DB #U214(#2).nrh
DB #U214(#2).ns
DB #U214(#2).nac
DD #U214(#2).ssn
	#IF #U214(#2).bti
DB TRUE
	#ELSE
DB FALSE
	#ENDIF
DB #U214(#2).hlt
DB #U214(#2).sr
		#ENDIF
	#ENDLOOP
	#ASSIGN #1 = #1 + 1
#ENDFOREVER
[
[  220 driver
[
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(D220) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(d220(#1).dev )
DINFO_#9  RADEV_DEV_INFO <
#ASSIGN #6 = #d220(#1).il & 7FFFH
& #6,
& #d220(#1).itp,
& 350,
& 124,
	#ASSIGN #3 = 0
	#ASSIGN #2 = 1
	#LOOP #2 #REP(I220)
		#IF #EQU(d220(#1).dev, I220(#2).dev)
            #IF #I220(#2).UN > #3
                #ASSIGN #3 = #I220(#2).UN
            #ENDIF
		#ENDIF
	#ENDLOOP
#ASSIGN #3 = #3 + 1
& #3,
& I220INIT,
& I220FINISH,
& I220START,
& DEFAULTSTOP,
& I220INTERRUPT,
& 0FFFFH,
& 0,
& 0
&>
DW #d220(#1).wip
  #IF  #d220(#1).ipa = 0
    #ASSIGN #6 = #d220(#1).wip 
    #ASSIGN #6 = ( #6 << 4 ) + 6
DD #6
  #ELSE
DD #d220(#1).ipa
  #ENDIF
DW #d220(#1).sb
	#ASSIGN #3 = 0
	#ASSIGN #2 = 1
	#LOOP #2 #REP(U220)
		#IF #EQU(d220(#1).dev, u220(#2).dev)
			#ASSIGN #3 = #3 + 1
#u220(#2).nam RADEV_UNIT_INFO <
& 00000H,
& #u220(#2).mr,
& #u220(#2).cs
&>
DW #u220(#2).nc
DB #u220(#2).nfh
DB #u220(#2).nrh
DB #u220(#2).ns
DB #u220(#2).nac
DD #u220(#2).ssn
	#IF #U220(#2).bti
DB TRUE
	#ELSE
DB FALSE
	#ENDIF
		#ENDIF
	#ENDLOOP
	#ASSIGN #1 = #1 + 1
#ENDFOREVER
[
[  lp
[
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(D350) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(d350(#1).dev )
DINFO_#9  COMMON_DEV_INFO <
#ASSIGN #6 = #d350(#1).il | 8000H
& #6,
& #d350(#1).itp,
& 22,
& 2,
& 1,
& DEFAULTINIT,
& DEFAULTFINISH,
& PRINTERSTARTINTERRUPT,
& PRINTERSTOP,
& PRINTERSTARTINTERRUPT,
& #d350(#1).ito,
& 0,
& 0
&>
DW #d350(#1).poa
DW #d350(#1).pob
DW #d350(#1).poc
DW #d350(#1).con
	#IF #d350(#1).tab
DW TRUE
	#ELSE
DW FALSE
	#ENDIF
	#ASSIGN #1 = #1 + 1
#ENDFOREVER
[
[  386 lp
[
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(D386) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(d386(#1).dev )
DINFO_#9  COMMON_DEV_INFO <
#ASSIGN #6 = #d386(#1).il | 8000H
& #6,
& #d386(#1).itp,
& 22,
& 2,
& 1,
& DEFAULTINIT,
& DEFAULTFINISH,
& PRINTER286START,
& PRINTER286STOP,
& PRINTER286INTERRUPT,
& #d386(#1).ito,
& 0,
& 0
&>
DW #d386(#1).poa
DW #d386(#1).pob
DW #d386(#1).poc
DW #d386(#1).con
	#IF #d386(#1).tab
DW TRUE
	#ELSE
DW FALSE
	#ENDIF
	#ASSIGN #1 = #1 + 1
#ENDFOREVER
[
[  208
[ 
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(D208) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(d208(#1).dev )
DINFO_#9  RADEV_DEV_INFO <
#ASSIGN #6 = #d208(#1).il & 7FFFH
& #6,
& #d208(#1).itp,
& 220,
& 170,
& 4,
& I208INIT,
& I208FINISH,
& I208START,
& DEFAULTSTOP,
& I208INTERRUPT,
& 0FFFFH,
& 0,
& 0
&>
DW #d208(#1).pa
DW #d208(#1).mdv
DD #d208(#1).bba
	#ASSIGN #3 = 0
	#ASSIGN #2 = 1
	#LOOP #2 #REP(U208)
		#IF #EQU(d208(#1).dev, u208(#2).dev)
			#ASSIGN #3 = #3 + 1
#u208(#2).nam RADEV_UNIT_INFO <
& 00000H,
& #u208(#2).mr,
& #u208(#2).cs
&>
DW #u208(#2).nt
DW #u208(#2).ns
DB #u208(#2).sr
DB #u208(#2).hlt
DB #u208(#2).hut
		#ENDIF
	#ENDLOOP
	#ASSIGN #1 = #1 + 1
#ENDFOREVER
[
[  ram driver
[ 
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(DRAM) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(dram(#1).dev )
	#ASSIGN #3 = 0
	#ASSIGN #2 = 1
	#LOOP #2 #REP(Uram)
		#IF #EQU(dram(#1).dev, uram(#2).dev)
			#ASSIGN #3 = #3 + 1
#uram(#2).nam DD #uram(#2).bma
		#IF #uram(#2).wp
DB TRUE
		#ELSE
DB FALSE
		#ENDIF
		#ENDIF
	#ENDLOOP
	#ASSIGN #1 = #1 + 1
#ENDFOREVER
[
[ 186/224A Device Information Tables
[
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(D224A) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(d224A(#1).dev) [ get device name
	#ASSIGN #2 = 4000 + (#d224A(#1).moc * 4)
DINFO_#9  RADEV_DEV_INFO <
& 04000H,                               [ FIXED FOR 186/224A DRIVER
& #d224A(#1).mtp,                        [ PRIORITY
& 2048,                                 [ STACK$SIZE
& #2,                                   [ DATA$SIZE
& 12,                                   [ NUM$UNITS
& mb2pciinit,
& DEFAULTFINISH,
& mb2pcistart,
& DEFAULTSTOP,
& mb2pcimessage,
& #d224A(#1).tl,                          [ TIME$LIMIT
& 0,                                     [ RESERVED
& 0                                      [ RESERVED
&>
DW #d224A(#1).moc                         [ QUEUE$SIZE
DB #d224A(#1).in                          [ INSTANCE
	#ASSIGN #2 = 1                       [ SET-UP BOARD ID
	#ASSIGN #3 = 10
	#ASSIGN #7 = #LEN(d224A(#1).bi)
	#IF (#7 < #3)         
DB '#d224A(#1).bi'
		#ASSIGN #3 = #3 - #7
		#LOOP #2 #3
DB 0H
		#ENDLOOP
	#ELSE
DB '#d224A(#1).bi'
	#ENDIF
[
[ 186/224A Unit Information tables
[
#ASSIGN #2 = 1
#LOOP #2 #REP(U224A)
	#IF #EQU(d224A(#1).dev, u224A(#2).dev)
#U224A(#2).nam RADEV_UNIT_INFO <
& 00000H,                           [ TRACK$SIZE
	#IF #U224A(#2).ar               [ MAX$RETRY
& TRUE,
	#ELSE
& FALSE,
	#ENDIF
& 00000H                            [ CYLINDER$SIZE
&>
DW #U224A(#2).nc
DB #U224A(#2).nh
DB #U224A(#2).ns
DB #U224A(#2).nac                   [ NUM. ALT. CYCL.
	#IF #U224A(#2).bti
DB TRUE
	#ELSE
DB FALSE
	#ENDIF
DB #U224A(#2).sr
DW #U224A(#2).rwc
DW #U224A(#2).wpc
DB 0H
	#IF #U224A(#2).rd
DB TRUE
	#ELSE
DB FALSE
	#ENDIF
DB 0H                            [ initialize type
DB 0H		                     [ 10 reserved bytes
DB 0H
DB 0H
DB 0H
DB 0H
DB 0H
DB 0H
DB 0H
DB 0H
DB 0H
		#ENDIF
	#ENDLOOP
	#ASSIGN #1 = #1 + 1
#ENDFOREVER
[
[ MBII PCI Device Information Tables
[
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(dpci) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(dpci(#1).dev) [ get device name
	#ASSIGN #2 = 3736 + (#dpci(#1).moc * 4)
DINFO_#9  RADEV_DEV_INFO <
& 05000H,                               [ FIXED FOR MBII PCI DRIVER
& #dpci(#1).mtp,                        [ PRIORITY
& 2048,                                 [ STACK$SIZE
& #2,                                   [ DATA$SIZE
	#ASSIGN #3 = 0
	#ASSIGN #2 = 1
	#LOOP #2 #REP(ipci)
		#IF #EQU(dpci(#1).dev, ipci(#2).dev)
            #IF #ipci(#2).UN > #3
                #ASSIGN #3 = #ipci(#2).UN
            #ENDIF
		#ENDIF
	#ENDLOOP
#ASSIGN #3 = #3 + 1
& #3,                                   [ NUM$UNITS
& mb2258init,
& DEFAULTFINISH,
& mb2258start,
& DEFAULTSTOP,
& mb2258message,
& #dpci(#1).tl,                          [ TIME$LIMIT
& 0,                                     [ RESERVED
& 0                                      [ RESERVED
&>
DW #dpci(#1).moc                         [ QUEUE$SIZE
DB #dpci(#1).in                          [ INSTANCE
	#ASSIGN #2 = 1                       [ SET-UP BOARD ID
	#ASSIGN #3 = 10
	#ASSIGN #7 = #LEN(dpci(#1).bi)
	#IF (#7 < #3)         
DB '#dpci(#1).bi'
		#ASSIGN #3 = #3 - #7
		#LOOP #2 #3
DB 0H
		#ENDLOOP
	#ELSE
DB '#dpci(#1).bi'
	#ENDIF
	#ASSIGN #2 = 1                       [ SET-UP SPS STRING
	#ASSIGN #3 = 16
	#ASSIGN #7 = #LEN(dpci(#1).dev)
	#IF (#7 < #3)         
DB 'RQ_#dpci(#1).dev'
		#ASSIGN #3 = #3 - #7
		#LOOP #2 #3
DB 0H
		#ENDLOOP
	#ELSE
DB 'RQ_#dpci(#1).dev'
	#ENDIF
DW #dpci(#1).sin                         [ SERVER INSTANCE
[
[ MBII PCI Unit Information tables
[
#ASSIGN #2 = 1
#LOOP #2 #REP(UPCI)
	#IF #EQU(dpci(#1).dev, upci(#2).dev)
#upci(#2).nam RADEV_UNIT_INFO <
& 00000H,                           [ TRACK$SIZE
	#IF #upci(#2).ar               [ MAX$RETRY
& TRUE,
	#ELSE
& FALSE,
	#ENDIF
& 00000H                            [ CYLINDER$SIZE
&>
DD #upci(#2).nc
DW #upci(#2).nh
DW #upci(#2).ns
	#ASSIGN #3 = #upci(#2).xr | (#upci(#2).sp << 2) 
	#IF #upci(#2).tr
		#ASSIGN #3 = #3 | 10H
	#ENDIF 
DB #3
DB #upci(#2).mt
DD #upci(#2).rwc
DD #upci(#2).wpc
DW #upci(#2).sr
DW #upci(#2).asz
DW #upci(#2).atz
DW #upci(#2).atv
DD #upci(#2).tz
DW #upci(#2).tsk
DW #upci(#2).csk
DW 0                   [interleave
DB #upci(#2).p2
DB #upci(#2).p34
	#IF #upci(#2).rd
DB TRUE
	#ELSE
DB FALSE
	#ENDIF
	#IF #EQU(upci(#2).pdt , 'W' )
DB 1
	#ENDIF
	#IF #EQU(upci(#2).pdt , 'F' )
DB 2
	#ENDIF
	#IF #EQU(upci(#2).pdt , 'T' )
DB 3
	#ENDIF
	#IF #upci(#2).pol
DB TRUE
	#ELSE
DB FALSE
	#ENDIF
	#IF #upci(#2).crt
DB TRUE
	#ELSE
DB FALSE
	#ENDIF
	#IF #EQU(upci(#2).dlf , 'P' )
DB 1
	#ENDIF
	#IF #EQU(upci(#2).dlf , 'L' )
DB 2
	#ENDIF
	#IF #EQU(upci(#2).dlf , 'B' )
DB 4
	#ENDIF
	#IF #upci(#2).ce
DB 1
	#ELSE
DB 0
	#ENDIF
	#IF #upci(#2).cre
DB 1
	#ELSE
DB 0
	#ENDIF
DB #upci(#2).rwp
DB #upci(#2).so
DB #upci(#2).bs
DB #upci(#2).rah
	#IF #upci(#2).stf
DB TRUE
	#ELSE
DB FALSE
	#ENDIF
[
		#ENDIF
	#ENDLOOP
	#ASSIGN #1 = #1 + 1
#ENDFOREVER
[
[  PC Bus Line Printer
[
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(D120P) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(d120P(#1).dev )
DINFO_#9  COMMON_DEV_INFO <
#ASSIGN #6 = #d120P(#1).il | 8000H
& #6,
& #d120P(#1).itp,
& 100H,
& 0,
& 1,
& DEFAULTINIT,
& DEFAULTFINISH,
& I120LPSTART,
& I120LPSTOP,
& I120LPINTERRUPT,
& #d120P(#1).ito,
& 0,
& 0
&>
DW #d120P(#1).bpa
	#IF #d120P(#1).tab
DB TRUE
	#ELSE
DB FALSE
	#ENDIF
	#ASSIGN #1 = #1 + 1
#ENDFOREVER
[
[  PC Bus Floppy
[ 
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(D120F) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(d120F(#1).dev )
DINFO_#9  RADEV_DEV_INFO <
#ASSIGN #6 = #d120F(#1).il | 8000H
& #6,
& #d120F(#1).itp,
& 008CH,
& 0180H,
& 2,
& I120FDINIT,
& I120FDFINISH,
& I120FDSTART,
& DEFAULTSTOP,
& I120FDINTERRUPT,
& #d120F(#1).ito,
& 0,
& 0
&>
DD #d120F(#1).bba
DW #d120F(#1).dmc
DW #d120F(#1).dmp
DW #d120F(#1).fdc
DW #d120F(#1).mdv
DB #d120F(#1).sr
DB #d120F(#1).hlt
DB #d120F(#1).hut
	#ASSIGN #2 = 1
	#LOOP #2 #REP(U120F)
		#IF #EQU(d120F(#1).dev, u120F(#2).dev)
#u120F(#2).nam RADEV_UNIT_INFO <
& 0000H,
& #u120F(#2).mr,
& 0000H
&>
DW #u120F(#2).nt
DB #u120F(#2).ns
DB #u120F(#2).mt
		#ENDIF
	#ENDLOOP
	#ASSIGN #1 = #1 + 1
#ENDFOREVER
[
[  PC Bus Wini 
[
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(D120W) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(D120W(#1).dev )
DINFO_#9  RADEV_DEV_INFO <
#ASSIGN #6 = #D120W(#1).il & 7FFFH
& #6,
& #D120W(#1).itp,
& 100H,
& 1340,
	#ASSIGN #3 = 0
	#ASSIGN #2 = 1
	#LOOP #2 #REP(I120W)
		#IF #EQU(D120W(#1).dev, I120W(#2).dev)
            #IF #I120W(#2).UN > #3
                #ASSIGN #3 = #I120W(#2).UN
            #ENDIF
		#ENDIF
	#ENDLOOP
#ASSIGN #3 = #3 + 1
& #3,
& ISYS120WINIINIT,
& DEFAULTFINISH,
& ISYS120WINISTART,
& DEFAULTSTOP,
& ISYS120WINIINT,
& 0FFFFH,
& 0,
& 0
&>
DW #D120W(#1).bpa
DW #D120W(#1).cpa
	#ASSIGN #2 = 1
	#LOOP #2 #REP(U120W)
		#IF #EQU(D120W(#1).dev, U120W(#2).dev)
#U120W(#2).nam RADEV_UNIT_INFO <
& 00000H,
& #U120W(#2).mr,
& 0
&>
DB #U120W(#2).nh
DB #U120W(#2).ns
DB #U120W(#2).wp
DW #U120W(#2).nc
		#ENDIF
	#ENDLOOP
	#ASSIGN #1 = #1 + 1
#ENDFOREVER
[
[  PC Bus SCSI
[
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(D120A) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(D120A(#1).dev )
DINFO_#9  RADEV_DEV_INFO <
#ASSIGN #6 = 4002H				[ Shared memory Message Passing driver
& #6,
& #D120A(#1).itp,
& 800H,
& 0641H,
	#ASSIGN #3 = 0
	#ASSIGN #2 = 1
	#LOOP #2 #REP(I120A)
		#IF #EQU(D120A(#1).dev, I120A(#2).dev)
		    #ASSIGN #6 = #I120A(#2).un
            #IF #6 > #3
                #ASSIGN #3 = #6
            #ENDIF
		#ENDIF
	#ENDLOOP
#ASSIGN #3 = #3 + 1
& #3,
& X1540INIT,
& X1540FINISH,
& X1540START,
& DEFAULTSTOP,
& X1540INTERRUPT,
& 0FFFFH,
& 0,
& 0
&>
DW 0  [message queuesize - unused
DD 0  [message queue address - unused
DW 0  [wakeup port address - unused
#ASSIGN #6 = #D120A(#1).il & 7FFFH
DW #6
DW #D120A(#1).BPA
DB #D120A(#1).DMC
DB #D120A(#1).NCB
DW #D120A(#1).STO
DB #D120A(#1).BON
DB #D120A(#1).BOF
DB #D120A(#1).BXR
	#ASSIGN #2 = 1
	#LOOP #2 #REP(U120A)
		#IF #EQU(D120A(#1).dev, U120A(#2).dev)
#U120A(#2).nam RADEV_UNIT_INFO <
& 00000H,
& #U120A(#2).mr,
& 0
&>
DB #U120A(#2).dt
DB #U120A(#2).dc
DB #U120A(#2).bm
DD #U120A(#2).nc
DW #U120A(#2).nh
DW #U120A(#2).ns
DW #U120A(#2).asz
DW #U120A(#2).atz
DW #U120A(#2).atv
DD #U120A(#2).tz
DW #U120A(#2).tsk
DW #U120A(#2).csk
DW 0
DD #U120A(#2).wpc
DD #U120A(#2).rwc
DW #U120A(#2).sr
	#IF #U120A(#2).crt
DB TRUE
	#ELSE
DB FALSE
	#ENDIF
	#IF #EQU(U120A(#2).dlf , 'P' )
DB 5
	#ENDIF
	#IF #EQU(U120A(#2).dlf , 'L' )
DB 0
	#ENDIF
	#IF #EQU(U120A(#2).dlf , 'B' )
DB 4
	#ENDIF
		#ENDIF
	#ENDLOOP
	#ASSIGN #1 = #1 + 1
#ENDFOREVER
#USER_RAD_DINFO
CODE ENDS
[
TSC_CODE SEGMENT ER PUBLIC
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(I8274) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(I8274(#1).dev )
#ADD_FAR_EXTRN #9
#ADD_FAR_EXTRN #I8274(#1).uin
    #ASSIGN #1 = #1 + 1
#ENDFOREVER
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(I2530) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(I2530(#1).dev )
#ADD_FAR_EXTRN #9
#ADD_FAR_EXTRN #I2530(#1).uin
    #ASSIGN #1 = #1 + 1
#ENDFOREVER
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(I544) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(I544(#1).dev )
#ADD_FAR_EXTRN #9
#ADD_FAR_EXTRN #I544(#1).uin
    #ASSIGN #1 = #1 + 1
#ENDFOREVER
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(I8251) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(I8251(#1).dev )
#ADD_FAR_EXTRN #9
#ADD_FAR_EXTRN #I8251(#1).uin
    #ASSIGN #1 = #1 + 1
#ENDFOREVER
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(I534) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(I534(#1).dev )
#ADD_FAR_EXTRN #9
#ADD_FAR_EXTRN #I534(#1).uin
    #ASSIGN #1 = #1 + 1
#ENDFOREVER
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(I8848) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(I8848(#1).dev )
#ADD_FAR_EXTRN #9
#ADD_FAR_EXTRN #I8848(#1).UIN
    #ASSIGN #1 = #1 + 1
#ENDFOREVER
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(I410) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(I410(#1).dev )
#ADD_FAR_EXTRN #9
#ADD_FAR_EXTRN #I410(#1).uin
    #ASSIGN #1 = #1 + 1
#ENDFOREVER
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(I279) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(I279(#1).dev )
#ADD_FAR_EXTRN #9
#ADD_FAR_EXTRN #I279(#1).unn
    #ASSIGN #1 = #1 + 1
#ENDFOREVER
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(IVT) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(IVT(#1).dev )
#ADD_FAR_EXTRN #9
#ADD_FAR_EXTRN #IVT(#1).uin
    #ASSIGN #1 = #1 + 1
#ENDFOREVER
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(I120S) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(I120S(#1).dev )
#ADD_FAR_EXTRN #9
#ADD_FAR_EXTRN #I120S(#1).uin
    #ASSIGN #1 = #1 + 1
#ENDFOREVER
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(I120H) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(I120H(#1).dev )
#ADD_FAR_EXTRN #9
#ADD_FAR_EXTRN #I120H(#1).uin
    #ASSIGN #1 = #1 + 1
#ENDFOREVER
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(I120C) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(I120C(#1).dev )
#ADD_FAR_EXTRN #9
#ADD_FAR_EXTRN #I120C(#1).uin
    #ASSIGN #1 = #1 + 1
#ENDFOREVER
#USER_FAR_EXTRN
TSC_CODE ENDS
#ASSIGN #1 = 1
#LOOP #1 #REP(USERD)
   #IF ~#EQU( userd(#1).dup , 'NONE') 
[
[ added segment strings below for II.3 update 0
[
CODE SEGMENT
$include (#userd(#1).dup )
CODE ENDS
   #ENDIF
#ENDLOOP
END
#ENDFILE
[
[    ITDEV.A38
[
[itdev.a38 generation requires glob.bio and bios.tsc
#GEN ITDEV.A38 #COND ( #glob.bio & #bios.tsc )
NAME ITDEV
$INCLUDE (#incl.bif!IDEVCF.INC)
TSC_CODE SEGMENT ER PUBLIC
#IF #idevs.T51
    #ADD_NEAR_EXTRN   TERMNULL
    #ADD_NEAR_EXTRN   I8251INIT
    #ADD_NEAR_EXTRN   I8251SETUP
    #ADD_NEAR_EXTRN   I8251CHECK
    #ADD_NEAR_EXTRN   I8251OUT
#ENDIF
#IF #idevs.T74
    #ADD_NEAR_EXTRN   TERMNULL
    #ADD_NEAR_EXTRN   I8274INIT
    #ADD_NEAR_EXTRN   I8274FINISH
    #ADD_NEAR_EXTRN   I8274SETUP
    #ADD_NEAR_EXTRN   I8274CHECK
    #ADD_NEAR_EXTRN   I8274OUT
    #ADD_NEAR_EXTRN   I8274ANSWER
    #ADD_NEAR_EXTRN   I8274HANGUP
#ENDIF
#IF #idevs.tcc
    #ADD_NEAR_EXTRN   TERMNULL
    #ADD_NEAR_EXTRN   I188INIT
    #ADD_NEAR_EXTRN   I188FINISH
    #ADD_NEAR_EXTRN   I188SETUP
    #ADD_NEAR_EXTRN   I188CHECK
    #ADD_NEAR_EXTRN   I188ANSWER
    #ADD_NEAR_EXTRN   I188HANGUP
    #ADD_NEAR_EXTRN   I188UTILITY
#ENDIF
#IF #idevs.t44
    #ADD_NEAR_EXTRN   TERMNULL
    #ADD_NEAR_EXTRN   I544INIT
    #ADD_NEAR_EXTRN   I544FINISH
    #ADD_NEAR_EXTRN   I544SETUP
    #ADD_NEAR_EXTRN   I544CHECK
    #ADD_NEAR_EXTRN   I544ANSWER
    #ADD_NEAR_EXTRN   I544HANGUP
    #ADD_NEAR_EXTRN   I544UTILITY
#ENDIF
#IF #idevs.t34
    #ADD_NEAR_EXTRN   TERMNULL
    #ADD_NEAR_EXTRN   I534INIT
    #ADD_NEAR_EXTRN   I534FINISH
    #ADD_NEAR_EXTRN   I534SETUP
    #ADD_NEAR_EXTRN   I534CHECK
    #ADD_NEAR_EXTRN   I534OUT
    #ADD_NEAR_EXTRN   I534ANSWER
    #ADD_NEAR_EXTRN   I534HANGUP
#ENDIF
#IF #idevs.t30
    #ADD_NEAR_EXTRN   TERMNULL
    #ADD_NEAR_EXTRN   I82530INIT
    #ADD_NEAR_EXTRN   I82530FINISH
    #ADD_NEAR_EXTRN   I82530SETUP
    #ADD_NEAR_EXTRN   I82530CHECK
    #ADD_NEAR_EXTRN   I82530ANSWER
    #ADD_NEAR_EXTRN   I82530OUT
    #ADD_NEAR_EXTRN   I82530HANGUP
#ENDIF
#IF #idevs.S10
    #ADD_NEAR_EXTRN   TERMNULL
    #ADD_NEAR_EXTRN   IATCSINIT
    #ADD_NEAR_EXTRN   IATCSFINISH
    #ADD_NEAR_EXTRN   IATCSSETUP
    #ADD_NEAR_EXTRN   IATCSANSWER
    #ADD_NEAR_EXTRN   IATCSHANGUP
    #ADD_NEAR_EXTRN   IATCSUTILITY
    #ADD_NEAR_EXTRN   IATCSCHECK
#ENDIF
#IF #idevs.g79
    #ADD_NEAR_EXTRN      I279TERMINIT
    #ADD_NEAR_EXTRN      I279TERMFINISH
    #ADD_NEAR_EXTRN      I279TERMSETUP
    #ADD_NEAR_EXTRN      I279TERMOUT
    #ADD_NEAR_EXTRN      I279TERMANSWER
    #ADD_NEAR_EXTRN      I279TERMHANGUP
    #ADD_NEAR_EXTRN      I279TERMUTILITY
    #ADD_NEAR_EXTRN      I279TERMCHECK
#ENDIF
#IF #idevs.TVT
    #ADD_NEAR_EXTRN   TERMNULL
    #ADD_NEAR_EXTRN   VTINIT
    #ADD_NEAR_EXTRN   VTFINISH
    #ADD_NEAR_EXTRN   VTSETUP
    #ADD_NEAR_EXTRN   VTANSWER
    #ADD_NEAR_EXTRN   VTHANGUP
    #ADD_NEAR_EXTRN   VTUTIL
    #ADD_NEAR_EXTRN   VTCHECK
#ENDIF
#IF #idevs.S1S
    #ADD_NEAR_EXTRN   TERMNULL
    #ADD_NEAR_EXTRN   I120SERINIT
    #ADD_NEAR_EXTRN   I120SERFINISH
    #ADD_NEAR_EXTRN   I120SERSETUP
    #ADD_NEAR_EXTRN   I120SERCHECK
    #ADD_NEAR_EXTRN   I120SEROUT
    #ADD_NEAR_EXTRN   I120SERANSWER
    #ADD_NEAR_EXTRN   I120SERHANGUP
#ENDIF
#IF #idevs.S1H
    #ADD_NEAR_EXTRN   TERMNULL
    #ADD_NEAR_EXTRN   HOST550INIT
    #ADD_NEAR_EXTRN   HOST550FINISH
    #ADD_NEAR_EXTRN   HOST550SETUP
    #ADD_NEAR_EXTRN   HOST550CHECK
    #ADD_NEAR_EXTRN   HOST550ANSWER
    #ADD_NEAR_EXTRN   HOST550HANGUP
    #ADD_NEAR_EXTRN   HOST550UTILITY
#ENDIF
#IF #idevs.S1C
    #ADD_NEAR_EXTRN   TERMNULL
    #ADD_NEAR_EXTRN   I120CONSOLEINIT
    #ADD_NEAR_EXTRN   I120CONSOLEFINISH
    #ADD_NEAR_EXTRN   I120CONSOLESETUP
    #ADD_NEAR_EXTRN   I120CONSOLECHECK
    #ADD_NEAR_EXTRN   I120CONSOLEUTILITY
#ENDIF
#USER_TERM_EXTRN
[
[   351 driver
[
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(D8251) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(D8251(#1).dev )
          PUBLIC DINFO_#9
DINFO_#9  DW 1
DW 5
DD 600
DD I8251INIT
DD TERMNULL
DD I8251SETUP
DD I8251OUT
DD TERMNULL
DD TERMNULL
DD TERMNULL
DW 2
DW #D8251(#1).iil
DD I8251CHECK
DW #D8251(#1).oil
DD 0
DW #D8251(#1).udp
DW #D8251(#1).usp
DW #D8251(#1).irp
DW #D8251(#1).icp
DB #D8251(#1).irc
#ASSIGN #4 = #D8251(#1).irf >> 4
DD #4
DW #D8251(#1).orp
DW #D8251(#1).ocp
DB #D8251(#1).orc
#ASSIGN #4 = #D8251(#1).orf >> 4
DD #4
	#ASSIGN #2 = 1
	#LOOP #2 #REP(U8251)
		#IF #EQU(D8251(#1).dev, U8251(#2).dev)
			#IF #EQU(U8251(#2).lem , 'T' )
				#ASSIGN #5 = 1
			#ENDIF
			#IF #EQU(U8251(#2).lem , 'N' )
				#ASSIGN #5 = 2
			#ENDIF
			#IF #EQU(U8251(#2).lem , 'F' )
				#ASSIGN #5 = 3
			#ENDIF
			#IF #EQU(U8251(#2).osc , 'B' )
				#ASSIGN #6 = 0
			#ENDIF
			#IF #EQU(U8251(#2).osc , 'I' )
				#ASSIGN #6 = 1
			#ENDIF
			#IF #EQU(U8251(#2).osc , 'O' )
				#ASSIGN #6 = 2
			#ENDIF
			#IF #EQU(U8251(#2).osc , 'N' )
				#ASSIGN #6 = 3
			#ENDIF
			#ASSIGN #4 =  #5 + ( 4  * ( ~( #U8251(#2).ech) & 1)) 
			#ASSIGN #4 =  #4 + ( 8  * ( ~( #U8251(#2).ipc) & 1)) 
			#ASSIGN #4 =  #4 + ( 16 * ( ~( #U8251(#2).opc) & 1))
			#ASSIGN #4 =  #4 + ( 32 * ( ~( #U8251(#2).occ) & 1)) 
			#ASSIGN #4 =  #4 + ( 64 * #6)
           PUBLIC #U8251(#2).nam
#U8251(#2).nam  DW #4
			#IF #EQU(U8251(#2).trm , 'C' )
				#ASSIGN #5 = 0
			#ELSE
				#ASSIGN #5 = 1
			#ENDIF
			#IF #EQU(U8251(#2).dup , 'F' )
				#ASSIGN #6 = 0
			#ELSE
				#ASSIGN #6 = 1
			#ENDIF
			#ASSIGN #4 =  1 + (2 * #6) + (4 * #5) + (8 * (#U8251(#2).mc & 1))
			#ASSIGN #4 =  #4 + (#U8251(#2).rpc << 4)  +  (#U8251(#2).wpc << 6)
                
DW #4
DD #U8251(#2).br
DD 00000H
DW #U8251(#2).sn
		#ENDIF
	#ENDLOOP
	#ASSIGN #1 = #1 + 1
#ENDFOREVER
[
[  8274 driver
[
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(D8274) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(d8274(#1).dev )
          PUBLIC DINFO_#9
DINFO_#9  DW 2
DW 12
DD 300
DD I8274INIT
DD I8274FINISH
DD I8274SETUP
DD I8274OUT
DD I8274ANSWER
DD I8274HANGUP
DD TERMNULL
DW 1
DW #d8274(#1).il
DD I8274CHECK
DW #d8274(#1).cad
DW #d8274(#1).cas
DW #d8274(#1).cbd
DW #d8274(#1).cbs
DW #d8274(#1).aip
DW #d8274(#1).aic
DB #d8274(#1).ait
#ASSIGN #4 = #d8274(#1).aif >> 4
DD #4
DW #d8274(#1).aop
DW #d8274(#1).aoc
DB #d8274(#1).aot
#ASSIGN #4 = #d8274(#1).aof >> 4
DD #4
DW #d8274(#1).bip
DW #d8274(#1).bic
DB #d8274(#1).bit
#ASSIGN #4 = #d8274(#1).bif >> 4
DD #4
DW #d8274(#1).bop
DW #d8274(#1).boc
DB #d8274(#1).bot
#ASSIGN #4 = #d8274(#1).bof >> 4
DD #4
DB 001H
DB 001H
	#ASSIGN #2 = 1
	#LOOP #2 #REP(U8274)
		#IF #EQU(d8274(#1).dev, u8274(#2).dev)
			#IF #EQU(u8274(#2).lem , 'T' )
				#ASSIGN #5 = 1
			#ENDIF
			#IF #EQU(u8274(#2).lem , 'N' )
				#ASSIGN #5 = 2
			#ENDIF
			#IF #EQU(u8274(#2).lem , 'F' )
				#ASSIGN #5 = 3
			#ENDIF
			#IF #EQU(u8274(#2).osc , 'B' )
				#ASSIGN #6 = 0
			#ENDIF
			#IF #EQU(u8274(#2).osc , 'I' )
				#ASSIGN #6 = 1
			#ENDIF
			#IF #EQU(u8274(#2).osc , 'O' )
				#ASSIGN #6 = 2
			#ENDIF
			#IF #EQU(u8274(#2).osc , 'N' )
				#ASSIGN #6 = 3
			#ENDIF
			#ASSIGN #4 =  #5 + ( 4  * ( ~( #U8274(#2).ech) & 1)) 
			#ASSIGN #4 =  #4 + ( 8  * ( ~( #U8274(#2).ipc) & 1)) 
			#ASSIGN #4 =  #4 + ( 16 * ( ~( #U8274(#2).opc) & 1))
			#ASSIGN #4 =  #4 + ( 32 * ( ~( #U8274(#2).occ) & 1)) 
			#ASSIGN #4 =  #4 + ( 64 * #6)
           PUBLIC #u8274(#2).nam
#u8274(#2).nam  DW #4
			#IF #EQU(u8274(#2).trm , 'C' )
				#ASSIGN #5 = 0
			#ELSE
				#ASSIGN #5 = 1
			#ENDIF
			#IF #EQU(u8274(#2).dup , 'F' )
				#ASSIGN #6 = 0
			#ELSE
				#ASSIGN #6 = 1
			#ENDIF
			#ASSIGN #4 =  1 + (2 * #6) + (4 * #5) + (8 * (#U8274(#2).mc & 1))
			#ASSIGN #4 =  #4 + (#U8274(#2).rpc << 4)  +  (#U8274(#2).wpc << 6)
DW #4
DD #u8274(#2).br
DD 00000H
DW #u8274(#2).sn
		#ENDIF
	#ENDLOOP
	#ASSIGN #1 = #1 + 1
#ENDFOREVER
[
[ 544
[
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(D544) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(d544(#1).dev )
    #ASSIGN #4 = 0
    #ASSIGN #7 = 1
    #LOOP #7 #REP(I544)                     [   Find maximum unit number
	    #IF #EQU( D544(#1).DEV, I544(#7).DEV )
		    #IF #I544(#7).UN > #4
			    #ASSIGN #4 = I544(#7).UN
    		#ENDIF
	    #ENDIF
    #ENDLOOP
    #ASSIGN #4 = #4 + 1
          PUBLIC DINFO_#9
DINFO_#9  DW #4
DW 11
DD 300
DD I544INIT
DD I544FINISH
DD I544SETUP
DD TERMNULL
DD I544ANSWER
DD I544HANGUP
DD I544UTILITY
DW 1
DW #d544(#1).il
DD I544CHECK
DD #d544(#1).ma
DW #d544(#1).ms
DB #d544(#1).nb
	#ASSIGN #2 = 1
	#LOOP #2 #REP(U544)
		#IF #EQU(d544(#1).dev, u544(#2).dev)
			#IF #EQU(u544(#2).lem , 'T' )
				#ASSIGN #5 = 1
			#ENDIF
			#IF #EQU(u544(#2).lem , 'N' )
				#ASSIGN #5 = 2
			#ENDIF
			#IF #EQU(u544(#2).lem , 'F' )
				#ASSIGN #5 = 3
			#ENDIF
			#IF #EQU(u544(#2).osc , 'B' )
				#ASSIGN #6 = 0
			#ENDIF
			#IF #EQU(u544(#2).osc , 'I' )
				#ASSIGN #6 = 1
			#ENDIF
			#IF #EQU(u544(#2).osc , 'O' )
				#ASSIGN #6 = 2
			#ENDIF
			#IF #EQU(u544(#2).osc , 'N' )
				#ASSIGN #6 = 3
			#ENDIF
			#ASSIGN #4 =  #5 + ( 4  * ( ~( #U544(#2).ech) & 1)) 
			#ASSIGN #4 =  #4 + ( 8  * ( ~( #U544(#2).ipc) & 1)) 
			#ASSIGN #4 =  #4 + ( 16 * ( ~( #U544(#2).opc) & 1))
			#ASSIGN #4 =  #4 + ( 32 * ( ~( #U544(#2).occ) & 1)) 
			#ASSIGN #4 =  #4 + ( 64 * #6)
          PUBLIC #u544(#2).nam
#u544(#2).nam  DW #4
			#IF #EQU(u544(#2).trm , 'C' )
				#ASSIGN #5 = 0
			#ELSE
				#ASSIGN #5 = 1
			#ENDIF
			#IF #EQU(u544(#2).dup , 'F' )
				#ASSIGN #6 = 0
			#ELSE
				#ASSIGN #6 = 1
			#ENDIF
			#ASSIGN #4 =  1 + (2 * #6) + (4 * #5) + (8 * (#U544(#2).mc & 1))
			#ASSIGN #4 =  #4 + (#U544(#2).rpc << 4)  +  (#U544(#2).wpc << 6)
DW #4
DD #u544(#2).br
DD 00000H
DW #u544(#2).sn
		#ENDIF
	#ENDLOOP
	#ASSIGN #1 = #1 + 1
#ENDFOREVER
[
[ 534
[
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(D534) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(d534(#1).dev )
    #ASSIGN #4 = 0
    #ASSIGN #7 = 1
    #LOOP #7 #REP(I534)                     [   Find maximum unit number
	    #IF #EQU( D534(#1).DEV, I534(#7).DEV )
		    #IF #I534(#7).UN > #4
			    #ASSIGN #4 = I534(#7).UN
    		#ENDIF
	    #ENDIF
    #ENDLOOP
    #ASSIGN #4 = #4 + 1
          PUBLIC DINFO_#9
DINFO_#9  DW #4
DW 5
DD 300
DD I534INIT
DD I534FINISH
DD I534SETUP
DD I534OUT
DD I534ANSWER
DD I534HANGUP
DD TERMNULL
DW 1
DW #d534(#1).il
DD I534CHECK
DW #d534(#1).pa
DB #d534(#1).nb
	#ASSIGN #2 = 1
	#LOOP #2 #REP(U534)
		#IF #EQU(d534(#1).dev, u534(#2).dev)
			#IF #EQU(u534(#2).lem , 'T' )
				#ASSIGN #5 = 1
			#ENDIF
			#IF #EQU(u534(#2).lem , 'N' )
				#ASSIGN #5 = 2
			#ENDIF
			#IF #EQU(u534(#2).lem , 'F' )
				#ASSIGN #5 = 3
			#ENDIF
			#IF #EQU(u534(#2).osc , 'B' )
				#ASSIGN #6 = 0
			#ENDIF
			#IF #EQU(u534(#2).osc , 'I' )
				#ASSIGN #6 = 1
			#ENDIF
			#IF #EQU(u534(#2).osc , 'O' )
				#ASSIGN #6 = 2
			#ENDIF
			#IF #EQU(u534(#2).osc , 'N' )
				#ASSIGN #6 = 3
			#ENDIF
			#ASSIGN #4 =  #5 + ( 4  * ( ~( #U534(#2).ech) & 1)) 
			#ASSIGN #4 =  #4 + ( 8  * ( ~( #U534(#2).ipc) & 1)) 
			#ASSIGN #4 =  #4 + ( 16 * ( ~( #U534(#2).opc) & 1))
			#ASSIGN #4 =  #4 + ( 32 * ( ~( #U534(#2).occ) & 1)) 
			#ASSIGN #4 =  #4 + ( 64 * #6)
          PUBLIC #u534(#2).nam
#u534(#2).nam  DW #4
			#IF #EQU(u534(#2).trm , 'C' )
				#ASSIGN #5 = 0
			#ELSE
				#ASSIGN #5 = 1
			#ENDIF
			#IF #EQU(u534(#2).dup , 'F' )
				#ASSIGN #6 = 0
			#ELSE
				#ASSIGN #6 = 1
			#ENDIF
			#ASSIGN #4 =  1 + (2 * #6) + (4 * #5) + (8 * (#U534(#2).mc & 1))
			#ASSIGN #4 =  #4 + (#U534(#2).rpc << 4)  +  (#U534(#2).wpc << 6)
DW #4
DD #u534(#2).br
DD 00000H
DW #u534(#2).sn
		#ENDIF
	#ENDLOOP
	#ASSIGN #1 = #1 + 1
#ENDFOREVER
[
[ 82530
[
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(D2530) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(d2530(#1).dev )
    #ASSIGN #4 = 0
    #ASSIGN #7 = 1
    #LOOP #7 #REP(I2530)                     [   Find maximum unit number
	    #IF #EQU( D2530(#1).DEV, I2530(#7).DEV )
		    #IF #I2530(#7).UN > #4
			    #ASSIGN #4 = #I2530(#7).UN
    		#ENDIF
	    #ENDIF
    #ENDLOOP
    #ASSIGN #4 = #4 + 1
          PUBLIC DINFO_#9
DINFO_#9  DW #4
DW 30
DD 300
DD I82530INIT
DD I82530FINISH
DD I82530SETUP
DD I82530OUT
DD I82530ANSWER
DD I82530HANGUP
DD TERMNULL
DW 1
DW #d2530(#1).il
DD I82530CHECK
DW #d2530(#1).cad
DW #d2530(#1).cas
DD #d2530(#1).aif
DW #d2530(#1).cbd
DW #d2530(#1).cbs
DD #d2530(#1).bif
	#ASSIGN #2 = 1
	#LOOP #2 #REP(U2530)
		#IF #EQU(d2530(#1).dev, u2530(#2).dev)
			#IF #EQU(u2530(#2).lem , 'T' )
				#ASSIGN #5 = 1
			#ENDIF
			#IF #EQU(u2530(#2).lem , 'N' )
				#ASSIGN #5 = 2
			#ENDIF
			#IF #EQU(u2530(#2).lem , 'F' )
				#ASSIGN #5 = 3
			#ENDIF
			#IF #EQU(u2530(#2).osc , 'B' )
				#ASSIGN #6 = 0
			#ENDIF
			#IF #EQU(u2530(#2).osc , 'I' )
				#ASSIGN #6 = 1
			#ENDIF
			#IF #EQU(u2530(#2).osc , 'O' )
				#ASSIGN #6 = 2
			#ENDIF
			#IF #EQU(u2530(#2).osc , 'N' )
				#ASSIGN #6 = 3
			#ENDIF
			#ASSIGN #4 =  #5 + ( 4  * ( ~( #U2530(#2).ech) & 1)) 
			#ASSIGN #4 =  #4 + ( 8  * ( ~( #U2530(#2).ipc) & 1)) 
			#ASSIGN #4 =  #4 + ( 16 * ( ~( #U2530(#2).opc) & 1))
			#ASSIGN #4 =  #4 + ( 32 * ( ~( #U2530(#2).occ) & 1)) 
			#ASSIGN #4 =  #4 + ( 64 * #6)
           PUBLIC #u2530(#2).nam
#u2530(#2).nam  DW #4
			#IF #EQU(u2530(#2).trm , 'C' )
				#ASSIGN #5 = 0
			#ELSE
				#ASSIGN #5 = 1
			#ENDIF
			#IF #EQU(u2530(#2).dup , 'F' )
				#ASSIGN #6 = 0
			#ELSE
				#ASSIGN #6 = 1
			#ENDIF
			#ASSIGN #4 =  1 + (2 * #6) + (4 * #5) + (8 * (#U2530(#2).mc & 1))
			#ASSIGN #4 =  #4 + (#U2530(#2).rpc << 4)  +  (#U2530(#2).wpc << 6)
DW #4
DD #u2530(#2).br
DD 00000H
DW #u2530(#2).sn
		#ENDIF
	#ENDLOOP
	#ASSIGN #1 = #1 + 1
#ENDFOREVER
[
[ 188/48
[ 
[
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(D8848) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(d8848(#1).dev )
    #ASSIGN #4 = 0
    #ASSIGN #7 = 1
    #LOOP #7 #REP(I8848)                     [   Find maximum unit number
	    #IF #EQU( D8848(#1).DEV, I8848(#7).DEV )
		    #IF #I8848(#7).UN > #4
			    #ASSIGN #4 = I8848(#7).UN
    		#ENDIF
	    #ENDIF
    #ENDLOOP
    #ASSIGN #4 = #4 + 1
          PUBLIC DINFO_#9
DINFO_#9  DW #4
DW 10
DD 600
DD I188INIT
DD I188FINISH
DD I188SETUP
DD TERMNULL
DD I188ANSWER
DD I188HANGUP
DD I188UTILITY
DW 1
DW #d8848(#1).il
DD I188CHECK
DB 1
DD #d8848(#1).ma
DW #d8848(#1).pa
DB 0
	#ASSIGN #2 = 1
	#LOOP #2 #REP(U8848)
		#IF #EQU(d8848(#1).dev, u8848(#2).dev)
			#IF #EQU(u8848(#2).lem , 'T' )
				#ASSIGN #5 = 1
			#ENDIF
			#IF #EQU(u8848(#2).lem , 'N' )
				#ASSIGN #5 = 2
			#ENDIF
			#IF #EQU(u8848(#2).lem , 'F' )
				#ASSIGN #5 = 3
			#ENDIF
			#IF #EQU(u8848(#2).osc , 'B' )
				#ASSIGN #6 = 0
			#ENDIF
			#IF #EQU(u8848(#2).osc , 'I' )
				#ASSIGN #6 = 1
			#ENDIF
			#IF #EQU(u8848(#2).osc , 'O' )
				#ASSIGN #6 = 2
			#ENDIF
			#IF #EQU(u8848(#2).osc , 'N' )
				#ASSIGN #6 = 3
			#ENDIF
			#ASSIGN #4 =  #5 + ( 4  * ( ~( #U8848(#2).ech) & 1)) 
			#ASSIGN #4 =  #4 + ( 8  * ( ~( #U8848(#2).ipc) & 1)) 
			#ASSIGN #4 =  #4 + ( 16 * ( ~( #U8848(#2).opc) & 1))
			#ASSIGN #4 =  #4 + ( 32 * ( ~( #U8848(#2).occ) & 1)) 
			#ASSIGN #4 =  #4 + ( 64 * #6)
          PUBLIC #u8848(#2).nam
#u8848(#2).nam  DW #4
			#IF #EQU(u8848(#2).trm , 'C' )
				#ASSIGN #5 = 0
			#ELSE
				#ASSIGN #5 = 1
			#ENDIF
			#IF #EQU(u8848(#2).dup , 'F' )
				#ASSIGN #6 = 0
			#ELSE
				#ASSIGN #6 = 1
			#ENDIF
			#ASSIGN #4 =  1 + (2 * #6) + (4 * #5) + (8 * (#U8848(#2).mc & 1))
			#ASSIGN #4 =  #4 + (#U8848(#2).rpc << 4)  +  (#U8848(#2).wpc << 6)
DW #4
DD #u8848(#2).br
DD 00000H
DW #u8848(#2).sn
		#ENDIF
	#ENDLOOP
	#ASSIGN #1 = #1 + 1
#ENDFOREVER
[
[ 186/410 Driver Dinfo
[
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(D410) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(D410(#1).dev )
    #ASSIGN #4 = 0
    #ASSIGN #7 = 1
    #LOOP #7 #REP(I410)                     [   Find maximum unit number
	    #IF #EQU( D410(#1).DEV, I410(#7).DEV )
		    #IF I410(#7).UN > #4
			    #ASSIGN #4 = I410(#7).UN
    		#ENDIF
	    #ENDIF
    #ENDLOOP
    #ASSIGN #4 = #4 + 1
          PUBLIC DINFO_#9
DINFO_#9  DW #4    [ number of units 
#ASSIGN #7 = ((#4 * 586) + 12) [ data size = num$units * 586 + 12
DW #7
DD 512
DD IATCSINIT
DD IATCSFINISH
DD IATCSSETUP
DD TERMNULL
DD IATCSANSWER
DD IATCSHANGUP
DD IATCSUTILITY
DW 0
DD IATCSCHECK
DW #D410(#1).mtp
DD 0 [ reserved
DD 0 [ reserved
;
#ASSIGN #2 = 1                           [ SET-UP SPS STRING
#ASSIGN #3 = 16
#ASSIGN #7 = #LEN(d410(#1).dev)
	#IF (#7 < #3)
DB 'RQ_#d410(#1).dev'
		#ASSIGN #3 = #3 - #7
		#LOOP #2 #3
DB 0H
		#ENDLOOP
	#ELSE
DB 'RQ_#d410(#1).dev'
	#ENDIF
#ASSIGN #2 = 1                           [ SET-UP BOARD ID
#ASSIGN #3 = 10
#ASSIGN #7 = #LEN(d410(#1).bid)
	#IF (#7 < #3)
DB '#d410(#1).bid'
		#ASSIGN #3 = #3 - #7
		#LOOP #2 #3
DB 0H
		#ENDLOOP
	#ELSE
DB '#d410(#1).bid'
	#ENDIF
DB #D410(#1).sid
DB #D410(#1).in
DD #D410(#1).fws
DW #D410(#1).cid
DB #D410(#1).lid
	#IF #D410(#1).im
DB 0
	#ELSE
DB 1
	#ENDIF
DW 0
; 186/410 unit information.
	#ASSIGN #2 = 1
	#LOOP #2 #REP(U410)
        [Generate the UINFO tables
        [
		#IF #EQU(D410(#1).dev, U410(#2).dev)
			#ASSIGN #3 = #3 + 1
			[
			[ calculate the conn$flags field
			[
			#IF #EQU(U410(#2).lem , 'T' )
				#ASSIGN #5 = 1
			#ENDIF
			#IF #EQU(U410(#2).lem , 'N' )
				#ASSIGN #5 = 2
			#ENDIF
			#IF #EQU(U410(#2).lem , 'F' )
				#ASSIGN #5 = 3
			#ENDIF
			#IF #EQU(U410(#2).osc , 'B' )
				#ASSIGN #6 = 0
			#ENDIF
			#IF #EQU(U410(#2).osc , 'I' )
				#ASSIGN #6 = 1
			#ENDIF
			#IF #EQU(U410(#2).osc , 'O' )
				#ASSIGN #6 = 2
			#ENDIF
			#IF #EQU(U410(#2).osc , 'N' )
				#ASSIGN #6 = 3
			#ENDIF
			#ASSIGN #4 =  #5 + ( 4  * ( ~( #U410(#2).ech) & 1)) 
			#ASSIGN #4 =  #4 + ( 8  * ( ~( #U410(#2).ipc) & 1)) 
			#ASSIGN #4 =  #4 + ( 16 * ( ~( #U410(#2).opc) & 1))
			#ASSIGN #4 =  #4 + ( 32 * ( ~( #U410(#2).occ) & 1)) 
			#ASSIGN #4 =  #4 + ( 64 * #6)
          PUBLIC #U410(#2).nam
#U410(#2).nam  DW #4 [ conn$flags
			[
			[ calculate the term$flags field
			[
			#IF #EQU(U410(#2).trm , 'C' )
				#ASSIGN #5 = 0
			#ELSE
				#ASSIGN #5 = 1
			#ENDIF
			#IF #EQU(U410(#2).dup , 'F' )
				#ASSIGN #6 = 0
			#ELSE
				#ASSIGN #6 = 1
			#ENDIF
			#ASSIGN #4 =  1 + (2 * #6) + (4 * #5) + (8 * (#U410(#2).mc & 1))
			#ASSIGN #4 =  #4 + (#U410(#2).rpc << 4)  +  (#U410(#2).wpc << 6)
DW #4 [ term$flags
DD #U410(#2).ir [ in$rate
DD #U410(#2).or [ out$rate
DW #U410(#2).sn [ scroll number
DB #U410(#2).ln [ line number
DB 0 [ reserved
	#IF #U410(#2).tm
DB 0FFH
	#ELSE
DB 0
	#ENDIF
DB 0 [ special char mode
DD 0 [ shecial chars
[
[ calculate the link$param
[
	#IF #U410(#2).wpc = 1 | #U410(#2).wpc = 0 
		#ASSIGN #4 = 0H [ clear highest bit so link param will be ignored
	#ELSE [ valid link param
[		/* calculate parity */
		#IF #U410(#2).wpc = 4
			#ASSIGN #4 = 0
 		#ELSE
			#ASSIGN #4 = #U410(#2).wpc
		#ENDIF
[
[		/* calculate char length */
		#IF #U410(#2).cl = 7
			#ASSIGN #4 = #4 | 4
		#ENDIF
		#IF #U410(#2).cl = 8
			#ASSIGN #4 = #4 | 8
		#ENDIF
		#IF #U410(#2).cl = 5
			#ASSIGN #4 = #4 | 0CH
		#ENDIF
[		
[		/* calculate stop bits */
		#ASSIGN #4 = #4 | (#U410(#2).sb << 4)
[
[		/* calculate TX/RX enable */
		#IF ~#U410(#2).xe 
			#ASSIGN #4 = #4 | 40H
		#ENDIF
[
[		/* calculate receive error handling */
		#ASSIGN #4 = #4 | (#U410(#2).reh << 7)			
[
[		/* set highest bit to indicate valid link param */
		#ASSIGN #4 = #4 | 08000H
[		
	#ENDIF [ ELSE valid link param
DW #4 [ link$param			
DW #U410(#2).mrc [ min receive count
DB #U410(#2).to  [ timeout
DB #U410(#2).it  [ idle time
		#ENDIF
	#ENDLOOP
	#ASSIGN #1 = #1 + 1
#ENDFOREVER
[
[ 279 Driver Dinfo
[
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(D279) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(D279(#1).dev )
    #ASSIGN #4 = 0
    #ASSIGN #7 = 1
    #LOOP #7 #REP(I279)                     [   Find maximum unit number
	    #IF #EQU( D279(#1).DEV, I279(#7).DEV )
		    #IF I279(#7).UNB > #4
			    #ASSIGN #4 = I279(#7).UNB
    		#ENDIF
	    #ENDIF
    #ENDLOOP
    #ASSIGN #4 = #4 + 1
          PUBLIC DINFO_#9
DINFO_#9         LABEL      WORD
DW #4            [ number of units 
DW 0100H
DD 0400H
DD I279TERMINIT
DD I279TERMFINISH
DD I279TERMSETUP
DD I279TERMOUT
DD I279TERMANSWER
DD I279TERMHANGUP
DD I279TERMUTILITY
DW 01H
DW #D279(#1).ILV
DD I279TERMCHECK
DW #D279(#1).PRT
  #IF #D279(#1).SEP = '1'
DB 01H
  #ELSE
DB 02H
  #ENDIF
DB #D279(#1).CP1
DB #D279(#1).CP2
DB #D279(#1).CP4
DB #D279(#1).ZMX
DB #D279(#1).ZMY
DB #D279(#1).BRD
DB #D279(#1).CRC
DW #D279(#1).CPX
DW #D279(#1).CPY
    #IF ~#EQU( D279(#1).grf, 'NONE')
       #ASSIGN #7 = #LEN(D279(#1).grf)
DB #7
DB '#D279(#1).grf'
    #ELSE
DB 0
    #ENDIF
    #IF ~#EQU( D279(#1).rif, 'NONE')
       #ASSIGN #7 = #LEN(D279(#1).rif)
DB #7
DB '#D279(#1).rif'
    #ELSE
DB 0
    #ENDIF
    #IF ~#EQU( D279(#1).log, 'NONE')
       #ASSIGN #7 = #LEN(D279(#1).log)
DB #7
DB '#D279(#1).log'
    #ELSE
DB 0
    #ENDIF
[ end of dinfo
	#ASSIGN #2 = 1
	#LOOP #2 #REP(UT279)
        [Generate the Terminal UINFO tables
        [
		#IF #EQU(D279(#1).dev, UT279(#2).dev)
			[
			[ calculate the conn$flags field
			[
			#IF #EQU(UT279(#2).lem , 'T' )
				#ASSIGN #5 = 1
			#ENDIF
			#IF #EQU(UT279(#2).lem , 'N' )
				#ASSIGN #5 = 2
			#ENDIF
			#IF #EQU(UT279(#2).lem , 'F' )
				#ASSIGN #5 = 3
			#ENDIF
			#IF #EQU(UT279(#2).osc , 'B' )
				#ASSIGN #6 = 0
			#ENDIF
			#IF #EQU(UT279(#2).osc , 'I' )
				#ASSIGN #6 = 1
			#ENDIF
			#IF #EQU(UT279(#2).osc , 'O' )
				#ASSIGN #6 = 2
			#ENDIF
			#IF #EQU(UT279(#2).osc , 'N' )
				#ASSIGN #6 = 3
			#ENDIF
			#ASSIGN #4 =  #5 + ( 4  * ( ~( #UT279(#2).ech) & 1)) 
			#ASSIGN #4 =  #4 + 24    [ ipc and opc are no
			#ASSIGN #4 =  #4 + ( 32 * ( ~( #UT279(#2).occ) & 1)) 
			#ASSIGN #4 =  #4 + ( 64 * #6)
          PUBLIC #UT279(#2).nam
#UT279(#2).nam  LABEL     WORD
DW #4          [ conn$flags
DW 0111H       [ term$flags
DD 2580H
DD 0
DW #UT279(#2).SN
    #IF #EQU(UT279(#2).TYP,'S')
DB 0H
    #ENDIF
    #IF #EQU(UT279(#2).TYP,'D')
DB 01H
    #ENDIF
DB 01H
DB #UT279(#2).PRF
DB #UT279(#2).SNF
DW #UT279(#2).XOR
DW #UT279(#2).YOR
DW #UT279(#2).NDX
DW #UT279(#2).NDY
DB #UT279(#2).LIN
DB #UT279(#2).COL
DB #UT279(#2).HGT
DB #UT279(#2).WID
DB #UT279(#2).LSP
DB #UT279(#2).CSP
DB #UT279(#2).BPP
DB #UT279(#2).FCL
DB #UT279(#2).BCL
    #IF #UT279(#2).BVI
DB 0FFH
    #ELSE
DB 00H
    #ENDIF
    #IF #UT279(#2).WVI
DB 0FFH
    #ELSE
DB 00H
    #ENDIF
    #ENDIF
	#ENDLOOP
	#ASSIGN #2 = 1
	#LOOP #2 #REP(UG279)
        [Generate the Graphics UINFO tables
        [
		#IF #EQU(D279(#1).dev, UG279(#2).dev)
       PUBLIC     #UG279(#2).NAM
#UG279(#2).NAM   LABEL      WORD
DW 000FDH
DW 00111H
DD 2580H
DD 0
DW 17H
    #IF #EQU(UG279(#2).TYP,'S')
DB 0H
    #ENDIF
    #IF #EQU(UG279(#2).TYP,'D')
DB 1H
    #ENDIF
DB 2H
DB #UG279(#2).BPP
    #IF #UG279(#2).BVI
DB 0FFH
    #ELSE
DB 0H
    #ENDIF
    #IF #UG279(#2).WVI
DB 0FFH
    #ELSE
DB 0H
    #ENDIF
DW #UG279(#2).WSX
DW #UG279(#2).WSY
DW #UG279(#2).WDX
DW #UG279(#2).WDY
DW #UG279(#2).WEX
DW #UG279(#2).WEY
DW #UG279(#2).WBX
DW #UG279(#2).WBY
DW #UG279(#2).BMX
DW #UG279(#2).BMY
    #ENDIF
	#ENDLOOP
	#ASSIGN #1 = #1 + 1
#ENDFOREVER
[
[ VT Driver Dinfo
[
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(DVT) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(DVT(#1).dev )
    #ASSIGN #4 = 0
    #ASSIGN #7 = 1
    #LOOP #7 #REP(IVT)                     [   Find maximum unit number
	    #IF #EQU( DVT(#1).DEV, IVT(#7).DEV )
		    #IF IVT(#7).UN > #4
			    #ASSIGN #4 = IVT(#7).UN
    		#ENDIF
	    #ENDIF
    #ENDLOOP
    #ASSIGN #4 = #4 + 1
          PUBLIC DINFO_#9
DINFO_#9  DW #4    [ number of units 
DW #DVT(#1).ddz
DD #DVT(#1).dsz
DD VTINIT
DD VTFINISH
DD VTSETUP
DD TERMNULL
DD VTANSWER
DD VTHANGUP
DD VTUTIL
DW 0
DD VTCHECK
DW #DVT(#1).mtp
DD 0 [ reserved
DD 0 [ reserved
[
	#ASSIGN #2 = 1
	#LOOP #2 #REP(UVT)
		#IF #EQU(dvt(#1).dev, UVT(#2).dev)
			#IF #EQU(UVT(#2).lem , 'T' )
				#ASSIGN #5 = 1
			#ENDIF
			#IF #EQU(UVT(#2).lem , 'N' )
				#ASSIGN #5 = 2
			#ENDIF
			#IF #EQU(UVT(#2).lem , 'F' )
				#ASSIGN #5 = 3
			#ENDIF
			#IF #EQU(UVT(#2).osc , 'B' )
				#ASSIGN #6 = 0
			#ENDIF
			#IF #EQU(UVT(#2).osc , 'I' )
				#ASSIGN #6 = 1
			#ENDIF
			#IF #EQU(UVT(#2).osc , 'O' )
				#ASSIGN #6 = 2
			#ENDIF
			#IF #EQU(UVT(#2).osc , 'N' )
				#ASSIGN #6 = 3
			#ENDIF
			#ASSIGN #4 =  #5 + ( 4  * ( ~( #UVT(#2).ech) & 1)) 
			#ASSIGN #4 =  #4 + ( 8  * ( ~( #UVT(#2).ipc) & 1)) 
			#ASSIGN #4 =  #4 + ( 16 * ( ~( #UVT(#2).opc) & 1))
			#ASSIGN #4 =  #4 + ( 32 * ( ~( #UVT(#2).occ) & 1)) 
			#ASSIGN #4 =  #4 + ( 64 * #6)
           PUBLIC #UVT(#2).nam
#UVT(#2).nam  DW #4
			#IF #EQU(UVT(#2).trm , 'C' )
				#ASSIGN #5 = 0
			#ELSE
				#ASSIGN #5 = 1
			#ENDIF
			#IF #EQU(UVT(#2).dup , 'F' )
				#ASSIGN #6 = 0
			#ELSE
				#ASSIGN #6 = 1
			#ENDIF
			#ASSIGN #4 =  1 + (2 * #6) + (4 * #5) + (4 << 6)
DW #4
DD 2580H
DD 0000H
DW #UVT(#2).sn
		#ENDIF
	#ENDLOOP
	#ASSIGN #1 = #1 + 1
#ENDFOREVER
[
[  PC Bus Serial Driver
[
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(D120S) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(D120S(#1).dev )
          PUBLIC DINFO_#9
DINFO_#9  DW 1
DW 3
DD 256
DD I120SERINIT
DD I120SERFINISH
DD I120SERSETUP
DD I120SEROUT
DD I120SERANSWER
DD I120SERHANGUP
DD TERMNULL
DW 1
DW #D120S(#1).IL
DD I120SERCHECK
DW #D120S(#1).BP
DB #D120S(#1).RC
DB #D120S(#1).IC
	#ASSIGN #2 = 1
	#LOOP #2 #REP(U120S)
		#IF #EQU(d120S(#1).dev, u120S(#2).dev)
			#IF #EQU(u120S(#2).lem , 'T' )
				#ASSIGN #5 = 1
			#ENDIF
			#IF #EQU(u120S(#2).lem , 'N' )
				#ASSIGN #5 = 2
			#ENDIF
			#IF #EQU(u120S(#2).lem , 'F' )
				#ASSIGN #5 = 3
			#ENDIF
			#IF #EQU(u120S(#2).osc , 'B' )
				#ASSIGN #6 = 0
			#ENDIF
			#IF #EQU(u120S(#2).osc , 'I' )
				#ASSIGN #6 = 1
			#ENDIF
			#IF #EQU(u120S(#2).osc , 'O' )
				#ASSIGN #6 = 2
			#ENDIF
			#IF #EQU(u120S(#2).osc , 'N' )
				#ASSIGN #6 = 3
			#ENDIF
			#ASSIGN #4 =  #5 + ( 4  * ( ~( #U120S(#2).ech) & 1)) 
			#ASSIGN #4 =  #4 + ( 8  * ( ~( #U120S(#2).ipc) & 1)) 
			#ASSIGN #4 =  #4 + ( 16 * ( ~( #U120S(#2).opc) & 1))
			#ASSIGN #4 =  #4 + ( 32 * ( ~( #U120S(#2).occ) & 1)) 
			#ASSIGN #4 =  #4 + ( 64 * #6)
           PUBLIC #u120S(#2).nam
#u120S(#2).nam  DW #4
			#IF #EQU(u120S(#2).trm , 'C' )
				#ASSIGN #5 = 0
			#ELSE
				#ASSIGN #5 = 1
			#ENDIF
			#IF #EQU(u120S(#2).dup , 'F' )
				#ASSIGN #6 = 0
			#ELSE
				#ASSIGN #6 = 1
			#ENDIF
			#ASSIGN #4 =  1 + (2 * #6) + (4 * #5) + (8 * (#U120S(#2).mc & 1))
			#ASSIGN #4 =  #4 + (#U120S(#2).rpc << 4)  +  (#U120S(#2).wpc << 6)
DW #4
DD #u120S(#2).br
DD 00000H
DW #u120S(#2).sn
		#ENDIF
	#ENDLOOP
	#ASSIGN #1 = #1 + 1
#ENDFOREVER
[
[  PC Bus Hostess 550 Serial Driver
[
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(D120H) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(D120H(#1).dev )
    #ASSIGN #4 = 0
    #ASSIGN #7 = 1
    #LOOP #7 #REP(I120H)                     [   Find maximum unit number
	    #IF #EQU( D120H(#1).DEV, I120H(#7).DEV )
		    #IF #I120H(#7).UN > #4
			    #ASSIGN #4 = I120H(#7).UN
    		#ENDIF
	    #ENDIF
    #ENDLOOP
    #ASSIGN #4 = #4 + 1
          PUBLIC DINFO_#9
DINFO_#9  DW #4
DW 9
DD 256
DD HOST550INIT
DD HOST550FINISH
DD HOST550SETUP
DD TERMNULL
DD HOST550ANSWER
DD HOST550HANGUP
DD HOST550UTILITY
DW 1
DW #D120H(#1).IL
DD HOST550CHECK
DW #D120H(#1).BP
DB #D120H(#1).RC
DB #D120H(#1).IC
	#ASSIGN #2 = 1
	#LOOP #2 #REP(U120H)
		#IF #EQU(D120H(#1).dev, U120H(#2).dev)
			#IF #EQU(U120H(#2).lem , 'T' )
				#ASSIGN #5 = 1
			#ENDIF
			#IF #EQU(U120H(#2).lem , 'N' )
				#ASSIGN #5 = 2
			#ENDIF
			#IF #EQU(U120H(#2).lem , 'F' )
				#ASSIGN #5 = 3
			#ENDIF
			#IF #EQU(U120H(#2).osc , 'B' )
				#ASSIGN #6 = 0
			#ENDIF
			#IF #EQU(U120H(#2).osc , 'I' )
				#ASSIGN #6 = 1
			#ENDIF
			#IF #EQU(U120H(#2).osc , 'O' )
				#ASSIGN #6 = 2
			#ENDIF
			#IF #EQU(U120H(#2).osc , 'N' )
				#ASSIGN #6 = 3
			#ENDIF
			#ASSIGN #4 =  #5 + ( 4  * ( ~( #U120H(#2).ech) & 1)) 
			#ASSIGN #4 =  #4 + ( 8  * ( ~( #U120H(#2).ipc) & 1)) 
			#ASSIGN #4 =  #4 + ( 16 * ( ~( #U120H(#2).opc) & 1))
			#ASSIGN #4 =  #4 + ( 32 * ( ~( #U120H(#2).occ) & 1)) 
			#ASSIGN #4 =  #4 + ( 64 * #6)
           PUBLIC #U120H(#2).nam
#U120H(#2).nam  DW #4
			#IF #EQU(U120H(#2).trm , 'C' )
				#ASSIGN #5 = 0
			#ELSE
				#ASSIGN #5 = 1
			#ENDIF
			#IF #EQU(U120H(#2).dup , 'F' )
				#ASSIGN #6 = 0
			#ELSE
				#ASSIGN #6 = 1
			#ENDIF
			#ASSIGN #4 =  1 + (2 * #6) + (4 * #5) + (8 * (#U120H(#2).mc & 1))
			#ASSIGN #4 =  #4 + (#U120H(#2).rpc << 4)  +  (#U120H(#2).wpc << 6)
DW #4
DD #U120H(#2).br
DD 00000H
DW #U120H(#2).sn
		#ENDIF
	#ENDLOOP
	#ASSIGN #1 = #1 + 1
#ENDFOREVER
[
[  PC Bus Console Driver
[
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(D120C) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(D120C(#1).dev )
          PUBLIC DINFO_#9
DINFO_#9  DW 1
DW 0
DD 256
DD I120CONSOLEINIT
DD I120CONSOLEFINISH
DD I120CONSOLESETUP
DD TERMNULL
DD TERMNULL
DD TERMNULL
DD I120CONSOLEUTILITY
DW 1
DW 18H
DD I120CONSOLECHECK
	#IF #D120C(#1).RIE
DB TRUE
	#ELSE
DB FALSE
	#ENDIF
DW #D120C(#1).SST
	#ASSIGN #2 = 1
	#LOOP #2 #REP(U120C)
		#IF #EQU(d120C(#1).dev, u120C(#2).dev)
			#IF #EQU(u120C(#2).lem , 'T' )
				#ASSIGN #5 = 1
			#ENDIF
			#IF #EQU(u120C(#2).lem , 'N' )
				#ASSIGN #5 = 2
			#ENDIF
			#IF #EQU(u120C(#2).lem , 'F' )
				#ASSIGN #5 = 3
			#ENDIF
			#IF #EQU(u120C(#2).osc , 'B' )
				#ASSIGN #6 = 0
			#ENDIF
			#IF #EQU(u120C(#2).osc , 'I' )
				#ASSIGN #6 = 1
			#ENDIF
			#IF #EQU(u120C(#2).osc , 'O' )
				#ASSIGN #6 = 2
			#ENDIF
			#IF #EQU(u120C(#2).osc , 'N' )
				#ASSIGN #6 = 3
			#ENDIF
			#ASSIGN #4 =  #5 + ( 4  * ( ~( #U120C(#2).ech) & 1)) 
			#ASSIGN #4 =  #4 + 8                                 [ ipc = 1 
			#ASSIGN #4 =  #4 + 16                                [ opc = 1
			#ASSIGN #4 =  #4 + ( 32 * ( ~( #U120C(#2).occ) & 1)) 
			#ASSIGN #4 =  #4 + ( 64 * #6)
           PUBLIC #u120C(#2).nam
#u120C(#2).nam  DW #4
DW 0111H          [ Full Duplex, CRT, No Modem, RPC = 1, WPC = 4
DD 2580H          [ Baud Rate not used; but specify a value > 3
DD 00000H
DW #u120C(#2).sn
		#ENDIF
	#ENDLOOP
	#ASSIGN #1 = #1 + 1
#ENDFOREVER
#USER_TERM_DINFO
[
[
#IF #bios.cst
	PUBLIC	TSCFGTRANSLATE
    extrn	TSTRANSLATEOUTPUT : near
TSCFGTRANSLATE	DD TSTRANSLATEOUTPUT
#ELSE
		PUBLIC	TSCFGTRANSLATE
TSCFGTRANSLATE	DD 0
#ENDIF
#IF ~( #bios.osc | #glob.hi )       [  bios.osc is required if glob.hi
		PUBLIC TSCFGDECODEOSC
TSCFGDECODEOSC DD 0
#ENDIF
[
[ user devices
[
#ASSIGN #1 = 1
#LOOP #1 #REP(USERD)
   #IF ~#EQU( userd(#1).tup , 'NONE') 
$include (#userd(#1).tup )
   #ENDIF
#ENDLOOP
[
[   Add support for biosexitinterrupt
[
#ASSIGN #2 = 0
#ASSIGN #1 = 1
#LOOP #1 #REP(SLAVE)
    #ASSIGN #2 = #2 | (1 << #slave(#1).sil) [  do not change the value of #2
                                            [  it is used for IMR, EOI, PIF
#ENDLOOP
        PUBLIC  EOI_PORT
#ASSIGN #4 = #int.mp          [   imr(0) is master any other slave imr is 
                              [   initialized to this value if slave not used.
EOI_PORT DW #4
[
[       #1 is the number of the slave being handled
[       #7 is the number of the slave of the next line
[       #8 is the number of the next line in the screen to be handled
[
#ASSIGN #8 = 1
#ASSIGN #1 = 0
#LOOP #1  7    
    #IF   #8 > #REP(SLAVE)      [  there isn't a  next line
        DW  #4              
    #ELSE   
        [
        #ASSIGN  #7 = #slave(#8).sil
        [   if slave #1 is not the next slave  OR  next slave is not chosen
        #IF  (#1 < #7) |  (0 = ( #2 & (1 << #7)) )
        DW  #4              
        #ELSE   [  slave #1 is the next and it was chosen
        DW  #slave(#8).sip 
            #ASSIGN  #8 = #8 + 1        [ move to next
        #ENDIF
    #ENDIF
#ENDLOOP
        PUBLIC  ISR_PORT
ISR_PORT        equ EOI_PORT
[
[   end of biosexitinterrupt support
[
TSC_CODE ENDS
END
#ENDFILE
[
[       IRDEV.A28
[   
#GEN IRDEV.A28 #COND ((#glob.bio) & (#glob.net) & (#rnet.con))
NAME IRDEV
$INCLUDE (#incl.bif!IRMTBL.INC)
$INCLUDE (#incl.bif!IRMDCF.INC)

;
; Externals declared to force binder to link relevant irm.lib modules
;
    extrn REMUPDATE : near
    extrn REMATTACHFILE : near
    extrn REMCREATE : near
    extrn REMEXPNULLREQ : near
    extrn REMNONNULLCHANGEACCESS : near
    extrn REMNONNULLDELETE : near
    extrn REMREAD : near
    extrn REMWRITEORTRUNC : near
    extrn REMSEEK : near
    extrn REMSPECIAL : near
    extrn REMATTACHDEVICE : near
    extrn REMDETACHDEVICE : near
    extrn REMOPEN : near
    extrn REMCLOSE : near
    extrn REMGETCONNST : near
    extrn REMGETFILEST : near
    extrn REMGETEXTDATA : near
    extrn REMSETEXTDATA : near
    extrn REMNULLCHANGEACCESS : near
    extrn REMNULLDELETE : near
    extrn REMRENAME : near
    extrn REMGETPATHCOMP : near
    extrn REMDETACHFILE : near

%REM_IOTASKS_PRIO(#rem.itp )
%NUM_REM_REQS(#rem.nor )
%NUM_SBUFS(#rem.nos )
%JOB_EXIT_INTERVAL(#rem.jei )
%LOGOFF_INTERVAL(#rem.li )
%CONFIG_BASE_TIME(#rem.cbt )

RFD_CODE SEGMENT
SERVERINFOBLOCK LABEL BYTE
		PUBLIC 	SERVERINFOBLOCK
    define_sib <
& '              ',
& 3,
& 0FFH
& >
SERVERS EQU (THIS BYTE - SERVERINFOBLOCK) / SIZE DEFINE_SIB
RFD_CODE ENDS
%NUM_SERVERS(SERVERS)
END
#ENDFILE
[
#IF #glob.bio
#MESSAGE ...................................................DONE
#ENDIF
[
[   *** EIOS Files ***
[   
[   
[       EDEVCF.A38
[   
#GEN EDEVC.A38 #COND #glob.eio
#MESSAGE Beginning EIOS File Generation
NAME EDEVCF
$INCLUDE (#incl.eif!EDEVCF.MAC)
[   
[    define system device if auto boot recognition
#IF #eios.abr
  #IF #abdr.dfd = 'P'
%DEFAULT_SYSTEM_DEVICE('#abdr.dln', '#abdr.dpn', PHYSICAL, #abdr.do )
  #ENDIF
  #IF #abdr.dfd = 'S'
%DEFAULT_SYSTEM_DEVICE('#abdr.dln', '#abdr.dpn', STREAM, #abdr.do )
  #ENDIF
  #IF #abdr.dfd = 'N'
%DEFAULT_SYSTEM_DEVICE('#abdr.dln', '#abdr.dpn', NAMED, #abdr.do )
  #ENDIF
  #IF #abdr.dfd = 'R'
%DEFAULT_SYSTEM_DEVICE('#abdr.dln', '#abdr.dpn', REMOTE, #abdr.do )
  #ENDIF
#ENDIF
[
[    define all logical names
#ASSIGN #1 = 1
#LOOP #1 #REP(LOGN)
    #IF #logn(#1).fd = 'P'
%DEV_INFO_BLOCK('#logn(#1).nam', '#logn(#1).dn', PHYSICAL, #logn(#1).uid )
    #ENDIF
    #IF #logn(#1).fd = 'S'
%DEV_INFO_BLOCK('#logn(#1).nam', '#logn(#1).dn', STREAM, #logn(#1).uid )
    #ENDIF
    #IF #logn(#1).fd = 'N'
%DEV_INFO_BLOCK('#logn(#1).nam', '#logn(#1).dn', NAMED, #logn(#1).uid )
    #ENDIF
    #IF #logn(#1).fd = 'R'
%DEV_INFO_BLOCK('#logn(#1).nam', '#logn(#1).dn', REMOTE, #logn(#1).uid )
    #ENDIF
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(logn1)
    #IF #logn1(#1).fd = 'P'
%DEV_INFO_BLOCK('#logn1(#1).nam', '#logn1(#1).dn', PHYSICAL, #logn1(#1).uid )
    #ENDIF
    #IF #logn1(#1).fd = 'S'
%DEV_INFO_BLOCK('#logn1(#1).nam', '#logn1(#1).dn', STREAM, #logn1(#1).uid )
    #ENDIF
    #IF #logn1(#1).fd = 'N'
%DEV_INFO_BLOCK('#logn1(#1).nam', '#logn1(#1).dn', NAMED, #logn1(#1).uid )
    #ENDIF
    #IF #logn1(#1).fd = 'R'
%DEV_INFO_BLOCK('#logn1(#1).nam', '#logn1(#1).dn', REMOTE, #logn1(#1).uid )
    #ENDIF
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(logn2)
    #IF #logn2(#1).fd = 'P'
%DEV_INFO_BLOCK('#logn2(#1).nam', '#logn2(#1).dn', PHYSICAL, #logn2(#1).uid )
    #ENDIF
    #IF #logn2(#1).fd = 'S'
%DEV_INFO_BLOCK('#logn2(#1).nam', '#logn2(#1).dn', STREAM, #logn2(#1).uid )
    #ENDIF
    #IF #logn2(#1).fd = 'N'
%DEV_INFO_BLOCK('#logn2(#1).nam', '#logn2(#1).dn', NAMED, #logn2(#1).uid )
    #ENDIF
    #IF #logn2(#1).fd = 'R'
%DEV_INFO_BLOCK('#logn2(#1).nam', '#logn2(#1).dn', REMOTE, #logn2(#1).uid )
    #ENDIF
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(logn3)
    #IF #logn3(#1).fd = 'P'
%DEV_INFO_BLOCK('#logn3(#1).nam', '#logn3(#1).dn', PHYSICAL, #logn3(#1).uid )
    #ENDIF
    #IF #logn3(#1).fd = 'S'
%DEV_INFO_BLOCK('#logn3(#1).nam', '#logn3(#1).dn', STREAM, #logn3(#1).uid )
    #ENDIF
    #IF #logn3(#1).fd = 'N'
%DEV_INFO_BLOCK('#logn3(#1).nam', '#logn3(#1).dn', NAMED, #logn3(#1).uid )
    #ENDIF
    #IF #logn3(#1).fd = 'R'
%DEV_INFO_BLOCK('#logn3(#1).nam', '#logn3(#1).dn', REMOTE, #logn3(#1).uid )
    #ENDIF
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(logn4)
    #IF #logn4(#1).fd = 'P'
%DEV_INFO_BLOCK('#logn4(#1).nam', '#logn4(#1).dn', PHYSICAL, #logn4(#1).uid )
    #ENDIF
    #IF #logn4(#1).fd = 'S'
%DEV_INFO_BLOCK('#logn4(#1).nam', '#logn4(#1).dn', STREAM, #logn4(#1).uid )
    #ENDIF
    #IF #logn4(#1).fd = 'N'
%DEV_INFO_BLOCK('#logn4(#1).nam', '#logn4(#1).dn', NAMED, #logn4(#1).uid )
    #ENDIF
    #IF #logn4(#1).fd = 'R'
%DEV_INFO_BLOCK('#logn4(#1).nam', '#logn4(#1).dn', REMOTE, #logn4(#1).uid )
    #ENDIF
#ENDLOOP
[   
[    Here is the place to add another logical names in the format:
[    %DEV_INFO_BLOCK( Logical name, device name, file driver, owner id )
[   
#ASSIGN #3 = #LEN(eios.cd)
configpathname   DB #3, '#eios.cd'
                 PUBLIC   configpathname
[
%END_DEV_CONFIG( #eios.ibs )
END
#ENDFILE
[   
[       ETABLE.A38
[   
#GEN ETABL.A38 #COND #glob.eio
NAME ETABLE
[
    extrn NUCError : near
    extrn RQError  : near
[
EIOS_CODE   SEGMENT ER      PUBLIC
[
    PUBLIC physattachretries
physattachretries	dw	#eios.rpa
[
    extrn CPYRT : near
    extrn RQEIOSInitTask : near
    
    extrn RQCreateIoJob_ : near
    extrn RQStartIoJob_ : near
    extrn RQAbortIoJob_ : near
    extrn RQLogicalAttachDevice_ : near
    extrn RQSCreateFile_ : near
    extrn RQSAttachFile_ : near
    extrn RQSDeleteConnection_ : near
    extrn RQSLookupConnection_ : near
    extrn RQSCatalogConnection_ : near
    extrn RQSUncatalogConnection_ : near
    extrn RQSCreateDirectory_ : near
    extrn RQSDeleteFile_ : near
    extrn RQSRenameFile_ : near
    extrn RQSChangeAccess_ : near
    extrn RQSOpen_ : near
    extrn RQSClose_ : near
    extrn RQSReadMove_ : near
    extrn RQSWriteMove_ : near
    extrn RQSSeek_ : near
    extrn RQSTruncateFile_ : near
    extrn RQSGetFileStatus_ : near
    extrn RQSGetConnectionStatus_ : near
    extrn RQSSpecial_ : near
    extrn RQExitIOJob_ : near
    extrn RQLogicalDetachDevice_ : near
    extrn RQGetLogicalDeviceStatus_ : near
    extrn RQHybridDetachDevice_ : near
    extrn RQVerifyUser_ : near
    extrn RQGetUserIds_ : near
    extrn RQSGetDirectoryEntry_ : near
    extrn RQSGetPathComponent_ : near
EIOS_CODE  ENDS
END
#ENDFILE
[   
[       EJOBCF.A38
[   
#GEN EJOBC.A38 #COND #glob.eio
NAME EJOBCF
$INCLUDE (#incl.eif!EJOBCF.MAC)
#IF (#sysj.bs) & (#glob.eio) & (#hard.bus = '2')
    extrn   bs_main : far
    extrn   bs_data : far
#ENDIF
#ASSIGN #1 = 1
#LOOP #1 #REP(iojob)
    #ADD_FAR_EXTRN #iojob(#1).tsa
    #IF #LEN(iojob(#1).var) <> 0
    #ADD_FAR_EXTRN #iojob(#1).var
    #ENDIF
    #IF #LEN(iojob(#1).ehs) <> 0
    #ADD_FAR_EXTRN #iojob(#1).ehs
    #ENDIF
#ENDLOOP
[
%INTERNAL_TASKS_PRIORITY( #eios.itp )
#ASSIGN #1 = 1
#LOOP #1 #REP(IOUS)
[   
#IF #ious(#1).id5 = #ious(#1).id4
 #IF #ious(#1).id4 = #ious(#1).id3
    #IF #ious(#1).id3 = #ious(#1).id2
       #IF #ious(#1).id2 = #ious(#1).id1
%IO_USER( '#ious(#1).nam', #ious(#1).id1 )
       #ELSE
%IO_USER( '#ious(#1).nam', #ious(#1).id1, #ious(#1).id2 )
       #ENDIF
    #ELSE
%IO_USER( '#ious(#1).nam', #ious(#1).id1, #ious(#1).id2, #ious(#1).id3 )
    #ENDIF
 #ELSE
%IO_USER('#ious(#1).nam',#ious(#1).id1,#ious(#1).id2,#ious(#1).id3,#ious(#1).id4)
 #ENDIF
#ELSE
%IO_USER('#ious(#1).nam',#ious(#1).id1,#ious(#1).id2,#ious(#1).id3,#ious(#1).id4, #ious(#1).id5)
#ENDIF
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(ious1)
[   
#IF #ious1(#1).id5 = #ious1(#1).id4
 #IF #ious1(#1).id4 = #ious1(#1).id3
    #IF #ious1(#1).id3 = #ious1(#1).id2
       #IF #ious1(#1).id2 = #ious1(#1).id1
%IO_USER( '#ious1(#1).nam', #ious1(#1).id1 )
       #ELSE
%IO_USER( '#ious1(#1).nam', #ious1(#1).id1, #ious1(#1).id2 )
       #ENDIF
    #ELSE
%IO_USER( '#ious1(#1).nam', #ious1(#1).id1, #ious1(#1).id2, #ious1(#1).id3 )
    #ENDIF
 #ELSE
%IO_USER('#ious1(#1).nam',#ious1(#1).id1,#ious1(#1).id2,#ious1(#1).id3,#ious1(#1).id4)
 #ENDIF
#ELSE
%IO_USER('#ious1(#1).nam',#ious1(#1).id1,#ious1(#1).id2,#ious1(#1).id3,#ious1(#1).id4, #ious1(#1).id5)
#ENDIF
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(ious2)
[   
#IF #ious2(#1).id5 = #ious2(#1).id4
 #IF #ious2(#1).id4 = #ious2(#1).id3
    #IF #ious2(#1).id3 = #ious2(#1).id2
       #IF #ious2(#1).id2 = #ious2(#1).id1
%IO_USER( '#ious2(#1).nam', #ious2(#1).id1 )
       #ELSE
%IO_USER( '#ious2(#1).nam', #ious2(#1).id1, #ious2(#1).id2 )
       #ENDIF
    #ELSE
%IO_USER( '#ious2(#1).nam', #ious2(#1).id1, #ious2(#1).id2, #ious2(#1).id3 )
    #ENDIF
 #ELSE
%IO_USER('#ious2(#1).nam',#ious2(#1).id1,#ious2(#1).id2,#ious2(#1).id3,#ious2(#1).id4)
 #ENDIF
#ELSE
%IO_USER('#ious2(#1).nam',#ious2(#1).id1,#ious2(#1).id2,#ious2(#1).id3,#ious2(#1).id4, #ious2(#1).id5)
#ENDIF
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(ious3)
[   
#IF #ious3(#1).id5 = #ious3(#1).id4
 #IF #ious3(#1).id4 = #ious3(#1).id3
    #IF #ious3(#1).id3 = #ious3(#1).id2
       #IF #ious3(#1).id2 = #ious3(#1).id1
%IO_USER( '#ious3(#1).nam', #ious3(#1).id1 )
       #ELSE
%IO_USER( '#ious3(#1).nam', #ious3(#1).id1, #ious3(#1).id2 )
       #ENDIF
    #ELSE
%IO_USER( '#ious3(#1).nam', #ious3(#1).id1, #ious3(#1).id2, #ious3(#1).id3 )
    #ENDIF
 #ELSE
%IO_USER('#ious3(#1).nam',#ious3(#1).id1,#ious3(#1).id2,#ious3(#1).id3,#ious3(#1).id4)
 #ENDIF
#ELSE
%IO_USER('#ious3(#1).nam',#ious3(#1).id1,#ious3(#1).id2,#ious3(#1).id3,#ious3(#1).id4, #ious3(#1).id5)
#ENDIF
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(ious4)
[   
#IF #ious4(#1).id5 = #ious4(#1).id4
 #IF #ious4(#1).id4 = #ious4(#1).id3
    #IF #ious4(#1).id3 = #ious4(#1).id2
       #IF #ious4(#1).id2 = #ious4(#1).id1
%IO_USER( '#ious4(#1).nam', #ious4(#1).id1 )
       #ELSE
%IO_USER( '#ious4(#1).nam', #ious4(#1).id1, #ious4(#1).id2 )
       #ENDIF
    #ELSE
%IO_USER( '#ious4(#1).nam', #ious4(#1).id1, #ious4(#1).id2, #ious4(#1).id3 )
    #ENDIF
 #ELSE
%IO_USER('#ious4(#1).nam',#ious4(#1).id1,#ious4(#1).id2,#ious4(#1).id3,#ious4(#1).id4)
 #ENDIF
#ELSE
%IO_USER('#ious4(#1).nam',#ious4(#1).id1,#ious4(#1).id2,#ious4(#1).id3,#ious4(#1).id4, #ious4(#1).id5)
#ENDIF
#ENDLOOP
[
[ BootServer I/O Job
[
#IF (#sysj.bs) & (#glob.eio) & (#hard.bus = '2')
#ASSIGN #3 = (#bsj.pv << 1) & 2
%IO_JOB_1('#bsj.ijd', '#bsj.du', #bsj.pmi, #bsj.pma,
        0, 0, #3, #bsj.tp,bs_main)
        DW  SEG  bs_data
%IO_JOB_2(0:0, 400h, 0 )
#ENDIF
[
#ASSIGN #1 = 1
#LOOP #1 #REP(IOJOB)
[   
[    never LITERALLY '0',
[    prog  LITERALLY '1',
[    environ   LITERALLY '2',
[    all       LITERALLY '3';
[   
#ASSIGN #2 = 0
#IF (#iojob(#1).em = 'P') | (#iojob(#1).em = 'A')
    #ASSIGN #2 = #2 | 1
#ENDIF
#IF (#iojob(#1).em = 'E') | (#iojob(#1).em = 'A')
    #ASSIGN #2 = #2 | 2
#ENDIF
    #ASSIGN #3 = (#iojob(#1).pv << 1) & 2
%IO_JOB_1('#iojob(#1).ijd', '#iojob(#1).du', #iojob(#1).pmi, #iojob(#1).pma,
	#IF #LEN(iojob(#1).ehs) = 0
        0, #2, #3, #iojob(#1).tp,#iojob(#1).tsa)
	#ELSE
        #iojob(#1).ehs, #2, #3, #iojob(#1).tp,#iojob(#1).tsa)
	#ENDIF
    #IF #LEN(iojob(#1).var) <> 0
        DW  SEG  #iojob(#1).var
    #ELSE
        DW  0
    #ENDIF
    #ASSIGN #4 = #iojob(#1).npx & 1
%IO_JOB_2(#iojob(#1).ssa, #iojob(#1).ssi, #4 )
[   
#ENDLOOP
[
%END_IO_JOB_CONFIG(#eios.dds )
END
#MESSAGE ...................................................DONE
#ENDFILE
[   
[   *** LOADER Files ***
[   
[       LCONFG.A38
[   
#GEN LCONF.A38 #COND #glob.al
#MESSAGE Beginning LOADER File Generation
[
NAME LOADERCONFIG
CODE SEGMENT ER   PUBLIC 
    PUBLIC  LBUFSIZE
LBUFSIZE DW #appl.rbs
    PUBLIC  LDEFAULTMEMPOOL
LDEFAULTMEMPOOL DW #appl.dmp
CODE ENDS
[
END
#ENDFILE
[
[   
[       LTABLE.A38
[   
#GEN LTABL.A38 #COND #glob.al
NAME   LTABLE
[
LOADER_CODE     SEGMENT  ER  PUBLIC
[
    extrn    RQERROR         : near
    extrn    NUCERROR        : near
    extrn    cpyrt           : near
    extrn    rqaLoad_        : near
    extrn    rqaLoadIOJob_   : near
    extrn    rqsLoadIOJob_   : near
    extrn    rqsOverlay_     : near
[
LOADER_CODE     ENDS
[
END
#MESSAGE ...................................................DONE
#ENDFILE
[   
[   *** HI Files ***
[   
[       HCONFG.A38     
[   
#GEN HCONF.A38 #COND #glob.hi
#MESSAGE Beginning HI File Generation
[
NAME HCONFG
CODE    SEGMENT ER PUBLIC 

    EXTRN CPYRT : NEAR

[
#IF  #EQU(hi.rip,'INTELCLI')   & (#hi.ss < 2400H)
   #ASSIGN #2 = 2400H
#ELSE
   #ASSIGN #2 = #hi.ss
#ENDIF
    PUBLIC  HRESIDENTCLISTACKSIZE
HRESIDENTCLISTACKSIZE DD #2

#ASSIGN #3 = #LEN(hi.sys)
	PUBLIC	HSYSTEMDIRECTORY
HSYSTEMDIRECTORY	DB	#3, '#hi.sys'
#ASSIGN #3 = #LEN(hi.scf)
	PUBLIC	SYSTEMCMDFILE
SYSTEMCMDFILE		DB	#3, '#hi.scf'
#ASSIGN #3 = #LEN(hi.dtn )
	PUBLIC	DEFAULTTERMINALNAME
DEFAULTTERMINALNAME	DB	#3, '#hi.dtn'

	PUBLIC	HCOMMANDNAMEMAX      
HCOMMANDNAMEMAX	DW	#hi.cnm

	PUBLIC	HCLSIZE
HCLSIZE	DW	#hi.icl

[
[   Prefixes
    #ASSIGN #3 = (#REP(pref)+#REP(pref1)+#REP(pref2)+#REP(pref3)+#REP(pref4))
	PUBLIC	HPREFIXES
HPREFIXES	DB	#3
#ASSIGN #1 = 1
#LOOP #1 #REP(PREF)
   #ASSIGN #4 = #LEN(pref(#1).log )
DB	#4, '#pref(#1).log'
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(pref1)
   #ASSIGN #4 = #LEN(pref1(#1).log )
DB	#4, '#pref1(#1).log'
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(pref2)
   #ASSIGN #4 = #LEN(pref2(#1).log )
DB	#4, '#pref2(#1).log'
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(pref3)
   #ASSIGN #4 = #LEN(pref3(#1).log )
DB	#4, '#pref3(#1).log'
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(pref4)
   #ASSIGN #4 = #LEN(pref4(#1).log )
DB	#4, '#pref4(#1).log'
#ENDLOOP
DB	0
[
[   Logical Names
#ASSIGN #3 = (#REP(HILOG) + #REP(HLOG1) + #REP(HLOG2))
#ASSIGN #4 = (#REP(HLOG3) + #REP(HLOG4))
#ASSIGN #3 = (#3 + #4) * 2
	PUBLIC	HSYSTEMLOGICALNAMES
HSYSTEMLOGICALNAMES	DB	#3
#ASSIGN #1 = 1
#LOOP #1 #REP(HILOG)
  #ASSIGN #4 = #LEN(hilog(#1).nam )
  #ASSIGN #5 = #LEN(hilog(#1).pn ) 
DB	#4, '#hilog(#1).nam'
DB	#5, '#hilog(#1).pn'
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(HLOG1)
  #ASSIGN #4 = #LEN(hlog1(#1).nam )
  #ASSIGN #5 = #LEN(hlog1(#1).pn ) 
DB	#4, '#hlog1(#1).nam'
DB	#5, '#hlog1(#1).pn'
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(HLOG2)
  #ASSIGN #4 = #LEN(hlog2(#1).nam )
  #ASSIGN #5 = #LEN(hlog2(#1).pn ) 
DB	#4, '#hlog2(#1).nam'
DB	#5, '#hlog2(#1).pn'
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(HLOG3)
  #ASSIGN #4 = #LEN(hlog3(#1).nam )
  #ASSIGN #5 = #LEN(hlog3(#1).pn ) 
DB	#4, '#hlog3(#1).nam'
DB	#5, '#hlog3(#1).pn'
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(HLOG4)
  #ASSIGN #4 = #LEN(hlog4(#1).nam )
  #ASSIGN #5 = #LEN(hlog4(#1).pn ) 
DB	#4, '#hlog4(#1).nam'
DB	#5, '#hlog4(#1).pn'
#ENDLOOP
DB	0
[

    extrn HAPPEH : near

NOEXCEPTIONS			EQU  00
AVOIDABLEEXCEPTIONS		EQU  01
UNAVOIDABLEEXCEPTIONS	EQU  02
ALLEXCEPTIONS			EQU  03

[
JOBATTRIB	STRUC
        MINMEMORY     DD	?
        MAXMEMORY     DD	?
        EXCEPHANDLER  DP	HAPPEH
        EXCEPMODE     DB	?
        TASKFLAGS     DW	?
        JOBFLAGS      DW	?
JOBATTRIB	ENDS

		PUBLIC	HJOBATTRIBUTES
HJOBATTRIBUTES	JOBATTRIB	<
& #hijob.min,
& #hijob.max,
& HAPPEH,
& ALLEXCEPTIONS,
#IF #hijob.npx
& 01h, 
#ELSE
& 0,
#ENDIF
& 0>
[
	PUBLIC	HRECOVER
#IF #hi.ru = 'R'
HRECOVER	DB	0FFH
#ELSE
HRECOVER	DB	0H
#ENDIF
[
#IF (#hi.ru = 'Y') | (#hi.ru = 'R') [    resident or recovery user.
#ASSIGN #3 = #LEN(res.tn)
	PUBLIC	HRESIDENTUSERTERMINALNAME
HRESIDENTUSERTERMINALNAME	DB	#3, '#res.tn'
#ASSIGN #3 = #LEN(res.tdn)
	PUBLIC	HRESIDENTUSERTERMINAL
HRESIDENTUSERTERMINAL		DB	#3, '#res.tdn'

[
#ASSIGN #4 = #LEN(res.ipp)
#ASSIGN #5 = #LEN(res.def)
#ASSIGN #6 = 45 - #4

USERATTRIB STRUC
    USERID		    	DW	#res.uid
    MAXTASKPRIORITY		DB	#res.mtp
    PASSWORD			DB	0H
						DB  08H  DUP(020H)
    MINIMUMMEMORYSIZE	DD	#res.min
    MAXIMUMMEMORYSIZE 	DD	#res.max
#IF #EQU(res.ipp,'RESIDENT')
	INITPROGPATHNAME    DB  0H
						DB  45   DUP(020H)
#ELSE
    INITPROGPATHNAME	DB	#4, '#res.ipp'
						DB	#6  DUP (020H)
#ENDIF
    PREFIXPATHNAME		DB	#5, '#res.def'
USERATTRIB	ENDS

		PUBLIC	HRESIDENTUSERATTRIBUTES
HRESIDENTUSERATTRIBUTES	USERATTRIB < >

#ELSE
	PUBLIC	HRESIDENTUSERTERMINALNAME
HRESIDENTUSERTERMINALNAME	DB	0, '      '
	PUBLIC	HRESIDENTUSERTERMINAL
HRESIDENTUSERTERMINAL		DB	0, '              '

USERATTRIB STRUC
    USERID		    	DW	0
    MAXTASKPRIORITY		DB	0
    PASSWORD			DB	0, '         '
    MINIMUMMEMORYSIZE	DD	0
    MAXIMUMMEMORYSIZE 	DD	0
    INITPROGPATHNAME	DB	0,'                                              '
    PREFIXPATHNAME		DB	0,'                                              '
USERATTRIB	ENDS

		PUBLIC	HRESIDENTUSERATTRIBUTES
HRESIDENTUSERATTRIBUTES	USERATTRIB <>
#ENDIF
[
CODE    ENDS
[
END
#ENDFILE
[   
[       HTABLE.A38
[   
#GEN HTABL.A38 #COND #glob.hi
NAME HTABLE
HI_CODE   SEGMENT ER      PUBLIC

    extrn RQCBackupChar_ : near
    extrn RQCCreateCommandConnection_ : near
    extrn RQCDeleteCommandConnection_ : near
    extrn RQCFormatException_ : near
    extrn RQCGetChar_ : near
    extrn RQCGetCommandName_ : near
    extrn RQCGetInputConnection_ : near
    extrn RQCGetInputPathname_ : near
    extrn RQCGetInputPathnameNOWC_ : near
    extrn RQCGetOutputConnection_ : near
    extrn RQCGetOutputPathname_ : near
    extrn RQCGetParameter_ : near
    extrn RQCSendCommand_ : near
    extrn RQCSendCOResponse_ : near
    extrn RQCSendEOResponse_ : near
    extrn RQCSetControlC_ : near
    extrn RQCSetParseBuffer_ : near

HI_CODE  ENDS
END
#MESSAGE ...................................................DONE
#ENDFILE
[   
[   *** UDI Files ***
[   
[       UTABLE.A38
[   
#GEN UTABL.A38 #COND #glob.udi
#MESSAGE Beginning UDI File Generation
NAME  UTABLE
[
UDI_CODE     SEGMENT  ER  PUBLIC 
 
    extrn    rqerror                  : near
    extrn    nucerror                 : near
    extrn    cpyrt                    : near
    extrn    DQAllocate_              : near
    extrn    DQAttach_                : near
    extrn    DQChangeAccess_          : near
    extrn    DQChangeExtension_       : near
    extrn    DQClose_                 : near
    extrn    DQCreate_                : near
    extrn    DQDecodeException_       : near
    extrn    DQDecodeTime_            : near
    extrn    DQDelete_                : near
    extrn    DQDetach_                : near
    extrn    DQExecute_               : near
    extrn    DQExit_                  : near
    extrn    DQFileInfo_              : near
    extrn    DQFree_                  : near
    extrn    DQGetArgument_           : near
    extrn    DQGetConnectionStatus_   : near
    extrn    DQGetExceptionHandler_   : near
    extrn    DQGetMSize_              : near
    extrn    DQGetSize_               : near
    extrn    DQGetSystemID_           : near
    extrn    DQGetTime_               : near
    extrn    DQMAllocate_             : near
    extrn    DQMFree_                 : near
    extrn    DQOpen_                  : near
    extrn    DQOverlay_               : near
    extrn    DQRead_                  : near
    extrn    DQRename_                : near
    extrn    DQReserveIOMemory_       : near
    extrn    DQSeek_                  : near
    extrn    DQSpecial_               : near
    extrn    DQSwitchBuffer_          : near
    extrn    DQTrapCC_                : near
    extrn    DQTrapException_         : near
    extrn    DQTruncate_              : near
    extrn    DQWrite_                 : near

    PUBLIC   modemap
modemap      DB  0H
             DB  7H
             DB  8H
             DB  9H
[
UDI_CODE     ENDS
END
#MESSAGE ...................................................DONE
#ENDFILE
[   
[   *** SDM III Files ***
[   
[       SDMCFG.A38      
[   
#GEN SDMCFG.A38 #COND #glob.SDM
#MESSAGE Beginning SDM III File Generation
[
NAME SDMDAT
[
SDMIII_DATA    SEGMENT RW PUBLIC 
    	PUBLIC BUS_TYPE
   #IF #hard.bus = '1'
#ASSIGN #3 = 1
   #ENDIF
   #IF #hard.bus = '2'
#ASSIGN #3 = 2
   #ENDIF
   #IF #hard.bus = '3'
#ASSIGN #3 = 3
   #ENDIF
BUS_TYPE        DB #3
SDMIII_DATA  ENDS
[
END
#ENDFILE
[
[       CONFIG.A38      
[   
#GEN CONFIG.A38 #COND #glob.SDM
[
$INCLUDE (#incl.mnf!mIII.equ)
$INCLUDE (#incl.mnf!config.mac)

%start
%buffer_size (256)
%version ('iSDM X0250')
%newline ('0DH, 0AH')
%sw_breaks (32)
%hw_breaks (4)
PUBLIC MSG_BASE
MSG_BASE       DW #mbii.mdp
[
%parser_list_start
%parser (M_addp_cmd,'p')
%parser (M_bc_cmd,'b')
%parser (M_bs_cmd,'b')
%parser (M_bw_cmd,'b')
%parser (M_bwc_cmd,'b'); must be after 'bw'
%parser (M_br_cmd,'b')
%parser (M_mov_or_cmp_cmd,'c')
%parser (M_crc_cmd,'c')
%parser (M_console_cmd,'c')
%parser (M_find_or_skip_cmd,'f')
%parser (M_go_cmd,'g')
%parser (M_ii_cmd,'i')
%parser (M_interrupt_cmd,'i')
%parser (M_intercept_cmd,'i')
%parser (M_linear_cmd,'l')
%parser (M_mov_or_cmp_cmd,'m')
%parser (M_npx_cmd,'n')
%parser (M_oi_cmd,'o')
%parser (M_pi_cmd,'p')
%parser (M_po_cmd,'p')
%parser (M_physical_cmd,'p')
%parser (M_quit_cmd,'q')
%parser (M_reg_cmd,'r')
%parser (M_rm_cmd,'r')
%parser (M_st_cmd,'s')
%parser (M_find_or_skip_cmd,'s')
%parser (M_vers_cmd,'v')
%parser (M_wm_cmd,'w')
%parser_list_end
[
%data
PUBLIC MI_default_idt
MI_default_idt DQ 16 DUP (?)
%data_ends
[
%interrupt_start

%interrupt (0, %none)
%interrupt (1, %none)
%interrupt (2, %none)
%interrupt (3, %none)
%interrupt (4, %none)
%interrupt (5, %none)
%interrupt (6, %none)
%interrupt (7, %none)
%interrupt (8, %yes)
%interrupt (9, %none)
%interrupt (10, %yes)
%interrupt (11, %yes)
%interrupt (12, %yes)
%interrupt (13, %yes)
%interrupt (14, %yes)
%interrupt (15, %none)
%interrupt (16, %none)
[
%end

#ENDFILE
[   
[       CCCFG.A38      
[   
#GEN CCCFG.A38 #COND #glob.SDM
[
NAME CCTABLE
EXTRN subroutine_not:FAR
EXTRN subroutine_null:FAR
#IF hard.bus <> '3'
	#IF (#sdm.A54 <> 'N') | (#sdm.B54 <> 'N') | (#sdm.A30 <> 'N') | (#sdm.B30 <> 'N') 
EXTRN subroutine_354:FAR
	#ENDIF
	#IF #sdm.G79 <> 'N'
EXTRN subroutine_279:FAR
	#ENDIF
[
[#IF hard.bus = '2'
[EXTRN subroutine_8751:FAR
[	#ENDIF
[
	#IF #sdm.D51 <> 'N'
EXTRN subroutine_8251:FAR
	#ENDIF
	#IF (#sdm.A74 <> 'N') | (#sdm.B74 <> 'N') 
EXTRN subroutine_8274:FAR
	#ENDIF
	#IF #sdm.RCI <> 'N'
EXTRN subroutine_rci:FAR
	#ENDIF
#ELSE
	#IF #sdmat.SER <> 'N'
EXTRN subroutine_120sp:FAR
	#ENDIF
	#IF #sdmat.CON <> 'N'
EXTRN subroutine_120con:FAR
	#ENDIF
#ENDIF

#IF hard.bus <> '3'
	#IF (#sdm.A54 <> 'N')|(#sdm.B54 <> 'N')|(#sdm.A30 <> 'N')|(#sdm.B30 <> 'N')
init_354 STRUC
        default_baud     dd    9600
        clock_frequency  dd    4B000H
        base_port        db    80H
        channel_AorB     db    'A'
init_354 ENDS

unit_354 STRUC
        control_port     db    ?
        data_port        db    ?
        baud_rate        dd    ?
        stop_bits        db    ?
        char_length      db    ?
        parity           db    ?
        IMM_acknowledge  db    ?
        clock_freqncy  dd    ?
unit_354 ENDS
	#ENDIF
[
	#IF #sdm.G79 <> 'N'
init_279_struc STRUC
		base__port_		 db		?
		port_offset		 db		?
init_279_struc ENDS

unit_279_struc STRUC
		fifo_port		 db		?
		status_port		 db		?
		control__port	 db		?
		imm_port		 db		?
		char			 db		?
		char_status		 db		?
unit_279_struc ENDS
	#ENDIF
[
[#IF hard.bus = '2'
[init_8751_struc STRUC
[        baud_rate_       dd    2400
[init_8751_struc ENDS

[unit_8751_struc STRUC
[        _baud_rate       dd    ?
[        data_in          dd    ?
[        data_out         dd    ?
[        status           dd    ?
[        options          dd    ?
[unit_8751_struc ENDS
[	#ENDIF
[
	#IF #sdm.D51 <> 'N'
init_8251_struc	STRUC
		_default_baud_	 dd		9600
		_control_port	 dw		0DAH
		_data_port		 dw		0D8H
		timer_mode_port	 dw		0D6H
		timer_count_port dw		0D4H
		counter_number	 db		2
		max_baud_rate	 dd		12C00H
init_8251_struc	ENDS
								
unit_8251_struc	STRUC
		_control_port_	 dw		?
		_data_port_		 dw		?
		_timer_mode_port dw		?
		_timer_count_port dw		?
		_counter_number	 db		?
		_max_baud_rate	 dd		?
		_baud__rate_	 dw		?
		_stop_bits_		 db		?
		_char_length_	 db		?
		_parity__		 db		?
		_IMM_acknowledge_	 db		?
unit_8251_struc	ENDS
	#ENDIF
[
	#IF (#sdm.A74 <> 'N') | (#sdm.B74 <> 'N') 
init_8274	STRUC
		_default__baud_	 dd		9600
		_base_port_		 dw		0D8H
        channel_AorB_	 db		'B'
		in_rate_p_base	 dw		0D0H
		in_rate_cmd_port dw		0D6H
		clock__frequency dd		12C00H
init_8274	ENDS
								
unit_8274	STRUC
		_data__port_	 dw		?
		status_port_	 dw		?
		_baud___rate_	 dd		?
		_stop__bits_	 db		?
		_char__length_	 db		?
		_parity___		 db		?
		_IMM__acknowledge_	 db		?
		in_rate_port	 dw		?
		in_rate__cmd_port	 dw		?
		in_rate_counter	 db		?
		clock__freqency dd		?
unit_8274	ENDS
	#ENDIF
#ELSE
	#IF #sdmat.SER <> 'N'
init_120sp_struc STRUC
		_default_baud	 dd		9600
		base__port		 dw		3F8H
init_120sp_struc ENDS

unit_120sp_struc STRUC
		_base_port		 dw		?
		_baud_rate_		 dd		?
		_stop_bits		 db		?
		_char_length	 db		?
		_parity			 db		?
		_IMM_acknowledge	 db		?
unit_120sp_struc ENDS
	#ENDIF
#ENDIF


device_structure   STRUC
        name_ptr         dp    ?    ; null terminated string
        subroutine_ptr   dp    ?    ; external subroutine_structure
        init_ptr         dp    ?    ; parameters to subroutine_init
        unit_ptr         dp    ?    ; initialized in subroutine_init
        scan_flag        db    0    ; reserved 0
        init_flag        db    1    ; to be initialized
        connector_ptr    dp    0
        device_ptr       dp    0    ; connector device name
device_structure ENDS


CCTABLE_CODE32 SEGMENT ER PUBLIC
;; This is a list of names for each device/unit in the device table

ccnot            db 'not assigned',0
ccnull           db 'null',0
#IF #hard.bus <> '3'
[	#IF hard.bus = '2'
[cc8751           db 'cc8751',0
[	#ENDIF
	#IF #sdm.A54 <> 'N'
cc354a           db 'cc354A',0
	#ENDIF
	#IF #sdm.B54 <> 'N'
cc354b           db 'cc354B',0
	#ENDIF
	#IF #sdm.D51 <> 'N'
cc8251           db 'cc8251',0
	#ENDIF
	#IF #sdm.A74 <> 'N'
cc8274a          db 'cc8274a',0
	#ENDIF
	#IF #sdm.B74 <> 'N'
cc8274b          db 'cc8274b',0
	#ENDIF
	#IF #sdm.A30 <> 'N'
cc82530a         db 'cc82530a',0
	#ENDIF
	#IF #sdm.B30 <> 'N'
cc82530b         db 'cc82530b',0
	#ENDIF
	#IF #sdm.G79 <> 'N'
cc279            db 'cc279',0
	#ENDIF
	#IF #sdm.RCI <> 'N'
ccrci            db 'ccrci',0
	#ENDIF
#ELSE
	#IF #sdmat.SER <> 'N'
cc120sp          db 'cc120sp',0
	#ENDIF
	#IF #sdmat.CON <> 'N'
cc120con         db 'cc120con',0
	#ENDIF
#ENDIF
nill             db 0

;; init flag 1-not initialized yet, 0 already initialized

init             EQU 1

;; Connectors
;;
;;	Some connectors can cause problems for initialization,
;;	particularly the SBX connector could have any of a number
;;	of devices on it.
;;
;;	Each connector has an associated storage location.  This location
;;	stores a pointer to the name of the device that is connected
;;	to it.

#IF #hard.bus <> '3'
	#IF (#sdm.A54 <> 'N') | (#sdm.B54 <> 'N')
sbx354           db 'sbx354',0     ; connector device name
	#ENDIF
	#IF #sdm.G79 <> 'N'
sbx279           db 'sbx279',0     ; connector device name
	#ENDIF
#ENDIF
none             db 0              ; connector device name

CCTABLE_CODE32 ENDS

CCTABLE_DATA SEGMENT RW PUBLIC
	#IF (#sdm.A54 <> 'N') | (#sdm.B54 <> 'N') | (#sdm.G79 <> 'N')
sbx_connector    dp 0              ; used as connector_ptr
	#ENDIF
no_connector     dp 0              ; used as connector_ptr
CCTABLE_DATA ENDS


;; sbx 354
;;	386/XXX boards have the SBX connector located at the same port

CCTABLE_CODE32 SEGMENT ER PUBLIC
#IF hard.bus <> '3'
	#IF #sdm.A54 <> 'N'
init_354a init_354 < 9600, 4B000H, 80H, 'A' >
	#ENDIF
	#IF #sdm.B54 <> 'N'
init_354b init_354 < 9600, 4B000H, 80H, 'B' >
	#ENDIF
	#IF #sdm.A30 <> 'N'
init_82530a init_354 < 9600, 4B000H, 0D8H, 'A' >
	#ENDIF
	#IF #sdm.B30 <> 'N'
init_82530b init_354 < 9600, 4B000H, 0D8H, 'B' >
	#ENDIF
[	#IF hard.bus = '2'
[init_8751 init_8751_struc <>   ; use 2400 baud default
[	#ENDIF
	#IF #sdm.D51 <> 'N'
init_8251 init_8251_struc < 9600, 0DAH, 0D8H, 0D6H, 0D4H, 2, 12C00H >
	#ENDIF
	#IF #sdm.A74 <> 'N'
init_8274a init_8274 < 9600, 0D8H, 'A', 0D0H, 0D6H, 12C00H >
	#ENDIF
	#IF #sdm.B74 <> 'N'
init_8274b init_8274 < 9600, 0D8H, 'B', 0D0H, 0D6H, 12C00H >
	#ENDIF
	#IF #sdm.G79 <> 'N'
init_279 init_279_struc < 80H, 2 >
init_279_a0 init_279_struc < 0A0H, 2 >
	#ENDIF
#ELSE
	#IF #sdmat.ser <> 'N'
init_120sp init_120sp_struc < 9600, 3F8H >
	#ENDIF
#ENDIF
CCTABLE_CODE32 ENDS

CCTABLE_DATA SEGMENT RW PUBLIC
#IF hard.bus <> '3'
[	#IF hard.bus = '2'
[unit_8751 unit_8751_struc <>   ; use undefined defaults
[	#ENDIF
	#IF #sdm.A54 <> 'N'
unit_354a unit_354 <>   ; use undefined defaults
	#ENDIF
	#IF #sdm.B54 <> 'N'
unit_354b unit_354 <>   ; use undefined defaults
	#ENDIF
	#IF #sdm.A30 <> 'N'
unit_82530a unit_354 <>   ; use undefined defaults
	#ENDIF
	#IF #sdm.B30 <> 'N'
unit_82530b unit_354 <>   ; use undefined defaults
	#ENDIF
	#IF #sdm.D51 <> 'N'
unit_8251 unit_8251_struc <>   ; use undefined defaults
	#ENDIF
	#IF #sdm.A74 <> 'N'
unit_8274a unit_8274 <>   ; use undefined defaults
	#ENDIF
	#IF #sdm.B74 <> 'N'
unit_8274b unit_8274 <>   ; use undefined defaults
	#ENDIF
	#IF #sdm.G79 <> 'N'
unit_279 unit_279_struc <>   ; use undefined defaults
	#ENDIF
#ELSE
	#IF #sdmat.ser <> 'N'
unit_120sp unit_120sp_struc <>   ; use undefined defaults
	#ENDIF
#ENDIF
CCTABLE_DATA ENDS


CCTABLE_CODE32 SEGMENT ER PUBLIC
PUBLIC device_inits
;; This table contains the initial device records.  When adding
;; a device driver, make a similar entry at the end of the list.
;;
;; This table is copied into dynamic memory space so that 
;; soft loaded drivers may be added and the flags may be altered.

device_inits
&              device_structure <ccnot,  subroutine_not,  nill,      nill,      0, init, no_connector, none>
               device_structure <ccnull, subroutine_null, nill,      nill,      0, init, no_connector, none>
	#IF hard.bus <> '3'
[		#IF hard.bus = '2'
[               device_structure <cc8751, subroutine_8751, init_8751, unit_8751, 1, init, no_connector, none>
[		#ENDIF
[
[	Do the primary Multibus serial channels first
[
#IF #sdm.D51 = 'P'
               device_structure <cc8251, subroutine_8251, init_8251, unit_8251, 1, init, no_connector,  none>
#ENDIF
#IF #sdm.A54 = 'P'
               device_structure <cc354a, subroutine_354,  init_354a, unit_354a, 1, init, sbx_connector, sbx354>
#ENDIF
#IF #sdm.B54 = 'P'
               device_structure <cc354b, subroutine_354,  init_354b, unit_354b, 1, init, sbx_connector, sbx354>
#ENDIF
#IF #sdm.A74 = 'P'
               device_structure <cc8274a, subroutine_8274, init_8274a, unit_8274a, 1, init, no_connector,  none>
#ENDIF
#IF #sdm.B74 = 'P'
               device_structure <cc8274b, subroutine_8274, init_8274b, unit_8274b, 1, init, no_connector,  none>
#ENDIF
#IF #sdm.A30 = 'P'
               device_structure <cc82530a, subroutine_354, init_82530a, unit_82530a, 1, init, no_connector,  none>
#ENDIF
#IF #sdm.B30 = 'P'
               device_structure <cc82530b, subroutine_354, init_82530b, unit_82530b, 1, init, no_connector,  none>
#ENDIF
#IF #sdm.G79 = 'P'
               device_structure <cc279, subroutine_279,  init_279, unit_279, 1, init, sbx_connector, sbx279>
   #IF #hard.bus = '1'
               device_structure <cc279, subroutine_279,  init_279_a0, unit_279, 1, init, sbx_connector, sbx279>
   #ENDIF
#ENDIF
#IF #sdm.RCI = 'P'
               device_structure <ccrci, subroutine_rci, nill, nill, 1, init, no_connector, none>
#ENDIF
[
[	Now do the secondary Multibus serial channels
[
#IF #sdm.D51 = 'S'
               device_structure <cc8251, subroutine_8251, init_8251, unit_8251, 1, init, no_connector,  none>
#ENDIF
#IF #sdm.A54 = 'S'
               device_structure <cc354a, subroutine_354,  init_354a, unit_354a, 1, init, sbx_connector, sbx354>
#ENDIF
#IF #sdm.B54 = 'S'
               device_structure <cc354b, subroutine_354,  init_354b, unit_354b, 1, init, sbx_connector, sbx354>
#ENDIF
#IF #sdm.A74 = 'S'
               device_structure <cc8274a, subroutine_8274, init_8274a, unit_8274a, 1, init, no_connector,  none>
#ENDIF
#IF #sdm.B74 = 'S'
               device_structure <cc8274b, subroutine_8274, init_8274b, unit_8274b, 1, init, no_connector,  none>
#ENDIF
#IF #sdm.A30 = 'S'
               device_structure <cc82530a, subroutine_354, init_82530a, unit_82530a, 1, init, no_connector,  none>
#ENDIF
#IF #sdm.B30 = 'S'
               device_structure <cc82530b, subroutine_354, init_82530b, unit_82530b, 1, init, no_connector,  none>
#ENDIF
#IF #sdm.G79 = 'S'
               device_structure <cc279, subroutine_279,  init_279, unit_279, 1, init, sbx_connector, sbx279>
   #IF #hard.bus = '1'
               device_structure <cc279, subroutine_279,  init_279_a0, unit_279, 1, init, sbx_connector, sbx279>
   #ENDIF
#ENDIF
#IF #sdm.RCI = 'S'
               device_structure <ccrci, subroutine_rci, nill, nill, 1, init, no_connector, none>
#ENDIF
	#ELSE
[
[	Do the primary PC Bus serial channels first
[
#IF #sdmat.SER = 'P'
               device_structure <cc120sp, subroutine_120sp, init_120sp, unit_120sp, 1, init, no_connector,  none>
#ENDIF
#IF #sdmat.CON = 'P'
               device_structure <cc120con, subroutine_120con, nill, nill, 1, init, no_connector,  none>
#ENDIF
[
[	Now do the secondary PC Bus serial channels
[
#IF #sdmat.SER = 'S'
               device_structure <cc120sp, subroutine_120sp, init_120sp, unit_120sp, 1, init, no_connector,  none>
#ENDIF
#IF #sdmat.CON = 'S'
               device_structure <cc120con, subroutine_120con, nill, nill, 1, init, no_connector,  none>
#ENDIF
	#ENDIF


;; ADD DEVICE entry here
;; Last Entry
               device_structure <nill,   nill,            nill,      nill,      0, 0,    0, 0>

PUBLIC channel_inits 
[
	#IF hard.bus = '3'
		#IF #sdmat.SER = 'P'
channel_inits    dp cc120sp,
&                   cc120sp,
&                   cc120sp,
		#ENDIF
		#IF #sdmat.CON = 'P'
channel_inits    dp cc120con,
&                   cc120con,
&                   cc120con,
		#ENDIF
	#ELSE
		#IF #sdm.D51 = 'P'
channel_inits    dp cc8251,
&                   cc8251,
&                   cc8251,
		#ENDIF
		#IF #sdm.A54 = 'P'
channel_inits    dp cc354A,
&                   cc354A,
&                   cc354A,
		#ENDIF
		#IF #sdm.B54 = 'P'
channel_inits    dp cc354B,
&                   cc354B,
&                   cc354B,
		#ENDIF
		#IF #sdm.A74 = 'P'
channel_inits    dp cc8274A,
&                   cc8274A,
&                   cc8274A,
		#ENDIF
		#IF #sdm.B74 = 'P'
channel_inits    dp cc8274B,
&                   cc8274B,
&                   cc8274B,
		#ENDIF
		#IF #sdm.G79 = 'P'
channel_inits    dp cc279,
&                   cc279,
&                   cc279,
		#ENDIF
		#IF #sdm.A30 = 'P'
channel_inits    dp cc82530A,
&                   cc82530A,
&                   cc82530A,
		#ENDIF
		#IF #sdm.B30 = 'P'
channel_inits    dp cc82530B,
&                   cc82530B,
&                   cc82530B,
		#ENDIF
		#IF #sdm.RCI = 'P'
channel_inits    dp ccrci,
&                   ccrci,
&                   ccrci,
		#ENDIF
	#ENDIF
&                   nill
[
[
CCTABLE_CODE32 ENDS
END
#MESSAGE ...................................................DONE
#ENDFILE
[   
[   *** SDB Files ***
[   
[       SDBCNF.A38      
[   
#GEN SDBCN.A38 #COND #glob.sdb
#MESSAGE Beginning SDB File Generation
[
NAME SDBCNF
CODE SEGMENT ER   PUBLIC 
    PUBLIC  LEVEL
LEVEL    DW #sdb.slv
    extrn   rqsdbinittask: NEAR
    extrn   cpyrt        : NEAR
CODE ENDS
[
END
#MESSAGE ...................................................DONE
#ENDFILE
[   *** rom files ***
[   
[       NROMCP.A38
[   
#GEN NROMC.A38 #COND (#rom.syr)
#MESSAGE Beginning ROM File Generation
[
NAME NROMC
 
code_rom	segment	er use16 public
EXTRN   rq_rom_boot:   near                     ;entry point for initialization code
#ASSIGN #1 = #rom.ria
#IF (#1 <= 0FFFFFC00H) & (#1 >= 0FFFF0000H)
#ASSIGN #5 = #rom.ria  & 0FFFFH
CODE_ROM_OFFSET	equ	#5
	ORG	CODE_ROM_OFFSET
#ENDIF
rom_boot	label	far
	jmp	rq_rom_boot

        PUBLIC  START_ROM
START_ROM      DD  #rom.roa
        PUBLIC  ROM_LENGTH
#ASSIGN #1 = (#rom.rol >> 1)
ROM_LENGTH     DD  #1
[
[   Find lowest of the
[   low blocks of system memory
[
#ASSIGN #1 = 1
#ASSIGN #4 = #mems(#1).syl
#IF #REP(MEMS) > 0
   #LOOP #1 (#REP(MEMS) - 1)
       #ASSIGN #3 = #mems(#1).syl
       #IF #3 < #4
            #ASSIGN #4 = #3
       #ENDIF
   #ENDLOOP
#ENDIF
        PUBLIC  START_RAM
START_RAM      DD  #4
#ASSIGN #1 = (#rom.nsg - #nuc.nge) * 8
        PUBLIC  DT_EXPANSION
DT_EXPANSION   DD  #1
        PUBLIC  TEMP_AREA
TEMP_AREA      DD  00100H
        PUBLIC  ROM_INIT_START
#IF (#rom.ria <= 0FFFFFC00H) & (#rom.ria >= 0FFFF0000H)
#ASSIGN #1 = #rom.ria - #5
#ELSE
#ASSIGN #1 = #rom.ria
#ENDIF
ROM_INIT_START DD  #1
        PUBLIC  ROM_BOARD_TYPE
#IF #hard.if = 0
ROM_BOARD_TYPE  DB  000H
#ENDIF
#IF #hard.if = 1
ROM_BOARD_TYPE  DB  001H
#ENDIF
#IF #hard.if = 2
ROM_BOARD_TYPE  DB  000H
#ENDIF
#IF #hard.if = 3
ROM_BOARD_TYPE  DB  003H
#ENDIF
#IF #hard.if = 4
ROM_BOARD_TYPE  DB  004H
#ENDIF
#IF #hard.if = 5
ROM_BOARD_TYPE  DB  005H
#ENDIF
#IF #hard.if = 6
ROM_BOARD_TYPE  DB  006H
#ENDIF
#IF #hard.if = 7
ROM_BOARD_TYPE  DB  007H
#ENDIF
#IF #hard.if = 8
ROM_BOARD_TYPE  DB  008H
#ENDIF
#IF #hard.if = 0FDH
ROM_BOARD_TYPE  DB  0FDH
#ENDIF
#IF #hard.if = 0FEH
ROM_BOARD_TYPE  DB  0FEH
#ENDIF
#IF #hard.if = 0FFH
ROM_BOARD_TYPE  DB  0FFH
#ENDIF
#IF hard.bus = '2'
		PUBLIC	rnciar 
RNCIAR			DW	0f8c0H 
#ELSE
		public clear_rnc
clear_rnc	proc
	ret
clear_rnc	endp
#ENDIF
code_rom ends
 
rstrt    segment er use16 public

#ASSIGN #1 = #rom.ria
#IF (#1 <= 0FFFFFC00H) & (#1 >= 0FFFF0000H)
	mov	bx, offset rom_boot
	jmp	bx
#ELSE
#ASSIGN #1 = (#rom.ria >> 4) & 0FFFFH
	db	0eah
	dw	offset rom_boot, #1
#ENDIF

rstrt   ends
 end
[
#MESSAGE ...................................................DONE
#ENDFILE
[
[   *** Downloader Configuration Files ***
[   
[       DLJCF.A28
[   
#GEN DLJCF.A28 #COND (#sysj.dl & #glob.bio & (#hard.bus = '2'))
#MESSAGE Beginning DOWNLOADER File Generation
NAME DLJCF
DATA   SEGMENT RW      PUBLIC
#IF #EQU(dlj.fd, 'N' )
	#ASSIGN #3 = 4				[Named File Driver
#ELSE		
	#ASSIGN #3 = 5				[Remote File Driver
#ENDIF
	PUBLIC	DL_SD_NAME
	#ASSIGN #2 = 1              [ storage device name
	#ASSIGN #3 = 14
	#ASSIGN #7 = #LEN(dlj.sd)
	#IF (#7 < #3)         
DL_SD_NAME		DB	#7, '#dlj.sd'
		#ASSIGN #3 = #3 - #7
		#LOOP #2 #3
DB 0H
		#ENDLOOP
	#ELSE
DL_SD_NAME		DB	#7, '#dlj.sd'
	#ENDIF
	PUBLIC	DL_FILE_DRIVER
DL_FILE_DRIVER	DB	#3
	PUBLIC	DL_ERR_REPORT
	#IF #dlj.er
DL_ERR_REPORT	DB	0FFH
	#ELSE
DL_ERR_REPORT	DB	0H
	#ENDIF
DATA ENDS
END
#MESSAGE ...................................................DONE
#ENDFILE
[
[   *** ATCS Server Configuration Files ***
[   
[       ATCS279.A28
[   
#GEN ATCS279.A28 #COND (#sysj.atc & #glob.bio & (#hard.bus = '2'))
#MESSAGE Beginning ATCS/279 File Generation
NAME ATCS279
CODE   SEGMENT ER      PUBLIC
	PUBLIC	MAX_OS_WINDOWS
MAX_OS_WINDOWS		DB	#atcj.msw
	PUBLIC	MAX_DBG_WINDOWS
MAX_DBG_WINDOWS		DB	#atcj.mdw
CODE ENDS
END
#MESSAGE ...................................................DONE
#ENDFILE
[   
[       ATCS450.A28
[   
#GEN ATCS450.A28 #COND (#sysj.a50 & (#hard.bus = '2'))
#MESSAGE Beginning ATCS/450 File Generation
NAME ATCS450
DATA   SEGMENT RW      PUBLIC
	PUBLIC	ATCS450_TP
ATCS450_TP		DW	#atc50.tpa
	PUBLIC	ATCS450_CIL
ATCS450_CIL	DB	#atc50.cil
	PUBLIC	ATCS450_CN
ATCS450_CN		DB	#atc50.cn
	PUBLIC	ATCS450_CF
ATCS450_CF		DW	#atc50.cf
	PUBLIC	ATCS450_TPS
ATCS450_TPS	DB	#atc50.tps
DATA ENDS
END
#MESSAGE ...................................................DONE
#ENDFILE
[
[   *** Bootserver Configuration Files ***
[   
[       BSJCF.A28
[   
#GEN BSJCF.A28 #COND (#sysj.bs & #glob.eio & (#hard.bus = '2'))
#MESSAGE Beginning BOOTSERVER File Generation
NAME BSJCF
CODE   SEGMENT ER      PUBLIC
	PUBLIC	BS_TRANSFER_SIZE
BS_TRANSFER_SIZE		DW	8000H
	PUBLIC	BS_NUMBER_OF_BUFFERS
BS_NUMBER_OF_BUFFERS	DB	1
	PUBLIC	BS_INIT_ERROR_REPORTING
	#IF #nuc.rie
BS_INIT_ERROR_REPORTING	DB	0FFH
	#ELSE
BS_INIT_ERROR_REPORTING	DB	00H   
	#ENDIF
CODE ENDS
END
#MESSAGE ...................................................DONE
#ENDFILE
[
[   *** Front Panel Interrupt Server Configuration Files ***
[   
[       FPI.A38
[   
#GEN FPI.A38 #COND (#sysj.fpi & #glob.bio & (#hard.bus = '2'))
#MESSAGE Beginning FPI File Generation
NAME FPI_MOD
CODE   SEGMENT ER      PUBLIC    USE32
	PUBLIC	FPI_INTERRUPT_LEVEL
FPI_INTERRUPT_LEVEL			DW	#fpij.fil
	PUBLIC	FPI_SERVER_TASK_PRIORITY
FPI_SERVER_TASK_PRIORITY	DB	#fpij.stp
CODE ENDS
END
#MESSAGE ...................................................DONE
#ENDFILE
[
[   
[       UACFG.A28
[
#GEN UACFG.A28 #COND #glob.net & (#rnet.gnp = 'G')
#MESSAGE Beginning iRMX-NET File Generation
NAME UA_CONFIGURATION

$INCLUDE(#incl.net!config/asm286.lit)
$INCLUDE(#incl.net!config/uacfg.mac)
#IF #glob.eio
	#IF #udf.mul = 'N'
%master_udf ( NAMED, #udf.mln , #eios.cd!/UDF , #udf.md )
	#ELSE
		#IF #udf.lul = 'U'
%master_udf ( REMOTE, #udf.mln , #eios.cd!/UDF , #udf.md )
		#ELSE
%master_udf ( REMOTE, #udf.mln , #udf.mpn!/UDF , #udf.md )
		#ENDIF
	#ENDIF
[
	#IF #udf.lul = 'U'
%local_udf ( NULL, 0, 0, 0, 0, ##hard.cin )
	#ELSE
%local_udf ( NAMED, #udf.lln , #eios.cd!/UDF , #udf.ld , #udf.upd , ##hard.cin )
	#ENDIF
[
	#IF #cdf.clc = 'N'
%cdf ( NAMED, #cdf.cln , #eios.cd!/CDF , #cdf.cdd  )
	#ELSE
%cdf ( REMOTE, #cdf.cln , #cdf.cpn!/CDF , #cdf.cdd  )
	#ENDIF
#ELSE
	#IF #udf.mul = 'N'
%master_udf ( NAMED, #udf.mln , #udf.mpn!/UDF , #udf.md )
	#ELSE
%master_udf ( REMOTE, #udf.mln , #udf.mpn!/UDF , #udf.md )
	#ENDIF
[
	#IF #udf.lul = 'U'
%local_udf ( NULL, 0, 0, 0, 0, ##hard.cin )
	#ELSE
%local_udf ( NAMED, #udf.lln , #udf.lpn!/UDF , #udf.ld , #udf.upd , ##hard.cin )
	#ENDIF
[
	#IF #cdf.clc = 'N'
%cdf ( NAMED, #cdf.cln , #cdf.cpn!/CDF , #cdf.cdd  )
	#ELSE
%cdf ( REMOTE, #cdf.cln , #cdf.cpn!/CDF , #cdf.cdd  )
	#ENDIF
#ENDIF
[
%consumer_info ( #cdf.cnn , #cdf.cnp , #cdf.cio , #cdf.cib )
[
#IF #udf.wv = 'R'
%who_verifies ( RMXNET )
#ELSE
%who_verifies ( EIOS )
#ENDIF
[
#IF #udf.wa = 'R'
%who_attaches ( RMXNET )
#ELSE
%who_attaches ( EIOS )
#ENDIF
[
#IF #udf.aln
	#IF #udf.lul = 'U'
%load_name_file ( NAMED, #udf.mln , /NET/DATA , #udf.md )
	#ELSE
%load_name_file ( NAMED, #udf.lln , /NET/DATA , #udf.ld )
	#ENDIF
#ENDIF
[
%end_ua_cfg

end
#ENDFILE
[   
[       HSTCFG.A28
[
#GEN HSTCFG.A28 #COND #glob.net & (rnet.pt | (#hard.bus <> '2')) & (#rnet.gnp = 'G')
NAME HOST_CONFIGURATION

$INCLUDE(#incl.net!config/asm286.lit)
$INCLUDE(#incl.net!config/hstcfg.mac)

#IF #rnet.ce
%tl_on_comm_engine ( y )
#ELSE
%tl_on_comm_engine ( n )
#ENDIF
[
%ina_network_layer ( ##rnet.nl )
[
#IF rnet.pt | (#hard.bus <> '2')
%ns_on_comm_engine ( n )
#ELSE
%ns_on_comm_engine ( y )
#ENDIF
[
%ina_release ( 3 )
[
#IF #nuc.rie
%console_error_reporting ( y )
#ELSE
%console_error_reporting ( n )
#ENDIF
[
#IF rnet.pt | (#hard.bus = '1')
%bus_type ( mb1 )
#ENDIF
#IF ~rnet.pt & (#hard.bus = '2')
%bus_type ( mb2 )
#ENDIF
#IF #hard.bus = '3'
%bus_type ( at )
#ENDIF
[
%ina_subnet_number ( ##rnet.snn )
[
%end_host_config

end
#ENDFILE
[   
[       HST2CFG.A28
[
#GEN HST2CFG.A28 #COND #glob.net & (~rnet.pt & (#hard.bus = '2')) & (#rnet.gnp = 'G')
NAME HOST_CONFIGURATION

$INCLUDE(#incl.net!config/asm286.lit)
$INCLUDE(#incl.net!config/hstcfg.mac)

#IF #rnet.ce
%tl_on_comm_engine ( y )
#ELSE
%tl_on_comm_engine ( n )
#ENDIF
[
%ina_network_layer ( ##rnet.nl )
[
#IF rnet.pt | (#hard.bus <> '2') | ~#rnet.ce
%ns_on_comm_engine ( n )
#ELSE
%ns_on_comm_engine ( y )
#ENDIF
[
%ina_release ( 3 )
[
#IF #nuc.rie
%console_error_reporting ( y )
#ELSE
%console_error_reporting ( n )
#ENDIF
[
#IF rnet.pt | (#hard.bus = '1')
%bus_type ( mb1 )
#ENDIF
#IF ~rnet.pt & (#hard.bus = '2')
%bus_type ( mb2 )
#ENDIF
#IF #hard.bus = '3'
%bus_type ( at )
#ENDIF
[
%ina_subnet_number ( ##rnet.snn )
[
%end_host_config

end
#ENDFILE
[   
[       NAMCFG.A28
[
#GEN NAMCFG.A28 #COND #glob.net & (rnet.pt | (#hard.bus <> '2') | ~#rnet.ce) & (#rnet.gnp = 'G')
NAME NAME_CONFIGURATION

$INCLUDE(#incl.net!config/asm286.lit)
$INCLUDE(#incl.net!config/namcfg.mac)

%max_number_of_object ( ##ns.no )
%max_length_for_value ( ##ns.pvl )
%name_server_mc_id (#ns.mc1 , #ns.mc2 , #ns.mc3 , #ns.mc4 , #ns.mc5 , #ns.mc6 )
%name_tsap_id ( #ns.iti, #ns.rti )
%nfs_tsap ( #ns.fst, #ns.fct )
%retry_timeout ( #ns.ret )
%max_retry ( ##ns.nr )
%number_of_irb ( 3 )
%max_responses ( ##ns.rsp )
[
#IF #ns.lo 
%ns_local_only ( y )
#ELSE
%ns_local_only ( n )
#ENDIF
[
#IF ~#rnet.ce
%number_of_buffers ( 6, 5, 5 )
#ENDIF
[
%dl_hardware_type(#ns.dl)
[
%end_name_config

end
#ENDFILE
[   
[       AFACFG.A28
[
#GEN AFACFG.A28 #COND #glob.net & #rnet.srv & (#rnet.gnp = 'G')
NAME    AFA_CONFIGURATION

$INCLUDE(#incl.net!config/asm286.lit)
$INCLUDE(#incl.net!config/afacfg.mac)

%MAX_PUBLIC_DEVS ( ##afa.mdv )
#IF #glob.dos
rem
rem      DEFINE ALL PUBLIC DEVICES
rem
#ELSE
;
;        DEFINE ALL PUBLIC DEVICES
;
#ENDIF
#ASSIGN #1 = 1
#LOOP #1 #REP(pdev)
    #IF #pdev(#1).fd = 'P'
		#IF #pdev(#1).wa = 'E'
%PUBLIC_DEVICE( #pdev(#1).ln , #pdev(#1).dn , PHYSICAL, EIOS )
		#ELSE
%PUBLIC_DEVICE( #pdev(#1).ln , #pdev(#1).dn , PHYSICAL, RMXNET )
	    #ENDIF
    #ENDIF
    #IF #pdev(#1).fd = 'N'
		#IF #pdev(#1).wa = 'E'
%PUBLIC_DEVICE( #pdev(#1).ln , #pdev(#1).dn , NAMED, EIOS )
		#ELSE
%PUBLIC_DEVICE( #pdev(#1).ln , #pdev(#1).dn , NAMED, RMXNET )
	    #ENDIF
    #ENDIF
#ENDLOOP
[
%MAX_PUBLIC_DIRS ( ##afa.mpd )
#IF #glob.dos
rem
rem      DEFINE ALL PUBLIC DIRECTORIES
rem
#ELSE
;
;        DEFINE ALL PUBLIC DIRECTORIES
;
#ENDIF
[
	#ASSIGN #1 = 1
	#LOOP #1 #REP(pdir)
%PUBLIC_DIRECTORY(#pdir(#1).ln , #pdir(#1).an , #pdir(#1).pn )
	#ENDLOOP
	#ASSIGN #1 = 1
	#LOOP #1 #REP(pdir1)
%PUBLIC_DIRECTORY(#pdir1(#1).ln , #pdir1(#1).an , #pdir1(#1).pn )
	#ENDLOOP
	#ASSIGN #1 = 1
	#LOOP #1 #REP(pdir2)
%PUBLIC_DIRECTORY(#pdir2(#1).ln , #pdir2(#1).an , #pdir2(#1).pn )
	#ENDLOOP
	#ASSIGN #1 = 1
	#LOOP #1 #REP(pdir3)
%PUBLIC_DIRECTORY(#pdir3(#1).ln , #pdir3(#1).an , #pdir3(#1).pn )
	#ENDLOOP
[
	#ASSIGN #2 = ( #fs.bvc * #fs.vc ) + 1
%num_binds ( ##2 )
[
%number_afa_tasks ( ##afa.nat )
[
	#IF afa.att
%attribs ( y )
	#ELSE
%attribs ( n )
	#ENDIF
[
	#IF rnet.ce
%comm_engine ( y )
	#ELSE
%comm_engine ( n )
	#ENDIF
#IF #glob.dos
rem
rem      COMMANDS MACROS
rem
#ELSE
;
;        COMMAND MACROS
;
#ENDIF
%logon ( y )
%logoff ( y )
%get_server_attrib ( y )
%create ( y )
%create_and_bind ( y )
%delete ( y )
%bind ( y )
%unbind ( y )
%rename ( y )
%get_file_info ( y )
%set_file_info ( y )
%check_path ( y )
%get_access_rights ( y )
%open ( y )
%read ( y )
%write ( y )
%close ( y )
%seek ( y )
%file_search ( y )
%commit ( y )
%get_path ( y )
[
	#IF afa.dpd
%dynamic_public_dirs ( y )
	#ELSE
%dynamic_public_dirs ( n )
	#ENDIF
	#IF afa.wd
%wildcard_delete ( y )
	#ELSE
%wildcard_delete ( n )
	#ENDIF
	#IF afa.psc
%open_print_file (y)
%close_print_file (y)
%write_print_file (y)
%get_print_queue (y)
	#ELSE
%open_print_file (n)
%close_print_file (n)
%write_print_file (n)
%get_print_queue (n)
	#ENDIF
[
%wildcards (##afa.wfs , ##afa.wti  )
[
	#ASSIGN #1 = 1
	#LOOP #1 #REP(AFAU)
%afa_user( #afau(#1).uss ,
##afau(#1).nrb ,
y,
##afau(#1).edf ,
##afau(#1).nsb ,
##afau(#1).sbs ,
##afau(#1).nbb ,
##afau(#1).bbs ,
##afau(#1).ncb ,
##afau(#1).cbs )
	#ENDLOOP
[
%end_afa_cnfg
end
#ENDFILE
[   
[       SRVCFG.A28
[
#GEN SRVCFG.A28 #COND #glob.net & #rnet.srv & (#rnet.gnp = 'G')
NAME SRV_CONFIGURATION

$INCLUDE(#incl.net!config/asm286.lit)
$INCLUDE(#incl.net!config/srvcfg.mac)

%num_vc ( ##fs.vc )
%num_user_per_vc ( ##fs.uvc )
%num_proc_per_vc ( ##fs.pvc )
%num_bind_per_vc ( ##fs.bvc )
%num_file_open ( ##fs.ofv, ##fs.ofp )
%server_concurrency ( ##fs.sc )
#ASSIGN #1 = 1
	#LOOP #1 #REP(AFAU)
		#IF #afau(#1).uss = 70H
%small_buffers ( ##afau(#1).nsb , ##afau(#1).sbs )
%large_buffers ( ##afau(#1).nbb , ##afau(#1).bbs )
		#ENDIF
	#ENDLOOP
[
%fs_on_comm_engine ( n )
[
    #IF ~#EQU( fs.fsn , 'NONE')
%file_server_name ( #fs.fsn )
	#ENDIF
%end_srv_config
end
#ENDFILE
[   
[       CONCFG.A28
[
#GEN CONCFG.A28 #COND #glob.net & #rnet.con & (#rnet.gnp = 'G')
NAME CON_CONFIGURATION

$INCLUDE(#incl.net!config/asm286.lit)
$INCLUDE(#incl.net!config/concfg.mac)

%internal_transmit_buffers ( ##fc.mrr, ##fc.msc, ##fc.dds )
%alarms ( ##fc.cta, ##fc.sta )    

end
#ENDFILE
[   
[       INTDAT.A38
[
#GEN INTDAT.A38 #COND #glob.net & (#hard.bus = '1')
NAME INTDAT
INT_CODE    SEGMENT ER PUBLIC 
		PUBLIC mip_int_level
mip_int_level	DW #mip1.il
		PUBLIC mip_wakeup_port
mip_wakeup_port	DW #mip1.wp
		PUBLIC mip_clear_int
mip_clear_int	DB 04H
INT_CODE    ENDS
end
#ENDFILE
[   
[       INTDATAT.A38
[
#GEN INTDATAT.A38 #COND #glob.net & ( #hard.bus = '3' )
NAME INTDAT
INT_CODE    SEGMENT ER PUBLIC 
		PUBLIC mip_int_level
mip_int_level	DW #mipat.il
INT_CODE    ENDS
end
#ENDFILE
[   
[       MIPCFG.A28
[
#GEN MIPCFG.A28 #COND #glob.net & (#rnet.gnp = 'G') & #rnet.ce & (rnet.pt | (#hard.bus = '1'))
NAME MIP_CONFIGURATION

$INCLUDE ( #incl.net!config/asm286.lit )
$INCLUDE ( #incl.net!config/mipcfg.mac )

%comm_name ( #mip1.cbn )
%comm_board_station_address_l ( 6 )
%num_external_mailboxes ( ##mip1.nem )
%num_internal_ports ( 10 )
%device_ids ( 1, 0 )
[
#ASSIGN #2 = #mip1.rqo + 048H
%request_queue_addresses ( #mip1.rqo , #mip1.rqb , #2 , #mip1.rqb )
[
%wakeup_port ( #mip1.wp )
%interrupt_level ( #mip1.il )
[
	#ASSIGN #1 = 1
	#LOOP #1 #REP(LYR)
%LAYER( #lyr(#1).li )
	#ENDLOOP
[
	#IF #rnet.pt
%load ( NOLOAD, 0, 0, 0 )
	#ELSE
#IF #mip1.ld = 'L'
%load ( LOCAL, #mip1.dn , #mip1.fn , #mip1.hba )
#ENDIF
#IF #mip1.ld = 'R'
%load ( REMOTE, #mip1.cc , 0, 0 )
#ENDIF
#IF #mip1.ld = 'P'
%load ( PROM, 0, 0, 0 )
#ENDIF
#IF #mip1.ld = 'N'
%load ( NOLOAD, 0, 0, 0 )
#ENDIF
	#ENDIF
[
%boot_address ( #mip1.bao , #mip1.bab )
[
%comm_start_address ( #mip1.cso , #mip1.csb )
[
#IF #nuc.rie
%commengine_error_reporting ( y )
#ELSE
%commengine_error_reporting ( n )
#ENDIF
[
%commengine_delay ( ##mip1.cd )

%end_mip_cnfg

end
#ENDFILE
[   
[       MIP2CFG.A28
[
#GEN MIP2CFG.A28 #COND #glob.net & (#rnet.gnp = 'G') & #rnet.ce & (~rnet.pt & (#hard.bus = '2'))
NAME MIP_CONFIGURATION

$INCLUDE ( #incl.net!config/asm286.lit )
$INCLUDE ( #incl.net!config/mip2cfg.mac )

%comm_name ( #mip2.cbn )
%comm_board_station_address_l ( 6 )
%comm_port_id ( #mip2.pid )
%num_external_mailboxes ( ##mip2.nem )
%num_internal_ports ( 10 )
%device_ids ( 1, 0 )
%comm_response_delay ( ##mip2.rdt )
[
	#ASSIGN #1 = 1
	#LOOP #1 #REP(LYR)
%LAYER( #lyr(#1).li )
	#ENDLOOP
[
#IF #mip2.ld = 'L'
%load ( LOCAL, #mip2.dn , #mip2.fn , ##mip2.cbi )
#ENDIF
#IF #mip2.ld = 'R'
%load ( REMOTE, #mip2.cc , 0, ##mip2.cbi )
#ENDIF
#IF #mip2.ld = 'P'
%load ( PROM, 0, 0, ##mip2.cbi )
#ENDIF
#IF #mip2.ld = 'N'
%load ( NOLOAD, 0, 0, ##mip2.cbi )
#ENDIF
[
#IF #nuc.rie
%commengine_error_reporting ( y )
#ELSE
%commengine_error_reporting ( n )
#ENDIF
[
%commengine_delay ( ##mip2.cd )
%mpb_info ( ##mip2.nsb, ##mip2.sbs, ##mip2.nlb, ##mip2.lbs, ##mip2.qs )

%end_mip_cnfg

end
#ENDFILE
[   
[       MIPATCFG.A28
[
#GEN MIPATCFG.A28 #COND #glob.net & (#rnet.gnp = 'G') & #rnet.ce & ( #hard.bus = '3' )
NAME MIP_CONFIGURATION

$INCLUDE ( #incl.net!config/asm286.lit )
$INCLUDE ( #incl.net!config/mipatcfg.mac )

%comm_name ( #mipat.cbn )
%comm_board_station_address_l(6)
%num_external_mailboxes ( ##mipat.nem )
%num_internal_ports ( 10 )
%device_ids ( 1, 0 )
%wakeup_port ( #mipat.wp )
%interrupt_level ( #mipat.il )
[
	#ASSIGN #1 = 1
	#LOOP #1 #REP(LYR)
%LAYER( #lyr(#1).li )
	#ENDLOOP
[
#IF #mipat.ld = 'L'
%load ( LOCAL, #mipat.dn , #mipat.fn )
#ENDIF
#IF #mipat.ld = 'R'
%load ( REMOTE, #mipat.cc , 0 )
#ENDIF
#IF #mipat.ld = 'P'
%load ( PROM, 0, 0 )
#ENDIF
#IF #mipat.ld = 'N'
%load ( NOLOAD, 0, 0 )
#ENDIF
%boot_address ( #mipat.bao , #mipat.bab )
[
#IF #nuc.rie
%commengine_error_reporting ( y )
#ELSE
%commengine_error_reporting ( n )
#ENDIF
[
%commengine_delay ( ##mipat.cd )

%end_mip_cnfg

end
#ENDFILE
#IF #glob.net & (#rnet.gnp = 'G')
#MESSAGE ...................................................DONE
#ENDIF
[
[
[        ****** .CF files ******
[   
[       NUC1.CF
[   
#MESSAGE Beginning CONTROL Files Generation
#GEN NUC1.CF
[
#glob.out!#glob.pre!NUCDA.OBJ, &
#glob.out!#glob.pre!NTABL.OBJ, &
  #IF #LEN(hard.bip) <> 0
#hard.bip,   &
  #ENDIF
  #IF #rom.syr
#glob.out!#glob.pre!NROMC.OBJ, &
#incl.nuf!NUC2.LIB(NBROM), &
    #IF #LEN(rom.rip) <> 0
#rom.rip,   &
    #ENDIF
    #IF #LEN(rom.pip) <> 0
#rom.pip,   &
    #ENDIF
  #ENDIF
[
#incl.nuf!NPIFB.LIB, &
	#IF #nuc.cs
#incl.nuf!MPIFB.LIB, &
 	#ENDIF
#incl.nuf!NUC2.LIB(NWARMS), &
#incl.nuf!NUC.LIB(NEXSYS), &
#incl.nuf!NUC.LIB, &
#incl.nuf!NUC2.LIB &
OBJECT(#glob.out!#glob.pre!NUC1.LNK) NODEBUG NOTYPE SEGSIZE(STACK(400)) &
 RENAMESEG(CODE32 TO CODE) &
 NOLOAD  NOPUBLICS EXCEPT (RQ_nil_os_ext  , &
  RqNotConfig     , &
  RqNotConfigured , &
  SDM_break_NotConfigured , &
  SDM_ci_NotConfigured , &
  SDM_co_NotConfigured , &
  RQECreateJob_    , &
  RqCreateTask_    , &
  RqDeleteTask_    , &
  RqSuspendTask_   , &
  RqResumeTask_    , &
  RqSleep_         , &
  RqGetTaskTokens_ , &
  RqEndInitTask_   , &
  RqSignalExceptIon_ , &
#IF #nuc.deh <> 'S'
  RQ_DivideByZero    , &
  RQ_Overflow        , &
  RQ_ArrayBounds     , &
  RQ_Illegal_Opcode  , &
  RQ_Emulator_Exception , &
  RQ_NPX_Segment_Overrun , &
  RQ_Segment_Not_Present , &
  RQ_General_Protection , &
  RQ_Npx_Error       , &
  RQ_Check_exception ,&
#ELSE
 #IF #hard.npx
  RQ_Emulator_Exception , &
  RQ_NPX_Segment_Overrun , &
  RQ_Npx_Error       , &
 #ENDIF
#ENDIF
#IF #nuc.nmi <> 'S'
  RQ_NMI_HANDLER     , &
#ENDIF
#IF #rom.syr
  RQ_Rom_Boot     , &
#ENDIF
  RqGetType_       , &
  RqEnableDeletion_ , &
  RqDisableDeletion_ , &
  RqForceDelete_   , &
  RqCatalogObject_ , &
  RqLookupObject_  , &
  RqUncatalogObject_ , &
  RqSetOsExtension_ , &
  RqChangeObjectAccess_ , &
  RqGetObjectAccess_  , &
  RqDeleteJob_     , &
  RqOffspring_     , &
  RqEOffspring_    , &
  RqGetPriority_   , &
  RqSetPriority_   , &
  RqCreateMailbox_ , &
  RqReceiveMessage_ , &
  RqSendMessage_   , &
  RqReceiveData_ , &
  RqSendData_   , &
  RqDeleteMailbox_ , &
  RqCreateSemaphore_ , &
  RqReceiveUnits_  , &
  RqSendUnits_     , &
  RqDeleteSemaphore_ , &
  RqCreateRegion_   , &
  RqSendControl_   , &
  RqReceiveControl_ , &
  RqAcceptControl_ , &
  RqDeleteRegion_  , &
  RqCreateSegment_ , &
  RqDeleteSegment_ , &
  RqGetSize_       , &
  RqSetPoolMin_    , &
  RqGetPoolAttrib_  , &
  RqCreateDescriptor_ , &
  RqDeleteDescriptor_ , &
  RqChangeDescriptor_ , &
  RqGetAddress_    , &
  RqSetInterrupt_  , &
  RqResetInterrupt_ , &
  RqEnterInterrupt , &
  RqExitInterrupt , &
  RqSignalInterrupt , &
  RqWaitInterrupt_ , &
  RqTimedInterrupt_ , &
  RqEnable_        , &
  RqDisable_       , &
  RqGetLevel       , &
  RqCreateExtension_ , &
  RqCreateComposite_  , &
  RqDeleteExtension_  , &
  RqDeleteComposite_  , &
  RqInspectComposite_ , &
  RqAlterComposite_ , &
  RqSetExceptionHandler_ , &
  RqGetExceptionHandler_ , &
#IF #hard.bus = '2'
  RqGetInterconnect_ , &
  RqSetInterconnect_ , &
#ENDIF
#IF (#nuc.cs)
  rqgethostid_, &
  rqattachport_, &
  rqbroadcast_, &
  rqcancel_, &
  rqconnect_, &
  rqcreateport_, &
  rqdeleteport_, &
  rqdetachport_, &
  rqgetportattributes_, &
  rqsend_, &
  rqsendrsvp_, &
  rqsendreply_, &
  rqsendsignal_, &
  rqreceive_, &
  rqreceivereply_, &
  rqreceivesignal_, &
  rqreceivefragment_, &
  rqattachbufferpool_, &
  rqdetachbufferpool_, &
  comminit , &
#ENDIF
  RqCreateBufferPool_, &
  RqDeleteBufferPool_, &
  RqReleaseBuffer_, &
  RqRequestBuffer_ )
#ENDFILE
[   
[       NUCLS.CF
[   
#GEN NUCLS.CF
#glob.out!#glob.pre!NUC1.LNK, &
#IF (#nuc.deh = 'U' ) | (#nuc.nmi = 'U')
 #IF #LEN(nuc.neh) <> 0
  #nuc.neh, &
 #ENDIF
#ENDIF
#glob.out!#glob.pre!NJOBC.OBJ  &
OBJECT(#glob.out!#glob.pre!NUCLS.LNK) NODEBUG NOTYPE &
 NOLOAD SEGSIZE(STACK(1024)) 
#ENDFILE
[   
[       IOS1.CF
[   
#GEN IOS1.CF #COND #glob.bio
[
#glob.out!#glob.pre!ITABL.OBJ, &
#incl.bif!IOOPT1.LIB, &
#incl.bif!IPIFB.LIB, &
	#IF (#glob.net) & (#rnet.con)
#incl.bif!IRMB.LIB (irminx, irmsys), &
    #ENDIF
#incl.bif!IOS.LIB, &
	#IF (#glob.net) & (#rnet.con)
#incl.bif!IRMB.LIB, &
    #ENDIF
#incl.ilf!RMXIFC32.LIB &
OBJECT (#glob.out!#glob.pre!IOS1.LNK) NODEBUG NOTYPE     &
RENAMESEG(CODE to BIOS_CODE, BIOS_CODE32 to BIOS_CODE, RFD_CODE32 to RFD_CODE)&
 NOLOAD NOPUBLICS EXCEPT (rqaiosinittask , &
  RQAPHYSICALATTACHDEVICE_  , & 
  RQCREATEUSER_             , &
  RQINSPECTUSER_            , &
  RQDELETEUSER_             , &
  RQSETDEFAULTUSER_         , &
  RQGETDEFAULTUSER_         , &
  RQAPHYSICALDETACHDEVICE_  , &
  RQACLOSE_                 , &
  RQENCRYPT_                , &
  RQWAITIO_                 , &
  RQAATTACHFILE_            , &
  RQADELETECONNECTION_      , &
  RQAGETCONNECTIONSTATUS_   , &
  RQAGETFILESTATUS_         , &
  RQAGETPATHCOMPONENT_      , &
  RQAOPEN_                  , &
  RQAREAD_                  , &
  RQASPECIAL_               , &
  RQAWRITE_                 , &
    #IF #bios.tf | #glob.hi
  RQSETTIME_                , &
  RQGETTIME_                , &
    #ENDIF
    #IF (#bios.gc = '5') | (#bios.gc = 'C') | (#bios.gc = 'A')
  RQSETGLOBALTIME_          , &
  RQGETGLOBALTIME_          , &
    #ENDIF
[
[   #0 is true iff bios.asc is true or required
[
    #IF (#0) | (~#0 & #bcall.nsc )
  RQAGETEXTENSIONDATA_      , &
  RQASETEXTENSIONDATA_      , &
  RQSETDEFAULTPREFIX_       , &
  RQGETDEFAULTPREFIX_       , &
  RQACHANGEACCESS_          , &
  RQACREATEDIRECTORY_       , &
  RQAGETDIRECTORYENTRY_     , &
  RQARENAMEFILE_            , &
  RQATRUNCATE_              , &
    #ENDIF
    #IF (#0 | (#bcall.nsc | #bcall.ssc))
  RQADELETEFILE_            , &
    #ENDIF
    #IF (#0 | (#bcall.nsc | #bcall.psc))
  RQASEEK_                  , &
  RQAUPDATE_                , &
    #ENDIF
  RQACREATEFILE_    
	#IF (#glob.net) & (#rnet.con)
  ,connext, &
  connregion, &
  filedriverconfigtab, &
  remxfacembox, &
  rem32xfacembox, &
  timertaskprio, &
  bioscommondetachdevice, &
  biosforcedetach  , & 
  biosnamesmatch   , &
  biosgettime      , &
  biosdeleteeiosobj, &
  biosenternkdll   , &
  biosremovenkdll   
	#ENDIF
  )
#ENDFILE
[   
[       TSC.CF
[   
#GEN TSC.CF #COND ( #glob.bio & #bios.tsc )
[
#glob.out!#glob.pre!ITDEV.OBJ, &
  #ASSIGN #1 = 1
  #LOOP #1 #REP(USERD)
     #IF ~#EQU( userd(#1).top , 'NONE')
#userd(#1).top , &
     #ENDIF
  #ENDLOOP
  #ASSIGN #1 = 1
  #LOOP #1 #REP(UDDM)
     #IF #EQU( UDDM(#1).typ , 'T' )
#UDDM(#1).nam , &
     #ENDIF
  #ENDLOOP 
[
[ VT Driver Module
[
     #IF #REP(DVT) > 0
#incl.bif!XDRVT.LIB, &
     #ENDIF
[ 
[    MBI 
[ 
    #IF #hard.bus = '1'
#incl.bif!XDRMB1.LIB, &
    #ENDIF
[
[    MBII
[
    #IF #hard.bus = '2'
#incl.bif!XDRMB2.LIB, &
#incl.ilf!BPS3C.LIB, &
    #ENDIF
[
[   PC Bus
[
    #IF #hard.bus = '3'
#incl.bif!XDR120.LIB, &
    #ENDIF
[
#incl.bif!XCMDRV.LIB(XTSIF), &
#incl.bif!XCMDRV.LIB(XTSIO), &
#incl.bif!XCMDRV.LIB, &
#incl.ilf!RMXIFC32.LIB &
RENAMESEG(CODE32 TO TSC_CODE, TSC_CODE32 TO TSC_CODE, &
CODE TO TSC_CODE, DATA TO TSC_DATA) &
OBJECT (#glob.out!#glob.pre!TSC.LNK)  NODEBUG NOTYPE SEGSIZE(STACK(0))   &
 NOLOAD NOPUBLICS EXCEPT( TSCINITIO, &
  TSCFINISHIO, &
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(I8274) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(I8274(#1).dev )
#ADD_TO_LIST #9
#ADD_TO_LIST #I8274(#1).uin
    #ASSIGN #1 = #1 + 1
#ENDFOREVER
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(I2530) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(I2530(#1).dev )
#ADD_TO_LIST #9
#ADD_TO_LIST #I2530(#1).uin
    #ASSIGN #1 = #1 + 1
#ENDFOREVER
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(I544) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(I544(#1).dev )
#ADD_TO_LIST #9
#ADD_TO_LIST #I544(#1).uin
    #ASSIGN #1 = #1 + 1
#ENDFOREVER
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(I8251) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(I8251(#1).dev )
#ADD_TO_LIST #9
#ADD_TO_LIST #I8251(#1).uin
    #ASSIGN #1 = #1 + 1
#ENDFOREVER
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(I534) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(I534(#1).dev )
#ADD_TO_LIST #9
#ADD_TO_LIST #I534(#1).uin
    #ASSIGN #1 = #1 + 1
#ENDFOREVER
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(I8848) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(I8848(#1).dev )
#ADD_TO_LIST #9
#ADD_TO_LIST #I8848(#1).UIN
    #ASSIGN #1 = #1 + 1
#ENDFOREVER
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(I410) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(I410(#1).dev )
#ADD_TO_LIST #9
#ADD_TO_LIST #I410(#1).uin
    #ASSIGN #1 = #1 + 1
#ENDFOREVER
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(I279) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(I279(#1).dev )
#ADD_TO_LIST #9
#ADD_TO_LIST #I279(#1).unn
    #ASSIGN #1 = #1 + 1
#ENDFOREVER
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(IVT) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(IVT(#1).dev )
#ADD_TO_LIST #9
#ADD_TO_LIST #IVT(#1).uin
    #ASSIGN #1 = #1 + 1
#ENDFOREVER
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(I120S) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(I120S(#1).dev )
#ADD_TO_LIST #9
#ADD_TO_LIST #I120S(#1).uin
    #ASSIGN #1 = #1 + 1
#ENDFOREVER
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(I120H) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(I120H(#1).dev )
#ADD_TO_LIST #9
#ADD_TO_LIST #I120H(#1).uin
    #ASSIGN #1 = #1 + 1
#ENDFOREVER
#ASSIGN #1 = 1
#FOREVER
	#IF #REP(I120C) < #1
		#EXIT
	#ENDIF
	#ASSIGN #9 = #get_dev_num(I120C(#1).dev )
#ADD_TO_LIST #9
#ADD_TO_LIST #I120C(#1).uin
    #ASSIGN #1 = #1 + 1
#ENDFOREVER
#USER_TERM_PUBS
  #ASSIGN #1 = 1
#LOOP #1 #REP(USERD)
    #IF ~#EQU( USERD(#1).N01 , 'NONE' )
  #ADD_TO_LIST #USERD(#1).N01
    #ENDIF
    #IF ~#EQU( USERD(#1).N02 , 'NONE' )
  #ADD_TO_LIST #USERD(#1).N02
    #ENDIF
    #IF ~#EQU( USERD(#1).N03 , 'NONE' )
  #ADD_TO_LIST #USERD(#1).N03
    #ENDIF
    #IF ~#EQU( USERD(#1).N04 , 'NONE' )
  #ADD_TO_LIST #USERD(#1).N04
    #ENDIF
    #IF ~#EQU( USERD(#1).N05 , 'NONE' )
  #ADD_TO_LIST #USERD(#1).N05
    #ENDIF
    #IF ~#EQU( USERD(#1).N06 , 'NONE' )
  #ADD_TO_LIST #USERD(#1).N06
    #ENDIF
    #IF ~#EQU( USERD(#1).N07 , 'NONE' )
  #ADD_TO_LIST #USERD(#1).N07
    #ENDIF
    #IF ~#EQU( USERD(#1).N08 , 'NONE' )
  #ADD_TO_LIST #USERD(#1).N08
    #ENDIF
    #IF ~#EQU( USERD(#1).N09 , 'NONE' )
  #ADD_TO_LIST #USERD(#1).N09
    #ENDIF
    #IF ~#EQU( USERD(#1).N10 , 'NONE' )
  #ADD_TO_LIST #USERD(#1).N10
    #ENDIF
    #IF ~#EQU( USERD(#1).N11 , 'NONE' )
  #ADD_TO_LIST #USERD(#1).N11
    #ENDIF
    #IF ~#EQU( USERD(#1).N12 , 'NONE' )
  #ADD_TO_LIST #USERD(#1).N12
    #ENDIF
    #IF ~#EQU( USERD(#1).N13 , 'NONE' )
  #ADD_TO_LIST #USERD(#1).N13
    #ENDIF
    #IF ~#EQU( USERD(#1).N14 , 'NONE' )
  #ADD_TO_LIST #USERD(#1).N14
    #ENDIF
    #IF ~#EQU( USERD(#1).N15 , 'NONE' )
  #ADD_TO_LIST #USERD(#1).N15
    #ENDIF
    #IF ~#EQU( USERD(#1).N16 , 'NONE' )
  #ADD_TO_LIST #USERD(#1).N16
    #ENDIF
    #IF ~#EQU( USERD(#1).N17 , 'NONE' )
  #ADD_TO_LIST #USERD(#1).N17
    #ENDIF
    #IF ~#EQU( USERD(#1).N18 , 'NONE' )
  #ADD_TO_LIST #USERD(#1).N18
    #ENDIF
#ENDLOOP
TSCQUEUEIO, &
  TSCCANCELIO)
#ENDFILE
[   
[       IOS2.CF
[   
#GEN IOS2.CF #COND #glob.bio
[
#glob.out!#glob.pre!IOS1.LNK, &
	#IF #bios.tsc
#glob.out!#glob.pre!TSC.LNK, &
	#ENDIF
#glob.out!#glob.pre!ICDEV.OBJ, &
  #ASSIGN #1 = 1
  #LOOP #1 #REP(USERD)
     #IF ~#EQU( userd(#1).opn , 'NONE')
#userd(#1).opn , &
     #ENDIF
  #ENDLOOP
  #ASSIGN #1 = 1
  #LOOP #1 #REP(UDDM)
     #IF #EQU( UDDM(#1).typ , 'C' )
#UDDM(#1).nam , &
     #ENDIF
  #ENDLOOP 
[ 
[    MBI 
[ 
    #IF #hard.bus = '1'
#incl.bif!XDRMB1.LIB, &
    #ENDIF
[
[    MBII
[
    #IF #hard.bus = '2'
#incl.bif!XDRMB2.LIB, &
    #ENDIF
[
[   PC Bus
[
    #IF #hard.bus = '3'
#incl.bif!XDR120.LIB, &
    #ENDIF
[
#incl.bif!XCMDRV.LIB, &
#incl.ilf!BPS3C.LIB, &
#incl.ilf!RMXIFC32.LIB &
RENAMESEG(DRV_CODE to CODE, CODE32 to CODE, TSC_DATA TO DATA) &
OBJECT (#glob.out!#glob.pre!IOS2.LNK)  NODEBUG NOTYPE SEGSIZE(STACK(0))   &
 NOLOAD NOPUBLICS EXCEPT (rqaiosinittask , &
  RQAPHYSICALATTACHDEVICE_  , & 
  RQCREATEUSER_             , &
  RQINSPECTUSER_            , &
  RQDELETEUSER_             , &
  RQSETDEFAULTUSER_         , &
  RQGETDEFAULTUSER_         , &
  RQAPHYSICALDETACHDEVICE_  , &
  RQACLOSE_                 , &
  RQENCRYPT_                , &
  RQWAITIO_                 , &
  RQAATTACHFILE_            , &
  RQADELETECONNECTION_      , &
  RQAGETCONNECTIONSTATUS_   , &
  RQAGETFILESTATUS_         , &
  RQAGETPATHCOMPONENT_      , &
  RQAOPEN_                  , &
  RQAREAD_                  , &
  RQASPECIAL_               , &
  RQAWRITE_                 , &
    #IF #bios.tf | #glob.hi
  RQSETTIME_                , &
  RQGETTIME_                , &
    #ENDIF
    #IF (#bios.gc = '5') | (#bios.gc = 'C') | (#bios.gc = 'A')
  RQSETGLOBALTIME_          , &
  RQGETGLOBALTIME_          , &
    #ENDIF
    #IF (#0 ) | (~#0 & #bcall.nsc )
  RQAGETEXTENSIONDATA_      , &
  RQASETEXTENSIONDATA_      , &
  RQSETDEFAULTPREFIX_       , &
  RQGETDEFAULTPREFIX_       , &
  RQACHANGEACCESS_          , &
  RQACREATEDIRECTORY_       , &
  RQAGETDIRECTORYENTRY_     , &
  RQARENAMEFILE_            , &
  RQATRUNCATE_              , &
    #ENDIF
    #IF (#0 | (#bcall.nsc | #bcall.ssc))
  RQADELETEFILE_            , &
    #ENDIF
    #IF (#0 | (#bcall.nsc | #bcall.psc))
  RQASEEK_                  , &
  RQAUPDATE_                , &
    #ENDIF
  RQACREATEFILE_    
	#IF (#glob.net) & (#rnet.con)
  ,connext, &
  connregion, &
  filedriverconfigtab, &
  remxfacembox, &
  rem32xfacembox, &
  timertaskprio, &
  bioscommondetachdevice, &
  biosforcedetach  , & 
  biosnamesmatch   , &
  biosgettime      , &
  biosdeleteeiosobj, &
  biosenternkdll   , &
  biosremovenkdll   
	#ENDIF
  )
#ENDFILE
[   
[       IRM.CF
[   
#GEN IRM.CF #COND ((#glob.bio) & (#glob.net) & (#rnet.con))
[
#glob.out!#glob.pre!IRDEV.OBJ, &
#incl.bif!IRM.LIB (irmini), &
#incl.bif!IRM.LIB, &
#incl.ilf!RMXIFL.LIB &
OBJECT (#glob.out!#glob.pre!IRM.LNK) NODEBUG NOTYPE RENAMESEG(CODE to RFD_CODE)     &
 NOLOAD NOPUBLICS EXCEPT (REMINIT, &
  REMIOTASKSPRIO, &
  REMUPDATE, &
  REMATTACHFILE, &
  REMCREATE, &
  REMNONNULLCHANGEACCESS, &
  REMNONNULLDELETE, &
  REMREAD, &
  REMWRITEORTRUNC, &
  REMSEEK, &
  REMSPECIAL, &
  REMATTACHDEVICE, &
  REMDETACHDEVICE, &
  REMOPEN, &
  REMCLOSE, &
  REMGETCONNST, &
  REMGETFILEST, &
  REMGETEXTDATA, &
  REMSETEXTDATA, &
  REMNULLCHANGEACCESS, &
  REMNULLDELETE, &
  REMRENAME, &
  REMEXPNULLREQ, &
  REMEXPNULLREQ, &
  REMWRITEORTRUNC, &
  REMGETPATHCOMP, &
  REMDETACHFILE)    
#ENDFILE
[   
[   
[       IOS.CF
[   
#GEN IOS.CF #COND #glob.bio
[
#glob.out!#glob.pre!IOS2.LNK &
	#IF (#glob.net) & (#rnet.con)
,#glob.out!#glob.pre!IRM.LNK &
	#ENDIF
OBJECT (#glob.out!#glob.pre!IOS.LNK)  NODEBUG NOTYPE SEGSIZE(STACK(0))   &
 NOLOAD NOPUBLICS EXCEPT (rqaiosinittask , &
  RQAPHYSICALATTACHDEVICE_  , & 
  RQCREATEUSER_             , &
  RQINSPECTUSER_            , &
  RQDELETEUSER_             , &
  RQSETDEFAULTUSER_         , &
  RQGETDEFAULTUSER_         , &
  RQAPHYSICALDETACHDEVICE_  , &
  RQACLOSE_                 , &
  RQENCRYPT_                , &
  RQWAITIO_                 , &
  RQAATTACHFILE_            , &
  RQADELETECONNECTION_      , &
  RQAGETCONNECTIONSTATUS_   , &
  RQAGETFILESTATUS_         , &
  RQAGETPATHCOMPONENT_      , &
  RQAOPEN_                  , &
  RQAREAD_                  , &
  RQASPECIAL_               , &
  RQAWRITE_                 , &
    #IF #bios.tf | #glob.hi
  RQSETTIME_                , &
  RQGETTIME_                , &
    #ENDIF
    #IF (#bios.gc = '5') | (#bios.gc = 'C') | (#bios.gc = 'A')
  RQSETGLOBALTIME_          , &
  RQGETGLOBALTIME_          , &
    #ENDIF
    #IF (#0 ) | (~#0 & #bcall.nsc )
  RQAGETEXTENSIONDATA_      , &
  RQASETEXTENSIONDATA_      , &
  RQSETDEFAULTPREFIX_       , &
  RQGETDEFAULTPREFIX_       , &
  RQACHANGEACCESS_          , &
  RQACREATEDIRECTORY_       , &
  RQAGETDIRECTORYENTRY_     , &
  RQARENAMEFILE_            , &
  RQATRUNCATE_              , &
    #ENDIF
    #IF (#0 | (#bcall.nsc | #bcall.ssc))
  RQADELETEFILE_            , &
    #ENDIF
    #IF (#0 | (#bcall.nsc | #bcall.psc))
  RQASEEK_                  , &
  RQAUPDATE_                , &
    #ENDIF
  RQACREATEFILE_    )
#ENDFILE
[   
[   
[       EIOS1.CF
[   
#GEN EIOS1.CF #COND #glob.eio
[
#glob.out!#glob.pre!ETABL.OBJ,  &
#glob.out!#glob.pre!EDEVC.OBJ,  &
#incl.eif!EPIFB.LIB, &
#incl.eif!EIOS.LIB, &
#incl.ilf!RMXIFC32.LIB &
OBJECT( #glob.out!#glob.pre!EIOS1.LNK) NOLOAD NODEBUG SEGSIZE(STACK(0)) &
RENAMESEG(CODE to EIOS_CODE, EIOS_CODE32 to EIOS_CODE) &
 NOPUBLICS EXCEPT(rqeiosinittask , &
 rqeiosiniterror      , &
 RQCreateIoJob_       , &
 RQStartIoJob_        , &
 RQAbortIoJob_        , &
 RQLogicalAttachDevice_ , &
 RQExitIoJob_         , &
 RQGetLogicalDeviceStatus_ , &
 RQHybridDetachDevice_, &
 RQLogicalDetachDevice_ , &
 RQSAttachFile_       , &
 RQSCatalogConnection_, &
 RQSChangeAccess_     , &
 RQSClose_            , &
 RQSCreateDirectory_  , &
 RQSCreateFile_       , &
 RQSDeleteConnection_ , &
 RQSDeleteFile_       , &
 RQSGetConnectionStatus_ , &
 RQSGetFileStatus_    , &
 RQSLookupConnection_ , &
 RQSOpen_             , &
 RQSReadMove_         , &
 RQSRenameFile_       , &
 RQSSeek_             , &
 RQSSpecial_          , &
 RQSTruncateFile_     , &
 RQSUncatalogConnection_, &
 RQSWriteMove_     , &
 RQGetUserIDs_     , &
 RQVerifyUser_     , &
 RQSGetDirectoryEntry_ , &
 RQSGetPathComponent_ )
#ENDFILE
[       EIOS.CF
[   
#GEN EIOS.CF #COND #glob.eio
[
#glob.out!#glob.pre!EIOS1.LNK, &
#glob.out!#glob.pre!EJOBC.OBJ   &
OBJECT( #glob.out!#glob.pre!EIOS.LNK) NOLOAD NODEBUG SEGSIZE(STACK(0))
[
#ENDFILE
[   
[       LOADR.CF
[   
#GEN LOADR.CF #COND #glob.al
[
#glob.out!#glob.pre!LTABL.OBJ,  &
#glob.out!#glob.pre!LCONF.OBJ,  &
#incl.alf!LPIFB.LIB, &
#incl.alf!LOADER.LIB,  &
#incl.ilf!RMXIFC32.LIB &
OBJECT (#glob.out!#glob.pre!LOADR.LNK)  NOLOAD NODEBUG SEGSIZE(STACK(0))  &
RENAMESEG(CODE to LOADER_CODE, LOADER_CODE32 to LOADER_CODE) &
 NOPUBLICS EXCEPT (rqaload_,      &
  rqaloadiojob_, &
  rqsloadiojob_,  &
  rqsoverlay_ )
#ENDFILE
[   
[       HI.CF
[   
#GEN HI.CF #COND #glob.hi
[
#incl.hif!HI.LIB(HBEGIN), &
#glob.out!#glob.pre!HTABL.OBJ, &
#glob.out!#glob.pre!HCONF.OBJ, &
#incl.hif!HPIFB.LIB, &
#incl.hif!HI.LIB, &
#incl.hif!HUTIL.LIB, &
#incl.ilf!RMXIFC32.LIB &
OBJECT( #glob.out!#glob.pre!HI.LNK) NOLOAD NODEBUG SEGSIZE(STACK(0)) &
RENAMESEG(CODE to HI_CODE, HI_CODE32 to HI_CODE, &
          hdsptb1_code32 to hdsptb1_code, hdsptb2_code32 to hdsptb2_code, &
          hdsptb3_code32 to hdsptb3_code) &
 NOPUBLICS EXCEPT(rqhiinittask,         &
  rqhiiniterror,        &
  rqcbackupchar_,    &
  rqccreatecommandconnection_,    &
  rqcdeletecommandconnection_,    &
  rqcformatexception_,    &
  rqcgetchar_,    &
  rqcgetcommandname_,    &
  rqcgetinputconnection_,    &
  rqcgetinputpathname_,    &
  rqcgetinputpathnamenowc_,    &
  rqcgetoutputconnection_,    &
  rqcgetoutputpathname_,    &
  rqcgetparameter_,    &
  rqcsendcommand_,    &
  rqcsendcoresponse_,    &
  rqcsendeoresponse_,    &
  rqcsetcontrolc_,    &
  rqcsetparsebuffer_ )
#ENDFILE
[   
[       CLI.CF
[   
#GEN CLI.CF #COND #glob.hi
[
[    first IF Intel cli then IF User cli.
[
#IF #EQU(hi.rip , 'INTELCLI' )
[
#incl.hif!HCLI.LIB(HCLI), &
#IF #LEN(hi.uxc) <> 0
#hi.uxc,   &
#ENDIF
#incl.hif!HCLI.LIB,       &
#incl.hif!HI16.LIB,       &
#incl.hif!HUTIL16.LIB,    &
#incl.dtf!PLM286.LIB,     &
#incl.ilf!RMXIFC.LIB      &
RENAMESEG(HI_CODE TO CLI_CODE, HI_DATA TO CLI_DATA, &
CODE TO CLI_CODE,DATA to CLI_DATA)                  &
OBJECT(#glob.out!#glob.pre!CLI.LNK) NOLOAD NODEBUG           &
#IF #hi.ss < 2400H
   #ASSIGN #2 = 2400H
#ELSE
   #ASSIGN #2 = #hi.ss
#ENDIF
SEGSIZE(STACK(#2)) NOPUBLICS EXCEPT(hcliinit)
[
[    user cli
#ELSE
#hi.rip    &
RENAMESEG(CODE TO CLI_CODE,DATA to CLI_DATA)  &
OBJECT(#glob.out!#glob.pre!CLI.LNK) NOLOAD NODEBUG     &
SEGSIZE(STACK(#hi.ss ))
#ENDIF
[
#ENDFILE
[   
[       UDI.CF
[   
#GEN UDI.CF #COND #glob.udi
[
#glob.out!#glob.pre!UTABL.OBJ,   &
#incl.udf!UPIFB.LIB,   &
#incl.udf!UDI.LIB,     &
#incl.ilf!RMXIFC32.LIB &
OBJECT( #glob.out!#glob.pre!UDI.LNK ) NODEBUG NOTYPE SEGSIZE(STACK(0)) &
RENAMESEG(CODE to UDI_CODE, UDI_CODE32 to UDI_CODE) &
NOLOAD NOPUBLICS EXCEPT(DQAllocate_ ,  &
    DQAttach_ ,                        &
    DQChangeAccess_ ,                  &
    DQChangeExtension_ ,               &
    DQClose_ ,                         &
    DQCreate_ ,                        &
    DQDecodeException_ ,               &
    DQDecodeTime_ ,                    &
    DQDelete_ ,                        &
    DQDetach_ ,                        &
    DQExit_ ,                          &
    DQExecute_ ,                       &
    DQFileInfo_ ,                      &
    DQFree_ ,                          &
    DQGetArgument_ ,                   &
    DQGetConnectionStatus_ ,           &
    DQGetExceptionHandler_ ,           &
    DQGetMSize_ ,                      &
    DQGetSize_ ,                       &
    DQGetSystemID_ ,                   &
    DQGetTime_ ,                       &
    DQMAllocate_ ,                     &
    DQMFree_ ,                         &
    DQOpen_ ,                          &
    DQOverlay_ ,                       &
    DQRead_ ,                          &
    DQRename_ ,                        &
    DQReserveIOMemory_ ,               &
    DQSeek_ ,                          &
    DQSpecial_ ,                       &
    DQSwitchBuffer_ ,                  &
    DQTrapCC_ ,                        &
    DQTrapException_ ,                 &
    DQTruncate_ ,                      &
    DQWrite_ )
#ENDFILE
[
[      SDMIII.CF
[   
#GEN SDMIII.CF #COND #glob.SDM
[
#glob.out!#glob.pre!sdmcfg.obj, &
#glob.out!#glob.pre!config.obj, &
#incl.mnf!sdmIII.lib (*) &
OBJECT (#glob.out!#glob.pre!SDMIII.lnk)
RENAMESEG(CODE32 TO SDMIII_CODE32, DATA TO SDMIII_DATA)
PRINT  (#glob.out!#glob.pre!SDMIII.mp1)
NAME   (SDMIII)
NODEBUG
NOLOAD
#ENDFILE
[
[       CC.CF
[   
#GEN CC.CF #COND #glob.SDM
[
#glob.out!#glob.pre!cccfg.obj,
#incl.mnf!cc.lib (*),
#incl.mnf!ccdrv.lib
NAME (CC)
NODEBUG
NOLOAD
PRINT  (#glob.out!#glob.pre!cc.mp1)
OBJECT (#glob.out!#glob.pre!cc.lnk)
RENAMESEG (
           CCTABLE_CODE32 to CC_CODE32
          ,CCTABLE_DATA to CC_DATA
[#IF #hard.bus = '2'
[          ,CC8751_CODE32 to CC_CODE32
[          ,CC8751_DATA to CC_DATA
[#ENDIF
          ,CCNULL_CODE32 to CC_CODE32
          ,CCNULL_DATA to CC_DATA
          ,CCNOT_CODE32 to CC_CODE32
          ,CCNOT_DATA to CC_DATA
	#IF hard.bus <> '3'
#IF (#sdm.A54 <> 'N') | (#sdm.B54 <> 'N') | (#sdm.A30 <> 'N') | (#sdm.B30 <> 'N') 
          ,CC354_CODE32 to CC_CODE32
          ,CC354_DATA to CC_DATA
#ENDIF
#IF #sdm.D51 <> 'N'
          ,CC8251_CODE32 to CC_CODE32
          ,CC8251_DATA to CC_DATA
#ENDIF
#IF (#sdm.A74 <> 'N') | (#sdm.B74 <> 'N')
          ,CC8274_CODE32 to CC_CODE32
          ,CC8274_DATA to CC_DATA
#ENDIF
#IF #sdm.G79 <> 'N'
          ,CC279_CODE32 to CC_CODE32
          ,CC279_DATA to CC_DATA
#ENDIF
#IF #sdm.rci <> 'N'
          ,CCRCI_CODE32 to CC_CODE32
          ,CCRCI_DATA to CC_DATA
#ENDIF
	#ELSE
#IF #sdmat.SER <> 'N'
          ,CC120SP_CODE32 to CC_CODE32
          ,CC120SP_DATA to CC_DATA
#ENDIF
#IF #sdmat.CON <> 'N'
          ,CC120CON_CODE32 to CC_CODE32
          ,CC120CON_DATA to CC_DATA
#ENDIF
	#ENDIF
          ,CODE32 to CC_CODE32
           )
#ENDFILE
[
[       M3_CORE.CF
[   
#GEN M3_CORE.CF #COND #glob.SDM
[
#incl.mnf!m3_core.lib (*), &
#incl.mnf!mcico.lib (*) &
OBJECT (#glob.out!#glob.pre!m3_core.lnk)
PRINT  (#glob.out!#glob.pre!m3_core.mp1)
NAME   (m3_core)
NODEBUG
NOLOAD
#ENDFILE
[
[       M3.CF
[   
#GEN M3.CF #COND #glob.SDM
[
#glob.out!#glob.pre!m3_core.lnk, &
#glob.out!#glob.pre!sdmIII.lnk, &
#incl.mnf!m3.lib, &
#incl.mnf!m3_cmds.lib, &
#incl.mnf!m3_mbII.lib, &
#glob.out!#glob.pre!cc.lnk &
OBJECT (#glob.out!#glob.pre!m3.lnk)
PRINT  (#glob.out!#glob.pre!m3.mp1)
NAME   (m3)
SEGSIZE(STACK(2000H))
NODEBUG
NOLOAD
#ENDFILE
[   
[       SDB.CF
[   
#GEN SDB.CF #COND #glob.sdb
[
#glob.out!#glob.pre!SDBCN.OBJ,   &
#incl.sdf!SDB.LIB,   &
#incl.ilf!RMXIFC32.LIB &
OBJECT( #glob.out!#glob.pre!SDB.LNK) SS(STACK(0)) NODEBUG NOLOAD     &
RENAMESEG(CODE32 to CODE) NOPUBLICS EXCEPT(rqsdbinittask )
#ENDFILE
[   
[       DLJ.CF
[   
#GEN DLJ.CF #COND ((#sysj.dl) & (#glob.bio) & (#hard.bus = '2'))
[
#glob.out!#glob.pre!DLJCF.OBJ,   &
#sysj.opn!DL.JOB, &
#incl.ilf!BPS2L.LIB, &
#incl.ilf!RMXIFL.LIB  &
OBJECT( #glob.out!#glob.pre!DLJ.LNK) NOLOAD NODEBUG  &
 NOPUBLICS EXCEPT (rqdlinittask, rqdldata)
#ENDFILE
[   
[       ATCS279.CF
[   
#GEN ATCS279.CF #COND ((#sysj.atc) & (#glob.bio) & (#hard.bus = '2'))
[
#glob.out!#glob.pre!ATCS279.OBJ,   &
#sysj.opn!ATCS279.JOB, &
#incl.ilf!RMXIFC.LIB  &
OBJECT( #glob.out!#glob.pre!ATCS279.LNK) NOLOAD NODEBUG  &
 NOPUBLICS EXCEPT (atcsinittask, atcsdata)
#ENDFILE
[   
[       ATCS450.CF
[   
#GEN ATCS450.CF #COND ((#sysj.a50) & (#hard.bus = '2'))
[
#glob.out!#glob.pre!ATCS450.OBJ,   &
#sysj.opn!ATCS450.JOB &
OBJECT( #glob.out!#glob.pre!ATCS450.LNK) NOLOAD NODEBUG  &
 NOPUBLICS EXCEPT (atcs450inittask, atcs450data)
#ENDFILE
[   
[       BSJ.CF
[   
#GEN BSJ.CF #COND ((#sysj.bs) & (#glob.eio) & (#hard.bus = '2'))
[
#glob.out!#glob.pre!BSJCF.OBJ,   &
#sysj.opn!BSERV.JOB, &
#incl.ilf!RMXIFC.LIB  &
OBJECT( #glob.out!#glob.pre!BSJ.LNK) NOLOAD NODEBUG  &
 NOPUBLICS EXCEPT (bs_main, bs_data)
#ENDFILE
[   
[       FPI.CF
[   
#GEN FPI.CF #COND ((#sysj.fpi) & (#glob.bio) & (#hard.bus = '2'))
[
#glob.out!#glob.pre!FPI.OBJ,   &
#sysj.opn!FPI.JOB &
OBJECT( #glob.out!#glob.pre!FPI.LNK) NOLOAD NODEBUG  &
 NOPUBLICS EXCEPT (fpiinittask, fpidata)
#ENDFILE
[
[    *** xxxx.CF   (BLD386)
[   
#GEN #glob.def!.CF
[
     #glob.out!#glob.pre!NUCLS.LNK  &
#IF #nuc.stk <> 'S'
   , #incl.nuf!NTRSTK.LNK  &
#ENDIF
#IF #glob.SDM
   , #incl.mnf!DASM.LNK		&
   , #glob.out!#glob.pre!M3.LNK     &
#ENDIF
#IF #glob.sdb
   , #glob.out!#glob.pre!SDB.LNK     &
#ENDIF
#IF #glob.bio 
   , #glob.out!#glob.pre!IOS.LNK     &
#ENDIF
#IF #glob.eio
   , #glob.out!#glob.pre!EIOS.LNK    &
#ENDIF
#IF #glob.al
   , #glob.out!#glob.pre!LOADR.LNK  &
#ENDIF
#IF #glob.hi
   , #glob.out!#glob.pre!HI.LNK      &
   , #glob.out!#glob.pre!CLI.LNK     &
#ENDIF
#IF #glob.udi
   , #glob.out!#glob.pre!UDI.LNK     &
#ENDIF
#IF (#sysj.pci)
   , #sysj.opn!PCI.JOB    &
#ENDIF
#IF (#sysj.dl) & (#glob.bio) & (#hard.bus = '2')
   , #glob.out!#glob.pre!DLJ.LNK    &
#ENDIF
#IF (#sysj.atc) & (#glob.bio) & (#hard.bus = '2')
   , #glob.out!#glob.pre!ATCS279.LNK    &
#ENDIF
#IF (#sysj.a50) & (#hard.bus = '2')
   , #glob.out!#glob.pre!ATCS450.LNK    &
#ENDIF
#IF #glob.net
	#IF #hard.bus = '1' & #rnet.ce
   , #glob.out!#glob.pre!XNETINT.LNK  &
    #ENDIF
	#IF #hard.bus = '3' & #rnet.ce
   , #glob.out!#glob.pre!XATNETINT.LNK  &
	#ENDIF
   , #glob.out!RMXNET.LNK   &
#ENDIF
#IF (#sysj.tp4)
   , #sysj.opn!#itp4j.ofn   &
#ENDIF
#IF (#sysj.ina) & ~(#glob.net)
  , #inaj.opn    &
#ENDIF
#IF (#sysj.vts) & (#glob.bio)
  , #vtsj.opn!VTSRV.JOB    &
#ENDIF
#IF (#sysj.bs) & (#glob.eio) & (#hard.bus = '2')
   , #glob.out!#glob.pre!BSJ.LNK    &
#ENDIF
#IF (#sysj.fpi) & (#glob.bio) & (#hard.bus = '2')
   , #glob.out!#glob.pre!FPI.LNK    &
#ENDIF
#ASSIGN #1 = 1
#LOOP #1 #REP(USERM)
   , #userm(#1).nam  &
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(USRM1)
   , #usrm1(#1).nam  &
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(USRM2)
   , #usrm2(#1).nam  &
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(USRM3)
   , #usrm3(#1).nam  &
#ENDLOOP
#ASSIGN #1 = 1
#LOOP #1 #REP(USRM4)
   , #usrm4(#1).nam  &
#ENDLOOP
#IF #rom.syr
    OBJECT (#gen.rof ) NODEBUG NOTYPE  &
#ELSE
    OBJECT (#gen.raf ) NODEBUG NOTYPE  &
#ENDIF
    BUILDFILE(#glob.def!.BLD)
#ENDFILE
[
#GEN UA.CF #COND #glob.net  & (#rnet.gnp = 'G')
#incl.net!lnk/ua.lib(ua), &
#glob.out!#glob.pre!UACFG.OBJ , &
#incl.net!lnk/ua.lib  &
object (#glob.out!#glob.pre!UA.LNK) NODEBUG &
NOLOAD NOTYPE NOPUBLICS EXCEPT(init_ua)
#ENDFILE
[
#GEN AFACFG.CF #COND #glob.net & #rnet.srv & (#rnet.gnp = 'G')
#glob.out!#glob.pre!afacfg.obj &
object (#glob.out!#glob.pre!afacfg.lnk) NODEBUG NOLOAD 
#ENDFILE
[
#GEN AFA.CF #COND #glob.net & #rnet.srv & (#rnet.gnp = 'G')
#incl.net!lnk/afa.lib(afa) , &
#glob.out!#glob.pre!afacfg.lnk, &
#incl.net!lnk/afa.lib &
object (#glob.out!#glob.pre!afa.lnk) NODEBUG &
NOLOAD NOTYPE NOPUBLICS EXCEPT(init_afa) &
rn(afa_jump_code to afa_code) 
#ENDFILE
[
#GEN XINT.CF #COND #glob.net & (hard.bus <> '2') & (#rnet.gnp = 'G') & #rnet.ce
#IF hard.bus = '1'
    #incl.net!lnk/xnetint.obj, &
    #glob.out!#glob.pre!intdat.obj, &
	#incl.ilf!rmxifc32.lib &
	object(#glob.out!#glob.pre!xnetint.lnk)  NODEBUG NOTYPE &
	RENAMESEG(code to int_code) &
	NOLOAD NOPUBLICS EXCEPT (net_int_handler)
#ENDIF
#IF hard.bus = '3'
	#incl.net!lnk/xatnetint.obj, &
	#glob.out!#glob.pre!intdatat.obj, &
	#incl.ilf!rmxifc32.lib &
	object(#glob.out!#glob.pre!xatnetint.lnk)  NODEBUG NOTYPE &
	RENAMESEG(code to int_code) &
	NOLOAD NOPUBLICS EXCEPT (rmxnet_at_int_handler)
#ENDIF
#ENDFILE
[
#GEN MIP.CF #COND #glob.net & (#rnet.gnp = 'G') & #rnet.ce
	#IF rnet.pt | (#hard.bus = '1')
#incl.net!lib/cqproc.lib(mip_entry_proc), &
		#IF rnet.pt
#incl.net!lnk/ptmip.lib(mip), &
		#ELSE
#incl.net!lnk/mip.lib(mip), &
		#ENDIF
#glob.out!#glob.pre!mipcfg.obj, &
#incl.net!lib/cqproc.lib, &
		#IF rnet.pt
#incl.net!lnk/ptmip.lib &
		#ELSE
#incl.net!lnk/mip.lib &
		#ENDIF
	#ENDIF
[
	#IF ~rnet.pt & (#hard.bus = '2')
#incl.net!lib/mb2cqprc.lib(mip_entry_proc), &
#incl.net!lnk/mb2mip.lib(mip), &
#glob.out!#glob.pre!mip2cfg.obj, &
#incl.net!lib/mb2cqprc.lib, &
#incl.net!lnk/mb2mip.lib, &
#incl.ilf!bps2l.lib &
	#ENDIF
	#IF #hard.bus = '3'
#incl.net!lib/cqproc.lib(mip_entry_proc), &
#incl.net!lnk/mipat.lib(mip), &
#glob.out!#glob.pre!mipatcfg.obj, &
#incl.net!lib/cqproc.lib, &
#incl.net!lnk/mipat.lib &
	#ENDIF
[
object (#glob.out!#glob.pre!mip.lnk) &
NOLOAD NOPUBLICS EXCEPT (init_552, mip_init, start_delay_time, &
                         mipstarttask, &
#IF rnet.pt | (#hard.bus <> '2')
                         comm_host_id, &
#ELSE
                         boot_address, &
#ENDIF
                         mipcqcommrb, mipdwordtoptr, mipptrtodword, &
                         mipcqcreateuser, &
                         net_stat, &
                         mipentryproc, commusertype, error_print) NODEBUG
#IF rnet.pt
rn (code to base_code, data to base_data)
#ENDIF
#ENDFILE
[
#GEN AFAUA.CF #COND #glob.net & (#rnet.gnp = 'G')
       #glob.out!#glob.pre!ua.lnk, &
#IF #rnet.srv
       #glob.out!#glob.pre!afa.lnk, &
#ENDIF
#IF #rnet.ce
       #glob.out!#glob.pre!mip.lnk, &
#ENDIF
       #incl.net!lib/uaifl.lib , &
       #incl.net!lib/cql.lib, &
       #incl.dtf!plm286.lib, &
       #incl.ilf!rmxifl.lib &
object (#glob.out!#glob.pre!afaua.lnk) noload &
#IF #rnet.ce
nopublics except(init_ua, &
	#IF #rnet.srv
                 init_afa, &
	#ENDIF
                 init_552, mip_init, start_delay_time, &
                 mipstarttask, &
	#IF rnet.pt | (#hard.bus <> '2')
                 comm_host_id, &
	#ENDIF
                 mipcqcommrb, mipdwordtoptr, mipptrtodword, &
                 mipcqcreateuser, &
                 net_stat, &
                 mipentryproc, commusertype, error_print) nodebug

#ELSE
#IF #rnet.srv
nopublics except(init_ua, &
                 init_afa) nodebug
#ELSE
nopublics except(init_ua) nodebug
#ENDIF
#ENDIF
#IF rnet.pt
rn (comm_code to base_code, comm_data to base_data)
#ENDIF
#ENDFILE
[
#GEN NAME.CF #COND #glob.net & (#rnet.gnp = 'G') & (~#rnet.ce | rnet.pt | (#hard.bus <> '2'))
#IF rnet.ce
#incl.net!lnk/name.lib(initiator) , &
#ELSE
#incl.net!lnk/cpname.lib(initiator) , &
#ENDIF
 	    #glob.out!#glob.pre!namcfg.obj, &
#IF (#hard.bus = '2')
		#glob.out!#glob.pre!hst2cfg.obj, &
#ELSE
		#glob.out!#glob.pre!hstcfg.obj, &
#ENDIF
		#incl.net!lnk/hostid.o28, &
#IF rnet.ce
	    #incl.net!lnk/name.lib nodebug &
#ELSE
	    #incl.net!lnk/cpname.lib nodebug &
#ENDIF
object (#glob.out!#glob.pre!name.lnk) noload
#ENDFILE
[
#GEN PROTO.CF #COND glob.net & rnet.srv & (#rnet.gnp = 'G')
#incl.net!lnk/proto.lib(super) , &
	   #glob.out!#glob.pre!srvcfg.obj, &
#IF ~rnet.pt & (#hard.bus = '2') & rnet.ce
       #glob.out!#glob.pre!hst2cfg.obj, &
#ENDIF
       #incl.net!lnk/proto.lib  nodebug &
object (#glob.out!#glob.pre!proto.lnk) noload
#ENDFILE
[
#GEN HOST.CF #COND #glob.net & (~rnet.pt & (#hard.bus = '2')) & ~#rnet.srv & (#rnet.gnp = 'G') & #rnet.ce
#glob.out!#glob.pre!hst2cfg.obj object (#glob.out!#glob.pre!host.lnk) &
noload nopublics except ( ns_comm_engine, ina_network, subnet_number, &
                    err_report, bus_version, mb2_slot_id ) nodebug 
#ENDFILE
[
#GEN SS.CF #COND (glob.net & (#rnet.gnp = 'G')) & (#rnet.pt | (hard.bus <> '2') | #rnet.srv | ~#rnet.ce)
	#IF #rnet.srv
		#IF rnet.pt | (#hard.bus <> '2') | ~#rnet.ce
#glob.out!#glob.pre!proto.lnk, &
		#ELSE
#glob.out!#glob.pre!proto.lnk &
		#ENDIF
	#ENDIF
[
#IF rnet.pt | (#hard.bus <> '2') | ~#rnet.ce
#glob.out!#glob.pre!name.lnk &
#ENDIF
object (#glob.out!#glob.pre!ss.lnk)  nodebug &
noload nopublics except ( ns_comm_engine, &
		#IF rnet.srv
                          init_server, &
		#ENDIF
[
		#IF rnet.pt | (#hard.bus <> '2') | ~#rnet.ce
                          init_name_server, &
		#ENDIF
					      ina_network, err_report, bus_version, &
					      mb2_slot_id, subnet_number ) 
#ENDFILE
[
#GEN CONSMR.CF #COND glob.net & rnet.con & (#rnet.gnp = 'G')
#incl.net!lnk/consmr.lib(icin, itmn, irmn),  &
        #glob.out!#glob.pre!concfg.obj,  &
        #incl.net!lnk/consmr.lib  & 
object (#glob.out!#glob.pre!consmr.lnk) &
noload nopublics except (init_consumer) nodebug
#ENDFILE
[
#GEN RMXNET.CF #COND glob.net & (#rnet.gnp = 'G')
#IF rnet.ce
#incl.net!lnk/rmxnet.lib(rmxnet), &
#ELSE
#incl.net!lnk/rmxnet.lib(cpenter), &
#ENDIF
#IF ~rnet.pt & (#hard.bus = '2') & ~#rnet.srv & #rnet.ce
       #glob.out!#glob.pre!host.lnk, &
#ELSE
       #glob.out!#glob.pre!ss.lnk, &
#ENDIF
#IF #rnet.con
       #glob.out!#glob.pre!consmr.lnk, &
#ENDIF
       #glob.out!#glob.pre!afaua.lnk, &
#IF rnet.ce
       #incl.net!lnk/rceinit.lib(i_commengine), &
       #incl.net!lnk/apxhst.lib(addptr), &
       #incl.net!lnk/aimhst.lib, &
       #incl.net!lnk/apxhst.lib, &
       #incl.net!lnk/aimhst.lib, &
       #incl.net!lnk/rceinit.lib(init_mdm_mod), &
       #incl.net!lnk/rmxnet.lib, &
#ELSE
       #incl.net!lnk/rcpinit.lib, &
       #incl.net!lnk/rmxnet.lib, &
[ If (386/12 or 486/12) and NULL2 :
	#IF ((hard.if = 1) | (hard.if = 6)) & (rnet.nl = '1')
       #incl.net!lnk/r38612n.lnk, &
	#ENDIF
[ If (386/12 or 486/12) and ES-IS :
	#IF ((hard.if = 1) | (hard.if = 6)) & (rnet.nl = '3')
       #incl.net!lnk/r38612e.lnk, &
	#ENDIF
[ If HIINT (486/133se) and NULL2 :
	#IF (hard.if = 7) & (rnet.nl = '1')
       #incl.net!lnk/r486133n.lnk, &
	#ENDIF
[ If HIINT (486/133se) and ES-IS :
	#IF (hard.if = 7) & (rnet.nl = '3')
       #incl.net!lnk/r486133e.lnk, &
	#ENDIF
[ If MIX560 and NULL2 :
	#IF (hard.if = 8) & (rnet.nl = '1')
       #incl.net!lnk/rMIX560n.lnk, &
	#ENDIF
[ If MIX560 and ES-IS :
	#IF (hard.if = 8) & (rnet.nl = '3')
       #incl.net!lnk/rMIX560e.lnk, &
	#ENDIF
[ If ZAPHOD (386/sx) and NULL2 :
	#IF (hard.if = 0FDH) & (rnet.nl = '1')
       #incl.net!lnk/r386SXn.lnk, &
	#ENDIF
[ If ZAPHOD (386/sx) and ES-IS :
	#IF (hard.if = 0FDH) & (rnet.nl = '3')
       #incl.net!lnk/r386SXe.lnk, &
	#ENDIF
       #incl.net!lnk/subnet32.lib, &
       #incl.net!lnk/lci.lib, &
       #incl.net!lnk/gate.lnk, &
       #incl.net!lnk/cpcomm.lib, &
       #incl.net!lnk/apxhst.lib, &
#ENDIF
[
       #incl.dtf!plm286.lib, &
[
#IF #rnet.ce
       #incl.ilf!rmxifl.lib &
object(#glob.out!rmxnet.lnk) NODEBUG NOLOAD &
nopublics except(rmxnet_begin, cqerrorcode)
#ELSE
       #incl.ilf!rmxifl.lib, &
       #incl.ilf!cico.lb2 &
object(#glob.out!rmxnet.lnk) NODEBUG NOTYPE NOLOAD &
RENAMESEG(base_data to data, code32 to net_code32) &
nopublics except(rmxnet_cp_begin, cqerrorcode)
#ENDIF
#ENDFILE
#MESSAGE ...................................................DONE
[
[   
[    *** xxxx.CSD
[   
[   
#GEN #glob.csd
#MESSAGE Beginning SUBMIT File Generation
#IF #glob.sy3
RUN
#ENDIF
#IF #glob.dos
rem
rem    Generate the Nucleus
rem
#ELSE
;
;    Generate the Nucleus
;
#ENDIF
[   
ASM386 #glob.out!#glob.pre!NTABL.A38
ASM386 #glob.out!#glob.pre!NUCDA.A38
ASM386 #glob.out!#glob.pre!NJOBC.A38
  #IF #rom.syr
ASM386 #glob.out!#glob.pre!NROMC.A38
  #ENDIF
BND386 CF(#glob.out!#glob.pre!NUC1.CF)
BND386 CF(#glob.out!#glob.pre!NUCLS.CF)
#IF #glob.bio
	#IF #glob.dos
rem
rem     Generate the BIOS
rem
	#ELSE
;
;     Generate the BIOS
;
	#ENDIF
ASM386 #glob.out!#glob.pre!ITABL.A38
ASM386 #glob.out!#glob.pre!ICDEV.A38
	#IF #bios.tsc
ASM386 #glob.out!#glob.pre!ITDEV.A38
	#ENDIF
	#IF (#glob.net) & (#rnet.con)
ASM286 #glob.out!#glob.pre!IRDEV.A28
	#ENDIF
BND386 CF(#glob.out!#glob.pre!IOS1.CF)
	#IF #bios.tsc
BND386 CF(#glob.out!#glob.pre!TSC.CF)
	#ENDIF
BND386 CF(#glob.out!#glob.pre!IOS2.CF)
	#IF (#glob.net) & (#rnet.con)
BND286 CF(#glob.out!#glob.pre!IRM.CF)
	#ENDIF
BND386 CF(#glob.out!#glob.pre!IOS.CF)
#ENDIF
#IF #glob.eio
	#IF #glob.dos
rem
rem    Generate the EIOS
rem
	#ELSE
;
;    Generate the EIOS
;
	#ENDIF
ASM386 #glob.out!#glob.pre!ETABL.A38
ASM386 #glob.out!#glob.pre!EDEVC.A38
ASM386 #glob.out!#glob.pre!EJOBC.A38
BND386 CF(#glob.out!#glob.pre!EIOS1.CF)
BND386 CF(#glob.out!#glob.pre!EIOS.CF)
#ENDIF
#IF #glob.al
	#IF #glob.dos
rem
rem    Generate the Application Loader
rem
	#ELSE
;
;    Generate the Application Loader
;
	#ENDIF
ASM386 #glob.out!#glob.pre!LTABL.A38
ASM386 #glob.out!#glob.pre!LCONF.A38 
BND386 CF(#glob.out!#glob.pre!LOADR.CF)
#ENDIF
#IF #glob.hi
	#IF #glob.dos
rem
rem    Generate the Human Interface
rem
	#ELSE
;
;    Generate the Human Interface
;
	#ENDIF
ASM386 #glob.out!#glob.pre!HTABL.A38 
ASM386 #glob.out!#glob.pre!HCONF.A38 
BND386 CF(#glob.out!#glob.pre!HI.CF)
	#IF #glob.dos
rem
rem    Generate the CLI
rem
	#ELSE
;
;    Generate the CLI
;
	#ENDIF
BND286 CF(#glob.out!#glob.pre!CLI.CF)
#ENDIF
#IF #glob.net & (hard.bus <> '2') & #rnet.ce
	#IF glob.dos
REM
	#ELSE
;
	#ENDIF
	#IF hard.bus = '1'
ASM386 #glob.out!#glob.pre!INTDAT.A38
	#ENDIF
[
	#IF hard.bus = '3'
ASM386 #glob.out!#glob.pre!INTDATAT.A38
	#ENDIF
[
BND386  CF(#glob.out!#glob.pre!XINT.CF)
#ENDIF
#IF #glob.udi
	#IF #glob.dos
rem
rem    Generate UDI
rem
	#ELSE
;
;    Generate UDI
;
	#ENDIF
[
ASM386 #glob.out!#glob.pre!UTABL.A38
BND386 CF(#glob.out!#glob.pre!UDI.CF)
#ENDIF
[
#IF #glob.SDM
	#IF #glob.dos
rem
rem    Generate iSDM III
rem
	#ELSE
;
;    Generate iSDM III
;
	#ENDIF
ASM386 #glob.out!#glob.pre!CONFIG.A38
ASM386 #glob.out!#glob.pre!SDMCFG.A38
BND386 CF(#glob.out!#glob.pre!SDMIII.CF)
ASM386 #glob.out!#glob.pre!CCCFG.A38
BND386 CF(#glob.out!#glob.pre!CC.CF)
BND386 CF(#glob.out!#glob.pre!M3_CORE.CF)
BND386 CF(#glob.out!#glob.pre!M3.CF)
#ENDIF
[
#IF #glob.sdb
	#IF #glob.dos
rem
rem    Generate the SDB
rem
	#ELSE
;
;    Generate the SDB
;
	#ENDIF
ASM386 #glob.out!#glob.pre!SDBCN.A38
BND386 CF(#glob.out!#glob.pre!SDB.CF)
#ENDIF
[
#IF (#sysj.dl) & (#glob.bio) & (#hard.bus = '2')
	#IF #glob.dos
rem
rem    Generate the Multibus II Downloader
rem
	#ELSE
;
;    Generate the Multibus II Downloader
;
	#ENDIF
ASM286 #glob.out!#glob.pre!DLJCF.A28
BND286 CF(#glob.out!#glob.pre!DLJ.CF)
#ENDIF
[
#IF (#sysj.atc) & (#glob.bio) & (#hard.bus = '2')
	#IF #glob.dos
rem
rem    Generate the ATCS/279/ARC Server
rem
	#ELSE
;
;    Generate the ATCS/279/ARC Server
;
	#ENDIF
ASM286 #glob.out!#glob.pre!ATCS279.A28
BND286 CF(#glob.out!#glob.pre!ATCS279.CF)
#ENDIF
[
#IF (#sysj.a50) & (#hard.bus = '2')
	#IF #glob.dos
rem
rem    Generate the ATCS/450 Server
rem
	#ELSE
;
;    Generate the ATCS/450 Server
;
	#ENDIF
ASM286 #glob.out!#glob.pre!ATCS450.A28
BND386 CF(#glob.out!#glob.pre!ATCS450.CF)
#ENDIF
[
#IF (#sysj.bs) & (#glob.eio) & (#hard.bus = '2')
	#IF #glob.dos
rem
rem    Generate the Multibus II BootServer
rem
	#ELSE
;
;    Generate the Multibus II BootServer
;
	#ENDIF
ASM286 #glob.out!#glob.pre!BSJCF.A28
BND286 CF(#glob.out!#glob.pre!BSJ.CF)
#ENDIF
[
#IF (#sysj.fpi) & (#glob.bio) & (#hard.bus = '2')
	#IF #glob.dos
rem
rem    Generate the FPI Server
rem
	#ELSE
;
;    Generate the FPI Server
;
	#ENDIF
ASM386 #glob.out!#glob.pre!FPI.A38
BND386 CF(#glob.out!#glob.pre!FPI.CF)
#ENDIF
[
#IF #glob.net & (#rnet.gnp = 'G')
	#IF #glob.dos
rem
rem    Generate iRMX-NET
rem
	#ELSE
;
;    Generate iRMX-NET
;
	#ENDIF
submit #glob.out!RMXNET
#ENDIF
#IF #glob.net & (#rnet.gnp = 'P')
copy #incl.net!lnk/RMXNET.LNK over #glob.out!RMXNET.LNK
#ENDIF
[
#IF #glob.dos
rem
rem    Build the application system
rem
#ELSE
;
;    Build the application system
;
#ENDIF
BLD386 CF(#glob.def!.CF)
[
	#IF #gen.rmb & (hard.bus = '1')
		#IF #glob.net
			#IF (mip1.ld = 'R') | (mip1.ld = 'L')
XLATE #gen.raf OVER #gen.rbf
			#ENDIF
			#IF (mip1.ld = 'N')
XLATE #gen.raf OVER #gen.rbf N
			#ENDIF
		#ELSE
XLATE #gen.raf OVER #gen.rbf
		#ENDIF
	#ENDIF
[
#IF #glob.sy3
EXIT
#ENDIF
#ENDFILE
[
[		Generate RMXNET.CSD
[
#GEN #glob.out!RMXNET.CSD #COND #glob.net & (#rnet.gnp = 'G')
[
ASM286 #glob.out!#glob.pre!UACFG.A28
[
	#IF rnet.pt | (hard.bus <> '2') | ~#rnet.ce
ASM286 #glob.out!#glob.pre!NAMCFG.A28
	#ENDIF
[
	#IF #rnet.srv
ASM286 #glob.out!#glob.pre!SRVCFG.A28
ASM286 #glob.out!#glob.pre!AFACFG.A28
	#ENDIF
[
	#IF rnet.pt | (#hard.bus <> '2')
ASM286 #glob.out!#glob.pre!HSTCFG.A28
	#ELSE
ASM286 #glob.out!#glob.pre!HST2CFG.A28
	#ENDIF
[
	#IF rnet.ce
		#IF rnet.pt | (hard.bus = '1')
ASM286 #glob.out!#glob.pre!MIPCFG.A28
		#ENDIF
[
		#IF ~rnet.pt & (hard.bus = '2')
ASM286 #glob.out!#glob.pre!MIP2CFG.A28
		#ENDIF
[
		#IF hard.bus = '3'
ASM286 #glob.out!#glob.pre!MIPATCFG.A28
		#ENDIF
	#ENDIF
[
	#IF rnet.con
ASM286 #glob.out!#glob.pre!CONCFG.A28
	#ENDIF
[
	#IF glob.dos
REM
REM		Bind User Administration
REM
	#ELSE
;
;   Bind User Administration
;
	#ENDIF
[
BND286 CF(#glob.out!#glob.pre!UA.CF)
[
	#IF #rnet.srv
#IF glob.dos
REM
REM		Bind AFA
REM
#ELSE
;
;   	Bind AFA
;
#ENDIF
[
BND286 CF(#glob.out!#glob.pre!AFACFG.CF)
	#ENDIF
[
	#IF #rnet.srv
BND286 CF(#glob.out!#glob.pre!AFA.CF)
	#ENDIF
[
	#IF rnet.ce
		#IF glob.dos
REM
REM	   Bind MIP
REM
		#ELSE
;
;	   Bind MIP
;
		#ENDIF
[
BND286  CF(#glob.out!#glob.pre!MIP.CF)
[
[
	#ENDIF
	#IF glob.dos
REM
REM   Combine User Administration, AFA, and MIP (if applicable)
REM
	#ELSE
;
;   Combine User Administration, AFA, and MIP (if applicable)
;
	#ENDIF
[
BND286 CF(#glob.out!#glob.pre!AFAUA.CF)
[
[
	#IF rnet.pt | (#hard.bus <> '2') | ~#rnet.ce
#IF glob.dos
REM
REM   Bind Name Server
REM
#ELSE
;
;   Bind Name Server
;
#ENDIF
[
BND286  CF(#glob.out!#glob.pre!NAME.CF)
	#ENDIF
[
	#IF rnet.srv
#IF glob.dos
REM
REM   Bind File Server
REM
#ELSE
;
;   Bind File Server
;
#ENDIF
[
BND286 CF(#glob.out!#glob.pre!PROTO.CF)
	#ENDIF
[
#IF ~rnet.pt & (#hard.bus = '2') & ~#rnet.srv & #rnet.ce
	#IF #glob.dos
REM
REM   Bind Host Configuration Module
REM
	#ELSE
;
;   Bind Host Configuration Module
;
	#ENDIF
BND286 CF( #glob.out!#glob.pre!HOST.CF)
#ELSE
[
	#IF glob.dos
REM
REM   Combine Name Server and File Server
REM
	#ELSE
;
;   Combine Name Server and File Server
;
	#ENDIF
[
BND286  CF(#glob.out!#glob.pre!SS.CF)
[
#ENDIF
[
	#IF rnet.con
#IF glob.dos
REM
REM   Bind File Consumer
REM
#ELSE
;
;   Bind File Consumer
;
#ENDIF
[
BND286  CF(#glob.out!#glob.pre!CONSMR.CF)
	#ENDIF
[
delete #glob.out!rmxnet.lnk
[
#IF glob.dos
REM
REM   Combine all modules into the iRMX-NET Job
REM
	#ELSE
;
;   Combine all modules into the iRMX-NET Job
;
	#ENDIF
[
	#IF rnet.ce
BND286 CF(#glob.out!#glob.pre!RMXNET.CF)
	#ELSE
BND386 CF(#glob.out!#glob.pre!RMXNET.CF)
	#ENDIF
[
#ENDFILE
#MESSAGE ...................................................DONE
[
[ *** xxxx.BLD
[
#GEN #glob.def!.bld
#MESSAGE Beginning BUILD File Generation
-- 
#ASSIGN #1 = 1
#LOOP #1 #REP(comnt)
-- #comnt(#1).nam
#ENDLOOP
-- 
system_bld;
[
	createseg
	cc_120_seg_1 (symbol = s120consoledatat),
		#IF #glob.sdm
    cc_120_seg_2 (symbol = s120videodatat),
		#ELSE
    cc_120_seg_2 (symbol = s120videodatat)
		#ENDIF
	#IF #glob.SDM
    shadow_idt_seg  (symbol = shadow_sel),
    mi_alias_segment  (symbol = MI_alias_slot),
    mi_alias_segment2 (symbol = MI_alias_slot2),
    sdm3_alias_segment  (symbol = sdm_alias_1),
    sdm3_alias_segment2 (symbol = sdm_alias_2),
    sdm3_alias_segment3 (symbol = sdm_alias_3)
	#ENDIF
	;
segment
    nucdat.code(dpl=0), nucdat.data(dpl=0),
    nucdat.jobdat(dpl=0),
    nucdat.stack ( no ed, dpl=0 ),
    nucdat.entry_code(dpl=0), nucdat.escape_ss( no ed, dpl=0),
#IF #rom.syr
        #IF hard.bus = '3'
    nucdat.rstrt(base=0ffff0H , dpl=0),
        #ELSE
    nucdat.rstrt(base=0fffffff0H , dpl=0),
        #ENDIF
#ASSIGN #1 = #rom.ria
#IF (#1 <= 0FFFFFC00H) & (#1 >= 0FFFF0000H)
#ASSIGN #1 = #rom.ria & 0FFFF0000H
#ENDIF
    nucdat.code_rom(base= #1 , dpl=0),
#ENDIF
#IF #nuc.stk <> 'S'
    ntrstk.stk_ovfw(dpl=0), ntrstk.se_stack(no ed, dpl=0),
#ENDIF
#IF #glob.sdb
    sdbcnf.code(dpl=0), sdbcnf.data(dpl=0),
    sdbcnf.newstack(limit=1625, no ed, dpl=0),
#ENDIF
#IF #glob.bio
    bios_code(dpl=0), bios_data(dpl=0),
    itable.code(dpl=0), itable.data(dpl=0),
    itable.tsc_code(dpl=0),
#ENDIF
#IF #glob.eio
    eios_code(dpl=0), eios_data(dpl=0),
#ENDIF
#IF #glob.al
    loader_code(dpl=0), loader_data(dpl=0),
#ENDIF
#IF #glob.hi
    hi_code(dpl=0), hi_data(dpl=0),    hdsptb1_code(dpl=0),
    hdsptb2_code(dpl=0),
    hdsptb3_code(dpl=0),
    cli_code(dpl=0), cli_data(limit=0, dpl=0),
#ENDIF
#IF #glob.udi
    udi_code(dpl=0), udi_data(dpl=0),
#ENDIF
#IF #glob.SDM
    shadow_idt_seg       (no ed, limit = 135, use16),
    MI_alias_segment       (no ed, limit = 3, use16),
    MI_alias_segment2      (no ed, limit = 3, use16),
    sdm3_alias_segment     (no ed, limit = 3, use16),
    sdm3_alias_segment2    (no ed, limit = 3, use16),
    sdm3_alias_segment3    (no ed, limit = 3, use16),
    sdm_dasm.sdm_dasm_code (dpl = 0),
    sdm_dasm.sdm_dasm_data (dpl = 0),
    sdm_dasm.dasm_code     (dpl = 0),
    sdm_dasm.dasm_data     (dpl = 0),
    sdm_dasm.asm_sup_code  (dpl = 0),
    sdm_dasm.asm_sup_data  (dpl = 0),
    sdm_dasm.print_code    (dpl = 0),
    sdm_dasm.print_data    (dpl = 0),
    sdm_dasm.code          (dpl = 0),
    m3.sdmIII_code32       (dpl = 0),
    m3.sdmIII_data         (dpl = 0),
    m3.sdmIII_npx_code     (dpl = 0),
    m3.miii_code32         (dpl = 0),
    m3.miii_data           (dpl = 0),
    m3.cc_code32           (dpl = 0),
    m3.cc_data             (dpl = 0),
    M3.STACK               (no ed, use16),
#ENDIF
#IF #hard.bus = '3'
	cc_120_seg_1 (base = 0400h, limit = 01fh, no ed),
    cc_120_seg_2 (base = 0B0000h, limit = 0f9fh, no ed),
#ELSE
	cc_120_seg_1 (limit = 01fh, no ed),
    cc_120_seg_2 (limit = 01fh, no ed),
#ENDIF
    *segments(dpl=0);
[
memory
[
#IF #REP(MEMS) = 0
    ( reserve = (0..0FFFFFFFFh));
#ELSE
    #IF #rom.syr
        #ASSIGN #2 = (#rom.nsg - #nuc.nge) * 10H + 100H
        #ASSIGN #3 = #mems(1).syl + #2 - 1
    #ELSE
        #ASSIGN #3 = #mems(1).syl - 1
    #ENDIF
    [
    ( reserve = (0..#3
    [
    #ASSIGN #1 = 1
    #LOOP #1 (#REP(MEMS) - 1)
       #ASSIGN #2 = #mems(#1).syh + 1
       #ASSIGN #3 = #mems(#1+1).syl - 1
       [
       #IF #3 > #2
                ,#2..#3
       #ENDIF
       [                
       [
    #ENDLOOP
    #IF #mems(#1).syh < 0FFFFFFFFH
    #ASSIGN #2 = #mems(#1).syh + 1
                ,#2..0FFFFFFFFH));
    #ELSE
                 ));
    #ENDIF
#ENDIF
[
gate
    Gate_CreateJob      (entry = RQECreateJob_, dpl=0, wc=0),
    Gate_CreateTask     (entry = RqCreateTask_, dpl=0, wc=0),
    Gate_DeleteTask     (entry = RqDeleteTask_, dpl=0, wc=0),
    Gate_SuspendTask    (entry = RqSuspendTask_, dpl=0, wc=0),
    Gate_ResumeTask     (entry = RqResumeTask_, dpl=0, wc=0),
    Gate_Sleep          (entry = RqSleep_, dpl=0, wc=0),
    Gate_GetTaskTokens    (entry = RqGetTaskTokens_, dpl=0, wc=0),
    Gate_EndInitTask    (entry = RqEndInitTask_, dpl=0, wc=0),
    Gate_SignalException    (entry = RqSignalException_, dpl=0, wc=0),
    GATE_AcceptControl     (entry = RqAcceptControl_, dpl=0, wc=0),
    GATE_AlterComposite (entry = RqAlterComposite_, dpl=0, wc=0),
    GATE_CatalogObject     (entry = RqCatalogObject_, dpl=0, wc=0),
    GATE_ChangeDescriptor     (entry = RqChangeDescriptor_, dpl=0, wc=0),
    GATE_ChangeObjectAccess (entry = RqChangeObjectAccess_, dpl=0, wc=0),
    GATE_CreateExtension     (entry = RqCreateExtension_, dpl=0, wc=0),
    GATE_CreateComposite     (entry = RqCreateComposite_, dpl=0, wc=0),
    GATE_CreateDescriptor     (entry = RqCreateDescriptor_, dpl=0, wc=0),
    GATE_CreateMailbox     (entry = RqCreateMailbox_, dpl=0, wc=0),
    GATE_ReceiveMessage (entry = RqReceiveMESSAGE_, dpl=0, wc=0),
    GATE_SendMessage     (entry = RqSendMESSAGE_, dpl=0, wc=0),
    GATE_ReceiveData     (entry = RqReceiveData_, dpl=0, wc=0),
    GATE_SendData        (entry = RqSendData_, dpl=0, wc=0),
    GATE_CreateRegion     (entry = RqCreateRegion_, dpl=0, wc=0),
    GATE_SendControl     (entry = RqSendControl_, dpl=0, wc=0),
    GATE_CreateSegment     (entry = RqCreateSegment_, dpl=0, wc=0),
    GATE_CreateSemaphore     (entry = RqCreateSemaphore_, dpl=0, wc=0),
    GATE_ReceiveUnits     (entry = RqReceiveUnits_, dpl=0, wc=0),
    GATE_SendUnits         (entry = RqSendUnits_, dpl=0, wc=0),
    GATE_DeleteComposite     (entry = RqDeleteComposite_, dpl=0, wc=0),
    GATE_DeleteDescriptor     (entry = RqDeleteDescriptor_, dpl=0, wc=0),
    GATE_DeleteExtension     (entry = RqDeleteExtension_, dpl=0, wc=0),
    GATE_DeleteJob         (entry = RqDeleteJob_, dpl=0, wc=0),
    GATE_DeleteMailbox     (entry = RqDeleteMailbox_, dpl=0, wc=0),
    GATE_DeleteRegion     (entry = RqDeleteRegion_, dpl=0, wc=0),
    GATE_DeleteSegment     (entry = RqDeleteSegment_, dpl=0, wc=0),
    GATE_DeleteSemaphore     (entry = RqDeleteSemaphore_, dpl=0, wc=0),
    GATE_Disable         (entry = RqDisable_, dpl=0, wc=0),
    GATE_DisableDeletion     (entry = RqDisableDeletion_, dpl=0, wc=0),
    GATE_Enable         (entry = RqEnable_, dpl=0, wc=0),
    GATE_EnableDeletion (entry = RqEnableDeletion_, dpl=0, wc=0),
    GATE_EnterInterrupt (entry = RqEnterInterrupt, dpl=0, wc=0),
    GATE_ExitInterrupt     (entry = RqExitInterrupt, dpl=0, wc=0),
    GATE_ForceDelete     (entry = RqForceDelete_, dpl=0, wc=0),
    GATE_GetAddress     (entry = RqGetAddress_, dpl=0, wc=0),
    GATE_GetExceptionHandler     (entry = RqGetExceptionHandler_, dpl=0, wc=0),
    GATE_GetLevel         (entry = RqGetLevel, dpl=0, wc=0),
    GATE_GetObjectAccess     (entry = RqGetObjectAccess_, dpl=0, wc=0),
    GATE_GetPoolAttrib     (entry = RqGetPoolAttrib_, dpl=0, wc=0),
    GATE_GetPriority     (entry = RqGetPriority_, dpl=0, wc=0),
    GATE_GetSize         (entry = RqGetSize_, dpl=0, wc=0),
    GATE_GetType         (entry = RqGetType_, dpl=0, wc=0),
    GATE_InspectComposite     (entry = RqInspectComposite_, dpl=0, wc=0),
    GATE_LookupObject     (entry = RqLookupObject_, dpl=0, wc=0),
    GATE_Offspring         (entry = RqOffspring_, dpl=0, wc=0),
    GATE_EOffspring     (entry = RqeOffspring_, dpl=0, wc=0),
    GATE_ReceiveControl (entry = RqReceiveControl_, dpl=0, wc=0),
    GATE_ResetInterrupt (entry = RqResetInterrupt_, dpl=0, wc=0),
    GATE_SetExceptionHandler     (entry = RqSetExceptionHandler_, dpl=0, wc=0),
    GATE_SetInterrupt     (entry = RqSetInterrupt_, dpl=0, wc=0),
    GATE_SetOsExtension (entry = RqSetOsExtension_, dpl=0, wc=0),
    GATE_SetPoolMin     (entry = RqSetPoolMin_, dpl=0, wc=0),
    GATE_SetPriority     (entry = RqSetPriority_, dpl=0, wc=0),
    GATE_SignalInterrupt     (entry = RqSignalInterrupt, dpl=0, wc=0),
    GATE_WaitInterrupt     (entry = RqWaitInterrupt_, dpl=0, wc=0),
    GATE_TimedInterrupt (entry = RqTimedInterrupt_, dpl=0, wc=0),
    GATE_UncatalogObject     (entry = RqUncatalogObject_, dpl=0, wc=0),
#IF #glob.bio
    Gate_CreateUser        (entry = RQCREATEUSER_,    dpl=0, wc=0),
    Gate_APhysicalAttachDevice    (entry = RQAPHYSICALATTACHDEVICE_, dpl=0, wc=0),
    GATE_AAttachFile    (entry = RQAATTACHFILE_, dpl=0, wc=0),
    GATE_AClose         (entry = RQACLOSE_, dpl=0, wc=0),
    GATE_ACreateFile    (entry = RQACREATEFILE_, dpl=0, wc=0),
    GATE_ADeleteConnection  (entry = RQADELETECONNECTION_, dpl=0, wc=0),
    GATE_AGetConnectionStatus   (entry = RQAGETCONNECTIONSTATUS_, dpl=0, wc=0),
    GATE_AGetFileStatus     (entry = RQAGETFILESTATUS_, dpl=0, wc=0),
    GATE_AGetPathComponent  (entry = RQAGETPATHCOMPONENT_, dpl=0, wc=0),
    GATE_AOpen          (entry = RQAOPEN_, dpl=0, wc=0),
    GATE_APhysicalDetachDevice   (entry = RQAPHYSICALDETACHDEVICE_, dpl=0, wc=0),
    GATE_ARead          (entry = RQAREAD_, dpl=0, wc=0),
    GATE_AWrite         (entry = RQAWRITE_, dpl=0, wc=0),
    GATE_DeleteUser     (entry = RQDELETEUSER_, dpl=0, wc=0),
    GATE_GetDefaultUser (entry = RQGETDEFAULTUSER_, dpl=0, wc=0),
    GATE_InspectUser    (entry = RQINSPECTUSER_, dpl=0, wc=0),
    GATE_SetDefaultUser (entry = RQSETDEFAULTUSER_, dpl=0, wc=0),
    GATE_WaitIo         (entry = RQWAITIO_, dpl=0, wc=0),
    GATE_Encrypt        (entry = RQENCRYPT_, dpl=0, wc=0),
    GATE_ASpecial       (entry = RQASPECIAL_, dpl=0, wc=0),
  #IF (#bios.gc = '5') | (#bios.gc = 'C') | (#bios.gc = 'A')
    GATE_GetGlobalTime  (entry = RQGETGLOBALTIME_, dpl=0, wc=0),
    GATE_SetGlobalTime  (entry = RQSETGLOBALTIME_, dpl=0, wc=0),
  #ELSE
    GATE_GetGlobalTime  (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_SetGlobalTime  (entry = RqNotConfigured, dpl=0, wc=0),
  #ENDIF
  #IF #bios.tf | #glob.hi
    GATE_GetTime        (entry = RQGETTIME_, dpl=0, wc=0),
    GATE_SetTime        (entry = RQSETTIME_, dpl=0, wc=0),
  #ELSE
    GATE_GetTime        (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_SetTime        (entry = RqNotConfigured, dpl=0, wc=0),
  #ENDIF
  #IF (#0) | (~#0 & #bcall.nsc )
    GATE_SetDefaultPrefix   (entry = RQSETDEFAULTPREFIX_, dpl=0, wc=0),
    GATE_GetDefaultPrefix   (entry = RQGETDEFAULTPREFIX_, dpl=0, wc=0),
    GATE_AChangeAccess      (entry = RQACHANGEACCESS_, dpl=0, wc=0),
    GATE_ACreateDirectory   (entry = RQACREATEDIRECTORY_, dpl=0, wc=0),
    GATE_AGetDirectoryEntry (entry = RQAGETDIRECTORYENTRY_, dpl=0, wc=0),
    GATE_ARenameFile    (entry = RQARENAMEFILE_, dpl=0, wc=0),
    GATE_ATruncate      (entry = RQATRUNCATE_, dpl=0, wc=0),
    GATE_AGetExtensionData  (entry = RQAGETEXTENSIONDATA_, dpl=0, wc=0),
    GATE_ASetExtensionData  (entry = RQASETEXTENSIONDATA_, dpl=0, wc=0),
  #ELSE
    GATE_SetDefaultPrefix   (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_GetDefaultPrefix   (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_AChangeAccess  (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_ACreateDirectory       (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_AGetDirectoryEntry     (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_ARenameFile    (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_ATruncate      (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_AGetExtensionData  (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_ASetExtensionData   (entry = RqNotConfigured, dpl=0, wc=0),
  #ENDIF
  
  #IF (#0 ) | (~#0 & (#bcall.nsc | #bcall.psc ))
    GATE_ASeek          (entry = RQASEEK_, dpl=0, wc=0),
    GATE_AUpdate        (entry = RQAUPDATE_, dpl=0, wc=0),
  #ELSE
    GATE_ASeek          (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_AUpdate        (entry = RqNotConfigured, dpl=0, wc=0),
  #ENDIF
  #IF (#0 ) | (~#0 & (#bcall.nsc | #bcall.ssc ))
    GATE_ADeleteFile    (entry = RQADELETEFILE_, dpl=0, wc=0),
  #ELSE
    GATE_ADeleteFile    (entry = RqNotConfigured, dpl=0, wc=0),
  #ENDIF
#ELSE
    Gate_CreateUser     (entry = RqNotConfigured,    dpl=0, wc=0),
    Gate_APhysicalAttachDevice  (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_AAttachFile    (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_AClose         (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_ACreateFile    (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_ADeleteConnection  (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_AGetConnectionStatus   (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_AGetFileStatus (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_AGetPathComponent  (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_AOpen          (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_APhysicalDetachDevice   (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_ARead          (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_AWrite         (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_DeleteUser     (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_GetDefaultUser (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_InspectUser    (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_SetDefaultUser (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_WaitIo         (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_Encrypt        (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_GetGlobalTime  (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_SetGlobalTime  (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_GetTime        (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_SetTime        (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_SetDefaultPrefix   (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_GetDefaultPrefix   (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_AChangeAccess  (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_ACreateDirectory   (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_ADeleteFile    (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_AGetDirectoryEntry  (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_ARenameFile    (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_ASpecial       (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_ASeek          (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_AUpdate        (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_ATruncate      (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_AGetExtensionData  (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_ASetExtensionData   (entry = RqNotConfigured, dpl=0, wc=0),
#ENDIF
[
#IF #glob.eio
    GATE_SGetDirectoryEntry (entry = RqSGetDirectoryEntry_, dpl=0, wc=0),
    GATE_CreateIoJob   (entry = RqCreateIoJob_, dpl=0, wc=0),
    GATE_StartIoJob    (entry = RqStartIoJob_, dpl=0, wc=0),
    GATE_AbortIoJob    (entry = RqAbortIoJob_, dpl=0, wc=0),
    GATE_LogicalAttachDevice (entry = RqLogicalAttachDevice_, dpl=0, wc=0),
    GATE_ExitIoJob     (entry = RQExitIoJob_, dpl=0, wc=0),
    GATE_GetLogicalDeviceStatus   (entry = RQGetLogicalDeviceStatus_, dpl=0, wc=0),
    GATE_HybridDetachDevice     (entry = RQHybridDetachDevice_, dpl=0, wc=0),
    GATE_LogicalDetachDevice    (entry = RQLogicalDetachDevice_, dpl=0, wc=0),
    GATE_SAttachFile   (entry = RQSAttachFile_, dpl=0, wc=0),
    GATE_SCatalogConnection     (entry = RQSCatalogConnection_, dpl=0, wc=0),
    GATE_SChangeAccess (entry = RQSChangeAccess_, dpl=0, wc=0),
    GATE_SClose        (entry = RQSClose_, dpl=0, wc=0),
    GATE_SCreateDirectory       (entry = RQSCreateDirectory_, dpl=0, wc=0),
    GATE_SCreateFile   (entry = RQSCreateFile_, dpl=0, wc=0),
    GATE_SDeleteConnection      (entry = RQSDeleteConnection_, dpl=0, wc=0),
    GATE_SDeleteFile   (entry = RQSDeleteFile_, dpl=0, wc=0),
    GATE_SGetConnectionStatus   (entry = RQSGetConnectionStatus_, dpl=0, wc=0),
    GATE_SGetFileStatus         (entry = RQSGetFileStatus_, dpl=0, wc=0),
    GATE_SLookupConnection      (entry = RQSLookupConnection_, dpl=0, wc=0),
    GATE_SOpen          (entry = RQSOpen_, dpl=0, wc=0),
    GATE_SReadMove      (entry = RQSReadMove_, dpl=0, wc=0),
    GATE_SRenameFile    (entry = RQSRenameFile_, dpl=0, wc=0),
    GATE_SSeek          (entry = RQSSeek_, dpl=0, wc=0),
    GATE_SSpecial       (entry = RQSSpecial_, dpl=0, wc=0),
    GATE_STruncateFile  (entry = RQSTruncateFile_, dpl=0, wc=0),
    GATE_SUncatalogConnection   (entry = RQSUncatalogConnection_, dpl=0, wc=0),
    GATE_SWriteMove     (entry = RQSWriteMove_, dpl=0, wc=0),
    GATE_GetUserIDs     (entry = RqGetUserIDs_, dpl=0, wc=0),
    GATE_VerifyUser     (entry = RqVerifyUser_, dpl=0, wc=0),
    GATE_SGetPathComponent      (entry = RqSGetPathComponent_, dpl=0, wc=0),
#ELSE
    GATE_SGetDirectoryEntry     (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_CreateIoJob    (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_StartIoJob     (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_AbortIoJob     (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_LogicalAttachDevice    (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_ExitIoJob      (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_GetLogicalDeviceStatus (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_HybridDetachDevice       (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_LogicalDetachDevice       (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_SAttachFile       (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_SCatalogConnection       (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_SChangeAccess  (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_SClose           (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_SCreateDirectory       (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_SCreateFile       (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_SDeleteConnection       (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_SDeleteFile       (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_SGetConnectionStatus   (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_SGetFileStatus (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_SLookupConnection       (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_SOpen           (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_SReadMove       (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_SRenameFile       (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_SSeek           (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_SSpecial       (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_STruncateFile  (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_SUncatalogConnection   (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_SWriteMove       (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_GetUserIDs     (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_VerifyUser     (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_SGetPathComponent         (entry = RqNotConfigured, dpl=0, wc=0),
#ENDIF
[
#IF #glob.al
    GATE_ALoad          (entry = rqaload_, dpl=0, wc=0),
    GATE_ALoadIoJob     (entry = rqaloadiojob_, dpl=0, wc=0),
    GATE_SLoadIoJob     (entry = rqsloadiojob_, dpl=0, wc=0),
    GATE_SOverlay       (entry = rqsoverlay_, dpl=0, wc=0),
#ELSE
    GATE_ALoad          (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_ALoadIoJob     (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_SLoadIoJob     (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_SOverlay       (entry = RqNotConfigured, dpl=0, wc=0),
#ENDIF
[
#IF #glob.hi
    GATE_CGetInputConnection    (entry = RQCGetInputConnection_, dpl=0),
    GATE_CGetOutputConnection   (entry = RQCGetOutputConnection_, dpl=0),
    GATE_CGetChar       (entry = RQCGetChar_, dpl=0),
    GATE_CBackupChar    (entry = RQCBackupChar_, dpl=0),
    GATE_CGetInputPathname      (entry = RQCGetInputPathname_, dpl=0),
    GATE_CGetInputPathnameNOwc  (entry = RQCGetInputPathnamenOWC_, dpl=0),
    GATE_CGetParameter  (entry = RQCGetParameter_, dpl=0),
    GATE_CGetOutputPathname     (entry = RQCGetOutputPathname_, dpl=0),
    GATE_CSetParseBuffer (entry = RQCSetParseBuffer_, dpl=0),
    GATE_CGetCommandName (entry = RQCGetCommandName_, dpl=0),
    GATE_CFormatException       (entry = RQCFormatException_, dpl=0),
    GATE_CSendCOResponse (entry = RQCSendCOResponse_, dpl=0),
    GATE_CSendEOResponse (entry = RQCSendEOResponse_, dpl=0),
    GATE_CSetControlC   (entry = RQCSetControlC_, dpl=0),
    GATE_CCreateCommandConnection  (entry = RQCCreateCommandConnection_, dpl=0),
    GATE_CDeleteCommandConnection  (entry = RQCDeleteCommandConnection_, dpl=0),
    GATE_CSendCommand   (entry = RQCSendCommand_, dpl=0),
#ELSE
    GATE_CGetInputConnection (entry = RqNotConfigured, dpl=0),
    GATE_CGetOutputConnection (entry = RqNotConfigured, dpl=0),
    GATE_CGetChar       (entry = RqNotConfigured, dpl=0),
    GATE_CBackupChar    (entry = RqNotConfigured, dpl=0),
    GATE_CGetInputPathname  (entry = RqNotConfigured, dpl=0),
    GATE_CGetInputPathnameNOwc  (entry = RqNotConfigured, dpl=0),
    GATE_CGetParameter  (entry = RqNotConfigured, dpl=0),
    GATE_CGetOutputPathname (entry = RqNotConfigured, dpl=0),
    GATE_CSetParseBuffer    (entry = RqNotConfigured, dpl=0),
    GATE_CGetCommandName    (entry = RqNotConfigured, dpl=0),
    GATE_CFormatException   (entry = RqNotConfigured, dpl=0),
    GATE_CSendCOResponse    (entry = RqNotConfigured, dpl=0),
    GATE_CSendEOResponse    (entry = RqNotConfigured, dpl=0),
    GATE_CSetControlC       (entry = RqNotConfigured, dpl=0),
    GATE_CCreateCommandConnection  (entry = RqNotConfigured, dpl=0),
    GATE_CDeleteCommandConnection  (entry = RqNotConfigured, dpl=0),
    GATE_CSendCommand   (entry = RqNotConfigured, dpl=0),
#ENDIF
[
#IF #glob.udi
    GATE_UAllocate      (entry = DQAllocate_, dpl = 0),
    GATE_UTrapCc        (entry = DQTrapCC_, dpl=0),
    GATE_UTrapException (entry = DQTrapException_, dpl = 0),
    GATE_UGetExceptionHandler (entry = DQGetExceptionHandler_, dpl = 0),
    GATE_UDecodeException (entry = DQDecodeException_, dpl = 0),
    GATE_UGetSystemId   (entry = DQGetSystemID_, dpl = 0),
    GATE_UGetTime       (entry = DQGetTime_, dpl = 0),
    GATE_UAttach        (entry = DQAttach_, dpl = 0),
    GATE_UCreate        (entry = DQCreate_, dpl = 0),
    GATE_UOpen          (entry = DQOpen_, dpl = 0),
    GATE_UClose          (entry = DQClose_, dpl = 0),
    GATE_UDetach          (entry = DQDetach_, dpl = 0),
    GATE_URead          (entry = DQRead_, dpl = 0),
    GATE_UTruncate      (entry = DQTruncate_, dpl = 0),
    GATE_UGetConnectionStatus (entry = DQGetConnectionStatus_, dpl = 0),
    GATE_UChangeExtension  (entry = DQChangeExtension_, dpl = 0),
    GATE_USpecial          (entry = DQSpecial_, dpl = 0),
    GATE_UGetArgument   (entry = DQGetArgument_, dpl = 0),
    GATE_USwitchBuffer  (entry = DQSwitchBuffer_, dpl = 0),
    GATE_UExit          (entry = DQExit_, dpl = 0),
    GATE_UFileInfo      (entry = DQFileInfo_, dpl = 0),
    GATE_UReserveIoMemory  (entry = DQReserveIOMemory_, dpl = 0),
    GATE_UDecodeTime      (entry = DQDecodeTime_, dpl = 0),
    GATE_UChangeAccess  (entry = DQChangeAccess_, dpl = 0),
    GATE_UFree          (entry = DQFree_, dpl = 0),
    GATE_USeek          (entry = DQSeek_, dpl = 0),
    GATE_UWrite          (entry = DQWrite_, dpl = 0),
    GATE_UOverlay          (entry = DQOverlay_, dpl = 0),
    GATE_URename          (entry = DQRename_, dpl = 0),
    GATE_UGetSize          (entry = DQGetSize_, dpl = 0),
    GATE_UDelete          (entry = DQDelete_, dpl = 0),
    GATE_UMallocate      (entry = DQMAllocate_, dpl = 0),
    GATE_UMfree          (entry = DQMFree_, dpl = 0),
    GATE_UGetMsize      (entry = DQGetMSize_, dpl = 0),
    GATE_UExecute          (entry = DQExecute_, dpl = 0),
#ELSE
    GATE_UAllocate       (entry = RqNotConfigured, dpl = 0),
    GATE_UTrapCc           (entry = RqNotConfigured, dpl=0),
    GATE_UTrapException  (entry = RqNotConfigured, dpl = 0),
    GATE_UGetExceptionHandler     (entry = RqNotConfigured, dpl = 0),
    GATE_UDecodeException     (entry = RqNotConfigured, dpl = 0),
    GATE_UGetSystemId      (entry = RqNotConfigured, dpl = 0),
    GATE_UGetTime          (entry = RqNotConfigured, dpl = 0),
    GATE_UAttach          (entry = RqNotConfigured, dpl = 0),
    GATE_UCreate          (entry = RqNotConfigured, dpl = 0),
    GATE_UOpen          (entry = RqNotConfigured, dpl = 0),
    GATE_UClose          (entry = RqNotConfigured, dpl = 0),
    GATE_UDetach          (entry = RqNotConfigured, dpl = 0),
    GATE_URead          (entry = RqNotConfigured, dpl = 0),
    GATE_UTruncate      (entry = RqNotConfigured, dpl = 0),
    GATE_UGetConnectionStatus     (entry = RqNotConfigured, dpl = 0),
    GATE_UChangeExtension      (entry = RqNotConfigured, dpl = 0),
    GATE_USpecial          (entry = RqNotConfigured, dpl = 0),
    GATE_UGetArgument      (entry = RqNotConfigured, dpl = 0),
    GATE_USwitchBuffer  (entry = RqNotConfigured, dpl = 0),
    GATE_UExit          (entry = RqNotConfigured, dpl = 0),
    GATE_UFileInfo      (entry = RqNotConfigured, dpl = 0),
    GATE_UReserveIoMemory (entry = RqNotConfigured, dpl = 0),
[
    GATE_UDecodeTime      (entry = RqNotConfigured, dpl = 0),
    GATE_UChangeAccess  (entry = RqNotConfigured, dpl = 0),
    GATE_UFree          (entry = RqNotConfigured, dpl = 0),
    GATE_USeek          (entry = RqNotConfigured, dpl = 0),
    GATE_UWrite          (entry = RqNotConfigured, dpl = 0),
    GATE_UOverlay          (entry = RqNotConfigured, dpl = 0),
    GATE_URename          (entry = RqNotConfigured, dpl = 0),
    GATE_UGetSize          (entry = RqNotConfigured, dpl = 0),
    GATE_UDelete          (entry = RqNotConfigured, dpl = 0),
    GATE_UMallocate      (entry = RqNotConfigured, dpl = 0),
    GATE_UMfree          (entry = RqNotConfigured, dpl = 0),
    GATE_UGetMsize      (entry = RqNotConfigured, dpl = 0),
    GATE_UExecute          (entry = RqNotConfigured, dpl = 0),
#ENDIF
[
    GATE_CreateBufferPool   (entry = RqCreateBufferPool_, dpl=0, wc=0),
    GATE_DeleteBufferPool   (entry = RqDeleteBufferPool_, dpl=0, wc=0),
    GATE_ReleaseBuffer   (entry = RqReleaseBuffer_, dpl=0, wc=0),		
    GATE_RequestBuffer   (entry = RqRequestBuffer_, dpl=0, wc=0),
[
#IF #hard.bus = '2'
    GATE_GetInterconnect   (entry = RqGetInterconnect_, dpl=0, wc=0),
    GATE_SetInterconnect   (entry = RqSetInterconnect_, dpl=0, wc=0),
#ELSE
    GATE_GetInterconnect   (entry = RqNotConfig, dpl=0, wc=0),
    GATE_SetInterconnect   (entry = RqNotConfig, dpl=0, wc=0),
#ENDIF
#IF (#nuc.cs)
    GATE_rqgethostid (dpl=0, entry=rqgethostid_, wc=0),
    GATE_rqcreateport (dpl=0, entry=rqcreateport_, wc=0),
    GATE_rqdeleteport (dpl=0, entry=rqdeleteport_, wc=0),
    GATE_rqattachport (dpl=0, entry=rqattachport_, wc=0),
    GATE_rqdetachport (dpl=0, entry=rqdetachport_, wc=0),
    GATE_rqgetportattributes (dpl=0, entry=rqgetportattributes_, wc=0),
    GATE_rqconnect (dpl=0, entry=rqconnect_, wc=0),
    GATE_rqsend (dpl=0, entry=rqsend_, wc=0),
    GATE_rqsendrsvp (dpl=0, entry=rqsendrsvp_, wc=0),
    GATE_rqsendreply (dpl=0, entry=rqsendreply_, wc=0),
    GATE_rqsendsignal (dpl=0, entry=rqsendsignal_, wc=0),
    GATE_rqbroadcast (dpl=0, entry=rqbroadcast_, wc=0),
    GATE_rqcancel (dpl=0, entry=rqcancel_, wc=0),
    GATE_rqreceive (dpl=0, entry=rqreceive_, wc=0),
    GATE_rqreceivereply (dpl=0, entry=rqreceivereply_, wc=0),
    GATE_rqreceivefragment (dpl=0, entry=rqreceivefragment_, wc=0),
    GATE_rqreceivesignal (dpl=0, entry=rqreceivesignal_, wc=0),
    GATE_rqattachbufferpool (dpl=0, entry=rqattachbufferpool_, wc=0),
    GATE_rqdetachbufferpool (dpl=0, entry=rqdetachbufferpool_, wc=0),
#ELSE
    GATE_rqgethostid (dpl=0, entry=RqNotConfigured, wc=0),
    GATE_rqcreateport (dpl=0, entry=RqNotConfigured, wc=0),
    GATE_rqdeleteport (dpl=0, entry=RqNotConfigured, wc=0),
    GATE_rqattachport (dpl=0, entry=RqNotConfigured, wc=0),
    GATE_rqdetachport (dpl=0, entry=RqNotConfigured, wc=0),
    GATE_rqgetportattributes (dpl=0, entry=RqNotConfigured, wc=0),
    GATE_rqconnect (dpl=0, entry=RqNotConfigured, wc=0),
    GATE_rqsend (dpl=0, entry=RqNotConfigured, wc=0),
    GATE_rqsendrsvp (dpl=0, entry=RqNotConfigured, wc=0),
    GATE_rqsendreply (dpl=0, entry=RqNotConfigured, wc=0),
    GATE_rqsendsignal (dpl=0, entry=RqNotConfigured, wc=0),
    GATE_rqbroadcast (dpl=0, entry=RqNotConfigured, wc=0),
    GATE_rqcancel (dpl=0, entry=RqNotConfigured, wc=0),
    GATE_rqreceive (dpl=0, entry=RqNotConfigured, wc=0),
    GATE_rqreceivereply (dpl=0, entry=RqNotConfigured, wc=0),
    GATE_rqreceivefragment (dpl=0, entry=RqNotConfigured, wc=0),
    GATE_rqreceivesignal (dpl=0, entry=RqNotConfigured, wc=0),
    GATE_rqattachbufferpool (dpl=0, entry=RqNotConfigured, wc=0),
    GATE_rqdetachbufferpool (dpl=0, entry=RqNotConfigured, wc=0),
#ENDIF
#IF #glob.sdm
	ci	(entry = app_ci, call, DPL = 0),
	co	(entry = app_co, call, DPL = 0),
	csts	(entry = app_csts, call, DPL = 0),
	break	(entry = app_break, call, DPL = 0),
#ELSE
	ci	(entry = SDM_ci_NotConfigured, call, DPL = 0),
	co	(entry = SDM_co_NotConfigured, call, DPL = 0),
	csts	(entry = SDM_ci_NotConfigured, call, DPL = 0),
	break	(entry = SDM_break_NotConfigured, call, DPL = 0),
#ENDIF
[
[ GATE_LC1 and GATE_LC2 Reserved for LC Support
[
#ASSIGN #1 = 1
#LOOP #1 #REP(osext)
    GATE_##osext(#1).gsn  (entry = RQ_nil_os_ext, dpl=0, wc=0),
#ENDLOOP
    GATE_CreateCommUser (entry = RqNotConfigured, dpl=0, wc=0),
    GATE_CommRB			(entry = RqNotConfigured, dpl=0, wc=0),
    GATE_UARB			(entry = RqNotConfigured, dpl=0, wc=0),
    GATE_LC1			(entry = RqNotConfigured, dpl=0, wc=0),
    GATE_LC2			(entry = RqNotConfigured, dpl=0, wc=0);
[
table
[
[  in #9 we calculate the LDT and GDT limit
[
#ASSIGN #9 = #nuc.nge
#IF #nuc.hse >= #nuc.nge
    #ASSIGN #9 = #nuc.hse + 1
#ENDIF
#ASSIGN #1 = 1
#LOOP #1 #REP(OSEXT)
    #IF #osext(#1).gsn >= #9
        #ASSIGN #9 = #osext(#1).gsn + 1
    #ENDIF
#ENDLOOP
[
    ldt1 (limit=#9, dpl=0, 
      reserve = (2..2, 4..74, 76..78, 81..89,
#ASSIGN #8 = #9 - 1
#IF #nuc.hse <> 0
                294..##nuc.lse, ##nuc.hse.. ##8),
#ELSE
                294..##8),
#ENDIF
    entry = (3:nucdat.stack, 75:nucdat.jobdat,
            79:nucdat.escape_ss, 80:nucdat.entry_code) );
[
task
    rmxtask (dpl=0, object= nucdat, ldt = ldt1, no ie)
	#IF #nuc.stk <>'S'
    , stktask (dpl=0, object= ntrstk, ldt=ldt1, no ie)
	#ENDIF
#IF #glob.SDM
    , hw_task_01H (code = hw_vector_01H, stacks = (m3.stack), dpl = 0, ldt = ldt1, no ie)
    , hw_task_03H (code = hw_vector_03H, stacks = (m3.stack), dpl = 0, ldt = ldt1, no ie)
    , hw_task_0EH (code = hw_vector_0EH, stacks = (m3.stack), dpl = 0, ldt = ldt1, no ie)
    , hw_task_0FH (code = hw_vector_0FH, stacks = (m3.stack), dpl = 0, ldt = ldt1, no ie)
[
    #IF #nuc.deh = 'S'
    , hw_task_00H (code = hw_vector_00H, stacks = (m3.stack), dpl = 0, ldt = ldt1, no ie)
    , hw_task_04H (code = hw_vector_04H, stacks = (m3.stack), dpl = 0, ldt = ldt1, no ie)
    , hw_task_05H (code = hw_vector_05H, stacks = (m3.stack), dpl = 0, ldt = ldt1, no ie)
    , hw_task_06H (code = hw_vector_06H, stacks = (m3.stack), dpl = 0, ldt = ldt1, no ie)
    , hw_task_0BH (code = hw_vector_0BH, stacks = (m3.stack), dpl = 0, ldt = ldt1, no ie)
    , hw_task_0DH (code = hw_vector_0DH, stacks = (m3.stack), dpl = 0, ldt = ldt1, no ie)
    #ENDIF
[
    #IF #nuc.stk= 'S'
    , hw_task_08H (code = hw_vector_08H, stacks = (m3.stack), dpl = 0, ldt = ldt1, no ie)
    , hw_task_0AH (code = hw_vector_0AH, stacks = (m3.stack), dpl = 0, ldt = ldt1, no ie)
    , hw_task_0CH (code = hw_vector_0CH, stacks = (m3.stack), dpl = 0, ldt = ldt1, no ie)
    #ENDIF
[
    #IF ~#hard.npx
    , hw_task_07H (code = hw_vector_07H, stacks = (m3.stack), dpl = 0, ldt = ldt1, no ie)
    , hw_task_09H (code = hw_vector_09H, stacks = (m3.stack), dpl = 0, ldt = ldt1, no ie)
    , hw_task_10H (code = hw_vector_10H, stacks = (m3.stack), dpl = 0, ldt = ldt1, no ie)
    #ENDIF
[
    #IF #nuc.nmi = 'S'
    , hw_task_02H (code = hw_vector_02H, stacks = (m3.stack), dpl = 0, ldt = ldt1, no ie)
    #ENDIF
#ENDIF
[
[    SEMI-COLON ends task defs
[
    ;
[
#IF #glob.SDM

GATE
      m_wake_up         (entry = MI_save_registers,  wc =  2, dpl = 0, call)
    , m_utility_mgr     (entry = MI_utility_mgr,     wc =  0, dpl = 0, call)
    , m_execute_command (entry = MI_execute_command, wc = 12, dpl = 0, call)
    , hw_gate_01H       (entry = hw_task_01H,                 dpl = 3, task)
    , hw_gate_03H       (entry = hw_task_03H,                 dpl = 3, task)
    , hw_gate_0EH       (entry = hw_task_0EH,                 dpl = 3, task)
    , hw_gate_0FH       (entry = hw_task_0FH,                 dpl = 3, task)
    , m_initialize      (entry = MI_initialize, wc = 0, dpl = 0, call)
    #IF #nuc.deh = 'S'
    , hw_gate_00H       (entry = hw_task_00H,                 dpl = 3, task)
    , hw_gate_04H       (entry = hw_task_04H,                 dpl = 3, task)
    , hw_gate_05H       (entry = hw_task_05H,                 dpl = 3, task)
    , hw_gate_06H       (entry = hw_task_06H,                 dpl = 3, task)
    , hw_gate_0BH       (entry = hw_task_0BH,                 dpl = 3, task)
    , hw_gate_0DH       (entry = hw_task_0DH,                 dpl = 3, task)
    #ENDIF
    #IF #nuc.nmi = 'S'
    , hw_gate_02H       (entry = hw_task_02H,                 dpl = 3, task)
    #ENDIF
    #IF ~#hard.npx
    , hw_gate_07H       (entry = hw_task_07H,                 dpl = 3, task)
    , hw_gate_09H       (entry = hw_task_09H,                 dpl = 3, task)
    , hw_gate_10H       (entry = hw_task_10H,                 dpl = 3, task)
    #ENDIF
    #IF #nuc.stk= 'S'
    , hw_gate_08H       (entry = hw_task_08H,                 dpl = 3, task)
    , hw_gate_0AH       (entry = hw_task_0AH,                 dpl = 3, task)
    , hw_gate_0CH       (entry = hw_task_0CH,                 dpl = 3, task)
    #ENDIF
[
[    SEMI-COLON ends gate defs
[
	;
[
#ENDIF
[
table
[
    gdt (limit=#9, dpl=0,
#IF #glob.SDM
		#IF #hard.bus = '3'
    reserve = (49..49, 52..57, 58..59,
		#ELSE
    reserve = (49..59,
		#ENDIF
#ELSE
    reserve = (3..35, 40..49, 52..59,
#ENDIF
               61..78, 81..83, 85..89, 
               196..198, 234..239, 257..259, 295..299,
#IF ~#glob.sdm
               300..300,
#ENDIF
               301..307,
#IF ~#glob.sdb
               308..310,
#ENDIF
#IF ~#glob.bio
               311..314,
               317..317,
#ENDIF
#IF ~#glob.eio
               315..316,
#ENDIF
#IF ~#glob.al
               318..319,
#ENDIF
               320..320,
#IF ~#glob.hi
               321..325,
#ENDIF
#IF ~#glob.udi
               326..327,
#ENDIF
#IF ~#glob.hi
               328..329,     [ cli entries
#ENDIF
               330..339,
               343..359,
[
[ Slots 438 and 439 Reserved for LC Support
[
#IF #nuc.hse <> 0
               388..437, ##nuc.lse.. ##nuc.hse),
#ELSE
               388..437),
#ENDIF
    entry = ( 
[
#IF #glob.SDM
  3: mi_alias_segment,                4: mi_alias_segment2,
  5: m3.miii_code32,                  6: m3.miii_data,
  7: m3.stack,                        8: m3.cc_code32,
  9: m3.cc_data,                     10: m_wake_up,
 11: m_execute_command,              12: m_utility_mgr,
[
    #IF #nuc.deh = 'S'
 13: hw_task_00H,
    #ENDIF
[
 14: hw_task_01H,
[
    #IF #nuc.nmi = 'S'
 15: hw_task_02H,
    #ENDIF
[
 16: hw_task_03H,
[
    #IF #nuc.deh = 'S'
 17: hw_task_04H,
 18: hw_task_05H,
 19: hw_task_06H,
    #ENDIF
[
    #IF ~#hard.npx
 20: hw_task_07H,
    #ENDIF
[
    #IF #nuc.stk = 'S'
 21: hw_task_08H,
    #ENDIF
[
    #IF ~#hard.npx
 22: hw_task_09H,
    #ENDIF
[
    #IF #nuc.stk = 'S'
 23: hw_task_0AH,
    #ENDIF
[
    #IF #nuc.deh = 'S'
 24: hw_task_0BH,
    #ENDIF
[
    #IF #nuc.stk = 'S'
 25: hw_task_0CH,
    #ENDIF
[
    #IF #nuc.deh = 'S'
 26: hw_task_0DH,
    #ENDIF
[
 27: hw_task_0EH,
 28: hw_task_0FH,
[
    #IF ~#hard.npx
 29: hw_task_10H,
    #ENDIF
 [
 30: m_initialize,
 31: sdm_dasm.sdm_dasm_code,         32: sdm_dasm.sdm_dasm_data,
 33: sdm3_alias_segment3,            34: sdm_dasm.dasm_code,
 35: sdm_dasm.dasm_data,
#ENDIF
 36: ci,                             37: co,
 38: csts,                           39: break,
#IF #glob.sdm
 40: sdm_dasm.asm_sup_code,          41: sdm_dasm.asm_sup_data,
 42: sdm_dasm.print_code,            43: sdm_dasm.print_data,
 44: sdm_dasm.code,                  45: m3.sdmIII_code32,
 46: m3.sdmIII_data,                 47: sdm3_alias_segment,
 48: sdm3_alias_segment2,
#ENDIF
#IF #hard.bus = '3'
 50: cc_120_seg_1,                   51: cc_120_seg_2,
#ENDIF
[ #IF #glob.sdm
[ 57: m3.sdmiii_npx_code,
[ #ENDIF
[
 60: nucdat.data,                    79: rmxtask,
 80: nucdat.code,                    84: ldt1,
 90: Gate_AcceptControl,             91: Gate_AlterComposite,
 92: Gate_CatalogObject,             93: Gate_ChangeDescriptor,
 94: Gate_ChangeObjectAccess,        95: Gate_CreateComposite,
 96: Gate_CreateDescriptor,          97: Gate_CreateExtension,
 98: Gate_CreateJob,                 99: Gate_CreateMailbox,
100: Gate_CreateRegion,              101: Gate_CreateSegment,
102: Gate_CreateSemaphore,           103: Gate_CreateTask,
104: Gate_DeleteComposite,           105: Gate_DeleteDescriptor,
106: Gate_DeleteExtension,           107: Gate_DeleteJob,
108: Gate_DeleteMailbox,             109: Gate_DeleteRegion,
110: Gate_DeleteSegment,             111: Gate_DeleteSemaphore,
112: Gate_DeleteTask,                113: Gate_Disable,
114: Gate_DisableDeletion,           115: Gate_Enable,
116: Gate_EnableDeletion,            117: Gate_EndInitTask,
118: Gate_EnterInterrupt,            119: Gate_ExitInterrupt,
120: Gate_ForceDelete,               121: Gate_GetAddress,
122: Gate_GetExceptionHandler,       123: Gate_Getlevel,
124: Gate_GetObjectAccess,           125: Gate_GetPoolAttrib,
126: Gate_GetPriority,               127: Gate_GetSize,
128: Gate_GetTaskTokens,             129: Gate_GetType,
130: Gate_InspectComposite,          131: Gate_LookupObject,
132: Gate_Offspring,                 133: Gate_ReceiveControl,
134: Gate_ReceiveMESSAGE,            135: Gate_ReceiveUnits,
136: Gate_ResetInterrupt,            137: Gate_ResumeTask,
138: Gate_SendControl,               139: Gate_SendMESSAGE,
140: Gate_SendUnits,                 141: Gate_SetExceptionHandler,
142: Gate_SetInterrupt,              143: Gate_SetOsExtension,
144: Gate_SetPoolMin,                145: Gate_SetPriority,
146: Gate_SignalException,           147: Gate_SignalInterrupt,
148: Gate_Sleep,                     149: Gate_SuspendTask,
150: Gate_UncatalogObject,           151: Gate_WaitInterrupt,
152: Gate_TimedInterrupt,            153: Gate_EOffspring,
158: Gate_ReceiveData,               159: Gate_SendData,
[

160:Gate_AAttachFile,                161:Gate_AChangeAccess,
162:Gate_AClose,                     163:Gate_ACreateDirectory,
164:Gate_ACreateFile,                165:Gate_ADeleteConnection,
166:Gate_ADeleteFile,                167:Gate_AGetConnectionStatus,
168:Gate_AGetDirectoryEntry,         169:Gate_AGetExtensionData,
170:Gate_AGetFileStatus,             171:Gate_AGetPathComponent,
172:Gate_AOpen,                      173:Gate_APhysicalAttachDevice,
174:Gate_APhysicalDetachDevice,      175:Gate_ARead,
176:Gate_ARenameFile,                177:Gate_ASeek,
178:Gate_ASetExtensionData,          179:Gate_ASpecial,
180:Gate_ATruncate,                  181:Gate_AUpdate,
182:Gate_AWrite,                     183:Gate_CreateUser,
184:Gate_DeleteUser,                 185:Gate_GetDefaultPrefix,
186:Gate_GetDefaultUser,             187:Gate_GetTime,
188:Gate_InspectUser,                189:Gate_SetDefaultPrefix,
190:Gate_SetDefaultUser,             191:Gate_SetTime,
192:Gate_WaitIo,                     193:Gate_Encrypt,
194:Gate_GetGlobalTime,              195:Gate_SetGlobalTime,
[
                                     199:GATE_SGetDirectoryEntry,
200:GATE_CreateIoJob,                201:GATE_AbortIoJob,
202:GATE_ExitIoJob,                  203:GATE_GetLogicalDeviceStatus,
204:GATE_HybridDetachDevice,         205:GATE_LogicalAttachDevice,
206:GATE_LogicalDetachDevice,        207:GATE_StartIoJob,
208:GATE_SAttachFile,                209:GATE_SCatalogConnection,
210:GATE_SChangeAccess,              211:GATE_SClose,
212:GATE_SCreateDirectory,           213:GATE_SCreateFile,
214:GATE_SDeleteConnection,          215:GATE_SDeleteFile,
216:GATE_SGetConnectionStatus,       217:GATE_SGetFileStatus,
218:GATE_SLookupConnection,          219:GATE_SOpen,
220:GATE_SReadMove,                  221:GATE_SRenameFile,
222:GATE_SSeek,                      223:GATE_SSpecial,
224:GATE_STruncateFile,              225:GATE_SUncatalogConnection,
226:GATE_SWriteMove,                 227:GATE_GetUserIDs,
228:GATE_VerifyUser,                 229:GATE_SGetPathComponent,
[
230:GATE_ALoad,                      231:GATE_ALoadIoJob,
232:GATE_SLoadIoJob,                 233:GATE_SOverlay,
[
240:GATE_CGetInputConnection,        241:GATE_CGetOutputConnection,
242:GATE_CGetChar,                   243:GATE_CBackupChar,
244:GATE_CGetInputPathname,          245:GATE_CGetInputPathnameNOwc,
246:GATE_CGetParameter,              247:GATE_CGetOutputPathname,
248:GATE_CSetParseBuffer,            249:GATE_CGetCommandName,
250:GATE_CFormatException,           251:GATE_CSendCOResponse,
252:GATE_CSendEOResponse,            253:GATE_CSetControlC,
254:GATE_CCreateCommandConnection,   255:GATE_CDeleteCommandConnection,
256:GATE_CSendCommand,
[
260:GATE_UAllocate,                  261:GATE_UTrapCc,
262:GATE_UTrapException,             263:GATE_UGetExceptionHandler,
264:GATE_UDecodeException,           265:GATE_UGetSystemId,
266:GATE_UGetTime,                   267:GATE_UAttach,
268:GATE_UCreate,                    269:GATE_UOpen,
270:GATE_UClose,                     271:GATE_UDetach,
272:GATE_URead,                      273:GATE_UTruncate,
274:GATE_UGetConnectionStatus,       275:GATE_UChangeExtension,
276:GATE_USpecial,                   277:GATE_UGetArgument,
278:GATE_USwitchBuffer,              279:GATE_UExit,
280:GATE_UFileInfo,                  281:GATE_UReserveIoMemory,
282:GATE_UDecodeTime,                283:GATE_UChangeAccess,
284:GATE_UFree,                      285:GATE_USeek,
286:GATE_UWrite,                     287:GATE_UOverlay,
288:GATE_URename,                    289:GATE_UGetSize,
290:GATE_UDelete,                    291:GATE_UMallocate,
292:GATE_UMfree,                     293:GATE_UGetMsize, 
294:GATE_UExecute
[
#IF #glob.sdm
 ,300: shadow_idt_seg
#ENDIF
[
#IF #glob.sdb
 ,308:sdbcnf.code, 309:sdbcnf.data, 310:sdbcnf.newstack
#ENDIF
[
#IF #glob.bio
,311:bios_code,   312:bios_data,   313:itable.code,   314:itable.data
#ENDIF
[
#IF #glob.eio
,315:eios_Code,   316:eios_Data
#ENDIF
[
#IF #glob.bio
, 317:itable.tsc_code
#ENDIF
[
#IF #glob.al
,318:loader_Code, 319:loader_Data
#ENDIF
[
#IF #glob.hi
,321:hi_Code,     322:hi_Data,     323:hdsptb1_code,  324:hdsptb2_code,
325:hdsptb3_code
#ENDIF
[
#IF #glob.udi
,326:udi_code,    327:udi_data
#ENDIF
[
#IF #glob.hi
,328:cli_code,    329:cli_data
#ENDIF
[
,340:GATE_CreateCommUser,             341:GATE_CommRB,
342:GATE_UARB,
360:GATE_CreateBufferPool,            361:GATE_DeleteBufferPool,
362:GATE_ReleaseBuffer,               363:GATE_RequestBuffer,
[
364:GATE_GetInterconnect,             365:GATE_SetInterconnect,
366:GATE_rqattachbufferpool,          367:GATE_rqattachport,
368:GATE_rqbroadcast,                 369:GATE_rqcancel,
370:GATE_rqconnect,                   371:GATE_rqcreateport,
372:GATE_rqdeleteport,                373:GATE_rqdetachbufferpool,
374:GATE_rqdetachport,                375:GATE_rqgethostid,
377:GATE_rqgetportattributes,         379:GATE_rqreceive,
380:GATE_rqreceivefragment,           381:GATE_rqreceivereply,
382:GATE_rqreceivesignal,             383:GATE_rqsend,
384:GATE_rqsendreply,                 385:GATE_rqsendrsvp,
386:GATE_rqsendsignal
#ASSIGN #1 = 1
#LOOP #1 #REP(OSEXT)
  ,##osext(#1).gsn : GATE_##osext(#1).gsn
#ENDLOOP
[
[ Slots 438 and 439 Reserved for LC Support
[
,438:GATE_LC1,                        439:GATE_LC2
[
    ));
[
[ If one of the following condition exist there is gate statement
[
#IF (#nuc.deh <> 'S' ) | #hard.npx | (#nuc.stk <> 'S' ) | (#nuc.nmi <> 'S' )
[
gate
[
[ int 0,4,5,6,11,13,17  - exception handler , exists if #nuc.deh <> SDB
[ int 8,10,12           - HW exceptions     , exists if #nuc.stk <> SDB
[ int 7,9,16            - NPX exceptions    , exists if #hard.npx = Yes
[ int 2                 - NMI               , exists if #nuc.nmi <> SDB
[               if #num.nmi = User -> the entry procedure is RQ_NMI
[               else               -> the entry procedure is RQ_NMI_HANDLER
[
    #IF (#nuc.nmi = 'U' ) & ((#nuc.deh <> 'S' )| #hard.npx |(#nuc.stk <> 'S' ))
TRAP_2  (entry = RQ_NMI,      dpl=0, it, wc=0),
    #ENDIF
    #IF (#nuc.nmi = 'U' )& ~((#nuc.deh <> 'S' )| #hard.npx |(#nuc.stk <> 'S' ))
TRAP_2  (entry = RQ_NMI,      dpl=0, it, wc=0) ;
    #ENDIF
    #IF (#nuc.nmi <> 'S') & ( #nuc.nmi <> 'U') &((#nuc.deh <> 'S' )|#hard.npx |(#nuc.stk <> 'S' ))
TRAP_2  (entry = RQ_NMI_HANDLER, dpl=0, it, wc=0),
    #ENDIF
    #IF (#nuc.nmi <> 'S') & ( #nuc.nmi <> 'U') & ~((#nuc.deh <> 'S' )| #hard.npx |(#nuc.stk <> 'S' ))
TRAP_2  (entry = RQ_NMI_HANDLER, dpl=0, it, wc=0) ;
    #ENDIF
    #IF #hard.npx
TRAP_7  (entry = RQ_Emulator_Exception, dpl=0, it, wc=0),
TRAP_9  (entry = RQ_NPX_Segment_Overrun, dpl=0, it, wc=0),
    #ENDIF
    #IF #hard.npx & ( (#nuc.stk <> 'S' )| (#nuc.deh <> 'S' ))
TRAP_16 (entry = RQ_Npx_Error,      dpl=0, it, wc=0),
    #ENDIF
    #IF #hard.npx & ~( (#nuc.stk <> 'S' )| (#nuc.deh <> 'S' ))
TRAP_16 (entry = RQ_Npx_Error,      dpl=0, it, wc=0) ;
    #ENDIF
    #IF #nuc.stk <> 'S'
TRAP_8  (task,   entry = STKtask,   dpl=0),
TRAP_10 (task,   entry = STKtask,   dpl=0),
    #ENDIF
    #IF (#nuc.stk <> 'S' ) & (#nuc.deh <> 'S' )
TRAP_12 (task,   entry = STKtask,   dpl=0),
    #ENDIF
    #IF (#nuc.stk <> 'S' ) & (#nuc.deh = 'S' )
TRAP_12 (task,   entry = STKtask,   dpl=0) ;
    #ENDIF
    #IF #nuc.deh <> 'S'
TRAP_0  (entry = RQ_DivideByZero,   dpl=0, tr, wc=0),
TRAP_4  (entry = RQ_Overflow,       dpl=0, tr, wc=0),
TRAP_5  (entry = RQ_ArrayBounds,    dpl=0, tr, wc=0),
TRAP_6  (entry = RQ_Illegal_Opcode, dpl=0, tr, wc=0),
TRAP_11 (entry = RQ_Segment_Not_Present, dpl=0, tr, wc=0),
TRAP_13 (entry = RQ_General_Protection, dpl=0, tr, wc=0),
TRAP_17 (entry = RQ_Check_Exception,dpl=0, tr, wc=0);
    #ENDIF
#ENDIF
[
table
#IF #glob.SDM
[
    idt(limit=#nuc.nie, dpl=0,  entry = (
       1: hw_gate_01H
    ,  3: hw_gate_03H
    , 14: hw_gate_0EH
    , 15: hw_gate_0FH
  #IF #nuc.nmi = 'S'
    ,  2: hw_gate_02H
  #ELSE
    ,  2: trap_2
  #ENDIF
[
  #IF #nuc.deh = 'S'
    ,  0: hw_gate_00H
    ,  4: hw_gate_04H
    ,  5: hw_gate_05H
    ,  6: hw_gate_06H
    , 11: hw_gate_0BH
    , 13: hw_gate_0DH
  #ELSE
    ,  0: trap_0
    ,  4: trap_4
    ,  5: trap_5
    ,  6: trap_6
    , 11: trap_11
    , 13: trap_13
    , 17: trap_17
  #ENDIF
[
  #IF ~#hard.npx
    ,  7: hw_gate_07H
    ,  9: hw_gate_09H
    , 16: hw_gate_10H
  #ELSE
    ,  7: trap_7
    ,  9: trap_9
    , 16: trap_16
  #ENDIF
[
  #IF #nuc.stk = 'S'
    ,  8: hw_gate_08H
    , 10: hw_gate_0AH
    , 12: hw_gate_0CH
  #ELSE
    ,  8: trap_8
    , 10: trap_10
    , 12: trap_12
  #ENDIF
    ));
#ELSE
  #IF (#nuc.deh <> 'S' ) | #hard.npx | (#nuc.stk <> 'S' ) | (#nuc.nmi <> 'S' )
     idt(limit=#nuc.nie, dpl=0, entry = (
    #IF (#nuc.nmi <> 'S') &((#nuc.deh <> 'S' )|#hard.npx |(#nuc.stk <> 'S' ))
2:  TRAP_2,
    #ENDIF
    #IF (#nuc.nmi <> 'S') & ~((#nuc.deh <> 'S' )| #hard.npx |(#nuc.stk <> 'S' ))
2:  TRAP_2 ));
    #ENDIF
    #IF #hard.npx
7:  TRAP_7,
9:  TRAP_9,
    #ENDIF
    #IF #hard.npx & ( (#nuc.stk <> 'S' )| (#nuc.deh <> 'S' ))
16: TRAP_16,
    #ENDIF
    #IF #hard.npx & ~( (#nuc.stk <> 'S' )| (#nuc.deh <> 'S' ))
16: TRAP_16 ));
    #ENDIF
    #IF #nuc.stk <> 'S'
8:  TRAP_8,
10: TRAP_10,
    #ENDIF
    #IF (#nuc.stk <> 'S' ) & (#nuc.deh <> 'S' )
12: TRAP_12,
    #ENDIF
    #IF (#nuc.stk <> 'S' ) & (#nuc.deh = 'S' )
12: TRAP_12 ));
    #ENDIF
    #IF #nuc.deh <> 'S'
0:  TRAP_0,
4:  TRAP_4,
5:  TRAP_5,
6:  TRAP_6,
11: TRAP_11,
13: TRAP_13,
17: TRAP_17 ));
    #ENDIF
  #ELSE
     idt(limit=#nuc.nie, dpl=0);
  #ENDIF
#ENDIF
[
[  IF osext then create export gat file.....
[
#ASSIGN #2 = 0
#ASSIGN #1 = 1
#LOOP #1 #REP(osext)
      [
      #IF #2 = 0
      [
      EXPORT
         ^##glob.out!user.gat(rq_user_gat(GATE_##osext(#1).gsn
         [
         #ASSIGN #2 = 1
         [
      #ELSE
                                         ,GATE_##osext(#1).gsn
      #ENDIF
#ENDLOOP
#IF #2 = 1
                                        ));
#ENDIF
end
#ENDFILE
#MESSAGE ...................................................DONE
