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 device_structure #IF hard.bus <> '3' [ #IF hard.bus = '2' [ device_structure [ #ENDIF [ [ Do the primary Multibus serial channels first [ #IF #sdm.D51 = 'P' device_structure #ENDIF #IF #sdm.A54 = 'P' device_structure #ENDIF #IF #sdm.B54 = 'P' device_structure #ENDIF #IF #sdm.A74 = 'P' device_structure #ENDIF #IF #sdm.B74 = 'P' device_structure #ENDIF #IF #sdm.A30 = 'P' device_structure #ENDIF #IF #sdm.B30 = 'P' device_structure #ENDIF #IF #sdm.G79 = 'P' device_structure #IF #hard.bus = '1' device_structure #ENDIF #ENDIF #IF #sdm.RCI = 'P' device_structure #ENDIF [ [ Now do the secondary Multibus serial channels [ #IF #sdm.D51 = 'S' device_structure #ENDIF #IF #sdm.A54 = 'S' device_structure #ENDIF #IF #sdm.B54 = 'S' device_structure #ENDIF #IF #sdm.A74 = 'S' device_structure #ENDIF #IF #sdm.B74 = 'S' device_structure #ENDIF #IF #sdm.A30 = 'S' device_structure #ENDIF #IF #sdm.B30 = 'S' device_structure #ENDIF #IF #sdm.G79 = 'S' device_structure #IF #hard.bus = '1' device_structure #ENDIF #ENDIF #IF #sdm.RCI = 'S' device_structure #ENDIF #ELSE [ [ Do the primary PC Bus serial channels first [ #IF #sdmat.SER = 'P' device_structure #ENDIF #IF #sdmat.CON = 'P' device_structure #ENDIF [ [ Now do the secondary PC Bus serial channels [ #IF #sdmat.SER = 'S' device_structure #ENDIF #IF #sdmat.CON = 'S' device_structure #ENDIF #ENDIF ;; ADD DEVICE entry here ;; Last Entry device_structure 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