IMD 1.17: 5/01/2010 19:59:06 NGEN CTOS II 1.0 OS Build 1 of 3  êT¼À 01740-1/3À®D b®D bÂÀÄKJ¾9|M^*&‰GÄ^&ÆG,ÿ¸‹å]ÊU‹ìQÄ^ &ŠG :bÑt SÄ^Sè>ë6Ä^ &€du 8Ñë MÑÄ^ &ˆG Ä^ SÄ^Sè‰Fþ bÑÄ%' %' Install OS directory %' Copy files from [F0] to the directory of the logged in volume %' Type [Kbd]ÿPF Modify the following Path command as follows: 1) Supply the volume name where you wish to build the OS. 2) Supply the volume password for that volume (if one exists). Press GO when ready.Path Gen1Type [Kbd]ÿPF Create Directory %'[New directory name] ' %'[Default protection level (default 15)] ' %'[Default number of files (default 45)] '400 %'[Password for new directory] ' %'[Volume password] ' %' %' copy the files %' LCopy %'File List '[F0]* %'[File prefix(s) from] ' %'[File prefix(s) to] ' %'[File suffix(s)] ' %'[Overwrite OK?] 'y %'[Confirm each?] ' %'[Continue on error?] ' %'[Verify copy?] 'y LCopy %'File List '[f0]LinkCtos.sub %'[File prefix(s) from] ' %'[File prefix(s) to] '[sys] %'[File suffix(s)] ' %'[Overwrite OK?] 'y %'[Confirm each?] ' %'[Continue on error?] ' %'[Verify copy?] 'y Submit %'File List '[f0]LinkCtosCmd.sub %'[Parameters] ' %'[ForceExpansion] ' %'[Show Expansion] ' Type [kbd] ÿPF Remove the diskette from the floppy drive [f0] and insert the CTOS Build diskette 2 of 3. INSERT DISK 2: ÿAB ïÚÚÚÚð  Press á GO á when Ready  íÚÚÚÚî 1ÿAAÿEF LCopy %'File List  '[F0]* %'[File prefix(s) from] ' %'[File prefix(s) to] ' %'[File suffix(s)] ' %'[Overwrite OK?] 'y %'[Confirm each?] ' %'[Continue on error?] ' %'[Verify copy?] 'yType [kbd] ÿPF Remove the diskette from the floppy drive [f0] and insert the CTOS Build diskette 3 of 3. INSERT DISK 3: ÿAB ïÚÚÚÚð  Press á GO á when Ready  íÚÚÚÚî 1ÿAAÿEF LCopy %'File List '[F0]* %'[File prefix(s) from] ' %'[File prefix(s) to] ' %'[File suffix(s)] ' %'[Overwrite OK?] 'y %'[Confirm each?] ' %'[Continue on error?] ' %'[Verify copy?] 'y Type [Kbd] In order to build a customized version of CTOS you need the Software Development utilities. If you have not yet done so, insert the SOFTWARE DEVELOPMENT diskettes and give the following command: Install %' CTOS Link Submit File %' %#0:NO OS NAME GIVEN2:%' %#1:NO OS VERSION GIVEN2:%' Link %'Object modules '@%0.link %'Run file '%0.Run %'[List file] ' %'[Publics?] ' %'[Line numbers?] ' %'[Stack size] '1024 %'[Max mem array] ' %'[Min mem array] ' %'[System build?] 'y %'[Version] '%0-%1 %'[Libraries] 'none %'[DS allocation?] ' %'[Symbol file] ' therejToo many windowsƒCannot split that window™Please confirm discarding of edits·"Saving...ß   €nClstrˆCTAsm II-1.0–???SEG??SEGconstconstdatadata Sysgen_LowMemLowMemDGroup˜h˜h˜hŒ˜hðš ÿÿù saSemiLowestnPTimingnInitProcIntDisable Œ oRgOExUcb* sIntSwtblìnInitProcHardWareŒibSwapFileNumberœmBufOutt cFramesMaxU fInitExitš bGraphicsPortC userNumLastznXBlock: fTimeSlice cbPriParNameürgRequestFileNamesP‰RtcTpbcbSysSvcParName pAckOutBuf» swapFileSizež saTempLowestsbInstallMathSpecØ‹ endOsTable@‰nFubsbInstallVdmPswd½‹pSysTime£nInitProcIntEnable"ŒnRgInitRtcRequestŒ rgbRunsVirgin@nIopssbSwapFileTryEachPswd›oExUcbževentControlBlock0nTerminationRqxxBusWindowSizeËrgSysSvcParname saEndMemory sbScratchVolumeSpec ContextStatusÃsbNlsFilePasswordËŠnMsgWaitReserve hardwareType nBytExchsr cWakeUpRq# userNumKbd. timeSliceLbÀrgUcbSrgAribR rgfLineDirty@cbRgCheckConfigsbWsConfigFileSpecD‹sbInitFilePassword_ŠfMulpar$ rgExchRealB‰wXla%' Copy [kbd] [Scr]<$>args.Tmp y 'OS Type' 'Version' Copy [kbd] [Scr]<$>desc.Tmp y 'Submit file used in a SysGen of an OS.' New Command 'Link Ctos' [sys]SubCmd.run @[Scr]<$>args.Tmp @[Scr]<$>desc.Tmp y '\0\0'%SET(wsType,7) %SET(hardwareType,4) %SET(clusterConfig,1) %SET(fNoFileSystem,1) %SET(fCommIop,0) %SET(nWinch,0) %SET(nFloppy,0) %SET(sOsData,29000) %SET(fMulpar,0FFh) %SET(fVarpar,0FFh) %SET(sParExitRunFile, 4096) %SET(fTimeSliceEnable, 0h) %SET(lbTimeSlicePriority, 146) %SET(hbTimeSlicePriority, 178) %*DEFINE(SwapFile)() %SET(lineHz, 40) %SET(sContingencyLog, 1) %SET(sKbdBuffer, 128) %SET(maxMedInterruptType, 87) %SET(nFrames, 8) %SET(nPartitions, 16) %SET(nPcb, 3*%nPartitions) %SET(nSysExchange, 30) %SET(nUsrExchange, 2*%nPcb) %SET(nMsgWait, 64+%nPartitions*3) %SET(nMsgWaitReserve, 30) %SET(nPTiming, 16) %SET(fVerifyFileStruct, 0) %SET(nIob, 0) %SET(nFcb, 0) %SET(nFub, %nFcb) %SET(nFab, 0) %SET(nVhb, %nWinch+%nFloppy) %SET(nUcb, %nPartitions) %SET(nXBlock,2) %SET(nSectorPerXBlock,5) %SET(sioClock,24) %SET(nRcb, 2*%nPartitions) %SET(nSwapFabs, 80) $INCLUDE(Sysgen.Mdf) $INCLUDE(Sysgen.Asm) Mdf) $INCLUDE(Sysgen.Asm) cb, 200) %SET(nFub, %nFcb) %SET(nFab, 400) %SET(nVhb, %nWinch+%nFloppy) %SET(sioClock,4) %SE OS.LIB(LowMem_t1 kernel_t1Vp Clock_t1Vp ClockFace Close_ClstrMp CmCommon_Vp CommInt CommonSubs Crash_t1 DmyLabels_t1 EmiDiv_Vp FileDmy_t1Clstr FilePros_NoSwp IdleLoop InitComm_t1Mp CommStatus_t1 CommNub_t1 LockedIo KbdFil_Mp KbdInt_t1 KbdPros_Vp KbdRes_Vp KbdSysinPros_Mp KbdTranslateDia Kutil2 Finish_vp Load_Vp Math32 MulPar_Vp MemAlloc_Mp MemoryMgr_Vp Sched_Vp FadsMgr_Vp SuspendResume_Vp Util_Vp MulParUtil_Mp NonMaskInt_t1 OsSubset Printer1_t1 Printer2_t1 PrinterInt_t1 Reset_Vp ResourceMgr_Vp RqInterface SetVec_it1Mp SoftVecMgr_Mp SrpDmy_Ws SwapIo TermPros_Vp Timer_t1Mp VidBlank_t1 VidIO_t1 Vdm2Dmy Vdm1Dmy XbWindow Ulcmpb) Clstr.LIB(WsAgent_aClstr WsLph_t1Clstr) Init.LIB(Fork_vp) DBG.LIB(t1hNub_vp t1DScr_vp DbgRaw DbgIn3 t1hOs_vp DbgPat) Dbg.lib(DbgNubPmUtil DbgNubPm) SourceDbgNub.lib(SourceDbgNub SourceDbgOsData SourceDbgRq SourceDbgScr) [Sys]Ctos.Lib(KernelNames) Kbd.OBJ rqlabl.obj rqlablAlt.obj request.obj nClstr.obj DBG.LIB(t1DLow t1hOnc_vp) SourceDbgNub.lib(SourceDbgOnc) Init.LIB(InitBoot_t1 InitClock InitCommon InitConfig InitDev InitExit_vp InitFile_t1Vp InitFont_t1 InitKbd InitKbdPros_Mp InitKbdInt InitKernel_Mp InitKProcs InitLoad InitLoadProc InitMem InitMulPar_vp InitNls_Ws InitOs_Mp InitOsMain InitOsSubs_Mp InitParity InitProcTbl_WS InitSysgen InitTimer1 InitTimer InitNoVid_t1 InitVamDmy InitWs_t1ClstrMp InitWs1 InitRqEx_Ws InitNGenIoAddr InitOsEnd)  tTableChksum‡exitRunFilePrioSave·exchSchedPocket’oRgOUcb(fF1IllegallyRemovedS rgCommLineÐ rgpVidMemLine# sbNlsFileSpecnŠ rgCrashMsgUrgUserReadCount ExchNetServer† rgPriParNameýrgWsLocalUserNumœrgDeltaPriorityónTicksTcbRgClusterMsg}saGraphicsBoard= maskFPIndexQ rgOsTableø userNumVdmKsbConfigFileSpecØŠsBufOutvrgOUcbHsbInitFileSpecŠpRgOUcb«rgAsibKExitRunFileDefPrio pBootBlock§fAwsPIT€ ContextStateãnIob rqDelayDisc0sbExitRunFilePswd©pBitmapExchsSavesbSwapFileTryFirst$ pRgSwappingRq€ rgbRunsTemp@nUcbrgInitProcIntDisable²‰maskVerifyCodeO saSemiHighestrgWsIdœfSFNM/ŒfCommIop#wsTypesbConfigFilePswd5‹rgInitProcIntEnableÚ‰oRgUserWaitCount4sbExitRunFileDefPswdgen0ŒorgPcb0wVerBuff~sbInstallVdmSpec`‹rgTibb fFloppyCheck< initSysDevNum&ŒsbInstallMathPswdñ‹cRcbMax< wOSVersionDosTypesaMaxPartition sioClock2 pXlatTableƒ userNumVid, rgOSProcDescl‰nVhbConfigpUserXlatTable‰ cbNodeNameˆ extCntlRegAwsVnRawIntx sarCurrentInPcb rgInitErrorºfSubsysChannelB: initFilePriolŠønSectorPerXBlock8pRgRcMax™ rgCheckConfig fSysChannelAÎ fLfsToMasterrgInitRtcRequestò‹bitmapExchsSavecuserNumChannelAü wsUserNumLastœsbExitRunFileSpecL clusterConfig! fNoFileSystem"sbInstallKbdSpec¾‹ exchSchedcbRgLastCrashMsgfoRgUserReadCount2rgCheckConfigPswd/ saTempHighest GraphicsInfo=cbRgExitFileError˜nSdInit˜rgCannotOpenSwapFileÖ fSysChannelB6 iLineCurrentE pRgOExUcb¯ srgExchReal.Œ userExchFirst¡ cascade8259A1nFcbrgsbWsUserName0fF0IllegallyRemovedR AsibShared pAckInBuf¿rgLastCrashMsggpRgChgUserNumRqnconfigFilePrioB‹rgbRuns@fGraphicsBoard? pMouseDataÃuserNumChannelB, nChgUserNumRqr nSwapFabspRgPrgNetRouting•NodeName‰rgExitFileError™fSubsysChannelA8nRequestFileNames,Œ nNetUsers~ rgRawIntDesc¢nParDesc&sExec| mask8259A0 pRgSdInit” cbRgInitError¹ nSwappingRq„intSwtblî NetServerDatah fFsVerify~sbSwapFileTryEach‚ rgwTwoDigit)sbSwapFileTryFirstPswd+userNumClstrLast|pRgTerminationRqtcbRgCheckConfigPswd.mbIOPortAcontingencyLogp nTryNewMaster› iColCurrentFFilterProcessExch6sbInstallKbdPswd׋ nWsAbortRql cbRgCrashMsgT fHighSpeedÍ pRgWsAbortRqhrgcRqÓ sMapCurrentGrgMediatedIntDescÔsbExitRunFileDefault¸ nMediatedIntzcbCannotOpenSwapFileÕ nOSProcDescFrgInitProcHardWare¢‰nMsgWaitnDct4pDmaBuf· bitmapExchsWsRcb> timeSliceHbÁ FsRqBuffer¢ VerifyCodeMnExchg rgClusterMsg~cbAsibRexitRunFilePrio¶ rgWakeupRq% fGoingDown0Œ€ RqInterface InitLoadProcInitRtc InitConfigFsIn1 SysDeviceInitInitVpSwapFile ClockTestSchedInitMode3DmaCount RawCommNubbellRq InitNlsTables SysgenInitInit8259 mouseData rqTimeKbdTimerInterrupt LpInterrupt InitStatusSigIsrKbdInit BootBlock rqTimeVidTerminationProcessCEntryIntHKbdSysInProrgRcMax PmTraceRawInt InitSysCom InitDebugNubWsInitRqExInitSysTime InitComm2 LoadFileInitKbdTest TraceRawIntInitVam PmBreakRawIntInitKbdProcessrgPrgLocalServiceCodeWsAgentInit8251NMaskInterrupt RTCInterrupt InitVideo OsSubEntry BreakRawIntrgPrgNetRoutingWsInit1 FileSystem W0pH0€ÿÿpœÄ(Ä2Ä4¢Sð  C ¢H %h¢‰  ?•cHÐÀœaÄ3ÈUÄÈUÄÈ UÄ#ÈUÄÈUÄÈUÄ"TÈ$TÄ&TÈ(TÄ*TÈ,TÄ.È0UÄ2+È4U¢Ð ¢ô üÿÿ¢ ¢$  ,ÿÿ ¢2   R¢W ¢c  o¢p 4r €Pÿ¢¢ À’²¢Ã¢Ó¢ã  hange, 30) %SET(nUsrExchange, 2*%nPcb) %SET(nMsgWait, 64+%nPartitions*3) %SET(nMsgWaitReserve, 30) %SET(nPTiming, 26) %SET(fVerifyFileStruct, 0) %SET(nIob, 50) %SET(nFcb, 200) %SET(nFub, %nFcb) %SET(nFab, 400) %SET(nVhb, %nWinch+%nFloppy) %SET(nUcb, %nPartitions) %SET(nNetUsers,20) %SET(nXBlock,2) %SET(nSectorPerXBlock,5) %SET(sioClock,24) %SET(nRcb, 50) %SET(nSwapFabs, 80) $INCLUDE(Sysgen.Mdf) $INCLUDE(Sysgen.Asm) cb, 200) %SET(nFub, %nFcb) %SET(nFab, 400) %SET(nVhb, %nWinch+%nFloppy) %SET(sioClock,4) %SE OS.LIB(LowMem_t1 kernel_t1Vp Clock_t1Vp ClockFace Close_Mp CmCommon_Vp CommInt CommonSubs CommStatus_t1 CommNub_t1 Crash_t1 CreateDelete Date Directory DiskBuffPtr_a34 DmyLabels_t1Cls EmiDiv_Vp ExpandSpecs FadsMgr_Vp FileLog FileProcs FilePros_NoSwp FilterPros_Lfs Find Finish_vp Floppy_t1 FloppyNoCheck FormatData_t1 Hdisk_T1 IdleLoop InitComm_t1Mp KbdFil_Mp KbdInt_t1 KbdPros_Vp KbdRes_Vp KbdSysinPros_Mp KbdTranslateDia Kutil2 Load_Vp LockedIo Log Math32 MassInt_t1 MassIoPros_t1Mp MemoryMgr_Vp MulPar_Vp M¢ó¢¢ ,#0001020304050607080910111213141516¢KТ7¢R¢bð òR]CRASH STATUS (ERCLAST CRASH STATUS (ERCCLUSTER NOT RUNNING, ERC = CANNOT LOAD EXIT RUN FILE, ERC =INITIALIZATION ERROR STATUS&The swap file cannot be opened, erc = Primary SysService00[sys]checkconfig.runö ¢À¢À¢Ð¢à %@¿¿ÀÀ[Sys]Signon.Run¢aH ©¢ª  ¶€€¢¸O¢   Sys¢  #¢%\ %[sys]SwapArea00.sysp  ¢œ ÄV'ÈV'  §œ ÄV2ÈV2  ¬œ ÄV/ÈV/  ±(œ ÄVÈV  ¶)œ ÄV)ÈV)  »Aœ ÄV ÈV   ÀDœ ÄVÈV  ÅHœ ÄVÈV  ÊIœ ÄVÈV  ÏJœ ÄV1ÈV1  Ôœ ÄV.ÈV.  Ú ÿœ ÄVÈV  àEÿœ ÄVÈV  æFÿWœ ÄVÈV¢î¢øHq @‰ ’  .B‰ [sys]Request.ISAM.sys  l‰œ ÄV*ÈV*  u‰–œ ÄV,ÈV,  ~‰ô œ ÄV5ÈV5  ‡‰ œ ÄVÈV  ‰ œ ÄVÈV  ™‰œ ÄV ÈV  ¢‰œ ÄVÈV ¦‰œ ÄV0ÈV0 ª‰œ ÄV&ÈV& ®‰œ ÄVÈV ²‰œ ÄVÈV ¶‰œ ÄVÈV º‰œ ÄV ÈV  ¾‰œ ÄV-ÈV- ‰œ ÄV$ÈV$ Ɖœ ÄV"ÈV" ʉœ ÄVÈV Ήœ ÄVÈV Ò‰œ ÄVÈV Ö‰œ ÄV!ÈV! Ú‰œ ÄV4ÈV4 Þ‰œ ÄV(ÈV( ≜ ÄVÈV 扜 ÄVÈV ꉜ ÄV ÈV   ÄV%ÈV% ò‰œ ÄV ÈV  ö‰œ ÄVÈV ú‰œ ÄVÈV þ‰[Sys]SysInit.Runœ ÄVÈV¢ŠG _Š¢`Š  lŠ€[Sys]Nls.sys¢€ŠK ËŠ¢ÌŠ  ØŠ[Sys]Config.sys¢íŠH 5‹¢6‹  ;B‹€[Sys]Ws###>Config.sys[Sys]InstallVdm.run¢y‹D 9½‹[Sys]InstallKbd.run[Sys]MathServer.run ò‹@œ ÄV ÈV  Œ?œ ÄVÈV Œ?œ ÄVÈV x  z F { ¡ xŒ ÿÿÿ0{p^Š%SET(wsType, 8) %SET(localFS, 1) %SET(fHDisks, 1) %SET(hardwareType,4) %SET(clusterConfig,1) %SET(fNoFileSystem,0) %SET(fCommIop,0) %SET(sOsData,30000) %SET(nWinch,4) %SET(nFloppy,4) %SET(fMulpar,0FFh) %SET(fVarpar,0FFh) %SET(sParExitRunFile, 8192) %SET(fTimeSliceEnable, 0h) %SET(lbTimeSlicePriority, 146) %SET(hbTimeSlicePriority, 178) %SET(lineHz, 40) %SET(sContingencyLog, 1) %SET(sKbdBuffer, 128) %Set(maxMedInterruptType, 87) %SET(nFrames, 8) %SET(nPartitions, 24) %SET(nPcb, 3*%nPartitions) %SET(nSysExc ulParUtil_Mp NonMaskInt_t1 Open OsSubset Printer1_t1 Printer2_t1 PrinterInt_t1 Reset_Vp ResourceMgr_Vp RqInterface Sched_Vp SetVec_it1Mp SoftVecMgr_Mp SrpDmy_WS Status SuspendResume_Vp SwapIo TermPros_Vp Timer_t1Mp Ulcmpb Util_Vp Vdm1Dmy Vdm2Dmy VidBlank_t1 VidIO_t1 Volume XbWindow) Clstr.LIB(WsAgent_aClstr WsLph_t1Clstr) Init.LIB(Fork_vp) DBG.LIB(t1hNub_vp t1DScr_vp DbgRaw DbgIn3 t1hOs_vp DbgPat) Dbg.lib(DbgNubPmUtil DbgNubPm) SourceDbgNub.lib(SourceDbgNub SourceDbgOsData SourceDbgRq SourceDbgScr) [Sys]Ctos.Lib(KernelNames) Kbd.OBJ rqlabl.obj rqlablAlt.obj request.obj nClstrLfs.obj DBG.LIB(t1DLow t1hOnc_vp) SourceDbgNub.lib(SourceDbgOnc) Init.LIB(InitBoot_t1 InitClock InitCommon InitConfig InitDev InitExit_vp InitFile_t1Vp InitFont_t1 InitFloppy_t1 InitKbd InitKbdPros_Mp InitKbdInt InitKernel_Mp InitKProcs InitLoad InitLoadProc InitMem InitMulPar_vp InitNls_Ws InitOs_Mp InitOsMain InitOsSubs_Mp InitParity InitProcTbl_WS InitSysgen InitTimer1 InitTimer InitNoVid_t1 InitVamDmy InitWs_t1ClstrMp InitWs1 InitRqEx_Ws InitWin_t1 InitNGenIoAddr InitOsEnd) € nClstrLfsˆCTAsm II-1.0–Y??SEG??SEGconstconstdatadatalowmemlowmem Sysgen_LowMemLowMemdcbSegCOEDDGroup˜h˜h˜h™˜h˜hð ˜h€ š ÿÿø saSemiLowestnPTimingnInitProcIntDisable–˜ oRgOExUcb* sIntSwtblHnInitProcHardWare”˜ibSwapFileNumberìmBufOutˆ cFramesMax] fInitExit® bGraphicsPortC userNumLast‚ nXBlockv fTimeSliceÖ cbPriParName8rgRequestFileNames”•RtcTpb• cbSysSvcParName@ pAckOutBufà swapFileSizeî saTempLowestsbInstallMathSpec2˜ endOsTable„•nFubsbInstallVdmPswd˜pSysTime« nInitProcIntEnable˜˜nRgInitRtcRequest’˜ rgbRunsVirgin|nIopsNsbSwapFileTryEachPswdëoExUcb² eventControlBlock8 nTerminationRq€ xBusWindowSizeÓ rgSysSvcParnameA saEndMemory sbScratchVolumeSpecf ContextStatus× sbNlsFilePassword%—nMsgWaitReserve rgMassioDispˆ hardwareType nBytExchs† cWakeUpRqg userNumKbd. timeSliceLbÔ rgUcbSrgAribŽ rgfLineDirty|cbRgCheckConfigRsbWsConfigFileSpecž—sbInitFilePassword¹–fMulpar$ rgExchReal†•wXlatTableChksum› exitRunFilePrioSaveexchSchedPocket¦ oRgOUcb(fF1IllegallyRemoved[ rgCommLineØ rgpVidMemLineg ž sbNlsFileSpecÈ– rgCrashMsg‘rgUserReadCount7 ExchNetServerŽ rgPriParName9rgWsLocalUserNum° rgDeltaPriority nTicks\ cbRgClusterMsg¹saGraphicsBoard= maskFPIndexQ rgOsTableT userNumVdmKsbConfigFileSpec2—sBufOutŠ rgOUcb@ sbInitFileSpec\–pRgOUcb³ rgAsibŸ ExitRunFileDefPriod pBootBlock¯ fAwsPIT” ContextState nIob rqDelayDiscnsbExitRunFilePswdùpBitmapExchsSave¥ sbSwapFileTryFirstt pRgSwappingRqˆ rgbRunsTemp|nUcbrgInitProcIntDisable–maskVerifyCodeO saSemiHighestrgWsId° fSFNM¥˜fCommIop#wsTypesbConfigFilePswd—rgInitProcIntEnable0–oRgUserWaitCount4sbExitRunFileDefPswdW iobufŒgen¦˜orgPcb0wVerBuff’ sbInstallVdmSpecº—rgTib& fFloppyCheck< initSysDevNumœ˜sbInstallMathPswdK˜cRcbMaxx wOSVersion< dmaBufosTypesaMaxPartition´ sioClockp pXlatTable— userNumVid, rgOSProcDesc°•nVhbConfigpUserXlatTable cbNodeName nRgMassioDispš˜ extCntlRegAws^ nRawIntŒ sarCurrentInPcb rgInitErroröfSubsysChannelB: initFilePrioÆ–nSectorPerXBlocktpRgRcMax¡ rgCheckConfigS fSysChannelAÖ fLfsToMaster£ rgInitRtcRequestL˜bitmapExchsSaveq userNumChannelA wsUserNumLast° sbExitRunFileSpecœ clusterConfig! fNoFileSystem"sbInstallKbdSpec˜ exchSched¤   ASH STATUS (ERCCLUSTER NOT RUNNING, ERC = CANNOT LOAD EXIT RUN FILE, ERC =INITIALIZATION ERROR STATUS&The swap file cannot be opened, erc = Primary SysService00ö[sys]checkconfig.run¢ n2¢À¢À¢Ð¢à |¿¿ÀÀ ˆœ ÄVÈV )Œ[Sys]Signon.Runœ!ÄV$ÈV$ÄVÈVÄVÈ VÄ VÈV¢±H ù¢ú  €€¢O¢W   dSys¢j  s[sys]CrashDump.sys¢ŒE %Ñ[sys]SwapArea00.sysp  òœ ÄV.ÈV.  ÷œ ÄV;ÈV;  üœ ÄV8ÈV8  (œ ÄV%ÈV%  )œ ÄV1ÈV1   Aœ ÄVÈV  Dœ ÄVÈV  Hœ ÄV ÈV   Iœ ÄVÈV  Jœ ÄV:ÈV:  $œ ÄV7ÈV7  * ÿœ ÄVÈV  0ÿœ ÄVÈV  6Cÿœ ÄVÈV  <Eÿœ ÄVÈV  BFÿWœ ÄV!ÈV!¢cbRgLastCrashMsg¢oRgUserReadCount2rgCheckConfigPswdm saTempHighest GraphicsInfo=cbRgExitFileErrorÔnSdInit¬ rgIopChannrgCannotOpenSwapFile fSysChannelB6 iLineCurrentE pRgOExUcb· srgExchReal¤˜ userExchFirst© cascade8259AQnFcbrgsbWsUserNamepfF0IllegallyRemovedZ AsibSharedW pAckInBufÇ rgLastCrashMsg£pRgChgUserNumRqv configFilePrioœ—rgbRuns|fGraphicsBoard? pMouseDataË userNumChannelB4 nChgUserNumRqz nSwapFabs¡ pRgPrgNetRouting NodeName‘ rgExitFileErrorÕFfSubsysChannelA8nRequestFileNames¢˜ nNetUsers† rgRawIntDescònParDesc&sExec mask8259AP pRgSdInit¨ cbRgInitErrorõ nSwappingRqŒ intSwtblJ NetServerDatap fFsVerify’ sbSwapFileTryEachÒ rgwTwoDigitm sbSwapFileTryFirstPswdÑuserNumClstrLast„ pRgTerminationRq| cbRgCheckConfigPswdlmbIOPortAcontingencyLog„ nTryNewMaster¯ iColCurrentFFilterProcessExchrsbInstallKbdPswd1˜ nWsAbortRqt cbRgCrashMsg fHighSpeedÕ pRgWsAbortRqp rgcRqï sMapCurrentGrgMediatedIntDesc$ rgSysCommInt« sbExitRunFileDefault nMediatedIntŽ cbCannotOpenSwapFile nOSProcDesc> rgInitProcHardWareø•nMsgWaitnDctnpDmaBuf¿ bitmapExchs_ sRcbz timeSliceHbÕ FsRqBuffer¶ VerifyCodeMnExchg rgClusterMsgº nSysCommInt ˜cbAsibŽexitRunFilePrio rgWakeupRqi fGoingDownnŒ RqInterface StartHardDisk InitLoadProcInitRtc InitConfigFsIn1MassIoFsIn2 SysDeviceInitInitVpSwapFile ClockTestSchedInitMode3DmaCount RawCommNubbellRq InitNlsTables SysgenInitInit8259 mouseData rqTimeKbdTimerInterruptFloppyInterruptrqTimeMassIoPoll LpInterrupt InitStatusSigIsrKbdInitHardDiskInterrupt BootBlock rqTimeVidTerminationProcessCEntryIntHKbdSysInProrgRcMax StartFloppy PmTraceRawInt InitSysCom InitDebugNubWsInitRqExInitSysTime InitComm2 LoadFileInitKbdTest TraceRawIntLclfsFilterProcessInitVam PmBreakRawIntInitKbdProcess rqTimeMassIorgPrgLocalServiceCodeWsAgentInit8251NMaskInterrupt RTCInterrupt InitVideo OsSubEntry BreakRawIntrgPrgNetRoutingWsInit1 FileSystem WHˆ2ÈÈ@ 7 O 0€ÿÿpœÄ(Ä2Ä4¢Sè  ; ¢@  %p +¢‘  ? q @ ÐÀœaÄ<ÈUÄ#ÈUÄÈ UÄ*ÈUÄÈUÄÈUÄ"TÈ$TÄ&TÈ(TÄ*TÈ,TÄ.È0UÄ24È4U¢Ø ¢ü   ÿÿ¢ ¢,   4 ÿÿ ¢:   Z ¢_ ¢q  ƒ ¢„  4† € Pÿ¢¶  Ô ’²¢× ¢ï ¢ ¢ ¢7 ¢O  <g 00010203040506070809101112131415161718192021222324¢Ÿ ¸¢W7¢Ž˜¢&h äŽ]CRASH STATUS (ERCLAST CR J¢T 0u „• ¦  ¤  .†•   [sys]Request.ISAM.sys  °•œ ÄV2ÈV2  ¹•– œ ÄV5ÈV5  •œ ÄVÈV  Ë• œ ÄV/ÈV/  Ô•ô œ ÄV>ÈV>  Ý•œ ÄV"ÈV"  敜 ÄVÈV   ÄV ÈV  ø•œ ÄVÈV ü•œ ÄV9ÈV9 –œ ÄV-ÈV- –œ ÄV ÈV  –œ ÄV ÈV   –œ ÄV6ÈV6 –œ ÄV+ÈV+ –œ ÄV)ÈV) –œ ÄVÈV –œ ÄVÈV  –œ ÄVÈV $–œ ÄV&ÈV& (–œ ÄVÈV ,–œ ÄV(ÈV( 0–œ ÄV=ÈV= 4–œ ÄV0ÈV0 8–œ ÄVÈV <–œ ÄV ÈV  @–œ ÄVÈV D–œ ÄV'ÈV' H–œ ÄV,ÈV, L–œ ÄVÈV P–œ ÄV ÈV  T–œ ÄVÈV X–[Sys]SysInit.Runœ ÄVÈV¢r–G ¹–¢º–  Æ–€[Sys]Nls.sys¢Ú–K %—¢&—  2—[Sys]Config.sys¢G—H —¢—  ;œ—€[Sys]Ws###>Config.sys[Sys]InstallVdm.run¢Ó—D 9˜[Sys]InstallKbd.run[Sys]MathServer.run  ÿÿÿf0¢   ¢   4 Ðÿÿÿ6ÿM  Pÿÿÿf1¢Y   c¢d   4pÐÿÿÿ6ÿM   ÿÿÿf2¢©   ³¢´   4ÀÐÿÿÿ6ÿM  ðÿÿÿf3¢ù   ¢   4Ðÿÿÿ6ÿM  @ÿd0¢I   Sd0¢V   4``½ÿÿÿÊ  ÿd1¢™   £d1¢¦   4°`½ÿÿÿÊ  àÿd2¢é   ód2¢ö   4`½ÿÿÿÊ  0ÿd3¢9   Cd3¢F   4P`½ÿÿÿÊ L˜@œ ÄVÈV Z˜?œ ÄVÈV h˜?œ ÄVÈV v˜ªªÿÿœ ÄV3ÈV3 „˜aœ ÄVÈV Œ  Ž  >  « ©  x’˜ ÿÿÿH«ˆ~2ÈÈP ð@à0œAÄ4TÈ6TÄ8TÈ:TÄTÄ@TÈBTÄDTÈFTÄHTÈJTÄLTÈNTÄPTÈRTŠ%set(wsType,9) %SET(hardwareType,4) %SET(clusterConfig,2) %SET(fNoFileSystem,0) %SET(fCommIop,0) %SET(nWinch,4) %SET(nFloppy,4) %SET(sOsData,30600) %SET(fMulpar,0FFh) %SET(fVarpar,0FFh) %SET(sParExitRunFile, 8192) %SET(fTimeSliceEnable, 0h) %SET(lbTimeSlicePriority, 146) %SET(hbTimeSlicePriority, 178) %SET(nPartitions, 20) %SET(lineHz, 40) %SET(sContingencyLog, 1) %SET(sKbdBuffer, 128) %Set(maxMedInterruptType, 87) %SET(nFrames, 8) %SET(nPcb, 2*%nPartitions) %SET(nSysExchange, 30) %SET(nUsrExchange, 2*%nPcb) %SET(nXBlock,12) %SET(nSectorPerXBlock,5) %SET(nSectorPerXBlockFast,10) %SET(nXBlockSmall,20) %SET(sMaxSmallRq,64) %SET(nMsgWait, 64+%nPartitions*3+(%nXBlock+%nXBlockSmall)*2) %SET(nMsgWaitReserve, 30+(%nXBlock+%nXBlockSmall)) %SET(nPTiming, 30) %SET(fVerifyFileStruct, 1) %SET(wsTotal, 15) %SET(nIob, %nPartitions+%nXBlock-2) %SET(nUcb, %nPartitions) %SET(nUserNum, %nUcb + %wsTotal*11) %SET(nNetUsers, 20) %SET(nFcb, 200) %SET(nFub, %nFcb) %SET(nFab, 400) %SET(nVhb, %nWinch+%nFloppy) %SET(sioClock,4) %SE  ndOsTable8šnFubsbInstallVdmPswdÇœpSysTime'nInitProcIntEnableHnRgInitRtcRequestB rgbRunsVirginØnIopsºsbSwapFileTryEachPswdG oExUcb² eventControlBlock´nTerminationRqüxBusWindowSizeOrgSysSvcParname­ saEndMemory sbScratchVolumeSpec ContextStatus× sbNlsFilePasswordÕ›nMsgWaitReserve rgMassioDispä hardwareType nBytExchsò cWakeUpRqO userNumKbd. timeSliceLbÔ rgUcbSrgAribú rgfLineDirtyØcbRgCheckConfig¾sbWsConfigFileSpecNœsbInitFilePasswordi›fMulpar$ rgExchReal:šwXlatTableChksum exitRunFilePrioSavecexchSchedPocket oRgOUcb(fF1IllegallyRemoved× rgCommLineT rgpVidMemLineO™ sbNlsFileSpecx› rgCrashMsgýrgUserReadCount' ExchNetServer  rgPriParName¥rgWsLocalUserNumh rgDeltaPrioritynTicksØcbRgClusterMsg%saGraphicsBoard= maskFPIndexQfSrpUpÚ rgOsTable°" userNumVdmKsbConfigFileSpecâ›sBufOutörgOUcbÄsbInitFileSpec ›pRgOUcb/rgAsibExitRunFileDefPrioÀ pBootBlock+fAwsPIT ConteT(nSwapFabs, 80) $INCLUDE(Sysgen.Mdf) $INCLUDE(Sysgen.Asm)  €!€+€*€€ € 0€F€€€ €€/€€` N ´{æ¦õ··Ç·ç·ø·9·Š·¹··­‡9ÙÝ é C c À §e ‰e Âe Me e sÓ ÍÓ °Ó ½ Ó  ¦Áš>šC7Ö7q7Ô77#7 ß­ßÍßëßJ߉ßäß+ß¼ß Î$ÎùÎúÎ>ÎhÎÎ:ÎΙÎìÎe Î:’d’‚’×’’C’…’B’Ž’’<’Ö OS.LIB(LowMem_t1 kernel_t1Vp Clock_t1Vp ClockFace Close_Mp CmCommon_Vp CommInt CommonSubs Crash_t1 CreateDelete Date Directory DiskBuffPtr_a34 DmyLabels_t1Lfs InitComm_t1Mp CommStatus_t1 CommNub_t1 LockedIo EmiDiv_Vp ExpandSpecs Floppy_t1 FileLog FileProcs Finish_vp FloppyNoCheck FilePros_NoSwp Find FormatData_t1 Hdisk_T1 IdleLoop KbdFil_Mp KbdInt_t1 KbdPros_Vp KbdRes_Vp KbdSysinPros_Mp KbdTranslateDia Kutil2 Load_Vp Log Math32 MassInt_t1 MassIoPros_t1Mp MulPar_Vp MemoryMgr_Vp Sched_Vp FadsMgr_Vp SuspendResume_Vp Util_Vp MulParUtil_Mp NonMaskInt_t1 Open OsSubset Printer1_t1 Printer2_t1 PrinterInt_t1 Reset_Vp ResourceMgr_Vp RqInterface SetVec_it1Mp SoftVecMgr_Mp SrpDmy_Ws Status SwapIo TermPros_Vp Timer_t1Mp VidBlank_t1 VidIO_t1 Vdm2Dmy Vdm1Dmy Volume XbWindow Ulcmpb) Clstr.lib(MstrAgentSubs MstrAgent MstrLph_t1Mstr) Init.LIB(Fork_vp) DBG.LIB(t1hNub_vp t1DScr_vp DbgRaw DbgIn3 t1hOs_vp DbgPat) Dbg.lib(DbgNubPmUtil DbgNubPm) SourceDbgNub.lib(SourceDbgNub SourceDbgOsData SourceDbgRq SourceDbgScr) [Sys]Ctos.Lib(KernelNames) Kbd.OBJ rqlabl.obj rqlablAlt.obj request.obj nMstr.obj DBG.LIB(t1DLow t1hOnc_vp) SourceDbgNub.lib(SourceDbgOnc) Init.LIB(InitBoot_t1 InitClock InitCommon InitConfig InitDev InitExit_vp InitFont_t1 InitFile_t1Vp InitFloppy_t1 InitKbd InitKbdPros_Mp InitKbdInt InitKernel_Mp InitKProcs InitLoad InitLoadProc InitMem InitMulPar_vp InitNls_ws InitOs_Mp InitOsMain InitOsSubs_Mp InitProcTbl_WS InitParity InitSysgen InitTimer1 InitTimer InitNoVid_t1 InitVamDmy InitMstr_t1Mp InitRqEx_Ws InitWin_t1 InitNGenIoAddr InitOsEnd) €nMstrˆCTAsm II-1.0–D??SEG??SEGconstconstdatadatalowmemlowmemdcbSegCOEDDGroup˜h˜h˜h¶˜h˜h€ š ÿÿø saSemiLowestnPTimingnInitProcIntDisableF oRgOExUcb* sIntSwtbl¤ nInitProcHardWareDibSwapFileNumberH mBufOutô cFramesMaxÙ fInitExit bGraphicsPortC userNumLastþnXBlockÔ fTimeSliceÖ cbPriParName¤rgRequestFileNamesHšRtcTpb cbSysSvcParName¬ pAckOutBuf? swapFileSizeJ saTempLowestsbInstallMathSpec✠e xtStateÿ nIobsbExitRunFilePswdUpBitmapExchsSave!sbSwapFileTryFirstÐ pRgSwappingRq rgbRunsTempØnUcbrgInitProcIntDisable¼šmaskVerifyCodeO saSemiHighestrgWsId fSFNMUfCommIop#wsTypesbConfigFilePswd?œrgInitProcIntEnableàšoRgUserWaitCount4sbExitRunFileDefPswd³ iobufþgenVorgPcb0wVerBuffþsbInstallVdmSpecjœrgTibÎ fFloppyCheck< initSysDevNumLsbInstallMathPswdûœ wOSVersionÀosTypesaMaxPartition´ sioClockË pXlatTable userNumVid, rgOSProcDescdšnVhbConfigpUserXlatTable cbNodeName  nRgMassioDispJ extCntlRegAwsÚnRawIntø sarCurrentInPcb rgInitErrorbfSubsysChannelB: initFilePriov›nSectorPerXBlockÐpRgRcMax rgCheckConfig¿ fSysChannelAR fLfsToMaster rgInitRtcRequestüœbitmapExchsSaveåuserNumChannelA€ wsUserNumLast sbExitRunFileSpecø clusterConfig! fNoFileSystem"sbInstallKbdSpecÈœ exchSched cbRgLastCrashMsgoRgUserReadCount2rgCheckConfigPswdÙ saTempHighest GraphicsInfo=cbRgExitFileError@nSdInit rgIopChanÚrgCannotOpenSwapFile~ fSysChannelB6 iLineCurrentE pRgOExUcb3 srgExchRealT userExchFirst% cascade8259A½nFcbrgsbWsUserNameÛfF0IllegallyRemovedÖ AsibSharedà pAckInBufCrgLastCrashMsgpRgChgUserNumRqòconfigFilePrioLœrgbRunsØÍ nXBlockSmallÖfGraphicsBoard? pMouseDataGuserNumChannelB° nChgUserNumRqö nSwapFabs pRgPrgNetRoutingNodeName rgExitFileErrorAfSubsysChannelA8nRequestFileNamesR nNetUsers rgRawIntDescN nParDesc&sExecü mask8259A¼ pRgSdInit cbRgInitErrora nSwappingRqintSwtbl¦ NetServerDataì fFsVerifyþ sbSwapFileTryEach. rgwTwoDigitUsbSwapFileTryFirstPswd- userNumClstrLastpRgTerminationRqøcbRgCheckConfigPswdØmbIOPortAcontingencyLogð nTryNewMaster iColCurrentFsbInstallKbdPswdᜠnWsAbortRqð cbRgCrashMsgü fHighSpeedQ pRgWsAbortRqìrgcRqë sMapCurrentGrgMediatedIntDesc€ rgSysCommInt'sbExitRunFileDefaultd nMediatedIntúcbCannotOpenSwapFile} nOSProcDescÂrgInitProcHardWare¬šnMsgWaitnDctÎpDmaBuf; bitmapExchsÛ timeSliceHbÕ FsRqBuffer¶ sSmallXBlockÒ VerifyCodeMnExchg rgClusterMsg& nSysCommIntPcbAsibúexitRunFilePriob rgWakeupRqQ fGoingDownÌŒý RqInterface StartHardDisk InitLoadProcInitRtc InitConfigFsIn1MassIoFsIn2MstrAgentReceiver SysDeviceInitInitVpSwapFile ClockTestSchedInitMode3DmaCount RawCommNubbellRq InitNlsTables SysgenInitInit8259 mouseData rqTimeKbdTimerInterruptFloppyInterruptrqTimeMassIoPoll LpInterrupt InitStatusSigIsrKbdInitHardDiskInterrupt BootBlock rqTimeVidTerminationProcessCEntryIntHKbdSysInProrgRcMax StartFloppy PmTraceRawInt InitSyscom InitDebugNubRqExInitSysTime InitComm2 LoadFileInitKbdTest TraceRawIntInitVam PmBreakRawIntInitKbdProcessInitMstr rqTimeMassIorgPrgLocalServiceCodeInit8251NMaskInterrupt RTCInterrupt InitVideo OsSubEntry BreakRawIntrgPrgNetRouting FileSystem MstrAgent W (¼>ÈÈÄ';0€ÿÿpœÄ(Ä2Ä4¢Sl  ¿ ¢Ä %ì̸¢   ?åÄÚÚÚœaÄ;ÈUÄ$ÈUÄÈ UÄ*ÈUÄÈUÄÈUÄ"TÈ$TÄ&TÈ(TÄ*TÈ,TÄ.È0UÄ24È4U¢T ¢x €ÿÿ¢„ ¢¨  °ÿÿ ¢¶   Ö¢Û ¢å  ï¢ð ò € ¢þ $þ ÿPÿ¤¢ ¥¢h ¥ ² ¢¶  Ô ’²¢× ¢ë ¢ÿ ¢¢'¢; 4O000102030405060708091011121314151617181920¢D¢Ã7¢úÔ¢Î, äú]CRASH STATUS (ERCLAST CRASH STATUS (ERC  ÿÿÊ üœ@œ ÄVÈV  ?œ ÄVÈV ?œ ÄVÈV &ªªÿÿœ ÄV3ÈV3 4aœ ÄVÈV ø  ú Â k % xB ÿÿÿ(k¼>nÈÈP ð@à0œAÄ4TÈ6TÄ8TÈ:TÄTÄ@TÈBTÄDTÈFTÄHTÈJTÄLTÈNTÄPTÈRTŠ%SET(wsType, 8) %SET(includeLFS, 0) %SET(fHDisks, 1) %SET(hardwareType,4) %SET(clusterConfig,0) %SET(fNoFileSystem,0) %SET(fCommIop,0) %SET(nWinch,4) %SET(nFloppy,4) %SET(sOsData,28000) %SET(fMulpar,0FFh) %SET(fVarpar,0FFh) %SET(sParExitRunFile, 8192) %SET(fTimeSliceEnable, 0h) %SET(lbTimeSlicePriority, 146) %SET(hbTimeSlicePriority, 178) %SET(nPartitions, 24) %SET(lineHz, 40) %SET(sContingencyLog, 1) %SET(sKbdBuffer, 128) %Set(maxMedInterruptType, 87) %SET(nFrames, 8) %SET(nPcb, 3*%nPartitions) %SET(nSysCLUSTER NOT RUNNING, ERC = CANNOT LOAD EXIT RUN FILE, ERC =INITIALIZATION ERROR STATUS&The swap file cannot be opened, erc = Primary SysService00ö[sys]checkconfig.run¢ Ú¢Ûð Ë@ ¿¿ÀÀ äœ ÄVÈV )è[Sys]Signon.Runœ!ÄV%ÈV%ÄVÈVÄVÈ VÄ VÈV¢ H U¢V  b€€¢dO¢³   ÀSys¢Æ  Ï[sys]CrashDump.sys¢èE %- [sys]SwapArea00.sysp  N œ ÄV.ÈV.  S œ ÄV:ÈV:  X œ ÄV7ÈV7  ] (œ ÄV&ÈV&  b )œ ÄV0ÈV0  g Aœ ÄVÈV  l Dœ ÄVÈV  q Hœ ÄV!ÈV!  v Iœ ÄVÈV  { Jœ ÄV9ÈV9  € œ ÄV6ÈV6  † ÿœ ÄVÈV  Œ ÿœ ÄVÈV  ’ Cÿœ ÄVÈV  ˜ Eÿœ ÄVÈV  ž FÿWœ ÄV"ÈV"¢¦ ¢°"ˆw 8š     .:š   [sys]Request.ISAM.sys  dšœ ÄV1ÈV1  mšô œ ÄV ÈV   všô œ ÄV=ÈV=  šœ ÄVÈV  ˆšôœ ÄV<ÈV<  ‘šœ ÄV#ÈV#  ššœ ÄV ÈV   £šœ ÄV ÈV  ¬šœ ÄVÈV °šœ ÄV8ÈV8 ´šœ ÄV-ÈV- ¸šœ ÄV ÈV  ¼šœ ÄVÈV Àšœ ÄV5ÈV5 Äšœ ÄVÈV Èšœ ÄV+ÈV+ Ìšœ ÄV)ÈV) Кœ ÄVÈV Ôšœ ÄVÈV Øšœ ÄV'ÈV' Üšœ ÄVÈV àšœ ÄV/ÈV/ äšœ ÄVÈV èšœ ÄV ÈV  ìšœ ÄVÈV 𚜠ÄV2ÈV2 ôšœ ÄV(ÈV( øšœ ÄV,ÈV, üšœ ÄVÈV ›œ ÄV ÈV  ›œ ÄVÈV ›[Sys]SysInit.Runœ ÄVÈV¢"›G i›¢j›  v›€[Sys]Nls.sys¢Š›K Õ›¢Ö›  â›[Sys]Config.sys¢÷›H ?œ¢@œ  ;Lœ€[Sys]Ws###>Config.sys[Sys]InstallVdm.run¢ƒœD 9Çœ[Sys]InstallKbd.run[Sys]MathServer.run  ÿÿÿf0¢   ¢   4 Ðÿÿÿ6ÿM  Pÿÿÿf1¢Y   c¢d   4pÐÿÿÿ6ÿM   ÿÿÿf2¢©   ³¢´   4ÀÐÿÿÿ6ÿM  ðÿÿÿf3¢ù   ¢   4Ðÿÿÿ6ÿM  @ÿd0¢I   Sd0¢V   4``½ÿÿÿÊ  ÿd1¢™   £d1¢¦   4°`½ÿÿÿÊ  àÿd2¢é   ód2¢ö   4`½ÿÿÿÊ  0ÿd3¢9   Cd3¢F   4P`½ÿ Exchange, 30) %SET(nUsrExchange, 2*%nPcb) %SET(nMsgWait, 64+%nPartitions*3) %SET(nMsgWaitReserve, 30) %SET(nPTiming, 26) %SET(fVerifyFileStruct, 0) %SET(nIob, %nPartitions) %SET(nFcb, 200) %SET(nFub, %nFcb) %SET(nFab, 400) %SET(nVhb, %nWinch+%nFloppy) %SET(nUcb, %nPartitions) %SET(nNetUsers,20) %SET(nSwapFabs, 80) $INCLUDE(Sysgen.Mdf) $INCLUDE(Sysgen.Asm) ET(nSwapFabs, 80) $INCLUDE(Sysgen.Mdf) $INCLUDE(Sysgen.Asm) cb, 200) %SET(nFub, %nFcb) %SET(nFab, 400) %SET(nVhb, %nWinch+%nFloppy) %SET(sioClock,4) %SE OS.LIB(LowMem_t1 kernel_t1Vp Clock_t1Vp ClockFace Close_Mp CmCommon_Vp CommInt CommonSubs Crash_t1 CreateDelete Date Directory DiskBuffPtr_a34 DmyLabels_t1Lfs InitComm_t1Mp CommStatus_t1 CommNub_t1 LockedIo EmiDiv_Vp ExpandSpecs Floppy_t1 FileLog FileProcs Finish_vp FloppyNoCheck FilePros_NoSwp Find FormatData_t1 Hdisk_T1 IdleLoop KbdFil_Mp KbdInt_t1 KbdPros_Vp KbdRes_Vp KbdSysinPros_Mp KbdTranslateDia Kutil2 Load_Vp Log Math32 MassIoPros_t1Mp MassInt_t1 MulPar_Vp MemoryMgr_Vp Sched_Vp FadsMgr_Vp SuspendResume_Vp Util_Vp MulParUtil_mp NonMaskInt_t1 Open OsSubset Printer1_t1 Printer2_t1 PrinterInt_t1 Reset_Vp ResourceMgr_Vp RqInterface SetVec_it1Mp SoftVecMgr_Mp SrpDmy_Ws Status SwapIo TermPros_Vp Timer_t1Mp VidBlank_t1 VidIO_t1 Vdm2Dmy Vdm1Dmy Volume XbWindow Ulcmpb) Init.LIB(Fork_vp) DBG.LIB(t1hNub_vp t1DScr_vp DbgRaw DbgIn3 t1hOs_vp DbgPat) Dbg.lib(DbgNubPmUtil DbgNubPm) SourceDbgNub.lib(SourceDbgNub SourceDbgOsData SourceDbgRq SourceDbgScr) [Sys]Ctos.Lib(KernelNames) Kbd.OBJ rqlabl.obj rqlablAlt.obj request.obj nStnd.obj DBG.LIB(t1DLow t1hOnc_vp) SourceDbgNub.lib(SourceDbgOnc) Init.LIB(InitBoot_t1 InitClock InitCommon InitConfig InitDev InitExit_vp InitFont_t1 InitFile_t1Vp InitFloppy_t1 InitKbd InitKbdPros_Mp InitKbdInt InitKernel_Mp InitKProcs InitLoad InitLoadProc InitMem InitMulPar_vp InitNls_ws InitNgenIoAddr InitOs_Mp InitOsMain InitOsSubs_Mp InitParity InitProcTbl_WS InitSysgen InitTimer1 InitTimer InitNoVid_t1 InitVamDmy InitRqEx_Ws InitWin_t1 InitOsEnd) €nStndˆCTAsm II-1.0–D??SEG??SEGconstconstdatadatalowmemlowmemdcbSegCOEDDGroup˜h˜h˜h,‘˜h˜h€ š ÿÿþ saSemiLowestnPTimingnInitProcIntDisable¼ oRgOExUcb* sIntSwtblXnInitProcHardWareºibSwapFileNumbermBufOutˆ cFramesMax] fInitExit® bGraphicsPortC userNumLast‚ fTimeSliceÖ cbPriParName8rgRequestFileNamesÔRtcTpb• cbSysSvcParName@ pAckOutBufà swapFileSize saTempLowestsbInstallMathSpecX endOsTableÄnFubsbInstallVdmPswd=pSysTime« nInitProcIntEnable¾nRgInitRtcRequest¸ rgbRunsVirginnIopsNsbSwapFileTryEachPswdÿoExUcb² eventControlBlock8 nTerminationRq€ xBusWindowSizeÓ rgSysSvcParnameA saEndMemory sbScratchVolumeSpecz ContextStatus× sbNlsFilePasswordKnMsgWaitReserve rgMassioDispœ hardwareType nBytExchs† cWakeUpRqg userNumKbd. timeSliceLbÔ rgUcbSrgAribŽ rgfLineDirtycbRgCheckConfigRsbWsConfigFileSpecÄsbInitFilePasswordߎfMulpar$ rgExchRealÆwXlatTableChksum› exitRunFilePrioSaveexchSchedPocket¦ oRgOUcb(fF1IllegallyRemoved[ rgCommLineØ rgpVidMemLineg sbNlsFileSpec rgCrashMsg‘rgUserReadCount7 ExchNetServerŽ rgPriParName9rgWsLocalUserNum° rgDeltaPriority nTicks\ cbRgClusterMsg¹saGraphicsBoard= maskFPIndexQfSrpUpp rgOsTabled userNumVdmKsbConfigFileSpecXsBufOutŠ rgOUcb@ sbInitFileSpec‚ŽpRgOUcb³ rgAsibŸ ExitRunFileDefPriox pBootBlock¯ fAwsPIT” ContextState nIob rqDelayDiscnsbExitRunFilePswd pBitmapExchsSave¥ sbSwapFileTryFirstˆ pRgSwappingRqˆ rgbRunsTempnUcbrgInitProcIntDisable6ŽmaskVerifyCodeO saSemiHighestrgWsId° fSFNMËfCommIop#wsTypesbConfigFilePswdµrgInitProcIntEnableZŽoRgUserWaitCount4sbExitRunFileDefPswdk iobufþgenÌorgPcb0wVerBuff’ sbInstallVdmSpecàrgTib& fFloppyCheck< initSysDevNumÂsbInstallMathPswdq wOSVersion< osTypesaMaxPartition´ pXlatTable— userNumVid  Pÿ¢¶  Ô ’²¢× ¢ï ¢ ¢ ¢7 ¢O  <g 00010203040506070809101112131415161718192021222324¢Ÿ ¸¢W7¢Ž˜¢&h äŽ]CRASH STATUS (ERCLAST CRASH STATUS (ERCCLUSTER NOT RUNNING, ERC = CANNOT LOAD EXIT RUN FILE, ERC =INITIALIZATION ERROR STATUS&The swap file cannot be opened, erc = Primary SysService00ö[sys]checkconfig.run¢ n¢q ¿¿ÀÀ œœ ÄVÈV ) [Sys]Signon.Runœ!ÄV#ÈV#ÄVÈVÄVÈ VÄ VÈV¢ÅH  ¢  €€¢O¢k   xSys¢~  ‡[sys]CrashDump.sys¢ E %å[sys]SwapArea00.sysp  œ ÄV,ÈV,   œ ÄV7ÈV7  œ ÄV4ÈV4  (œ ÄV$ÈV$  )œ ÄV.ÈV.  A, rgOSProcDescðnVhbConfigpUserXlatTable cbNodeName nRgMassioDispÀ extCntlRegAws^ nRawIntŒ sarCurrentInPcb rgInitErroröfSubsysChannelB: initFilePrioìŽpRgRcMax¡ rgCheckConfigS fSysChannelAÖ fLfsToMaster£ rgInitRtcRequestrbitmapExchsSaveq userNumChannelA wsUserNumLast° sbExitRunFileSpec° clusterConfig! fNoFileSystem"sbInstallKbdSpec> exchSched¤ cbRgLastCrashMsg¢oRgUserReadCount2rgCheckConfigPswdm saTempHighest GraphicsInfo=cbRgExitFileErrorÔnSdInit¬ rgIopChannrgCannotOpenSwapFile fSysChannelB6 iLineCurrentE pRgOExUcb· srgExchRealÊ userExchFirst© cascade8259AQnFcbrgsbWsUserNameqfF0IllegallyRemovedZ AsibSharedW pAckInBufÇ rgLastCrashMsg£pRgChgUserNumRqv configFilePrioÂrgbRunsfGraphicsBoard? pMouseDataË userNumChannelB4 nChgUserNumRqz nSwapFabs¡ pRgPrgNetRouting NodeName‘ rgExitFileErrorÕfSubsysChannelA8nRequestFileNamesÈ nNetUsers† rgRawIntDescnParDesc&sExec mask8259AP pRgSdInit¨ cbRgInitErrorõ nSwappingRqŒ intSwtblZ NetServerDatap fFsVerify’ sbSwapFileTryEachæ rgwTwoDigitm sbSwapFileTryFirstPswdåuserNumClstrLast„ pRgTerminationRq| cbRgCheckConfigPswdlmbIOPortAcontingencyLog„ nTryNewMaster¯ iColCurrentFsbInstallKbdPswdW nWsAbortRqt cbRgCrashMsg fHighSpeedÕ pRgWsAbortRqp rgcRqï sMapCurrentGrgMediatedIntDesc3 rgSysCommInt« sbExitRunFileDefault nMediatedIntŽ cbCannotOpenSwapFile nOSProcDesc> rgInitProcHardWare&ŽnMsgWaitnDctnpDmaBuf¿ bitmapExchs_ timeSliceHbÕ FsRqBuffer¶ VerifyCodeMnExchg rgClusterMsgº nSysCommIntÆcbAsibŽexitRunFilePrio rgWakeupRqi fGoingDownnŒÍ RqInterface StartHardDisk InitLoadProcInitRtc InitConfigFsIn1MassIoFsIn2 SysDeviceInitInitVpSwapFile ClockTestSchedInitMode3DmaCount RawCommNubbellRq InitNlsTables SysgenInitInit8259 mouseData rqTimeKbdTimerInterruptFloppyInterruptrqTimeMassIoPoll LpInterrupt InitStatusKbdInitHardDiskInterrupt BootBlock rqTimeVidTerminationProcessCEntryIntHKbdSysInProrgRcMax StartFloppy PmTraceRawInt InitSysCom InitDebugNubRqExInitSysTime InitComm2 LoadFileInitKbdTest TraceRawIntInitVam PmBreakRawIntInitKbdProcess rqTimeMassIorgPrgLocalServiceCodeInit8251NMaskInterrupt RTCInterrupt InitVideo OsSubEntry BreakRawIntrgPrgNetRouting FileSystem WHˆÈÈ@ 7 O 0€ÿÿpœÄ(Ä2Ä4¢Sè  ; ¢@  %p +¢‘  ? q @ œaÄ8ÈUÄ"ÈUÄÈ UÄ(ÈUÄÈUÄÈUÄ"TÈ$TÄ&TÈ(TÄ*TÈ,TÄ.È0UÄ21È4U¢Ø ¢ü   ÿÿ¢ ¢,   4 ÿÿ ¢:   Z ¢_ ¢q  ƒ ¢„  4† €  œ ÄVÈV  $Hœ ÄVÈV  )Iœ ÄVÈV  .Jœ ÄV6ÈV6  3œ ÄV3ÈV3  9 ÿœ ÄVÈV  ?ÿœ ÄVÈV  ECÿœ ÄVÈV  KEÿœ ÄVÈV  QFÿWœ ÄV ÈV ¢Z¢d `m Ä ¦  ¤  .Æ  [sys]Request.ISAM.sys  ðœ ÄV/ÈV/  ùœ ÄVÈV  Žô œ ÄV9ÈV9   Ž œ ÄV!ÈV!  Ž œ ÄVÈV  Žœ ÄV ÈV  &Žœ ÄVÈV *Žœ ÄV5ÈV5 .Žœ ÄV+ÈV+ 2Žœ ÄV ÈV  6Žœ ÄV ÈV  :Žœ ÄV2ÈV2 >Žœ ÄV)ÈV) BŽœ ÄV'ÈV' FŽœ ÄVÈV JŽœ ÄVÈV NŽœ ÄVÈV RŽœ ÄV%ÈV% VŽœ ÄVÈV ZŽœ ÄV-ÈV- ^Žœ ÄVÈV bŽœ ÄV ÈV  fŽœ ÄVÈV jŽœ ÄV&ÈV& nŽœ ÄV*ÈV* rŽœ ÄVÈV vŽœ ÄV ÈV  zŽœ ÄVÈV ~Ž[Sys]SysInit.Runœ ÄVÈV¢˜ŽG ߎ¢àŽ  쎀[Sys]Nls.sys¢K K¢L  X[Sys]Config.sys¢mH µ¢¶  ;€[Sys]Ws###>Config.sys[Sys]InstallVdm.run¢ùD 9=[Sys]InstallKbd.run[Sys]MathServer.run  ÿÿÿf0¢   ¢   4 Ðÿÿÿ6ÿM  Pÿÿÿf1¢Y   c¢d   4pÐÿÿÿ6ÿM   ÿÿÿf2¢©   ³¢´   4ÀÐÿÿÿ6ÿM  ðÿÿÿf3¢ù   ¢   4Ðÿÿÿ6ÿM  @ÿd0¢I   Sd0¢V   4``½ÿÿÿÊ  ÿd1¢™   £d1¢¦   4°`½ÿÿÿÊ  àÿd2¢é   ód2¢ö   4`½ÿÿÿÊ  0ÿd3¢9   Cd3¢F   4P`½ÿÿÿÊ r@œ ÄVÈV €?œ ÄVÈV Ž?œ ÄVÈV œªªÿÿœ ÄV0ÈV0 ªaœ ÄVÈV Œ  Ž  >  « ©  x¸ ÿÿÿH«ˆ~ÈÈP ð@à0œAÄ4TÈ6TÄ8TÈ:TÄTÄ@TÈBTÄDTÈFTÄHTÈJTÄLTÈNTÄPTÈRTŠ%SET(hardwareType,12) %Set(fDebugger,0) %Set(wsType,%hardwareType) %Set(clusterConfig,2) %Set(fNoFileSystem,1) %Set(fCommIop,0) %Set(fMulpar,0FFh) %Set(nFrames,1) %Set(nNetUsers,40) %Set(nPartitions,8) %Set(fTimeSliceEnable,0FFh) %Set(lbTimeSlicePriority,146) %Set(hbTimeSlicePriority,178) %Set(sParExitRunFile,1600) %SET(nXBlk,16) %SET(nSectorPerXBlock,5) %SET(nXBlockSmall,20) %SET(sMaxSmallRq,64) %SET(XBlockHeaderSize,56+16) %SET(sContingencyLog, 1) %Set(sKbdBuffer,128) %Set(maxMedInterruptType, 32) %SET(nSysExchange, 26) %SET(nUsrExchange, 70) %SET(nPcb, 30) %SET(nMsgWait, 300+%nXBLK*2) %SET(nMsgWaitReserve, 60+%nXBLK) %SET(nWsLine1,8) %SET(nWsLine2,8) %SET(WsTotal,%nWsLine1+%nWsLine2) %SET(nUserNum, %'70+%nPartitions' 255) %SET(nPTiming, 16) %SET(fVerifyFileStruct, 0) %SET(nIob, 0) %SET(nFcb, 0) %SET(nFab, 0) %SET(nVhb, 0) %SET(nUcb, %nPartitions) %SET(nFub, 0) %SET(sPTW0Buf,128) %SET(sPTW1Buf,128) %SET(sPTW2Buf,128) %SET(sPTW3Buf,128) %SET(sPTW4Buf,128) %SET(sPTW5Buf,128) %Set(sTPINBuf,12  timeSliceLbÞrgUcb¤nsPtW1 rgfLineEn exchFilterPocketB fSubsysChannelCó pbExtCntlComRegxuserNumChannelDxsbWsConfigFileSpecwnAvailZôsbInitFilePasswordóu nsTpOutBuf, fMulpar$ rgExchRealÔtwXlatTableChksumÍoRgOUcb„nsPtW5( nYblk rgCommLine rgpVidMemLine rgLocalUserNum, sbNlsFileSpecvrgUserReadCount ExchNetServerÎnPTTotal rgWsLocalUserNumÎ rgPriParName* sExchStat†rgDeltaPriorityùnIccSkipfSubsysChannelDõ nTicks¡ maskFPIndex¢fSrpUpØ rgOsTable* rgbXpChar ø fSysChannelCë sbConfigFileSpecšvsBufOut¼rgOUcb sbInitFileSpec–upStatàpRgOUcbó rgbBufOutN rgTpOutBuffersÒ ContextStateñnIobnParaIn”sbExitRunFilePswd pBitmapExchsSaveå pRgSwappingRqÈnUcbrgInitProcIntDisablefu rgSectMapH maskVerifyCode  saSemiHighestrgWsIdà fSysChannelDí fCommIop#wsTypesbConfigFilePswd÷vrgInitProcIntEnable†u pConsoleObufÔ genÆw sTpOutHdr2 nAvailIOBúorgPcbˆwVerBuffÄ ntotaluse8) %Set(sTpOutBuf,128) %Set(sOsData,25000) %SET(nReqEnts, 20) %SET(nRespEnts, 20) %SET(sStatArea, 10) %SET(nline,2) %SET(fSrpClock1,0) %SET(fSrpClock2,0) %SET(nRepollActive,0) %set(nAdapters,1) $include(Sysgen.mdf) $include(Sysgen.asm) {æ¦õ¸¸Ç¸ç¸ø¸9¸Š¸¹¸¸­ˆ9ÚÝ é C c À §f ‰f Âf Mf f sÔ ÍÔ °Ô ½ Ô  ¦Á›>›C8Ö8q8Ô88#8 à­àÍàëàJà‰àäà+à¼à Ï$ÏùÏúÏ>ÏhÏÏ:ÏÏ™ÏìÏe Ï:“d“‚“ד“C“…“B“OS.LIB (Lowmem_MF Kernel_MF Device_MF KUtil_MF IdleLoop_MF KUtil2_MF QMath_MF Math32 RqInterface Crash_MF TermProsMF_MF ClockFace_MF Clock_MF Timer_MF NonMaskInt_MF Setvec_MF Ledmgr_MF FilePros_Noswp Fcpnctu_MF LoadMp_WsMf SoftVecMgr_MF ResourceMgr_Mp ResetMF_MF Printer1_MF Printer2_MF CommNub_Cp CommInt CommStatus_Cp InitComm_Cp VidIo_MF Log_MF Log2_MF MulPar_MF MulparUtil_MF ByteStreams_MP MapDev_MP RIccsvr_MF IccSub_MF IccResp_MF IccForw_MF Doorbell_MF UsrMap_MF GetSlotInfo_MF GetProcInfo_MF FileDmy_mf Date_MF MstrLphMF_MF MstrAgent_mega MstrAgent_msubs CltpMain_MF CltpUtil_MF CltpPoll_MF Kbdpros_MF VamN_MF Termio_MF Kbdis_MF Commonsubs_MF Svrmb_MF MemAlloc_Mp Mbainf_MF Mbadt_MF Mbdrbell_MF CmCommon_Mp FilterPros_MF CdtAddr_MF DmyLabels_MF ExpandUcb_MF CpyIn_MF) Dbg.Lib(DbgNul) [Sys]Ctos.lib(KernelNames) RqLablAlt.obj RqLabl.OBJ Request_MF.obj SrpCp.obj Init.LIB(InitOsMain_MF InitMulPar_MF InitOs_MF InitKernel_MF InitKProcs_MF InitBoot_MF InitOsSubs_MF InitDev_MF InitCommon_MF InitClock_MF InitMem_MF InitBus_MF InitIcc_MF InitTimer_MF InitTimer1_MF InitFile_MF InitRemCpu_MF InitProcessor_MF InitCp_MF InitCltp_MF InitNls_Mf InitRqEx_MF InitFntPanIO_MF InitOsEnd_MF) €SrpCpˆCTAsm II-1.0–???SEG??SEGconstconstdatadataCdtSegCdtYSegYsegDGroup˜h˜h˜hþw˜h\˜hÐ< š ÿÿ” saSemiLowestnPTimingnInitProcIntDisable¸wAdtÖ oRgOExUcb† sIntSwtblhMask186Ð nInitProcHardWare¶w bConsoleSlotÒ nLcb nMinYìmBufOutº cFramesMax¢pbInitFileName”vnXbufÛ userNumLastÂnXBlockÛ nIobUsedTnIccOutŽ fTimeSliceà cbPriParName) rgRequestFileNamesòtnExchIn¼fCheckRequestBlockConsistencyF cbSysSvcParName1 saTempLowestsbInstallMathSpecšw endOsTableÒtnFub nLocWritesbInstallVdmPswdwcbInitFileName˜vnInitProcIntEnableºw rgcTimeDelay sDiskStatjnRgInitRtcRequest´wsPtHdr. nInitIOBöoExUcb¼eventControlBlock}nTerminationRqÀrgSysSvcParname2 sXBMaxß nsPtW4&  srgbTypeTableÇ saEndMemory userNumChannelCxsbScratchVolumeSpec ContextStatusásbNlsFilePassword_vnMsgWaitReserve hardwareType nBytExchs¸sZblkÌ userNumKbdŒ nProcTickp  r‚nsPtW0 sbInstallVdmSpec"w initSysDevNum¾wsbInstallMathPswd³w nRemWrite<nRemRead0 wOSVersionœosTypesaMaxPartition¾nRemoteDmaRequestD pXlatTableÉ userNumVidŠ rgOSProcDesc unVhbConfigpUserXlatTableÏ cbNodeNameÐnInitZðnRawInt¾ pZblkListHeadÐ nsTpInBuf* pProcStatl rgTpInBuffers4 nPcb fSubsysChannelBñ initFilePriov ibBufOutTakeH nSectorPerXBlockÝ fSysChannelA fLfsToMasterÕrgInitRtcRequestÆwbitmapExchsSave­userNumChannelAD wsUserNumLastÞsbExitRunFileSpec° ibBufOutPutJ  rgbTypeTableœ clusterConfig! maxAdaptersÔ fNoFileSystem"nZblkÎsbInstallKbdSpec€w nRepollActive pDiskStatsIccStat¢ saTempHighest GraphicsInfoŽ rgIopChan nLocSeeks$ fSysChannelBé sXBDataá bMasterFpCpuId& pRgOExUcb÷ srgExchRealÃw userExchFirstéXBlockHeaderSizeç nFcbrgsbWsUserName÷ rgcMaxRqBlk sYblkÀpCdtÈnT0QBlk bMySlot'nMinIOBøpRgChgUserNumRq¶configFilePriow nXBlockSmallå userNumChannelBt nChgUserNumRqºNodeNameÑfSubsysChannelAï nRequestFileNamesÂw nNetUsersÆ rgRawIntDesc* bConsolePortÓ nParDesc)sStatsExecÂnIccInŒ rgNoWsLine nSwappingRqÌintSwtblj NetServerData° fFsVerifyÄ rgwTwoDigit nYblkCopy’ fCheckMemÄwnInitYênParaOut–userNumClstrLastÄfBufOutOverflowL pRgTerminationRq¼rgRemoteDmaRequest¤sTpInHdr0 contingencyLog¶ nTryNewMasterÝFilterProcessExch@ sbInstallKbdPswd™w nWsAbortRq´prgRcb nMinZò pRgWsAbortRq°bMasterCpCpuId(pIccStatˆrgcRqénLocRead rgMediatedIntDesc\nsPtW2" nMediatedIntÀ fCheckEccÅw nOSProcDescžnUserNum€nsPtW3$ rgInitProcHardWare^unMsgWait rgfSrpClock nDct bitmapExchs¤nAvailYî® FsRqBufferÀ timeSliceHbß sSmallXBlockã VerifyCodežnExchg sProcStat¶ nRemSeeksH pYblkListHeadÄ fMasterFP%exitRunFilePrio pExchStat¸ fGoingDownÚ ŒìInitPIT RqInterfaceStartRTCIccInitInitRtcFsIn1MstrAgentReceiver SysDeviceInit ClockTest RawCommNub InitNlsTablesTimerInterrupt InitStatusInit51 BootBlockTerminationProcessCEntryrgRcMax InitSysComIccSvrRqExInitSysTime KbdProcess LoadFileInit TraceRawIntLclFsFilterProcess TpPollerInt LogProcessrgPrgLocalServiceCode MemoryInitNMaskInterruptChime OsSubEntry BreakRawInt LpIntDisprgPrgNetRouting TpProcess FileSystem MstrAgentCpSrpIsr 4 LL ÿÿÿ¢0(ÿÿ (€( 0€ÿÿ`œÄ¢¤ø œ ¢  %°&þ(¢Ñ  ?Ý­ ÿÿœ@Ä$ÈUÄÈUÄÈ UÄÈUÄÈUÄÈUÄ2È4U¢ ¢< Dÿÿ¢H ¢l tÿÿ| œ ÄTÈT¢   Ÿ ¢¤ ¢­ ¢¶ ,¸ €@ ÿö¢à÷¢Î÷ ¼¢À Þ’²ÿ¢á¢é¢ñ¢ù¢ ¢  3 000102030405060708Primary SysService00  @AÿFTCSDRAA?  @ ¢N € -Î ÏÿH @Hÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢÷  2  #€€€€€€€€P ¢4 ž¢Ò Ý¢¯ »CTOSH ´ )œÄ TÈ TÄ TÈTÄTÈT¢Ö   àä`œ ÄTÈT¢ü  " œ ÄTÈT¢ ¢¢$¢0¢<¢H¢T¢`  j^pœ ÄTÈT¢p¢¬  ¶F¼œ ÄTÈT¢¼`¢| †ÊŒœ ÄTÈT¢˜ ¢ ¢ $ ~~~ÝâââA  ,128) %Set(sTpOutBuf,128) %Set(sOsData,25000) %SET(nReqEnts, 20) %SET(nRespEnts, 20) %SET(sStatArea, 10) %SET(nline,2) %SET(fSrpClock1,0) %SET(fSrpClock2,0) %SET(NRepollActive,0) %set(nAdapters,1) $include(Sysgen.mdf) $INCLUDE(SYSGEN.ASM) {æ¦õ¸¸Ç¸ç¸ø¸9¸Š¸¹¸¸­ˆ9ÚÝ é C c À §f ‰f Âf Mf f sÔ ÍÔ °Ô ½ Ô  ¦Á›>›C8Ö8q8Ô88#8 à­àÍàëàJà‰àäà+à¼à Ï$ÏùÏúÏ>ÏhÏÏ:ÏÏ™ÏìÏe Ï:“d“‚“ד“C“…“B“OS.LIB (Lowmem_MF Kernel_MF Device_MF KUtil_MF IdleLoop_MF KUtil2_MF QMath_MF Math32 RqInterface Crash_MF TermProsMF_MF ClockFace_MF Clock_MF Timer_MF NonMaskInt_MF Setvec_MF Ledmgr_MF FilePros_Noswp Fcpnctu_MF LoadMp_WsMf SoftVecMgr_MF ResourceMgr_Mp ResetMF_MF Printer1_MF Printer2_MF CommNub_Cp CommInt CommStatus_Cp InitComm_Cp VidIo_MF Log_MF Log2_MF MulPar_MF MulparUtil_MF SysBsDummy_MF ByteStreams_MP MapDev_MP RIccsvr_MF IccSub_MF IccResp_MF IccForw_MF Doorbell_MF UsrMap_MF GetSlotInfo_MF GetProcInfo_Mÿ¦F ¢*¢2ð "¢3M¢€d¢äd¢H ¢ )¢ )° "¤¿¿ÀÀ[Sys]CLI.Run¢ÂK  ¢   €€Sys¢   )  *œ ÄVÈV  /œ ÄV"ÈV"  4 œ ÄV#ÈV#  9œ ÄVÈV  > œ ÄV(ÈV(  Cœ ÄV ÈV   H œ ÄV ÈV   M œ ÄVÈV  R!œ ÄVÈV  W"œ ÄV!ÈV!  \œ ÄVÈV  bÿ œ ÄV ÈV ¢j`¢*¨a Òt @  B  <Ôt  [SYS]REQUEST.CP.SYS   uœ ÄVÈV  uœ ÄVÈV  u€ œ ÄVÈV  'u œ ÄV&ÈV&  0uœ ÄVÈV  9uœ ÄV'ÈV'  Buœ ÄV%ÈV%  Kuœ ÄVÈV Tud œ ÄVÈV ^uœ ÄVÈV buœ ÄV ÈV  fuœ ÄVÈV juœ ÄVÈV nuœ ÄVÈV ruœ ÄVÈV vuœ ÄVÈV zuœ ÄVÈV ~uœ ÄVÈV ‚uœ ÄVÈV †uœ ÄVÈV Šuœ ÄVÈV Žuœ ÄV ÈV  ’u[Sys]CLI.Runœ ÄV ÈV ¢¨uK óu¢ôu  v€[Sys]Nls.sys¢vK _v¢`v  lv[Sys]Master.CNF¢€v ”vlv[Sys]Config.sysœ ÄTÈT¢¯vH ÷v¢øv  ;w€[Sys]Ws###>Config.sys[Sys]InstallVdm.run¢;wD 9w[Sys]InstallKbd.run[Sys]MathServer.run ¾  À D  ž  b é N´wÿÿbLL>Š%SET(hardwareType,12) %Set(fDebugger,1) %Set(wstype,%hardwaretype) %Set(clusterconfig,2) %Set(fnofilesystem,0FFh) %Set(fcommiop,0) %Set(fmulpar,0ffh) %Set(nframes,1) %Set(nnetusers,40) %Set(nPartitions,8) %Set(fTimeSliceEnable,0FFh) %Set(lbTimeSlicePriority,146) %Set(hbTimeSlicePriority,178) %Set(sParExitRunFile,1600) %SET(nXBlk,16) %SET(nSectorPerXBlock,5) %SET(nXBlockSmall,20) %SET(sMaxSmallRq,64) %SET(XBlockHeaderSize,56+16) %SET(sContingencyLog, 1) %Set(sKbdBuffer,128) %Set(maxMedInterruptType, 32) %SET(nSysExchange, 26) %SET(nUsrExchange, 70) %SET(nPcb, 30) %SET(nMsgWait, 300+%nXBLK*2) %SET(nMsgWaitReserve, 60+%nXBLK) %SET(nWsLine1,8) %SET(nWsLine2,8) %SET(WsTotal,%nWsLine1+%nWsLine2) %SET(nUserNum, %'70+%nPartitions' 255) %SET(nPTiming, 16) %SET(fVerifyFileStruct, 0) %SET(nIob, 0) %SET(nFcb, 0) %SET(nFab, 0) %SET(nVhb, 0) %SET(nUcb, %nPartitions) %SET(nFub, 0) %SET(sPTW0Buf,128) %SET(sPTW1Buf,128) %SET(sPTW2Buf,128) %SET(sPTW3Buf,128) %SET(sPTW4Buf,128) %SET(sPTW5Buf,128) %Set(sTPINBuf F FileDmy_mf Date_MF MstrLphMF_MF MstrAgent_mega MstrAgent_msubs CltpMain_MF CltpUtil_MF CltpPoll_MF Kbdpros_MF VamN_MF Termio_MF Kbdis_MF Commonsubs_MF Svrmb_MF MemAlloc_Mp Mbainf_MF Mbadt_MF Mbdrbell_MF CmCommon_Mp FilterPros_MF CdtAddr_MF DmyLabels_MF ExpandUcb_MF CpyIn_MF) Dbg.Lib(MegaResNub MegaResLdr DbgRaw DbgIn3 t1dOs DbgPat dbgNubPmUtil dbgNubPm MegaDebStubs caProc MegaResSys) [Sys]Ctos.lib(KernelNames) RqLablAlt.obj RqLabl.OBJ Request_MF.obj SrpCpDeb.OBJ Dbg.Lib(DbgLow MegaResOnc)  Init.LIB(InitOsMain_MF InitMulPar_MF InitOs_MF InitKernel_MF InitKProcs_MF InitBoot_MF InitOsSubs_MF InitDev_MF InitCommon_MF InitClock_MF InitMem_MF InitBus_MF InitIcc_MF InitTimer_MF InitTimer1_MF InitFile_MF InitRemCpu_MF InitProcessor_MF InitCp_MF InitCltp_MF InitNls_Mf InitRqEx_MF InitFntPanIO_MF InitOsEnd_MF) € SrpCpDebˆCTAsm II-1.0–???SEG??SEGconstconstdatadataCdtSegCdtYSegYsegDGroup˜h˜h˜hx˜h\˜hÐ< š ÿÿ” saSemiLowestnPTimingnInitProcIntDisable¼wAdtÖ oRgOExUcb† sIntSwtblhMask186Ð nInitProcHardWareºw bConsoleSlotÒ nLcb nMinYìmBufOutº cFramesMax¢pbInitFileName˜vnXbufÛ userNumLastÂnXBlockÛ nIobUsedTnIccOutŽ fTimeSliceà cbPriParName) rgRequestFileNamesòtnExchIn¼fCheckRequestBlockConsistencyF cbSysSvcParName1 saTempLowestsbInstallMathSpecžw endOsTableÒtnFub nLocWritesbInstallVdmPswdƒwcbInitFileNameœvnInitProcIntEnable¾w rgcTimeDelay sDiskStatjnRgInitRtcRequest¸wsPtHdr. nInitIOBöoExUcb¼eventControlBlock}nTerminationRqÀrgSysSvcParname2 sXBMaxß nsPtW4&  srgbTypeTableÇ saEndMemory userNumChannelCxsbScratchVolumeSpec ContextStatusásbNlsFilePasswordcvnMsgWaitReserve hardwareType nBytExchs¸sZblkÌ userNumKbdŒ nProcTickp timeSliceLbÞrgUcb¤nsPtW1 rgfLineEn exchFilterPocketB fSubsysChannelCó pbExtCntlComRegxuserNumChannelDxsbWsConfigFileSpec wnAvailZôsbInitFilePassword÷u nsTpOutBuf, fMulpar$ rgExchRealÔtwXlatTableChksumÍoRgOUcb„nsPtW5( nYblk rgCommLine rgpVidMemLine rgLocalUserNum, sbNlsFileSpecvrgUserReadCount ExchNetServerÎnPTTotal rgWsLocalUserNumÎ rgPriParName* sExchStat†rgDeltaPriorityùnIccSkipfSubsysChannelDõ nTicks¡ maskFPIndex¢fSrpUpØ rgOsTable* rgbXpChar ø fSysChannelCë sbConfigFileSpecžvsBufOut¼rgOUcb sbInitFileSpecšupStatàpRgOUcbó rgbBufOutN rgTpOutBuffersÒ ContextStateñnIobnParaIn”sbExitRunFilePswd pBitmapExchsSaveå pRgSwappingRqÈnUcbrgInitProcIntDisablefu rgSectMapH maskVerifyCode  saSemiHighestrgWsIdà fSysChannelDí fCommIop#wsTypesbConfigFilePswdûvrgInitProcIntEnable†u pConsoleObufÔ genÊw sTpOutHdr2 nAvailIOBúorgPcbˆwVerBuffÄ ntotaluser‚nsPtW0 sbInstallVdmSpec&w initSysDevNumÂwsbInstallMathPswd·w nRemWrite<nRemRead0 wOSVersionœosTypesaMaxPartition¾nRemoteDmaRequestD pXlatTableÉ userNumVidŠ rgOSProcDesc unVhbConfigpUserXlatTableÏ cbNodeNameÐnInitZðnRawInt¾ pZblkListHeadÐ nsTpInBuf* pProcStatl rgTpInBuffers4 nPcb fSubsysChannelBñ initFilePriov ibBufOutTakeH nSectorPerXBlockÝ fSysChannelA fLfsToMasterÕrgInitRtcRequestÊwbitmapExchsSave­userNumChannelAD wsUserNumLastÞsbExitRunFileSpec° ibBufOutPutJ  rgbTypeTableœ clusterConfig! maxAdaptersÔ fNoFileSystem"nZblkÎsbInstallKbdSpec„w nRepollActive pDiskStatsIccStat¢ saTempHighest GraphicsInfoŽ rgIopChan nLocSeeks$ fSysChannelBé sXBDataá bMasterFpCpuId& pRgOExUcb÷ srgExchRealÇw userExchFirstéXBlockHeaderSizeç nFcbrgsbWsUserName÷ rgcMaxRqBlk sYblkÀpCdtÈnT0QBlk bMySlot'nMinIOBøpRgChgUserNumRq¶configFilePriow   ~~~ÝâââAÿ¦F ¢*¢2ð "¢3M¢€d¢äd¢H ¢ )¢ )° "¤¿¿ÀÀ[Sys]CLI.Run¢ÂK  ¢   €€Sys¢   )  *œ ÄVÈV  /œ ÄV#ÈV#  4 œ ÄV$ÈV$  9œ ÄVÈV  > œ ÄV)ÈV)  Cœ ÄV ÈV   H œ ÄV!ÈV!  M œ ÄVÈV  R!œ ÄVÈV  W"œ ÄV"ÈV"  \œ ÄV ÈV   bÿ œ ÄV ÈV ¢j`¢*¨a Òt @  B  <Ôt  [SYS]REQUEST.CP.SYS   uœ ÄVÈV  uœ ÄVÈV  u€ œ ÄVÈV  'u œ ÄV'ÈV'  0uœ ÄVÈV  9uœ ÄV(ÈV(  Buœ ÄV&ÈV&  Kuœ ÄVÈV Tud œ ÄVÈV ^uœ ÄVÈV buœ ÄV ÈV nXBlockSmallå userNumChannelBt nChgUserNumRqºNodeNameÑfSubsysChannelAï nRequestFileNamesÆw nNetUsersÆ rgRawIntDesc* bConsolePortÓ nParDesc)sStatsExecÂnIccInŒ rgNoWsLine nSwappingRqÌintSwtblj NetServerData° fFsVerifyÄ rgwTwoDigit nYblkCopy’ fCheckMemÈwnInitYênParaOut–userNumClstrLastÄfBufOutOverflowL pRgTerminationRq¼rgRemoteDmaRequest¤sTpInHdr0 contingencyLog¶ nTryNewMasterÝFilterProcessExch@ sbInstallKbdPswdw nWsAbortRq´prgRcb nMinZò pRgWsAbortRq°bMasterCpCpuId(pIccStatˆrgcRqénLocRead rgMediatedIntDesc\nsPtW2" nMediatedIntÀ fCheckEccÉw nOSProcDescžnUserNum€nsPtW3$ rgInitProcHardWare^unMsgWait rgfSrpClock nDct bitmapExchs¤nAvailYî® FsRqBufferÀ timeSliceHbß sSmallXBlockã VerifyCodežnExchg sProcStat¶ nRemSeeksH pYblkListHeadÄ fMasterFP%exitRunFilePrio pExchStat¸ fGoingDownÚ ŒúInitPIT RqInterfaceStartRTCIccInitInitRtcFsIn1MstrAgentReceiver SysDeviceInit ClockTest RawCommNub InitNlsTablesTimerInterrupt InitStatusInit51 BootBlockTerminationProcessCEntryrgRcMax InitSysCom InitDebugNubIccSvrRqExInitSysTime KbdProcess LoadFileInit TraceRawIntLclFsFilterProcess TpPollerInt LogProcessrgPrgLocalServiceCode MemoryInitNMaskInterruptChime OsSubEntry BreakRawInt LpIntDisprgPrgNetRouting TpProcess FileSystem MstrAgentCpSrpIsr 4 LL ÿÿÿÿ¢0(ÿÿ (€( 0€ÿÿ`œÄ¢¤ø œ ¢  %°&þ(¢Ñ  ?Ý­ ÿÿœ@Ä%ÈUÄÈUÄÈ UÄÈUÄÈUÄÈUÄ2È4U¢ ¢< Dÿÿ¢H ¢l tÿÿ| œ ÄTÈT¢   Ÿ ¢¤ ¢­ ¢¶ ,¸ €@ ÿö¢à÷¢Î÷ ¼¢À Þ’²ÿ¢á¢é¢ñ¢ù¢ ¢  3 000102030405060708Primary SysService00  @AÿFTCSDRAA?  @ ¢N € -Î ÏÿH @Hÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢÷  2  #€€€€€€€€P ¢4 ž¢Ò Ý¢¯ »CTOSH ´ )œÄ TÈ TÄ TÈTÄTÈT¢Ö   àä`œ ÄTÈT¢ü  " œ ÄTÈT¢ ¢¢$¢0¢<¢H¢T¢`  j^pœ ÄTÈT¢p¢¬  ¶F¼œ ÄTÈT¢¼`¢| †ÊŒœ ÄTÈT¢˜ ¢ ¢ $    fuœ ÄVÈV juœ ÄVÈV nuœ ÄVÈV ruœ ÄVÈV vuœ ÄVÈV zuœ ÄVÈV ~uœ ÄVÈV ‚uœ ÄVÈV †uœ ÄVÈV Šuœ ÄVÈV Žuœ ÄVÈV ’uœ ÄV ÈV  –u[Sys]CLI.Runœ ÄV ÈV ¢¬uK ÷u¢øu  v€[Sys]Nls.sys¢vK cv¢dv  pv[Sys]Master.CNF¢„v ˜vpv[Sys]Config.sysœ ÄTÈT¢³vH ûv¢üv  ;w€[Sys]Ws###>Config.sys[Sys]InstallVdm.run¢?wD 9ƒw[Sys]InstallKbd.run[Sys]MathServer.run ¾  À D  ž  b é N¸wÿÿbLL>Š%SET(hardwareType,14) %Set(fDebugger,0) %Set(wsType,%hardwareType) %Set(clusterConfig,2) %Set(fNoFileSystem,0) %Set(fCommIop,0) %Set(fMulpar,0FFh) %Set(nFrames,1) %Set(nNetUsers,40) %Set(nPartitions,6) %Set(fTimeSliceEnable,0FFh) %Set(lbTimeSlicePriority,146) %Set(hbTimeSlicePriority,178) %Set(sParExitRunFile,1600) %SET(sContingencyLog, 1) %Set(sKbdBuffer,128) %Set(maxMedInterruptType, 32) %SET(nSysExchange, 24) %SET(nUsrExchange, 32) %SET(nPcb, 30) %SET(nMsgWait, 300) %SET(nMsgWaitReserve, 30) %SET(nPTiming, 16) %SET(fVerifyFileStruct, 0) %SET(nIob, 20) %SET(sMassIoRqQueue, 128) %SET(nFcb, 256) %SET(nFub, 256) %SET(nFab, 512) %SET(nVhb, 6) %SET(nWinch, 6) %SET(nUcb, %nPartitions) %Set(sOsData, 25000) %SET(nMountedDisks, 32) %SET(nReqEnts, 80) %SET(nRespEnts, 80) %SET(sStatArea, 10) %Set(sTermArea, 256) %Set(sLineArea, 64) %Set(sRouteArea, 1100) %set(nAdapters,1) $include(Sysgen.mdf) $include(Sysgen.asm) OS.lib (Lowmem_MF Kernel_MF Device_MF KUtil_MF IdleLoop_MF KUtil2_MF Kbdpros_MF VamN_MF Kbdis_MF QMath_MF Math32 RqInterface Crash_MF TermProsMF_MF ClockFace_MF ClockInt_MF Clock_MF Timer_MF NonMaskInt_MF Setvec_MF FilePros_Noswp Ledmgr_MF IccNctu_MF LoadMp_WsMf SoftVecMgr_MF ResetMF_MF InitComm_null VidIo_MF Log_MF MulPar_MF MulparUtil_MF Fileprocs Log2_MF MassInt_MF Diskdrvr_smd_MF Find Directory ResourceMgr_Mp Open CreateDelete Status Volume FileLog Date_MF Massiopros_MF Close_Mp MapDev_MP ByteStreams_MP SysBsDummy_MF RIccsvr_MF IccSub_MF IccResp_MF IccForw_MF Doorbell_MF UsrMap_MF GetSlotInfo_MF GetProcInfo_MF RemoteBootMF_MF Remotecdt_MF Termio_MF LptDummy_MF Commonsubs_MF DWord_MF Svrmb_MF MemAlloc_Mp Mbainf_MF Mbadt_MF Mbdrbell_MF CmCommon_Mp Ecc_Smd_MF FloppyNoCheck ExpandSpecs FilterPros_MF CdtAddr_MF DmyLabels_MF ExpandUcb_MF CpyIn_MF) Dbg.Lib(DbgNul) [Sys]Ctos.lib(KernelNames) RqLablAlt.obj RqLabl.OBJ Request_MF.obj SrpDp.obj Init.lib(InitOsMain_MF InitMulPar_MF InitOs_MF InitKernel_MF InitKProcs_MF InitBoot_MF InitOsSubs_MF InitDev_MF InitCommon_MF InitClock_MF InitFile_MF InitMount_MF InitSMD_MF InitMem_MF InitBus_MF InitIcc_MF InitDevName_MF InitTimer_MF InitTimer1_MF InitRemCpu_MF InitProcessor_MF InitIccFHdler_MF InitFntPanIO_MF InitNls_Mf InitRqEx_MF InitOsEnd_MF) €SrpDpˆCTAsm II-1.0–???SEG??SEGconstconstdatadataCdtSegCdtYSegYsegDGroup˜h˜h˜hJu˜hÒ ˜hÐ< š ÿÿ• saSemiLowestnPTimingnInitProcIntDisableuAdt oRgOExUcb‚ sIntSwtblÚ Mask186ÒnInitProcHardWareu bConsoleSlotÔnMinYŽ mBufOut„ cFramesMaxupbInitFileNameøqnXbufÝ userNumLastünXBlockÝnIobUsedö nIccOutà fTimeSliceÎ cbPriParNamergRequestFileNamesdpnExchIn^ fCheckRequestBlockConsistency$cbSysSvcParName   XBlockå VerifyCodešnExchg sProcStatX \ nRemSeeksê pYblkListHead fMasterFP%exitRunFilePrio” pExchStatZ fGoingDownÜŒÝInitPIT RqInterface StartHardDiskStartRTCIccInitInitRtcFsIn1MassIoFsIn2 SysDeviceInit ClockTest InitNlsTablesTimerInterrupt InitStatusHardDiskInterruptInit51 BootBlockTerminationProcessCEntryRTCtickrgRcMax InitSysComIccSvrRqExInitSysTime KbdProcess LoadFileInit TraceRawIntLclFsFilterProcess LogProcess rqTimeMassIorgPrgLocalServiceCode MemoryInitNMaskInterruptChime OsSubEntry BreakRawIntrgPrgNetRouting FileSystem 4,ÿÿÿ¢0¦ÿÿ (|¦Þ0€ÿÿ`œÄ¢ : Ú ¢Þ %ê-(¢   ?{Þÿÿ œ@Ä&ÈUÄÈUÄÈ UÄÈUÄÈUÄÈUÄ2 È4U¢R   r ¢w nFreeIobQueueH saTempLowestsbInstallMathSpecþr endOsTableDpnFub nLocWriteº sIobQueueFsbInstallVdmPswdãrcbInitFileNameüqnInitProcIntEnableu sDiskStat nRgInitRtcRequestu nDevMounted nInitIOB˜ oExUcbªeventControlBlockPnTerminationRqúrgSysSvcParnamesXBMaxá srgbTypeTableA saEndMemory sbScratchVolumeSpec– ContextStatusÏsbNlsFilePasswordÃqnMsgWaitReserve rgMassioDisp& hardwareType nBytExchs‚sZblk  userNumKbdˆ nProcTick timeSliceLbÌrgUcb exchFilterPocket fSubsysChannelC÷sbWsConfigFileSpecjrnAvailZ– sbInitFilePasswordWqfMulpar$ rgExchRealFpwXlatTableChksum—oRgOUcb€nYblk rgpVidMemLineórgLocalUserNum, sbNlsFileSpecfqrgUserReadCountç ExchNetServer rgPriParName sExchStatØ rgDeltaPriorityánIccSkipâ fSubsysChannelDùnTickst maskFPIndexžfSrpUpÚ rgOsTableœ rgbXpChar Ó fSysChannelCïsbConfigFileSpecþqsBufOut†rgOUcbÞsbInitFileSpecúppStat‚ pRgOUcb- rgbBufOutP ContextStateÛnIobnParaInæ sbExitRunFilePswd‡ pBitmapExchsSave pRgSwappingRqnUcbrgInitProcIntDisableÆp rgSectMap&maskVerifyCodeœ saSemiHighestrgWsId¨ fSysChannelDñfCommIop#wsTypesbConfigFilePswd[rrgInitProcIntEnableæp pConsoleObufÖgenu cDelayDiscû nAvailIOBœ orgPcb„wVerBuffŽ ntotaluser~sbInstallVdmSpec†r initSysDevNum usbInstallMathPswds nRemWriteÞ nRemReadÒ wOSVersionÚosTypesaMaxPartition¬rgFpMasterMountTable"nRemoteDmaRequest" pXlatTable“ userNumVid† rgOSProcDesc~pnVhbConfigpUserXlatTable™ cbNodeName nInitZ’ nRgMassioDispunRawIntˆ pZblkListHead pProcStat nPcb fSubsysChannelBõ initFilePriodq ibBufOutTakeJnSectorPerXBlockß fSysChannelAë fLfsToMasterŸrgInitRtcRequestòtbitmapExchsSave{sbExitRunFileSpec* ibBufOutPutL rgbTypeTable‹ clusterConfig! maxAdapters fNoFileSystem"nZblk sbInstallKbdSpecär pDiskStatª sIccStatô saTempHighest GraphicsInfoŠ rgIopChan nLocSeeksÆ fSysChannelBísXBDataãbMasterFpCpuId& pRgOExUcb1 srgExchRealu userExchFirst#XBlockHeaderSizeénFcbrgsbWsUserNameûsYblkþpCdtbMySlot'nMinIOBš pRgChgUserNumRqðconfigFilePriohr nXBlockSmallç nChgUserNumRqôNodeName  maxDevMountedfSubsysChannelAónRequestFileNamesu nNetUsers rgRawIntDesc¤ bConsolePortÕnParDesc)sStat¨ sExecŒnIccInÞ nSwappingRqintSwtblÜ NetServerDataê fFsVerifyŽ rgwTwoDigitù nYblkCopyä fCheckMemunInitYŒ nParaOutè userNumClstrLastþfBufOutOverflowNpRgTerminationRqörgRemoteDmaRequestö contingencyLog€ nTryNewMaster§FilterProcessExchsbInstallKbdPswdýr nWsAbortRqînMinZ” pRgWsAbortRqêbMasterCpCpuId(pIccStatÚ rgcRqÕnLocRead® rgMediatedIntDescÈ rgpIobQListJ nMediatedIntŠ fCheckEccu nOSProcDescÜnUserNum|rgInitProcHardWare¾pnMsgWaitnDctû bitmapExchswnAvailY FsRqBuffer® timeSliceHbÍ sSmall  ¢{ ¢€ 0‚€@ ÿ¢® Ì’²ÿ¢Ï¢Õ¢Û¢á¢ç¢í /ó00010203040506Primary SysService00  @AÿFTCSDRAA?  0 (08 "*2: $,4<&.6>€€¢J€  J¢P€ HÐÎÿHHH ´ )œÄ2TÈ4TÄ6TÈ8TÄ>TÈ@T¢   ¢"`  ‚ † 8œ ÄTÈT¢ž   ¨ "® œ ÄTÈT¢® ¢º ¢Æ ¢Ò ¢Þ ¢ê ¢ö ¢    ^ œ ÄTÈT¢ ¢N   X F^ œ ÄTÈT¢^ 8¢Î  Ø zÞ œ ÄTÈT¢ê  ô  ¢ $ ÐÐÐ[```ëÿ¦ð ¢*¢2ð "¢3M €"@„œ ÄTÈT¢ °L¢²¢Ò¢b¢ò ¢¢@¢†L¢ )¢ )° 4ö #%0$&0000000 0 0¿¿ÀÀ & [Sys]CLI.Runœ ÄVÈV¢< K ‡ ¢ˆ   ” €€Sys¢š  £   ¤ œ ÄVÈV  © œ ÄV%ÈV%  ® œ ÄVÈV  ³ œ ÄV#ÈV#  ¸ œ ÄVÈV  ½ !œ ÄVÈV   "œ ÄV$ÈV$  È œ ÄV"ÈV"  Î ÿœ ÄV ÈV   Ô ÿ œ ÄVÈV¢Ü `¢œ¨a Dp    <Fp   [SYS]REQUEST.FP.SYS  ~pœ ÄVÈV  ‡p œ ÄVÈV  pœ ÄVÈV  ™p€ œ ÄVÈV  ¢pœ ÄV'ÈV'  «pœ ÄVÈV ´pdœ ÄVÈV ¾pœ ÄV!ÈV! Âpœ ÄV ÈV  Æpœ ÄVÈV Êpœ ÄVÈV Îpœ ÄVÈV Òpœ ÄVÈV Öpœ ÄVÈV Úpœ ÄVÈV Þpœ ÄVÈV âpœ ÄVÈV æpœ ÄV ÈV  êpœ ÄV ÈV  îpœ ÄVÈV òpœ ÄV ÈV  öp[Sys]CLI.Runœ ÄVÈV¢ qK Wq¢Xq  dq€[Sys]Nls.sys¢xqK Ãq¢Äq  Ðq[Sys]Master.CNF¢äq øqÐq[Sys]Config.sysœ ÄTÈT¢rH [r¢\r  ;hr€[Sys]Ws###>Config.sys[Sys]InstallVdm.run¢ŸrD Bãr[Sys]InstallKbd.run[Sys]MathServer.runÿs0¢!s   +ss0¢.s   <8s€ÿ ð Mÿs1¢ps   zss1¢}s   <‡s€ÿ ð Mÿs2¢¿s   Éss2¢Ìs   <Ös€ÿ ð Mÿs3¢t   ts3¢t   <%t€ÿ ð Mÿs4¢]t   gts4¢jt   <tt€ÿ ð Mÿs5¢¬t   ¶ts5¢¹t   3Ãt€ÿ ð M òt22ÿÿœ ÄVÈV ˆ Š " Ü ; # Nuÿÿ;,6sgs¶stTt£tœ1Ä2TÈ4TÄ6TÈ8TÄ:TÈTÈ@TÄBTÈDTÄFTÈHTŠ   ame nFreeIobQueueH saTempLowestsbInstallMathSpecs endOsTableDpnFub nLocWriteº sIobQueueFsbInstallVdmPswdçrcbInitFileNamernInitProcIntEnable u sDiskStat nRgInitRtcRequestu nDevMounted nInitIOB˜ oExUcbªeventControlBlockPnTerminationRqúrgSysSvcParnamesXBMaxá srgbTypeTableA saEndMemory sbScratchVolumeSpec– ContextStatusÏsbNlsFilePasswordÇqnMsgWaitReserve rgMassioDisp& hardwareType nBytExchs‚sZblk  userNumKbdˆ nProcTick  timeSliceLbÌrgUcb exchFilterPocket fSubsysChannelC÷sbWsConfigFileSpecnrnAvailZ– sbInitFilePassword[qfMulpar$ rgExchRealFpwXlatTableChksum—oRgOUcb€nYblk rgpVidMemLineórgLocalUserNum, sbNlsFileSpecjqrgUserReadCountç ExchNetServer rgPriParName sExchStatØ rgDeltaPriorityánIccSkipâ fSubsysChannelDùnTickst maskFPIndexžfSrpUpÚ rgOsTableœ rgbXpChar Ó fSysChannelCïsbConfigFileSpecrsBufOut†rgOUcbÞsbInitFileSpecþppStat‚ pRgO%SET(hardwareType,14) %Set(fDebugger,1) %Set(wsType,%hardwareType) %Set(clusterConfig,2) %Set(fNoFileSystem,0) %Set(fCommIop,0) %Set(fMulpar,0FFh) %Set(nFrames,1) %Set(nNetUsers,40) %Set(nPartitions,6) %Set(fTimeSliceEnable,0FFh) %Set(lbTimeSlicePriority,146) %Set(hbTimeSlicePriority,178) %Set(sParExitRunFile,1600) %SET(sContingencyLog, 1) %Set(sKbdBuffer,128) %Set(maxMedInterruptType, 32) %SET(nSysExchange, 24) %SET(nUsrExchange, 32) %SET(nPcb, 30) %SET(nMsgWait, 300) %SET(nMsgWaitReserve, 30) %SET(nPTiming, 16) %SET(fVerifyFileStruct, 0) %SET(nIob, 20) %SET(sMassIoRqQueue, 128) %SET(nFcb, 256) %SET(nFub, 256) %SET(nFab, 512) %SET(nVhb, 6) %SET(nWinch, 6) %SET(nUcb, %nPartitions) %Set(sOsData,25000) %SET(nMountedDisks, 32) %SET(nReqEnts, 80) %SET(nRespEnts, 80) %SET(sStatArea, 10) %Set(sTermArea, 256) %Set(sLineArea, 64) %Set(sRouteArea, 1100) %set(nAdapters,1) $include(Sysgen.mdf) $include(Sysgen.asm) OS.lib (Lowmem_MF Kernel_MF Device_MF KUtil_MF IdleLoop_MF KUtil2_MF Kbdpros_MF VamN_MF Kbdis_MF QMath_MF Math32 RqInterface Crash_MF TermProsMF_MF ClockFace_MF ClockInt_MF Clock_MF Timer_MF NonMaskInt_MF Setvec_MF FilePros_Noswp Ledmgr_MF IccNctu_MF LoadMp_WsMf SoftVecMgr_MF ResetMF_MF InitComm_null VidIo_MF Log_MF MulPar_MF MulparUtil_MF Fileprocs Log2_MF MassInt_MF Diskdrvr_smd_MF Find Directory ResourceMgr_Mp Open CreateDelete Status Volume FileLog Date_MF Massiopros_MF Close_Mp MapDev_MP ByteStreams_MP SysBsDummy_MF RIccsvr_MF IccSub_MF IccResp_MF IccForw_MF Doorbell_MF UsrMap_MF GetSlotInfo_MF GetProcInfo_MF RemoteBootMF_MF Remotecdt_MF Termio_MF LptDummy_MF Commonsubs_MF DWord_MF Svrmb_MF MemAlloc_Mp Mbainf_MF Mbadt_MF Mbdrbell_MF CmCommon_Mp Ecc_Smd_MF FloppyNoCheck ExpandSpecs FilterPros_MF CdtAddr_MF DmyLabels_MF ExpandUcb_MF CpyIn_MF) Dbg.Lib(MegaResNub MegaResLdr DbgRaw DbgIn3 t1dOs DbgPat dbgNubPmUtil dbgNubPm MegaDebStubs caProc MegaResSys) [Sys]Ctos.lib(KernelNames) RqLablAlt.obj RqLabl.OBJ Request_MF.obj SrpDpDeb.obj Dbg.Lib(DbgLow MegaResOnc) Init.lib(InitOsMain_MF InitMulPar_MF InitOs_MF InitKernel_MF InitKProcs_MF InitBoot_MF InitOsSubs_MF InitDev_MF InitCommon_MF InitClock_MF InitFile_MF InitMount_MF InitSMD_MF InitMem_MF InitBus_MF InitIcc_MF InitDevName_MF InitTimer_MF InitTimer1_MF InitRemCpu_MF InitProcessor_MF InitIccFHdler_MF InitFntPanIO_MF InitNls_Mf InitRqEx_MF InitOsEnd_MF) € SrpDpDebˆCTAsm II-1.0–???SEG??SEGconstconstdatadataCdtSegCdtYSegYsegDGroup˜h˜h˜hNu˜hÒ ˜hÐ< š ÿÿ• saSemiLowestnPTimingnInitProcIntDisableuAdt oRgOExUcb‚ sIntSwtblÚ Mask186ÒnInitProcHardWareu bConsoleSlotÔnMinYŽ mBufOut„ cFramesMaxupbInitFileNameüqnXbufÝ userNumLastünXBlockÝnIobUsedö nIccOutà fTimeSliceÎ cbPriParNamergRequestFileNamesdpnExchIn^ fCheckRequestBlockConsistency$cbSysSvcParN  Ucb- rgbBufOutP ContextStateÛnIobnParaInæ sbExitRunFilePswd‡ pBitmapExchsSave pRgSwappingRqnUcbrgInitProcIntDisableÆp rgSectMap&maskVerifyCodeœ saSemiHighestrgWsId¨ fSysChannelDñfCommIop#wsTypesbConfigFilePswd_rrgInitProcIntEnableæp pConsoleObufÖgenu cDelayDiscû nAvailIOBœ orgPcb„wVerBuffŽ ntotaluser~sbInstallVdmSpecŠr initSysDevNumusbInstallMathPswds nRemWriteÞ nRemReadÒ wOSVersionÚosTypesaMaxPartition¬rgFpMasterMountTable"nRemoteDmaRequest" pXlatTable“ userNumVid† rgOSProcDesc~pnVhbConfigpUserXlatTable™ cbNodeName nInitZ’ nRgMassioDisp unRawIntˆ pZblkListHead pProcStat nPcb fSubsysChannelBõ initFilePriohq ibBufOutTakeJnSectorPerXBlockß fSysChannelAë fLfsToMasterŸrgInitRtcRequestötbitmapExchsSave{sbExitRunFileSpec* ibBufOutPutL rgbTypeTable‹ clusterConfig! maxAdapters fNoFileSystem"nZblk sbInstallKbdSpecèr pDiskStatª sIccStatô saTempHighest GraphicsInfoŠ rgIopChan nLocSeeksÆ fSysChannelBísXBDataãbMasterFpCpuId& pRgOExUcb1 srgExchRealu userExchFirst#XBlockHeaderSizeénFcbrgsbWsUserNameûsYblkþpCdtbMySlot'nMinIOBš pRgChgUserNumRqðconfigFilePriolr nXBlockSmallç nChgUserNumRqôNodeName  maxDevMountedfSubsysChannelAónRequestFileNamesu nNetUsers rgRawIntDesc¤ bConsolePortÕnParDesc)sStat¨ sExecŒnIccInÞ nSwappingRqintSwtblÜ NetServerDataê fFsVerifyŽ rgwTwoDigitù nYblkCopyä fCheckMemunInitYŒ nParaOutè userNumClstrLastþfBufOutOverflowNpRgTerminationRqörgRemoteDmaRequestö contingencyLog€ nTryNewMaster§FilterProcessExchsbInstallKbdPswds nWsAbortRqînMinZ” pRgWsAbortRqêbMasterCpCpuId(pIccStatÚ rgcRqÕnLocRead® rgMediatedIntDescÈ rgpIobQListJ nMediatedIntŠ fCheckEccu nOSProcDescÜnUserNum|rgInitProcHardWare¾pnMsgWaitnDctû bitmapExchswnAvailY FsRqBuffer® timeSliceHbÍ sSmallXBlockå VerifyCodešnExchg sProcStatX \ nRemSeeksê pYblkListHead fMasterFP%exitRunFilePrio” pExchStatZ fGoingDownÜŒëInitPIT RqInterface StartHardDiskStartRTCIccInitInitRtcFsIn1MassIoFsIn2 SysDeviceInit ClockTest InitNlsTablesTimerInterrupt InitStatusHardDiskInterruptInit51 BootBlockTerminationProcessCEntryRTCtickrgRcMax InitSysCom InitDebugNubIccSvrRqExInitSysTime KbdProcess LoadFileInit TraceRawIntLclFsFilterProcess LogProcess rqTimeMassIorgPrgLocalServiceCode MemoryInitNMaskInterruptChime OsSubEntry BreakRawIntrgPrgNetRouting FileSystem 4,ÿÿÿ¢0¦ÿÿ (|¦Þ0€ÿÿ`œÄ¢ : Ú ¢Þ %ê-(¢   ?{Þÿÿ œ@Ä'ÈUÄÈUÄÈ UÄÈUÄÈUÄÈUÄ2!È4U¢R   r ¢w¢{ ¢€ 0‚€@ ÿ¢® Ì’²ÿ¢Ï¢Õ¢Û¢á¢ç¢í /ó00010203040506Primary SysService00  @AÿFTCSDRAA?  0 (08 "*2: $,4<&.6>€€¢J€  J¢P€ HÐÎÿHHH ´ )œÄ2TÈ4TÄ6TÈ8TÄ>TÈ@T¢   ¢"`  ‚ † 8œ ÄTÈT¢ž   ¨ "® œ ÄTÈT¢® ¢º ¢Æ ¢Ò ¢Þ ¢ê ¢ö ¢    ^ œ ÄTÈT¢ ¢N   X F^ œ ÄTÈT¢^ 8¢Î  Ø zÞ œ ÄTÈT¢ê  ô  ¢ $   OS.lib (Lowmem_MF Kernel_MF Device_MF KUtil_MF IdleLoop_MF KUtil2_MF Kbdpros_MF VamN_MF Kbdis_MF QMath_MF Math32 RqInterface Crash_MF TermProsMF_BT ClockFace_MF ClockInt_MF Clock_MF Timer_MF NonMaskInt_MF Setvec_MF FilePros_Noswp Ledmgr_MF IccnCtu_HIT LoadMp_BT SoftVecMgr_MF ResetMF_BT InitComm_null VidIo_MF Log_MF MulPar_MF MulparUtil_MF Fileprocs Log2_MF MassInt_MF Diskdrvr_smd_MF Find Directory ResourceMgr_Mp Open CreateDelete Status Volume FileLog Date_MF Massiopros_MF Close_Mp MapDev_MP ByteStreams_MP SysBsDummy_MF RIccsvr_MF IccSub_MF IccResp_MF IccForw_MF Doorbell_MF UsrMap_MF GetSlotInfo_MF GetProcInfo_MF RemoteBootMF_BT Remotecdt_MF Termio_MF LptDummy_MF Commonsubs_MF DWord_MF Svrmb_MF MemAlloc_Mp Mbainf_MF Mbadt_MF Mbdrbell_MF CmCommon_Mp Ecc_Smd_MF FloppyNoCheck ExpandSpecs FilterPros_MF CdtAddr_MF DmyLabels_MF ExpandUcb_MF CpyIn_MF TermProsMsg_MF CtuCall_MF WrapLoadBoot_MF) TapeBoot.lib(QicTable QicCtosMsgInf TapeName WrappedTapeBoot) Dbg.Lib(DbgNul) [Sys]Ctos.lib(KernelNames) RqLablAlt.o ÐÐÐ[```ëÿ¦ð ¢*¢2ð "¢3M €"@„œ ÄTÈT¢ °L¢²¢Ò¢b¢ò ¢¢@¢†L¢ )¢ )° 4ö #%0$&0000000 0 0¿¿ÀÀ & [Sys]CLI.Runœ ÄVÈV¢< K ‡ ¢ˆ   ” €€Sys¢š  £   ¤ œ ÄVÈV  © œ ÄV&ÈV&  ® œ ÄVÈV  ³ œ ÄV$ÈV$  ¸ œ ÄVÈV  ½ !œ ÄVÈV   "œ ÄV%ÈV%  È œ ÄV#ÈV#  Î ÿœ ÄV ÈV   Ô ÿ œ ÄVÈV¢Ü `¢œ¨a Dp    <Fp   [SYS]REQUEST.FP.SYS  ~pœ ÄVÈV  ‡p œ ÄVÈV  pœ ÄVÈV  ™p€ œ ÄVÈV  ¢pœ ÄV(ÈV(  «pœ ÄVÈV ´pdœ ÄVÈV ¾pœ ÄV"ÈV" Âpœ ÄV ÈV  Æpœ ÄVÈV Êpœ ÄVÈV Îpœ ÄVÈV Òpœ ÄVÈV Öpœ ÄVÈV Úpœ ÄVÈV Þpœ ÄVÈV âpœ ÄVÈV æpœ ÄVÈV êpœ ÄV ÈV  îpœ ÄV ÈV  òpœ ÄVÈV öpœ ÄV ÈV  úp[Sys]CLI.Runœ ÄVÈV¢qK [q¢\q  hq€[Sys]Nls.sys¢|qK Çq¢Èq  Ôq[Sys]Master.CNF¢èq üqÔq[Sys]Config.sysœ ÄTÈT¢rH _r¢`r  ;lr€[Sys]Ws###>Config.sys[Sys]InstallVdm.run¢£rD Bçr[Sys]InstallKbd.run[Sys]MathServer.runÿs0¢%s   /ss0¢2s   <TÈ@TÄBTÈDTÄFTÈHTŠ  bj RqLabl.OBJ Request_MF.obj SrpDp.obj Init.lib(InitOsMain_MF InitMulPar_MF InitOs_MF InitKernel_MF InitKProcs_MF InitBoot_MF InitOsSubs_MF InitDev_MF InitCommon_MF InitClock_MF InitFile_MF InitMount_MF InitSMD_MF InitMem_MF InitBus_MF InitIcc_MF InitDevNamDum_MF InitTimer_MF InitTimer1_MF InitRemCpu_MF InitProcessor_MF InitIccFHdler_MF InitFntPanIO_MF InitNls_Mf InitRqEx_BT InitOsEnd_MF) %SET(hardwareType,10) %Set(fDebugger,0) %Set(wsType,%hardwareType) %Set(clusterConfig,2) %Set(fNoFileSystem,0) %Set(fCommIop,0) %Set(fMulpar,0ffh) %Set(nFrames,1) %Set(nNetUsers,40) %Set(nPartitions,6) %Set(fTimeSliceEnable,0FFh) %Set(lbTimeSlicePriority,146) %Set(hbTimeSlicePriority,178) %Set(sParExitRunFile,1600) %SET(sContingencyLog, 1) %Set(sKbdBuffer,128) %Set(maxMedInterruptType, 32) %SET(nSysExchange, 24) %SET(nUsrExchange, 32) %SET(nPcb, 30) %SET(nMsgWait, 300) %SET(nMsgWaitReserve, 40) %SET(nPTiming, 16) %SET(fVerifyFileStruct, 0) %SET(nIob, 20) %SET(sMassIoRqQueue, 128) %SET(nFcb, 150) %SET(nFub, 150) %SET(nFab, 256) %SET(nVhb, 4) %SET(nWinch, 4) %SET(nUcb, %nPartitions) %Set(sOsData,28000) %SET(nMountedDisks, 32) %SET(nReqEnts, 80) %SET(nRespEnts, 80) %SET(sStatArea, 2) %Set(sTermArea, 256) %Set(sLineArea, 64) %Set(sRouteArea, 1100) %set(nAdapters,1) $include(Sysgen.mdf) $include(Sysgen.asm) OS.lib (Lowmem_MF Kernel_MF Device_MF KUtil_MF IdleLoop_MF KUtil2_MF Kbdpros_MF VamN_MF Kbdis_MF QMath_MF Math32 RqInterface Crash_MF TermProsMF_MF ClockFace_MF ClockInt_MFFp Clock_MF Timer_MF NonMaskInt_MF Setvec_MF FilePros_Noswp Ledmgr_MF IccNctu_MF LoadMp_WsMf SoftVecMgr_MF ResetMF_MF InitComm_null VidIo_MF Log_MF MulPar_MF MulparUtil_MF Fileprocs Log2_MF MassInt_MF Diskdrvr_fp_MF Find Directory ResourceMgr_Mp Open CreateDelete Status Volume FileLog Date_MF Massiopros_MF Close_Mp MapDev_MP ByteStreams_MP SysBsDummy_MF RIccsvr_MF IccSub_MF IccResp_MF IccForw_MF Doorbell_MF UsrMap_MF GetSlotInfo_MF GetProcInfo_MF RemoteBootMF_MF Remotecdt_MF Termio_MF LptDummy_MF Commonsubs_MF DWord_MF Svrmb_MF MemAlloc_Mp Mbainf_MF Mbadt_MF Mbdrbell_MF CmCommon_Mp FloppyNoCheck ExpandSpecs FilterPros_MF CdtAddr_MF DmyLabels_MF ExpandUcb_MF CpyIn_MF) Dbg.Lib(DbgNul) [Sys]Ctos.lib(KernelNames) RqLablAlt.obj RqLabl.OBJ Request_MF.obj SrpFp.obj Init.lib(InitOsMain_MF InitMulPar_MF InitOs_MF InitKernel_MF InitKProcs_MF InitBoot_MF InitOsSubs_MF InitDev_MF InitCommon_MF InitClock_MF InitFile_MF InitMount_MF InitWin_MF InitMem_MF InitBus_MF InitIcc_MF InitDevName_MF InitTimer_MF InitTimer1_MF InitRemCpu_MF InitProcessor_MF InitIccFHdler_MF InitFntPanIO_MF InitNls_Mf InitRqEx_MF InitOsEnd_MF) €SrpFpˆCTAsm II-1.0–???SEG??SEGconstconstdatadataCdtSegCdtYSegYsegDGroup˜h˜h˜hr€˜h ˜hÐ< š ÿÿ• saSemiLowestnPTimingnInitProcIntDisable,€Adt oRgOExUcb‚ sIntSwtblÚ Mask186ÒnInitProcHardWare*€ bConsoleSlotÔnMinYŽ mBufOut„ cFramesMaxupbInitFileName°}nXbufÝ userNumLastünXBlockÝnIobUsedö nIccOutà fTimeSliceÎ cbPriParNamergRequestFileNames|nExchIn^ fCheckRequestBlockConsistency$cbSysSvcParName nFreeIobQueueH saTempLowestsbInstallMathSpec¶~ endOsTableü{nFub nLocWriteº sIobQueueFsbInstallVdmPswd›~cbInitFileName´}nInitProcIntEnable.€ sDiskStat nRgInitRtcRequest(€ nDevMounted nInitIOB˜ oExUcbªeventControlBlockPnTerminationRqúrgSysSvcParnamesXBMaxá srgbTypeTableA saEndMemory sbScratchVolumeSpec– ContextStatusÏsbNlsFilePassword{}nMsgWaitReserve rgMassioDisp& hardwareType nBytExchs‚sZblk  userNumKbdˆ nProcTick ti    rqTimeMassIorgPrgLocalServiceCode MemoryInitNMaskInterruptChime OsSubEntry BreakRawIntrgPrgNetRouting FileSystem 4 ,(–– ÿÿÿ¢0¦ÿÿ (|¦Þ0€ÿÿ`œÄ¢ : Ú ¢Þ %ê-(¢   ?{Þÿÿ œ@Ä'ÈUÄÈUÄÈ UÄÈUÄÈUÄÈUÄ2!È4U¢R   r ¢w¢{ ¢€ 0‚€@ ÿ¢® Ì’²ÿ¢Ï¢Õ¢Û¢á¢ç¢í /ó00010203040506Primary SysService00  @AÿFTCSDRAA?  0    €€¢J€  J¢P€ HÐÎÿHHH ´ )œÄ2TÈmeSliceLbÌrgUcb exchFilterPocket fSubsysChannelC÷sbWsConfigFileSpec"~nAvailZ– sbInitFilePassword}fMulpar$ rgExchRealþ{wXlatTableChksum—oRgOUcb€nYblk rgpVidMemLineórgLocalUserNum, sbNlsFileSpec}rgUserReadCountç ExchNetServer rgPriParName sExchStatØ rgDeltaPriorityánIccSkipâ fSubsysChannelDùnTickst maskFPIndexžfSrpUpÚ rgOsTableœ rgbXpChar Ó fSysChannelCïsbConfigFileSpec¶}sBufOut†rgOUcbÞsbInitFileSpec²|pStat‚ pRgOUcb- rgbBufOutP ContextStateÛnIobnParaInæ sbExitRunFilePswd‡ pBitmapExchsSave pRgSwappingRqnUcbrgInitProcIntDisable~| rgSectMap&maskVerifyCodeœ saSemiHighestrgWsId¨ fSysChannelDñfCommIop#wsTypesbConfigFilePswd~rgInitProcIntEnablež| pConsoleObufÖgen:€ cDelayDiscû nAvailIOBœ orgPcb„wVerBuffŽ ntotaluser~sbInstallVdmSpec>~ initSysDevNum2€sbInstallMathPswdÏ~ nRemWriteÞ nRemReadÒ wOSVersionÚosTypesaMaxPartition¬rgFpMasterMountTable"nRemoteDmaRequest" pXlatTable“ userNumVid† rgOSProcDesc6|nVhbConfigpUserXlatTable™ cbNodeName nInitZ’ nRgMassioDisp0€nRawIntˆ pZblkListHead pProcStat nPcb fSubsysChannelBõ initFilePrio} ibBufOutTakeJnSectorPerXBlockß fSysChannelAë fLfsToMasterŸrgInitRtcRequest €bitmapExchsSave{sbExitRunFileSpec* ibBufOutPutL rgbTypeTable‹ clusterConfig! maxAdapters fNoFileSystem"nZblk sbInstallKbdSpecœ~ pDiskStatª sIccStatô saTempHighest GraphicsInfoŠ rgIopChan nLocSeeksÆ fSysChannelBísXBDataãbMasterFpCpuId& pRgOExUcb1 srgExchReal7€ userExchFirst#XBlockHeaderSizeénFcbrgsbWsUserNameûsYblkþpCdtbMySlot'nMinIOBš pRgChgUserNumRqðconfigFilePrio ~ nXBlockSmallç nChgUserNumRqôNodeName  maxDevMountedfSubsysChannelAónRequestFileNames6€ nNetUsers rgRawIntDesc¤ bConsolePortÕnParDesc)sStat¨ sExecŒnIccInÞ nSwappingRqintSwtblÜ NetServerDataê fFsVerifyŽ rgwTwoDigitù nYblkCopyä fCheckMem8€nInitYŒ nParaOutè userNumClstrLastþfBufOutOverflowNpRgTerminationRqörgRemoteDmaRequestö contingencyLog€ nTryNewMaster§FilterProcessExchsbInstallKbdPswdµ~ nWsAbortRqînMinZ” pRgWsAbortRqêbMasterCpCpuId(pIccStatÚ rgcRqÕnLocRead® rgMediatedIntDescÈ rgpIobQListJ nMediatedIntŠ fCheckEcc9€ nOSProcDescÜnUserNum|rgInitProcHardWarev|nMsgWaitnDctû bitmapExchswnAvailY FsRqBuffer® timeSliceHbÍ sSmallXBlockå VerifyCodešnExchg sProcStatX \ nRemSeeksê pYblkListHead fMasterFP%exitRunFilePrio” pExchStatZ fGoingDownÜŒïInitPIT RqInterface StartHardDiskrqTimePollMassIoStartRTCIccInitInitRtcFsIn1MassIoFsIn2 SysDeviceInit ClockTest InitNlsTablesTimerInterrupt InitStatusHardDiskInterruptInit51 BootBlockTerminationProcessCEntryRTCtickrgRcMax InitSysComIccSvrRqExInitSysTime KbdProcess LoadFileInit TraceRawIntLclFsFilterProcess LogProcess  4TÄ6TÈ8TÄ>TÈ@T¢   ¢"`  ‚ † 8œ ÄTÈT¢ž   ¨ "® œ ÄTÈT¢® ¢º ¢Æ ¢Ò ¢Þ ¢ê ¢ö ¢    ^ œ ÄTÈT¢ ¢N   X F^ œ ÄTÈT¢^ 8¢Î  Ø zÞ œ ÄTÈT¢ê  ô  ¢ $ ÐÐÐ[```ëÿ¦ð¢*¢2ð "¢3M €"ôô@tœ ÄTÈT¢ °L¢²¢Ò¢b¢ò¢ö¢ö@¢vL¢ )¢ )° 4ö #%0$&0000000 0 0¿¿ÀÀ & [Sys]CLI.Runœ ÄVÈV¢< K ‡ ¢ˆ   ” €€Sys¢š  £   ¤ œ ÄVÈV  © œ ÄV&ÈV&  ® œ ÄVÈV  ³ œ ÄV$ÈV$  ¸ œ ÄVÈV  ½ !œ ÄVÈV   "œ ÄV%ÈV%  È œ ÄV#ÈV#  Î ÿœ ÄVÈV  Ô ÿ œ ÄVÈV¢Ü `¢œ`m ü{    <þ{   [SYS]REQUEST.FP.SYS  6|œ ÄVÈV  ?| œ ÄVÈV  H|œ ÄV ÈV   Q|€ œ ÄVÈV  Z|œ ÄV(ÈV(  c|œ ÄVÈV l|dœ ÄVÈV v|œ ÄV"ÈV" z|œ ÄV ÈV  ~|œ ÄVÈV ‚|œ ÄVÈV †|œ ÄVÈV Š|œ ÄVÈV Ž|œ ÄVÈV ’|œ ÄVÈV –|œ ÄVÈV š|œ ÄVÈV ž|œ ÄV ÈV  ¢|œ ÄV ÈV  ¦|œ ÄVÈV ª|œ ÄV ÈV  ®|[Sys]CLI.Runœ ÄVÈV¢Ä|K }¢}  }€[Sys]Nls.sys¢0}K {}¢|}  ˆ}[Sys]Master.CNF¢œ} °}ˆ}[Sys]Config.sysœ ÄTÈT¢Ë}H ~¢~  ; ~€[Sys]Ws###>Config.sys[Sys]InstallVdm.run¢W~D B›~[Sys]InstallKbd.run[Sys]MathServer.runÿÿd0¢Ù~   ã~d0¢æ~   <ð~€ÿ ð  ÿÿd1¢(   2d1¢5   <?€ÿ ð  ÿÿd2¢w   d2¢„   <Ž€ÿ ð  ÿÿd3¢Æ   Ðd3¢Ó   3Ý€ÿ ð    €22ÿÿœ ÄV ÈV  €þÿœ ÄVÈV ˆ Š " Ü ; # N(€ÿÿ;,(6––Ð~n½œ!Ä2TÈ4TÄ6TÈ8TÄ:TÈTÈ@TŠ%SET(hardwareType,10) %Set(fDebugger,1) %Set(wsType,%hardwareType) %Set(clusterConfig,2) %Set(fNoFileSystem,0) %Set(fCommIop,0) %Set(fMulpar,0ffh) %Set(nFrames,1) %Set(nNetUsers,40) %Set(nPartitions,6) %Set(fTimeSliceEnable,0FFh) %Set(lbTimeSlicePriority,146) %Set(hbTimeSlicePriority,178) %Set(sParExitRunFile,1600) %SET(sContingencyLog, 1) %Set(sKbdBuffer,128) %Set(maxMedInterruptType, 32) %SET(nSysExchange, 24) %SET(nUsrExchange, 32) %SET(nPcb, 30) %SET(nMsgWait, 300) %SET(nMsgWaitReserve, 40) %SET(nPTiming, 16) %SET(fVerifyFileStruct, 0) %SET(nIob, 20) %SET(sMassIoRqQueue, 128) %SET(nFcb, 150) %SET(nFub, 150) %SET(nFab, 256) %SET(nVhb, 4) %SET(nWinch, 4) %SET(nUcb, %nPartitions) %Set(sOsData,28000) %SET(nMountedDisks, 32) %SET(nReqEnts, 80) %SET(nRespEnts, 80) %SET(sStatArea, 2) %Set(sTermArea, 256) %Set(sLineArea, 64) %Set(sRouteArea, 1100) %set(nAdapters,1) $include(Sysgen.mdf) $include(Sysgen.asm)    Ucb- rgbBufOutP ContextStateÛnIobnParaInæ sbExitRunFilePswd‡ pBitmapExchsSave pRgSwappingRqnUcbrgInitProcIntDisable~| rgSectMap&maskVerifyCodeœ saSemiHighestrgWsId¨ fSysChannelDñfCommIop#wsTypesbConfigFilePswd~rgInitProcIntEnablež| pConsoleObufÖgen>€ cDelayDiscû nAvailIOBœ orgPcb„wVerBuffŽ ntotaluser~sbInstallVdmSpecB~ initSysDevNum6€sbInstallMathPswdÓ~ nRemWriteÞ nRemReadÒ wOSVersionÚosTypesaMaxPartition¬rgFpMasterMountTable"nRemoteDmaRequest" pXlatTable“ userNumVid† rgOSProcDesc6|nVhbConfigpUserXlatTable™ cbNodeName nInitZ’ nRgMassioDisp4€nRawIntˆ pZblkListHead pProcStat nPcb fSubsysChannelBõ initFilePrio } ibBufOutTakeJnSectorPerXBlockß fSysChannelAë fLfsToMasterŸrgInitRtcRequest€bitmapExchsSave{sbExitRunFileSpec* ibBufOutPutL rgbTypeTable‹ clusterConfig! maxAdapters fNoFileSystem"nZblk sbInstallKbdSpec ~ pDiskStatª sIccStatô saTemOS.lib (Lowmem_MF Kernel_MF Device_MF KUtil_MF IdleLoop_MF KUtil2_MF Kbdpros_MF VamN_MF Kbdis_MF QMath_MF Math32 RqInterface Crash_MF TermProsMF_MF ClockFace_MF ClockInt_MFFp Clock_MF Timer_MF NonMaskInt_MF Setvec_MF FilePros_Noswp Ledmgr_MF IccNctu_MF LoadMp_WsMf SoftVecMgr_MF ResetMF_MF InitComm_null VidIo_MF Log_MF MulPar_MF MulparUtil_MF Fileprocs Log2_MF MassInt_MF Diskdrvr_fp_MF Find Directory ResourceMgr_Mp Open CreateDelete Status Volume FileLog Date_MF Massiopros_MF Close_Mp MapDev_MP ByteStreams_MP SysBsDummy_MF RIccsvr_MF IccSub_MF IccResp_MF IccForw_MF Doorbell_MF UsrMap_MF GetSlotInfo_MF GetProcInfo_MF RemoteBootMF_MF Remotecdt_MF Termio_MF LptDummy_MF Commonsubs_MF DWord_MF Svrmb_MF MemAlloc_Mp Mbainf_MF Mbadt_MF Mbdrbell_MF CmCommon_Mp FloppyNoCheck ExpandSpecs FilterPros_MF CdtAddr_MF DmyLabels_MF ExpandUcb_MF CpyIn_MF) Dbg.Lib(MegaResNub MegaResLdr DbgRaw DbgIn3 t1dOs DbgPat dbgNubPmUtil dbgNubPm MegaDebStubs caProc MegaResSys) [Sys]Ctos.lib(KernelNames) RqLablAlt.obj RqLabl.OBJ Request_MF.obj SrpFpDeb.obj Dbg.Lib(DbgLow MegaResOnc) Init.lib(InitOsMain_MF InitMulPar_MF InitOs_MF InitKernel_MF InitKProcs_MF InitBoot_MF InitOsSubs_MF InitDev_MF InitCommon_MF InitClock_MF InitFile_MF InitMount_MF InitWin_MF InitMem_MF InitBus_MF InitIcc_MF InitDevName_MF InitTimer_MF InitTimer1_MF InitRemCpu_MF InitProcessor_MF InitIccFHdler_MF InitFntPanIO_MF InitNls_Mf InitRqEx_MF InitOsEnd_MF) € SrpFpDebˆCTAsm II-1.0–???SEG??SEGconstconstdatadataCdtSegCdtYSegYsegDGroup˜h˜h˜hv€˜h ˜hÐ< š ÿÿ• saSemiLowestnPTimingnInitProcIntDisable0€Adt oRgOExUcb‚ sIntSwtblÚ Mask186ÒnInitProcHardWare.€ bConsoleSlotÔnMinYŽ mBufOut„ cFramesMaxupbInitFileName´}nXbufÝ userNumLastünXBlockÝnIobUsedö nIccOutà fTimeSliceÎ cbPriParNamergRequestFileNames|nExchIn^ fCheckRequestBlockConsistency$cbSysSvcParName nFreeIobQueueH saTempLowestsbInstallMathSpecº~ endOsTableü{nFub nLocWriteº sIobQueueFsbInstallVdmPswdŸ~cbInitFileName¸}nInitProcIntEnable2€ sDiskStat nRgInitRtcRequest,€ nDevMounted nInitIOB˜ oExUcbªeventControlBlockPnTerminationRqúrgSysSvcParnamesXBMaxá srgbTypeTableA saEndMemory sbScratchVolumeSpec– ContextStatusÏsbNlsFilePassword}nMsgWaitReserve rgMassioDisp& hardwareType nBytExchs‚sZblk  userNumKbdˆ nProcTick  timeSliceLbÌrgUcb exchFilterPocket fSubsysChannelC÷sbWsConfigFileSpec&~nAvailZ– sbInitFilePassword}fMulpar$ rgExchRealþ{wXlatTableChksum—oRgOUcb€nYblk rgpVidMemLineórgLocalUserNum, sbNlsFileSpec"}rgUserReadCountç ExchNetServer rgPriParName sExchStatØ rgDeltaPriorityánIccSkipâ fSubsysChannelDùnTickst maskFPIndexžfSrpUpÚ rgOsTableœ rgbXpChar Ó fSysChannelCïsbConfigFileSpecº}sBufOut†rgOUcbÞsbInitFileSpec¶|pStat‚ pRgO pHighest GraphicsInfoŠ rgIopChan nLocSeeksÆ fSysChannelBísXBDataãbMasterFpCpuId& pRgOExUcb1 srgExchReal;€ userExchFirst#XBlockHeaderSizeénFcbrgsbWsUserNameûsYblkþpCdtbMySlot'nMinIOBš pRgChgUserNumRqðconfigFilePrio$~ nXBlockSmallç nChgUserNumRqôNodeName  maxDevMountedfSubsysChannelAónRequestFileNames:€ nNetUsers rgRawIntDesc¤ bConsolePortÕnParDesc)sStat¨ sExecŒnIccInÞ nSwappingRqintSwtblÜ NetServerDataê fFsVerifyŽ rgwTwoDigitù nYblkCopyä fCheckMem<€nInitYŒ nParaOutè userNumClstrLastþfBufOutOverflowNpRgTerminationRqörgRemoteDmaRequestö contingencyLog€ nTryNewMaster§FilterProcessExchsbInstallKbdPswd¹~ nWsAbortRqînMinZ” pRgWsAbortRqêbMasterCpCpuId(pIccStatÚ rgcRqÕnLocRead® rgMediatedIntDescÈ rgpIobQListJ nMediatedIntŠ fCheckEcc=€ nOSProcDescÜnUserNum|rgInitProcHardWarev|nMsgWaitnDctû bitmapExchswnAvailY FsRqBuffer® timeSliceHbÍ sSmallXBlockå VerifyCodešnExchg sProcStatX \ nRemSeeksê pYblkListHead fMasterFP%exitRunFilePrio” pExchStatZ fGoingDownÜŒýInitPIT RqInterface StartHardDiskrqTimePollMassIoStartRTCIccInitInitRtcFsIn1MassIoFsIn2 SysDeviceInit ClockTest InitNlsTablesTimerInterrupt InitStatusHardDiskInterruptInit51 BootBlockTerminationProcessCEntryRTCtickrgRcMax InitSysCom InitDebugNubIccSvrRqExInitSysTime KbdProcess LoadFileInit TraceRawIntLclFsFilterProcess LogProcess rqTimeMassIorgPrgLocalServiceCode MemoryInitNMaskInterruptChime OsSubEntry BreakRawIntrgPrgNetRouting FileSystem 4 ,(–– ÿÿÿ¢0¦ÿÿ (|¦Þ0€ÿÿ`œÄ¢ : Ú ¢Þ %ê-(¢   ?{Þÿÿ œ@Ä(ÈUÄÈUÄÈ UÄÈUÄÈUÄÈUÄ2"È4U¢R   r ¢w¢{ ¢€ 0‚€@ ÿ¢® Ì’²ÿ¢Ï¢Õ¢Û¢á¢ç¢í /ó00010203040506Primary SysService00  @AÿFTCSDRAA?  0    €€¢J€  J¢P€ HÐÎÿHHH ´ )œÄ2TÈ4TÄ6TÈ8TÄ>TÈ@T¢   ¢"`  ‚ † 8œ ÄTÈT¢ž   ¨ "® œ ÄTÈT¢® ¢º ¢Æ ¢Ò ¢Þ ¢ê ¢ö ¢    ^ œ ÄTÈT¢ ¢N   X F^ œ ÄTÈT¢^ 8¢Î  Ø zÞ œ ÄTÈT¢ê  ô  ¢ $ ÐÐÐ[```ëÿ¦ð¢*¢2ð "¢3M €"ôô@tœ ÄTÈT¢ °L¢²¢Ò¢b¢ò¢ö¢ö@¢vL¢ )¢ )° 4ö #%0$&0000000 0 0¿¿ÀÀ & [Sys]CLI.Runœ ÄVÈV¢< K ‡ ¢ˆ   ” €€Sys¢š  £   ¤ œ ÄVÈV  © œ ÄV'ÈV'  ® œ ÄVÈV  ³ œ ÄV%ÈV%  ¸ œ ÄVÈV  ½ !œ ÄVÈV   "œ ÄV&ÈV&  È œ ÄV$ÈV$  Î ÿœ ÄVÈV  Ô ÿ œ ÄVÈV¢Ü `¢œ`m ü{    <þ{   [SYS]REQUEST.FP.SYS  6|œ ÄVÈV  ?| œ ÄVÈV  H|œ ÄV ÈV   Q|€ œ ÄVÈV  Z|  %SET(hardwareType,13) %Set(fDebugger,0) %Set(wsType,%hardwareType) %Set(clusterConfig,2) %Set(fNoFileSystem,1) %Set(fCommIop,0) %Set(fMulpar,0FFh) %Set(nFrames,1) %Set(nNetUsers,40) %Set(nPartitions,8) %Set(fTimeSliceEnable,0FFh) %Set(lbTimeSlicePriority,146) %Set(hbTimeSlicePriority,178) %Set(sParExitRunFile,1600) %SET(sContingencyLog, 1) %Set(sKbdBuffer,128) %Set(maxMedInterruptType, 32) %SET(nSysExchange, 24) %SET(nUsrExchange, 32) %SET(nPcb, 30) %SET(nMsgWait, 300) %SET(nMsgWaitReserve, 30) %SET(nPTiming, 16) %SET(fVerifyFileStruct, 0) %SET(nIob, 0) %SET(nFcb, 0) %SET(nFub, 0) %SET(nFab, 0) %SET(nVhb, 0) %SET(nUcb, %nPartitions) %Set(sOsData,14000) %SET(nReqEnts, 20) %SET(nRespEnts, 10) %SET(sStatArea, 10) %set(nAdapters,1) $include(Sysgen.mdf) $include(Sysgen.asm) ) %SET(nFcb, 0) %SET(nFab, 0) %SET(nVhb, 0) %SET(nUcb, %nPartitions) %SET(nFub, 0) %SET(sPTW0Buf,128) %SET(sPTW1Buf,128) %SET(sPTW2Buf,128) %SET(sPTW3Buf,128) %SET(sPTW4Buf,128) %SET(sPTW5Buf,128) %Set(sTPINBuf,12œ ÄV)ÈV)  c|œ ÄV ÈV  l|dœ ÄVÈV v|œ ÄV#ÈV# z|œ ÄV ÈV  ~|œ ÄVÈV ‚|œ ÄVÈV †|œ ÄVÈV Š|œ ÄVÈV Ž|œ ÄVÈV ’|œ ÄVÈV –|œ ÄVÈV š|œ ÄVÈV ž|œ ÄVÈV ¢|œ ÄV ÈV  ¦|œ ÄV ÈV  ª|œ ÄVÈV ®|œ ÄV ÈV  ²|[Sys]CLI.Runœ ÄVÈV¢È|K }¢}   }€[Sys]<Sys>Nls.sys¢4}K }¢€}  Œ}[Sys]Master.CNF¢ } ´}Œ}[Sys]Config.sysœ ÄTÈT¢Ï}H ~¢~  ;$~€[Sys]Ws###>Config.sys[Sys]InstallVdm.run¢[~D BŸ~[Sys]InstallKbd.run[Sys]MathServer.runÿÿd0¢Ý~   ç~d0¢ê~   <ô~€ÿ ð  ÿÿd1¢,   6d1¢9   <C€ÿ ð  ÿÿd2¢{   …d2¢ˆ   <’€ÿ ð  ÿÿd3¢Ê   Ôd3¢×   3á€ÿ ð   €22ÿÿœ ÄV!ÈV! €þÿœ ÄVÈV ˆ Š " Ü ; # N,€ÿÿ;,(6––Ô~#rÁœ!Ä2TÈ4TÄ6TÈ8TÄ:TÈTÈ@TŠOS.lib (Lowmem_MF Kernel_MF Device_MF KUtil_MF IdleLoop_MF KUtil2_MF Kbdpros_MF VamN_MF Kbdis_MF QMath_MF Math32 RqInterface Crash_MF TermProsMF_BT ClockFace_MF ClockInt_MFFp Clock_MF Timer_MF NonMaskInt_MF Setvec_MF FilePros_Noswp Ledmgr_MF IccnCtu_QIC LoadMp_BT SoftVecMgr_MF ResetMF_BT InitComm_null VidIo_MF Log_MF MulPar_MF MulparUtil_MF Fileprocs Log2_MF MassInt_MF Diskdrvr_fp_MF Find Directory ResourceMgr_Mp Open CreateDelete Status Volume FileLog Date_MF Massiopros_MF Close_Mp MapDev_MP ByteStreams_MP SysBsDummy_MF RIccsvr_MF IccSub_MF IccResp_MF IccForw_MF Doorbell_MF UsrMap_MF GetSlotInfo_MF GetProcInfo_MF RemoteBootMF_BT Remotecdt_MF Termio_MF LptDummy_MF Commonsubs_MF DWord_MF Svrmb_MF MemAlloc_Mp Mbainf_MF Mbadt_MF Mbdrbell_MF CmCommon_Mp FloppyNoCheck ExpandSpecs FilterPros_MF CdtAddr_MF DmyLabels_MF ExpandUcb_MF CpyIn_MF TermProsMsg_MF CtuCall_MF WrapLoadBoot_MF) TapeBoot.lib(QicTable QicCtosMsgInf QicName WrappedQicBoot) Dbg.Lib(DbgNul) [Sys]Ctos.lib(KernelNames) RqLablAlt.obj RqLabl.OBJ Request_MF.obj SrpFp.obj Init.lib(InitOsMain_MF InitMulPar_MF InitOs_MF InitKernel_MF InitKProcs_MF InitBoot_MF InitOsSubs_MF InitDev_MF InitCommon_MF InitClock_MF InitFile_MF InitMount_MF InitWin_MF InitMem_MF InitBus_MF InitIcc_MF InitDevNamDum_MF InitTimer_MF InitTimer1_MF InitRemCpu_MF InitProcessor_MF InitIccFHdler_MF InitFntPanIO_MF InitNls_Mf InitRqEx_BT InitOsEnd_MF)  OS.LIB (Lowmem_MF Kernel_MF Device_MF KUtil_MF IdleLoop_MF KUtil2_MF QMath_MF Math32 RqInterface Crash_MF TermProsMF_MF ClockFace_MF ClockInt_MF Clock_MF Timer_MF NonMaskInt_MF Setvec_MF Kbdpros_MF VamN_MF Kbdis_MF Ledmgr_MF FilePros_Noswp SpCTU_MF LoadMp_WsMf SoftVecMgr_MF ResetMF_MF LptDummy_MF InitComm_null VidIo_MF Log_MF MulPar_MF MulparUtil_MF SysBsDummy_MF ByteStreams_MP MapDev_MP RIccsvr_MF IccSub_MF IccResp_MF IccForw_MF Doorbell_MF UsrMap_MF GetSlotInfo_MF GetProcInfo_MF Termio_MF FileDmy_mf Log2_MF Date_MF Commonsubs_MF Svrmb_MF ResourceMgr_Mp MemAlloc_Mp Mbainf_MF Mbadt_MF Mbdrbell_MF CmCommon_Mp FilterPros_MF CdtAddr_MF DmyLabels_MF ExpandUcb_MF CpyIn_MF) Dbg.Lib(DbgNul) [Sys]Ctos.lib(KernelNames) RqLablAlt.obj RqLabl.OBJ Request_MF.obj SrpSp.obj Init.LIB(InitOsMain_MF InitMulPar_MF InitOs_MF InitKernel_MF InitKProcs_MF InitBoot_MF InitOsSubs_MF InitDev_MF InitCommon_MF InitClock_MF InitMem_MF InitBus_MF InitIcc_MF InitTimer_MF InitTimer1_MF InitFile_MF InitRemCpu_MF InitProcessor_MF InitFntPanIO_MF InitNls_Mf InitRqEx_MF InitSpDynAlc_MF InitOsEnd_MF) €SrpSpˆCTAsm II-1.0–???SEG??SEGconstconstdatadataCdtSegCdtYSegYsegDGroup˜h˜h˜h|B˜h*˜hÐ< š ÿÿh saSemiLowestnPTimingnInitProcIntDisable6BAdtÆ oRgOExUcb† sIntSwtblúMask186„nInitProcHardWare4B bConsoleSlot†nMinYÜmBufOutJ cFramesMax;pbInitFileNameAnXbuf userNumLastÂnXBlocknIobUsedDnIccOut. fTimeSlice” cbPriParNameÝrgRequestFileNamesŒ?nExchIn¬fCheckRequestBlockConsistencyúcbSysSvcParNameå saTempLowestsbInstallMathSpecB endOsTablel?nFub nLocWritesbInstallVdmPswdýAcbInitFileNameAnInitProcIntEnable8B sDiskStatZnRgInitRtcRequest2BnInitIOBæoExUcbpeventControlBlocknTerminationRqÀrgSysSvcParnameæsXBMax“ srgbTypeTable1 saEndMemory sbScratchVolumeSpec¼ ContextStatus•sbNlsFilePasswordÝ@nMsgWaitReserve hardwareType nBytExchsHsZblk¼ userNumKbdŒ nProcTick` timeSliceLb’rgUcb¤exchFilterPocketöfSubsysChannelC©sbWsConfigFileSpec„AnAvailZäsbInitFilePasswordq@fMulpar$ rgExchRealn?wXlatTableChksum]oRgOUcb„nYblk² rgpVidMemLineÅrgLocalUserNum, sbNlsFileSpec€@rgUserReadCountµ ExchNetServerÎ rgPriParNameÞ sExchStat&rgDeltaPriority­nIccSkip0fSubsysChannelD«nTicks: maskFPIndex¢fSrpUpŒ rgOsTable¼ rgbXpChar ª fSysChannelC¡sbConfigFileSpecAsBufOutLrgOUcb sbInitFileSpec@pStatÐpRgOUcbó rgbBufOut ContextState¥nIobnParaIn4sbExitRunFilePswd­pBitmapExchsSaveå pRgSwappingRqÈnUcbrgInitProcIntDisableä? rgSectMapümaskVerifyCode  saSemiHighestrgWsIdn fSysChannelD£fCommIop#wsTypesbConfigFilePswduArgInitProcIntEnable@ pConsoleObufˆgenDB cDelayDisc­ nAvailIOBêorgPcbˆwVerBuffT ntotaluser‚sbInstallVdmSpec A initSysDevNumREQUEST.SP.SYS  ¦?œ ÄVÈV  ¯?œ ÄVÈV  ¸?€ œ ÄVÈV  Á? œ ÄV"ÈV"  Ê?œ ÄVÈV  Ó?dœ ÄVÈV Ü?œ ÄVÈV à?œ ÄVÈV ä?œ ÄVÈV è?œ ÄVÈV ì?œ ÄVÈV ð?œ ÄVÈV ô?œ ÄVÈV ø?œ ÄVÈV ü?œ ÄVÈV @œ ÄV ÈV  @œ ÄVÈV @œ ÄVÈV  @œ ÄV ÈV  @[Sys]CLI.Runœ ÄV ÈV ¢&@K q@¢r@  ~@€[Sys]Nls.sys¢’@K Ý@¢Þ@  ê@[Sys]Master.CNF¢þ@ AId& pRgOExUcb÷ srgExchRealAB userExchFirstéXBlockHeaderSize›nFcbrgsbWsUserName­sYblk°pCdt¸bMySlot'nMinIOBèpRgChgUserNumRq¶configFilePrio‚A nXBlockSmall™ nChgUserNumRqºNodeNameÑfSubsysChannelA¥nRequestFileNames@B nNetUsersÆ rgRawIntDescÊ bConsolePort‡nParDesc)sStatösExecRnIccIn, nSwappingRqÌintSwtblü NetServerData° fFsVerifyT rgwTwoDigitË nYblkCopy2 fCheckMemBBnInitYÚnParaOut6userNumClstrLastÄfBufOutOverflowpRgTerminationRq¼rgRemoteDmaRequestDcontingencyLogF nTryNewMastermFilterProcessExchôsbInstallKbdPswdB nWsAbortRq´nMinZâ pRgWsAbortRq°bMasterCpCpuId(pIccStat(rgcRqnLocReadürgMediatedIntDescî nMediatedIntP fCheckEccCB nOSProcDescžnUserNum€rgInitProcHardWareÜ?nMsgWaitnDct­ bitmapExchs=nAvailYÞ FsRqBuffert timeSliceHb“ sSmallXBlock— VerifyCodežnExchg sProcStat¦ nRemSeeks8 pYblkListHead´> fMasterFP%exitRunFilePrioº pExchStat¨ fGoingDownŽŒžInitPIT RqInterfaceStartRTCIccInitInitRtcFsIn1 SysDeviceInit ClockTest InitNlsTablesTimerInterrupt InitStatusInit51 BootBlockTerminationProcessCEntryRTCtickrgRcMax InitSysComIccSvrRqExInitSysTime KbdProcess LoadFileInit TraceRawIntLclFsFilterProcess LogProcessrgPrgLocalServiceCode MemoryInitNMaskInterruptChime OsSubEntry BreakRawIntrgPrgNetRouting FileSystem 4 , ÿÿÿ¢0(ÿÿ (€( 0€ÿÿ`œÄ¢¤ø œ ¢  %°/(¢Ñ  ?ÝA ÿÿ œ@Ä!ÈUÄÈUÄÈ UÄÈUÄ ÈUÄÈUÄ2È4U¢   8 ¢=¢A E¢F 0H€@ ÿ¢t ’’²ÿ¢•¢¢¥¢­¢µ¢½ 3Å000102030405060708Primary SysService00  @AÿFTCSDRAA?  ô¢€ H‚ÞÿHHH ´ )œÄ2TÈ4TÄ6TÈ8TÄ>TÈ@T¢Æ   ÐÔ8œ ÄTÈT¢ì  ö"üœ ÄTÈT¢ü¢¢¢ ¢,¢8¢D¢P  Z^`œ ÄTÈT¢`¢œ  ¦F¬œ ÄTÈT¢¬8¢ &z,œ ÄTÈT¢8 B ¢ $ ~~~Ýâââÿ¦ ¢*¢2ð "¢3M¢€d¢ä2¢ ¢ )¢ )° "D¿¿ÀÀ[Sys]CLI.Run¢bK ­¢®   º€€Sys¢À  ê@[Sys]Config.sysœ ÄTÈT¢-AH uA¢vA  ;‚A€[Sys]Ws###>Config.sys[Sys]InstallVdm.run¢¹AD 9ýA[Sys]InstallKbd.run[Sys]MathServer.run N P ø ž ; é N2Bÿÿ;,>Š%SET(hardwareType,13) %Set(fDebugger,1) %Set(wsType,%hardwareType) %Set(clusterConfig,2) %Set(fNoFileSystem,1) %Set(fCommIop,0) %Set(fMulpar,0FFh) %Set(nFrames,1) %Set(nNetUsers,40) %Set(nPartitions,8) %Set(fTimeSliceEnable,0FFh) %Set(lbTimeSlicePriority,146) %Set(hbTimeSlicePriority,178) %Set(sParExitRunFile,1600) %SET(sContingencyLog, 1) %Set(sKbdBuffer,128) %Set(maxMedInterruptType, 32) %SET(nSysExchange, 24) %SET(nUsrExchange, 32) %SET(nPcb, 30) %SET(nMsgWait, 300) %SET(nMsgWaitReserve, 30) %SET(nPTiming, 16) %SET(fVerifyFileStruct, 0) %SET(nIob, 0) %SET(nFcb, 0) %SET(nFub, 0) %SET(nFab, 0) %SET(nVhb, 0) %SET(nUcb, %nPartitions) %Set(sOsData,14000) %SET(nReqEnts, 20) %SET(nRespEnts, 10) %SET(sStatArea, 10) %set(nAdapters,1) $include(Sysgen.mdf) $include(Sysgen.asm) Area, 2) %Set(sTermArea, 256) %Set(sLineArea, 64) %Set(sRouteArea, 800) %set(nAdapters,1) $include(Sysgen.mdf) $include(Sysgen.asm) PTW2Buf,128) %SET(sPTW3Buf,128) %SET(sPTW4Buf,128) %SET(sPTW5Buf,128) %Set(sTPINBufOS.LIB (Lowmem_MF Kernel_MF Device_MF KUtil_MF IdleLoop_MF KUtil2_MF QMath_MF Math32 RqInterface Crash_MF TermProsMF_MF ClockFace_MF ClockInt_MF Clock_MF Timer_MF NonMaskInt_MF Setvec_MF Kbdpros_MF VamN_MF Kbdis_MF Ledmgr_MF FilePros_Noswp SpCTU_MF LoadMp_WsMf SoftVecMgr_MF ResetMF_MF Log_MF Log2_MF LptDummy_MF InitComm_null VidIo_MF MulPar_MF MulparUtil_MF SysBsDummy_MF ByteStreams_MP MapDev_MP RIccsvr_MF IccSub_MF IccResp_MF IccForw_MF Doorbell_MF UsrMap_MF GetSlotInfo_MF GetProcInfo_MF Termio_MF FileDmy_mf Date_MF Commonsubs_MF Svrmb_MF ResourceMgr_Mp MemAlloc_Mp Mbainf_MF Mbadt_MF Mbdrbell_MF CmCommon_Mp FilterPros_MF CdtAddr_MF DmyLabels_MF ExpandUcb_MF CpyIn_MF) Dbg.Lib(MegaResNub MegaResLdr DbgRaw DbgIn3 t1dOs DbgPat dbgNubPmUtil dbgNubPm MegaDebStubs caProc MegaResSys) [Sys]Ctos.lib(KernelNames) RqLablAlt.obj RqLabl.OBJ Request_MF.obj SrpSpDeb.obj Dbg.Lib(DbgLow MegaResOnc) Init.LIB(InitOsMain_MF InitMulPar_MF InitOs_MF InitKernel_MF InitKProcs_MF InitBoot_MF InitOsSubs_MF InitDev_MF InitCommon_MF InitClock_MF InitMem_MF InitBus_MF InitIcc_MF InitTimer_MF InitTimer1_MF InitFile_MF InitRemCpu_MF InitProcessor_MF InitFntPanIO_MF InitNls_Mf InitRqEx_MF InitSpDynAlc_MF InitOsEnd_MF) € SrpSpDebˆCTAsm II-1.0–???SEG??SEGconstconstdatadataCdtSegCdtYSegYsegDGroup˜h˜h˜h€B˜h*˜hÐ< š ÿÿh saSemiLowestnPTimingnInitProcIntDisable:BAdtÆ oRgOExUcb† sIntSwtblúMask186„nInitProcHardWare8B bConsoleSlot†nMinYÜmBufOutJ cFramesMax;pbInitFileNameAnXbuf userNumLastÂnXBlocknIobUsedDnIccOut. fTimeSlice” cbPriParNameÝrgRequestFileNamesŒ?nExchIn¬fCheckRequestBlockConsistencyúcbSysSvcParNameå saTempLowestsbInstallMathSpecB endOsTablel?nFub nLocWritesbInstallVdmPswdBcbInitFileNameAnInitProcIntEnableTÈ@T¢Æ   ÐÔ8œ ÄTÈT¢ì  ö"üœ ÄTÈT¢ü¢¢¢ ¢,¢8¢D¢PsbWsConfigFileSpecˆAnAvailZäsbInitFilePasswordu@fMulpar$ rgExchRealn?wXlatTableChksum]oRgOUcb„nYblk² rgpVidMemLineÅrgLocalUserNum, sbNlsFileSpec„@rgUserReadCountµ ExchNetServerÎ rgPriParNameÞ sExchStat&rgDeltaPriority­nIccSkip0fSubsysChannelD«nTicks: maskFPIndex¢fSrpUpŒ rgOsTable¼ rgbXpChar ª fSysChannelC¡sbConfigFileSpecAsBufOutLrgOUcb sbInitFileSpec@pStatÐpRgOUcbó rgbBufOut ContextState¥nIobnParaIn4sbExitRunFilePswd­pBitmapExchsSaveå pRgSwappingRqÈnUcbrgInitProcIntDisableä? rgSectMapümaskVerifyCode  saSemiHighestrgWsIdn fSysChannelD£fCommIop#wsTypesbConfigFilePswdyArgInitProcIntEnable@ pConsoleObufˆgenHB cDelayDisc­ nAvailIOBêorgPcbˆwVerBuffT ntotaluser‚sbInstallVdmSpec¤A initSysDevNum@BsbInstallMathPswd5B nRemWrite,nRemRead  wOSVersionœosTypesaMaxPartitionrnRemoteDmaRequestø pXlatTableY userNumVidŠ rgOSProcDesc¦?nVhbConfigpUserXlatTable_ cbNodeNameÐnInitZànRawIntN pZblkListHeadÀ pProcStat\nPcb fSubsysChannelB§ initFilePrio‚@ ibBufOutTakeünSectorPerXBlock‘ fSysChannelA fLfsToMasterergInitRtcRequestHBbitmapExchsSaveAsbExitRunFileSpecP ibBufOutPutþ rgbTypeTable‹ clusterConfig! maxAdaptersÄ fNoFileSystem"nZblk¾sbInstallKbdSpecB pDiskStatøsIccStatB saTempHighest GraphicsInfoŽ rgIopChanþ nLocSeeks fSysChannelBŸsXBData•bMasterFpCpuId& pRgOExUcb÷ srgExchRealEB userExchFirstéXBlockHeaderSize›nFcbrgsbWsUserName­sYblk°pCdt¸bMySlot'nMinIOBèpRgChgUserNumRq¶configFilePrio†A nXBlockSmall™ nChgUserNumRqºNodeNameÑfSubsysChannelA¥nRequestFileNamesDB nNetUsersÆ rgRawIntDescÊ bConsolePort‡nParDesc)sStatösExecRnIccIn, nSwappingRqÌintSwtblü NetServerData° fFsVerifyT rgwTwoDigitË nYblkCopy2 fCheckMemFBnInitYÚnParaOut6userNumClstrLastÄfBufOutOverflowpRgTerminationRq¼rgRemoteDmaRequestDcontingencyLogF nTryNewMastermFilterProcessExchôsbInstallKbdPswdB nWsAbortRq´nMinZâ pRgWsAbortRq°bMasterCpCpuId(pIccStat(rgcRqnLocReadürgMediatedIntDescî nMediatedIntP fCheckEccGB nOSProcDescžnUserNum€rgInitProcHardWareÜ?nMsgWaitnDct­ bitmapExchs=nAvailYÞ FsRqBuffert timeSliceHb“ sSmallXBlock— VerifyCodežnExchg sProcStat¦ nRemSeeks8 pYblkListHead´> fMasterFP%exitRunFilePrioº pExchStat¨ fGoingDownŽŒ¬InitPIT RqInterfaceStartRTCIccInitInitRtcFsIn1 SysDeviceInit ClockTest InitNlsTablesTimerInterrupt InitStatusInit51 BootBlockTerminationProcessCEntryRTCtickrgRcMax InitSysCom InitDebugNubIccSvrRqExInitSysTime KbdProcess LoadFileInit TraceRawIntLclFsFilterProcess LogProcessrgPrgLocalServiceCode MemoryInitNMaskInterruptChime OsSubEntry BreakRawIntrgPrgNetRouting FileSystem 4 , ÿÿÿ¢0(   Z^`œ ÄTÈT¢`¢œ  ¦F¬œ ÄTÈT¢¬8¢ &z,œ ÄTÈT¢8 B ¢ $ ~~~Ýâââÿ¦ ¢*¢2ð "¢3M¢€d¢ä2¢ ¢ )¢ )° "D¿¿ÀÀ[Sys]CLI.Run¢bK ­¢®   º€€Sys¢À  É  Êœ ÄVÈV  Ïœ ÄV!ÈV!  Ôœ ÄVÈV  Ù œ ÄVÈV  Þ œ ÄVÈV  ã!œ ÄVÈV  è"œ ÄV ÈV   îœ ÄVÈV  ôÿ œ ÄV ÈV ¢ü`¢¼°6 l? ô ö <n?  [SYS]REQUEST.SP.SYS  ¦?œ ÄVÈV  ¯?œ ÄVÈV  ¸?€ œ ÄVÈV  Á? œ ÄV#ÈV#  Ê?œ ÄVÈV  Ó?dœ ÄVÈV Ü?œ ÄVÈV à?œ ÄVÈV ä?œ ÄVÈV è?œ ÄVÈV ì?œ ÄVÈV ð?œ ÄVÈV ô?œ ÄVÈV ø?œ ÄVÈV ü?œ ÄVÈV @œ ÄV ÈV  @œ ÄVÈV @œ ÄVÈV  @œ ÄVÈV @œ ÄV ÈV  @[Sys]CLI.Runœ ÄV ÈV ¢*@K u@¢v@  ‚@€[Sys]Nls.sys¢–@K á@¢â@  î@[Sys]Master.CNF¢A Aî@[Sys]Config.sysœ ÄTÈT¢1AH yA¢zA  ;†A€[Sys]Ws###>Config.sys[Sys]InstallVdm.run¢½AD 9B[Sys]InstallKbd.run[Sys]MathServer.run N P ø ž ; é N6Bÿÿ;,>Š%SET(hardwareType,11) %Set(fDebugger,0) %Set(wsType,%hardwareType) %Set(clusterConfig,2) %Set(fNoFileSystem,1) %Set(fCommIop,0) %Set(fMulpar,0FFh) %Set(nFrames,1) %Set(nNetUsers,40) %Set(nPartitions,8) %Set(fTimeSliceEnable,0FFh) %Set(lbTimeSlicePriority,146) %Set(hbTimeSlicePriority,178) %Set(sParExitRunFile,1600) %SET(sContingencyLog, 1) %Set(sKbdBuffer,128) %Set(maxMedInterruptType, 32) %SET(nSysExchange, 24) %SET(nUsrExchange, 70) %SET(nPcb, 30) %SET(nMsgWait, 100) %SET(nMsgWaitReserve, 30) %SET(nPTiming, 16) %SET(fVerifyFileStruct, 0) %SET(nIob, 0) %SET(nFcb, 0) %SET(nFub, 0) %SET(nFab, 0) %SET(nVhb, 0) %SET(nUcb, %nPartitions) %Set(sOsData,16000) %SET(nReqEnts, 20) %SET(nRespEnts, 10) %SET(sStatArea, 10) %set(nAdapters,1) $include(Sysgen.mdf) $include(Sysgen.asm) 0) %SET(nFcb, 0) %SET(nFab, 0) %SET(nVhb, 0) %SET(nUcb, %nPartitions) %SET(nFub, 0) %SET(sPTW0Buf,128) %SET(sPTW1Buf,128) %SET(sPTW2Buf,128) %SET(sPTW3Buf,128) %SET(sPTW4Buf,128) %SET(sPTW5Buf,128) %Set(sTPINBuf,12OS.lib (Lowmem_MF Kernel_MF Device_MF KUtil_MF IdleLoop_MF KUtil2_MF QMath_MF Math32 RqInterface Crash_MF TermProsMF_MF ClockFace_MF Clock_MF Timer_MF NonMaskInt_MF Setvec_MF Kbdpros_MF VamN_MF Kbdis_MF Ledmgr_MF FilePros_Noswp TpCtu_MF LoadMp_WsMf SoftVecMgr_MF ResetMF_MF Printer1_MF Printer2_MF CommNub_TP CommInt CommStatus_Tp InitComm_Tp VidIo_MF Log_MF Log2_MF MulPar_MF MulparUtil_MF IccForw_MF SysBsDummy_MF ByteStreams_MP MapDev_MP RIccsvr_MF IccSub_MF IccResp_MF Doorbell_MF UsrMap_MF GetSlotInfo_MF GetProcInfo_MF TpInit_MF TpMain_MF TpUtil_MF TpPoll_MF Termio_MF FileDmy_mf Date_MF Commonsubs_MF Svrmb_MF ResourceMgr_Mp MemAlloc_Mp Mbainf_MF Mbadt_MF Mbdrbell_MF CmCommon_Mp FilterPros_MF CdtAddr_MF DmyLabels_MF ExpandUcb_MF CpyIn_MF) Dbg.Lib(DbgNul) [Sys]Ctos.lib(KernelNames) RqLablAlt.obj RqLabl.OBJ Request_MF.obj SrpTp.obj Init.lib(InitOsMain_MF InitMulPar_MF InitOs_MF InitKernel_MF InitKProcs_MF InitBoot_MF InitOsSubs_MF InitDev_MF InitCommon_MF InitClock_MF InitMem_MF InitBus_MF InitIcc_MF I  nZblkZsbInstallKbdSpecÎV pDiskStat”sIccStat* saTempHighest GraphicsInfoŽ rgIopChanÿ nLocSeeks° fSysChannelBmsXBDataebMasterFpCpuId& pRgOExUcb÷ srgExchRealW userExchFirstéXBlockHeaderSizeknFcbrgsbWsUserNameJsYblkLpCdtTbMySlot'nMinIOB„pRgChgUserNumRq¶configFilePrioRV nXBlockSmalliuserNumChannelBt nChgUserNumRqºNodeNameÑfSubsysChannelAsnRequestFileNamesW nNetUsersÆ rgRawIntDesc² bConsolePortWnParDesc)sStat’sExec"nIccIn nSwappingRqÌintSwtblò NetServerData° fFsVerify$ rgwTwoDigit› nYblkCopy fCheckMemWnInitYvnParaOutuserNumClstrLastÄfBufOutOverflowÐpRgTerminationRq¼rgRemoteDmaRequest,sTpInHdr€contingencyLog nTryNewMaster=FilterProcessExchÄsbInstallKbdPswdçV nWsAbortRq´nMinZ~ pRgWsAbortRq°bMasterCpCpuId(pIccStatrgcRqmnLocRead˜rgMediatedIntDescä nMediatedInt  fCheckEccW nOSProcDescžnUserNum€rgInitProcHardWare¬TnMsgWaitnDctJnitTimer_MF InitTimer1_MF InitFile_MF InitRemCpu_MF InitProcessor_MF InitFntPanIO_MF InitNls_Mf InitRqEx_MF InitOsEnd_MF) €SrpTpˆCTAsm II-1.0–???SEG??SEGconstconstdatadataCdtSegCdtYSegYsegDGroup˜h˜h˜hLW˜h*˜hÐ< š ÿÿh saSemiLowestnPTimingnInitProcIntDisableWAdtb oRgOExUcb† sIntSwtblðMask186TnInitProcHardWareW bConsoleSlotVnMinYxmBufOut cFramesMaxpbInitFileNameâUnXbuf_ userNumLastÂnXBlock_nIobUsedànIccOut fTimeSliced cbPriParName­rgRequestFileNamesRTnExchInHfCheckRequestBlockConsistencyÊcbSysSvcParNameµ saTempLowestsbInstallMathSpecèV endOsTable2TnFub nLocWrite¤sbInstallVdmPswdÍVcbInitFileNameæUnInitProcIntEnableW sDiskStatönRgInitRtcRequestWnInitIOB‚oExUcb@eventControlBlockÝnTerminationRqÀrgSysSvcParname¶sXBMaxc srgbTypeTable† saEndMemory userNumChannelC¤sbScratchVolumeSpec¤ ContextStatusesbNlsFilePassword­UnMsgWaitReserve hardwareType nBytExchssZblkX userNumKbdŒ nProcTickü timeSliceLbbrgUcb¤exchFilterPocketÆfSubsysChannelCwpbExtCntlComRegØuserNumChannelDÔsbWsConfigFileSpecTVnAvailZ€sbInitFilePasswordAU nsTpOutBuf~fMulpar$ rgExchReal4TwXlatTableChksum-oRgOUcb„nYblkN rgCommLine rgpVidMemLine•rgLocalUserNum, sbNlsFileSpecPUrgUserReadCount… ExchNetServerÎ rgPriParName® sExchStatrgDeltaPriority}nIccSkipfSubsysChannelDynTicks maskFPIndex¢fSrpUp\ rgOsTable² rgbXpChar ú fSysChannelCosbConfigFileSpecèUsBufOutrgOUcb sbInitFileSpecäTpStatlpRgOUcbó rgbBufOutÒrgTpOutBuffersè ContextStateunIobnParaInsbExitRunFilePswd•pBitmapExchsSaveå pRgSwappingRqÈnUcbrgInitProcIntDisable´T rgSectMapÌmaskVerifyCode  saSemiHighestrgWsId> fSysChannelDqfCommIop#wsTypesbConfigFilePswdEVrgInitProcIntEnableÔT pConsoleObufXgenW sTpOutHdr‚ cDelayDiscL nAvailIOB†orgPcbˆwVerBuff$ ntotaluser‚sbInstallVdmSpecpV initSysDevNum WsbInstallMathPswdW nRemWriteÈnRemRead¼ wOSVersionœosTypesaMaxPartitionBnRemoteDmaRequestÈ pXlatTable) userNumVidŠ rgOSProcDesclTnVhbConfigpUserXlatTable/ cbNodeNameÐnInitZ|nRawInt pZblkListHead\ nsTpInBuf| pProcStatø rgTpInBuffers„nPcb fSubsysChannelBu initFilePrioNU ibBufOutTakeÌnSectorPerXBlocka fSysChannelA fLfsToMaster5rgInitRtcRequestWbitmapExchsSave userNumChannelADsbExitRunFileSpec8 ibBufOutPutÎ rgbTypeTable‹ clusterConfig! maxAdapters` fNoFileSystem"  bitmapExchsnAvailYz FsRqBufferD timeSliceHbc sSmallXBlockg VerifyCodežnExchg sProcStatB\ nRemSeeksÔ pYblkListHeadP fMasterFP%exitRunFilePrio¢ pExchStatD fGoingDown^ŒÄInitPIT RqInterfaceStartRTCIccInitInitRtcFsIn1 SysDeviceInit ClockTest RawCommNub InitNlsTablesTimerInterrupt InitStatusInit51 BootBlockTerminationProcessCEntryrgRcMax InitSysComIccSvrRqExInitSysTime KbdProcess LoadFileInit TraceRawIntLclFsFilterProcess TpPollerInt LogProcessrgPrgLocalServiceCode MemoryInitNMaskInterruptChime OsSubEntry BreakRawInt LpIntDisprgPrgNetRouting TpProcess FileSystem 4 d ÿÿÿ¢0(ÿÿ (€( 0€ÿÿ`œÄ¢¤ø œ ¢  %°/(¢Ñ  ?Ý  ÿÿœ@Ä#ÈUÄÈUÄÈ UÄÈUÄÈUÄÈUÄ2È4U¢ ¢< Dÿÿ¢H ¢l tÿÿ¢x ¢œ ¤ÿÿ¢¨ ¢Ì ÔÿÿÜ œ ÄTÈT¢ß   ÿ ¢ ¢  ¢ 0 €@ ÿ¢D b’²ÿ¢e¢m¢u¢}¢…¢ 3•000102030405060708Primary SysService00  @AÿFTCSDRAA?  Ä¢Ò€ 6RßÿHHÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€€ ¢„d¢è 6¢  FCTOSH ´ )œÄ TÈ TÄTÈTÄTÈT¢b   lp^œ ÄTÈT¢ˆ  ’"˜œ ÄTÈT¢˜¢¤¢°¢¼¢È¢Ô¢à¢ì  ö^üœ ÄTÈT¢ü¢8  BFHœ ÄTÈT¢H^¢ Æœ ÄTÈT¢  * ¢ $ ~~~Ýâââÿ¦ ¢*¢2ð "¢3M¢€d¢ä2¢ ¢ )¢ )° ",¿¿ÀÀ[Sys]CLI.Run¢JK •¢–   ¢€€Sys¢¨  ±  ²œ ÄVÈV  ·œ ÄV!ÈV!  ¼ œ ÄV"ÈV"  Áœ ÄVÈV ÆœÄV ÈV ÄV ÈV   Ð œ ÄVÈV  Õ œ ÄVÈV  Ú!œ ÄVÈV  ß"œ ÄV ÈV   äœ ÄVÈV  êÿ œ ÄV ÈV ¢ò`¢²€> 2T Ä Æ <4T  [SYS]REQUEST.TP.SYS  lTœ ÄVÈV  uTœ ÄVÈV  ~T€ œ ÄVÈV  ‡T œ ÄV%ÈV%  Tœ ÄV$ÈV$  ™Tœ ÄVÈV ¢Tdœ ÄVÈV ¬Tœ ÄVÈV °Tœ ÄVÈV ´Tœ ÄVÈV ¸Tœ ÄVÈV ¼Tœ ÄVÈV ÀTœ ÄVÈV ÄTœ ÄVÈV ÈTœ ÄVÈV ÌTœ ÄVÈV ÐTœ ÄV ÈV  ÔTœ ÄVÈV ØTœ ÄVÈV ÜTœ ÄV ÈV  àT[Sys]CLI.Runœ ÄV ÈV ¢öTK AU¢BU  NU€[Sys]Nls.sys¢bUK ­U¢®U  ºU[Sys]Master.CNF¢ÎU âUºU[Sys]Config.sysœ ÄTÈT¢ýUH EV¢FV  ;RV€[Sys]Ws###>Config.sys[Sys]InstallVdm.run¢‰VD 9ÍV[Sys]InstallKbd.run[Sys]MathServer.run     È ž a é NWÿÿad>Š  ameµ saTempLowestsbInstallMathSpecìV endOsTable2TnFub nLocWrite¤sbInstallVdmPswdÑVcbInitFileNameêUnInitProcIntEnable W sDiskStatönRgInitRtcRequestWnInitIOB‚oExUcb@eventControlBlockÝnTerminationRqÀrgSysSvcParname¶sXBMaxc srgbTypeTable† saEndMemory userNumChannelC¤sbScratchVolumeSpec¤ ContextStatusesbNlsFilePassword±UnMsgWaitReserve hardwareType nBytExchssZblkX userNumKbdŒ nProcTickü timeSliceLbbrgUcb¤exchFilterPocketÆfSubsysChannelCwpbExtCntlComRegØuserNumChannelDÔsbWsConfigFileSpecXVnAvailZ€sbInitFilePasswordEU nsTpOutBuf~fMulpar$ rgExchReal4TwXlatTableChksum-oRgOUcb„nYblkN rgCommLine rgpVidMemLine•rgLocalUserNum, sbNlsFileSpecTUrgUserReadCount… ExchNetServerÎ rgPriParName® sExchStatrgDeltaPriority}nIccSkipfSubsysChannelDynTicks maskFPIndex¢fSrpUp\ rgOsTable² rgbXpChar ú fSysChannelCosbConfigFileSpecìUsBufOutrgOUcb sbInitF%SET(hardwareType,11) %Set(fDebugger,1) %Set(wsType,%hardwareType) %Set(clusterConfig,2) %Set(fNoFileSystem,1) %Set(fCommIop,0) %Set(fMulpar,0FFh) %Set(nFrames,1) %Set(nNetUsers,40) %Set(nPartitions,8) %Set(fTimeSliceEnable,0FFh) %Set(lbTimeSlicePriority,146) %Set(hbTimeSlicePriority,178) %Set(sParExitRunFile,1600) %SET(sContingencyLog, 1) %Set(sKbdBuffer,128) %Set(maxMedInterruptType, 32) %SET(nSysExchange, 24) %SET(nUsrExchange, 70) %SET(nPcb, 30) %SET(nMsgWait, 100) %SET(nMsgWaitReserve, 30) %SET(nPTiming, 16) %SET(fVerifyFileStruct, 0) %SET(nIob, 0) %SET(nFcb, 0) %SET(nFub, 0) %SET(nFab, 0) %SET(nVhb, 0) %SET(nUcb, %nPartitions) %Set(sOsData,16000) %SET(nReqEnts, 20) %SET(nRespEnts, 10) %SET(sStatArea, 10) %set(nAdapters,1) $include(Sysgen.mdf) $include(Sysgen.asm) 0) %SET(nFcb, 0) %SET(nFab, 0) %SET(nVhb, 0) %SET(nUcb, %nPartitions) %SET(nFub, 0) %SET(sPTW0Buf,128) %SET(sPTW1Buf,128) %SET(sPTW2Buf,128) %SET(sPTW3Buf,128) %SET(sPTW4Buf,128) %SET(sPTW5Buf,128) %Set(sTPINBuf,12OS.lib (Lowmem_MF Kernel_MF Device_MF KUtil_MF IdleLoop_MF KUtil2_MF QMath_MF Math32 RqInterface Crash_MF TermProsMF_MF ClockFace_MF Clock_MF Timer_MF NonMaskInt_MF Setvec_MF Kbdpros_MF VamN_MF Kbdis_MF Ledmgr_MF FilePros_Noswp TpCtu_MF LoadMp_WsMf SoftVecMgr_MF ResetMF_MF Printer1_MF Printer2_MF CommNub_TP CommInt CommStatus_Tp InitComm_Tp VidIo_MF Log_MF Log2_MF MulPar_MF MulparUtil_MF SysBsDummy_MF ByteStreams_MP MapDev_MP RIccsvr_MF IccSub_MF IccResp_MF IccForw_MF Doorbell_MF UsrMap_MF GetSlotInfo_MF GetProcInfo_MF TpInit_MF TpMain_MF TpUtil_MF TpPoll_MF Termio_MF FileDmy_mf Commonsubs_MF Date_MF Svrmb_MF ResourceMgr_Mp MemAlloc_Mp Mbainf_MF Mbadt_MF Mbdrbell_MF CmCommon_Mp FilterPros_MF CdtAddr_MF DmyLabels_MF ExpandUcb_MF CpyIn_MF) Dbg.Lib(MegaResNub MegaResLdr DbgRaw DbgIn3 t1dOs DbgPat dbgNubPmUtil dbgNubPm MegaDebStubs caProc MegaResSys) [Sys]Ctos.lib(KernelNames) RqLablAlt.obj RqLabl.OBJ Request_MF.obj SrpTpDeb.obj Dbg.Lib(DbgLow MegaResOnc) Init.lib(InitOsMain_MF InitMulPar_MF InitOs_MF InitKernel_MF InitKProcs_MF InitBoot_MF InitOsSubs_MF InitDev_MF InitCommon_MF InitClock_MF InitMem_MF InitBus_MF InitIcc_MF InitTimer_MF InitTimer1_MF InitFile_MF InitRemCpu_MF InitProcessor_MF InitFntPanIO_MF InitNls_Mf InitRqEx_MF InitOsEnd_MF) € SrpTpDebˆCTAsm II-1.0–???SEG??SEGconstconstdatadataCdtSegCdtYSegYsegDGroup˜h˜h˜hPW˜h*˜hÐ< š ÿÿh saSemiLowestnPTimingnInitProcIntDisable WAdtb oRgOExUcb† sIntSwtblðMask186TnInitProcHardWareW bConsoleSlotVnMinYxmBufOut cFramesMaxpbInitFileNameæUnXbuf_ userNumLastÂnXBlock_nIobUsedànIccOut fTimeSliced cbPriParName­rgRequestFileNamesRTnExchInHfCheckRequestBlockConsistencyÊcbSysSvcParN ileSpecèTpStatlpRgOUcbó rgbBufOutÒrgTpOutBuffersè ContextStateunIobnParaInsbExitRunFilePswd•pBitmapExchsSaveå pRgSwappingRqÈnUcbrgInitProcIntDisable´T rgSectMapÌmaskVerifyCode  saSemiHighestrgWsId> fSysChannelDqfCommIop#wsTypesbConfigFilePswdIVrgInitProcIntEnableÔT pConsoleObufXgenW sTpOutHdr‚ cDelayDiscL nAvailIOB†orgPcbˆwVerBuff$ ntotaluser‚sbInstallVdmSpectV initSysDevNumWsbInstallMathPswdW nRemWriteÈnRemRead¼ wOSVersionœosTypesaMaxPartitionBnRemoteDmaRequestÈ pXlatTable) userNumVidŠ rgOSProcDesclTnVhbConfigpUserXlatTable/ cbNodeNameÐnInitZ|nRawInt pZblkListHead\ nsTpInBuf| pProcStatø rgTpInBuffers„nPcb fSubsysChannelBu initFilePrioRU ibBufOutTakeÌnSectorPerXBlocka fSysChannelA fLfsToMaster5rgInitRtcRequestWbitmapExchsSave userNumChannelADsbExitRunFileSpec8 ibBufOutPutÎ rgbTypeTable‹ clusterConfig! maxAdapters` fNoFileSystem"nZblkZsbInstallKbdSpecÒV pDiskStat”sIccStat* saTempHighest GraphicsInfoŽ rgIopChanÿ nLocSeeks° fSysChannelBmsXBDataebMasterFpCpuId& pRgOExUcb÷ srgExchRealW userExchFirstéXBlockHeaderSizeknFcbrgsbWsUserNameJsYblkLpCdtTbMySlot'nMinIOB„pRgChgUserNumRq¶configFilePrioVV nXBlockSmalliuserNumChannelBt nChgUserNumRqºNodeNameÑfSubsysChannelAsnRequestFileNamesW nNetUsersÆ rgRawIntDesc² bConsolePortWnParDesc)sStat’sExec"nIccIn nSwappingRqÌintSwtblò NetServerData° fFsVerify$ rgwTwoDigit› nYblkCopy fCheckMemWnInitYvnParaOutuserNumClstrLastÄfBufOutOverflowÐpRgTerminationRq¼rgRemoteDmaRequest,sTpInHdr€contingencyLog nTryNewMaster=FilterProcessExchÄsbInstallKbdPswdëV nWsAbortRq´nMinZ~ pRgWsAbortRq°bMasterCpCpuId(pIccStatrgcRqmnLocRead˜rgMediatedIntDescä nMediatedInt  fCheckEccW nOSProcDescžnUserNum€rgInitProcHardWare¬TnMsgWaitnDctJ bitmapExchsnAvailYz FsRqBufferD timeSliceHbc sSmallXBlockg VerifyCodežnExchg sProcStatB\ nRemSeeksÔ pYblkListHeadP fMasterFP%exitRunFilePrio¢ pExchStatD fGoingDown^ŒÒInitPIT RqInterfaceStartRTCIccInitInitRtcFsIn1 SysDeviceInit ClockTest RawCommNub InitNlsTablesTimerInterrupt InitStatusInit51 BootBlockTerminationProcessCEntryrgRcMax InitSysCom InitDebugNubIccSvrRqExInitSysTime KbdProcess LoadFileInit TraceRawIntLclFsFilterProcess TpPollerInt LogProcessrgPrgLocalServiceCode MemoryInitNMaskInterruptChime OsSubEntry BreakRawInt LpIntDisprgPrgNetRouting TpProcess FileSystem 4 d ÿÿÿ¢0(ÿÿ (€( 0€ÿÿ`œÄ¢¤ø œ ¢  %°/(¢Ñ  ?Ý  ÿÿœ@Ä$ÈUÄÈUÄÈ UÄÈUÄÈUÄÈUÄ2È4U¢ ¢< Dÿÿ¢H ¢l tÿÿ¢x ¢œ ¤ÿÿ¢¨ ¢Ì ÔÿÿÜ œ ÄTÈT¢ß   ÿ ¢ ¢  ¢ 0 €@ ÿ¢D b’²ÿ¢e¢m¢u¢}¢…¢ 3•000102030405060708Primary SysService00  @AÿFTCSDRAA?  Ä¢Ò€ 6RßÿHHÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€€ ¢„d¢è 6¢  FCTOSH ´ )œÄ TÈ TÄTÈTÄTÈT¢b   lp^œ ÄTÈT¢ˆ  ’"˜œ ÄTÈT¢˜¢¤¢°¢¼¢È¢Ô¢à  OS.lib (Lowmem_MF Kernel_MF Device_MF KUtil_MF IdleLoop_MF KUtil2_MF QMath_MF Math32 RqInterface Crash_MF TermProsMF_BT ClockFace_MF Clock_MF Timer_MF NonMaskInt_MF Setvec_MF Kbdpros_MF VamN_MF Kbdis_MF Ledmgr_MF FilePros_Noswp TpCtu_BT LoadMp_BT SoftVecMgr_MF ResetMF_BT Printer1_MF Printer2_MF CommNub_TP CommInt CommStatus_Tp InitComm_Tp VidIo_MF Log_MF Log2_MF MulPar_MF MulparUtil_MF IccForw_MF SysBsDummy_MF ByteStreams_MP MapDev_MP RIccsvr_MF IccSub_MF IccResp_MF Doorbell_MF UsrMap_MF GetSlotInfo_MF GetProcInfo_MF TpInit_BT TpMain_MF TpUtil_MF TpPoll_MF Termio_MF FileDmy_mf Date_MF Commonsubs_MF Svrmb_MF ResourceMgr_Mp MemAlloc_Mp Mbainf_MF Mbadt_MF Mbdrbell_MF CmCommon_Mp FilterPros_MF CdtAddr_MF DmyLabels_MF ExpandUcb_MF CpyIn_MF TermProsMsg_MF XpCtuMsg_MF) TapeBoot.lib(QicTable QicCtosMsgInf TapeName) Dbg.Lib(DbgNul) [Sys]Ctos.lib(KernelNames) RqLablAlt.obj RqLabl.OBJ Request_MF.obj SrpXp.obj Init.lib(InitOsMain_MF InitMulPar_MF InitOs_MF InitKernel_MF InitKProcs_MF InitBoot_MF InitOsSubs_MF ¢ì  ö^üœ ÄTÈT¢ü¢8  BFHœ ÄTÈT¢H^¢ Æœ ÄTÈT¢  * ¢ $ ~~~Ýâââÿ¦ ¢*¢2ð "¢3M¢€d¢ä2¢ ¢ )¢ )° ",¿¿ÀÀ[Sys]CLI.Run¢JK •¢–   ¢€€Sys¢¨  ±  ²œ ÄVÈV  ·œ ÄV"ÈV"  ¼ œ ÄV#ÈV#  Áœ ÄVÈV ÆœÄV ÈV ÄV ÈV   Ð œ ÄV ÈV   Õ œ ÄVÈV  Ú!œ ÄVÈV  ß"œ ÄV!ÈV!  äœ ÄVÈV  êÿ œ ÄV ÈV ¢ò`¢²€> 2T Ä Æ <4T  [SYS]REQUEST.TP.SYS  lTœ ÄVÈV  uTœ ÄVÈV  ~T€ œ ÄVÈV  ‡T œ ÄV&ÈV&  Tœ ÄV%ÈV%  ™Tœ ÄVÈV ¢Tdœ ÄVÈV ¬Tœ ÄVÈV °Tœ ÄVÈV ´Tœ ÄVÈV ¸Tœ ÄVÈV ¼Tœ ÄVÈV ÀTœ ÄVÈV ÄTœ ÄVÈV ÈTœ ÄVÈV ÌTœ ÄVÈV ÐTœ ÄV ÈV  ÔTœ ÄVÈV ØTœ ÄVÈV ÜTœ ÄVÈV àTœ ÄV ÈV  äT[Sys]CLI.Runœ ÄV ÈV ¢úTK EU¢FU  RU€[Sys]Nls.sys¢fUK ±U¢²U  ¾U[Sys]Master.CNF¢ÒU æU¾U[Sys]Config.sysœ ÄTÈT¢VH IV¢JV  ;VV€[Sys]Ws###>Config.sys[Sys]InstallVdm.run¢VD 9ÑV[Sys]InstallKbd.run[Sys]MathServer.run     È ž a é NWÿÿad>Š%SET(hardwareType,11) %Set(fDebugger,0) %Set(wsType,%hardwareType) %Set(clusterConfig,2) %Set(fNoFileSystem,1) %Set(fCommIop,0) %Set(fMulpar,0FFh) %Set(nFrames,1) %Set(nNetUsers,40) %Set(nPartitions,8) %Set(fTimeSliceEnable,0FFh) %Set(lbTimeSlicePriority,146) %Set(hbTimeSlicePriority,178) %Set(sParExitRunFile,1600) %SET(sContingencyLog, 1) %Set(sKbdBuffer,128) %Set(maxMedInterruptType, 32) %SET(nSysExchange, 24) %SET(nUsrExchange, 48) %SET(nPcb, 30) %SET(nMsgWait, 100) %SET(nMsgWaitReserve, 30) %SET(nPTiming, 16) %SET(fVerifyFileStruct, 0) %SET(nIob, 0) %SET(nFcb, 0) %SET(nFub, 0) %SET(nFab, 0) %SET(nVhb, 0) %SET(nUcb, %nPartitions) %Set(sOsData,16000) %SET(nReqEnts, 20) %SET(nRespEnts, 10) %SET(sStatArea, 10) %set(nAdapters,1) $include(Sysgen.mdf) $include(Sysgen.asm) ) ) %SET(nFcb, 0) %SET(nFab, 0) %SET(nVhb, 0) %SET(nUcb, %nPartitions) %SET(nFub, 0) %SET(sPTW0Buf,128) %SET(sPTW1Buf,128) %SET(sPTW2Buf,128) %SET(sPTW3Buf,128) %SET(sPTW4Buf,128) %SET(sPTW5Buf,128) %Set(sTPINBuf,12 InitDev_MF InitCommon_MF InitClock_MF InitMem_MF InitBus_MF InitIcc_MF InitTimer_MF InitTimer1_MF InitFile_MF InitRemCpu_MF InitProcessor_MF InitFntPanIO_MF InitNls_Mf InitRqEx_Xp InitOsEnd_MF) €SrpXpˆCTAsm II-1.0–???SEG??SEGconstconstdatadataCdtSegCdtYSegYsegDGroup˜h˜h˜hW˜h*˜hÐ< š ÿÿh saSemiLowestnPTimingnInitProcIntDisableÔVAdt\ oRgOExUcb† sIntSwtbl¾Mask186NnInitProcHardWareÒV bConsoleSlotPnMinYrmBufOut cFramesMaxpbInitFileName°UnXbufY userNumLastÂnXBlockYnIobUsedÚnIccOutä fTimeSlice^ cbPriParName§rgRequestFileNames TnExchInBfCheckRequestBlockConsistencyÄcbSysSvcParName¯ saTempLowestsbInstallMathSpec¶V endOsTableTnFub nLocWritežsbInstallVdmPswd›VcbInitFileName´UnInitProcIntEnableÖV sDiskStatðnRgInitRtcRequestÐVnInitIOB|oExUcb:eventControlBlockÝnTerminationRqÀrgSysSvcParname°sXBMax] srgbTypeTable† saEndMemory userNumChannelC¤sbScratchVolumeSpecr ContextStatus_sbNlsFilePassword{UnMsgWaitReserve hardwareType nBytExchssZblkR userNumKbdŒ nProcTickö timeSliceLb\rgUcb¤exchFilterPocketÀfSubsysChannelCqpbExtCntlComRegØuserNumChannelDÔsbWsConfigFileSpec"VnAvailZzsbInitFilePasswordU nsTpOutBufxfMulpar$ rgExchRealTwXlatTableChksum'oRgOUcb„nYblkH rgCommLine rgpVidMemLinergLocalUserNum, sbNlsFileSpecUrgUserReadCount ExchNetServerÎ rgPriParName¨ sExchStatÜrgDeltaPrioritywnIccSkipæfSubsysChannelDsnTicks maskFPIndex¢fSrpUpV rgOsTable€ rgbXpChar ú fSysChannelCisbConfigFileSpec¶UsBufOutrgOUcb sbInitFileSpec²TpStatfpRgOUcbó rgbBufOutÌrgTpOutBuffersâ ContextStateonIobnParaInêsbExitRunFilePswdcpBitmapExchsSaveå pRgSwappingRqÈnUcbrgInitProcIntDisable‚T rgSectMapÆmaskVerifyCode  saSemiHighestrgWsId8 fSysChannelDkfCommIop#wsTypesbConfigFilePswdVrgInitProcIntEnable¢T pConsoleObufRgenâV sTpOutHdr| cDelayDiscF nAvailIOB€orgPcbˆwVerBuff ntotaluser‚sbInstallVdmSpec>V initSysDevNumÚVsbInstallMathPswdÏV nRemWriteÂnRemRead¶ wOSVersionœosTypesaMaxPartition<nRemoteDmaRequest pXlatTable# userNumVidŠ rgOSProcDesc:TnVhbConfigpUserXlatTable) cbNodeNameÐnInitZvnRawInt pZblkListHeadV nsTpInBufv pProcStatò rgTpInBuffers~nPcb fSubsysChannelBo initFilePrioU ibBufOutTakeÆnSectorPerXBlock[ fSysChannelA fLfsToMaster/rgInitRtcRequestâVbitmapExchsSave userNumChannelADsbExitRunFileSpec ibBufOutPutÈ rgbTypeTable‹ clusterConfig! maxAdaptersZ fNoFileSystem"nZblkTsbInstallKbdSpecœV pDiskStatŽsIccStatø saTempHighest GraphicsInfoŽ rgIopChanÿ nLocSeeksª fSysChannelBgsXBData_bMasterFpCpuId& pRgOExUcb÷ srgExchRealßV userExchFirstéXBlockHeaderSizeenFcbrgsbWsUserNameDsYblkFpCdtNbMySlot'nMinIOB~pRgChgUserNumRq¶configFilePrio V nXBlockSmallcuserNumChannelBt nChgUserNumRqºNodeNameÑfSubsysChannelAmnRequestFileNamesÞV nNetUsersÆ rgRawIntDesc€ bConsolePortQnParDesc)sStatŒsExecnIccInâ nSwappingRqÌintSwtblÀ NetServerData° fFsVerify rgwTwoDigit• nYblkCopyè fCheckMemàVnInitYpnParaOutìuserNumClstrLastÄfBufOutOverflowÊpRgTerminationRq¼rgRemoteDmaRequestúsTpInHdrzcontingencyLog nTryNewMaster7FilterProcessExch¾sbInstallKbdPswdµV nWsAbortRq´nMinZx pRgWsAbortRq°bMasterCpCpuId(pIccStatÞrgcRqgnLocRead’rgMediatedIntDesc² nMediatedInt fCheckEccáV nOSProcDescžnUserNum€rgInitProcHardWarezTnMsgWaitnDctD  ÈV  UT œ ÄV%ÈV%  ^Tœ ÄV$ÈV$  gTœ ÄVÈV pTdœ ÄVÈV zTœ ÄVÈV ~Tœ ÄVÈV ‚Tœ ÄVÈV †Tœ ÄVÈV ŠTœ ÄVÈV ŽTœ ÄVÈV ’Tœ ÄVÈV –Tœ ÄVÈV šTœ ÄVÈV žTœ ÄV ÈV  ¢Tœ ÄVÈV ¦Tœ ÄVÈV ªTœ ÄV ÈV  ®T[Sys]CLI.Runœ ÄV ÈV ¢ÄTK U¢U  U€[Sys]Nls.sys¢0UK {U¢|U  ˆU[Sys]Master.CNF¢œU °UˆU[Sys]Config.sysœ ÄTÈT¢ËUH V¢V  ; V€[Sys]Ws###>Config.sys[Sys]InstallVdm.run¢WVD 9›V[Sys]InstallKbd.run[Sys]MathServer.run    Â ž K é NÐVÿÿKd>Š bitmapExchsnAvailYt FsRqBuffer> timeSliceHb] sSmallXBlocka VerifyCodežnExchg sProcStat<\ nRemSeeksÎ pYblkListHeadJ fMasterFP%exitRunFilePriop pExchStat> fGoingDownXŒÄInitPIT RqInterfaceStartRTCIccInitInitRtcFsIn1 SysDeviceInit ClockTest RawCommNub InitNlsTablesTimerInterrupt InitStatusInit51 BootBlockTerminationProcessCEntryrgRcMax InitSysComIccSvrRqExInitSysTime KbdProcess LoadFileInit TraceRawIntLclFsFilterProcess TpPollerInt LogProcessrgPrgLocalServiceCode MemoryInitNMaskInterruptChime OsSubEntry BreakRawInt LpIntDisprgPrgNetRouting TpProcess FileSystem 4 d ÿÿÿ¢0(ÿÿ (€( 0€ÿÿ`œÄ¢¤ø œ ¢  %°/(¢Ñ  ?Ý  ÿÿœ@Ä#ÈUÄÈUÄÈ UÄÈUÄÈUÄÈUÄ2È4U¢ ¢< Dÿÿ¢H ¢l tÿÿ¢x ¢œ ¤ÿÿ¢¨ ¢Ì ÔÿÿÜ œ ÄTÈT¢ß   ÿ ¢¢ ¢ 0€@ ÿ¢> \’²ÿ¢_¢g¢o¢w¢¢‡ 3000102030405060708Primary SysService00  @AÿFTCSDRAA?  ¾¢Ì€ 6LßÿHHÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€€ ¢~d¢â 6¢  @CTOSH ´ )œÄ TÈ TÄTÈTÄTÈT¢\   fjHœ ÄTÈT¢‚  Œ"’œ ÄTÈT¢’¢ž¢ª¢¶¢Â¢Î¢Ú¢æ  ð^öœ ÄTÈT¢ö¢2  <FBœ ÄTÈT¢BH¢Ò Üšâœ ÄTÈT¢î ø ¢ $ ~~~Ýâââÿ¦ ¢*¢2ð "¢3M¢€d¢ä2¢ ¢ )¢ )° "ú¿¿ÀÀ[Sys]CLI.Run¢K c¢d   p€€Sys¢v    €œ ÄVÈV  …œ ÄV!ÈV!  Š œ ÄV"ÈV"  œ ÄVÈV ”œÄV ÈV ÄV ÈV   ž œ ÄVÈV  £ œ ÄVÈV  ¨!œ ÄVÈV  ­"œ ÄV ÈV   ²œ ÄVÈV  ¸ÿ œ ÄV ÈV ¢À`¢€€> T ¾ À <T  [SYS]REQUEST.TP.SYS  :Tœ ÄVÈV  CTœ ÄVÈV  LT€ œ ÄV ; ; FILE SYSGEN.ASM -- ; ; COPYRIGHT 1980, 1981, 1982, 1983, 1984 CONVERGENT TECHNOLOGIES, INC. ; ALL RIGHTS RESERVED ; ; THIS PROGRAM IS FURNISHED UNDER A LICENSE RESTRICTING ITS USE ; SOLELY FOR THE OPERATION OF A DESIGNATED COMPUTER FOR A ; PARTICULAR PURPOSE, AND MAY NOT BE COPIED OR OTHERWISE USED ; WITHOUT THE PRIOR WRITTEN CONSENT OF CONVERGENT TECHNOLOGIES, ; INC. TITLE TO AND OWNERSHIP OF THE PROGRAM, INCLUDING ITS ; SOURCE CODE, SHALL AT ALL TIMES REMAIN IN CONVERGENT ; TECHNOLOGIES. ; ; The file "sysgen.mdf" contains all of the macro definitions for the macros ; which are contained in this file, "sysgen.asm". The intent is to make ; changing the system build parameters as painless as possible, and so this ; file has been created using macros which provide a high degree of ; readability and allow the user to ignore the Assembly language constructs ; which are actually generated. The prefix file and Sysgen.asm contain macros ; which generate three sections of data: ; ; 1. "resident" tables and variables ; 2. OsTable from which CTOS will allocate ; space for non-sysgen resident tables ; and variables ; 3. "initial" tables and variables ; which will be discarded after CTOS ; initialization is completed. ; ; CLUSTER CONFIGURATION -- ; This module uses several macro symbols to determine the configuration of ; the CTOS being built. The prefix files iClstrLfsSp.asm, a210ClstrSp.asm, ; iopMstrMp.asm, etc. set these symbols. The prefix file includes both ; Sysgen.asm and Sysgen.mdf. In the form given to the assembler, list only ; the name of the prefix file. ; ; HARD DISK AND DEBUGGER OPTIONS -- ; To simplify removal of optional debugger and hard disk, two flags are used, ; fHDisks and fDebugger. These are both set to TRUE (1) unless one of the ; above prefix files files (iClstrLfsSp.asm, a210ClstrSp.asm, ...) sets them ; explicitly. To remove the debugger or hard disk, set the appropriate flag ; to FALSE (0) and assemble this module. NOTE that you must also change the ; appropriate XXX.link file as described in the "Building a Customized CTOS" ; section of the System Programmer's Guide. ; ; NOTES FOR CHANGING THIS FILE -- ; ; Please be aware that in the Convergent Assembly language there are two types ; of comments, normal comments, (any text on a line after a ";" character, ; and a macro comment (%' text '). It is not possible to "comment out" a ; macro by inserting a ";" in front of it. You may comment out a macro by ; replacing the percent sign in the call with a ";", or by precceding the call ; with "%'". This will cause the macro processor to ignore any text up to and ; including the next "'" or RETURN (0Ah) character, whichever comes first. ; Macro calls must not be mixed. In general, the invocation of a macro causes ; an entry to be added to a table, and mixing macro calls would result in ; scrambled tables. ; ; In most cases, you will not change this file at all, but rather will change ; the SET macros contained in the prefix file (such as iClstrLfsMp.Asm or ; t1MstrMp.Asm versions of CTOS). The meaning of these SET macros is explained ; below. ; ; SET AND CONFIGURATION MACROS USED IN THIS FILE -- ; ; The following macros are used to control the conditional ; statements in this module: ; ; WsType ............. 0: IWS standalone workstation ; 1: IWS cluster workstation ; 2: IWS mini-cluster master ; 3: IWS CommIOP-cluster master ;  4: AWS-210 ; 5: AWS-220, AWS-230, or AWS-240 ; 6: AWS-240 ; 7: NGEN cluster ; 8: NGEN ; 9: Ngen Master ; 10: FP ; 11: TP ; 12: CP ; 13: SP ; 14: DP ; 15: RP ; ; HardwareType ....... 0: IWS ; 1: AWS-210 ; 2:  tal number of simultaneous real ; time clock service requests. CTOS ; requires at least 16 to run all ; Convergent programs. Each adds 4 ; bytes. ; ; nIob ............... Total number of simultaneous disk ; I/O requests allowed. CTOS ; requires at least 6 to run all ; Convergent programs. Each "iob" ;  structure adds 50 bytes to CTOS. ; ; nFab ............... Total number of "runs" allowed for ; all open files combined. The ; appropriate number is highly ;  dependent on the frequency of file ; creation, deletion, and expansion; ; and on the frequency with which ; you reload your disk volumes. ; Ea AWS-220 or AWS-230 ; 3: AWS-240 ; 4: NGEN ; 10: FP ; 11: TP ; 12: CP ; 13: SP ; 14: DP ;  15: RP ; ; ClusterConfig ...... 0: Standalone workstation ; 1: Cluster workstation ; 2: Cluster master ; ; fNoFileSystem ...... 0: Any workstation with a filesystem ; 1: Cluster stations without filesystems ; ; fCommIOP ........... 0: Any workstation but Comm-IOP master ; 1: CommIOP-cluster master ; ; fDebugger .......... 0: Exclude debugger ; 1: Include debugger ; ; fHDisks ............ 0: No hard disks ; 1: Include hard disks ; ; Compilation flags and system build parameters. The "Set" macros placed in ; the "prefix" file (such as iClstrLfsSp.Asm, or t1ClstrSp.Asm), are defined ; as follows: ; ; lineHz ............. This is the AC line frequency, ; used by the real time clock (50Hz ; or 60Hz) ; ; fVerifyFileStruct .. If this is non zero then CTOS will ; verify file structures after ; writing to disk. Adds 512 bytes. ; Halves file system performance. ; ; sContingencyLog .... Stray interrupt log (minimum value ; is 1 word) ; ; sKbdBuffer ......... Keyboard type ahead buffer (must ; be a power of 2) ; ; sOutBuffer ......... size in bytes of the output ; character buffer. This size must ; be a power of 2. The output buffer ; is used by Megaframes in administrator mode. ; ; maxMedInterruptType Maximum type number of all ; mediated interrupts set. ; ; nFrames ............ Number of simultaneous video ; frames. Each frame adds 20 bytes. ; ; nSysExchange ....... Exchanges reserved for CTOS. ; Obsolete. ; ; nUsrExchange ....... User Exchanges (maximum 64). Each ; adds 4 bytes. ; ; nPcb ............... Number of processes (CTOS and user ; combined). The largest standard ; OS has 8, and the Executive has 2, ; making a minimum of 10. Each adds ;  40 bytes. ; ; nMsgWait ........... Total number of message link ; blocks. The minimum number needed ; by CTOS is the sum of ; nMsgWaitReserve (see below) plus ;  20. Each adds 4 bytes to CTOS. ; ; nMsgWaitReserve .... Number of message link blocks ; reserved for CTOS "pSend" primative. ; Obsolete. ; ; nPTiming ........... To ch "fab" structure is 10 bytes. ; ; nVhb ............... Total number of disk devices in ; the system. Each adds 256 bytes. ; ; nWinch ............. Number of Winchester disks (the ; SyQuest cartridge is counted as a ; Winchester disk). ; ; nUcb ............... Number of user control blocks. ; Each is 95 bytes. In clusters, ; changing this number causes ; various other numbers (see below) ; to also be changed. ; ; nWsUserNum ......... Number of workstation user numbers. ; There is a user number required for ;  partition in each workstation. The ; default is the number of ; workstations plus 3. Megaframe only. ; ; nFcb ............... Total number of open files allowed ;  in the system. Each adds 11 ; bytes. This is a function of the ; number of workstations (see nUcb ; above). ; ; nFub ............... Number of file user blocks (used ; to lookup a "fcb" from a file ; handle). This should be the same ; as nFcb. Each adds 5 bytes. This ; is a function of the number of ; workstations (see nUcb above). ; ; nXBlk .............. Number of transmission blocks (= ; number of request control blocks). ; Each is 512 bytes times the number ;  nSectorPerXBlk (see below). This ; is a function of the number of ; workstations (see nUcb above). ; ; nSectorPerXBlk ..... Number of sectors in each ;  transmission block (see nXBlk ; above). ; ; nSectorPerXBlkFst .. For an NGen master, if a high speed line is ; specified in config.sys (:ClusterLineSpeed: ; 1.8mbps), the number of sectors in each ; transmission block will be taken from ; nSectorPerXBlkFst instead of nSectorPerXBlk. ; ; nXBlkSmall ......... Number of small transmission blocks (= ;  sMaxSmallRq). Requests received from cluster ; workstations that will fit in a small XBlk will ; not take up a large XBlk. This is designed for ; applications that need to have a number of small ; requests that will be outstanding for long ; periods of time. ; ; sMaxSmallRq ........ The maximum size (in bytes) of a request that ;  will fit in a small XBlk. ; ; wsTotal ............ Total number of workstations ; ; sioClock ........... Sio Clock divisor. It is the ; divisor of 1,228,800 baud. (4 for ; 307200 baud) ; ; fIopDump ........... Crashdump the IOP on load if non ; zero ; ; nIops .............. Number of IOP's ; ; nWsLine1 ........... Maximum number of workstations ; which may be attached to channel 1 ; of IOP 1 or CP ; ; nWsLine2 ........... Maximum number of workstations ; which may be attached to channel 2 ; of IOP 1 or CP ; ; nWsLine3 ........... Maximum number of workstations ; which may be attached to channel 1 ; of IOP 2 ; ; nWsLine4 ........... Maximum number of workstations ; which may be att  e specified, and the number of workstations on each line ; must be specified, where lines 1 and 2 are on the first IOP ; card and lines 3 and 4 are on the second. If there is only ; one IOP card the number of workstations on lines 3 and 4 ; should be set to 0. ; EVEN ;################################################################ ; The ICC Server Agent massages certain requests to allow the # ; File Processor (s) to perform DMA directly to the target. # ; These requests are declared using the RemoteDmaRequest macro # ; The RemoteDmaRequest macro is documented in Sysgen.mdf # ;################################################################ %if ((%fFP) OR (%fDP)) Then ( %RemoteDmaRequest(35,3025h,18,1) %RemoteDmaRequest(36,3026h,18,1) %RemoteDmaRequest(3004h,3004h,28,1) %RemoteDmaRequest(3005h,3005h,28,1) %RemoteDmaRequest(301Dh,301Dh,28,1) %RemoteDmaRequest(3020h,3020h,28,1) ) Fi %RemoteDmaRequest(191,191,18,1) %RemoteDmaRequest(192,192,18,1) EVEN ; STARTIO -- ; ; The SysGen description ached to channel 2 ; of IOP 2 ; ; nUserNum ........... The maximum number of users that can be ; supported by this workstation. A master ; needs to allocate one user number for each local ; user (nUcb) plus one for each possible cluster ; user. ; ; nYblk .............. Number of large ICC request blocks ; used to hold remote requests. ; ; nSectorPerYblk ..... Size of a Yblk, measured in 512 ; byte units. This must be at least ; as large as as an Xblk (5 is the ; minimum size) ; ; nZblk .............. Number of small ICC request blocks ; Each Zblk costs %sZblk bytes ; The default Zblk size is 100 bytes ; ; sZblk .............. Size of a Zblk ; ; nReqEnts ........... Size of the ICC input request ; circular buffer. Each entry costs ; five bytes. ; ; nRespEnts .......... Size of the ICC input response ; circular buffer. Each entry costs ; five bytes. ; ; sStatArea .......... Size of the ICC statistics ares. A ; minimum of 10 bytes is recommended ; ; sTermArea .......... Master FP only. Size of the ; terminal routing area. One entry ; per terminal (RS-232 or PT) in the ; system is required. Each entry ; costs two bytes. ; ; sLineArea .......... Master FP only. Size of the line ; routing area. One entry per RS-422 ; line is required. Each entry is ; two bytes long. ; ; sRouteArea ......... Master FP only. One entry per ; request code is required. Each ; entry costs one byte. ; ; nLine .............. Number of configured RS-422 lines ; on a CP. Values of 1 or 2 are OK. ; ; fSrpClock1 ......... Line speed of RS-422 line #1. A ; value of 0FFh indicates the 1.8Mbs ; speed while 0 indicates the 307kbs ; ; fSrpClock2 ......... As above, but for line #2. ; ; nAdapters .......... Maximum number of multibus adapters ; in Megaframe system. If omitted, a default ; value of 1 is assumed. ; ; nNetUsers .......... The maximum number of CtNet users that can be ; supported by this workstation. ; ; FontRamBuf ......... 0FFh indicates that 8704 bytes ; buffer is reserved at low memory ; for LoadFontRam operations ; ; sOsData ............ The OS requires data space for ; dynamically allocated ; data structures (such as stacks, ; etc.). Failure to make this number ; large enough will result in a crash ; with an ERC 101 at boot. ; ; TO BUILD FULL CLUSTER (IOP) CTOS -- ; Each IOP card has two channels or lines. There may be ; 2 IOP cards on a workstation. The number of IOP cards must ; b of StartIO routines for the different ; mass storage devices are put in an array, called rgMassioDisp, ; in the order of device class defined in their DCB's. MassIO ; Process uses this array to dispatch IO requests. ; ; To declare a StartIO routine use the macro "MassioDisp" with ; one argument, the name of the public procedure which will ; initiate IO for the device. THE MACRO HAS TO BE INVOKED ; ACCORDING TO THE ORDER OF THE DEVICE CLASS. IF THERE IS ; DISCONTINUITY IN THE SEQUENCE OF DEVICE CLASSES, A DUMMY ; ENTRY HAS TO BE PROVIDED. ; ; MassioDisp(pStartIO) ; %If (%fMFHardware) THEN ( %IF (%fFP OR %fDP) Then ( %MassioDisp(StartHardDisk) ; Fp & SP+SC each have 1 type StartIO routine )FI ) ELSE (%' Workstation %IF (((%wsType NE iwsCluster) AND (%wsType NE aws210) AND (%wsType NE ngenCluster)) OR (%localFs NE 0)) THEN ( %MassioDisp(StartHardDisk) ; Device class 0 - Winchester StartIO routine %MassioDisp(StartFloppy) ; Device class 1 - Floppy StartIO routine %MassioDisp(StartHardDisk) ; Device class 2 - Winchester (SMD Cntllr) %MassioDisp(StartHardDisk) ; Device class 3 - Floppy (SMD Cntllr) StartIO %MassioDisp(StartHardDisk) ; Device class 4 - SMD StartIO routine )FI)FI ;############################################################### ; Exit Run File -- ; This macro defines the name of a file which CTOS loads ; when the application program calls Exit or ErrorExit, or ; are entered. ;################################################################ %IF(%*isdef(%ExitFile)) THEN ( %ExitRunFile("%ExitFile","",128) ) ELSE ( %IF(%fMFHardware) THEN ( %ExitRunFile("[Sys]CLI.Run","",128) ) ELSE ( %ExitRunFile("[Sys]Signon.Run","",128) )FI)FI ;############################################################### ; Specify the name of a volume which is designated as the ; volume [SCR]. This is the volume where the spooler is ; going to create temporary files. ;################################################################ %IF(%*isdef(%ScratchVolume)) THEN ( %ScratchVolumeSpec("%ScratchVolume") ) ELSE ( %ScratchVolumeSpec("Sys") )FI %IF(%fVarPar) THEN ( ;############################################################### ; ; SwapFileTryFirst("File name","pswd") ; SwapFileTryEach ("File name","pswd",ibToNumber,ckCreateDefault) ; ; These macros define the name of a file which CTOS uses ; when it becomes necessary to write a running program onto disk. ; ; The file mentioned in SwapFileTryFirst is tried first. The file ; must be at least as large as the default create size (last argument). ; If it cannot be opened or is too small, then SwapFileTryEach is tried. ; Each time a decimal number is inserted into the name at the position ; indicated by the third parameter (char position, 1st char=0). ; If the file is in use, the next is tried. ; If the file couldn't be opened a Create is tried. If the create ; fails, the OS crashes with ercNoSwapFile. ; ; The file is created with size as indicated by the forth macro arg. ; Size is measured in kilobytes(1024 byte blocks). A size of 512 would ; create a swap file of 1/2 megabyte. ; ;################################################################ %IF(%*isdef(%SwapFile)) THEN ( %SwapFileTryFirst("%SwapFile","") ) ELSE ( %SwapFileTryFirst("[sys]CrashDump.sys","") )FI %IF(%*isdef(%SwapFileLoop)) THEN ( %SwapFileTryEach("%SwapFileLoop%(00)","",%LEN(%SwapFileLoop),1500) ) ELSE ( %SwapFileTryEach("[sys]SwapArea00.sys","",18,1500) )FI )FI ;############################################################### ; SysGen Description of Interrupt handlers. There are two ; types of interrupt handlers, "raw" and "mediated". ; ; ; RAW INTERRUPTS -- A "raw" interrupt handler is a routine to ; which control is passed by the 8086 CPU when the interrupt ; occurs. It is the resposability of the handler to save the ; current register context, and to restore context before ; executing an interrupt return. A raw interrupt may be ; generated by hardware (through the 8  ciated with the interrupt ; type: ; ; RawInterrupt(type,pHandler) ; ; ; MEDIATED INTERUPT DECLARATION -- To declare a mediated ; interrupt handler, use the macro "MediatedInterrupt" with ; three arguments, the interrupt type, a flag (0 or 0FFh) ; saying whether or not the interrupts are generated by the ; 8259A interrupt chip, and the name of the interrupt handler. ; CTOS will use the macro declarations to build a table which ; it will use to service interrupts: ; ;%' %MediatedInterrupt(type,f8259,pHandler) ; ; ; ADDING HANDLERS -- In addition to adding the macro ; declaration of an interrupt handler, you must link CTOS with ; the object module containing the handler. The handler should ; be written following the conventions outlined in the Assembly ; Language Manual (appendix) relating to register BP usage, ; segment names, etc. ; ; CASCADED 8259A's -- If you "cascade" 8259A interrupt chips on ; custom multibus cards, you must declare the interrupt level ; which is cascaded. The only legal levels are of c259A interrupt chip) or ; by software (with an "int" or an "int nn" instruction). ; ; ; MEDIATED INTERRUPTS -- A "mediated interrupt is one which ; CTOS "mediates" for the user, by saving the current register ; context, and then calling the interrupt handler as a ; subroutine. This is especially usefull because it allows ; FORTRAN and Pascal procedures to be written as interrupt ; handlers. A "mediated" interrupt may be generated by ; hardware or software, just as with the "raw" interrupts. ; ; ; INTERRUPT TYPE -- The 8086 interrupt type is a code which the ; 8086 CPU uses to distinguish different hardware interrupts. ; A hardware interrupt may be generated in one of three ways. ; First, the 8086 may generate the interrupt itself (division ; error, overflow [with OF enabled], or after every instruction ; if TF is enabled. Second, a nonmaskable interrupt may occur, ; signalling some catastrophic error such as power failure, bus ; timout, or parity error. Third, a maskable interrupt ; generated by the 8259A interrupt chip may occur. A software ; interrupt may be of any type (0 to 119). The type is used to ; map the interrupt to a pointer in low memory which contains ; the "CS:IP" of the appropriate interrupt handler. Each ; pointer is 4 bytes, starting with type 0 at 0000:0000h, type ; 1 at 0000:0004h, etc. The fixed interrupt types are as ; follows: ; ; type 0 ... divide error ; type 1 ... single step (TF enabled) ; type 2 ... nonmaskable interrupts ; type 3 ... special one byte interrupt instruction ;  (used by Convergent Debugger) ; type 4 ... arithmetic overflow (OF enabled) ; 5 Array Bounds ; 6 Undefined Opcode trap ; 7 ESC Opcode trap ; 8 Timer 0 ; 18 Timer 1 ; 19 Timer 2 ; 9 Reserved ; 10 DMA 0 Interrupt ; 11 DMA 1 Interrupt ; 12 Int 0 Interrupt ; 13 Int 1 Interrupt - Doorbell ; 14 Int 2 Interrupt ; 15 Int 3 Interrupt ; ; Other entries less than or equal to 31 are reserved ; ; Note that it is not possible to have more than one routine to ; handle any interrupt type. ; ; There are 8 interrupt levels corresponding to interrupts ; generated by the 8259A, which are mapped onto 8 types (8 - ; 15). Four of these types/levels are reserved for Convergent ; devices and four are conected to the Multibus interface: ; ; level: type: assignment: ; 0 8 Multibus ; 1 9 communications controller ; 2 10 Multibus ; 3 11 programmable interval timer ; 4 12 printer, keyboard, real-time clock, ; 8087 math chip ; 5 13 Multibus ; 6 14 Multibus ; 7 15 disk storage subsystem (floppy and ; hard disk) ; ; ; RAW INTERRUPT DECLARATION -- To declare a raw interrupt ; handler use the macro "RawInterrupt" with two arguments, the ; 8086 interrupt type, and the name of the public procedure ; which will handle the interrupt. Note that a raw interrupt ; handler must save the user context (registers), and should ; return with the "iret" Assembly Language instruction. The ; effect of executing this macro is to have the CS:IP of the ; handler put into the pointer asso ourse 0, 2, ; 5, and 6. To declare a cascaded 8259A use the macro ; "InterruptCascadeLevel" with one argument, the level. For ; example, if you are cascading level 6 (8086 type 14), you ; would declare: ; ;%' %InterruptCascadeLevel(6) ; ; ; NON DECLARED INTERRUPTS -- Any interrupt which occurs of a ; type for which an interrupt handler is not supplied will ; cause CTOS to generate a "crash", which is described in the ; CTOS manual. In particular, no handler is supplied for ; division errors. ; ; ; REFERENCES -- Furthur information on interrupt handlers may ; be found in the following Convergent documents: ; ; CTOS manual, section on Interrupt Handlers ; The Assembly Language Manual, appendix on programming ; conventions ; ; ; Interrupt handlers: ; %IF (%wsType LT aws210) THEN ( %RawInterrupt(1, TraceRawInt) ; Convergent debugger %RawInterrupt(3, BreakRawInt) ; Convergent debugger %RawInterrupt(5, CEntry) ; CTOS kernal primatives %RawInterrupt(6, RqInterface) ; system service requests %RawInterrupt(7, OsSubEntry) ; system common routines %RawInterrupt(9, RawCommNub) ; comm interrupts %RawInterrupt(12, L4IntDisp) ; level four interrupts %RawInterrupt(15, MassIntDisp) ; mass storage device EVEN %MediatedInterrupt(2,0,NMaskInterrupt) ; non maskable interrupts %MediatedInterrupt(11,0FFh,TimerInterrupt) )FI ; programmable timer %IF (%wsType EQ iwsIopMaster) THEN ( %MediatedInterrupt(%iopIntLevel+8,0FFh,IopIsr) ; IOP communication )FI %IF (%wsType EQ aws210) THEN ( %RawInterrupt(1, TraceRawInt) ; Convergent debugger %RawInterrupt(2, NMaskInterrupt) ; Non-maskable interrupt(parity) %RawInterrupt(3, BreakRawInt) ; Convergent debugger %RawInterrupt(5, CEntry) ; CTOS kernal primatives %RawInterrupt(6, RqInterface) ; system service requests %RawInterrupt(7, OsSubEntry) ; system common routines %RawInterrupt(12,IsrNull) ; Transmit ready (channel A)interrupt %RawInterrupt(13,IsrExStat) ; External status change (Channel A) %RawInterrupt(14,IsrNull) ; First character received (Channel A)-ignore %RawInterrupt(15,IsrRxspec) ; End of frame(Channel A) %RawInterrupt(23, pIret) ; Funny interrupt for Comm Dma(when 8259 exists) %MediatedInterrupt(8,0FFh,KbdTxInt) ; Transmit ready interrupt(channel B) %IF(%fAwsPIT)THEN( %MediatedInterrupt(9,0FFh,TimerInterrupt) ; Timer interrupt(channel B) )ELSE( %MediatedInterrupt(9,0FFh,RTCInterrupt) ; Timer interrupt(channel B) )FI %MediatedInterrupt(10,0FFh,KbdRxInt) ; Receive ready interrupt(channel B) %MediatedInterrupt(11,0FFh,KbdErrInt) ; Special receive condition interrupt(channel B) )FI %IF (%wsType EQ aws220_240) THEN ( %RawInterrupt(1, TraceRawInt) ; Convergent debugger %RawInterrupt(2, NMaskInterrupt) ; Non-maskable interrupt(parity) %RawInterrupt(3, BreakRawInt) ; Convergent debugger %RawInterrupt(5, CEntry) ; CTOS kernal primatives %RawInterrupt(6, RqInterface) ; system service requests %RawInterrupt(7, OsSubEntry) ; system common routines %IF (%localFS EQ 1) THEN ( %RawInterrupt(12,IsrNull) ; Transmit ready (channel A)interrupt %RawInterrupt(13,IsrExStat) ; External status change (Channel A) %RawInterrupt(14,IsrNull) ; First character received (Channel A)-ignore %RawInterrupt(15,IsrRxspec) ; End of frame(Channel A) )FI %RawInterrupt(19,RawCommNub) ; comm interrupts %RawInterrupt(23, pIret)  ; Funny interrupt for Comm Dma %MediatedInterrupt(8,0FFh,KbdTxInt) ; Transmit ready interrupt(channel B) %IF(%fAwsPIT)THEN( %MediatedInterrupt(9,0FFh,TimerInterrupt) ; Timer interrupt(channel B) )ELSE( %MediatedInterrupt(9,0FFh,RTCInterrupt) ; Timer interrupt(channel B) )FI %MediatedInterrupt(10,0FFh,KbdRxInt) ; Receive ready interrupt(channel B) %MediatedInterrupt(11,0FFh,KbdErrInt) ; Special receive condition interrupt(channel B) %MediatedInterrupt(20,0FFh,L4IntDisp) ; Line printer interrupt %IF (%fHDisks EQ 0) THEN ( %MediatedInterrupt(22,0FFh,FloppyInterrupt) ; Floppy interrupt handler )FI %IF (%fHDisks NE 0) THEN ( %MediatedInterrupt(22,0FFh,HardDiskInterrupt) ; Hard disk interrupt handler )FI )FI EVEN %IF (%wsType EQ awsMaster) THEN ( %RawInterrupt  rrupt(69,0FFh,TimerInterrupt) ; programmable timer %MediatedInterrupt(70,0FFh,IntHKbd) ; keyboard )FI %IF (%wsType EQ ngenMaster) THEN ( %RawInterrupt(1, TraceRawInt) ; Convergent debugger %RawInterrupt(3, BreakRawInt) ; Convergent debugger %RawInterrupt(19, RTCInterrupt) %RawInterrupt(40, PmTraceRawInt) ;Protected mode trace (debugger) %RawInterrupt(41, PmBreakRawInt) ;Protected mode breakpoint (debugger) %RawInterrupt(65, RawCommNub) ; RS232 comm interrupts %RawInterrupt(68, SigIsr) ; Cluster comm interrupts %RawInterrupt(72, CEntry) ; CTOS kernal primatives %RawInterrupt(73, RqInterface) ; system service requests %RawInterrupt(74, OsSubEntry) ; system common routines %MediatedInterrupt(2,0,NMaskInterrupt) ; non maskable interrupts %MediatedInterrupt(10,0FFh,LpInterrupt) ; Line printer interrupt %MediatedInterrupt(15,0FFh,FloppyInterrupt) ; Floppy interrupt handler %IF(%fHDisks NE 0) THEN ( %MediatedInterrupt(67,0FFh,HardDiskInterrupt) ; hard disk ) FI %MediatedInterrupt(69,0FFh,TimerInterrupt) ; (1, TraceRawInt) ; Convergent debugger %RawInterrupt(2, NMaskInterrupt) ; Non-maskable interrupt(parity) %RawInterrupt(3, BreakRawInt) ; Convergent debugger %RawInterrupt(5, CEntry) ; CTOS kernal primatives %RawInterrupt(6, RqInterface) ; system service requests %RawInterrupt(7, OsSubEntry) ; system common routines %RawInterrupt(12,IsrNull) ; Transmit ready (channel A)interrupt %RawInterrupt(13,IsrExStat) ; External status change (Channel A) %RawInterrupt(14,IsrNull) ; First character received (Channel A)-ignore %RawInterrupt(15,IsrRxspec) ; End of frame(Channel A) %RawInterrupt(19,RawCommNub) ; comm interrupts %RawInterrupt(23, pIret) ; Funny interrupt for Comm Dma %MediatedInterrupt(8,0FFh,KbdTxInt) ; Transmit ready interrupt(channel B) %IF(%fAwsPIT)THEN( %MediatedInterrupt(9,0FFh,TimerInterrupt) ; Timer interrupt(channel B) )ELSE( %MediatedInterrupt(9,0FFh,RTCInterrupt) ; Timer interrupt(channel B) )FI %MediatedInterrupt(10,0FFh,KbdRxInt) ; Receive ready interrupt(channel B) %MediatedInterrupt(11,0FFh,KbdErrInt) ; Special receive condition interrupt(channel B) %MediatedInterrupt(20,0FFh,L4IntDisp) ; Line printer interrupt %MediatedInterrupt(21,0FFh,HaltCommIO) ; Floppy board 8253 timer for master comm %MediatedInterrupt(22,0FFh,HardDiskInterrupt) ; Floppy interrupt handler )FI %IF (%wsType EQ ngenCluster) THEN ( %RawInterrupt(1, TraceRawInt) ; Convergent debugger %RawInterrupt(3, BreakRawInt) ; Convergent debugger %RawInterrupt(19, RTCInterrupt) %RawInterrupt(40, PmTraceRawInt) ;Protected mode trace (debugger) %RawInterrupt(41, PmBreakRawInt) ;Protected mode breakpoint (debugger) %RawInterrupt(65, RawCommNub) ; RS232 comm interrupts %RawInterrupt(68, SigIsr) ; Cluster comm interrupts %RawInterrupt(72, CEntry) ; CTOS kernal primatives %RawInterrupt(73, RqInterface) ; system service requests %RawInterrupt(74, OsSubEntry) ; system common routines %MediatedInterrupt(2,0,NMaskInterrupt) ; non maskable interrupts %MediatedInterrupt(10,0FFh,LpInterrupt) ; Line printer interrupt %MediatedInterrupt(69,0FFh,TimerInterrupt) ; programmable timer %MediatedInterrupt(70,0FFh,IntHKbd) ; keyboard )FI %IF (%wsType EQ ngen) THEN ( %RawInterrupt(1, TraceRawInt) ; Convergent debugger %RawInterrupt(3, BreakRawInt) ; Convergent debugger %RawInterrupt(19, RTCInterrupt) %RawInterrupt(40, PmTraceRawInt) ;Protected mode trace (debugger) %RawInterrupt(41, PmBreakRawInt) ;Protected mode breakpoint (debugger) %RawInterrupt(65, RawCommNub) ; RS232 comm interrupts %IF (%localFS EQ 1) THEN ( %RawInterrupt(68, SigIsr) ; Cluster comm interrupts ) FI %RawInterrupt(72, CEntry) ; CTOS kernal primatives %RawInterrupt(73, RqInterface) ; system service requests %RawInterrupt(74, OsSubEntry) ; system common routines %MediatedInterrupt(2,0,NMaskInterrupt) ; non maskable interrupts %MediatedInterrupt(10,0FFh,LpInterrupt) ; Line printer interrupt %MediatedInterrupt(15,0FFh,FloppyInterrupt) ; Floppy interrupt handler %IF(%fHDisks NE 0) THEN ( %MediatedInterrupt(67,0FFh,HardDiskInterrupt) ; hard disk )FI %MediatedInte programmable timer %MediatedInterrupt(70,0FFh,IntHKbd) ; keyboard )FI %IF(%fMFHardware) THEN ( %RawInterrupt(1, TraceRawInt) ; Convergent debugger %RawInterrupt(3, BreakRawInt) ; Convergent debugger %If ((%fTP) OR (%fCP)) Then ( %RawInterrupt(10, LpIntDisp) ; Line printer interrupt %RawInterrupt(18, TpPollerInt) ; Cp/Tp's character polling clock ) ELSE ( %RawInterrupt(18, RTCtick) ; Real time clock ) FI %IF (%fCP) THEN ( %RawInterrupt(12,CpSrpIsr) %RawInterrupt(14,RawCommNub) ) FI %IF (%fTP) THEN ( %RawInterrupt(14,RawCommNub) %RawInterrupt(15,RawCommNub) )FI %RawInterrupt(13,Chime) %RawInterrupt(32, CEntry) ; CTOS kernel primatives %RawInterrupt(33, RqInterface) ; system service requests %RawInterrupt(34, OsSubEntry) ; system common routines EVEN %MediatedInterrupt(2,0,NMaskInterrupt) ; Non-maskable interrupt %MediatedInterrupt(19,0ffh,TimerInterrupt) ; Pit %If ((%fFP) OR (%fDP)) Then ( %MediatedInterrupt(12, 0FFh, HardDiskInterrupt) ; mass storage device ) FI )FI%' Megaframe EVEN ;############################################################### ; ; Space occupied by the tables below this location will be ; recalimed by the CTOS after its initialization ; ; ANY RE-ORDERING OF THIS FILE MUST NOT CROSS THIS BOUNDRY !!! ; ; CTOS has been carefully constructed so that the various parts ; of CTOS reside either before this boundry (resident code and ; data) or after (initialization code and data). There are ; five segments which are used in controlling this: ; ; "code" ... anything in this segment will be resident ; "const" .. anything in this segment will be resident ; "data" ... anything in this segment will be resident if ; the module is linked before sysgen.obj, or ; non resident if linked after ; "stack" .. anything in this segment will be nonresident ; "coed" ... anything in this segment will be non ; resident (ie discarded after intialization) ; ; The CTOS processes are allocated stacks out of memory ; reserved by the following macro call, and the stack segment ; is used only for a stack during CTOS initialization. ; ; The following macro is invoked with one argument, the number ; of bytes to be reserved for CTOS to use to build its ; structures, tables, and to allocate the stacks for the ; different processes (declared later in this file). The macro ; variable sOsData may be defined in the prefix file if ; desired. The OS will crash with as error 101 if this value ; is too small. ;################################################################ %IF (%*IsDef(%sOsData)) THEN ( %ResidentDataBoundry(%sOsData) ) ELSE ( %IF (%wsType EQ iwsStandAlone) THEN (%ResidentDataBoundry(25600))FI %IF (%wsType EQ iwsCluster) THEN (%ResidentDataBoundry(25600))FI %IF (%wsType EQ iwsMiniMaster) THEN (%ResidentDataBoundry(25600))FI %IF (%wsType EQ iwsIopMaster) THEN (%ResidentDataBoundry(30720))FI %IF (%wsType EQ aws210) THEN (%ResidentDataBoundry(15240))FI %IF (%wsType EQ aws220_240) THEN (%ResidentDataBoundry(20480))FI %IF (%wsType EQ awsMaster) THEN (%ResidentDataBoundry(26600))FI %IF (%wsType EQ ngenCluster) THEN (%ResidentDataBoundry(15240))FI %IF (%wsType EQ ngen) THEN (%ResidentDataBoundry(20480))FI %IF (%wsType EQ NGenMaster) THEN (%ResidentDataBoundry(26600))FI %IF (%fMFHardware) THEN (%ResidentDataBoundry(25600))FI )FI EVEN ;############################################################### ; ; Table which describes reserved exchanges ; for CTOS resident processes. List each exchange only once. ; ;############################################################### %AssignSysExch(10) ;lclFileSys %AssignSysExch(12) ;agent %AssignSysExch(5) ;termination %AssignSysExch(1) ;kbd %AssignSysExch(24) ;kbd internal %AssignSysExch(3) ;sysin or LogProc_MF %AssignSysExch(15) ;init process %IF (%fNoFileSystem EQ 0) THEN (%' %AssignSysExch(8) ;massIo )FI %IF(%clusterConfig EQ 1)THEN(%' %AssignSysExch(17) ;filter process )FI %IF(%clusterConfig EQ 2)THEN(%' %AssignSysExch(17) ;master agent receiver, also MF %AssignSysExch(13) ;master agent )FI %IF (%fMulPar) THEN (%' %AssignSy  hgMstrAgent, 0) %MapExchange(-10,exchgLog, 3) %MapExchange(-11,exchgFilterPros, FilterProcessExch) %SymExchange(exchgTpReq, 0) ) FI %IF (%fTP) Then ( %MapExchange(-1,exchgAgent, 0) %MapExchange(-2,exchgNotInstalled, 0) %MapExchange(-3,exchgMassIO, 0) ; Mass storage %MapExchange(-4,exchgFilSys1, 0) ; File system manager/Utility %MapExchange(-5,exchgFilSys2, exchgMassIo) %MapExchange(-6,exchgFilSys3, 0) ; File system manager/ Utility %MapExchange(-7,exchgFilSys4, exchgLclFs) ; File system manager/ Utility %MapExchange(-8,exchgChgUsrN, 0) ; Mp Change User Num Rq for FS %MapExchange(-9,exchgMstrAgent, 0) %MapExchange(-10,exchgLog, 3) %MapExchange(-11,exchgFilterPros, FilterProcessExch) %SymExchange(exchgTpReq, 20) ) FI %IF (%fSP) Then ( %MapExchange(-1,exchgAgent, 0) %MapExchange(-2,exchgNotInstalled, 0) %MapExchange(-3,exchgMassIO, 0) ; Mass storage %MapExchange(-4,exchgFilSys1, 0) ; File system manager/Utility %MapExchange(-5sExch(26) ;swapper internal %AssignSysExch(2) ;video semaphore internal and Kbd_MF )FI %IF (%fMFHardware) THEN (%' %AssignSysExch(18) ;Icc %AssignSysExch(19) ;Icc %AllocSysExch(FilterProcessExch) ;File spec routing process %AllocSysExch(exchFilterPocket) ;File spec routing process pocket )FI %IF (%fCP OR %fTp) THEN (%' %AssignSysExch(16) ;ExchVidKbd %AssignSysExch(20) ;ExchTpReq %AssignSysExch(21) ;ExchTpResp )FI %IF (%fVarPar) THEN (%' %' The following must be done last, so it chooses an exch nobody else wants. %AllocSysExch(exchSchedPocket) ;any free exch )FI EVEN ;############################################################### ; ; EXCHANGE MAPPING TABLE: ; ; Virtual exchanges are negative numbers, -1,-2.. ; At boot time, exchange tables are scanned, ; all virtual exchanges replaced by: ; rgExchReal(NOT vexch) ; ; The macros SymExchange and MapExchange define the table: ; ; SymExchange(name, value) ; defines a local symbolic name for an exchange, ; for readability. Doesn't make a table entry. ; ; MapExchange(-n, name, value) ; defines a local name and makes a table entry. ; The numbers -n must be in order, -1 -2 -3 ... ; with no duplicates and no omissions. ; ; ; This section uses the macro symbols "clusterConfig" and "localFS" ; to determine the Request configuration of the CTOS being built. ; Requests are directed to different exchanges depending on the ; cluster and file system configuration of the OS. There are ; four different versions as follows: ; ; cluster localFS Configuration ; config ; ; 0 1 Standalone OS. (e.g., nStnd) ; ; 1 0 Cluster OS. (e.g., nClstr) ; ; 1 1 Cluster OS with Local File System. (e.g., nClstrLfs) ; ; 2 1 Master OS. (e.g., nMstr) ; ; Stnd Cls/Lfs Master ; exchAgent 0 12 12 ; exchNotInstalled 0 12 0 ; exchMassIO 8 12/8 8 ; exchFilSys1 10 12/10 10 ; exchFilSys2 8 12/8 8 ; exchFilSys3 10 12/17 10 ; exchFilSys4 10 12 10 ; exchChgUsrN 10 12 10 ; exchMstrAgent 0 0 12 ; exchLog 10 12 10 (or 3 if SRP) ; exchFilterPros 0 0/17 0 ; exchMem 10 10 10 (or exchSched if fVarPar) ; exchVp 0 0 0 (or exchSched if fVarPar) ; exchKbd 0 0 0 (or exchKbdRes if fKbdRes) ; exchTp 0 0 0 (or exchgTp if Tp or Cp) ; ;############################################################### ; ; Exchange definitions -- ; Exchanges 0 to 27 are reserved for CTOS processes. ; %SymExchange(exchgKbdRes, 1) ; Resident Keyboard process %SymExchange(exchgLclFs, 10) ; File system manager/ Utility %IF (%fMFHardware) THEN ( %IF ((%fFP) Or (%fDP)) Then ( %MapExchange(-1,exchgAgent, 0) %MapExchange(-2,exchgNotInstalled, 0) %MapExchange(-3,exchgMassIO, 8) ; Mass storage %MapExchange(-4,exchgFilSys1, exchgLclFs) ; File system manager/Utility %MapExchange(-5,exchgFilSys2, exchgMassIO) %MapExchange(-6,exchgFilSys3, exchgLclFs) ; File system manager/ Utility %MapExchange(-7,exchgFilSys4, exchgLclFs) ; File system manager/ Utility %MapExchange(-8,exchgChgUsrN, exchgLclFs) ; Mp Change User Num Rq for FS %MapExchange(-9,exc ,exchgFilSys2, exchgMassIo) %MapExchange(-6,exchgFilSys3, 0) ; File system manager/ Utility %MapExchange(-7,exchgFilSys4, exchgLclFs) ; File system manager/ Utility %MapExchange(-8,exchgChgUsrN, 0) ; Mp Change User Num Rq for FS %MapExchange(-9,exchgMstrAgent, 0) %MapExchange(-10,exchgLog, 3) %MapExchange(-11,exchgFilterPros, FilterProcessExch) %SymExchange(exchgTpReq, 0) ) FI %IF (%fCP) Then ( %MapExchange(-1,exchgAgent, 0) %MapExchange(-2,exchgNotInstalled, 0) %MapExchange(-3,exchgMassIO, 0) ; Mass storage %MapExchange(-4,exchgFilSys1, 0) ; File system manager/Utility %MapExchange(-5,exchgFilSys2, exchgMassIo) %MapExchange(-6,exchgFilSys3, 0) ; File system manager/ Utility %MapExchange(-7,exchgFilSys4, exchgLclFs) ; File system manager/ Utility %MapExchange(-8,exchgChgUsrN, 0) ; Mp Change User Num Rq for FS %MapExchange(-9,exchgMstrAgent, 12) %MapExchange(-10,exchgLog, 3) %MapExchange(-11,exchgFilterPros, FilterProcessExch) %SymExchange(exchgTpReq, 20) ) FI %MapExchange(-12,exchgMem, exchgLclFs) %MapExchange(-13,exchgVp, 0) %MapExchange(-14,exchgKbd, exchgKbdRes) %MapExchange(-15,exchgTp, exchgTpReq) ) ELSE (%' Workstation %IF (%fVarPar) THEN (%' %AllocSysExch(exchSched) ; Variable Partition process )FI ; ; Standalone workstation: ; %IF (%clusterConfig EQ 0) THEN( %MapExchange(-1,exchgAgent, 0) ; no agent %MapExchange(-2,exchgNotInstalled, 0) %MapExchange(-3,exchgMassIO, 8) ; Mass storage I/O manager %MapExchange(-4,exchgFilSys1, exchgLclFs) ; File system manager/ Utility %MapExchange(-5,exchgFilSys2, exchgMassIO) %MapExchange(-6,exchgFilSys3, exchgLclFs) ; File system manager/ Utility %MapExchange(-7,exchgFilSys4, exchgLclFs) ; File system manager/ Utility %MapExchange(-8,exchgChgUsrN, exchgLclFs) ; Multi-Part Change User Num Rq for FS %MapExchange(-9,exchgMstrAgent, 0) %MapExchange(-10,exchgLog, exchgLclFs) %MapExchange(-11,exchgFilterPros, 0) )FI ; ; cluster workstation: ; %IF (%clusterConfig EQ 1) THEN( %MapExchange(-1,exchgAgent, 12) ; Cluster work station agent %MapExchange(-2,exchgNotInstalled, exchgAgent) %IF (%localFS EQ 0) THEN ( %MapExchange(-3,exchgMassIO, exchgAgent) ; Mass storage I/O manager %MapExchange(-4,exchgFilSys1, exchgAgent) ; Local File System File Spec Filter Process %MapExchange(-5,exchgFilSys2, exchgAgent) %MapExchange(-6,exchgFilSys3, exchgAgent) ; File system manager/ Utility %MapExchange(-7,exchgFilSys4, exchgAgent) ; File system manager/ Utility ) FI %IF (%localFS NE 0) THEN ( %MapExchange(-3,exchgMassIO, 8) ; Mass storage I/O manager %MapExchange(-4,exchgFilSys1, exchgLclFs) %MapExchange(-5,exchgFilSys2, exchgMassIO) %MapExchange(-6,exchgFilSys3, 17) ; File system filter sends to agent and local fs %MapExchange(-7,exchgFilSys4, exchgAgent) ; File system manager/ Utility ) FI %MapExchange(-8,exchgChgUsrN, exchgAgent) ; Multi-Part Change User Num Rq for FS %MapExchange(-9,exchgMstrAgent, 0) %MapExchange(-10,exchgLog, exchgAgent) %IF (%localFS EQ 0) THEN ( %MapExchange(-11,exchgFilterPros, 0) ) ELSE ( %MapExchange(-11,exchgFilterPros, 17) ) FI )FI ; ; Master workstation: (mini and full clusters) ; %IF (%clusterConfig EQ 2) THEN( %MapExchange(-1,exchgAgent, 12) ; Master work station agent %MapExchange(-2,exchgNotInstalled, 0) %MapExchange(-3,exchgMassIO, 8) ; Mass storage %MapExchange(-4,exchgFilSys1, exchgLclFs) ; File system manager/Utility %MapExchange(-5,exchgFilSys2, exchgMassIO) %MapExchange(-6,exchgFilSys3, exchgLclFs) ; File system manager/ Utility %MapExchange(-7,exchgFilSys4, exchgLclFs) ; File system manager/ Utility %MapExchange(-8,exchgChgUsrN, exchgLclFs) ; Multi-Part Change User Num Rq for FS %MapExchange(-9,exchgMstrAgent, exchgAgent) %MapExchange(-10,exchgLog, exchgLclFs) %MapExchange(-11,exchgFilterPros, 0) )FI %IF (%fVarPar) THEN( %MapExchange(-12,exchgMem, exchSched) %MapExchange(-13,ex   (The Convergent Executive starts all user ; programs with priority 128). ;############################################################### ; ; Standalone: ; %IF (%fMFHardware) THEN ( %OsProcDesc(IccSvr, 512, 2, 19) ; File Processor %If (%fFP) Then (  %OsProcDesc(KbdProcess, 256, 3, %TRUE) %OsProcDesc(MassIo, 512, 3, %FALSE) %OsProcDesc(LclFsFilterProcess, 128, 3, %TRUE) %OsProcDesc(FileSystem, 512, 4, %TRUE) %OsProcDesc(LogProcess, 256, 5, %TRUE) %OsProcDesc(TerminationProcess, 356, 6, %TRUE) ) FI ; Terminal Processor %If (%fTP) Then ( %OsProcDesc(KbdProcess, 512, 3, %TRUE) %OsProcDesc(LclFsFilterProcess, 128, 3, %TRUE) %OsProcDesc(FileSystem, 512, 4, %TRUE) %OsProcDesc(TpProcess, 512, 5, %TRUE) %OsProcDesc(LogProcess, 256, 6, %TRUE) %OsProcDesc(TerminationProcess, 356, 7, %TRUE) ) FI ; Communications Processor %If (%fCP) Then ( %OsProcDesc(KbdProcess, 512, 6, %TRUE) %OsProcDesc(LclFsFilterProceschgVp, exchSched) ) ELSE ( %MapExchange(-12,exchgMem, exchgLclFs) %MapExchange(-13,exchgVp, 0) )FI %IF (%fKbdRes) THEN( %MapExchange(-14,exchgKbd, exchgKbdRes) ) ELSE ( %MapExchange(-14,exchgKbd, 0) )FI )FI%' Workstation EVEN ;############################################################### ; ; Define names of files containing loadable requests. ; Files are loaded at boot after the file system is up. ; Files with names of the form: ; [sys]Request.?.sys ; where ? is a character 0-9, A-Z, are always tried first. ; ;################################################################ %IF (%fMFHardware) THEN ( %IF (%fTP) Then ( %RequestFileName([SYS]REQUEST.TP.SYS); )FI %IF (%fCP) Then ( %RequestFileName([SYS]REQUEST.CP.SYS); )FI %IF ((%fFP) OR (%fDP)) Then ( %RequestFileName([SYS]REQUEST.FP.SYS); )FI %IF (%fSP) Then ( %RequestFileName([SYS]REQUEST.SP.SYS); )FI ) ELSE (%' Workstation %RequestFileName([sys]Request.ISAM.sys) )FI EVEN ;############################################################### ; ; Table which describes the CTOS resident process. Each ; process is described by 4 attributes: ; ; 1. Process entry point ; 2. Size of its stack ; 3. priority (0 is highest, 254 lowest) ; 4. default exchange (0 if not required, <> 0 allocs next available) ; ; Stack size -- ; The stack size for a CTOS process must be large enough ; for the largest local variable and procedure call sequence, ; plus enough space for all possible interrupts that can occur. ; CTOS requires 64 bytes of user stack to save the context of a ; process when an interrupt occurs. ; ; Priorities --  ; In order for CTOS to function correctly, the following ; priority considerations must be obeyed: ; ; Megaframe: ; IccResp ............... highest priority ; IccSvr ................ second highest priority ; KbdProcess ............ lower than Agents (must be process 0) ; TpProcess ............. lower than KbdProcess ; MassIo ................ higher than FileSystem ; SrpAgent .............. lower than MassIo, higher than FileSystem ; FilterPros ............ higher than FileSystem, lower than Icc ; FileSystem ............ lower than MassIo ; LogProcess............. lower than I/O processes, (file system user) ; TerminationProcess .... lowest of CTOS processes ; ; Workstations: ; InitKbdProcess ............ lower than Agents (must be ;  process 0) ; MassIo ................ higher than FileSystem ; MstrAgent .............. lower than MassIo, higher than FileSystem ; WsAgent ............... higher than FileSystem ; FileSystem ............ lower than MassIo ; SysInPro .............. lower than I/O processes, (file system user) ; TerminationProcess .... lowest of CTOS processes ; Sched ................. higher than TerminationProcess, lower than ; FileSystem ; ; All user (non CTOS) processes must be worse in priority than ; CTOS processes s, 128, 6, %TRUE) %OsProcDesc(FileSystem, 512, 7, %TRUE) %OsProcDesc(MstrAgentReceiver, 256, 3, %TRUE) %OsProcDesc(MstrAgent, 256, 5, %TRUE) %OsProcDesc(TpProcess, 512, 4, %TRUE) %OsProcDesc(LogProcess, 256, 8, %TRUE) %OsProcDesc(TerminationProcess, 356, 9, %TRUE) ) FI ; Storage Processor (SMD & tape) %If (%fDP) Then ( %OsProcDesc(KbdProcess, 512, 3, %TRUE) %OsProcDesc(MassIo, 256, 4, %FALSE) %OsProcDesc(LclFsFilterProcess, 128, 4, %TRUE) %OsProcDesc(FileSystem, 512, 5, %TRUE) %OsProcDesc(LogProcess, 256, 6, %TRUE) %OsProcDesc(TerminationProcess, 356, 7, %TRUE) ) FI ; Storage Processor (tape only) %If (%fSP) Then ( %OsProcDesc(KbdProcess, 512, 3, %TRUE)  %OsProcDesc(LclFsFilterProcess, 128, 3, %TRUE) %OsProcDesc(FileSystem, 512, 4, %TRUE) %OsProcDesc(LogProcess, 256, 5, %TRUE) %OsProcDesc(TerminationProcess, 356, 6, %TRUE) ) FI ) ELSE (%' Workstations %IF(%wsType EQ iwsStandAlone) THEN ( %IF (%fMulpar) THEN ( %OsProcDesc(InitKbdProcess, 512, 1, 1) )ELSE( %OsProcDesc(KbdProcess, 512, 1, 1) )FI %OsProcDesc(MassIo, 256, 2, 0) %OsProcDesc(FileSystem, 500, 3, 1) %OsProcDesc(SysInPro, 256, 4, 1) %OsProcDesc(TerminationProcess, 256, 6, 1) %IF (%fVarPar) THEN ( %OsProcDesc(Sched, 400, 5, 1) )FI )FI ; ; Cluster workstation: ; %IF(%wsType EQ iwsCluster) THEN ( %IF (%localFS EQ 0) THEN ( %IF (%fMulpar) THEN (  %OsProcDesc(InitKbdProcess, 512, 2, 1) )ELSE( %OsProcDesc(KbdProcess, 512, 2, 1) )FI %OsProcDesc(WsAgent, 150, 1, 1) %OsProcDesc(FileSystem, 500, 3, 1) %OsProcDesc(SysInPro, 256, 4, 1)  %OsProcDesc(TerminationProcess, 256, 6, 1) %IF (%fVarPar) THEN ( %OsProcDesc(Sched, 400, 5, 1) )FI )FI %IF (%localFS NE 0) THEN ( %IF (%fMulpar) THEN ( %OsProcDesc(InitKbdProcess, 512, 2, 1) )ELSE( %OsProcDesc(KbdProcess,  512, 2, 1) )FI %OsProcDesc(WsAgent, 150, 1, 1) %OsProcDesc(MassIo, 256, 3, 0) %OsProcDesc(LclFsFilterProcess, 256, 4, 1) %OsProcDesc(FileSystem, 500, 5, 1) %OsProcDesc(SysInPro, 256, 6, 1) %OsProcDesc(TerminationProcess, 256, 8, 1) %IF (%fVarPar) THEN ( %OsProcDesc(Sched, 400, 7, 1) )FI )FI )FI ; ; Master workstation (mini-cluster): ; %IF(%wsType EQ iwsMiniMaster) THEN ( %IF (%fMulpar) THEN ( %OsProcDesc(InitKbdProcess, 512, 3, 1) )ELSE( %OsProcDesc(KbdProcess, 512, 3, 1) )FI %OsProcDesc(MstrAgent, 256, 1, 1) %OsProcDesc(MstrAgentReceiver, 256, 2, 1) %OsProcDesc(MassIo, 256, 4, 0) %OsProcDesc(FileSystem,  500, 5, 1) %OsProcDesc(SysInPro, 256, 6, 1) %OsProcDesc(TerminationProcess, 256, 8, 1) %IF (%fVarPar) THEN ( %OsProcDesc(Sched, 400, 7, 1) )FI )FI ; ; Master workstation (full cluster): ; %IF(%wsType EQ iwsIopMaster) THEN ( %IF (%fMulpar) THEN ( %OsProcDesc(InitKbdProcess, 512, 2, 1) )ELSE( %OsProcDesc(KbdProcess, 512, 2, 1) )FI %OsProcDesc(SrpAgent, 256, 1, 1) %OsProcDesc(MassIo, 256, 3, 0) %OsProcDesc(FileSystem, 500, 4, 1) %OsProcDesc(SysInPro, 256, 5, 1) %OsProcDesc(TerminationProcess, 256, 7, 1) %IF (%fVarPar) THEN ( %OsProcDesc(Sched, 400, 6, 1) )FI )FI ; ; Application workstation ; %IF(%wsType EQ aws210) THEN ( %IF (%fMulpar) THEN ( %OsProcDesc(InitKbdProcess, 512, 2, 1) )ELSE( %OsProcDesc(KbdProcess, 512, 2, 1) )FI %OsProcDesc(WsAgent, 150, 1, 1) %OsProcDesc(FileSystem, 500, 3, 1) %OsProcDesc(SysInPro, 256, 4, 1) %OsProcDesc(TerminationProcess, 256, 6, 1) %IF (%fVarPar) THEN ( %OsProcDesc(Sched, 400, 5, 1) )FI )FI ; ; AWS 220/230/240 ; %IF(%wsType EQ aws220_240) THEN ( %IF(%localFS EQ 0) THEN ( %IF (%fMulpar) THEN ( %OsProcDesc(InitK  0, 1, 1) %OsProcDesc(MstrAgent, 500, 2, 1) %OsProcDesc(MassIo, 256, 4, 0) %OsProcDesc(FileSystem, 500, 5, 1) %OsProcDesc(SysInPro, 256, 6, 1) %OsProcDesc(TerminationProcess, 256, 8, 1) %IF (%fVarPar) THEN ( %OsProcDesc(Sched, 400, 7, 1) )FI )ELSE( %OsProcDesc(KbdProcess, 512, 3, 1) %OsProcDesc(MstrAgent, 500, 1, 1) %OsProcDesc(MstrAgentReceiver, 500, 2, 1) %OsProcDesc(MassIo, 256, 4, 0) %OsProcDesc(FileSystem, 500, 5, 1) %OsProcDesc(SysInPro, 256, 6, 1) %OsProcDesc(TerminationProcess, 256, 7, 1) )FI )FI )FI%' Workstation EVEN ;############################################################### ; The following macros are used to reserve communication ; channels for use by the resident communication interrupt ; handlers. There are two communication channels in the ; system - Channel A and Channel B. In cluster configuration ; Channel A is reserved by the CTbdProcess, 512, 1, 1) )ELSE( %OsProcDesc(KbdProcess, 512, 1, 1) )FI %OsProcDesc(MassIo, 256, 2, 0) %OsProcDesc(FileSystem, 500, 3, 1) %OsProcDesc(SysInPro, 256, 4, 1) %OsProcDesc(TerminationProcess, 256, 6, 1) %IF (%fVarPar) THEN ( %OsProcDesc(Sched, 400, 5, 1) )FI )FI %IF(%localFS NE 0) THEN ( %IF (%fMulpar) THEN ( %OsProcDesc(InitKbdProcess, 512, 2, 1) )ELSE( %OsProcDesc(KbdProcess, 512, 2, 1) )FI  %OsProcDesc(WsAgent, 150, 1, 1) %OsProcDesc(MassIo, 256, 3, 0) %OsProcDesc(LclfsFilterProcess, 256, 4, 1) %OsProcDesc(FileSystem, 500, 5, 1) %OsProcDesc(SysInPro, 256, 6, 1) %OsProcDesc(TerminationProcess, 256, 8, 1) %IF (%fVarPar) THEN ( %OsProcDesc(Sched, 400, 7, 1) )FI )FI )FI ; ; Low-cost Master workstation (AWS-4): ; %IF(%wsType EQ awsMaster) THEN ( %IF (%fMulpar) THEN ( %OsProcDesc(InitKbdProcess, 512, 3, 1) )ELSE( %OsProcDesc(KbdProcess, 512, 3, 1) )FI %OsProcDesc(MstrAgent, 256, 1, 1) %OsProcDesc(MstrAgentReceiver, 256, 2, 1) %OsProcDesc(MassIo, 256, 4, 0) %OsProcDesc(FileSystem, 500, 5, 1) %OsProcDesc(SysInPro, 256, 6, 1) %OsProcDesc(TerminationProcess, 256, 8, 1) %IF (%fVarPar) THEN ( %OsProcDesc(Sched, 400, 7, 1) )FI )FI ; ; nGen workstation ; %IF(%wsType EQ ngenCluster) THEN ( %IF (%fMulpar) THEN ( %OsProcDesc(InitKbdProcess, 512, 2, 1) )ELSE( %OsProcDesc(KbdProcess, 512, 2, 1) )FI %OsProcDesc(WsAgent, 150, 1, 1) %OsProcDesc(FileSystem, 500, 3, 1) %OsProcDesc(SysInPro, 256, 4, 1) %OsProcDesc(TerminationProcess, 256, 6, 1) %IF (%fVarPar) THEN ( %OsProcDesc(Sched, 400, 5, 1) )FI )FI ; ; NGEN standalone workstation ; %IF(%wsType EQ ngen) THEN ( %IF(%localFS EQ 0) THEN ( %IF (%fMulpar) THEN ( %OsProcDesc(InitKbdProcess, 512, 1, 1) )ELSE( %OsProcDesc(KbdProcess, 512, 1, 1) )FI %OsProcDesc(MassIo, 256, 2, 0) %OsProcDesc(FileSystem, 500, 3, 1) %OsProcDesc(SysInPro, 256, 4, 1) %OsProcDesc(TerminationProcess, 256, 6, 1) %IF (%fVarPar) THEN ( %OsProcDesc(Sched, 400, 5, 1) )FI )FI %IF(%localFS NE 0) THEN ( %IF (%fMulpar) THEN ( %OsProcDesc(InitKbdProcess, 512, 2, 1) )ELSE( %OsProcDesc(KbdProcess, 512, 2, 1) )FI %OsProcDesc(WsAgent, 150, 1, 1) %OsProcDesc(MassIo, 256, 3, 0) %OsProcDesc(LclfsFilterProcess, 256, 4, 1) %OsProcDesc(FileSystem, 500, 5, 1) %OsProcDesc(SysInPro, 256, 6, 1) %OsProcDesc(TerminationProcess, 256, 8, 1) %IF (%fVarPar) THEN ( %OsProcDesc(Sched, 400, 7, 1) )FI )FI )FI ; ; NGen Master workstation : ; %IF(%wsType EQ NGenMaster) THEN ( %IF (%fMulpar) THEN ( %OsProcDesc(InitKbdProcess, 512, 3, 1) %OsProcDesc(MstrAgentReceiver, 50 OS. ; ; Macro definition: ; ; SysCommInt(iLine, pTxIsr, pExtIsr, pRxIsr, pSpRxIsr) ; ; where iLine - 0 means Channel A, 1 means Channel B ; pTxIsr, pExtIsr, pRxIsr, pSpRxIsr are the entry ; points of the communication interrupt handlers. ; (0 means default communication interrupt ; handler) ;################################################################ %IF(%wsType EQ iwsCluster OR %wsType EQ iwsMiniMaster) THEN ( %SysCommInt(0,0,0,0,0) ; Reserve Channel A for cluster )FI EVEN ;############################################################### ; CTOS INITIALIZATION -- ; The following macros generate three tables of pointers which ; are used by CTOS during its initializaion phase. All of the ; routines pointed to in these tables reside in modules which ; are linked near the end of CTOS, and the code for these ; modules is discarded after initialization is complete. These ; routines should have their code segments named "coed", and ; should use "data" for the name of their data segments. This ; is to insure that the Linker will place the code and data at ; the end of the run file, after the "ResidentDataBoundry" ; mentioned earlier in this file. The routines should obey the ; Convergent programming conventions related to register usage ; (refer to The Assembly Language Manual). The routines are ; executed at one of three times during CTOS initialization: ; ; InitProcHardware ..... After CTOS is booted, and after ; memory and bus timeout tests are ; completed. This is the place to put ; hardware test and verification ; routines. ; InitProcIntDisable .... After CTOS structures hav been ; initialized but before any processes ; have been started. This is the place to ; put hardware intitialization routines. ; InitProcIntEnable .... After interrupts are enabled these ; routines are executed as if they were a ; user program. (CTOS processes are ; running). This is the place to put user ; process initialization routines. The ; routines are called in the order given, ; with no arguments, as subroutines using ; the Assembly Language indirect far call ; instruction. ;# ; DESCRIPTION OF CONVERGENT ROUTINES -- ; Workstation: ; SysgenInit .... Set variables according to rgSysgen structure ; InitVideo ..... make sure video hardware works ; KbdTest ....... see if kbd hardware works ; RqExInit ...... Map virtual exchanges ; FsIn1 ......... File system initialization ; Init8255 ...... LED port ; InitRtc ....... RTC initialization ; InitSysCom .... System common area initialization ; Init8237 ...... DMA Initialization ; Init8251 ...... 8251A Initialization ; KbdInit ....... Keyboard initialization ; InitCounter ... 8253 counter 0 initialization ; Init8259 ...... 8259A Initialization ; CheckDisks .... Look for hard disk ; FsIn2 ......... File system initialization routine ; DumpAndMTest .. Dump & memory test above 128K ; InitDebugNub .. Debugger initialization routine ; LoadFileInit .. Loads boot-time configuration file(s) ; WsInit ........ Cluster WS Agent Initialization ; InitMstr ...... Master WS Cluster Initialization ; IopInit ....... Master WS Cluster Initialization ; IopStart ...... Master WS Cluster Initialization ; ; Megaframe: ; CommIntInit ... Comm software initialization # ; FsIn1 ......... File system initialization (*) # ; FsIn2 ......... File system initialization routine # ; Init51 ........ 8251A Initialization # ; Init59 ........ 8259A Initialization # ; InitDebugNub .. Debugger initialization routine # ; InitRtc ....... RTC initialization # ; InitPIT ....... PIT initialization # ; InitSysCom .... System common area initialization # ; MemoryInit .... Had any amnesia in your family? # ; XBufInit ...... CP Cluster XBuf Initialization # ; # ; (*) FsIn1 must be included in all boards' initialization as # ; it is responsible for Ucb initialization # ;##########################################   %InitProcIntEnable(InitNlsTables) %IF (%fVarPar NE 0) THEN ( %InitProcIntEnable(InitVpSwapFile) )FI )FI )FI %IF (%wsType EQ iwsMiniMaster) THEN( %InitProcHardWare(MemoryInit) %InitProcHardWare(FindGraphicsBoard) %InitProcHardWare(InitVideo) %InitProcHardWare(KbdTest) %InitProcHardWare(ClockTest) %InitProcIntDisable(RqExInit) %InitProcIntDisable(FsIn1) %InitProcIntDisable(Init8255) %InitProcIntDisable(InitRtc) %InitProcIntDisable(InitSysCom) %InitProcIntDisable(Init8237) %InitProcIntDisable(Init8251) %InitProcIntDisable(KbdInit) %InitProcIntDisable(InitCounter) %InitProcIntDisable(Init8259) %InitProcIntDisable(CheckDisks) %InitProcIntEnable(InitVam) %InitProcIntEnable(FsIn2) %InitProcIntEnable(SysDeviceInit) %InitProcIntEnable(InitMstr) %InitProcIntEnable(InitDebugNub) %InitProcIntEnable(LoadFileInit) %InitProcIntEnable(InitNlsTables) %IF (%fVarPar NE 0) THEN ( %InitProcIntEnable(InitVpSwapFile) )FI )FI %IF (%wsType EQ iwsIopMaster) THEN( %InitProcHardWare(MemoryInit) %InitProcHa###################### %IF (%fMFHardware) THEN ( %InitProcHardWare(MemoryInit) %InitProcHardWare(ClockTest) %InitProcIntDisable(RqExInit) %InitProcIntDisable(IccInit) %InitProcIntDisable(FsIn1) %InitProcIntDisable(InitSysCom) %InitProcIntDisable(InitRtc) %InitProcIntDisable(InitPIT) %InitProcIntDisable(StartRTC) %InitProcIntDisable(Init51) %If (%fDebugger NE 0) Then ( %InitProcIntEnable(InitDebugNub) ) Fi %InitProcIntEnable(SysDeviceInit) %If ((%fFP) OR (%fDP)) Then ( %InitProcIntEnable(FsIn2) )FI  %InitProcIntEnable(LoadFileInit) %InitProcIntEnable(InitNlsTables) ) ELSE (%' Workstation %' For all workstation types - %InitProcHardWare(SysgenInit) %IF (%wsType EQ iwsStandAlone) THEN( %InitProcHardWare(MemoryInit) %InitProcHardWare(FindGraphicsBoard) %InitProcHardWare(InitVideo) %InitProcHardWare(KbdTest) %InitProcHardWare(ClockTest) %InitProcIntDisable(RqExInit) %InitProcIntDisable(FsIn1) %InitProcIntDisable(Init8255) %InitProcIntDisable(InitRtc) %InitProcIntDisable(InitSysCom) %InitProcIntDisable(Init8237) %InitProcIntDisable(Init8251) %InitProcIntDisable(KbdInit) %InitProcIntDisable(InitCounter) %InitProcIntDisable(Init8259) %InitProcIntEnable(InitVam) %InitProcIntEnable(FsIn2) %InitProcIntEnable(SysDeviceInit) %InitProcIntEnable(InitDebugNub) %InitProcIntEnable(LoadFileInit) %InitProcIntEnable(InitNlsTables) %IF (%fVarPar NE 0) THEN ( %InitProcIntEnable(InitVpSwapFile) )FI )FI %IF (%wsType EQ iwsCluster) THEN( %IF (%localFS EQ 0) THEN ( %InitProcHardWare(MemoryInit) %InitProcHardWare(FindGraphicsBoard) %InitProcHardWare(InitVideo) %InitProcHardWare(KbdTest) %InitProcHardWare(ClockTest) %InitProcIntDisable(RqExInit) %IF (%fMulpar NE 0) THEN (%InitProcIntDisable(FsIn1)) FI %InitProcIntDisable(Init8255) %InitProcIntDisable(InitRtc) %InitProcIntDisable(InitSysCom) %InitProcIntDisable(Init8237) %InitProcIntDisable(Init8251) %InitProcIntDisable(KbdInit) %InitProcIntDisable(InitCounter) %InitProcIntDisable(Init8259) %InitProcIntDisable(WsInit) %InitProcIntEnable(WsInit1) %InitProcIntEnable(InitVam) %InitProcIntEnable(SysDeviceInit) %InitProcIntEnable(InitDebugNub) %InitProcIntEnable(LoadFileInit) %InitProcIntEnable(InitNlsTables) %IF (%fVarPar NE 0) THEN ( %InitProcIntEnable(InitVpSwapFile) )FI )FI %IF (%localFS NE 0) THEN ( %InitProcHardWare(MemoryInit) %InitProcHardWare(FindGraphicsBoard) %InitProcHardWare(InitVideo) %InitProcHardWare(KbdTest) %InitProcHardWare(ClockTest) %InitProcIntDisable(RqExInit) %InitProcIntDisable(FsIn1) %InitProcIntDisable(Init8255) %InitProcIntDisable(InitRtc) %InitProcIntDisable(InitSysCom) %InitProcIntDisable(Init8237) %InitProcIntDisable(Init8251) %InitProcIntDisable(KbdInit) %InitProcIntDisable(InitCounter) %InitProcIntDisable(Init8259) %InitProcIntDisable(CheckForCommBoot) %InitProcIntDisable(WsInit) %InitProcIntEnable(WsInit1) %InitProcIntEnable(InitVam) %InitProcIntEnable(FsIn2) %InitProcIntEnable(SysDeviceInit) %InitProcIntEnable(InitDebugNub) %InitProcIntEnable(LoadFileInit)  rdWare(FindGraphicsBoard) %InitProcHardWare(InitVideo) %InitProcHardWare(KbdTest) %InitProcHardWare(ClockTest) %InitProcIntDisable(RqExInit) %InitProcIntDisable(FsIn1) %InitProcIntDisable(Init8255) %InitProcIntDisable(InitRtc) %InitProcIntDisable(InitSysCom) %InitProcIntDisable(Init8237) %InitProcIntDisable(Init8251) %InitProcIntDisable(KbdInit) %InitProcIntDisable(InitCounter) %InitProcIntDisable(Init8259) %InitProcIntDisable(CheckDisks) %InitProcIntEnable(InitVam) %InitProcIntEnable(FsIn2) %InitProcIntEnable(SysDeviceInit) %InitProcIntEnable(InitDebugNub) %InitProcIntEnable(LoadFileInit) %InitProcIntEnable(IopStart) %InitProcIntEnable(InitNlsTables) %IF (%fVarPar NE 0) THEN ( %InitProcIntEnable(InitVpSwapFile) )FI )FI %IF (%wsType EQ aws210) THEN ( %InitProcIntDisable(Init8259) %InitProcIntDisable(KbdTest) %InitProcIntDisable(TimerTest) %InitProcIntDisable(Init8274) %InitProcIntDisable(RqExInit) %InitProcIntDisable(FsIn1) %InitProcIntDisable(InitSyscom) %InitProcIntDisable(InitRtc) %InitProcIntDisable(WsInit) %InitProcIntEnable(WsInit1) %InitProcIntEnable(InitVam) %InitProcIntEnable(SysDeviceInit) %InitProcIntEnable(InitDebugNub) %InitProcIntEnable(LoadFileInit) %InitProcIntEnable(InitNlsTables) %IF (%fVarPar NE 0) THEN ( %InitProcIntEnable(InitVpSwapFile) )FI )FI %IF (%wsType EQ aws220_240) THEN ( %InitProcIntDisable(Init8259) %InitProcIntDisable(KbdTest) %InitProcIntDisable(TimerTest) %InitProcIntDisable(Init8274) %InitProcIntDisable(InitComm2) %InitProcIntDisable(RqExInit) %InitProcIntDisable(FsIn1) %InitProcIntDisable(InitSyscom) %InitProcIntDisable(InitRtc) %IF (%localFS NE 0) THEN ( %InitProcIntDisable(WsInit) %InitProcIntEnable(WsInit1) )FI %InitProcIntEnable(InitVam) %InitProcIntEnable(FsIn2) %InitProcIntEnable(SysDeviceInit) %InitProcIntEnable(InitDebugNub) %InitProcIntEnable(LoadFileInit) %InitProcIntEnable(InitNlsTables) %IF (%fVarPar NE 0) THEN ( %InitProcIntEnable(InitVpSwapFile) )FI )FI %IF (%wsType EQ awsMaster) THEN ( %InitProcIntDisable(Init8259) %InitProcIntDisable(KbdTest) %InitProcIntDisable(TimerTest) %InitProcIntDisable(Init8274) %InitProcIntDisable(InitComm2) %InitProcIntDisable(RqExInit) %InitProcIntDisable(FsIn1) %InitProcIntDisable(InitSyscom) %InitProcIntDisable(InitRtc) %InitProcIntEnable(FsIn2) %InitProcIntEnable(SysDeviceInit) %InitProcIntEnable(InitVam) %InitProcIntEnable(InitMstr) %InitProcIntEnable(InitDebugNub) %InitProcIntEnable(LoadFileInit) %InitProcIntEnable(InitNlsTables) %IF (%fVarPar NE 0) THEN ( %InitProcIntEnable(InitVpSwapFile) )FI )FI %IF (%wsType EQ ngenCluster) THEN( %InitProcHardWare(InitVideo) %InitProcHardWare(KbdTest) %InitProcHardWare(ClockTest) %InitProcIntDisable(InitRtc) %InitProcIntDisable(InitSysCom) %InitProcIntDisable(InitMode3DmaCount) %InitProcIntDisable(Init8251) %InitProcIntDisable(InitComm2) %InitProcIntDisable(RqExInit) %InitProcIntDisable(KbdInit) %InitProcIntDisable(Init8259) %InitProcIntDisable(FsIn1) %InitProcIntDisable(WsInit) %InitProcIntEnable(WsInit1) %InitProcIntEnable(InitVam) %InitProcIntEnable(SysDeviceInit) %InitProcIntEnable(InitConfig) %InitProcIntEnable(InitDebugNub) %InitProcIntEnable(LoadFileInit) %InitProcIntEnable(InitNlsTables) %IF (%fVarPar NE 0) THEN ( %InitProcIntEnable(InitVpSwapFile) )FI )FI %IF (%wsType EQ ngen) THEN( %InitProcHardWare(InitVideo) %InitProcHardWare(KbdTest) %InitProcHardWare(ClockTest) %InitProcIntDisable(InitMode3DmaCount) %InitProcIntDisable(Init8251) %InitProcIntDisable(InitComm2) %InitProcIntDisable(RqExInit) %InitProcIntDisable(KbdInit) %InitProcIntDisable(Init8259) %InitProcIntDisable(FsIn1) %InitProcIntDisable(InitSysCom) %InitProcIntDisable(InitRtc) %IF (%localFS NE 0) THEN ( %InitProcIntDisable(WsInit) %InitProcIntEnable(WsInit1) )FI %InitProcIntEnable(InitVam) %InitProcIntEnable(FsIn2) %InitProcIntEnable(SysDeviceInit) %InitProcIntEnable(InitConfig) %InitProcIntEnable(InitDebugNub) %InitProcIntEnable(LoadFileInit) %InitProcIntEnable(InitNlsTables) %IF (%fVa  ConfigFile","",128) ) ELSE ( %ConfigurationFile("[Sys]Config.sys","",128) )FI %IF(%*isdef(%WsConfigFile)) THEN ( %WsConfigurationFile("%WsConfigFile") ) ELSE ( %WsConfigurationFile("[Sys]Ws###>Config.sys") )FI ;################################################################ ; Software Bus File Specs ;################################################################ %IF(%*isdef(%InstallVdmFile)) THEN ( %InstallVdmSpec("%InstallVdmFile","") ) ELSE ( %InstallVdmSpec("[Sys]InstallVdm.run","") )FI %IF(%*isdef(%InstallKbdFile)) THEN ( %InstallKbdSpec("%InstallKbdFile","") ) ELSE ( %InstallKbdSpec("[Sys]InstallKbd.run","") )FI %IF(%*isdef(%InstallMathFile)) THEN ( %InstallMathSpec("%InstallMathFile","") ) ELSE ( %InstallMathSpec("[Sys]MathServer.run","") )FI ;############################################################### ; DEVICE DECLARATIONS -- A disk may be of two types, a floppy ; disk or a hard disk. A rPar NE 0) THEN ( %InitProcIntEnable(InitVpSwapFile) )FI )FI %IF (%wsType EQ NGenMaster) THEN ( %InitProcHardWare(InitVideo) %InitProcHardWare(KbdTest) %InitProcHardWare(ClockTest) %InitProcIntDisable(InitMode3DmaCount) %InitProcIntDisable(Init8251) %InitProcIntDisable(Init8259) %InitProcIntDisable(InitComm2) %InitProcIntDisable(RqExInit) %InitProcIntDisable(KbdInit) %InitProcIntDisable(FsIn1) %InitProcIntDisable(InitSyscom) %InitProcIntDisable(InitRtc) %InitProcIntEnable(InitVam) %InitProcIntEnable(FsIn2) %InitProcIntEnable(SysDeviceInit) %InitProcIntEnable(InitConfig) %InitProcIntEnable(InitMstr) %InitProcIntEnable(InitDebugNub) %InitProcIntEnable(LoadFileInit) %InitProcIntEnable(InitNlsTables) %IF (%fVarPar NE 0) THEN ( %InitProcIntEnable(InitVpSwapFile) )FI )FI %' Common to all workstation OSs %InitProcIntEnable(InitLoadProc) )FI%' Workstation %' Common to all OSs %InitProcIntEnable(InitStatus) ;############################################################### ; ; InitFileSpec -- ; This macro defines the name of a file which CTOS Chains ; to after completion of the initialization routines. If there ; is any error in this Chain operation, then WS CTOS Exits to ; ExitRunFileSpec. The second argument of the macro is the ; password that CTOS needs to Chain to the file. This is ; normally null (""). ; ;################################################################ %IF(%*isdef(%InitFile)) THEN ( %InitFileSpec("%InitFile","",128) ) ELSE ( %IF (%fMFHardware) THEN (  %InitFileSpec("[Sys]CLI.Run","",128) ) ELSE ( %InitFileSpec("[Sys]SysInit.Run","",128) )FI )FI ;################################################################ ; Native Langauge Support Table File ; This macro defines the name of the file to be loaded at ; initialization which contains national tables and strings. ;################################################################ %IF(%*isdef(%NlsFile)) THEN ( %NlsFileSpec("%NlsFile","") ) ELSE ( %NlsFileSpec("[Sys]Nls.sys","") )FI ;################################################################ ; Configuration Initialization File # ; This macro defines the name of a file which CTOS uses # ; to determine the initial hardware configuration. # ;################################################################ %IF(%fMFHardware)THEN( %If (%*Isdef(%ConfigInitFile)) Then ( %CnfgInitFile("%ConfigInitFile") ) Else ( %CnfgInitFile("[Sys]Master.CNF") ) Fi )FI ;############################################################### ; Configuration File -- ; This macro defines the name of the configuration file. ; Currently, the configuration file is only used by NGen. Valid ; entries are: ; :XBufWindowSize:nnnKB (nnn = 0, 96, 224, or 480) ; :ClusterLineSpeed:nnnbps (nnn = 1.8M or 307K) ;################################################################ %IF(%*isdef(%ConfigFile)) THEN ( %ConfigurationFile("% MegaFrame disk may only be an SMD ; disk or a hard disk. Note that Convergent ByteStreams ; supports "[nul]", "[kbd]", and "[vid]", etc. as "devices", ; but these are in reality access method constructs and not ; CTOS devices. ; ; DISKS -- A disk device is declared for each disk which is ; configured with the hardware. Each disk has a unit number ; (consecutive starting with 0 for each type of disk), a retry ; count (number of attempts to recover from I/O errors), a flag ; which is non zero for hard disk devices, a device name and a ; device password: ; ; dcbDisk(unitNumber,retryCount,fHardDisk,"name", "password") ; ; NOTE -- names and passwords are contained in '"'`s ; - names of devices must be unique ; - maximum of 12 characters in names or passwords ; - maximum of 5 (IWS) or 2 (AWS) devices are allowed. ; - AWS-240 floppy and winchester devices are both look ; like winchesters to CTOS, with floppy (f0) being unit ; 0 and winchester (d0) being unit 1. ;################################################################ %IF (%fMFHardware) THEN ( %If (%fFP) then ( %IF (%*isdef(%nWinch) EQ 0) THEN ( %Set(nWinch,0) ) FI %IF (%nWinch GE 1) THEN (%dcbDisk(0, 12, 1, "d0", "d0"))FI %IF (%nWinch GE 2) THEN (%dcbDisk(1, 12, 1, "d1", "d1"))FI %IF (%nWinch GE 3) THEN (%dcbDisk(2, 12, 1, "d2", "d2"))FI %If (%nWinch GE 4) Then (%dcbDisk(3, 12, 1, "d3", "d3"))FI ) FI %If (%fDP) then ( %IF (%*isdef(%nWinch) EQ 0) THEN ( %Set(nWinch,0) ) FI %IF (%nWinch GE 1) THEN (%dcbDisk(0, 12, 1, "s0", "s0"))FI  %IF (%nWinch GE 2) THEN (%dcbDisk(1, 12, 1, "s1", "s1"))FI %IF (%nWinch GE 3) THEN (%dcbDisk(2, 12, 1, "s2", "s2"))FI %If (%nWinch GE 4) Then (%dcbDisk(3, 12, 1, "s3", "s3"))FI %If (%nWinch GE 5) Then (%dcbDisk(4, 12, 1, "s4", "s4"))FI %If (%nWinch GE 6) Then (%dcbDisk(5, 12, 1, "s5", "s5"))FI ) FI ) ELSE (%' Workstation %IF (%nFloppy GE 1) THEN (%Floppy("f0","")) FI %IF (%nFloppy GE 2) THEN (%Floppy("f1","")) FI %IF (%nFloppy GE 3) THEN (%Floppy("f2","")) FI %IF (%nFloppy GE 4) THEN (%Floppy("f3","")) FI %IF (%nWinch GE 1) THEN (%HDisk("d0","d0")) FI %IF (%nWinch GE 2) THEN (%HDisk("d1","d1")) FI %IF (%nWinch GE 3) THEN (%HDisk("d2","d2")) FI %IF (%nWinch GE 4) THEN (%HDisk("d3","d3")) FI %IF (%nWinch GE 5) THEN (%HDisk("d4","d4")) FI %IF (%nWinch GE 6) THEN (%HDisk("d5","d5")) FI %IF (%nWinch GE 7) THEN (%HDisk("d6","d6")) FI %IF (%nWinch GE 8) THEN (%HDisk("d7","d7")) FI )FI%' EVEN ;############################################################### ; FINAL -- ; This macro does error checking, and fills in various ; counts in the tables generated by the above macros calls. ; ;################################################################ %Final END ################## ; Native Langauge Support Table File ; This macro defines the name of the file to be loaded at ; initialization which contains national tables and strings. ;################################################################ %IF(%*isdef(%NlsFile)) THEN ( %NlsFileSpec("%NlsFile","") ) ELSE ( %NlsFileSpec("[Sys]N;################################################################ ; FILE KBD.ASM -- # ; # ; COPYRIGHT 1980, 1981, 1982, 1983 CONVERGENT TECHNOLOGIES, INC.# ; ALL RIGHTS RESERVED # ; # ; THIS PROGRAM IS FURNISHED UNDER A LICENSE RESTRICTING ITS USE # ; SOLELY FOR THE OPERATION OF A DESIGNATED COMPUTER FOR A # ; PARTICULAR PURPOSE, AND MAY NOT BE COPIED OR OTHERWISE USED # ; WITHOUT THE PRIOR WRITTEN CONSENT OF CONVERGENT TECHNOLOGIES, # ; INC. TITLE TO AND OWNERSHIP OF THE PROGRAM, INCLUDING ITS # ; SOURCE CODE, SHALL AT ALL TIMES REMAIN IN CONVERGENT # ; TECHNOLOGIES. # ; # ;################################################################ $INCLUDE (kbd.mdf) PUBLIC rgInfoIKey, prgInfoIKey, iKeyCode0, iKeyCode1, iKeyFinish PUBLIC iKeyReset, iKeyAction, iKeyShiftLock, iKeyShift0, iKeyShift1 PUBLIC pDiacriticTable PUBLIC iKbd DGroup GROUP Data Data SEGMENT PUBLIC 'Data' ;####   002 mark DB 0Dh, 0C3h, attrControl ; 003 bound DB 04h, 0C4h, attrControl ; 004 finish DB 05h, 0C5h, attrControl ; 005 prev page DB 06h, 10h, attrRepeat ; 006 1/2-1/4 DB 07h, 0C7h, attrControl ; 007 cancel DB 08h, 08h, attrRepeat ; 008  backspace DB 09h, 09h, attrControl ; 009 tab DB 0Ah, 0Ah, attrRepeat ; 00A return DB 0Bh, 0CBh, attrRepeatFast ; 00B down-arrow DB 0Ch, 0CCh, attrControl ; 00C next page DB 0Ah, 0Ah, attrRepeat ; 00D next DB 0Eh, 0CEh, attrRepeatFast ; 00E left-arrow DB 12h, 0D2h, attrRepeatFast ; 00F right-arrow DB 80h, 81h, attrControl ; 010 (SH-L) DB 11h, 0D1h, attrRepeat ; 011 scroll-up DB 0Fh, 0CFh, attrControl ; 012 move DB 13h, 0D3h, attrRepeat ; 013 scroll-down DB 14h, 0D4h, attrControl ; 014 copy DB 15h, 0D5h, attrControl ; 015 f1 DB 16h, 0D6h, attrControl ; 016 f2 DB 17h, 0D7h, attrControl ; 017 f3 DB 18h, 0D8h, attrControl ; 018 f4 DB 19h, 0D9h, attrControl ; 019 f5 DB 1Ah, 0DAh, attrControl ; 01A f6 DB 1Bh,############################################################ ; SPECIAL CHARACTER DEFINITIONS -- # ; The following keyboard codes are used by CTOS when in # ; character mode. They are used to look up (in the Keyboard # ; Translation Table) the byte value to be returned to the # ; caller of "ReadKbd". If you wish to change the # ; location of the "CODE" , "SHIFT", "LOCK", "ACTION", or # ; "FINISH" keys then simply change the following SET macros and # ; the appropriate entries in the Keyboard Translation Table. # ;################################################################ %SET(LeftCodeKey, 4Ch) %SET(RightCodeKey, 4Dh) %SET(LeftShiftKey, 48h) %SET(RightShiftKey, 49h) %SET(LockKey, 45h) %SET(FinishKey, 04h) %SET(ActionKey, 43h) iKbd LABEL WORD ; Beginning of Action-key list. DW 061h ; 'a': Debugger, single process mode. DW 062h ; 'b': Debugger, multi process mode. DW 07Fh ; : Forget type-ahead buffer. DW 044h ; : Blank screen (force screen timeout). ; Special key list, directly follows Action-key list. Don't move entries. iKeyCode0 DW %LeftCodeKey iKeyCode1 DW %RightCodeKey iKeyFinish DW %FinishKey iKeyReset LABEL WORD iKeyAction DW %ActionKey iKeyShiftLock DW %LockKey iKeyShift0 DW %LeftShiftKey iKeyShift1 DW %RightShiftKey DW 63h ; 'C' for Source Level Debugger ;################################################################ ; Keyboard Translation Table # ; # ; rgInfoIKey (128) ARRAY OF (Unshifted Value, Shifted Value, # ; Attributes) # ; # ; The attributes are OR'd together from the following bit # ; masks: # ; # ; 0xxxxxxx (00h) ... does not respond to Lock key as shifted # ; value # ; 1xxxxxxx (80h) ... responds to Lock key as shifted value # ; # ; x00xxxxx (00h) ... no repeating when a key is held down # ; x01xxxxx (20h) ... repeating starts after 0.2 seconds # ; x10xxxxx (40h) ... repeating starts after 0.4 seconds # ; x11xxxxx (60h) ... repeating starts after 0.7 seconds # ; # ; xxx00xxx (00h) ... repeat rate is 1 per second # ; xxx01xxx (08h) ... repeat rate is 10 per second # ; xxx10xxx (10h) ... repeat rate is 20 per second # ; xxx11xxx (18h) ... repeat rate is 30 per second # ; ; xxxxxxx1 (01h) ... diacritical key when shifted ; xxxxxx1x (02h) ... diacritical key when unshifted ; ;################################################################ attrControl EQU 000h + 000h + 000h ;no shift lock, no repeat attrAlpha EQU 080h + 060h + 010h ;shift lock, repeats attrRepeat EQU 000h + 060h + 010h ;repeats attrRepeatFast EQU 000h + 040h + 018h ;repeats, faster attrShiftDia EQU 01h; diacritcal key when shifted attrUnShiftDia EQU 02h; diacritcal key when unshifted attrBothDia EQU 03h; diacritcal key when shifted or unshifted prgInfoIKey DD rgInfoIKey rgInfoIkey LABEL BYTE ; Table entry: Meaning(s): DB 0, 0C0h, attrControl ; 000 help DB 01h, 0C1h, attrRepeatFast ; 001 up-arrow DB 02h, 0C2h, attrControl ;  0C9h, attrControl ; 01B GO DB 1Ch, 0DCh, attrControl ; 01C f7 DB 1Dh, 0CDh, attrControl ; 01D f8 DB 1Eh, 0CAh, attrControl ; 01E f9 DB 1Fh, 0DFh, attrControl ; 01F f10 DB 20h, 20h, attrRepeat ; 020 space DB 39h, 39h, attrRepeat ; 021 9 9 DB 82h, 83h, attrControl ; 022 (SH-L) DB 84h, 85h, attrControl ; 023 (0) DB 86h, 87h, attrControl ; 024 (NEXT) DB 0, 0, 0 ; 025 DB 0, 0, 0 ; 026 DB 27h, 22h, attrRepeat ; 027 " DB 0, 0, 0 ; 028 DB 0, 0, 0  ; 029 DB 0, 0, 0 ; 02A DB 3Dh, 2Bh, attrRepeat ; 02B + = DB 2Ch, 2Ch, attrRepeat ; 02C , , DB 2Dh, 5Fh, attrRepeat ; 02D - _ DB 2Eh, 2Eh, attrRepeat ; 02E . . DB 2Fh, 3Fh, attrRepeat ; 02F / ? DB 30h, 29h, attrRepeat ; 030 0 ) DB 31h, 21h, attrRepeat ; 031 1 ! DB 32h, 40h, attrRepeat ; 032 2 @ DB 33h, 23h, attrRepeat ; 033 3 # DB 34h, 24h, attrRepeat ; 034 4 $ DB 35h, 25h, attrRepeat ; 035 5 percent DB 36h, 03h, attrRepeat ; 036 6 cent DB 37h, 26h, attrRepeat ; 037 7 & DB 38h, 2Ah, attrRepeat ; 038 8 * DB 39h, 28h, attrRepeat ; 039 9 ( DB 0, 0, 0 ; 03A DB 3Bh, 3Ah, attrRepeat ; 03B ; : DB 0, 0, 0 ; 03C DB 0, 0, 0 ; 03D DB 0, 0, 0 ; 03E DB 0, 0, 0  ; 03F 3F = iKeyInvalid DB 0, 0, 0 ; 040 40 = iKeyNoKeys DB 36h, 36h, attrRepeat ; 041 6 6 DB 2Dh, 2Dh, attrRepeat ; 042 - - DB 0, 0, 0 ; 043 reset DB 0D0h,0D0h, attrControl ; 044 overtype DB 0, 0, attrControl ; 045 lock DB 32h, 32h, attrRepeat ; 046 2 2 DB 33h, 33h, attrRepeat ; 047 3 3 DB 0, 0, 0 ; 048 shift DB 0, 0, 0 ; 049 shift DB 30h, 30h, attrRepeat ; 04A 0 0 DB 2Eh, 2Eh, attrRepeat ; 04B . . DB 0, 0, 0 ; 04C  code DB 0, 0, 0 ; 04D code DB 0, 0, 0 ; 04E DB 0, 0, 0 ; 04F DB 0, 0, 0 ; 050 DB 0, 0, 0 ; 051 DB 0, 0, 0 ; 052 DB 0, 0, 0 ; 053 DB 0, 0, 0 ; 054 DB 0, 0, 0 ; 055 DB 0, 0, 0 ; 056 DB 0, 0, 0 ; 057 DB 0, 0, 0 ; 058 DB 0, 0, 0 ; 059 DB 0, 0, 0 ; 05A DB 5Bh, 3Ch, attrRepeat ; 05B [ < DB 37h, 7Ch, attrRepeat ; 05C 7 | DB 5Dh, 3Eh, attrRepeat ; 05D ] > DB 5Eh, 7Eh, attrRepeat ; 05E ^ ~ DB 0, 0, 0 ; 05F DB 31h, 60h, attrRepeat ; 060 1 ` DB 61h, 41h, attrAlpha ; 061 a A DB 62h, 42h, attrAlpha ; 062 b B DB 63h, 43h, attrAlpha ; 063 c C DB 64h, 44h, attrAlpha ; 064 d D DB 65h, 45h, attrAlpha ; 065 e E DB 66h, 46h, attrAlpha ; 066 f F DB 67h, 47h, attrAlpha ; 067 g G DB 68h, 48h, attrAlpha ; 068 h H DB 69h, 49h, attrAlpha ; 069 i I DB 6Ah, 4Ah, attrAlpha ; 06A j J DB 6Bh, 4Bh, attrAlpha ; 06B k K DB 6Ch, 4Ch, attrAlpha ; 06C l L DB 6Dh, 4Dh, attrAlpha ; 06D m M DB 6Eh, 4Eh, attrAlpha ; 06E n N DB 6Fh, 4Fh, attrAlpha ; 06F o O DB 70h, 50h, attrAlpha ; 070 p P DB 71h, 51h, attrAlpha ; 071 q Q DB 72h, 52h, attrAlpha ; 072 r R DB 73h, 53h, attrAlpha ; 073 s S DB 74h, 54h, attrAlpha ; 074 t T DB 75h, 55h, attrAlpha ; 075 u U DB 76h, 56h, attrAlpha ; 076 v V DB 77h, 57h, attrAlpha ; 077 w W DB 78h, 58h, attrAlpha ; 078 x X DB 79h, 59h, attrAlpha ; 079 y Y DB 7Ah, 5Ah, attrAlpha ; 07A z Z DB 34h,  7Bh, attrRepeat ; 07B 4 { DB 38h, 5Ch, attrRepeat ; 07C 8 backslash DB 35h, 7Dh, attrRepeat ; 07D 5 } DB 0, 0, 0 ; 07E DB 7Fh,0C8h, attrRepeat ; 07F del %InitDiacriticalTables ; ; Diacritical Keys: ; Diacritical keys are a mechanism to map a regular key into a foriegn ; key by a two-key sequence. To define the two-key sequence and the ; resultant key use the macro below. The first argument is the diacritical ; key, the second parameter is the following key in the sequence and ; the third key is the resultant. The macro below, which is commented ; out, would set SHIFT NEXT PAGE (0CCh) as the diacritic key, and the ; the two key sequence SHIFT NEXT PAGE, '1' (31h) would result in the ; character '2' (32h). ; ; The attribute for the  ZZZZ diacritical key must also be set in the encoding ; table above. The diacritcal attributes are: ; ; attrShiftDia :if the key is diacritical when shifted ; attrUnShiftDia :if the key is diacritical when unshifted ; attrBothDia :if the key is diacritical shifted and unshifted ; %' %DiacritcalSet (0CCh, 31h, 32h) %EndDiacriticalTables Data ENDS END RepeatFast ; 00B down-arrow DB 0Ch, 0CCh, attrControl ; 00C next page DB 0Ah, 0Ah, attrRepeat ; 00D next DB 0Eh, 0CEh, attrRepeatFast ; 0%*DEFINE (InitDiacriticalTables) ( %SET(cEntries,0) %DEFINE (String1) () %DEFINE (String2) () ) %*DEFINE (DiacriticalSet(bDiacriticalKey,bFollowingKey,bResultantKey)) ( %DEFINE (tmpString) (%String1) %DEFINE (String1) (%tmpString DB %bDiacriticalKey,%bFollowingKey) %DEFINE (tmpString) (%String2) %DEFINE (String2) (%tmpString DB %bResultantKey) %SET(cEntries, %cEntries+1) ) %*DEFINE (EndDiacriticalTables) ( pDiacriticTable DD DGroup:cDiacriticalPairs cDiacriticalPairs DW %cEntries  rgwDiacriticalPairs LABEL WORD %String1 rgbTranslationValue LABEL BYTE %String2 ) 2€KbdˆCTAsm II-1.0–??SEG??SEGDataDataDGroup˜h˜h¢šÿ« iKeyCode0 iKeyCode1 iKbd prgInfoIKey iKeyShift0 iKeyFinish iKeyReset iKeyShift1 iKeyActionpDiacriticTableœ rgInfoIKey iKeyShiftLock ¦abDLMCEHIcÀÁX ÃÄÅpÇp p ËX Ì pÎXÒX€ÑpÏÓpÔÕÖרÙÚÉÜÍÊß p99p‚ƒ„…†‡'"p=+p,,p-_p..p/?p0)p1!p2@p3#p4$p5%p6p7&p8*p9(p;:p66p--pÐÐ22p33p00p..p[p^~p1`paAðbBðcCðdDðeEðfFðgGðhHðiIðjJðkKðlLðmMðnNðoOðpPðqQðrRðsSðtTðuUðvVðwWðxXðyYðzZð4{p8\p5}pÈp œÄTÈTŜɞUŠZZ  ZZZZZZZZZZZZZZZZ   ZZZZZZZZZZZZZZZZ! ZZZZZZZZZZZZZZZZ!  ZZZZZZZZZZZZZZZZ" ZZZZZZZZZZZZZZZZ"  ZZZZZZZZZZZZZZZZ# ZZZZZZZZZZZZZZZZ#  ZZZZZZZZZZZZZZZZ$ ZZZZZZZZZZZZZZZZ$  ZZZZZZZZZZZZZZZZ% ZZZZZZZZZZZZZZZZ%  fileHeaders.sysmfd.syslog.sys sysImage.sys badBlk.sys crashDump.sys HdInstall.sub LinkCtos.subLinkCtosCmd.sub àÿÿÿÿÿÿÿÿÿÿÿ?€ZZZZZZZZ crashDump.sysfileHeaders.sysmfd.sys sysImage.sys& ¼À 01740-1/3À®D bÜE bÂÀÄKD¾ bSYS¼­genZÂ9|M^SYS¼genZ9{ì³fileHeaders.sysmilosys¼¹D b¹D b¹D bÿÿ–Ä–%mfd.sysmilosys¼»D b»D b,W5bÿÿÂp:log.sysmilosys¼½D b½D b½D bÿÿ ‘ sysImage.sysmilosys¼¿D b¿D b¿D bÿx badBlk.sysmilosys¼ÂD bÂD bÂD bÿÿ&  ¸Ã nClstr.objmilogen \äD bçD bçD b¹Ø nClstrLfs.asmmilogen ^èD bëD bëD b¤:+ø crashDump.sysmilosys¼ÄD bÄD bÄD bÿÿXi HdInstall.submilosys¼ÉD bËD bõSmbÐ  ýD LinkCtos.submilosys¼ÌD bÏD bUmb‰ LinkCtosCmd.submilosys ¼ÐD bÔD b¬RmbÞâ nClstr.asmmilogen ^ÛD bÞD bÞD bŠú nClstr.linkmilogen ^ßD bãD bãD bz' 9nClstrLfs.linkmilogen\ìD bïD bïD b8>4j nClstrLfs.objmilogen\ðD bõD bõD b$F&2 nMstr.asmmilogen^öD bùD b•¨:g<l¸– nMstr.linkmilogen^úD bþD b™¨:g'rå nMstr.objmilogen\ÿD bE b“¨:g­#z$Æ nStnd.asmmilogen^E bE b?Umbgž; nStnd.linkmilogen\E b E bFUmb梫 nStnd.objmilogen\ E bE bPUmb”"¨$'  ¯˜ SrpDp.asmmilogen\*E b,E b,E b°$7 SrpDp.linkmilogen^-E b1E b1E b"(T_ SrpCp.asmmilogenZE bE bE bòÌß— SrpCp.linkmilogenZE bE bE b¬Ò  SrpCp.objmilogen^E bE bE b Ø + SrpCpDeb.asmmilogen^E b E b E bóø m SrpCpDeb.linkmilogen^!E b$E b$E bBþÅÙ SrpCpDeb.objmilogen\%E b(E b(E bH ( _Ï SrpDp.objmilogenZ2E b5E b5E bn ."„\ SrpDpDeb.asmmilogen^6E b9E b9E b®Pe SrpDpDeb.linkmilogen Z9E bRequest_MF.asmmilogen>^ÀE bÇE b‡UmbÁïîðJ[?Request_MF.objmilogen?\ÈE bÍE bUmb6€Þ‚Sa@Request_MF.mdfmilogen@ZÎE bÓE b“Umb/<` >9Akbd.asmmilogenAZÓE b×E b/Umbm%Ì&€KBKbd.mdfmilogenB\ØE bÚE b5UmbbòMPDK1`bJohnI½CKbd.objmilogenC^ÛE bÞE b:UmbÇöõ6DEô5EF*   nClstr.obj nClstrLfs.link nClstrLfs.obj nMstr.obj nStnd.link nStnd.obj SrpCpDeb.obj SrpDp.asm SrpDpDeb.obj! SrpFp.obj% SrpFpDeb.link' SrpFpQic.link) SrpSp.asm* SrpSpDeb.link. SrpTp.link1 SrpTp.obj2 SrpTpDeb.asm3 SrpTpDeb.link4 SrpXp.asm6 sysgen.asm9 Request.mdf<Request_MF.obj?Kbd.mdfB nClstr.asm nClstr.link nClstrLfs.asm nMstr.asm nMstr.link nStnd.asm SrpCp.obj SrpCpDeb.asm SrpCpDeb.link SrpDp.link SrpDpDeb.asm SrpFp.asm# SrpFpDeb.obj( SrpSp.link+ SrpSpDeb.obj/ SrpTp.asm0 srpxp.link7 SrpXp.obj8 sysgen.mdf: Request.obj=Request_MF.asm>Kbd.objCó4FGò3GHñ2HIð1IJï{J SrpCp.asm SrpCp.link SrpDp.obj SrpDpDeb.link SrpDpTape.link" SrpFp.link$ SrpFpDeb.asm& SrpSp.obj, SrpSpDeb.asm- SrpTpDeb.obj5 Request.asm;Request_MF.mdf@kbd.asmA+ ;ALL RIGHTS RESERVED ; ; THIS PROGRAM IS FURNISHED UNDER A LICENSE RESTRICTING ITS USE SOLELY FOR THE ; OPERATION OF A DESIGNATED COMPUTER FOR A PARTICULAR PURPOSE, AND MAY NOT BE ; COPIED OR OTHERWISE USED WITHOUT THE PRIOR WRITTEN CONSENT OF CONVERGENT ; TECHNOLOGIES, INC. TITLE TO AND OWNERSHIP OF THE PROGRAM, INCLUDING ITS ; SOURCE CODE, SHALL AT ALL TIMES REMAIN IN CONVERGENT TECHNOLOGIES. ; ; ; 2/8/84, 4:20 pm. Vinay - added definitions for multibus ; adapter data structure space. ;  Flag is "nAdapters", default 1. ; 1/10/86 JA Merge MF ; 2/6/86 JA remove rgPTBuffers ; 3/3/86 JM Swap Fabs ; 3/17/86 MS add sarCurrent to GraphicsInfo ; 3/19/86 MS add userNumVdm to GraphicsInfo ; 3/21/86 JM fLfsToMaster ; 4/25/86 FW NewGen support. ; 5/16/86 JM sbSwapFileFirst configurable ; 5/21/86 JM vfForkUser ; 5/27/86 JM rgCannotOpenSwapFile ; 5/31/86 JA removed vfForkUser ; 6/11/86 JM COED dcbSeg ; %SET(TRUE,0FFh) %SET(FALSE,0) ; Size of Control Block Definitions sRcbIws EQU 18 sRcbAws  EQU 18 %IF(%HardwareType LT 10) THEN (%' Workstation xBlockHeaderSize EQU 18 )FI xBlockRqSize EQU 64 ;max size request block header that can fit in an XBlock ; Size of Variable Partition Blocks sAsib EQU 93 sAsibShared EQU 280+17+14 ;20 slots sArib EQU 49 sTib EQU 15 ; WsType definitions: iwsStandAlone EQU 0 iwsCluster EQU 1 iwsMiniMaster EQU 2 iwsIopMaster EQU 3 aws210 EQU 4 aws220_240 EQU 5 ;AWS-220, AWS-230, AWS-240 awsMaster EQU 6 ngenCluster EQU 7 ngen EQU 8 ngenMaster EQU 9 ; HardwareType definitions FPtype EQU 10 TPtype EQU 11 CPtype EQU 12 SPtype EQU 13 DPtype EQU 14 RPtype EQU 15 %IF (not(%*Isdef(%WsType))) THEN (%Define(WsType)(0))FI %Define(fIwsHardware)(0) %Define(fAwsHardware)(0) %Define(fNGenHardware)(0) %Define(fMFHardware)(0) %Define(fFP)(0) %Define(fTP)(0) %Define(fCP)(0) %Define(fSP)(0) %Define(fDP)(0) %Define(fRP)(0) %IF (%WsType LE 3) THEN (%Define(fIwsHardware)(0FFH)) ELSE(%IF (%WsType LE 6) THEN (%Define(fAwsHardware)(0FFH)) ELSE(%IF (%WsType LE 9) THEN (%Define(fNGenHardware)(0FFH)) ELSE(%Define(fMFHardware)(0FFH) %IF (%WsType EQ 10) THEN (%Define(fFP)(0FFH))FI %IF (%WsType EQ 11) THEN (%Define(fTP)(0FFH))FI %IF (%WsType EQ 12) THEN (%Define(fCP)(0FFH))FI %IF (%WsType EQ 13) THEN (%Define(fSP)(0FFH))FI %IF (%WsType EQ 14) THEN (%Define(fDP)(0FFH))FI %IF (%WsType EQ 15) THEN (%Define(fRP)(0FFH))FI )FI)FI)FI ; ClusterConfig definitions: standAlone EQU 0 cluster EQU 1 master EQU 2 ; initialize counters and flags ; %IF (not(%*Isdef(%OSVersion))) THEN (%Define(OSVersion)(0A00h))FI %IF (not(%*Isdef(%fAwsPIT))) THEN (%Define(fAwsPIT)(0))FI %IF (not(%*Isdef(%fDebugger))) THEN (%Define(fDebugger)(1))FI %IF (not(%*Isdef(%fHDisks))) THEN (%Define(fHDisks)(1))FI %IF (not(%*Isdef(%localFS))) THEN (%Define(localFS)(0))FI %IF (not(%*Isdef(%fontRamBuf))) THEN (%Define(fontRambuf)(0))FI %IF (not(%*Isdef(%fMulPar))) THEN (%Define(fMulPar)(0))FI %IF (not(%*Isdef(%fVarPar))) THEN (%Define(fVarPar)(0))FI %IF (not(%*Isdef(%fFloppyCheck))) THEN (%Define(fFloppyCheck)(0))FI %IF (not(%*Isdef(%nUserNum))) THEN (%Define(nUserNum)(%nUcb))FI %IF (not(%*Isdef(%nNetUsers))) THEN (%Define(nNetUsers)(0))FI %IF (not(%*Isdef(%nXBlockSmall))) THEN (%Define(nXBlockSmall)(0))FI %IF (not(%*Isdef(%sMaxSmallRq))) THEN (%Define(sMaxSmallRq)(0))FI %IF (not(%*Isdef(%nSectorPerXBlock))) THEN (%Define(nSectorPerXBlock)(0))FI %IF (not(%*Isdef(%nSoftVec))) THEN (%Define(nSoftVec)(30+4*%nUcb))FI %IF (not(%*Isdef(%nPartitions))) THEN (%Define(nPartitions)(1))FI %IF (not(%*Isdef(%clusterTimeout))) THEN (%Define(clusterTimeout)(30))FI %IF (not(%*Isdef(%fSpecialFullyNestedMode))) THEN (%Define(fSpecialFullyNestedMode)(0FFh))FI %IF (not(%*Isdef(%fKbdRes))) THEN (%Define(fKbdRes)(0FFh))FI %IF (not(%*Isdef(%nTryNewMaster))) THEN (%Define(nTryNewMaster)(16))FI %IF (not(%*Isdef(%sParExitRunFile))) THEN (%Define(sParExitRunFile)(3200))FI %Define(nAsib)(%nUcb) %IF (not(%*Isdef(%nArib))) THEN (%Define(nArib)(%nAsib))FI %IF (not(%*Isdef(%nTib))) THEN (%Define(nTib)(+  moteUser))) THEN (%Define(nRemoteUser)(32))FI %If (Not(%*IsDef(sMassIoRqQueue))) THEN (%Define(sMassIoRqQueue)(0))FI ) FI ) ELSE (%' Workstation only %If (Not(%*Isdef(%sZblk))) Then (%Define(sZblk)(0))FI%' For Sysgen.asm comment )FI %SET (m_nRawInt,  0) %SET (m_nMediatedInt, 0) %SET (m_ErrorCount, 0) %SET (nDcb, 0) %SET (m_nOsProcDesc, 0) %SET (m_nVirtualExch, 0) %SET (m_nRgInitRtcRequest, 0) %SET (m_nInitProcHardware, 0) %SET (m_nInitProcIntDisable, 0) %SET (m_nInitProcIntEnable, 0) %SET (m_nRequestFileNames, 0) %SET (m_typeMax, 0) %SET (m_nSysCommInt, 0) %SET (cascade8259, 0) %SET (m_nRgMassioDisp, 0) %SET (m_ExchLast, 1) %SET (m_SysExch, 1) %SET (m_nRemoteDmaRequests, 0) %SET (dcb0,0) ; no dcbs defined initially %SET (dcb1,0) %SET (dcb2,0) %SET (dcb3,0) %SET (dcb4,0) %SET (dcb5,0) %SET (dcb6,0) %SET (dcb7,0) %SET (dcb8,0) %SET (dcb9,0) %SET (dcb10,0) %SET (dcb11,0) %SET (dcb12,0) %SET (dcb13,0) %SET (dcb14,0) %SET (dcb15,0) %IF(not(%*isdef(%nWinch))) THEN (%Set(nWinch,0))FI %IF(%nAsib))FI %IF (not(%*Isdef(%fCheckMem))) THEN (%Define(fCheckMem)(0))FI %IF (not(%*Isdef(%fCheckEcc))) THEN (%Define(fCheckEcc)(0))FI %IF (not(%*Isdef(%nSwapFabs))) THEN (%Define(nSwapFabs)(32))FI %IF (%fMFHardware) THEN ( %If (not(%*Isdef(%wsTotal))) Then (%Define(wsTotal)(1))FI %If (Not(%*Isdef(%sOutBuffer))) Then (%Define(sOutBuffer)(128))FI %If (Not(%*Isdef(%sRouteArea))) Then (%Define(sRouteArea)(300))FI %If (Not(%*Isdef(%sTermArea))) Then (%Define(sTermArea)(20))FI %If (Not(%*Isdef(%sLineArea))) Then (%Define(sLineArea)(20))FI %If (Not(%*Isdef(%nReqEnts))) Then (%Define(nReqEnts)(10))FI %If (Not(%*Isdef(%nRespEnts))) Then (%Define(nRespEnts)(10))FI %If (Not(%*Isdef(%sStatArea))) Then (%Define(sStatArea)(4))FI %If (Not(%*Isdef(%nYblk))) Then (%Define(nYblk)(4))FI %If (Not(%*Isdef(%nSectorPerYblk))) Then (%Define(nSectorPerYblk)(5))FI %If (Not(%*Isdef(%nZblk))) Then (%Define(nZblk)(28))FI %If (Not(%*Isdef(%sZblk))) Then (%Define(sZblk)(180))FI %If (Not(%*IsDef(%Real186))) Then (%Define(Real186)(0FFFFh))Fi %If (Not(%*IsDef(%nMountedDisks))) Then (%Define(nMountedDisks)(10))Fi %If (Not(%*IsDef(%xBlockHeaderSize))) Then (%Define(xBlockHeaderSize)(56+16))FI %If (Not(%*IsDef(%nAdapters))) Then (%Define(nAdapters)(1))Fi ; The 64 (below) is the size of the output ring buffer for each t0 window ; If the serial ports are not going to be used, the size for windows 4 and 6 ; can be made smaller, but all windows need to be a multiple of 16 %If (%fCP) Then ( %If (Not(%*IsDef(%nXblk))) Then (%Define(nXblk)(5))Fi %If (Not(%*IsDef(%sTpInBuf))) THEN (%Define(sTpInBuf)(128))FI %If (Not(%*IsDef(%sTpOutBuf))) THEN (%Define(sTpOutBuf)(128))FI %If (Not(%*IsDef(%sPtW0Buf))) THEN (%Define(sPtW0Buf)(64))FI %If (Not(%*IsDef(%sPtW1Buf))) THEN (%Define(sPtW1Buf)(64))FI %If (Not(%*IsDef(%sPtW2Buf))) THEN (%Define(sPtW2Buf)(64))FI %If (Not(%*IsDef(%sPtW3Buf))) THEN (%Define(sPtW3Buf)(64))FI %If (Not(%*IsDef(%sPtW4Buf))) THEN (%Define(sPtW4Buf)(64))FI %If (Not(%*IsDef(%sPtW5Buf))) THEN (%Define(sPtW5Buf)(64))FI %If (%sPtW4Buf GT 128) THEN (%SET (sPtW4Buf, 128))FI %If (%sPtW5Buf GT 128) THEN (%SET (sPtW5Buf, 128))FI ) ELSE ( %If (Not(%*IsDef(%nXblk))) Then (%Define(nXblk)(0)) Fi ) Fi %If (%fTP) Then ( %If (Not(%*IsDef(%sTpInBuf))) THEN (%Define(sTpInBuf)(128))FI %If (Not(%*IsDef(%sTpOutBuf))) THEN (%Define(sTpOutBuf)(128))FI ) FI %If (%fFP) Then ( %If (%Pass1) Then ( %If (not(%*IsDef(%nWinch))) Then ( %Out (Define nWinch) ) Else ( %If ((%nWinch LT 1) or (%nWinch Gt 4)) Then ( %Out (nWinch must be in 1..4) ) FI ) FI ) FI ) Fi %If (%fDP) Then ( %If (%Pass1) Then ( %If (not(%*IsDef(%nWinch))) Then ( %Out (Define nWinch) ) Else ( %If ((%nWinch LT 1) or (%nWinch Gt 6)) Then ( %Out (nWinch must be in 1..6) ) FI ) FI ) FI ) FI %If ((%fFP) OR (%fDP)) Then ( %If (Not(%*IsDef(%nRemoteUser))) THEN (%Define(nRemoteUser)(160))FI %If (Not(%*IsDef(%sMassIoRqQueue))) THEN (%Define(%sMassIoRqQueue)(20))FI ) Else ( %If (Not(%*IsDef(%nRe, not(%*isdef(%nFloppy))) THEN (%Set(nFloppy,0))FI %IF(not(%*isdef(%nSCSI))) THEN (%Set(nSCSI,0))FI %SET(FloppyUnitNum,0) %SET(HDiskUnitNum,0) %SET(SCSIunitNum,0) ;**************************************************************************** ; Variables common to all Operating Systems ;**************************************************************************** const SEGMENT PUBLIC 'const' const ENDS data SEGMENT PUBLIC 'data' DGroup GROUP Const, Data PUBLIC fSysChannelA, fSysChannelB PUBLIC fSubsysChannelA, fSubsysChannelB PUBLIC userNumClstrLast PUBLIC rgsbWsUserName, rgWsId,nWsAbortRq PUBLIC pRgWsAbortRq, pRgChgUserNumRq, pRgTerminationRq, pRgSwappingRq PUBLIC nWsAbortRq, nChgUserNumRq, nTerminationRq, nSwappingRq PUBLIC cbNodeName,NodeName PUBLIC rgOsTable, endOsTable PUBLIC contingencyLog PUBLIC ExchNetServer PUBLIC nBytExchs, bitmapExchs, bitmapExchsSave, pBitmapExchsSave, userExchFirst PUBLIC wVerBuff, fFsVerify, fGoingDown PUBLIC rgRawIntDesc, nRawInt PUBLIC rgMediatedIntDesc, nMediatedInt, intSwtbl, sIntSwtbl PUBLIC nTicks, cFramesMax PUBLIC sbScratchVolumeSpec PUBLIC nParDesc PUBLIC wOSVersion PUBLIC rgUcb,oRgOUcb,rgOUcb PUBLIC pRgOUcb, pRgOExUcb, oRgOExUcb PUBLIC VerifyCode PUBLIC maskVerifyCode, maskFPIndex PUBLIC sBufOut, mBufOut PUBLIC sExec PUBLIC sbExitRunFileSpec, sbExitRunFilePswd, exitRunFilePrio PUBLIC userNumLast, userNumClstrLast, nNetUsers, NetServerData PUBLIC GraphicsInfo, eventControlBlock PUBLIC rgUserReadCount PUBLIC userNumKbd, userNumVid PUBLIC pXlatTable, wXlatTableChksum, pUserXlatTable PUBLIC fLfsToMaster %IF (%fMFHardware) THEN (%' MF publics Public bConsoleSlot, bConsolePort, pConsoleObuf Public fSysChannelC, fSysChannelD, fSubsysChannelC, fSubsysChannelD Public Mask186 Public sYblk, nYblk, pYblkListHead Public sZblk, nZblk, pZblkListHead PUBLIC nDct PUBLIC fSrpUp PUBLIC rgbTypeTable, rgbXpChar, srgbTypeTable Public bMySlot, bMasterFpCpuId Public bMasterCpCpuId, pCdt Public rgRemoteDmaRequest, nRemoteDmaRequest Public maxAdapters, Adt Public nUserNum, rgLocalUserNum Public ibBufOutTake, ibBufOutPut, rgbBufOut, mBufOut Public fBufOutOverflow %If ((%fFp) OR (%fDp)) Then ( Public maxDevMounted, nDevMounted, rgFpMasterMountTable ) Fi PUBLIC cbPriParName, rgPriParName PUBLIC timeSliceLb, timeSliceHb, fTimeSlice ; Statistics Stuff Public pStat, pDiskStat, pProcStat, pExchStat, pIccStat Public sStat, sDiskStat, sProcStat, sExchStat, sIccStat PUBLIC nMinIOB, nAvailIOB, nMinY, nMinZ, nAvailY, nAvailZ PUBLIC nIccIn, nIccOut, nIccSkip, nLocRead, nLocWrite, nLocSeeks Public nRemRead, nRemWrite, nRemSeeks, nProcTick, nExchIn Public nYblkCopy, nParaIn, nParaOut, nInitY, nInitZ, nInitIOB Public nIobUsed %IF (%fTP OR %fCP) THEN ( PUBLIC userNumChannelA, userNumChannelB, userNumChannelC, userNumChannelD PUBLIC pbExtCntlComReg )FI %IF (%fCP) THEN( PUBLIC wsUserNumLast, rgWsLocalUserNum Public rgfSrpClock, rgNoWsLine Public nLcb, rgcTimeDelay, prgRcb, rgcMaxRqBlk, rgfLineEn ) Else ( PUBLIC cDelayDisc ) FI ) ELSE (%' Workstation publics PUBLIC oRgUserReadCount PUBLIC oRgUserWaitCount PUBLIC saGraphicsBoard, fGraphicsBoard, mbIOPort, bGraphicsPort %IF (%wsType NE aws210) THEN ( PUBLIC userNumChannelA, userNumChannelB )FI PUBLIC pAckInBuf, pAckOutBuf, pDmaBuf PUBLIC fFloppyCheck PUBLIC pMouseData PUBLIC extCntlRegAws PUBLIC rgCrashMsg, cbRgCrashMsg, rgLastCrashMsg, cbRgLastCrashMsg PUBLIC rgClusterMsg, cbRgClusterMsg, rgExitFileError, cbRgExitFileError PUBLIC rgInitError, cbRgInitError PUBLIC rgInitError, cbRgInitError, rgCheckConfig, cbRgCheckConfig PUBLIC rgCheckConfigPswd, cbRgCheckConfigPswd PUBLIC rgCannotOpenSwapFile, cbCannotOpenSwapFile PUBLIC fF0IllegallyRemoved,fF1IllegallyRemoved PUBLIC fAwsPIT, RtcTpb PUBLIC rgWsLocalUserNum PUBLIC wsUserNumLast PUBLIC xBusWindowSize, fHighSpeed PUBLIC pSysTime, pRgPrgNetRouting, pRgRcMax, pBootBlock PUBLIC exchSched,exchSchedPocket PUBLIC pRgSdInit, nSdInit, fInitExit, exitRunFilePrioSave PUBLIC iLineCurrent,iColCurrent,sMapCurrent,sarCurrent,userNumVdm PUBLIC rgWakeupRq, cWakeUpRq PUBLIC nSwapFabs %IF (%fFloppyCheck,   DW 0 userNumVid DW 1 ; dummy for GetpStructure userNumKbd DW 1 ) ELSE (%' Workstation DB 0 ; alignment nParDesc DW %nPartitions oRgOUcb DW DGROUP:rgOUcb oRgOExUcb DW 0 ; These two userNums are a structure. They are in sysConfig so that the installable video system service can access them. %IF(%fVarpar) THEN ( userNumVid DW 2 userNumKbd DW 2 ) ELSE (%IF (%FMulPar) THEN ( userNumVid DW 1 userNumKbd DW 1 ) ELSE ( userNumVid DW 0 userNumKbd DW 0 )FI )FI oRgPcb DW 0 oRgUserReadCount DW DGROUP:rgUserReadCount ;Used by InitVam oRgUserWaitCount DW DGROUP:rgUserWaitCount ;Used by InitVam ; End of system configuration block fSysChannelB DW 0 fSubsysChannelA DW 0 fSubsysChannelB DW 0 fFloppyCheck DB %fFloppyCheck )FI%' Workstation GraphicsInfo label word ;Next 7 fields are a structure, lGetpGraphicsInfo. saGraphicsBoard DW 0 fGraphicsBoard DW 0 mbIOPort DW 8030h bGraphicsPort DW 0 ; debugger needs to know current vid hdwr parameters, cache them here iLineCurrent DB 0FFh iColCurrent DB 0FFh sMapCurrent DW 0) THEN( PUBLIC cbReinsertFloppyMsg,ReinsertFloppyMsg,oReinsertMsgVolName PUBLIC oReinsertMsgUnitNum,SaveVideoBuf,RemovedF0VolName,RemovedF1VolName PUBLIC RemovedF0UserCount,RemovedF1UserCount,RemovedF0CreateDT PUBLIC RemovedF1CreateDT,RemovedF0ModifyDT,RemovedF1ModifyDT )FI )FI%' WS publics ; The following public's are used only for initialization PUBLIC rgExchReal, srgExchReal PUBLIC nRequestFileNames, rgRequestFileNames PUBLIC nOSProcDesc PUBLIC rgOSProcDesc PUBLIC nInitProcHardWare, rgInitProcHardWare PUBLIC nInitProcIntDisable, rgInitProcIntDisable PUBLIC nInitProcIntEnable, rgInitProcIntEnable PUBLIC nRgInitRtcRequest, rgInitRtcRequest PUBLIC gen, initSysDevNum PUBLIC sbConfigFileSpec, sbConfigFilePswd, configFilePrio, sbWsConfigFileSpec PUBLIC sbInitFileSpec, sbInitFilePassword, initFilePrio PUBLIC sbNlsFileSpec, sbNlsFilePassword PUBLIC sbInstallVdmSpec, sbInstallVdmPswd PUBLIC sbInstallKbdSpec, sbInstallKbdPswd PUBLIC sbInstallMathSpec, sbInstallMathPswd PUBLIC Config, wsType, osType, nPcb, nExchg, nMsgWait PUBLIC nMsgWaitReserve, nPTiming, nIob, nFcb, nVhb, nUcb, nFub, orgPcb PUBLIC saSemiLowest, saSemiHighest, saTempLowest, saTempHighest, saEndMemory PUBLIC hardwareType, clusterConfig, fNoFileSystem, fCommIop, fMulpar %IF(%fMFHardware)THEN( PUBLIC fMasterFP, nChgUserNumRq PUBLIC fCheckMem, fCheckEcc PUBLIC nXbuf,sXBMax, sXBData, nXBlock, nXBlockSmall, sSmallXBlock PUBLIC nSectorPerXBlock, XBlockHeaderSize Public pbInitFileName, cbInitFileName %If (%fCP) Then ( Public nT0QBlk, nRepollActive, nPTTotal Public nsPtW0, nsPtW1, nsPtW2, nsPtW3, nsPtW4, nsPtW5, sPtHdr, sTpInHdr Public rgTpInBuffers, rgTpOutBuffers, sTpOutHdr Public nsTpInBuf, nsTpOutBuf ) FI %If (%fTP) Then ( Public sTpInHdr, sTpOutHdr Public rgTpInBuffers, rgTpOutBuffers Public nsTpInBuf, nsTpOutBuf ) Fi %If ((%fFP) OR (%fDP)) Then ( Public nRgMassioDisp, rgMassioDisp ) FI )ELSE(%' Workstations PUBLIC bGraphicsPort PUBLIC fSFNM )FI ; System configuration block ; The following variables must be in order: EVEN Config LABEL WORD wsType DB %wsType osType DB 0 saSemiLowest DW 0 saSemiHighest DW 0 saTempLowest DW 0 saTempHighest DW 0 saEndMemory DW 0 nPcb DW %nPcb nExchg DW ? nMsgWait DW %nMsgWait nMsgWaitReserve DW %nMsgWaitReserve nPTiming DW %nPTiming nIob DW %nIob nFcb DW %nFub nVhb DW %nVhb nUcb DW %nUcb nFub DW %nFub hardwareType DB %hardwareType clusterConfig DB %clusterConfig fNoFileSystem DB %fNoFileSystem fCommIop DB %fCommIop fMulpar DB %IF(%fVarPar) THEN (3) ELSE (%IF(%fMulpar) THEN (0FFh) ELSE (0)FI)FI %IF(%fMFHardware) THEN ( fMasterFP DB 0 bMasterFpCpuId Db ? bMySlot Db ? bMasterCpCpuId Db ? nParDesc DW %nPartitions ; End of system configuration block Even rgLocalUserNum Dw 0FFFFh Dw 0 Dw %Eval(%nUcb+%nRemoteUser) Dup (0FFFFh) nUserNum Dw 3 ; %nRemoteUser is the number of remote user occupying a slot in rglocalusernum ; table when fetchlocalusernum. ntotaluser Dw %nUcb + %nRemoteUser oRgOUcb DW DGROUP:rgOUcb oRgOExUcb DW 0 oRgPcb -  sarCurrent DW 0 userNumVdm DW 0 VerifyCode DW ? %IF (%fMFHardware) THEN ( maskVerifyCode DW 06000h maskFPIndex DW 01C00h ) ELSE( maskVerifyCode DW 7000h maskFPIndex DW 0 )FI sUcb EQU 95 rgUcb DB %nUcb*sUcb DUP(0) EVEN wOSVersion DW %OSVersion nOsProcDesc DW 0 rgOUcb DW %nUcb DUP(0) ; NetServerData: These variables are in a structure known by the CtNetServer. ; The NetServer calls InitNetServer (an OS common subroutine) to get a pointer ; to this structure ; ****NOTE **** This structure is known to CtNet and the Mouse and possible ; other system services. Don't insert data in the middle!!! NetServerData LABEL WORD pRgWsAbortRq DD 0 nWsAbortRq DW 0 pRgChgUserNumRq DD 0 nChgUserNumRq DW 0 pRgTerminationRq DD 0 nTerminationRq DW 0 userNumLast DW  %nUserNum+%nNetUsers-1 userNumClstrLast DW %nUserNum-1 nNetUsers DW %nNetUsers pRgSwappingRq DD 0 nSwappingRq DW 0 exchNetServer DW 0 cbNodeName DB 0 nodeName DB 12 DUP(0) EXTRN rgPrgNetRouting: FAR EXTRN rgRcMax: FAR pRgPrgNetRouting DD DGroup:rgPrgNetRouting pRgRcMax DD DGroup:rgRcMax pBitmapExchsSave DD DGroup:bitmapExchsSave; userExchFirst DW ? EXTRN SysTime:WORD pSysTime DD DGroup:sysTime EXTRN BootBlock:WORD pBootBlock DD DGroup:BootBlock pRgOUcb DD DGroup:rgOUcb pRgOExUcb DD 0 ;Set by InitFile ;EXTRN rgCommRawVector: WORD obseleteUnused DD 0 ; was: pRgCommRawVector DD DGroup:rgCommRawVector %IF(%fMFHardware) THEN ( pDmaBuf DD 0 pAckOutBuf DD 0 pAckInBuf DD 0 DW 0FFFFH DW 0 ) ELSE (%' Workstation pDmaBuf DD dmaBuf pAckOutBuf DD ackOutBuf pAckInBuf DD ackInBuf EXTRN mouseData: WORD pMouseData DD DGroup:mouseData )FI%' EXTRN rgPrgLocalServiceCode: WORD prgPrgLocalServiceCode DD DGroup:rgPrgLocalServiceCode ; End of NetServerData ; ; The following are configuration variables set from the configuration file. ; Even though they are not used by all OS configurations, they must be ; present so that InitConfig will work. xBusWindowSize DW 0 ; = 0, 96H, 224H, or 480H fHighSpeed DB 0 ; End of Configuration variables %IF (%fTP OR %fCP OR (NOT %fMFHardware AND (%wsType NE aws210))) THEN ( fSysChannelA DW 0 PUBLIC rgCommLine rgCommLine DD 9 DUP(0) DW 4 DUP(0) userNumChannelA DW 0FFFFh DW 0000h DD 9 DUP(0) DW 4 DUP(0) userNumChannelB DW 0FFFFh DW 0001h %IF (%fTp) THEN( DD 9 DUP(0) DW 4 DUP(0) userNumChannelC DW 0FFFFh DW 0002h DD 9 DUP(0) DW 4 DUP(0) userNumChannelD DW 0FFFFh DW 0003h )FI)FI%' %IF (%fCp) THEN( userNumChannelC LABEL WORD userNumChannelD LABEL WORD )FI %IF (%fTP OR %fCP) THEN ( pbExtCntlComReg DD bExtCntlComReg bExtCntlComReg DB (0) )FI ; The EventControlBlock is a structure that is used mostly for mail. A ; pointer is returned by GetPStructure. eventControlBlock DW 32 ; The first word contains the length in bytes. DB 32 DUP(0) fF0IllegallyRemoved DB 0 fF1IllegallyRemoved DB 0 nTicks DB %IF(%fMFHardware) THEN (10) ELSE(%IF (%lineHZ EQ 60) THEN (6) ELSE (%IF (%fNGenHardware) THEN (4) ELSE (5) FI) FI) FI cFramesMax DB %nFrames extCntlRegAws DB 0 %IF ((%sKbdBuffer LT 16) OR (%sKbdBuffer GT 1024)) THEN(%Error(sKbdBuffer out of range) %SET(sKbdBuffer,128))FI %IF (((%sKbdBuffer-1) AND %sKbdBuffer) NE 0) THEN(%Error(sKbdBuffer not a power of 2) %SET(sKbdBuffer,128))FI %SET(nBytesUsrExch, %EVAL((%nUsrExchange+7)/8)) bitmapExchs DB %nBytesUsrExch DUP (0) bitmapExchsSave DB %nBytesUsrExch DUP (0) EVEN contingencyLog DW %sContingencyLog DUP (0) nBytExchs DW %nBytesUsrExch mBufOut DW %sKbdBuffer-1 sBufOut DW %sKbdBuffer nRawInt DW 0 nMediatedInt DW 0 sExec DW %sParExitRunFile wVerBuff LABEL WORD %IF (%fVerifyFileStruct) THEN ( DW 256 DUP (0) fFsVerify DW 0FFFh )ELSE ( fFsVerify DW 0 )FI fAwsPIT DB %fAwsPIT %IF(%fAwsPIT)THEN( RtcTpb DW 16 DUP (?) )ELSE( RtcTpb LABEL WORD )FI clusterTimeout DW %clusterTimeout pXlatTable DD 0 wXlatTableChksum DW 0 pUserXlatTable DD 0 nSwapFabs DW %nSwapFabs fLfsToMaster DB 0 %IF(%fVarPar)THEN(%'leave space for AllocSysExch to fill exchSched DW ? exchSched-  _Ones EQ 10) THEN (%SET(m_Ones,0)%SET(m_Tens,%m_Tens+1))FI%' ) %IF (%fVarPar) THEN ( rgAsib LABEL WORD DB sAsib*%nAsib DUP(0) AsibShared LABEL WORD DB sAsibShared DUP(0) rgArib LABEL WORD DB sArib*%nArib DUP(0) rgTib LABEL WORD DB sTib*%nTib DUP(0) cbAsib DW sAsib )FI ) ELSE ( ;********************************************* ; Variables used only for Single-Partition OS ;********************************************* PUBLIC Ovly15, rgpVidMemLine PUBLIC rgBBufOut PUBLIC prgPcb, cPcb, cUcb prgPcb LABEL WORD rgUserReadCount LABEL WORD rgUserWaitCount LABEL WORD cPcb LABEL WORD cUcb LABEL WORD EVEN %IF (%wsType LT aws210) THEN ( rgpVidMemLine DD 34 DUP (?) )ELSE ( rgpVidMemLine DD 29 DUP (?) )FI rgbBufOut DB %sKbdBuffer DUP (0) ;Define Ovly15 so that we can use the same version of FsRes for Mp. Ovly15 LABEL DWORD ) FI ;**************************************************************** ; If the CTOS becomes too big to load the font, one can ; reserve 8704 bytes at low memory which will be used by ; LoadFontPocket DW ? )ELSE( exchSched LABEL WORD exchSchedPocket LABEL WORD )FI ; Boot chain-sequence variables - pRgSdInit DD ? nSdInit DW 0 fInitExit DB 0FFh ;**************************************************************************** ; Parameters for all cluster workstations ;**************************************************************************** %IF (%clusterConfig EQ 1) THEN ( ; This is the number of times to retry sending XID to the master before we decide it must be an old master. It takes longer for a workstation to come up if this number if large. It should be around 10 for an NGen workstation on a cluster of 40 workstations. PUBLIC nTryNewMaster nTryNewMaster DB %nTryNewMaster )FI %IF (NOT (%clusterConfig EQ 1)) THEN ( PUBLIC nTryNewMaster nTryNewMaster DB 0 )FI ;**************************************************************************** ; Parameters for all masters ;**************************************************************************** ; EVEN %IF ((%wsType EQ iwsMiniMaster) OR (%wsType EQ iwsIopMaster) OR (%wsType EQ awsMaster) OR (%wsType EQ NGenmaster) OR (%fCP)) THEN ( %SET(nWsUserNum, %nUserNum-%nPartitions) %IF (%nWsUserNum EQ 0) THEN (%Define(nWsUserNum)(%WsTotal + 3))Fi wsUserNumLast DW %nWsUserNum-1 rgWsid DW %nWsUserNum DUP (0) rgWsLocalUserNum DW %nWsUserNum DUP (0) ) ELSE( wsUserNumLast LABEL WORD rgWsid LABEL WORD rgWsLocalUserNum LABEL WORD DW 0 ) FI ;**************************************************************************** ; Parameters for the multi-partition OS ;**************************************************************************** ; %IF (%fMulPar) THEN ( PUBLIC FsRqBuffer PUBLIC oExUcb PUBLIC saMaxPartition PUBLIC cbPriParName, rgPriParName, cbSysSvcParName, rgSysSvcParname PUBLIC timeSliceLb, timeSliceHb, fTimeSlice PUBLIC ContextState PUBLIC ContextStatus PUBLIC rgpVidMemLine PUBLIC rgcRq PUBLIC rgDeltaPriority PUBLIC rgwTwoDigit %IF (%fVarPar) THEN ( PUBLIC rgAsib PUBLIC AsibShared PUBLIC rgArib PUBLIC rgTib PUBLIC cbAsib PUBLIC sbSwapFileTryFirst PUBLIC sbSwapFileTryFirstPswd PUBLIC sbSwapFileTryEach PUBLIC sbSwapFileTryEachPswd PUBLIC ibSwapFileNumber PUBLIC swapFileSize )FI EVEN oExUcb DW 0 saMaxPartition DW 0 FsRqBuffer DB 30 DUP(0) timeSliceLb DB %lbTimeSlicePriority timeSliceHb DB %hbTimeSlicePriority fTimeSlice DB %fTimeSliceEnable ContextStatus DB %nPartitions DUP(0) rgcRq DB %nPartitions DUP(0) ; Just after ContextStatus ContextState DB %nPartitions DUP(0) ; Just after rgcRq rgDeltaPriority DB %nPartitions DUP (0) rgUserReadCount DB %nPartitions DUP (0) rgUserWaitCount DB %nPartitions DUP (0) rgpVidMemLine LABEL DWORD %' Used as global in Sp, by partition in Mp. ;rgWakeUpRq- ; Request codes which cause the scheduler to try to swap in when ; responded to with ercSwapping cWakeUpRq DW 2 rgWakeUpRq LABEL WORD DW 0, 0 rgwTwoDigit LABEL WORD %SET(m_Ones,0)%' %SET(m_Tens,0)%' %Repeat(%nUcb+1)(%' Generates "00" to "nUcb" %' 2-char string with tens in low byte of word DB '%SUBSTR(%m_Tens,1,1)','%SUBSTR(%m_Ones,1,1)' %SET(m_Ones,%m_Ones+1)%' %IF(%m. Ram operations. To reserve this font buffer, one ; should set FontRamBuf to 0FFh before Init Macro in Sysgen.asm ;**************************************************************** %IF (%FontRamBuf NE 0) THEN ( EVEN Sysgen_LowMem SEGMENT PUBLIC 'LowMem' fontRamBuf DB 8704 DUP (0) Sysgen_LowMem ENDS ) FI ;**************************************************************** ; The following are the text portions of the messages put out ; by the CTOS Operating System ;**************************************************************** %IF(NOT %fMFHardware) THEN ( ; The following is the header of the crash message put out by the OS. ; The entire message looks like : ; CRASH STATUS (ERC 22.) 16H 5H 0H 0H 0H 0H 31C0H 22H cbRgCrashMsg DB 17 ; The size of the message string rgCrashMsg DB 'CRASH STATUS ',28h,'ERC' ; The following is the previous crash message put out by the OS when it is ; rebooted. The entire message looks like : ; LAST CRASH STATUS (ERC 22.) 16H 5H 0H 0H 0H 0H 31C0H 22H cbRgLastCrashMsg DB 22 ; length of the text string rgLastCrashMsg DB 'LAST CRASH STATUS ',28h,'ERC' ; The following is the message put out by the cluster workstation OS when it ; detects that the master workstation is down. The entire message looks like: ; CLUSTER NOT RUNNING, ERC = 6 cbRgClusterMsg DB 26 ; length of the text string rgClusterMsg DB 'CLUSTER NOT RUNNING, ERC =' ; The following is the message put out by the OS when the exit run file cannot ; be loaded. The entire message looks like: ; CANNOT LOAD EXIT RUN FILE, ERC = 203 cbRgExitFileError DB 32 ; length of the text string rgExitFileError DB 'CANNOT LOAD EXIT RUN FILE, ERC =' ; The following is the message put out by the OS when some hardware error is ; detected during its initialization. The entire message looks like: ; INITIALIZATION ERROR STATUS 8000H cbRgInitError DB 27 ; length of the text string rgInitError DB 'INITIALIZATION ERROR STATUS' ; The following is the message written into the log file by the OS if ; the swap file cannot be accessed. The maximum length for this message ; is 72 bytes. cbCannotOpenSwapFile DB 38 rgCannotOpenSwapFile DB 'The swap file cannot be opened, erc = ' )FI%' MF %IF (%fMulpar) THEN ( ; The following is the name given to the primary partition of a multi- ; partitioned OS. cbPriParName DB 7 ; length of the text string rgPriParName DB 'Primary' ; The following is the name given to a partition in which a system ; service resides. cbSysSvcParName DB 12 ; length of the text string rgSysSvcParName DB 'SysService00' ) FI EVEN ;**************************************************************************** ; Variables common to all IWS Operating Systems ;**************************************************************************** %IF (%wsType LT aws210) THEN ( PUBLIC mask8259A, cascade8259, rgSysCommInt, nSysCommInt PUBLIC fSysChannelB, fSubsysChannelA, fSubsysChannelB, pFontRamBuf %IF (%FontRamBuf NE 0) THEN ( pFontRamBuf DD FontRambuf ) ELSE ( pFontRamBuf DD 0 )FI cbitsSmdOrHdc DW 0 bSmdOrHdcMask DB 0 PUBLIC cbitsSmdOrHdc, bSmdOrHdcMask )FI EVEN ;**************************************************************************** ; Variables for IWS StandAlone ;**************************************************************************** %IF (%wsType EQ iwsStandAlone ) THEN ( PUBLIC nRgMassioDisp, rgMassioDisp PUBLIC nIOPs, IopAdrs,rgIopChan,rqDelayDisc PUBLIC nDct ;Dummy labels fGoingDown LABEL WORD rqDelayDisc LABEL WORD IopAdrs LABEL WORD rgIopChan LABEL WORD ackOutBuf LABEL WORD ackInBuf LABEL WORD dmaBuf LABEL WORD rgsbWsUserName DB 31 DUP (0) mask8259A DB 67h EVEN nDct DW 0 %IF (%fMulPar NE 0) THEN ( PUBLIC rgbRunsTemp, rgbRuns, rgbRunsVirgin, rgfLineDirty rgbRunsTemp LABEL WORD rgbRuns LABEL WORD rgbRunsVirgin LABEL WORD rgfLineDirty LABEL WORD )FI )FI EVEN ;**************************************************************************** ; Variables for IWS Cluster ;**************************************************************************** %IF (%wsType EQ iwsCluster ) THEN ( PUBLIC nXBlock, nS.   EQ iwsIopMaster ) THEN ( PUBLIC nXBuf,sXbMax,nXBufSmall,sXBMaxSmall,nDct,sioClock PUBLIC nRgMassioDisp, rgMassioDisp PUBLIC iopIntLevel, sXBMax,rgDct,sioClock,rgIopChan PUBLIC qFreeXblks,nIOPs,IopAdrs, iDct,iopBuff,fIopDump,nIopQSize PUBLIC pFontRamBuf  PUBLIC nXBufSmall, sXBMaxSmall, nRcb PUBLIC qFreeXblksSmall ;Dummy labels ackOutBuf LABEL WORD ackInBuf LABEL WORD dmaBuf LABEL WORD mask8259A DB 63h rgIopChan DB %nWsLine1,%nWsLine2,%nWsLine3,%nWsLine4 IopAdrs DB 40h, 41h, 50h, 51h rgsbWsUserName DB %EVAL(31*%wsTotal+31) DUP (0) sioClock DB %sioClock fIopDump DB %fIopDump EVEN aSBuffer EQU 74+(512*%nSectorPerXBlock) sXBuf EQU %nXBlock*(aSBuffer+32) %SET (nIopQSize,%nXBlock+%wsTotal) EVEN iopIntLevel DW %IopIntLevel nIopQSize DW %nIopQSize saPerXbuf EQU (aSBuffer+15)/16 saPerSmallRq EQU (%sMaxSmallRq+12+15)/16 qFreeXblks DB (%nXBlock+2)*4+8 dup (0) qFreeXblksSmall DB (%nXBlockSmall+2)*4+8 dup (0) iopBuff DB 5*%nIop*(%nIopQSize*4+8)+4 dup (0) EVEN iDct DW %wsTotal dup (0) nDct DW %wsTotal nIops DectorPerXBlock, sioClock, nDct PUBLIC sRcb,cRcbMax PUBLIC nIOPs, IopAdrs,rgIopChan,rqDelayDisc PUBLIC FilterProcessExch FilterProcessExch DW 17 ; Dummy labels fGoingDown LABEL WORD rqDelayDisc LABEL WORD IopAdrs LABEL WORD rgIopChan LABEL WORD rgsbWsUserName LABEL BYTE %IF (%localFS EQ 0) THEN ( PUBLIC orgOFdc, oFdc, cFdc orgOFdc LABEL WORD oFdc LABEL WORD cFdc LABEL WORD ) ELSE( PUBLIC nRgMassioDisp, rgMassioDisp ) FI mask8259A DB 65h sioClock DB %sioClock EVEN cRcbMax DW %nRcb sRcb DW sRcbIws nSectorPerXBlock DW %nSectorPerXBlock nXBlock DW %nXBlock nDct DW 0 saPerXBlock EQU (xBlockHeaderSize+xBlockRqSize+(512*%nSectorPerXBlock)+15)/16 xBlockSize EQU saPerXBlock*16 lowmem SEGMENT PUBLIC 'lowmem' ; Dma buffer and ackIn and ackOut buffers must be in first 64K for IWS ; For IWS cluster, we allocate one dmaBuf for each XBlock. dmaBuf DW xBlockSize*%nXBlock dup(0) ;dmaBuf is a word buffer for IWS ackInBuf DW 16 DUP (0) ;ackInBuf will be set to segment boundary by init ackOutBuf DW 16 DUP (0)  ;ackOutBuf will be set to segment boundary by init DW 16 DUP (0) ;leave room for segment boundary alignment lowmem ENDS %IF (%fMulPar NE 0) THEN ( EVEN PUBLIC rgbRunsTemp, rgbRuns, rgbRunsVirgin, rgfLineDirty rgbRunsTemp LABEL WORD rgbRuns LABEL WORD rgbRunsVirgin LABEL WORD rgfLineDirty LABEL WORD )FI )FI EVEN ;**************************************************************************** ; Variables for IWS MiniMaster ;**************************************************************************** %IF (%wsType EQ iwsMiniMaster ) THEN ( PUBLIC nRgMassioDisp, rgMassioDisp PUBLIC nXBlock,nDct,sioClock PUBLIC nXBlockSmall, sSmallXBlock, nSectorPerXBlock PUBLIC nIOPs,IopAdrs,rgIopChan PUBLIC mbIOPort,pFontRamBuf ;Dummy labels IopAdrs LABEL WORD rgIopChan LABEL WORD mask8259A DB 65h rgsbWsUserName DB %EVAL(31*%wsTotal+31) DUP (0) sioClock DB %sioClock EVEN nSectorPerXBlock DW %nSectorPerXBlock sSmallXBlock DW %sMaxSmallRq nXBlock DW %nXBlock nXBlockSmall DW %nXBlockSmall nDct DW %wsTotal saPerXBlock EQU (xBlockHeaderSize+xBlockRqSize+(512*%nSectorPerXBlock)+15)/16 xBlockSize EQU saPerXBlock*16 lowmem SEGMENT PUBLIC 'lowmem' ; Dma buffer and ackIn and ackOut buffers must be in first 64K for IWS ; For IWS mini master, we have one dmaBuf in addition to XBlocks. ; XBlocks are allocated in high memory. dmaBuf DW xBlockSize dup(0) ;dmaBuf is a word buffer for IWS ackInBuf DW 16 DUP (0) ;ackInBuf will be set to segment boundary by init ackOutBuf DW 16 DUP (0) ;ackOutBuf will be set to segment boundary by init DW 16 DUP (0) ;leave room for segment boundary alignment lowmem ENDS fGoingDown DB 0 %IF (%fMulPar NE 0) THEN ( EVEN PUBLIC rgbRunsTemp, rgbRuns, rgbRunsVirgin, rgfLineDirty rgbRunsTemp LABEL WORD rgbRuns LABEL WORD rgbRunsVirgin LABEL WORD rgfLineDirty LABEL WORD )FI )FI EVEN ;**************************************************************************** ; Variables for IWS IOP Master ;**************************************************************************** %IF (%wsType/ W %nIop nXBuf DW %nXBlock sXBMax DW aSBuffer nRcb DW %nXBlock+%nXBlockSmall nXBufSmall DW %nXBlockSmall sXBMaxSmall DW saPerSmallRq*16 rgDct DB %wsTotal*64 dup(0) fGoingDown DB 0 %IF (%fMulPar NE 0) THEN ( EVEN PUBLIC rgbRunsTemp, rgbRuns, rgbRunsVirgin, rgfLineDirty rgbRunsTemp LABEL WORD rgbRuns LABEL WORD rgbRunsVirgin LABEL WORD rgfLineDirty LABEL WORD )FI ) ELSE ( nIops DW 0 )FI EVEN ;**************************************************************************** ; Variables for AWS-210 ;**************************************************************************** %IF (%wsType EQ aws210) THEN ( PUBLIC rgFLineDirty, rgbRuns, rgbRunsTemp EVEN rgFLineDirty DB 28 DUP(0) rgbRuns DB 896 DUP(0) rgbRunsTemp DB 36 DUP(0) PUBLIC nXBlock, nSectorPerXBlock, sioClock, nDct PUBLIC sRcb,cRcbMax PUBLIC nIops,IopAdrs,rqDelayDisc PUBLIC FilterProcessExch FilterProcessExch DW 17 ;Dummy labels fGoingDown LABEL WORD rqDelayDisc LABEL WORD IopAdrs LABEL WORD rgsbWsUserName LABEL BYTE sioClock DB %sioClock EVEN cRcbMax DW %nRcb sRcb DW sRcbAws nSectorPerXBlock DW %nSectorPerXBlock nXBlock DW %nXBlock nDct DW 0 saPerXBlock EQU (xBlockHeaderSize+xBlockRqSize+(512*%nSectorPerXBlock)+15)/16 xBlockSize EQU saPerXBlock*16 Sysgen_LowMem SEGMENT PUBLIC 'LowMem' ; Dma buffer and ackIn and ackOut buffers must be in first 3FFF bytes for AWS ; For AWS cluster, we allocate one dmaBuf for each XBlock. ; Dma is directly to and from the XBlocks. dmaBuf DB xBlockSize*%nXBlock dup(0) ;dmaBuf is a byte buffer for AWS ackInBuf DB 16 DUP (0) ;ackInBuf will be set to segment boundary by init ackOutBuf DB 16 DUP (0) ;ackOutBuf will be set to segment boundary by init DB 16 DUP (0) ;leave room for segment boundary alignment Sysgen_LowMem ENDS ) FI EVEN ;**************************************************************************** ; Variables common to AWS-220, AWS-230, AWS-240 ;**************************************************************************** %IF (%wsType EQ aws220_240) THEN ( PUBLIC rgFLineDirty, rgbRuns, rgbRunsTemp EVEN rgFLineDirty DB 28 DUP(0) rgbRuns DB 896 DUP(0) rgbRunsTemp DB 36 DUP(0) PUBLIC nRgMassioDisp, rgMassioDisp PUBLIC mask8259A, cascade8259, rgSysCommInt, nSysCommInt PUBLIC rgIopChan,ioBuf,rqDelayDisc,nDct PUBLIC nIops,IopAdrs ;Dummy labels fGoingDown LABEL WORD rqDelayDisc LABEL WORD IopAdrs LABEL WORD rgIopChan LABEL WORD Sysgen_LowMem SEGMENT PUBLIC 'LowMem' ;NOTE: iobuf should be 256 bytes, but standalone won't boot. ; It seems to work fine at 512. ; NOTE; iobuf must appear before the dma buffers, or the cluster code will not work. The reason is a mystery to me. iobuf DB 512 DUP (0) %IF (%localFS NE 0) THEN ( ; Dma buffer and ackIn and ackOut buffers must be in first 64K for AWS ; For AWS cluster, we allocate one dmaBuf for each XBlock. ; Dma is directly to and from the XBlocks. saPerXBlock EQU (xBlockHeaderSize+xBlockRqSize+(512*%nSectorPerXBlock)+15)/16 xBlockSize EQU saPerXBlock*16 dmaBuf DB xBlockSize*%nXBlock dup(0) ;dmaBuf is a byte buffer for AWS ackInBuf DB 16 DUP (0)  ;ackInBuf will be set to segment boundary by init ackOutBuf DB 16 DUP (0) ;ackOutBuf will be set to segment boundary by init DB 16 DUP (0) ;leave room for segment boundary alignment ) ELSE ( dmaBuf LABEL WORD ackOutBuf LABEL WORD ackInBuf LABEL WORD ) FI Sysgen_LowMem ENDS %IF (%localFS EQ 0) THEN ( PUBLIC fCommEnabled fCommEnabled DB 0 ) FI mask8259A DB 0BDh EVEN nDct DW 0 %IF (%localFS EQ 0) THEN ( rgsbWsUserName DB 31 DUP (0) ) ELSE ( PUBLIC nXBlock, nSectorPerXBlock PUBLIC sioClock,sRcb,cRcbMax sioClock DB %sioClock EVEN cRcbMax DW %nRcb sRcb DW sRcbAws nSectorPerXBlock DW %nSectorPerXBlock nXBlock DW %nXBlock rgsbWsUserName LABEL BYTE EVEN PUBLIC FilterProcessExch FilterProcessExch DW 17 )FI ) FI EVEN ;**************************************************************************** ; Variables common to AWS Master ;**************************************************************************** %IF (%wsType EQ awsMaster) THEN ( PUBLIC rgFLineDirty, rgbRuns, rgbRunsTemp EVEN rgFLineDirty DB/  H' ; 66 to 73 DB 80H,'>', 80H,' ', 80H,'t' ; 73 to 80 DB 80H,'o', 80H,' ', 80H,'e' ; 89 to 87 DB 80H,'x', 80H,'i', 80H,'t' ; 95 to DB 80H,' ', 80H,' ', 80H,' ' ; 90 to 95 DB 0F3H, 0F3H cbReinsertFloppyMsg DB 194 oReinsertMsgVolName DB 96+21 oReinsertMsgUnitNum DB 96+43 SaveVideoBuf DB 192 DUP (0) )FI RemovedF0VolName DB 13 DUP (0) RemovedF1VolName DB 13 DUP (0) RemovedF0UserCount DW 0 RemovedF1UserCount DW 0 RemovedF0CreateDT DD 0 RemovedF1CreateDT DD 0 RemovedF0ModifyDT DD 0 RemovedF1ModifyDT DD 0 )FI ;**************************************************************************** ; Variables common to all NGen ;**************************************************************************** %IF ((%wsType GE ngenCluster) AND NOT %fMFHardware) THEN ( %IF (%wsType GE ngen) THEN ( PUBLIC nRgMassioDisp, rgMassioDisp PUBLIC mask8259A, cascade8259A, rgSysCommInt, nSysCommInt mask8259A DB 07h cascade8259A DB 0F6h )FI ; The following is the name of the run file which is chained to by all NGe 28 DUP(0) rgbRuns DB 896 DUP(0) rgbRunsTemp DB 36 DUP(0) PUBLIC nRgMassioDisp, rgMassioDisp PUBLIC mask8259A, cascade8259, rgSysCommInt, nSysCommInt PUBLIC nXBlock,nDct,sioClock PUBLIC nXBlockSmall, sSmallXBlock, nSectorPerXBlock PUBLIC nIops,IopAdrs,rgIopChan PUBLIC ioBuf nSectorPerXBlock DW %nSectorPerXBlock sSmallXBlock DW %sMaxSmallRq nXBlock DW %nXBlock nXBlockSmall DW %nXBlockSmall nDct DW %wsTotal saPerXBlock EQU (xBlockHeaderSize+xBlockRqSize+(512*%nSectorPerXBlock)+15)/16 xBlockSize EQU saPerXBlock*16 sXBuf EQU %nXBlock*xBlockSize saPerSmallRq EQU (%sMaxSmallRq+xBlockHeaderSize+15)/16 sXBufSmall EQU saPerSmallRq * %nXBlockSmall*16 Sysgen_LowMem SEGMENT PUBLIC 'LowMem' ; NOTE: iobuf must appear before the DMA buffers or the cluster code will not work. The reason for this is a mystery to me. iobuf DB 256 DUP (0) ; Dma buffer and ackIn and ackOut buffers must be in first 64K bytes for AWS ; For AWS master, we allocate one dmaBuf for each XBlock -- big and small. ; Dma is directly to and from the XBlocks. dmaBuf DB (sXBuf+sXBufSmall) dup(0) ;dmaBuf is a byte buffer for AWS ackInBuf DB 16 DUP (0) ;ackInBuf will be set to segment boundary by init ackOutBuf DB 16 DUP (0) ;ackOutBuf will be set to segment boundary by init DB 16 DUP (0) ;leave room for segment boundary alignment Sysgen_LowMem ENDS ;Dummy labels IopAdrs LABEL WORD rgIopChan LABEL WORD rgsbWsUserName DB %EVAL(31*%wsTotal+31) DUP (0) mask8259A DB 09Dh sioClock DB %sioClock fGoingDown DB 0 ) FI EVEN %IF (%fFloppyCheck) THEN ( ; The following will be used for NGen, if we like to add ; a 'Floppy Door Open Checking' feature. ; The following is the message put out by the OS when a floppy ; on which files are open is removed from the drive. %IF (%fNGenHardware) THEN ( ReinsertFloppyMsg LABEL BYTE DB 80 DUP (0CEh) ; 0 to 79 DB ' Re-insert volume ' ; 80 to 99 DB 12 DUP (0) ; 100 to 111 DB ' in drive ' ; 112 to 121 DB '0' ; 122 DB ' or press to exit ' ; 123 to 159 cbReinsertFloppyMsg DB 160 oReinsertMsgVolName DB 100 oReinsertMsgUnitNum DB 122 SaveVideoBuf DW 160 DUP (0) )FI %IF (%fIwsHardware) THEN (; IWS ReinsertFloppyMsg LABEL BYTE DB 132 DUP (0CEh) ; DB ' Re-insert volume ' ; 0 to 19 DB 12 DUP (0) ; 20 to 31 DB ' in drive ' ; 32 to 41 DB '0' ; 42 DB ' or press to exit ' ; 43 to 79 DB 52 DUP (0) ; 80 to 131 cbReinsertFloppyMsg DB 264 oReinsertMsgVolName DB 132+20 oReinsertMsgUnitNum DB 132+42 SaveVideoBuf DW 200 DUP (0) )FI %IF (%fAwsHardware) THEN (; AWS ReinsertFloppyMsg LABEL BYTE DB 84H, 65 DUP (4Eh), 15 DUP (84h, 4Eh) DB 80H ; 0 DB ' Re-insert volume ' ; 1 to 20 (+20 = 20 chars) DB 12 DUP (0) ; 21 to 32 (+12 = 32 chars) DB ' in drive ' ; 33 to 42 (+10 = 42 chars) DB '0' ; 43 ( +1 = 43 chars) DB ' or press checkconfig.run' ; The following is the password for the run file which is chained to by all ; NGen OSs before SysInit in order to check the XBus configuration cbRgCheckConfigPswd DB 0 ; The size of the message string rgCheckConfigPswd DB 0 ) ELSE ( cbRgCheckConfig LABEL BYTE rgCheckConfig LABEL BYTE cbRgCheckConfigPswd LABEL BYTE rgCheckConfigPswd LABEL BYTE )FI EVEN ;**************************************************************************** ; Variables common to NgenCluster ;**************************************************************************** %IF (%wsType EQ ngenCluster) THEN ( PUBLIC nXBlock, nSectorPerXBlock PUBLIC sioClock,sRcb,cRcbMax PUBLIC nIops,rqDelayDisc PUBLIC mask8259A, cascade8259A, nDct ;Dummy labels rgsbWsUserName LABEL BYTE rgIopChan LABEL WORD fGoingDown LABEL WORD rqDelayDisc LABEL WORD mask8259A DB 0Fh cascade8259A DB 0F6h sioClock DB %sioClock EVEN nDct DW 0 PUBLIC FilterProcessExch FilterProcessExch DW 17 nSectorPerXBlock DW %nSectorPerXBlock nXBlock DW %nXBlock cRcbMax DW %nRcb sRcb DW sRcbAws %IF (%fMulPar) THEN ( PUBLIC rgbRunsTemp, rgbRuns, rgbRunsVirgin, rgfLineDirty rgbRunsTemp LABEL WORD rgbRuns LABEL WORD rgbRunsVirgin LABEL WORD rgfLineDirty LABEL WORD )FI Sysgen_LowMem SEGMENT PUBLIC 'LowMem' ; XBlocks are allocated in low memory. If we allocate them dynamically in high memory we get in trouble with machines with graphics modules that allocate XBus memory. saPerXBlock EQU (xBlockHeaderSize+xBlockRqSize+(512*%nSectorPerXBlock)+15)/16 xBlockSize EQU saPerXBlock*16 dmaBuf DB xBlockSize*%nXBlock dup(0) ;dmaBuf is a byte buffer ackInBuf DB 16 DUP (0) ;ackInBuf will be set to segment boundary by init ackOutBuf DB 16 DUP (0) ;ackOutBuf will be set to segment boundary by init DB 16 DUP (0) ;leave room for segment boundary alignment Sysgen_LowMem ENDS ) FI EVEN ;**************************************************************************** ; Variables for Ngen ;**************************************************************************** %IF (%wsType EQ ngen) THEN ( PUBLIC rgIopChan,rqDelayDisc,nIops, nDct %IF (%localFS NE 0) THEN ( PUBLIC nXBlock, nSectorPerXBlock PUBLIC sioClock,cRcbMax PUBLIC sRcb, nIops,rqDelayDisc, dmaBuf )FI %IF (%clusterConfig EQ standAlone) THEN ( PUBLIC fSrpUp )FI lowmem SEGMENT PUBLIC 'lowmem' %IF (%fHdisks) THEN ( PUBLIC iobuf iobuf DB 512 DUP (0) ) FI lowmem ENDS ;Dummy labels fGoingDown LABEL WORD rqDelayDisc LABEL WORD rgIopChan LABEL WORD nDct DW 0 %IF (%clusterConfig EQ standAlone) THEN ( fSrpUp DB 0 )FI %IF (%localFS EQ 0) THEN ( rgsbWsUserName DB 31 DUP (0) ackOutBuf LABEL WORD ackInBuf LABEL WORD dmaBuf LABEL WORD ) ELSE ( rgsbWsUserName LABEL BYTE sioClock DB %sioClock EVEN PUBLIC FilterProcessExch FilterProcessExch DW 17 nSectorPerXBlock DW %nSectorPerXBlock nXBlock DW %nXBlock cRcbMax DW %nRcb sRcb DW sRcbAws Sysgen_LowMem SEGMENT PUBLIC 'LowMem' ; XBlocks are allocated in low memory. If we allocate them dynamically in high memory we get in trouble with machines with graphics modules that allocate XBus memory. saPerXBlock EQU (xBlockHeaderSize+xBlockRqSize+(512*%nSectorPerXBlock)+15)/16 xBlockSize EQU saPerXBlock*16 dmaBuf DB xBlockSize*%nXBlock dup(0) ;dmaBuf is a byte buffer ackInBuf DB 16 DUP (0) ;ackInBuf will be set to segment boundary by init ackOutBuf DB 16 DUP (0) ;ackOutBuf will be set to segment boundary by init DB 16 DUP (0)  ;leave room for segment boundary alignment Sysgen_LowMem ENDS )FI %IF (%fMulPar) THEN ( EVEN PUBLIC rgbRunsTemp, rgbRuns, rgbRunsVirgin, rgfLineDirty rgbRunsTemp LABEL WORD rgbRuns LABEL WORD rgbRunsVirgin LABEL WORD rgfLineDirty LABEL WORD )FI ) FI EVEN ;**************************************************************************** ; Variables for Ngen Master ;**************************************************************************** %IF (%wsType EQ ngenMaster) THEN ( PUBLIC fGraphicsBoard, rgIopC0  sysChannelA DW 0FFFFh fSubsysChannelB DW 0FFFFh fSubsysChannelC DW 0FFFFh fSubsysChannelD DW 0FFFFh rgsbWsUserName DB %EVAL(31*%wsTotal+31) DUP (0) aNLcb EQU %nLine nLcb DW aNLcb nDct DW %WsTotal nRepollActive DB %nRepollActive EVEN pRgRcb DD ? rgNoWsLine DB %nWsLine1,%nWsLine2 rgcTimeDelay DB 10,10 rgfSrpClock DB %fSrpClock1,%fSrpClock2 rgcMaxRqBlk DB 2,2 rgfLineEn DB 0h,0h nPTTotal DW 0 nT0QBlk DW %nYBlk + %nZBlk + 3 nsPtW0 dw %sPtW0Buf nsPtW1  dw %sPtW1Buf nsPtW2 dw %sPtW2Buf nsPtW3 dw %sPtW3Buf nsPtW4 dw %sPtW4Buf nsPtW5 dw %sPtW5Buf nsTpInBuf dw %sTpInBuf nsTpOutBuf dw %sTpOutBuf PtHdrs equ ((%XBlockHeaderSize+15)/16)*16 TpInHdrs equ 10 TpOutHdrs equ 30 sPtHdr dw PtHdrs sTpInHdr dw TpInHdrs sTpOutHdr dw TpOutHdrs ; ; PtHdrs (above) is the size of the T0fifostructure. ; 96 is 16 PTs * 6 windows/pt ; ; We Don't know what the extra 96 (below) is for. ; We presume it is for a control byte or something. ; This structure must begin on a parahan,nIOPs PUBLIC nXBlock,nDct,sioClock PUBLIC nXBlockSmall, sSmallXBlock, nSectorPerXBlock PUBLIC fSrpUp lowmem SEGMENT PUBLIC 'lowmem' %IF (%fHdisks) THEN ( PUBLIC iobuf iobuf DB 512 DUP (0) ) FI lowmem ENDS ;Dummy labels rgIopChan LABEL WORD dmaBuf LABEL WORD ;allocated in high memory by init code ackOutBuf LABEL WORD ;allocated in high memory by init code ackInBuf LABEL WORD ;allocated in high memory by init code fSrpUp DB 0 rgsbWsUserName DB %EVAL(31*%wsTotal+31) DUP (0) sioClock DB %sioClock fGoingDown DB 0 EVEN nDct DW %wsTotal nSectorPerXBlock DW %nSectorPerXBlock sSmallXBlock DW %sMaxSmallRq nXBlock DW %nXBlock nXBlockSmall DW %nXBlockSmall %IF (%fMulPar) THEN ( PUBLIC rgbRunsTemp, rgbRuns, rgbRunsVirgin, rgfLineDirty rgbRunsTemp LABEL WORD rgbRuns LABEL WORD rgbRunsVirgin LABEL WORD rgfLineDirty LABEL WORD )FI ) FI EVEN ;**************************************************************************** ; Variables for all Megaframe ;**************************************************************************** %IF (%fMFHardware) THEN ( public ntotaluser, fCheckRequestBlockConsistency Public rgSectMap,rgIopChan PUBLIC FilterProcessExch, exchFilterPocket const segment word public 'CONST' rgIopChan LABEL WORD rgbTypeTable DB 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh,40h,41h,0FFh rgbXpChar DB 'FTCSDRAA?' srgbTypeTable DW 9 const ENDS FilterProcessExch DW ? exchFilterPocket DW ? nRemoteDmaRequest Dw 0 fCheckRequestBlockConsistency DB 0 ; ; The following is used by MassIo for Sector Scheduling ; EVEN rgSectMap label byte %If (%fFP) Then ( DB 0,4,8,12,16,20,24,28 DB 1,5,9,13,17,21,25,29 DB 2,6,10,14,18,22,26,30 DB 3,7,11,15,19,23,27,31 )FI %If (%fDP) Then ( DB 0,8,16,24,32,40,48,56 DB 2,10,18,26,34,42,50,58 DB 4,12,20,28,36,44,52,60 DB 6,14,22,30,38,46,54,62 ) FI ; ; The following allocates the Queue used when no Iob's are available ; when running MassIo ; %If ((%fFP) OR (%fDP)) Then ( Public sIobQueue, nFreeIobQueue, rgpIobQList sIobQueue Dw %sMassIoRqQueue nFreeIobQueue Dw %sMassIoRqQueue rgpIobQList DD %sMassIoRqQueue Dup (0) ) FI ibBufOutTake DW 0 ibBufOutPut DW 0 fBufOutOverflow DW 0 rgbBufOut DB %sKbdBuffer DUP (0) maxRunsPerFile DW (%nFab/2)+1 %If (%fFP) Then ( Mask186 DW 0FFh-31h ) Else ( %If (%fTP) Then ( Mask186 DW 0FFh-20h ) Else ( %If (%fCP) Then ( Mask186 DW 0FFh-30h ) Else ( %If (%fDP) Then ( Mask186 DW 0FFh-31h ) Else ( Mask186 DW 0FFh-21h ) Fi) Fi) Fi) Fi bConsoleSlot DB -1 ; Slot of our console's TP bConsolePort DB 0 ; Port on that TP pConsoleObuf DD 0 ; Addr of output ring buffer Even fSrpUp DW 0 fGoingDown DB 0 nXBlock EQU THIS WORD ; make the same as nXBuf nXBuf DW %nXBLK nSectorPerXBlock DW %nSectorPerXBlock sXBMax DW %XBlockHeaderSize+(512*%nSectorPerXBlock) sXBData DW 512*%nSectorPerXBlock sSmallXBlock DW %sMaxSmallRq nXBlockSmall DW %nXBlockSmall XBlockHeaderSize DW %XBlockHeaderSize %If (%fCP) Then ( fSysChannelB DW 0FFFFh ; Realistic values later! fSysChannelC DW 0FFFFh fSysChannelD DW 0FFFFh fSub1 graph boundry for the linking to work ; ;t0data SEGMENT PUBLIC 'data' ; ;rgPTBuffers db 96*PTHdrs + 96 + 16*(%sPtW0Buf + %sPtW1Buf + %sPtW2Buf + %sPtW3Buf + %sPtW4Buf + %sPtW5Buf) dup(0) ;t0data ends rgTpInBuffers db 3*%sTpInBuf + 3*TpInHdrs dup(0) rgTpOutBuffers db 3*%sTpOutBuf + 3*TpOutHdrs + 3 dup(0) alignment Dw 6 Dup (0) overwritten Db 'CTOS' ) Else ( %If (%fTP) Then ( fSysChannelB DW 0FFFFh ; Realistic values later! fSysChannelC DW 0FFFFh fSysChannelD DW 0FFFFh fSubsysChannelA DW 0FFFFh fSubsysChannelB DW 0FFFFh fSubsysChannelC DW 0FFFFh fSubsysChannelD DW 0FFFFh EVEN nsTpInBuf dw %sTpInBuf nsTpOutBuf dw %sTpOutBuf TpInHdrs equ 10 TpOutHdrs equ 30 sTpInHdr dw TpInHdrs sTpOutHdr dw TpOutHdrs rgTpInBuffers db 10*%sTpInBuf + 10*TpInHdrs dup(0) rgTpOutBuffers db 10*%sTpOutBuf + 10*TpOutHdrs + 10 dup(0) alignment dw 20 dup (0) ; since qual alignment now overwritten db 'CTOS' rgsbWsUserName LABEL BYTE nDct DW 0 cDelayDisc LABEL WORD ) Else ( fSysChannelA DW 0 fSysChannelB DW 0 fSysChannelC DW 0 fSysChannelD DW 0 fSubsysChannelA DW 0 fSubsysChannelB DW 0 fSubsysChannelC DW 0 fSubsysChannelD DW 0 rgsbWsUserName LABEL BYTE cDelayDisc LABEL WORD nDct DW 0 ) Fi ) FI EVEN ; Icc 'Y' Block descriptive structures sYblkLocal Equ %XBlockHeaderSize+(512*%nSectorPerYblk) ; header was 74 sYblk DW sYblkLocal nYblk DW %nYblk pYblkListHead DD YblkArea pCdt DD Cdt ; Icc 'Z' Block descriptive structures sZblkLocal Equ %sZblk sZblk DW sZblkLocal nZblk DW %nZblk pZblkListHead DD ZblkArea maxAdapters dw %nAdapters Adt db (10*%nAdapters) dup (0) %if ((%fFP) OR (%fDP)) Then ( sMountTabEntry Equ 1+13+13 maxDevMounted Dw %nMountedDisks nDevMounted Dw 0 rgFpMasterMountTable Db (sMountTabEntry*%nMountedDisks) Dup (0) ) Fi nDummy Equ 5 ; padding of each area Even pStat DD Stat1 Stat1 Label Word DW %nWinch DW %nPcb DW %nSysExchange+%nUsrExchange nInitY DW %nYblk nMinY DW %nYblk nAvailY DW %nYblk nInitZ DW %nZblk nMinZ DW %nZblk nAvailZ DW %nZblk nInitIob DW %nIob nMinIOB DW %nIob nAvailIOB DW %nIob DW nDummy Dup (0) sStat DW $-Stat1 pDiskStat DD Stat2 Stat2 Label Word nLocRead DW 6 Dup (0) ; 6 is max possible # disks/processor nLocWrite DW 6 Dup (0) nLocSeeks DW 6 Dup (0) nRemRead DW 6 Dup (0) ; 6 is max possible # disks/processor nRemWrite DW 6 Dup (0) nRemSeeks DW 6 Dup (0) nIobUsed DW 6 Dup (0) DW nDummy Dup (0) sDiskStat DW $-Stat2 pProcStat DD Stat3 Stat3 Label Word nProcTick DW %nPcb DUP (0) DW nDummy Dup (0) sProcStat DW $-Stat3 pExchStat DD Stat4 Stat4 Label Word nExchIn DW (%nSysExchange+%nUsrExchange) DUP (0) DW nDummy Dup (0) sExchStat DW $-Stat4 pIccStat DD Stat5 Stat5 Label Word nIccIn DW 0 nIccOut DW 0 nIccSkip DW 0 nYblkCopy DW 0 nParaIn DW 0 nParaOut DW 0 DW nDummy Dup (0) sIccStat DW $-Stat5 CdtSeg Segment Public 'Cdt' ; define a Cdt, but with the offsets, etc. in 8086 format. ReqOffset Equ Offset ReqArea - Offset Cdt RespOffset Equ Offset RespArea - Offset Cdt StatOffset Equ Offset StatArea - Offset Cdt %If ((%fFP) OR (%fDP))Then ( TermOffset Equ Offset TermArea - Offset Cdt LineOffset Equ Offset LineArea - Offset Cdt RouteOffset Equ Offset RouteArea - Offset Cdt ) Else ( RouteOffset Equ 0 )Fi DW 0 ; slide CDT down 2 to fix AP problem with lock Cdt Label Byte %'filler$0 (8)' DB 8 Dup (?) %'bProcessorType' DB %HardWareType %'fWatchDog' DB 0 %'ibRequestTakePtr' DW ReqOffset %'ibRequestPutPtr' DW ReqOffset %'ibRequestStartPtr' DW ReqOffset %'ibRequestEndPtr' DW ReqOffset + 5*(%eval(%nReqEnts-1)) %'ibResponseTakePtr' DW RespOffset %'ibResponsePutPtr' DW RespOffset %'ibResponseStartPtr' DW RespOffset %'ibResponseEndPtr' DW RespOffset + 5*(%eval(%nRespEnts-1)) %'fLockByte' DB 0 %'bInitErrorStatus' DB 0 %'bMemorySize' DB ? %'bBootStruct$FF' DB 0FFh %'bBootStruct$0' DB 0 %'bBootStruct$A6' DB 0A6h %'bBootCommand' DB 0 %'bMasterFP' DB ? %'fOsInitialized' DB 0 %'fCdtIO' DB 0 %'oStatA1  x LT %type) THEN (%Set(m_typeMax,%type)) FI ) $EJECT ; ; This macro sets counters for resident tables, data, and then reserves the OsTable. The table size is dependent on ; other sysgen parameters, but for simplicity it is set to be 8192 bytes. ; %*DEFINE(ResidentDataBoundry(size))( sMediatedIntTable EQU %maxMedInterruptType sIntSwtbl DW sMediatedIntTable IntSwTbl DW 3*sMediatedIntTable DUP (0) rgOsTable DB %size DUP(0) EVEN endOsTable DW 0 ) $EJECT ; ; define Exchange map ; %*DEFINE (MapExchange(veIndex, name, exch))(%' %IF (%m_nVirtualExch EQ 0) THEN(rgExchReal label byte )FI %SET (m_nVirtualExch, %m_nVirtualExch + 1) %IF (%eval(0-%veIndex) NE %m_nVirtualExch) THEN(%' %Error(Virtual Exchange out of sequence: %veIndex)) ELSE(%' %' %MATCH(exch2 m_RHS)(%exch)%' Take leading space off exch, put in exch2 %WHILE(%LEN(%exch2) EQ 0)(%MATCH(exch2 m_RHS)(%m_RHS))%' Maybe >1 space %' %IF (%LES(%substr(%exch2,1,1),9) AND %GES(%exch2,0))THEN(%'constant m_val%name EQU %exch2 %IF (%fMFHardware) THEN ( DW %exch2 ) ELSE rea' DW StatOffset %'sStatArea' DW %sStatArea %'rgbFPXlate' DB 8 Dup (?) %'rgbBusConfigTable' DB 240 Dup (?) %'nUserNumber' DW ? %'bTTiStatus' Db ? %'bTTiData' Db ? %'bTToStatus' Db ? %'bTToData' Db ? %'wPanelStatus' dw ? %'bFrontPanel' db ? %'fDegraded' db ? %'fMasterReady' db ? %'fDisCls' db ? %'wCpWho' dw ? %'WCpTimer' dw ? %'verifyCode' db ? %'filler1' DB 77 Dup (?) ; Following portion of the table is FP/DP specific %If ((%fFP) OR (%fDP)) Then ( %'nDevMounted' DW 0 %'pMasterMountTable' DD rgFPMasterMountTable %'oTermTable' Dw TermOffset %'sTermTable' Dw %sTermArea %'oLineTable' Dw LineOffset %'sLineTable' Dw %sLineArea %'oRqRoute' Dw RouteOffset Dw 16 Dup (?) %'sRqRoute' Dw %sRouteArea Dw 16 Dup (?) ) Fi Even ReqArea DB %nReqEnts*5 Dup (?) Even RespArea DB %nRespEnts*5 Dup (?) Even StatArea DW %sStatArea Dup (?) Even %If ((%fFP) OR (%fDP)) Then ( TermArea Dw %sTermArea Dup (?) LineArea Dw %sLineArea Dup (?) RouteArea Db %sRouteArea Dup (?) ) Fi Even CdtSeg Ends YSeg Segment Public 'Yseg' YblkArea Db %nYblk*sYblkLocal Dup (0) ZblkArea Db %nZblk*sZblkLocal Dup (0) YSeg Ends ) FI%' Megaframe EVEN ;**************************************************************************** ; MACRO DEFINITIONS ;**************************************************************************** ; ; ; EXTRN -- declare a label extrn and outside of the data segment. This will only ; work is called from within segment "data". ; %*DEFINE(Extrn(label))(%' data ENDS EXTRN %label:far data SEGMENT PUBLIC 'data' ) $EJECT ; ; macro for defining Remote Dma requests ; which need to be massaged by ICC ; %*Define(RemoteDmaRequest(rc,newrc,pbcboffset,slotoffset))( %If (%m_nRemoteDmaRequests EQ 0) Then ( Even rgRemoteDmaRequest Label Byte ) Fi DW %Rc, %NewRc DB %pbcboffset, %slotoffset %Set(m_nRemoteDmaRequests,%m_nRemoteDmaRequests+1) ) $EJECT ; ; macro for defining massio dispatch routines ; %*DEFINE (MassioDisp (pStartIO))( %IF (%m_nRgMassioDisp EQ 0) THEN ( rgMassioDisp label byte) FI %SET (m_nRgMassioDisp, %m_nRgMassioDisp+1) %IF (NOT(%ISDEF(%pStartIO))) THEN( %EXTRN(%pStartIO)) FI DD %pStartIO ) $EJECT ; ; macro for 8259 cascade flags ; %*DEFINE (InterruptCascadeLevel(n))( %IF ((%n NE 0) AND (%n NE 2) AND (%n NE 5) AND (%n NE 6)) THEN (%Error(Illegal cascade level: %n)) ELSE (%SET(cascade8259,%cascade8259 OR (1 SHL %n)))FI ) $EJECT ; ; macro for defining raw interupt handler structure ; %*DEFINE (RawInterrupt (level,entry))( %IF (%m_nRawInt EQ 0) THEN ( rgRawIntDesc LABEL WORD ) FI %IF (not(%*Isdef(%entry))) THEN ( %EXTRN(%entry) ) FI DB %level DD %entry %SET(m_nRawInt, %m_nRawInt+1) ) $EJECT ; ; Macro for defining mediated interupt handler structure. The macro has a side effect of computing the max type number ; for use later in calculating the size of the mediated interrupt table. ; %*DEFINE (MediatedInterrupt (type,f8259,entry))( %IF (%m_nMediatedInt EQ 0) THEN ( rgMediatedIntDesc LABEL WORD ) FI %EXTRN(%entry) DB %type,%f8259 DD %entry %SET(m_nMediatedInt, %m_nMediatedInt+1) %IF (%m_typeMa2 ( DB %exch2 )FI )ELSE(%'previously defined EQU symbol m_val%name EQU m_val%exch2 %IF (%fMFHardware) THEN ( DW m_val%exch2 ) ELSE ( DB m_val%exch2 )FI )FI )FI ) %*DEFINE (SymExchange(name, exch))(%' %MATCH(exch2 m_RHS)(%exch)%' Take leading space off exch, put in exch2 %WHILE(%LEN(%exch2) EQ 0)(%MATCH(exch2 m_RHS)(%m_RHS))%' Maybe >1 space %' %IF (%LES(%substr(%exch2,1,1),9) AND %GES(%exch2,0))THEN(%'constant m_val%name EQU %exch2 )ELSE(%'previously defined EQU symbol m_val%name EQU m_val%exch2 )FI ) $EJECT ; ; Test definition of m_SysExchX (internal macro) ; %*DEFINE (TestSysExch(exch))(%TestSymbol(%Pass1%eval(%exch))) %*DEFINE (TestSymbol(Postfix))(%*Isdef(%m_SysExch%Postfix)) %*DEFINE (MakeSysExch(exch))(%' %SET(m_SysExch%Pass1%eval(%exch),%exch)%' value is not used, only isdef checks ) ; ; Assign a System Exchange ; %*DEFINE (AssignSysExch(exch))(%' %IF (%TestSysExch(%exch)) THEN (%Error(Duplicate Sys Exch Def-%exch)%' )ELSE(%MakeSysExch(%exch)%' %IF(%exch GT %m_SysExch)THEN(%' %SET (m_SysExch,%exch)%' )FI)FI) ; ; Alloc a System Exchange, expands as a constant ; %*DEFINE (SysExch)(%' %WHILE(%TestSysExch(%m_ExchLast))(%SET(m_ExchLast,%m_ExchLast+1))%' %MakeSysExch(%m_ExchLast)%' %IF(%m_ExchLast GT %m_SysExch)THEN(%' %SET (m_SysExch,%m_ExchLast)%' )FI%' %m_ExchLast) ; ; Alloc a System Exchange, set word variable ; %*DEFINE (AllocSysExch(name))(%' m_val%name EQU %SysExch xxTemp%name label byte ORG OFFSET %name DW m_val%name ORG OFFSET xxTemp%name ) $EJECT ; ; define RequestFileNames ; %*DEFINE (RequestFileName(name))(%' %IF (%m_nRequestFileNames EQ 0) THEN(rgRequestFileNames label byte )FI%' %SET (m_nRequestFileNames, %m_nRequestFileNames + 1)%' DB %Len(%name) DB '%name' ) $EJECT ; ; define the CTOS processes ; %*DEFINE (OsProcDesc(pEntry, sStack, priority, defaultExch))(%' %IF (%m_nOsProcDesc EQ 0) THEN(rgOsProcDesc label byte )FI%' %SET (m_nOsProcDesc, %m_nOsProcDesc + 1)%' %EXTRN(%pEntry)%' DD %pEntry DW %sStack DB %priority DW %IF(%defaultExch EQ 0) THEN(0)ELSE(%SysExch)FI ) $EJECT ; ; procedures to do initially on startup ; %*DEFINE(InitProcHardware(pEntry))(%' %IF (%m_nInitProcHardware EQ 0) THEN (%' rgInitProcHardware label byte )FI%' %SET (m_nInitProcHardware, %m_nInitProcHardware+1)%' %EXTRN(%pEntry)%' DD %pEntry ) $EJECT ; ; procedures to do before turning on interupts ; %*DEFINE(InitProcIntDisable(pEntry))(%' %IF (%m_nInitProcIntDisable EQ 0) THEN (%' rgInitProcIntDisable label byte )FI%' %SET (m_nInitProcIntDisable, %m_nInitProcIntDisable+1)%' %EXTRN(%pEntry)%' DD %pEntry ) $EJECT ; ; procedures to do after turning on interupts ; %*DEFINE(InitProcIntEnable(pEntry))(%' %IF (%m_nInitProcIntEnable EQ 0) THEN (%' rgInitProcIntEnable label byte )FI%' %SET (m_nInitProcIntEnable, %m_nInitProcIntEnable+1)%' %EXTRN(%pEntry)%' DD %pEntry ) $EJECT ; ; requests to initialize RTC ; %*DEFINE (RtcRq(pRequestBlock,timeInterval,resetValue,cEvents,exchange,rqCode))( %IF (%m_nRgInitRtcRequest EQ 0) THEN(rgInitRtcRequest label byte)FI %SET (m_nRgInitRtcRequest, %m_nRgInitRtcRequest+1) %EXTRN(%pRequestBlock) DD %pRequestBlock DW %timeInterval,%resetValue,%cEvents,%exchange,%rqCode ) $EJECT ; ; Macro to reserve a communication channel for system use ; %*DEFINE (SysCommInt(iLine,pTxIsr,pExtIsr,pRxIsr,pSpRxIsr))( %IF (%m_nSysCommInt EQ 0) THEN(rgSysCommInt label byte)FI %SET (m_nSysCommInt, %m_nSysCommInt+1) %IF (%pTxIsr NE 0) THEN (%EXTRN(%pTxIsr))FI %IF (%pExtIsr NE 0) THEN (%EXTRN(%pExtIsr))FI %IF (%pRxIsr NE 0) THEN (%EXTRN(%pRxIsr))FI %IF (%pSpRxIsr NE 0) THEN (%EXTRN(%pSpRxIsr))FI DW %iLine DD %pTxIsr,%pExtIsr,%pRxIsr,%pSpRxIsr ) $EJECT ; ; The next set of macros define device control blocks. The entry macros are: ; DcbDisk ; DcbLptr ; ; These macros call internal macros: ; SetName ; SetDcb ; DcbHardDisk ; DcbFloppy ; %*DEFINE(SetName)( %Set(m_sName,%Len(%m_Name)) %Set(m_sPass,%Len(%m_Pass)) %IF ((%m_sName EQ 0) OR (%m_sName GT 12)) THEN (%Error(Illegal device name:"%m_name"))FI %IF (%m_sPass GT 12) THEN (%Error(Illegal device password:"%m_pass"))FI %'sbDevName(13) DB %m_sName %IF (%m_sName NE 2  um, %FloppyUnitNum+1)) ELSE (%' Aws or NGEN workstation %IF ((%HardwareType EQ 2) OR (%HardwareType EQ 4)) THEN (%' AWS 220,230 or NGEN %DcbFloppy(%dcb,%FloppyUnitNum,4) %Set(FloppyUnitNum, %FloppyUnitNum+1)) ELSE (%' Aws 240 %DcbHDisk(%dcb,%HDiskUnitNum,0,4,0) %Set(HDiskUnitNum, %HDiskUnitNum+1)) FI) FI) %*DEFINE (HDisk("name" , "password" ))( %SetDcb %DEFINE(m_Name)(%name) %DEFINE(m_Pass)(%password) %IF (%WsType LE 3) THEN (%' IWS workstations %DcbHDisk(%dcb,%HDiskUnitNum,1,4,0)) ELSE (%' Aws or NGen workstation %DcbHDisk(%dcb,%HDiskUnitNum,0,4,0)) FI %Set(HDiskUnitNum, %HDiskUnitNum+1) ) %*DEFINE (SCSIdevice("name" , "password" ))( %SetDcb %DEFINE(m_Name)(%name) %DEFINE(m_Pass)(%password) %IF (%WsType GE ngen) THEN (%' NGen workstations %DcbHDisk(%dcb,%SCSIUnitNum,0,4,1)) ELSE (%' Aws, Iws or NGen cluster workstation %Error(no SCSI allowed on AWS, IWS or NGen cluster workstation.)) FI %Set(SCSIUnitNum, %SCSIUnitNum+1) ) %*DEFINE (CTape("name" , "password" 0) THEN (DB '%m_Name')FI %IF (%m_sName NE 12) THEN (DB %EVAL(12-%m_sName) DUP (' '))FI %'sbDevPassWord(13) DB %m_sPass %IF (%m_sPass NE 0) THEN (DB '%m_Pass')FI %IF (%m_sPass NE 12) THEN (DB %EVAL(12-%m_sPass) DUP (' '))FI ) $EJECT %*DEFINE(SetDcb)( %SET(nDcb, %nDcb+1) %IF(%nDcb EQ 1) THEN(%DEFINE(dcb)(0))FI %IF(%nDcb EQ 2) THEN(%DEFINE(dcb)(1))FI %IF(%nDcb EQ 3) THEN(%DEFINE(dcb)(2))FI %IF(%nDcb EQ 4) THEN(%DEFINE(dcb)(3))FI %IF(%nDcb EQ 5) THEN(%DEFINE(dcb)(4))FI %IF(%nDcb EQ 6) THEN(%DEFINE(dcb)(5))FI %IF(%fMFHardware) THEN( %IF(%nDcb GE 7) THEN(%Error(too many DCB`s:%nDcb))FI )ELSE( %IF(%nDcb EQ 7) THEN(%DEFINE(dcb)(6))FI %IF(%nDcb EQ 8) THEN(%DEFINE(dcb)(7))FI %IF(%nDcb EQ 9) THEN(%DEFINE(dcb)(8))FI %IF(%nDcb EQ 10) THEN(%DEFINE(dcb)(9))FI %IF(%nDcb EQ 11) THEN(%DEFINE(dcb)(10))FI %IF(%nDcb EQ 12) THEN(%DEFINE(dcb)(11))FI %IF(%nDcb EQ 13) THEN(%DEFINE(dcb)(12))FI %IF(%nDcb EQ 14) THEN(%DEFINE(dcb)(13))FI %IF(%nDcb EQ 15) THEN(%DEFINE(dcb)(14))FI %IF(%nDcb GE 16) THEN(%Error(too many DCB`s:%nDcb))FI )FI %DEFINE(dcb%dcb)(dcb%dcb) ) $EJECT idleState EQU 0 readyStatus EQU 0 remountedStatus EQU 2 %IF(%fMFHardware) THEN ( %*DEFINE (DcbDisk(unitNum,retryCnt,fHardDisk, "name" , "password" ))( %SetDcb %DEFINE(m_Name)(%name) %DEFINE(m_Pass)(%password) %DcbHDisk (%dcb,%unitNum,0,%retryCnt)) %*DEFINE (DcbHDisk(dcb, unitNum, f8inch, retryCnt))( dcb%dcb LABEL BYTE %'fMountable 'DB 0FFh %'fNonSharable 'DB 0 %'fRemovable 'DB 0 %If (%fFP) Then ( %'fNoMultiTrack 'DB 0FFh %' ; WD1010 cannot cross tracks' ) Else ( %If (%fDP) Then ( %'fNoMultiTrack 'DB 0 %' ; SMD can cross tracks' ) Fi ) Fi %'fAttention 'DB 0 %'fTimeout 'DB 0 %SetName %'controllerNum 'DB 0 %'unitNum 'DB %unitNum %'state 'DB idleState %'unitStatus 'DB remountedStatus %If (%fFP) Then ( %'deviceClass 'DB 0 ) Else ( %If (%fDP) Then ( %'deviceClass 'DB 01 ) Fi ) Fi %'userCount 'DB 0 %'oVhb 'DW 0 %'oIobFirst 'DW 0 %'oIobActive 'DW 0 %' lfaMax(2) 'DW 0h %' 'DW 080h %'lfaMask 'DW 511 %'verifyKey 'DW %unitNum + 1 %'ovlyprocOpen 'DW 0 %'ovlyprocClose 'DW 0 %'setRetryCnt 'DW %retryCnt %'softErrorCnt 'DW 0 %'hardErrorCnt 'DW 0 %'currentCylinder 'DW 0F000h %If (%fFP) Then ( %'sectorSizeCode 'DB 1 %' ; refers to WD1010 code ' %'gapLength 'DB 18h %'writePrecompCyl 'DB 020h %'stepRate 'DB 08h %'bytesPerSector 'DW 512 %'sectorsPerTrack 'DW 16 %'tracksPerCylinder 'DW 6 %'cylindersPerDisk 'DW 256 %'trackSeekTime 'DB 020h %'settleTime 'DB 010h %'fOnline 'DB 0 ) Else ( %If (%fDP) Then ( %'sectorSizeCode 'DB 2 %' ; refers to IWS size convention ' %'gapLength 'DB 00h %'writePrecompCyl 'DB 000h %'stepRate 'DB 00h %'bytesPerSector 'DW 512 %'sectorsPerTrack 'DW 32 %'tracksPerCylinder 'DW 7 %'cylindersPerDisk 'DW 589 %'trackSeekTime 'DB 00h %'settleTime 'DB 00h %'fOnline 'DB 0 ) Fi ) Fi ) )ELSE(%' Workstation %*DEFINE (Floppy("name" , "password" ))( %SetDcb %DEFINE(m_Name)(%name) %DEFINE(m_Pass)(%password) %IF (%WsType LE 3) THEN (%' IWS workstations %DcbFloppy(%dcb,%FloppyUnitnum,4) %Set(FloppyUnitN3 ))( %SetDcb %DEFINE(m_Name)(%name) %DEFINE(m_Pass)(%password) %IF (%WsType LE 3) THEN (%' IWS workstations %DcbHDisk(%dcb,%HDiskUnitNum,2,0,0)) ELSE (%' Aws or NGen workstation %Error(no CTape allowed on AWS or NGen)) FI %Set(HDiskUnitNum, %HDiskUnitNum+1) ) $EJECT %*DEFINE (DcbHDisk(dcb, unitNum, f8inch, retryCnt, fSCSI))( dcbSeg SEGMENT PUBLIC 'COED' dcb%dcb LABEL BYTE %IF((%HardwareType EQ 3) AND (%unitNum EQ 0)) THEN ( %' AWS-240 floppy %'fMountable 'DB 0FFh %'fNonSharable 'DB 0 %'fDoubleDensity 'DB 0FFh %'fNoMultiTrack 'DB 0 %'fAttention 'DB 0 %'fTimeout 'DB 0 %SetName %'controllerNum 'DB 0 %'unitNum 'DB %unitNum %'state 'DB idleState %'unitStatus 'DB remountedStatus %'deviceClass 'DB 0 %'userCount 'DB 0 %'oVhb 'DW 0 %'oIobFirst 'DW 0 %'oIobActive 'DW 0 %' lfaMax(2) 'DW 0C000h %' 'DW 00004h %'lfaMask 'DW 511 %'verifyKey 'DW %unitNum + 1 %'ovlyprocOpen 'DW 0 %'ovlyprocClose 'DW 0 %'setRetryCnt 'DW %retryCnt %'softErrorCnt 'DW 0 %'hardErrorCnt 'DW 0 %'currentCylinder 'DW 0FFFFh %'sectorSizeCode 'DB 1 %'gap length (2) 'DB 004h %' 'DB 036h %'datalength 'DB 0FFh %'bytesPerSector 'DW 200h %'sectorsPerTrack 'DW 8h %'tracksPerCylinder 'DW 1h %'cylindersPerDisk 'DW 4Ch %'not used 'DB 0 %'reserved  'DB 0 %'reserved 'DB 0 %'reserved 'DB 0 ) ELSE ( %' IWS hard disk or AWS-240 hard disk or IWS CTape %'fMountable 'DB 0FFh %'fNonSharable 'DB 0 %'fDoubleDensity 'DB 0 %'fNoMultiTrack 'DB 0 %'fAttention 'DB 0 %'fTimeout 'DB 0 %SetName %'controllerNum 'DB 0 %'unitNum 'DB %unitNum %'state 'DB idleState %'unitStatus 'DB remountedStatus %'deviceClass 'DB %IF (%fSCSI) THEN (6) ELSE (0) FI %'userCount 'DB 0 %'oVhb 'DW 0 %'oIobFirst 'DW 0 %'oIobActive 'DW 0 %IF (%f8inch NE 2) THEN (%'5 inch or 8 inch, not Cartridge Tape. %' lfaMax(2) 'DW %IF (%f8inch) THEN (0h) ELSE (06000h) FI %' 'DW %IF (%f8inch) THEN (080h) ELSE (0bdh) FI %'lfaMask 'DW 511 %'verifyKey 'DW %unitNum + 1 %'ovlyprocOpen 'DW 0 %'ovlyprocClose 'DW 0 %'setRetryCnt 'DW %retryCnt %'softErrorCnt 'DW 0 %'hardErrorCnt 'DW 0 %'currentCylinder 'DW 0FFFFh %IF ((%wsType EQ aws220_240) OR (%wsType EQ awsMaster)) THEN ( %'sectorSizeCode 'DB 1 ) FI %IF ((%wsType NE 5) AND (%wsType NE 6)) THEN ( %'formatOffset 'DB 0 ) FI %'formatSapce 'DB 1 %'not used 'DB 0 %'not used 'DB 0 %'bytesPerSector 'DW 512 %'sectorsPerTrack 'DW %IF (%f8inch) THEN (16) ELSE (30) FI %'tracksPerCylinder 'DW 4 %'cylindersPerDisk 'DW %IF (%f8inch) THEN (256) ELSE (202) FI %'fInhibitECC 'DB 0 %'reserved 'DB 0 %'reserved 'DB 0 %'reserved 'DB 0 ) ELSE (%'Cartridge Tape. %' lfaMax(2) 'DW 0FE00h %' 'DW 08Fh %'lfaMask 'DW 511 %'verifyKey 'DW %unitNum + 1 %'ovlyprocOpen 'DW 0 %'ovlyprocClose 'DW 0 %'setRetryCnt 'DW %retryCnt %'softErrorCnt 'DW 0 %'hardErrorCnt 'DW 0 %'currentCylinder 'DW 0FFFFh %'not used 'DB 0 %'not used 'DB 0 %'not used 'DB 0 %'not used 'DB 0 %'bytesPerSector 'DW 512 %'sectorsPerTrack 'DW 9 %'tracksPerCylinder 'DW 1 %'cylindersPerDisk 'DW 2048 %'fInhibitECC 'DB 0FFh %'reserved 'DB 0 %'reserved 'DB 0 %'reserved 'DB 0 )FI dcbSeg ends )FI ) $EJECT ;********************************************** ; Macro which defines DCB for the floppy * ;********************************************** %*DEFINE (DcbFloppy(dcb, unitNum, retryCnt))( dcbSeg SEGMENT PUBLIC 'COED' dcb%dcb LABEL BYTE %'fMountable 'DB 0FFh %'fNonSharable 'DB 0 %'fDoubleDensity 'DB 0FFh %'fNoMultiTrack 'DB 0FFh %'fAttention 'DB 0 %'fTimeout 'DB 0 %Setname %'controllerNum 'DB 0 %'unitNum 'DB %unitNum %'state 'DB idleState %'nitStatus 'DB remountedStatus %'deviceClass 'DB 1 %'userCount 'DB 0 %'oVhb 'DW 0 %'oIobFirst  'DW 0 %'oIobActive 'DW 0 %IF (%wsType LT 4) THEN ( %'lfaMax(2) 'DW 600h,9 ) FI %IF ((%wsType EQ aws220_240) OR (%wsType GE ngen)) THEN ( %'lfaMax(2) 'DW 0D000h,4 ) FI %'lfaMask 'DW 511 %'verifyKey 'DW %EVAL(%unitNum+1) %'ovlyprocOpen 'D3   DB %EVAL(92-%LEN(%Name)) DUP (0) sbSwapFileTryFirstPswd DB %LEN(%Pswd), '%Pswd' EVEN ) %*Define(SwapFileTryEach("name","pswd",ib,size))( sbSwapFileTryEach DB %LEN(%Name), '%Name' sbSwapFileTryEachPswd DB %LEN(%Pswd), '%Pswd' EVEN ibSwapFileNumber DW %ib swapFileSize DW %eval(%size*1024),%eval(%size/64) ) $EJECT ; ; final -- set counters in various tables, create gen table. ; %IF(%fMFHardware) THEN ( %*DEFINE (Final)( %If ((%fFP) OR (%fDP)) Then ( %RtcRq(rqTimeMassIo,50,50,0,8,0FFFFh)%' ; watchdog timer' ) FI %If (%fFP) then ( %RtcRq(rqTimePollMassIo,20,20,0,8,0FFFEh)%' ; polling timer' ) FI %IF (%m_nVirtualExch EQ 0 ) Then (%Error (No Virtual Exch) )FI m_temp label byte org offset nRawInt DW %m_nRawInt org offset nMediatedInt DW %m_nMediatedInt org offset nRemoteDmaRequest DW %m_nRemoteDmaRequests org offset nOsProcDesc DW %m_nOsProcDesc org offset nExchg DW %m_SysExch+1 + %nUsrExchange org offset userExchFirst DW %m_SysExch+1 org offset m_temp EVEN nRgInitRtcRW 0 %'ovlyprocClose 'DW 0 %'setRetryCnt 'DW %retryCnt %'softErrorCnt 'DW 0 %'hardErrorCnt 'DW 0 %'currentCylinder 'DW 0FFFFh %IF (%wsType LT 4) THEN ( %'sectorSizeCode 'DB 02 %'gapLength(2) 'DB 1Bh, 54h %'dataLength 'DB 0FFh %'bytesPerSector 'DW 512 %'sectorsPerTrack 'DW 15 %'tracksPerCylinder 'DW 1 %'cylindersPerDisk 'DW 77 ) FI %IF ((%wsType EQ aws220_240) OR (%wsType GE ngen)) THEN ( %'sectorSizeCode 'DB 01 %'gapLength(2) 'DB 04h, 36h %'dataLength 'DB 0FFh %'bytesPerSector 'DW 512 %'sectorsPerTrack 'DW 8 %'tracksPerCylinder 'DW 1 %'cylindersPerDisk 'DW 77 ) FI %'fInhibitECC 'DB 0 %'reserved 'DB 0 %'reserved 'DB 0 %'reserved 'DB 0 dcbSeg ends ) )FI%' Workstation $EJECT %*Define(ExitRunFile("name" , "password", priority))( sbExitRunFileSpec DB %LEN(%Name),'%Name' DB %EVAL(92-%LEN(%Name)) DUP (0) sbExitRunFilePswd DB %LEN(%Password),'%Password' DB %EVAL(12-%LEN(%password)) DUP (0) exitRunFilePrio DB %priority exitRunFilePrioSave DB %priority %IF(%fVarPar)THEN( PUBLIC sbExitRunFileDefault, sbExitRunFileDefPswd, ExitRunFileDefPrio sbExitRunFileDefault DB 79 DUP (0) sbExitRunFileDefPswd DB 13 DUP (0) ExitRunFileDefPrio DB ? )FI EVEN ) $EJECT %*Define(CnfgInitFile("name"))( Even Ifn DB '%name' DB %Eval(40-%Len(%name)) Dup (0) pbInitFileName DD Ifn cbInitFileName DW %LEN(%Name) ) $EJECT %*Define(ConfigurationFile("name" , "password", priority))( sbConfigFileSpec DB %LEN(%Name),'%Name' DB %EVAL(92-%LEN(%Name)) DUP (0) sbConfigFilePswd DB %LEN(%Password),'%Password' DB %EVAL(12-%LEN(%password)) DUP (0) configFilePrio DB %priority EVEN ) %*Define(WsConfigurationFile("name"))( sbWsConfigFileSpec DB %LEN(%Name),'%Name' EVEN ) $EJECT %*Define(InitFileSpec("name" , "password", priority))( sbInitFileSpec DB %LEN(%Name),'%Name' DB %EVAL(92-%LEN(%Name)) DUP (0) sbInitFilePassword DB %LEN(%Password),'%Password' DB %EVAL(12-%LEN(%password)) DUP (0) initFilePrio DB %priority EVEN ) $EJECT %*Define(NlsFileSpec("name" , "password"))( sbNlsFileSpec DB %LEN(%Name),'%Name' DB %EVAL(92-%LEN(%Name)) DUP (0) sbNlsFilePassword DB %LEN(%Password),'%Password' DB %EVAL(12-%LEN(%password)) DUP (0) EVEN ) $EJECT %*Define(InstallVdmSpec("name" , "password"))( sbInstallVdmSpec DB %LEN(%Name),'%Name' DB %EVAL(92-%LEN(%Name)) DUP (0) sbInstallVdmPswd DB %LEN(%Password),'%Password' EVEN ) $EJECT %*Define(InstallKbdSpec("name" , "password"))( sbInstallKbdSpec DB %LEN(%Name),'%Name' sbInstallKbdPswd DB %LEN(%Password),'%Password' EVEN ) $EJECT %*Define(InstallMathSpec("name" , "password"))( sbInstallMathSpec DB %LEN(%Name),'%Name' sbInstallMathPswd DB %LEN(%Password),'%Password' EVEN ) $EJECT %*Define(ScratchVolumeSpec("name"))( sbScratchVolumeSpec DB %LEN(%Name), '%Name' DB %EVAL(12-%LEN(%Name)) DUP (0) EVEN ) $EJECT %*Define(SwapFileTryFirst("name","pswd"))( sbSwapFileTryFirst DB %LEN(%Name), '%Name' 4 equest DW %m_nRgInitRtcRequest nInitProcHardware DW %m_nInitProcHardware nInitProcIntDisable DW %m_nInitProcIntDisable nInitProcIntEnable DW %m_nInitProcIntEnable nRgMassioDisp DW %m_nRgMassioDisp initSysDevNum DW %IF (%*IsDef(%SysDevNum)) THEN (%SysDevNum) ELSE (0FFFFh)FI nSysCommInt DW %m_nSysCommInt ; MFCTOS 3.00 nRequestFilenames DB %m_nRequestFileNames srgExchReal DB %m_nVirtualExch fCheckMem DB %fCheckMem fCheckECC DB %fCheckEcc %IF (%nUcb NE %nPartitions) THEN (%Error(nUCB Not Equal to nPartitions)) FI %IF (%m_nRequestFileNames EQ 0) THEN (rgRequestFileNames Label Byte) FI %IF (%m_nRawInt EQ 0) THEN (rgRawIntDesc label byte) FI %IF (%m_nMediatedInt EQ 0) THEN (rgMediatedIntDesc label byte) FI %IF (%m_nInitProcHardware EQ 0) THEN (rgInitProcHardware label byte) FI %IF (%m_nInitProcIntDisable EQ 0) THEN (rgInitProcIntDisable label byte) FI %IF (%m_nInitProcIntEnable EQ 0) THEN (rgInitProcIntEnable label byte) FI %IF (%m_nRgMassioDisp EQ 0) THEN (rgMassioDisp label byte) FI %IF (%m_nSysCommInt EQ 0) THEN (rgSysCommInt label byte) FI %If (%m_nRgInitRtcRequest EQ 0) Then (rgInitRtcRequest Label Byte) FI %If (%m_nRemoteDmaRequests EQ 0) Then (rgRemoteDmaRequest Label Byte) Fi %' create gen structure %CreateGen data ENDS ); end macro Final )ELSE(%' Workstation final %*DEFINE (Final)( %RtcRq(bellRq,0,0,0,1,64)%' ; for beeper ' %IF(%fKbdRes)THEN( %RtcRq(rqTimeKbd,0,0,0,1,63)%' ; for repeat key' %RtcRq(rqTimeVid,0,0,0,1,63)%' ; for Video timeout blank' )FI %IF ((%wsType EQ iwsStandAlone) OR (%wsType EQ iwsMiniMaster) OR (%wsType EQ iwsIopMaster) ) THEN ( ; %RtcRq(rqTimeMassIo,50,50,0,8,0FFFFh)%' ; watchdog timer' ) FI %IF ((%wsType EQ ngen) OR (%wsType EQ ngenMaster) ) THEN ( ; %RtcRq(rqTimeMassIo,170,170,0,8,0FFFFh)%' ; watchdog timer' ) FI %IF ((%wsType EQ awsMaster) OR (%wsType EQ aws220_240)) THEN (%' %IF ((%hardwareType EQ 3) OR (%wsType EQ awsMaster) ) THEN (%' hard disk %RtcRq(rqTimeMassIo,65,65,0,8,0FFFFh)%' ; watchdog timer' )ELSE(%'floppies %RtcRq(rqTimeMassIo,50,50,0,8,0FFFFh)%' ; watchdog timer' ) FI ) FI %IF ((%wsType EQ iwsCluster) AND (%localFS NE 0)) THEN ( %RtcRq(rqTimeMassIo,50,50,0,8,0FFFFh)%' ; watchdog timer' ) FI %IF ((%wsType EQ ngen) OR (%wsType EQ ngenMaster)) THEN ( %RtcRq(rqTimeMassIoPoll,0,0,1,8,7777)%' ; volume recognition timer' ) FI m_temp label byte org offset nRawInt DW %m_nRawInt org offset nMediatedInt DW %m_nMediatedInt org offset nOsProcDesc DW %m_nOsProcDesc org offset nExchg DW %m_SysExch+1 + %nUsrExchange org offset userExchFirst DW %m_SysExch+1 %IF (%m_nRawInt EQ 0) THEN (rgRawIntDesc label byte) FI %IF (%m_nMediatedInt EQ 0) THEN (rgMediatedIntDesc label byte) FI %IF (%m_nInitProcHardware EQ 0) THEN (rgInitProcHardware label byte) FI %IF (%m_nInitProcIntDisable EQ 0) THEN (rgInitProcIntDisable label byte) FI %IF (%m_nInitProcIntEnable EQ 0) THEN (rgInitProcIntEnable label byte) FI %IF (%m_nRgMassioDisp EQ 0) THEN (rgMassioDisp label byte) FI %IF (%m_nSysCommInt EQ 0) THEN (rgSysCommInt label byte) FI org offset m_temp EVEN nRgInitRtcRequest DW %m_nRgInitRtcRequest nInitProcHardware DW %m_nInitProcHardware nInitProcIntDisable DW %m_nInitProcIntDisable nInitProcIntEnable DW %m_nInitProcIntEnable nRgMassioDisp DW %m_nRgMassioDisp initSysDevNum DW %IF (%*IsDef(%SysDevNum)) THEN (%SysDevNum) ELSE (0FFFFh)FI cascade8259 DW %cascade8259 nSysCommInt DW %m_nSysCommInt nRequestFileNames DW %m_nRequestFileNames srgExchReal DB %m_nVirtualExch fSFNM DB %IF(%fSpecialFullyNestedMode) THEN (0FFh) ELSE (0)FI %' create gen structure %CreateGen data ENDS ); end macro Final )FI%' Workstation %*DEFINE (CreateGen)( EVEN gen LABEL WORD DW %nPcb,%m_SysExch+1 + %nUsrExchange,%nMsgWait,%nPTiming,%nMsgWaitReserve DW %nSoftVec DW %nIob,%nFcb,%nFab,%nDcb,%nVhb,%nUcb,%nFub %'sysDeviceNum 'DW 0 %'pSysVhb 'DD 0 %IF(%fMFHardware)THEN( DD %dcb0,%dcb1,%dcb2,%dcb3,%dcb4,%dcb5 )ELSE( DD %dcb0,%dcb1,%dcb2,%dcb3,%dcb4,%dcb5,%dcb6,%dcb7 DD %dcb8,%dcb9,%dcb10,%dcb11,%dcb12,%dcb13,%dcb14,%dcb15 )FI ) $EJECT ; ; when an error is detected4  no omissions. %' ,name ......... The name of the procedure. This field %' is here for convenience only and is not %' used internally by the macro. %' ,exchange ..... This is the CTOS exchange that the %' request will be routed to by the %' Request interface. %' ,ServiceCode .. This field is for the convenience of %' the Service process, and can be used in %' any way the process desires. %' ,sCntInfo ..... %' ,nReqPbCb ..... %' ,nRespPbCb .... These values are put into the request %' block which the CTOS procedural %' interface creates for the user in the %' fields of the same name. %' , %( format ) . The "format" is described in the %' following section. %' , %( netRouting ) . The "netRouting" is described in the %' following section. %' ) %' %' FORMAT -- %' The format is a set of short macros which define the %' order and type of arguments that are pushed onto the stack %' when a user calls the CTOS procedural interface. Also in %' the "format" are any constants which go into the req this macro is called ; %*DEFINE (m_Error (msg)) (%SET(m_ErrorCount, %m_ErrorCount + 1) $SAVE LIST ;*** SYSGEN ERROR -- %msg *****ERROR***** $RESTORE %OUT(SYSGEN ERROR -- %msg )) %*DEFINE (Error (msg)) (%m_Error (%msg)) ; ; end of file sysgen.mdf ; FileNumber DW %ib swapFileSize DW %eval(%size*1024),%eval(%size/64) ) $EJECT ; ; final -- set counters in various tables, create gen table. ; %IF(%fMFHardware) THEN ( %*DEFINE (Final)( %If ((%fFP) OR (%fDP)) Then ( %RtcRq(rqTimeMassIo,50,50,0,8,0FFFFh)%'; ; FILE REQUEST.ASM -- ; ; COPYRIGHT 1980, 1981, 1982, 1983 CONVERGENT TECHNOLOGIES,INC. ; ALL RIGHTS RESERVED ; ; THIS PROGRAM IS FURNISHED UNDER A LICENSE RESTRICTING ITS USE ; SOLELY FOR THE OPERATION OF A DESIGNATED COMPUTER FOR A ; PARTICULAR PURPOSE,AND MAY NOT BE COPIED OR OTHERWISE USED ; WITHOUT THE PRIOR WRITTEN CONSENT OF CONVERGENT TECHNOLOGIES, ; INC. TITLE TO AND OWNERSHIP OF THE PROGRAM, INCLUDING ITS ; SOURCE CODE, SHALL AT ALL TIMES REMAIN IN CONVERGENT ; TECHNOLOGIES. ; ; ; NOTES FOR CHANGING THIS FILE -- ; ; Please be aware that in the Convergent Assembly language ; there are two types of comments: normal comments (any text on ; a line after a ";" character, and a macro comment (%' text '). ; It is not possible to "comment out" a macro by inserting a ; ";" in front of it. You may comment out a macro by replacing ; the percent sign in the call with a ";", or by precceding the ; call with "%'". This will cause the macro processor to ; ignore any text up to and including the next "'" or RETURN ; (0Ah) character,whichever comes first. ; ; Macro calls must not be mixed. In general,the invocation of ; a macro causes an entry to be added to a table,and mixing ; macro calls would result in scrambled tables. ; $INCLUDE (request.mdf) ; ; The next set of macros construct 6 tables which are used by ; Convergent to implement OS service request. When a new ; request code is added to the OS,a new entry has to be added ; using the macro "SysRequest". Request codes have to be ; within 0 - 4063 (0FDFh) and contiguous. The "requestNumber" ; field is used by the macro just to verify the coniguousness ; of the requests. Although a system builder may replace a ; "SysRequest" definition with one of their own, adding new ; "SysRequest"'s is not allowed, as this may conflict with ; future Convergent requests. New requests should be added ; using the "UsrRequest" declarations which follow the ; "SysRequest"'s. ; ; %' SYSREQUEST MACRO DEFINITION -- %' %' MACRO FORMAT -- %' The "SysRequest" macro takes 9 arguments which are %' described below. The first 7 arguments must be on the same %' line, and the last two arguments, the parameter format %' and the net routing code, can be on %' additional lines. A full description of the fields of the %' macro and their use can be found in the CTOS manual and in %' the System Programmers Guide. The macro arguments are %' defined as follows: %' %' %SysRequest( %' rqCode ....... The request number of the service %' interface. These numbers must be in %' order with 5 uest %' block. The CTOS procedural initializes the request block to %' zeros, so any zero constants may be omitted. The macros are %' defined as follows: %' %' name: meaning: %' %illegal ...... call to this request is an error. %' %none ......... no arguments on stack (this call is %' optional). %' %c(v,o) ....... byte value "v" is placed in request %' block at offset "o" in the request %' block. %' %w(o) ......... the next word on the stack goes at %' offset "o". %' %b(o) ......... the low byte of next word on stack goes %' at offset "o" %' %' For convenience, the following abbreviations are also defined: %' %' abbreviation: definition: %' %fh .......... %w(12) %' %lfa ......... %w(16) %w(14) %' %p(o) ........ %w(o+2) %w(o) %' %pbCb0 ....... %w(20) %w(18) %w(22) %' %p0 .......... %w(20) %w(18) %' %s0 .......... %w(22) %' %pbCb1 ....... %w(26) %w(24) %w(28) %' %p1 .......... %w(26) %w(24) %' %s1 .......... %w(28) %' %pbCb2 ....... %w(32) %w(30) %w(34) %' %p2 .......... %w(32) %w(30) %' %s2 .......... %w(34) %' %p3 .......... %w(38) %w(36) %' %pbCb3 ....... %w(38) %w(36) %w(40) %' %' NET ROUTING -- %' The table rgNetRouting is used by the CTOS Kernel to decide whether a %' request gets routed by file handle, by file spec, or not at all. %' It is also used by the Agent to determine how to expand file specs. %' The following is a set of general rules for request blocks that have %' file specs. These rules permit routing information to be encoded. %' %' 1. A request may not have more than two file specs. %' 2. The first file spec must be specified by the first pb/cb pair. %' 3. If a file spec has a password, it must be specified by the pb/cb %' pair that immediately follows the pb/cb for the file spec. %' 4. If one file spec has a password associated with it, then %' all file specs in the request must have passwords. %' %' %RW This request is a read or write and may have to be %' be broken up in to smaller requests. %' SpecPW All file spec pb/cb pairs are followed by password pb/cb pairs. %' %rFh Route this request by the file handle. %' %openFh This request opens a resource that owns a file handle %' % and returns the handle in the first response pb/cb pair. %' %closeFh This request closes a resource that owns a file handle. %' %DevSpec Route this request by dev spec %' %DirSpec Route this request by dir Spec %' %FileSpec Route this request by file spec %' %FileSpec2 Route this request by file spec (request contains 2 of them) %' %FileSpecP2S2 Route by file spec in p2/s2 ;################################################################ ; ; Exchange definitions -- ; Exchanges 0 to 20 are reserved for CTOS processes. ; ; Virtual exchanges, replaced at boot time; ; translation table created in Sysgen.Mdf, ; varies with CTOS version. exchAgent EQU -1 exchNotInstalled EQU -2 exchMassIO EQU -3 ; Mass storage I/O manager exchFilSys1 EQU -4 ; File system manager/ Utility exchFilSys2 EQU -5 exchFilSys3 EQU -6  exchFilSys4 EQU -7 exchChgUsrN EQU -8 ; Multi-Part Change User Num Rq for FS exchSrpAgent EQU -9 exchLog EQU -10 exchFilterPros EQU -11 exchMem EQU -12 exchVp EQU -13 ; Var-Part only rqs exchKbd EQU -14 ; Keyboard manager/ Debugger, maybe resident ; ; Exchanges constant over all versions of CTOS, ; or equated to virtual exchanges. exchMaster EQU exchNotInstalled ; Service from master, if exists exchISAM EQU exchNotInstalled ; ISAM service exchDBMS EQU exchNotInstalled ; DBMS service exch3270 EQU exchNotInstalled ; 3270 exchKbdRes EQU 1 ; Keyboard manager/ Debugger, resident portion exchSysIn EQU 3 ; System Input proccess exchTerm EQU 5 ; Application terminator exchLclFs EQU 10 ; File system manager/ Utility exchSplr EQU 0 ; Print Spooler exchSplrOld EQU exchNotInstalled ; Print Spooler exchQueMgr EQU exchNotInstalled ; Queue Manager exchRJE EQU exchNotInstalled ; RJE exchResex EQU exchLclFs exchTask EQU exch5  , %( %pbcb0 ), %( %noRouting )) %SysRequest(28,Chain,exchTerm,0101h,6,2,0, %( %pbcb0 %pbcb1 %w(12) %w(14) %w(16) ), %( %noRouting )) %SysRequest(29,LoadTask,exchTerm,0004h,6,0,0, %( %fh %w(14) %w(16) ), %( %noRouting )) %SysRequest(30,SetFhLongevity,exchFilSys1,0505h,4,0,0, %( %w(12) %w(14) ), %( %rFh )) %SysRequest(31,GetFhLongevity,exchFilSys1,0506h,6,0,1, %( %fh %p0 %c(1,22) ), %( %rFh )) %SysRequest(32,ResetSubsys,exchTask,0E00h,6,0,0, %( %fh %w(14) %w(16) ), %( %noRouting )) %SysRequest(33,DeviceRead,exchMassIo,8000h,6,0,2, %( %w(12) %pbcb0 %lfa %p1 %c(2,28) ), %( %RW )) %SysRequest(34,DeviceWrite,exchMassIo,8001h,6,1,1, %( %w(12) %pbcb0 %lfa %p1 %c(2,28) ), %( %RW )) %SysRequest(35,Read,exchFilSys2,0000h,6,0,2,  %( %fh %pbcb0 %lfa %p1 %c(2,28) ), %( %rFh %RW )) %SysRequest(36,Write,exchFilSys2,0001h,6,1,1, %( %fh %pbcb0 %lfa %p1 %c(2,28) ), %( %rFh %RW )) %SysRequest(37,DeviceReadIdAndData,exchMassIo,8002h,6,0,2, %( %w(12) %pbcb0 %lfa %p1 %c(2,28) ), LclFs exchVideo EQU exchLclFs exchCommLine EQU exchLclFs exchCommSer EQU exchNotInstalled exchTape EQU exchNotInstalled ; Tape Server exchX25 EQU exchNotInstalled ; X.25 exchSNA EQU exchNotInstalled ; SNA exchMailSer EQU exchNotInstalled ; Mail Server exchSched EQU exchVp exchUser EQU exchMem ; userNum creation/deletion exchNotPresent EQU 0 ; not installed, don't try master %' SYSREQUEST ENTRIES MUST COME FIRST %SysRequestInit %SysRequest(0,(illegal),0,0000h,0,0,0, %( %illegal ), %( %noRouting )) %SysRequest(1,SetPath,exchResex,0D13h,6,3,0, %( %pbcb0 %pbcb1 %pbcb2 ), %( %noRouting )) %SysRequest(2,ClearPath,exchResex,0D14h,0,0,0, %( %none ), %( %noRouting )) %SysRequest(3,SetPrefix,exchResex,0D15h,6,1,0, %( %pbcb0 ), %( %noRouting )) %SysRequest(4,OpenFile,exchFilSys1,0001h,6,2,1, %( %c(2,34) %p2 %pbcb0 %pbcb1 %w(14) ), %( %FileSpec %SpecPW %openFh)) %SysRequest(5,CreateFile,exchFilSys1,0000h,6,2,0, %( %pbcb0 %pbcb1 %lfa ), %( %FileSpec %SpecPW )) %SysRequest(6,DeleteFile,exchFilSys1,0501h,2,0,0, %( %fh ), %( %rFh %closeFh )) %SysRequest(7,RenameFile,exchFilSys1,0002h,6,2,0, %( %fh %pbcb0 %pbcb1 ), %( %rFh %FileSpec %SpecPW )) %SysRequest(8,GetFileStatus,exchFilSys1,0700h,6,0,1, %( %fh %w(14) %pbcb0 ), %( %rFh )) %SysRequest(9,SetFileStatus,exchFilSys1,0701h,6,1,0, %( %fh %w(14) %pbcb0 ), %( %rFh )) %SysRequest(10,CloseFile,exchFilSys1,0500h,2,0,0, %( %fh ), %( %rFh %closeFh)) %SysRequest(11,MountVolume,exchFilSys1,0800h,6,2,0, %( %pbcb0 %pbcb1 ), %( %DevSpec %SpecPW )) %SysRequest(12,DismountVolume,exchFilSys1,0801h,6,2,0, %( %pbcb0 %pbcb1 ), %( %DevSpec %SpecPW )) %SysRequest(13,ChangeFileLength,exchFilSys1,0503h,6,0,0, %( %fh %lfa ), %( %rFh )) %SysRequest(14,GetDateTime,exchFilSys3,0200h,6,0,1, %( %p0 %c(4,22) ), %( %noRouting )) %SysRequest(15,GetVhb,exchFilSys1,0803h,6,1,1, %( %pbcb0 %pbcb1 ), %( %DevSpec )) %SysRequest(16,SetDevParams,exchFilSys1,0804h,6,2,0, %( %pbcb0 %pbcb1 %w(12) ), %( %DevSpec %SpecPW )) %SysRequest(17,CreateDir,exchFilSys1,0003h,6,3,0, %( %pbcb0 %pbcb1 %pbcb2 %w(14) %w(16) ), %( %DirSpec %SpecPW )) %SysRequest(18,DeleteDir,exchFilSys1,0004h,6,2,0, %( %pbcb0 %pbcb1 ), %( %DirSpec %SpecPW )) %SysRequest(19,CloseAllFiles,exchFilSys3,0504h,0,0,0, %( %none ), %( %noRouting )) %SysRequest(20,QuietIO,exchFilSys3,0507h,0,0,0, %( %none ), %( %noRouting )) %SysRequest(21,QueryVidHdw,exchVideo,0C03h,6,0,1, %( %pbcb0 ), %( %noRouting )) %SysRequest(22,LoadFontRam,exchVideo,0B00h,6,1,0, %( %fh %pbcb0 ), %( %noRouting )) %SysRequest(23,LoadStyleRam,exchVideo,0B03h,6,1,0, %( %pbcb0 ), %( %noRouting )) %SysRequest(24,LoadCursorRam,exchVideo,0B02h,6,1,0, %( %pbcb0 ), %( %noRouting )) %SysRequest(25,ReadDirSector,exchFilSys1,0005h,6,2,1, %( %pbcb0 %pbcb1 %w(14) %p2 %c(2,35) ), %( %DirSpec %SpecPW )) ; *1 %SysRequest(26,GetDcbOld,exchFilSys1,0805h,6,2,1, %( %pbcb0 %pbcb1 %pbcb2), %( %DevSpec )) %SysRequest(27,GetUcb,exchResex,0D17h,6,0,16 %( %noRouting )) %SysRequest(38,Format,exchFilSys2,0003h,6,1,1, %( %w(12) %pbcb0 %lfa %p1 %c(2,28) ), %( %rFh %RW )) %SysRequest(39,DeviceReadID,exchMassIo,8004h,6,0,2, %( %w(12) %pbcb0 %lfa %p1 %c(2,28) ), %( %noRouting )) %SysRequest(40,AllocExch,exchResex,0D00h,6,0,1, %( %p0 %c(2,22) ), %( %noRouting )) %SysRequest(41,DeallocExch,exchResex,0D01h,2,0,0, %( %w(12) ), %( %noRouting )) %SysRequest(42,AllocMemorySL,exchMem,0D02h,6,0,1, %( %w(12) %p0 %c(4,22) ), %( %noRouting )) %SysRequest(43,DeallocMemorySL,exchMem,0D03h,6,0,0, %( %p(14) %w(12) ), %( %noRouting )) %SysRequest(44,AllocMemoryLL,exchMem,0D04h,6,0,1, %( %w(12) %p0 %c(4,22) ), %( %noRouting )) %SysRequest(45,DeallocMemoryLL,exchMem,0D05h,6,0,0, %( %p(14) %w(12) ), %( %noRouting )) %SysRequest(46,AllocAllMemorySL,exchMem,0D06h,6,0,2, %( %p0 %p1 %c(2,22) %c(4,28) ), %( %noRouting )) %SysRequest(47,ResetMemoryLL,exchMem,0D07h,0,0,0, %( %none ), %( %noRouting )) %SysRequest(48,QueryMemAvail,exchMem,0D08h,6,0,1, %( %p0 %c(2,22) ), %( %noRouting )) %SysRequest(49,OpenRTClock,exchKbdRes,0300h,6,1,0, %( %p0 %c(12,22) ), %( %noRouting )) %SysRequest(50,CloseRTClock,exchKbdRes,0400h,6,1,0, %( %p0 %c(12,22) ), %( %noRouting )) %SysRequest(51,SetDateTime,exchFilSys3,0201h,4,0,0, %( %w(12) %w(14) ), %( %noRouting )) %SysRequest(52,Beep,exchKbdRes,0100h,0,0,0, %( %none ), %( %noRouting )) %SysRequest(53,ReadKbd,exchSysIn,0001h,6,0,1, %( %p0 %c(2,22) ), %( %noRouting )) %SysRequest(54,ReadKbdDirect,exchKbd,0001h,6,0,1, %( %w(12) %p0 %c(1,22) ), %( %noRouting )) %SysRequest(55,QueryKbdLEDs,exchKbd,0003h,6,0,1, %( %p0 %c(2,22) ), %( %noRouting )) %SysRequest(56,SetKbdLED,exchKbd,0004h,4,0,0, %( %w(12) %w(14) ), %( %noRouting )) %SysRequest(57,SetKbdUnencodedMode,exchSysIn,0005h,2,0,0, %( %w(12) ), %( %noRouting )) %SysRequest(58,QueryKbdState,exchSysIn,0006h,6,0,1, %( %p0 %c(4,22) ), %( %noRouting )) %SysRequest(59,SetSysInMode,exchSysIn,0008h,4,0,0, %( %w(14) %fh ), %( %noRouting )) %SysRequest(60,ReadActionCode,exchKbd,000Ah,6,0,1, %( %p0 %c(2,22) ), %( %noRouting )) %SysRequest(61,QueryWSNum,exchFilSys4,0202h,6,0,1, %( %p0 %c(2,22) ), %( %noRouting )) %SysRequest(62,CloseAllFilesLL,exchFilSys3,0508h,0,0,0, %( %none ), %( %noRouting )) %SysRequest(63,KbdWakeUp,exchKbd,0002h,0,0,0, %( %none ), %( %noRouting )) ; *2 %SysRequest(64,BeeperOff,0,0200h,0,0,0, %( %none ), %( %noRouting )) ; *2 %SysRequest(65,SetKbdUnencodedModeReal,exchKbd,0005h,2,0,0, %( %w(12) ), %( %noRouting )) ; *2 %SysRequest(66,KbdResetSysIn,exchSysIn,000Ch,0,0,0, %( %none ), %( %noRouting )) ; *2 %SysRequest(67,DisableActionFinish,exchKbd,0007h,2,0,0, %( %w(12) ), %( %noRouting )) %SysRequest(68,CheckpointSysIn,exchSysIn,0009h,0,0,0, %( %none ), %( %noRouting )) %SysRequest(69,SetIntHandler,exchResex,0D0Bh,12,0,0, %( %w(12) %p(14) %w(18) %w(20) %w(22) ), %( %noRouting )) %SysRequest(70,ResetKbd,exchKbd,0000h,2,0,0, %( %w(12) ), %( %noRouting )) ; *2 %SysRequest(71,ResetSysIn,exchSysIn,0000h,2,0,0, %( %w(12) ), %( %noRouting )) ; *2 %SysRequest(72,ResetAgent,exchAgent,0000h,2,0,0, %( %w(12) ), %( %noRouting )) ; *2 %SysRequest(73,FileSystemTermination,exchFilSys3,0504h,2,0,0, %( %none ), %( %noRouting )) %SysRequest(74,ResetVideo,exchVideo,0C00h,6,0,1, %( %b(12) %b(13) %b(14) %b(15) %p0 %c(2,22) ), %( %noRouting )) %SysRequest(75,InitVidFrame,exchVideo,0C01h,10,0,0, %( %b(12) %b(13) %b(14) %b(15) %b(16) %b(17)  %b(18) %b(19) %b(20) %b(21) ), %( %noRouting )) %SysRequest(76,InitCharMap,exchVideo,0C02h,6,0,1, %( %pbcb0 ), %( %noRouting )) %SysRequest(77,SetScreenVidAttr,exchVideo,0B01h,4,0,0, %( %w(12) %w(14) ), %( %noRouting )) %SysRequest(78,CloseISAM,exchISAM,8400h,2,0,1, %( %w(12) %p(14) %c(4,18) ), %( %rFh %closeFh )) %SysRequest(79,CreateISAM,exchISAM,0001h,0,5,1, %( %p(12) %w(16) %p(18) %w(22) %p(24) %w(28) %p(30) %w(34) %p(36) %w(40) %p(42) %c(4,46) ), %( %FileSpec2 %SpecPW )) %S6  70,exch3270,0002h,6,2,0, %( %c(1,22) %p(18) %p(24) %w(28)), %( %noRouting )) %SysRequest(106,ReadyForCmd3270,exch3270,0003h,6,1,1, %( %c(1,22) %p(18) %p(24) %w(28)), %( %noRouting )) %SysRequest(107,StartEm3270,exch3270,0004h,6,1,1, %( %c(1,22) %p(18) %p(24) %w(28)), %( %noRouting )) %SysRequest(108,StopEm3270,exch3270,0005h,2,0,0, %( %w(12)), %( %noRouting )) %SysRequest(109,CancelRq3270,exch3270,0006h,6,1,0, %( %c(1,22) %p(18)), %( %noRouting )) %SysRequest(110,ReportStatus3270,exch3270,0007h,6,1,1, %( %c(1,22) %p(18) %p(24) %w(28)), %( %noRouting )) %SysRequest(111,SetVerifyCount,exchFilSys1,0509h,2,0,0, %( %w(12) ), %( %noRouting )) %SysRequest(112,FileSystemAbort,exchFilSys3,0508h,2,0,0, %( %none ), %( %noRouting )) %SysRequest(113,QuerySpooler,exchSplrOld,0000h,0,0,0, %( %none ), %( %noRouting )) %SysRequest(114,AddFileSpooler,exchSplrOld,0000h,4,4,0, %( %p(16) %w(20) %p(22) %w(26) %p(28) %w(32) %p(34) %w(38) %b(12) %b(13) %b(14) %b(15) ), %( %noRouysRequest(80,DeleteISAM,exchISAM,8002h,2,0,1, %( %w(12) %p(14) %c(4,18) ), %( %rFh %closeFh )) %SysRequest(81,DeleteISAMRecord,exchISAM,0D803h,6,0,1, %( %w(12) %p(14) %p(18) %c(4,22) ), %( %rFh )) %SysRequest(82,GetISAMRecords,exchISAM,0C004h,4,0,3, %( %w(12) %b(14) %p(16) %w(20) %p(22) %c(2,26) %p(28) %c(4,32) ), %( %rFh )) %SysRequest(83,LockISAM,exchISAM,0EFFFh,2,1,1, %( %w(12) %p(14) %w(18) %p(20) %c(4,24) ), %( %noRouting )) %SysRequest(84,ModifyISAMRecord,exchISAM,0D805h,6,1,1, %( %w(12) %p(14) %p(18) %w(22) %p(24) %c(4,28) ), %( %rFh )) %SysRequest(85,OpenISAM,exchISAM,0006h,4,2,2, %( %p(28) %c(2,32) %p(16) %w(20) %p(22) %w(26) %w(12) %w(14) %p(34) %c(4,38) ), %( %FileSpec %SpecPW %openFh %CloseAtTermination )) %SysRequest(86,ReadISAMRecordByUri,exchISAM,0C007h,6,0,2, %( %w(12) %p(14) %p(18) %w(22) %p(24) %c(4,28) ), %( %rFh )) %SysRequest(87,ReadNextISAMRecord,exchISAM,0C008h,2,0,3, %( %w(12) %p(14) %w(18) %p(20) %c(4,24) %p(26) %c(4,30) ), %( %rFh )) %SysRequest(88,ReadUniqueISAMRecord,exchISAM,0C009h,4,1,3, %( %w(12) %w(14) %p(16) %w(20) %p(22) %w(26) %p(28) %c(4,32) %p(34) %c(4,38) ), %( %rFh )) %SysRequest(89,RenameISAM,exchISAM,800Ah,2,4,1, %( %w(12) %p(14) %w(18) %p(20) %w(24)  %p(26) %w(30) %p(32) %w(36) %p(38) %c(4,42) ), %( %rFh %FileSpec2 %SpecPW )) %SysRequest(90,SetISAMProtection,exchISAM,800Bh,2,2,1, %( %w(12) %p(14) %w(18) %p(20) %w(24) %p(26) %c(4,30) ), %( %rFh )) %SysRequest(91,SetupISAMIterationKey,exchISAM,0EFFFh,4,1,1, %( %w(12) %w(14) %p(16) %w(20) %p(22) %c(4,26) ), %( %noRouting )) %SysRequest(92,SetupISAMIterationPrefix,exchISAM,800Ch,4,1,1, %( %w(12) %w(14) %p(16) %w(20) %p(22) %c(4,26) ), %( %rFh )) %SysRequest(93,SetupISAMIterationRange,exchISAM,0EFFFh,6,2,1, %( %w(12) %w(14) %p(18) %w(22) %b(16) %p(24) %w(28) %b(17) %p(30) %c(4,34) ), %( %noRouting )) %SysRequest(94,StoreISAMRecord,exchISAM,0D80Dh,2,1,2, %( %w(12) %p(14) %w(18) %p(20) %c(4,24) %p(26) %c(4,30) ), %( %rFh )) %SysRequest(95,UnlockISAM,exchISAM,0EFFFh,0,0,1, %( %p(12) %c(4,16) ), %( %noRouting )) %SysRequest(96,PurgeISAMUser,exchISAM,000Eh,2,0,0, %( %w(12) ), %( %noRouting )) %SysRequest(97,OpenFileLL,exchFilSys1,0001h,6,2,1, %( %c(2,34) %p2 %pbcb0 %pbcb1 %w(14) ), %( %FileSpec %SpecPW %openFh )) %SysRequest(98,ConvertToSys,exchUser,0D0Ch,0,0,0, %( %none), %( %none)) %SysRequest(99,ServeRq,exchResex,0D0Dh,4,0,0, %( %w(12) %w(14) ), %( %none)) %SysRequest(100,GetClusterStatus,exchAgent,0000h,6,0,1, %( %w(12) %pbcb0), %( %noRouting )) %SysRequest(101,SetCommISR,exchCommLine,0303h,22,0,0, %( %w(12) %p(14) %p(18) %p(22) %p(26) %p(30)), %( %noRouting )) %SysRequest(102,ResetCommISR,exchCommLine,0305h,2,0,0, %( %w(12)), %( %noRouting )) %SysRequest(103,KbAttn3270,exch3270,0000h,6,2,0, %( %c(1,22) %p(18) %p(24) %w(28)), %( %noRouting )) %SysRequest(104,ScreenRead3270,exch3270,0001h,6,2,0, %( %c(1,22) %p(18) %p(24) %w(28)), %( %noRouting )) %SysRequest(105,StatusRead327 ting )) %SysRequest(115,DelFileSpooler,exchSplrOld,0000h,0,2,0, %( %p(12) %w(16) %p(18) %w(22) ), %( %noRouting )) %SysRequest(116,PausePrinter,exchSplrOld,0000h,0,1,0, %( %p(12) %w(16) ), %( %noRouting )) %SysRequest(117,RestartPrinter,exchSplrOld,0000h,2,1,0, %( %p(14) %w(18) %w(12) ), %( %noRouting )) %SysRequest(118,CancelPrint,exchSplrOld,0000h,0,1,0, %( %p(12) %w(16) ), %( %noRouting )) %SysRequest(119,GetSpoolerStatus,exchSplrOld,0004h,2,1,1, %( %p(14) %w(18) %w(12) %p(20) %w(24) ), %( %noRouting )) %SysRequest(120,GetNxtFilePrt,exchSplrOld,0000h,0,1,1, %( %p(12) %w(16) %p(18) %w(22) ), %( %noRouting )) %SysRequest(121,SetLpISR,exchResex,0D10h,6,0,0, %( %p(14) %w(12) ), %( %noRouting )) %SysRequest(122,DisableCluster,exchSrpAgent,0,4,0,0, %( %w(12) %w(14) ), %( %noRouting )) %SysRequest(123,GetRunFileHdr,exchFilSys1,0E00h,6,0,1, %( %fh %pbcb0 ), %( %rFh )) %SysRequest(124,QueryDcb,exchFilSys1,0805h,6,1,1, %( %pbcb0 %pbcb1), %( %DevSpec )) %SysRequest(125,WriteLog,exchResex,0D12h,6,1,0, %( %pbcb0), %( %noRouting )) %SysRequest(126,SetCommISRRaw,exchCommLine,0304h,30,0,0, %( %w(12) %p(14) %p(18) %p(22) %p(26) %p(30) %w(34) %w(36) %w(38) %w(40)), %( %noRouting )) %SysRequest(127,PurgeISAMTransaction,exchISAM,0EFFFh,0,0,1, %( %p(12) %c(4,16) ), %( %noRouting )) %SysRequest(128,EndISAMTransaction,exchISAM,0EFFFh,0,0,1, %( %p(12) %c(4,16) ), %( %noRouting )) %SysRequest(129,GetISAMRecordsHold,exchISAM,0F004h,4,0,3, %( %w(12) %b(14) %p(16) %w(20) %p(22) %c(2,26) %p(28) %c(4,32) ), %( %rFh )) %SysRequest(130,HoldISAMRecord,exchISAM,0D00Fh,6,0,1, %( %w(12) %p(14) %p(18) %c(4,22) ), %( %rFh )) %SysRequest(131,ReadISAMRecordByUriHold,exchISAM,0F007h,6,0,2, %( %w(12) %p(14) %p(18) %w(22) %p(24) %c(4,28) ), %( %rFh )) %SysRequest(132,ReadNextISAMRecordHold,exchISAM,0F008h,2,0,3, %( %w(12) %p(14) %w(18) %p(20) %c(4,24) %p(26) %c(4,30) ), %( %rFh )) %SysRequest(133,ReadUniqueISAMRecordHold,exchISAM,0F009h,4,1,3, %( %w(12) %w(14) %p(16) %w(20) %p(22) %w(26) %p(28) %c(4,32) %p(34) %c(4,38) ), %( %rFh )) %SysRequest(134,ReleaseISAMRecord,exchISAM,0D410h,6,0,1, %( %w(12) %p(14) %p(18) %c(4,22) ), %( %rFh )) %SysRequest(135,SetupISAMIteration,exchISAM,0EFFFh,4,1,1, %( %w(12) %w(14) %p(16) %w(20) %p(22) %c(4,26) ), %( %noRouting )) %SysRequest(136,StartISAMTransaction,exchISAM,0EFFFh,4,1,1, %( %b(12) %w(14) %p(16) %w(20) %p(22) %c(4,26) ), %( %noRouting )) %SysRequest(137,AddQueueEntry,exchQueMgr,0000h,6,3,0, %( %p(18) %w(22) %b(12) %b(13) %w(14) %p(24) %w(28) %p(30) %c(4,34) %w(16) ), %( %DevSpec )) %SysRequest(138,RemoveKeyedQueueEntry,exchQueMgr,0001h,4,3,0, %( %p(16) %w(20) %p(22) %w(26) %w(12) %p(28) %w(32) %w(14) ), %( %DevSpec )) %SysRequest(139,ReadNextQueueEntry,exchQueMgr,0002h,4,1,2, %( %p(16) %w(20) %p(12) %p(22) %w(26) %p(28) %w(32) ), %( %DevSpec )) %SysRequest(140,ReadKeyedQueueEntry,exchQueMgr,0003h,4,3,2, %( %p(16) %w(20) %p(22) %w(26) %w(12) %p(28) %w(32) %w(14) %p(34) %w(38) %p(40) %w(44) ), %( %DevSpec )) %SysRequest(141,MarkNextQueueEntry,exchQueMgr,0004h,2,1,2, %( %p(14) %w(18) %b(12) %p(20) %w(24) %p(26) %w(30) ), %( %DevSpec )) %SysRequest(142,MarkKeyedQueueEntry,exchQueMgr,0005h,4,3,2, %( %p(16) %w(20) %p(22) %w(26) %w(12) %p(28) %w(32) %w(14) %p(34) %w(38) %p(40) %w(44) ), %( %DevSpec )) %SysRequest(143,RemoveMarkedQueueEntry,exchQueMgr,0006h,4,1,0, %( %p(16) %w(20) %p(12) ), %( %DevSpec )) %SysRequest(144,UnMarkQueueEntry,exchQueMgr,0007h,4,1,0, %( %p(16) %w(20) %p(12) ), %( %DevSpec )) %SysRequest(145,ReWriteMarkedQueueEntry,exchQueMgr,0008h,4,2,0, %( %p(16) %w(20) %p(12) %p(22) %w(26) ), %( %DevSpec )) %SysRequest(146,EstablishQueueServer,exchQueMgr,0009h,4,1,0, %( %p(16) %w(20) %w(12) %b(14) ), %( %DevSpec )) %SysRequest(147,TerminateQueueServer,exchQueMgr,000Ah,0,1,0, %( %p(12) %w(16) ), %( %noRouting )) %SysRequest(148,PurgeQueueServ7  ( %noRouting )) %SysRequest(176,DeletePartition,exchUser,0F01h,2,0,0, %( %w(12) ), %( %noRouting )) %SysRequest(177,GetPartitionHandle,exchTask,0F02h,0,1,1, %( %p(12) %w(16) %p(18) %c(2,22) ), %( %noRouting )) %SysRequest(178,LoadPrimaryTask,exchTerm,0100h,6,2,0, %( %w(12) %p(18) %w(22) %p(24) %w(28) %w(14) ), %( %noRouting )) %SysRequest(179,TerminatePartition,exchTask,0F03h,2,0,0, %( %w(12) ), %( %noRouting )) %SysRequest(180,VacatePartition,exchTerm,0002h,2,0,0, %( %w(12) ), %( %noRouting )) %SysRequest(181,CreatePartition,exchUser,0F00h,6,1,1, %( %p(18) %w(22) %w(12) %b(14) %p(24) %c(2,28) ), %( %noRouting )) %SysRequest(182,SetPartitionLock,exchTask,0F04h,2,0,0, %( %b(12) ), %( %noRouting )) %SysRequest(183,SetPartitionExch,exchTask,0F05h,2,0,0, %( %w(12) ), %( %noRouting )) %SysRequest(184,GetPartitionExch,exchTask,0F06h,2,0,1, %( %w(12) %p(14) %c(2,18) ), %( %noRouting )) %SysRequest(185,GetPartitionStater,exchQueMgr,000Bh,2,0,0, %( %w(12) ), %( %noRouting )) %SysRequest(149,SignoffRJE,exchRJE,0000h,2,0,0, %( %w(12) ), %( %noRouting )) %SysRequest(150,SignonRJE,exchRJE,0000h,0,2,0, %( %p(12) %w(16) %p(18) %w(22) ), %( %noRouting )) %SysRequest(151,StatusRJE,exchRJE,0000h,0,0,2, %( %p(12) %c(2,16) %p(18) %w(22) ), %( %noRouting )) %SysRequest(152,AcceptCommCall,exchCommSer,0000h,4,0,0, %( %w(12) %w(14) ), %( %noRouting )) %SysRequest(153,CloseAllCommLines,exchCommSer,0001h,2,0,0, %( %w(12) ), %( %noRouting )) %SysRequest(154,CloseCommLine,exchCommSer,0002h,4,0,0, %( %w(12) %w(14) ), %( %noRouting )) %SysRequest(155,DialComm,exchCommSer,0003h,2,1,0, %( %w(12) %p(14) %w(18) ), %( %noRouting )) %SysRequest(156,DisconnectComm,exchCommSer,0004h,2,0,0, %( %w(12) ), %( %noRouting )) %SysRequest(157,FlushCommBuffer,exchCommSer,0005h,4,0,0, %( %w(12) %b(14) ), %( %noRouting )) %SysRequest(158,GetCommParameters,exchCommSer,0006h,2,0,1, %( %w(12) %p(14) %c(20,18) ), %( %noRouting )) %SysRequest(159,OpenCommLine,exchCommSer,0007h,4,2,1, %( %b(12) %p(16) %w(20) %p(22) %w(26) %w(14) %p(28) %c(2,32) ), %( %noRouting )) %SysRequest(160,ReadComm,exchCommSer,0008h,4,0,2, %( %w(12) %w(14) %p(16) %w(20) %p(22) %c(2,26) ), %( %noRouting )) %SysRequest(161,SetCommParameters,exchCommSer,0009h,2,1,0, %( %w(12) %p(14) %c(20,18) ), %( %noRouting )) %SysRequest(162,WriteComm,exchCommSer,000Ah,4,1,1, %( %w(12) %w(14) %p(16) %w(20) %p(22) %c(2,26) ), %( %noRouting )) %SysRequest(163,BreakComm,exchCommSer,000Bh,2,0,0, %( %w(12) ), %( %noRouting )) %SysRequest(164,ResetQueMgr,exchQueMgr,0000h,2,0,0, %( %w(12) ), %( %noRouting )) %SysRequest(165,NotifyNextIncomingCall,exchX25,0,8,1,3, %( %w(12) %p(38) %c(2,42) %p(26) %w(30) %p(32) %c(2,36) %p(20) %w(24) %w(14) %w(16) %w(18) ), %( %noRouting )) %SysRequest(166,AcceptX25Call,exchX25,0,6,2,0, %( %w(12) %p(18) %w(22) %p(24) %w(28) %w(16) ), %( %noRouting )) %SysRequest(167,InitiateX25Call,exchX25,0,6,3,3, %( %w(12) %p(36) %c(2,40) %p(42) %w(46) %p(48) %c(2,52) %p(30) %w(34) %p(18) %w(22) %p(24) %w(28) %w(14) ), %( %noRouting )) %SysRequest(168,ClearX25Call,exchX25,0,6,1,0, %( %w(12) %w(14) %p(18) %w(22) ), %( %noRouting )) %SysRequest(169,PurgeX25User,exchX25,0,2,0,0, %( %w(12) ), %( %noRouting )) %SysRequest(170,ReadX25Packet,exchX25,0,6,0,3, %( %w(12) %p(18) %w(22) %p(24) %c(2,28) %p(30) %c(1,34) %w(14) ), %( %noRouting )) %SysRequest(171,WriteX25Packet,exchX25,0,6,1,0, %( %w(12) %w(14) %p(18) %w(22) ), %( %noRouting )) %SysRequest(172,WriteX25Interrupt,exchX25,0,4,0,0, %( %w(12) %w(14) ), %( %noRouting )) %SysRequest(173,ResetX25Call,exchX25,0,2,0,0, %( %w(12) %w(14) ), %( %noRouting )) %SysRequest(174,QueryX25Status,exchX25,0,8,0,2, %( %w(12) %p(20) %w(24) %b(14) %b(15) %w(16) %w(18) %p(26) %c(1,30) ), %( %noRouting )) %SysRequest(175,ConnectX25Permanent,exchX25,0,2,0,1, %( %w(12) %p(14) %c(2,18) ), %8 us,exchTask,0F07h,4,0,1, %( %w(12) %w(14) %p(16) %w(20) ), %( %noRouting )) %SysRequest(186,SetExitRunFile,exchTask,0D09h,6,2,0, %( %p(18) %w(22) %p(24) %w(28) %w(12) ), %( %noRouting )) %SysRequest(187,QueryExitRunFile,exchTask,0D0Ah,6,0,3, %( %p(18) %w(22) %p(24) %w(28) %p(30) %c(2,34) ), %( %noRouting )) %SysRequest(188,ConfigureSpooler, exchSplr,0000h,6,3,0, %( %b(12) %pbcb0 %pbcb1 %pbcb2 %b(13) %b(14) ), %( %FileSpecP2S2 )) %SysRequest(189,SpoolerPassword,exchSplr,0001h,6,2,0, %( %pbcb0 %pbcb1 ), %( %noRouting )) %SysRequest(190,OpenTape,exchTape,0,6,1,1, %( %pbcb0 %b(12) %b(13) %b(14) %w(16) %p1 %c(2,28) ), %( %DevSpec %OpenFh )) %SysRequest(191,ReadTapeRecords,exchTape,1,6,0,3, %( %fh %w(14) %pbcb0 %p1 %c(2,28) %p2 %c(2,34) ), %( %rFh )) %SysRequest(192,WriteTapeRecords,exchTape,2,6,1,2, %( %fh %w(14) %pbcb0 %p1 %c(2,28) %p2 %c(2,34) ), %( %rFh )) %SysRequest(193,TapeOperation,exchTape,3,6,0,0, %( %fh %b(14) %b(15) %w(16) ), %( %rFh )) %SysRequest(194,CloseTape,exchTape,4,2,0,0, %( %fh ), %( %rFh %CloseFh )) %SysRequest(195,PurgeTapeUser,exchTape,5,2,0,0, %( %w(12) ), %( %noRouting )) %SysRequest(196,TapeStatus,exchTape,6,6,0,1, %( %fh %p0 %c(2,22) ), %( %rFh )) %SysRequest(197,ResetSplr,exchSplr,0000h,2,0,0, %( %w(12) ), %( %noRouting )) %SysRequest(198,ModifyISAMRecordByKey,exchISAM,0F811h,4,1,2, %( %w(12) %w(14) %p(16) %w(20) %p(22) %c(4,26) %p(28) %c(4,32) ), %( %rFh )) %SysRequest(199,DeleteISAMRecordByKey,exchISAM,0F812h,4,1,2, %( %w(12) %w(14) %p(16) %w(20) %p(22) %c(4,26) %p(28) %c(4,32) ), %( %rFh )) %SysRequest(200,LogRemote,exchLog,0901h,6,2,0, %( %pbcb0 %pbcb1 ), %( %noRouting )) %SysRequest(201,VacateParCleanup,exchMaster,0000h,0,0,0, %( %none), %( %noRouting )) %SysRequest(202,GetWsUserName,exchFilSys4,0203h,6,0,1, %( %w(12) %pbcb0 ), %( %noRouting )) %SysRequest(203,SetWsUserName,exchFilSys4,0204h,6,1,0, %( %pbcb0 ), %( %noRouting )) %SysRequest(204,FinishISAMCommit,exchISAM,0013h,0,1,1, %( %p(12) %w(16) %p(18) %c(4,22) ), %( %DevSpec )) %SysRequest(205,HoldISAMDataSet,exchISAM,0D014h,4,0,1, %( %w(12) %b(14) %p(16) %c(4,20) ), %( %rFh )) %SysRequest(206,ReleaseISAMDataSet,exchISAM,0D415h,2,0,1, %( %w(12) %p(14) %c(4,18) ), %( %rFh )) %SysRequest(207,RollbackISAMTransaction,exchISAM,0016h,0,1,1, %( %p(12) %w(16) %p(18) %c(4,22) ), %( %DevSpec )) %SysRequest(208,SetISAMTransactionParams,exchISAM,0017h,0,2,1, %( %p(12) %w(16) %p(18) %w(22) %p(24) %c(4,28)),  %( %DevSpec )) %SysRequest(209,StartISAMCommit,exchISAM,0018h,0,2,1, %( %p(12) %w(16) %p(18) %w(22) %p(24) %c(4,28) ), %( %DevSpec )) %SysRequest(210,SetupISAMIterationLimits,exchISAM,8019h,6,2,1, %( %w(12) %w(14) %b(16) %p(18) %w(22)  %p(24) %w(28) %p(30) %c(4,34) ), %( %rFh )) %SysRequest(211,BeginISAMTransaction,exchISAM,001Ah,0,1,2, %( %p(12) %w(16) %p(18) %c(7,22) %p(24) %c(4,28) ), %( %DevSpec )) %SysRequest(212,DbResourceRequest,exchDBMS,0FFFFh,10,3,3, %( ), %( %DevSpec %openFh %CloseAtTermination )) %SysRequest(213,DbCloseRequest,exchDBMS,0FFFFh,10,3,3, %( ), %( %rFh %closeFh )) %SysRequest(214,DbHandleRequest,exchDBMS,0FFFFh,10,3,3, %( ), %( %rFh )) %SysRequest(215,ChangeOpenMode,exchMassIo,0006h,6,1,0, %( %fh %pbcb0 %w(14) ), %( %rFh %SpecPW )) %SysRequest(216,GetDirStatus,exchFilSys1,0007h,6,2,1, %( %pbcb0 %pbcb1 %w(12) %pbcb2 ), %( %DirSpec %SpecPW )) %SysRequest(217,SetDirStatus,exchFilSys1,0008h,6,3,0, %( %pbcb0 %pbcb1 %w(12) %pbcb2 ), %( %DirSpec %SpecPW )) %SysRequest(218,ChangeUserNumQmg,exchQueMgr,0000h,2,0,0, %( %w(12) ), %( %noRouting )) %SysRequest(219,ChangeUserNumFs,exchChgUsrN,0D19h,2,0,0, %( %w(12) ), %( %noRouting )) %SysRequest(220,ReadSNAPIU,exchSNA,0,6,0,4,  %( %w(12) %w(14) %w(16) %p(18) %w(22) %p(24) %w(28) %p(30) %w(34) %p(36) %w(40) ), %( %rFh )) %SysRequest(221,WriteSNAPIU,exchSNA,0,2,1,0, %( %w(12) %p(14) %w(18) ), %( %rFh )) %SysRequest(222,XWriteSNAPIU,exchSNA,0,2,1,0, 8  w(24) %p(26) %c(1,30) %p(32) %c(2,36) ), %( %rFh )) %SysRequest(250,SetMailAgentStatus,exchMailSer,16,2,1,0, %( %w(12) %p(14) %w(18) ), %( %rFh )) %SysRequest(251,PurgeMailUniqueId,exchMailSer,17,2,0,0, %( %none), %( %noRouting )) %SysRequest(252,SetNode,exchResex,0D16h,6,1,0, %( %pbcb0 ), %( %noRouting )) %SysRequest(253,ExpandSpec,exchFilSys1,0806h,6,2,1, %( %pbcb0 %pbcb1 %pbcb2 %fh ), %( %NoRouting )) %SysRequest(254,QueryExchange,exchResex,0D18h,6,0,1, %( %fh %p0 %c(2,22) ), %( %NoRouting )) %SysRequest(255,SetVideoTimeout,exchKbd,000Bh,2,0,0, %( %w(12) ), %( %noRouting )) %SysRequest(256,ReadActionKbd,exchKbd,000Ch,6,0,1, %( %b(12) %p0 %c(1,22) ), %( %NoRouting )) %SysRequest(257,ReadKbdStatus,exchKbd,000Dh,6,0,2, %( %w(12) %p0 %c(2,22) %p1 %c(1,28) ), %( %NoRouting )) %SysRequest(258,NotifyCM,exchNotPresent,0,6,1,0, %( %w(12) %pbcb0 ), %( %NoRouting )) %SysRequest(259,ChangeUserNumMail,exchMailSer,18,2,0,0, %( %w(12) ), %( %noRouting )) %SysRe %( %w(12) %p(14) %w(18) ), %( %rFh )) %SysRequest(223,AttachLu,exchSNA,0,4,0,1, %( %w(12) %p(16) %c(2,20) %b(14) ), %( %noRouting )) %SysRequest(224,InitiateSNASession,exchSNA,0,2,5,0, %( %w(12) %p(14) %w(18) %p(20) %w(24) %p(26) %w(30) %p(32) %w(36) %p(38) %w(42) ), %( %rFh )) %SysRequest(225,NotifyNextIncomingBind,exchSNA,0,4,0,2, %( %w(12) %w(14) %p(16) %w(20) %p(22) %w(26) ), %( %rFh )) %SysRequest(226,TerminateSNASession,exchSNA,0,2,0,0, %( %w(12) ), %( %rFh )) %SysRequest(227,AcceptSNASession,exchSNA,0,2,1,0, %( %w(12) %p(14) %w(18) ), %( %rFh )) %SysRequest(228,RejectSNASession,exchSNA,0,2,1,0, %( %w(12) %p(14) %w(18) ), %( %rFh )) %SysRequest(229,PurgeSNAUser,exchSNA,0,2,0,0,  %( %w(12) ), %( %noRouting )) %SysRequest(230,CloseSNASession,exchSNA,0,2,1,0, %( %w(12) %p(14) %w(18) ), %( %rFh )) %SysRequest(231,DetachLu,exchSNA,0,2,0,0, %( %w(12) ), %( %rFh %CloseFh)) %SysRequest(232,QuerySNAStatus,exchSNA,0,8,0,2, %( %b(14) %w(16) %p(20) %w(24) %p(26) %c(1,30) ), %( %noRouting )) %SysRequest(233,TerminateSNAUser,exchSNA,0,2,0,0, %( %w(12) ), %( %noRouting )) %SysRequest(234,AcknowledgeMailReceipt,exchMailSer,0,6,1,0, %( %w(12) %p(18) %c(12,22) %w(14) %w(16) ), %( %rFh )) %SysRequest(235,CheckForMail,exchMailSer,1,4,1,2, %( %p(12) %p(16) %w(20) %p(22) %c(2,26) %p(28) %c(2,32) ), %( %DevSpec )) %SysRequest(236,ConfigureMail,exchMailSer,2,4,2,0, %( %w(12) %w(14) %p(16) %w(20) %p(22) %w(26) ), %( %rFh )) %SysRequest(237,ConnectNextMailCenter,exchMailSer,3,2,0,2, %( %w(12) %p(14) %c(2,18) %p(20) %w(24) ), %( %rFh %openFh)) %SysRequest(238,EstablishMailConnection,exchMailSer,4,0,2,2, %( %p(12) %w(16) %p(18) %w(22) %p(24) %c(2,28) %p(30) %w(34) ), %( %DevSpec %openFh)) %SysRequest(239,PurgeMailUser,exchMailSer,5,2,0,0, %( %w(12) ), %( %noRouting )) %SysRequest(240,QueryMailConfiguration,exchMailSer,6,4,2,2, %( %w(12) %w(14) %p(16) %w(20) %p(22) %w(26) %p(28) %w(32) %p(34) %c(2,38) ), %( %rFh )) %SysRequest(241,QueryMailStatus,exchMailSer,7,6,0,2, %( %w(12) %w(14) %w(16) %p(18) %w(22) %p(24) %c(2,28) ), %( %rFh )) %SysRequest(242,QueryMailUniqueId,exchMailSer,8,2,0,1, %( %w(12) %p(14) %c(4,18) ), %( %rFh )) %SysRequest(243,QueryServerForUser,exchMailSer,9,0,2,1, %( %p(12) %w(16) %p(18) %w(22) %p(24) %c(2,28) ), %( %DevSpec )) %SysRequest(244,ReceiveMail,exchMailSer,10,2,0,3, %( %w(12) %p(14) %w(18) %p(20) %c(2,24) %p(26) %c(12,30) ), %( %rFh )) %SysRequest(245,ResetMailServer,exchMailSer,11,2,0,0, %( %w(12) ), %( %noRouting )) %SysRequest(246,SendMail,exchMailSer,12,4,2,1, %( %w(12) %p(16) %w(20) %p(22) %w(26) %p(28) %c(12,32) %w(14) ), %( %rFh )) %SysRequest(247,SignoffMailUser,exchMailSer,13,4,1,0, %( %p(16) %w(20) %p(12) ), %( %DevSpec )) %SysRequest(248,TerminateMailConnection,exchMailSer,14,2,0,0, %( %w(12) ), %( %rFh %closeFh )) %SysRequest(249,ValidateMail,exchMailSer,15,2,2,2, %( %w(12) %p(14) %w(18) %p(20) %9 quest(260,QuietMailUser,exchMailSer,19,2,0,0, %( %w(12) ), %( %noRouting )) %SysRequest(261,OSVersion,exchKbdRes,0500h,0,0,1, %( %p(12) %c(2,16) ), %( %NoRouting )) %SysRequest(262,LoadInterActiveTask,exchTerm,0100h,6,2,0, %( %w(12) %p(18) %w(22) %p(24) %w(28) %w(14) %w(16)), %( %noRouting )) %SysRequest(263,TerminateISAMServer,exchISAM,001Bh,0,0,2, %( %p(12) %c(2,16) %p(18) %c(4,22)), %( %noRouting )) %SysRequest(264,MapXBusWindow,exchResex,0D1Ah,6,0,2, %( %b(12) %b(13) %p(18) %c(4,22) %w(14) %p(24) %c(2,28) %w(16)), %( %noRouting )) %SysRequest(265,QuietKbdForSwap,exchKbd,0000h,2,0,0, %( %w(12) ), %( %noRouting )) ; *2 %SysRequest(266,Purge3270Em,exchNotPresent,0000h,2,0,0, %( ), %( %noRouting )) %SysRequest(267,PurgeX25,exchNotPresent,0000h,2,0,0, %( ), %( %noRouting )) ;*2 %SysRequest(268,SetTrapHandler,exchResex,0D0Bh,12,0,0, %( %w(12) %p(14) %c(0FFh, 22) ), %( %noRouting )) %SysRequest(269,QueryNodeForMailUser,exchMailSer,20,0,2,2, %( %p(12) %w(16) %p(18) %w(22) %p(24) %w(28) %p(30) %c(2,34) ), %( %DevSpec )) %SysRequest(270,(CtNetTermination),exchNotInstalled,0000h,2,0,0, %( %none ), %( %noRouting )) %SysRequest(271,QueryRequestInfo,exchResex,0D18h,6,0,1, %( %fh %pbcb0 ), %( %NoRouting )) %SysRequest(272,GetUserStatus,exchFilSys1,0702h,6,0,1, %( %fh %pbcb0 ), %( %noRouting )) %SysRequest(273,CMTermination,exchNotPresent,0000h,2,0,0, %( %none ), %( %noRouting )) %SysRequest(274,FilterProsTermination,exchFilterPros,0000h,2,0,0, %( %none ), %( %noRouting )) %SysRequest(275,VacatePartitionA,exchTask,0E01h,2,0,0, %( %w(12) ), %( %noRouting )) %SysRequest(276,VacatePartitionB,exchTask,0E02h,2,0,0, %( %w(12) ), %( %noRouting )) %SysRequest(277,SetVectorArea,exchResex,0D1Bh,6,0,1, %( %fh %w(14) %p0 %c(0,22) ), %( %noRouting )) %SysRequest(278,AllocAreaSL,exchMem,0D1Ch,6,0,1, %( %w(12) %p0 %c(4,22) ), %( %noRouting )) %SysRequest(279,ExpandAreaSL,exchMem,0D1Dh,6,0,1, %( %w(12) %w(14) %p0 %c(2,22) ), %( %noRouting )) %SysRequest(280,ExpandAreaLL,exchMem,0D1Eh,6,0,1, %( %w(12) %w(14) %p0 %c(2,22) ), %( %noRouting )) %SysRequest(281,ShrinkAreaSL,exchMem,0D1Fh,6,0,0, %( %p(14) %w(12) ), %( %noRouting )) %SysRequest(282,ShrinkAreaLL,exchMem,0D20h,6,0,0, %( %p(14) %w(12) ), %( %noRouting )) %SysRequest(283,QueryBigMemAvail,exchMem,0D21h,6,0,1, %( %p0 %c(4,22) ), %( %noRouting )) %SysRequest(284,CreateAlias,exchSched,0D22h,6,0,1, %( %p(14) %p0 %c(2,22) ), %( %noRouting )) %SysRequest(285,SetSegmentAccess,exchSched,0D23h,6,0,0, %( %w(12) %b(14) ), %( %noRouting )) %SysRequest(286,SetColorData,exchVideo,0C04h,0,2,2, %( %p(12) %w(16) %pbcb0 %pbcb1 %pbcb2 ), %( %noRouting )) %SysRequest(287,ProgramColorMapper,exchNotPresent,0,0,2,2, %( %p(12) %w(16) %pbcb0 %pbcb1 %pbcb2 ), %( %noRouting )) %SysRequest(288,SetCommISRRawSFN,exchCommLine,0304h,30,0,0, %( %w(12) %p(14) %p(18) %p(22) %p(26) %p(30) %w(34) %w(36) %w(38) %w(40)), %( %noRouting )) %SysRequest(289,OpenQueue,exchQueMgr,0000h,4,2,0, %( %p(16) %w(20) %p(22) %w(26) %w(12) %w(14)), %( %noRouting )) %SysRequest(290,ResetMemorySL,exchSched,0009h,0,0,0, %( %none ), %( %noRouting )) %SysRequest(291,ResetAllSegs,exchSched,000Ah,0,0,0, %( %none ), %( %noRouting )) %SysRequest(292,FreeLargeLL,exchSched,000Bh,0,0,0, %( %none ), %( %noRouting )) %SysRequest(293,LoadFile,exchMem,0A00h,10,0,1, %( %fh %w(14) %w(16) %w(18) %c(0,20) %p(22) %w(26) ), %( %noRouting )) %SysRequest(294,ReOpenFile,exchFilSys1,0001h,6,2,1, %( %c(2,34) %p2 %pbcb0 %pbcb1 %w(14) ), %( %FileSpec %SpecPW %openFh)) %SysRequest(295,SwapInContext,exchSched,0000h,2,0,0, %( %fh ), %( %noRouting )) %SysRequest(296,CreateUser,exchSched,0F00h,6,1,1,  %( %p(18) %w(22) %w(12) %c(4,14) %p(24) %c(2,28) %w(16) ), %( %noRouting )) %SysRequest(297,NotUsed,0,0h,6,0,1, %( ), %( )) %SysRequest(298,SetKbdHandler,exchResex,0D24h,6,0,0, %( %p(14) %w(12) ), %( %noRouting )) %SysRequest(299,AllocMe9  %noRouting )) %Request(100Eh,ReMakeFh,exchFilSys1,0403h,6,0,1, %( %fh %p0 %c(2,22) ), %( %rFh )) %Request(100Fh,Sync1,exchNotInstalled,0,2,0,1, %( %w(12) %p(14) %w(18) ), %( %noRouting )) %Request(1010h,Sync2,exchNotInstalled,0,2,0,1, %( %w(12) %p(14) %w(18) ), %( %noRouting )) %Request(1011h,Sync3,exchNotInstalled,0,2,0,1, %( %w(12) %p(14) %w(18) ), %( %noRouting )) %Request(1012h,Sync4,exchNotInstalled,0,2,0,1, %( %w(12) %p(14) %w(18) ), %( %noRouting )) %Request(1013h,Sync5,exchNotInstalled,0,2,0,1, %( %w(12) %p(14) %w(18) ), %( %noRouting )) %Request(1014h,Sync6,exchNotInstalled,0,2,0,1, %( %w(12) %p(14) %w(18) ), %( %noRouting )) %Request(1015h,Sync7,exchNotInstalled,0,2,0,1, %( %w(12) %p(14) %w(18) ), %( %noRouting )) %Request(1016h,Sync8,exchNotInstalled,0,2,0,1, %( %w(12) %p(14) %w(18) ), %( %noRouting )) ; ; Requests 306 to 0FDFh are reserved for future expansion by ; Convergent. ; ; NOTES -- ; *1 ... Request number 25 (ReadDirSector) field for s2 is a ;moryReal,exchMem,0026h,6,0,1, %( %w(12) %p0 %c(4,22) ), %( %noRouting )) %SysRequest(300,DeallocMemoryReal,exchMem,0027h,6,0,0, %( %p(14) %w(12) ), %( %noRouting )) %SysRequest(301,CallSourceDbgNub,exchKbd,0600h,6,1,1, %( %fh %p0 %c(2,22) %p1 %c(4,28) ), %( %noRouting )) %SysRequest(302,QueryNodeName,exchNotInstalled,0,0,0,2, %( %p(12) %w(16) %p(18) %c(2,22) ), %( %noRouting )) %SysRequest(303,ReadSwap,exchSched,0,6,0,3, %( %fh %p(14) %pbcb0 %p1 %c(2,28) %p2 %c(2,34) ), %( %noRouting )) %SysRequest(304,WriteSwap,exchSched,0,6,1,0, %( %fh %p(14) %pbcb0 ), %( %noRouting )) %SysRequest(305,DeactivateRunFile,exchSched,0,2,0,0, %( %fh ), %( %noRouting )) %SysRequest(306,GetMemoryInfo,exchMem,0D28h,6,0,2, %( %pbcb0 %p1 %c(2,28) ), %( %noRouting )) %SysRequest(307,ReservedForOem,0,0,0,0,0, %( %none ), %( %noRouting )) %SysRequest(308,ReservedForOem,0,0,0,0,0, %( %none ), %( %noRouting )) %SysRequest(309,ReservedForOem,0,0,0,0,0, %( %none ), %( %noRouting )) %SysRequest(310,Sync1,exchNotInstalled,0,2,0,1, %( %w(12) %p(14) %w(18) ), %( %noRouting )) %SysRequest(311,Sync2,exchNotInstalled,0,2,0,1, %( %w(12) %p(14) %w(18) ), %( %noRouting )) %SysRequest(312,Sync3,exchNotInstalled,0,2,0,1, %( %w(12) %p(14) %w(18) ), %( %noRouting )) %SysRequest(313,Sync4,exchNotInstalled,0,2,0,1, %( %w(12) %p(14) %w(18) ), %( %noRouting )) %SysRequest(314,Sync5,exchNotInstalled,0,2,0,1, %( %w(12) %p(14) %w(18) ), %( %noRouting )) %SysRequest(315,Sync6,exchNotInstalled,0,2,0,1, %( %w(12) %p(14) %w(18) ), %( %noRouting )) %SysRequest(316,Sync7,exchNotInstalled,0,2,0,1, %( %w(12) %p(14) %w(18) ), %( %noRouting )) %SysRequest(317,Sync8,exchNotInstalled,0,2,0,1, %( %w(12) %p(14) %w(18) ), %( %noRouting )) %Request(1000h,ChangeUserNumISAM,exchISAM,001Ch,2,0,0, %( %w(12) ), %( %noRouting )) %Request(1001h,QuietISAMUser,exchISAM,001Dh,2,0,0, %( %w(12) ), %( %noRouting )) %Request(1002h,QuietContext,exchTerm,0003h,2,0,0, %( %w(12) ), %( %noRouting )) %Request(1003h,QuietQMGR,exchQueMgr,0h,2,0,0, %( %w(12) ), %( %noRouting )) %Request(1004h,QuietSplr,exchSplr,0h,2,0,0, %( %w(12) ), %( %noRouting )) %Request(1005h,Execfh,exchTerm,0005h,4,0,0, %( %w(12) %w(14) ), %( %noRouting )) %Request(1006h,InitCommLine,exchCommLine,0300h,6,2,1, %( %pbcb0 %pbcb1 %pbcb2 ), %( %noRouting )) %Request(1007h,ResetCommLine,exchCommLine,0301h,6,0,0, %(%w(12) ), %( %noRouting )) %Request(1008h,ChangeCommLineBaudRate,exchCommLine,0302h,6,0,0, %(%w(12) %w(14) %w(16) ), %( %noRouting )) %Request(1009h,TerminateCommLine,exchNotPresent,0000h,2,0,0, %(%w(12) ), %( %noRouting )) %Request(100Ah,ChangeUserNumCommLine,exchNotPresent,0000h,2,0,0, %(%w(12) ), %( %noRouting )) %Request(100Bh,WaitSync,exchNotInstalled,0000h,2,0,0, %(), %( %noRouting )) %Request(100Ch,NewTapeIO,exchNotInstalled,0000h,6,0,3, %(), %( %noRouting )) %Request(100Dh,NewTapeIO,exchNotInstalled,0000h,6,1,2, %(), %( :  constant 512 (200h). This is acheived by setting byte ; 35 of request block to 2,leaving byte 34 as 00h. ; *2 ... Request numbers 63,64,65,66,70,71,72,... are used ; internally by CTOS. ; ; ; Request -1 is included only as an example of a user request,and ; is "commented out". ; ; (Note that exchanges 0 to 27 are reserved for CTOS processes.) ; %UsrRequestInit %' %' %UsrRequest(-1,UserService,exchNotInstalled,0000h,6,1,1, %' %( %w(12) %w(16) %pbcb0 %pbcb1 %w(14) ), %' %( %noRouting )) %' %' where %' %' -1 is request code (0FFFFh). %' %' UserService is the name of the service. This is %' included here for readability only and %' is not actually used for anything. %' %' exchNotInstalled is the service exchange. The exchange %' "exchNotInstalled" goes to the agent at %' cluster workstations and is invalid at %' the master until the user system service %' does a ServeRq request. %' %' 0000H is the local service code (which the %' system service can find out with the %' QueryRequestInfo request). %' %' 6  is the number of bytes of control %' information in the request block. This %' is placed at offsets 12, 14, and 16 as %' three words by the %w()s. %' %' 1 There is one data buffer sent from %' client to service (%pbcb0). %' %' 1 There is one data buffer sent from %' service back to client (%pbcb1). %' %' There is no routing. The call to the procedural interface %' would look something like: %' %' erc := UserService(controlInfo1,controlInfo3, %' pbDataToServer, cbDataToServer, %' pbBufferRet, sBufferRetMax, %' controlInfo2); %' %' The entry in RqLabl.Asm would be: %' %' %RqName(-1, "UserService") %' ; ; The list of request codes which the CTOS termination process ; issues to quiet the process activities during subsystem ; termination (invoked with "Exit" or "Chain"). The requests ; are generated with no arguments and with request numbers as ; given to the macro. ; %TerminationRequest(70) ; ResetKbd %TerminationRequest(71) ; ResetSysIn %TerminationRequest(96) ; PurgeISAM %TerminationRequest(108) ; StopEm3270 %TerminationRequest(153)  ; CloseAllCommLines %TerminationRequest(164) ; ResetQueMgr %TerminationRequest(169) ; PurgeX25User %TerminationRequest(195) ; PurgeTapeUser %TerminationRequest(197) ; ResetSplr %TerminationRequest(233) ; TerminateSNAUser %TerminationRequest(239) ; PurgeMailUser %TerminationRequest(72) ; ResetAgent %TerminationRequest(270) ; CtNetTermination %TerminationRequest(273) ; CMTermination %TerminationRequest(274) ; Filter Process Termination %TerminationRequest(1009h) ; TerminateCommLine EVEN ; ; The list of request codes which the CTOS master workstation ; agent or the CtNetServer issues on behalf of cluster workstation ; when the master or the CtNetServer determines that a cluster ; workstation is not communicating with it any more. ; %WsAbortRequest(70) ;* ResetKbd %WsAbortRequest(71) ;* ResetSysIn %WsAbortRequest(96) ; PurgeISAM %WsAbortRequest(108) ; StopEm3270 %WsAbortRequest(148) ; PurgeQueueServer %WsAbortRequest(153) ; CloseAllCommLines %WsAbortRequest(195) ; PurgeTapeUser %WsAbortRequest(197) ;* ResetSplr %WsAbortRequest(267) ; PurgeX25 %WsAbortRequest(229) ; PurgeSNAUser %WsAbortRequest(239) ; PurgeMailUser %WsAbortRequest(251) ; PurgeMailUniqueId %WsAbortRequest(112) ; FileSystemAbort %WsAbortRequest(274) ;* Filter Process EVEN ; ; The list of request codes which a Multi-Partitioned CTOS ; issues on behalf of a system service to notify other system ; services its user number is changing. These requests:  pingRq, %nSwappingRq+1)) %*define(xOut(str))(%out(%str)) %define(nl)( ) public rgNetRouting, rgPrgNetRouting public rgRqExchgSys public rgSCntlInfoSys, rgNReqRespPbCbSys public rgLocalServiceCode, rgLocalServiceCodeSys, nSysRequest, rcLookupSys, rcMaxSys public rgRqExchgUsr public rgSCntlInfoUsr, rgNReqRespPbCbUsr public rgLocalServiceCodeUsr, nUsrRequest, rcLookupUsr, rcMaxUsr public nTerminationRqInit, nWsAbortRqInit, nSwappingRqInit, nChgUserNumRqInit Public rcLookUp, rgPrcLookUp, rgPrcLookUpBase Public rgRqExchg, rgPrgRqExchg Public rgRcMax, rgPrgLocalServiceCode, rgPrgNetRouting Public rgSwappingRq, rgChgUserNumRq, rgTerminationRq, rgWsAbortRq STACK segment word stack 'STACK' STACK ends ; For loadable requests, put first the tables that will be discarded: ; rgP's, TCode. Then put OCode, because part of it may be discardable. ; OCode contains the dividing point. ; ; Version and Tables ; Table array entries: rgWsAbortRq, rgChgUserNumRq, rgTerminationRq, ; rgSwappingRq. The second word tells Ini are ; issued when the system service does a ConvertToSys request. ; The system service's new user number is contained in a word ; at offset 4 in the request block. The system service's ; previous user number is contained in a word at offset 12 in ; the request block. ; CTOS II does not require ChangeUserNum requests. They are defined ; here for mixed cluster compatibilty (e.g. CTOS II master/CTOS I cluster). ; %ChgUserNumRequest(218) ; ChangeUserNumQmg %ChgUserNumRequest(259) ; ChangeUserNumMail %ChgUserNumRequest(20483) ; ChangeUserNumCtNetAgent %ChgUserNumRequest(1000h) ; ChangeUserNumISAM %ChgUserNumRequest(100Ah) ; ChangeUserNumComm ; ; The list of request codes which the CTOS termination process ; issues to quiet the process activities before subsystem ; swap-out (invoked with "SuspendContext"). The requests ; are generated with one argument 'ercSwapping' and with request ; numbers as given to the macro. ; List the requests that cure the most common outstanding requests ; first. Swapping algorithm stops early when there are no more ; outstanding requests, avoiding lengthy requests like ; 'QuietISAMUser' as ISAM is rarely in use. ; %SwappingRequest(265) ; QuietKbdForSwap %SwappingRequest(274) ;* Quiet Filter Process %SwappingRequest(260)  ; QuietMailUser %SwappingRequest(1003h) ; QuietQMGR %SwappingRequest(1004h) ; QuietSplr %SwappingRequest(1001h) ; QuietISAMUser %final END Service,exchNotInstalled,0000h,6,1,1, %' %( %w(12) %w(16) %pbcb0 %pbcb1 %w(14) ), %' %( %noRouting )) %' %; ; COPYRIGHT 1980,1983 CONVERGENT TECHNOLOGIES, INC. ; ALL RIGHTS RESERVED ; ; THIS PROGRAM IS FURNISHED UNDER A LICENSE RESTRICTING ITS USE ; SOLELY FOR THE OPERATION OF A DESIGNATED COMPUTER FOR A ; PARTICULAR PURPOSE, AND MAY NOT BE COPIED OR OTHERWISE USED ; WITHOUT THE PRIOR WRITTEN CONSENT OF CONVERGENT TECHNOLOGIES, ; INC. TITLE TO AND OWNERSHIP OF THE PROGRAM, INCLUDING ITS ; SOURCE CODE, SHALL AT ALL TIMES REMAIN IN CONVERGENT TECHNOLOGIES. ; %Set(Level,0) %Set(counter,0) %SET(nSysRequest,0) %SET(nUsrRequest,0) %SET(nTerminationRq,0) %SET(nSwappingRq,0) %SET(nWsAbortRq,0) %SET(nChgUserNumRq,0) ; ; macro for defining termination request needed ; %*DEFINE (TerminationRequest(rc))( rgTables segment public 'MEMORY' %IF (%nTerminationRq EQ 0) THEN ( EVEN rgTerminationRq LABEL WORD) FI DW %rc rgTables ends %SET(nTerminationRq, %nTerminationRq+1)) ; ; macro for defining abort request needed ; %*DEFINE (WsAbortRequest(rc))( rgTables segment public 'MEMORY' %IF (%nWsAbortRq EQ 0) THEN ( rgWsAbortRq LABEL BYTE) FI DW %rc rgTables ends %SET(nWsAbortRq, %nWsAbortRq+1)) ; ; macro for defining ChgUserNum request needed ; %*DEFINE (ChgUserNumRequest(rc))( rgTables segment public 'MEMORY' %IF (%nChgUserNumRq EQ 0) THEN ( rgChgUserNumRq LABEL BYTE) FI DW %rc rgTables ends %SET(nChgUserNumRq, %nChgUserNumRq+1)) ; ; macro for defining Swapping request needed ; %*DEFINE (SwappingRequest(rc))( rgTables segment public 'MEMORY' %IF (%nSwappingRq EQ 0) THEN ( rgSwappingRq LABEL BYTE) FI DW %rc rgTables ends %SET(nSwap; tRqEx how many bytes are in ; rgTables. rgTables segment public 'MEMORY' DB 'J', 'F' ;Version, change here and in InitRqEx.plm cbRgTables DW 0 rgTables ends ; Array [0..16] of pointer to rgRqExchg ; rqSeg5 segment public 'const' rgPrgRqExchg Label Byte DD rgRqExchgSys rqSeg5 ends ; Array [0..8] of pointer to rcLookup ; rqSeg6 segment word public 'const' rgPrcLookup Label Byte DD RcLookUpSys rqSeg6 ends ; array [ 0..8 ] of pointers to first word of table data ; rqSeg7 segment word public 'const'  rgPrcLookUpBase Label Byte DD pRgbTcodeBase ; entry for level 0 (0..FDF) rqSeg7 ends ; array [0..16] of max request codes ; rqSeg8 segment word public 'const' rgRcMax Label Byte rqSeg8 ends ; array [0..16] of pointers to local service code tables ; rqSeg9 segment word public 'const' rgPrgLocalServiceCode Label Byte DD rgLocalServiceCodeSys rqSeg9 ends ; array [0..16] of pointers to net routing code tables ; rqSeg10 segment word public 'const' rgPrgNetRouting Label Byte DD rgNetRouting rqSeg10 ends ; Put data segment with discarded segments, for loadable rq files ; data segment public 'data' dummy Label Byte data ends ; ; Format array entries ; TCode segment word public 'const' prgbTcodeBase Label Byte TCode ends ; Offsets into the 'format' array ; OCode segment word public 'const' rcLookUp Label Byte OCode ends ICode segment word public 'const' ICode ends RqGroup GROUP ICode, OCode, rqSeg6, rqSeg7, rqSeg8 ; Exchange servicing a request ; rqSeg0 segment word public 'const' rgRqExchg Label Byte rqSeg0 ends ; sCntlInfo array ; rqSeg1 segment word public 'const' rqSeg1 ends ; RqPbCb array, RespPbCb array ; rqSeg2 segment word public 'const' rqSeg2 ends ; Local Service code array ; rqSeg3 segment word public 'const' rqSeg3 ends ; Net Routing arrays ; rqSeg4 segment word public 'const' rqSeg4 ends ; format macros "none", "b", "w", and "c" (basic macros) ; %*define(none)() %*define(noRouting)() %*define(illegal)(%define(varLB)(Ill)) %*define(b(loc))(%define(n)(%eval(%loc))%IF(%n + 2 GT %sRq)THEN%' (%define(sRq)(%eval(%n + 2)))FI%define(varLB)(%varLB%bLab%n)%' %define(varDB)(%varDB db %loc)%SET(nVar,%nVar+1)) %*define(w(loc))(%define(n)(%eval(%loc))%' %IF(%n + 2 GT %sRq)THEN(%define(sRq)(%eval(%n + 2)))FI%' %define(varLB)(%varLB%n)%define(varDB)(%varDB db 80h+%loc)%SET(nVar,%nVar+1)) %*define(c(val,loc))(%if(%val ne 0) then(%define(n)(%eval(%loc))%' %IF(%n + 2 GT %sRq)THEN(%define(sRq)(%eval(%n + 2)))FI%' %define(conLB)(%conLB%eval(%val)%n)%define(conDB)(%conDB db %loc,%val)%SET(nCon,%nCon+1))fi) %*Define(bLab)(b) %*Define(sep)(X) ; ; Define abreviations on above macros: ; ;fh = w(12) %*define(fh)(%IF(0EH GT %sRq)THEN(%define(sRq)(0EH))FI%' %define(varLB)(%varLB%(0CH))%' %define(varDB)(%varDB DB 8CH)%SET(nVar,%nVar+1)) %*define(lfa)(%IF(12H GT %sRq)THEN(%define(sRq)(12H))FI%' %define(varLB)(%varLB%(10H0EH))%define(varDB)(%varDB DB 90H,8EH)%SET(nVar,%nVar+2)) %*define(p0)(%IF(16H GT %sRq)THEN(%define(sRq)(16H))FI%' %define(varLB)(%varLB%(14H12H))%define(varDB)(%varDB DB 94H,92H)%SET(nVar,%nVar+2)) %*define(s0)(%w(22)) %*define(pbcb0)(%IF(18H GT %sRq)THEN(%define(sRq)(18H))FI%' %define(varLB)(%varLB%(14H12H16H))%define(varDB)(%varDB DB 94H,92H,96H)%SET(nVar,%nVar+3)) %*define(p1)(%IF(1CH GT %sRq)THEN(%define(sRq)(1CH))FI%' %define(varLB)(%varLB%(1AH18H))%define(varDB)(%varDB DB 9AH,98H)%SET(nVar,%nVar+2)) %*define(s1)(%w(28)) %*define(pbcb1)(%IF(1EH GT %sRq)THEN(%define(sRq)(1EH))FI%' %define(varLB)(%varLB%(1AH18H1CH))%define(varDB)(%varDB DB 09AH,98H,09CH)%SET(nVar,%nVar+3))  %*define(p2)(%IF(22H GT %sRq)THEN(%define(sRq)(22H))FI%' %define(varLB)(%varLB%(20H1EH))%define(varDB)(%varDB DB 0A0H,9EH)%SET(nVar,%nVar+2)) %*define(s2)(%w(34)) %*define(pbcb2)(%IF(24H GT %sRq)THEN(%define(sRq)(24H))FI%' %define(varLB)(%varLB%(20H1EH22H))%define(varDB)(%varDB DB 0A0H,9EH,0A2H)%SET(nVar,%nVar+3)) %*define(p3)(%IF(28H GT %sRq)THEN(%define(sRq)(28H))FI%' %define(varLB)(%varLB%(26H24H))%define(varDB)(%varDB DB 0A6H,0A4H)%SET(nVar,%nVar+2)) %*define(pbcb3)(%IF(2AH GT %sRq)THEN(%define(sRq;  g2 segment DB %nReqPbCb DB %nRespPbCb rqSeg2 ends rqSeg3 segment DW %code rqSeg3 ends OCode segment DW offset %rqLabel - offset prgbTcodeBase OCode ends rqSeg4 segment DB %netRouting rqSeg4 ends %SET(nSysRequest,%nSysRequest+1)%xOut(,)) ; ; USR REQUESTS -- ; %*define(UsrRequestInit)(%' %' %' '%xOut(%nl Start User requests:%nl)%' %' %' '%Enter6(rgRqExchgUsr LABEL byte%' %' ',rgSCntlInfoUsr LABEL byte%' %' ',rgNReqRespPbCbUsr LABEL byte%' %' ',rgLocalServiceCodeUsr LABEL byte%' %' ',RcLookUpUsr LABEL byte%' %' ',RgNetRoutingUsr LABEL byte)%' ) %*define(UsrRequest(id,name,exchange,code,size,nReqPbCb,nRespPbCb,format,routing))(%' %' '%xOut(%id)%' %' '%nl;%name (%id)%nl %' '%define(varLB)()%' %' '%define(conLB)()%' %' '%define(varDB)()%' %' '%define(conDB)()%' %' '%define(nCon)(0)%' %' '%define(nVar)(0)%' %' '%set(sRq,12+%size+6*(%nReqPbCb+%nRespPbCb))%' %' '%set(netRouting,0)%' %' %' '%c(%size,0)%' %' '%c(%nReqPbCb,2)%' %' '%c(%nRespPbCb,3)%' %' '%format%' %' '%routing%' %' '%define(rqLabel)(T%conLB%sep%va)(2AH))FI%' %define(varLB)(%varLB%(26H24H28H))%define(varDB)(%varDB DB 0A6H,0A4H,0A8H)%SET(nVar,%nVar+3)) %*define(p(o))(%w(%o+2)%w(%o)) ; routing macros ; ; Set expandFileSpec and routeByNode %*define(FileSpec)(%SET(netRouting,%netRouting+3)) ; Set expandDevSpec and routeByNode %*define(DevSpec)(%SET(netRouting,%netRouting+1)) ; Set expandDirSpec and routeByNode %*define(DirSpec)(%SET(netRouting,%netRouting+2)) ; Set expand2FileSpecs and routeByNode %*define(FileSpec2)(%SET(netRouting,%netRouting+4)) ; Set expand2FileSpec specified by p2 and s2 and routeByNode %*define(FileSpecP2S2)(%SET(netRouting,%netRouting+5)) %*define(rFh)(%SET(netRouting,%netRouting+8)) %*define(openFh)(%SET(netRouting,%netRouting+40h)) %*define(closeFh)(%SET(netRouting,%netRouting+6)) %*define(CloseAtTermination)(%SET(netRouting,%netRouting+20h)) %*define(SpecPw)(%SET(netRouting,%netRouting+10h)) %*define(RW)(%SET(netRouting,%netRouting+80h)) ; ; Sys Requests -- ; %*define(SysRequestInit)(%' %' %' '%xOut(%nl Start Sys requests:%nl )%' %' %' '%Enter6(rgRqExchgSys LABEL byte%' %' ',rgSCntlInfoSys LABEL byte%' %' ',rgNReqRespPbCbSys LABEL word%' %' ',rgLocalServiceCode LABEL byte %' 'rgLocalServiceCodeSys EQU rgLocalServiceCode%' %' ',RcLookUpSys LABEL byte%' %' ',RgNetRouting LABEL byte)%' ) ; ; new table -- ; %*Define(NewTable)(TCode segment %rqLabel label byte db %sRq, %nVar %varDB db %nCon %conDB TCode ends ) ; %*define(c1xx(s,q,p))(%if(%q eq 0)then(%c10x(%s,%p))else(%c11x(%s,%q,%p))fi) %*define(c0xx(q,p))(%if(%q eq 0)then(%c00x(%p))else(%c01x(%q,%p))fi) %*define(c00x(p))(%if(%p eq 0)then(%c000)else(%c001(%p))fi) %*define(c01x(q,p))(%if(%p eq 0)then(%c010(%q))else(%c011(%q,%p))fi) %*define(c10x(s,p))(%if(%p eq 0)then(%c100(%s))else(%c101(%s,%p))fi) %*define(c11x(s,q,p))(%if(%p eq 0)then(%c110(%s,%q))else(%c111(%s,%q,%p))fi) %*define(c000)(%define(conDB)()%define(nCon)(0)%define(conLB)()) %*define(c001(p))(%define(conDB)( db 3,%p)%define(nCon)(1)%define(conLB)(3%eval(%p))) %*define(c010(q))(%define(conDB)( db 2,%q)%define(nCon)(1)%define(conLB)(2%eval(%q))) %*define(c011(q,p))(%define(conDB)( db 2,%q,3,%p)%define(nCon)(2)%define(conLB)(2%eval(%q)3%eval(%p))) %*define(c100(s))(%define(conDB)( db 0,%s)%define(nCon)(1)%define(conLB)(0%eval(%s))) %*define(c101(s,p))(%define(conDB)( db 0,%s,3,%p)%define(nCon)(2)%define(conLB)(0%eval(%s)3%eval(%p))) %*define(c110(s,q))(%define(conDB)( db 0,%s,2,%q)%define(nCon)(2)%define(conLB)(0%eval(%s)2%eval(%q))) %*define(c111(s,q,p))(%define(conDB)( db 0,%s,2,%q,3,%p)%define(nCon)(3)%define(conLB)(0%eval(%s)2%eval(%q)3%eval(%p))) %*define(SysRequest(id,name,exchange,code,size,nReqPbCb,nRespPbCb,format,routing))(%xOut(%id)%define(varLB)()%define(varDB)()%define(nVar)(0) %set(sRq,12+%size+6*(%nReqPbCb+%nRespPbCb))%set(netRouting,0)%if(%size EQ 0) THEN(%c0xx(%nReqPbCb,%nRespPbCb))ELSE(%c1xx(%size,%nReqPbCb,%nRespPbCb))FI %format%routing%define(rqLabel)(T%conLB%sep%varLB)%IF(NOT(%isdef(%rqLabel)))THEN(%NewTable)FI rqSeg0 segment DB %exchange rqSeg0 ends rqSeg1 segment DB %size rqSeg1 ends rqSe< rLB)%' %' '%IF(NOT(%isdef(%rqLabel))) THEN(%NewTable)FI %' %' '%Enter6(DB %exchange,DB %size,DB %nReqPbCb %' 'DB %nRespPbCb,DW %code,%' %' 'DW offset %rqLabel - offset prgbTcodeBase,DB %netRouting)%' %' '%SET(nUsrRequest,%nUsrRequest+1)%' %' '%xOut(,)%' ) ; Enter a string into each of 6 segments, used for constructing tables -- ; %*DEFINE(Enter6(data0,data1,data2,data3,data4,data5))( rqSeg0 segment %data0 rqSeg0 ends rqSeg1 segment %data1 rqSeg1 ends rqSeg2 segment %data2 rqSeg2 ends rqSeg3 segment %data3 rqSeg3 ends OCode segment %data4 OCode ends rqSeg4 segment %data5 rqSeg4 ends ) %*DEFINE(Enter3(data0,data1,data5))( rqSeg0 segment %data0 rqSeg0 ends rqSeg3 segment %data1 rqSeg3 ends OCode segment %data5 OCode ends ) %*DEFINE(Enter4(data0,data1,data5,data6))( rqSeg0 segment %data0 rqSeg0 ends rqSeg3 segment %data1 rqSeg3 ends OCode segment %data5 OCode ends rqSeg4 segment %data6 rqSeg4 ends ) %*define(RequestInit(OldLevel,Level))(%' %If (%OldLevel EQ 0h) Then ( rqSeg8 Segment Dw %nSysRequest rqSeg8 Ends ) Else ( rqSeg5 Segment DD rgRqExchg%OldLevel rqSeg5 Ends rqSeg9 Segment DD rgLocalServiceCode%OldLevel rqSeg9 Ends rqSeg10 Segment DD rgNetRouting%OldLevel rqSeg10 Ends rqSeg8 Segment DW %counter rqSeg8 Ends %If ((%OldLevel And 1) EQ 0) Then ( rqSeg6 Segment DD rgFormatOffsetTable%OldLevel rqSeg6 Ends rqSeg7 Segment DD prgbTcodeBase rqSeg7 Ends ) Fi ) Fi %Set(counter,0) %If (%Level NE 10h) Then ( %xOut(%nl Level %Level requests: ) %Enter4(rgRqExchg%Level LABEL byte,rgLocalServiceCode%Level Label Byte ,rgFormatOffsetTable%Level LABEL byte,rgNetRouting%Level Label Byte)%' ) Fi ) %*Define(erc1)(%xOut( Use UsrRequest for Requests in the -32..-1 range )) %*Define(erc2)(%xOut( Use SysRequest for Requests in the 0..0FDFh range )) %*define(Request(id,name,exchange,code,size,nReqPbCb,nRespPbCb,format,%' routing))(%define(varLB)()%define(conLB)()%define(varDB)()%define(conDB)%' ()%define(nCon)(0)%define(nVar)(0)%set(sRq,12+%size+6*(%nReqPbCb+%nRespPbCb))%' %set(netRouting,0)%c(%size,0)%' %c(%nReqPbCb,2)%c(%nRespPbCb,3)%format%routing%Set(OldLevel, %Level)%' %Set(Level, (%Id/1000h) And 0Fh)%If ((%eval(%Id) GE 0FFE0h) And (%' %Eval(%Id) LE 0FFFFh)) Then (%erc1)Fi%If (%Level EQ 0) Then (%erc2)Fi%' %While ((%OldLevel And 0Fh) LT %Level)(%RequestInit(%OldLevel,%' %Eval(%OldLevel+1))%Set(OldLevel,%OldLevel+1))%xOut(%id)%define(rqLabel)%' (T%conLB%sep%varLB)%IF(NOT(%isdef(%rqLabel))) THEN(%NewTable)FI %Enter4(DB %exchange,DW %Code,DW offset %rqLabel - offset prgbTcodeBase,DB %netRouting)%Set(counter,%counter+1)%xOut(,)) ; ; final -- set counters in various tables, create gen table. ; %*define(Final)( rgTables segment public 'MEMORY' %IF (%nWsAbortRq EQ 0) THEN (rgWsAbortRq label byte) FI %IF (%nChgUserNumRq EQ 0) THEN (rgChgUserNumRq label byte) FI %IF (%nTerminationRq EQ 0) THEN (rgTerminationRq label byte) FI %IF (%nSwappingRq EQ 0) THEN (rgSwappingRq label byte) FI rgTables ends OCode segment rcMaxSys DW %nSysRequest rcMaxUsr DW %nUsrRequest OCode ends data segment public 'data' rgnRequest label word nSysRequest DW %nSysRequest nUsrRequest DW %nUsrRequest nWsAbortRqInit DW %nWsAbortRq nChgUserNumRqInit DW %nChgUserNumRq nTerminationRqInit DW %nTerminationRq nSwappingRqInit DW %nSwappingRq data ends %While(%Level LE 15)(%RequestInit(%Level,%Eval(%Level+1))%Set(Level,%Level+1)) rqSeg5 Segment DD rgRqExchgUsr rqSeg5 Ends rqSeg6 Segment DD RcLookUpUsr rqSeg6 Ends rqSeg7 Segment DD pRgbTcodeBase rqSeg7 Ends rqSeg8 Segment Dw %nUsrRequest rqSeg8 Ends rqSeg9 Segment DD rgLocalServiceCodeUsr rqSeg9 Ends rqSeg10 Segment DD rgNetRoutingUsr, rgSCntlInfoSys, rgSCntlInfoUsr, rgNReqRespPbCbSys DD rgNReqRespPbCbUsr, rgWsAbortRq, rgChgUserNumRq, rgTerminationRq DD rgSwappingRq, rgnRequest DB %if(%*isdef(%fMerge)) THEN (%fMerge) ELSE(0FFh)FI rqSeg10 Ends rgTables segment public 'MEMORY' ORG offset cbRgTables DW (%nSwappingRq + %nChgUserNumRq + %nTerminationRq + %nWsAbortRq)*2 rgTables ends %Set(counter,0) %Set(Level,0h) %xOut(%nl End pass%nl)) N(%NewTable)FI rqSeg0 segment DB %exchange rqSeg0 ends rqSeg1 segment DB %size rqSeg1 ends rqSe<   4  4ç     6 6   6¾   ù ”’–š˜œŒŽ   8 8  8ù   ŒŽ   : :  :    ŒŽ ü  < <  <   Œ”’ ü  > >  >      @ @  @     $Œ”’–Žš˜ !ý ! B B€  B$ !€  5Œ”’–Žš˜ "ý " D D€  D5 "€ #û # F F  F$ #ˆ $û $ H H  H5 $ˆ %ý % J J€  J$ % &û & L L  L5 &ˆ 'ý ' N N€  N$ '  H”’ (  ( P P   PH ( )  ) R R   RC )  SŒ”’ *ô * T T   TS *  _ŽŒ +ô€ RequestˆCTAsm II-1.0–ï??SEG??SEGSTACKSTACKrgTablesMEMORYrqSeg5constrqSeg6constrqSeg7constrqSeg8constrqSeg9constrqSeg10constdatadataTCodeconstOCodeconstICodeconstrqSeg0constrqSeg1constrqSeg2constrqSeg3constrqSeg4constRqGroup˜h˜T˜hV˜hD˜H$ ˜H$ ˜H" ˜HD˜Hi˜h ˜H[ ˜H®˜H˜HU˜H>˜H| ˜Hª!"˜HU#$š %ÿÿÿÿ ÿ rgSCntlInfoSysrgLocalServiceCodeUsrª rgPrcLookUp nUsrRequest rcLookUp rgSwappingRqJrgSCntlInfoUsr> rgRqExchgSysrgPrcLookUpBase, nTerminationRqInitnSwappingRqInit rgLocalServiceCodergChgUserNumRq@rgNReqRespPbCbSysrgRcMax nWsAbortRqInit rcLookupSysrgTerminationRq rcMaxSysª rcLookupUsrª rgWsAbortRq$rgLocalServiceCodeSys nChgUserNumRqInitrgPrgLocalServiceCode rgPrgRqExchg rgNetRouting rgRqExchg nSysRequest rgPrgNetRoutingrgNReqRespPbCbUsr| rgRqExchgUsrU rcMaxUsr¬ JF œ ÄTÈT œ ÄT ÈT  œ ÄT ÈT  œ ÄTÈT  œ ÄTÈT           $ ”’–š˜œ ž¢                       ”’–           $  ž”’–š˜œŽ" ü       S  4”’–š˜œŽ ü       4   CŒ ü       C   IŒ”’–š˜œ ü     I   WŒŽ”’– ü     W   cŒŽ”’–  ü      c    ü      C    o”’–š˜œ  ü      o    ü      o    |ŒŽ  ü      |    „”’ ú     „   ”’–š˜œ ü        ž”’–š˜œŒ ü       ž   ¬$ ”’–š˜œ ž¢Ž ü  " "  "¬  ü  $ $  $o  ú  & &  &  ú  ( (  (   ¾”’–    * *   *¾   ÈŒ”’–    , ,   ,È     . .   .     0 0   0   Ó% ”’–š˜œŽ ž# ü  2 2  2Ó   ç$ ”’–š˜œ ž¢ ü  4=  + V V   V_ + ,ô , X X   XS , -ô - Z Z   Z_ -  g”’š˜ .ô . \ \   \g . /ô / ^ ^   ^ / 0ô 0 ` `   `H 0  v”’  1 1 b b  bv 1 2 2 d d  dv 2 3ú 3 f f  f 3 4 4 h h  h 4 5 5 j j  jH 5 6ò 6 l l  l 6 7ò 7 n n  nH 7 8ò 8 p p  p 8 9 9 r r  rC 9 : : t t  t„ :  ŽŒ ; ; v v  v ; <ò < x x   xH < =ù = z z  zH = >ú > | |  | > ?ò ? ~ ~  ~ ? @ @ € €  € @ Aò A ‚ ‚  ‚C A B B „ „   „ B Cò C † †  †C C D D ˆ ˆ   ˆ D  ˆŒŽ’”–  E  E  Š Š   Šˆ E Fò F Œ Œ  ŒC F G G Ž Ž  ŽC G Hÿ H    C H  “ Iú I ’ ’  ’“ I  ˜ ”’ J  J ” ”   ”˜ J  §   K  K  – –   –§ K L  L ˜ ˜   ˜¾ L M  M š š   š M  ¶ŒŽ Nþ N œ œ„  œ¶ N  Â0ŽŒ”’–š˜œ ž¢¦¤¨¬ª. Oþ O ž ž  žÂ O Pþ P    €   ¶ P  ÜŒŽ”’ Qþ Q ¢ ¢Ø  ¢Ü Q  ê" Œ’”˜–žœ  Rþ R ¤ ¤À  ¤ê R  þŒŽ’–” Sþ S ¦ ¦ÿï  ¦þ S  ŒŽ”’–š˜ Tþ T ¨ ¨Ø  ¨ T  "( žœ’”˜–šŒŽ¤¢ & Uþ U ª ª  ª" Us  ;ŒŽ”’–š˜ Vþ V ¬ ¬À  ¬; V  L ŒŽ’–”œš Wþ W ® ®À  ®L W  _( ŒŽ’”˜–šžœ¤¢ & Xþ X ° ° À  °_ X  x,ŒŽ’–”˜œšž¢ ¤¨¦* Yþ Y ² ² €  ²x Y  ’ ŒŽ’–”˜œš Zþ Z ´ ´ €  ´’ Z  ¦ŒŽ’”˜– [þ [ ¶ ¶ÿï  ¶¦ [ \þ \ ¸ ¸ €  ¸¦ \  ¸$ ŒŽ”’–š˜œ ž" ]þ ] º ºÿï  º¸ ]  Ï ŒŽ’–”œš ^þ ^ ¼ ¼ Ø  ¼Ï ^  䎌 _þ _ ¾ ¾ÿï  ¾ä _ `þ ` À À  ÀC ` aü a Â Â    aS bô b Ä Ä   Ä b c  c Æ Æ   Æ c  팔’– dÿ d È È  Èí d  ø" ŒŽ”’˜–œš ž e  e Ê Ê  Êø e f  f Ì Ì  ÌC f  ”’š˜œ gþ g Î Π Πg hþ h Ð Ð  Рh iþ i Ò Ò  Ò i  ”’š˜œ jþ j Ô Ô  Ô j kþ k Ö Ö  Ö k lþ l Ø Ø  ØC l  &”’ mþ m Ú Ú  Ú& m nþ n Ü Ü=  ŒŽ ¡þ ¡ B B   B‡ ¡  “ŒŽ’”˜– ¢þ ¢ D D   D“ ¢ £þ £ F F   FC £ ¤þ ¤ H H  HC ¤  ¥,Œ¨¦œšž¢ –”˜Ž’*$ ¥þ ¥ J J  J¥ ¥  ÀŒ”’–š˜œ ¦þ ¦ L L  LÀ ¦ # Ï6Œ¦¤¬ª®²° ž¢”’–š˜œŽ(4 §þ § N N  NÏ § ¨þ ¨ P P  Pc ¨ ©þ © R R  RC ©  î$ Œ”’–š˜ žŽ" ªþ ª T T  Tî ª «þ « V V  Vc « ¬þ ¬ X X  X ¬  ŒŽ ­þ ­ Z Z  Z ­   Œ–”˜’œš ®þ ® \ \  \  ®  ŒŽ ¯þ ¯ ^ ^  ^ ¯ °ô ° ` `  `C  Ü n oü o Þ Þ   ÞC o pú p à à  à“ p qþ q â â  â q  1(’”˜–šžœ ¤¢¦  rþ r ä ä  ä1 r  HŽŒ”’– sþ s æ æ  æH s  SŽŒ tþ t è è  èS t  [Ž’Œ uþ u ê ê  ê[ u vþ v ì ì  ìS v  fŽ’Œ–”˜ wþ w î î  îf w  vŽŒ”’– xþ x ð ð  ðv x y  y ò ò   ò_ y z÷ z ô ô  ô z {ü { ö ö  öí { |ü | ø ø  ø | }  } ú ú   ú }  ƒ*ŒŽ”’˜–œš ž¢¤¦¨ ~  ~ ü ü  üƒ ~ þ  þ þÿï  þä  €þ €  ÿï  ä € þ   ð  ê  ‚þ ‚  Р Ü ‚ ƒþ ƒ  ð  ; ƒ „þ „  ð  L „ …þ …     ð  _ … †þ †    Ô  Ü † ‡þ ‡  ÿï  ¦ ‡  — Ž’”˜– ˆþ ˆ  ÿï  — ˆ  ©$ ”’– Žš˜œ ž" ‰þ ‰    © ‰  ¾" ’”˜–šŒžœ Ž Šþ Š    ¾ Š  Ð" ’”ŽŒ˜–šžœ  ‹þ ‹    Р‹  ä.’”˜–šŒžœ Ž¤¢¦ª¨¬ Œþ Œ    ä Œ  þ Ž’ –”˜œšž þ     þ  Žþ Ž    ä Ž  ’”ŽŒ þ       þ          ’”ŽŒ˜–š ‘þ ‘ " "  " ‘  ,’”Œ ’þ ’ $ $   $, ’ “þ “ & &   &S “ ”þ ” ( (   (C ” •þ • * *  *C • –þ – , ,  ,H –  8ŽŒ”’– —þ — . .  .8 — ˜þ ˜ 0 0  0 ˜ ™þ ™ 2 2  2C ™ šþ š 4 4  4 š  DŒŽ’ ›þ › 6 6  6D › œþ œ 8 8  8C œ  OŒ þ  : :  :O   VŒŽ žþ ž < <  <V ž  b" ’”˜–šŽžœ  Ÿþ Ÿ > >  >b Ÿ  wŒŽ’”˜–  þ   @ @  @w    ‡>  °  (ŽŒ”’ ±  ± b b  b( ±  6Œ”’–š˜œŽ ² ² d d  d6 ² ³  ³ f f  fC ³ ´ ´ h h  hC ´  E”’–Œš˜ µô µ j j  jE µ  W  ¶  ¶ l l  lW ¶ ·  · n n  nC · ¸  ¸ p p  p ¸  ]ŒŽ’” ¹  ¹ r r  r] ¹ º  º t t   tž º  i$”’–š˜œ ž" »  » v v   vi »  z$ ”’–š˜œ ž¢  ¼ ¼ x x  xz ¼ ½ ½ z z  zo ½   ”’– š˜ ¾þ ¾ | |  | ¾A  ¡$ ŒŽ”’–š˜ ž" ¿þ ¿ ~ ~  ~¡ ¿  µ$ ŒŽ”’–š˜ ž" Àþ À € €  €µ À  ËŒ Áþ Á ‚ ‚  ‚Ë Á Âþ Â „ „  „C Â Ãþ Ã † †  †C à ÔŒ”’ Äþ Ä ˆ ˆ  ˆÔ Ä Å Å Š Š  ŠC Å  à" ŒŽ’”˜–žœ  Æþ Æ Œ Œø  Œà Æ Çþ Ç Ž Žø  Žà Ç Èö È     o È Éþ É ’ ’  ’ É Êù Ê ” ”  ”í Ê Ëù Ë – –  – Ë  öŽŒ”’ Ìþ Ì ˜ ˜  ˜ö Ì  Œ’ Íþ Í š šР š Í Îþ Î œ œÔ  œ¶ Î Ïþ Ï ž ž  žö Ï  ŽŒ”’–š˜ Ðþ Р       Ð Ñþ Ñ ¢ ¢  ¢ Ñ  "$ ŒŽ”’–š˜œ ž" Òþ Ò ¤ ¤€  ¤" Ò  8ŽŒ”’š˜ Óþ Ó ¦ ¦  ¦8 Ó  J:  Ôþ Ô  ¨ ¨ÿÿ  ¨J Ôa Õþ Õ  ª ªÿÿ  ªJ Õ Öþ Ö  ¬ ¬ÿÿ  ¬J Ö  SŒ”’–Ž ×ý × ® ®  ®S ×  _$ ”’–š˜œŒ ž¢ Øü Ø ° °  °_ Ø  r$ ”’–š˜œŒ ž¢ Ùü Ù ² ²  ²r Ù Úþ Ú ´ ´  ´C Ú Ûø Û ¶ ¶   ¶C Û  ƒ*ŒŽ”’–š˜œ ž¢¦¤¨ Üþ Ü ¸ ¸  ¸ƒ Ü Ýþ Ý º º  ºD Ý Þþ Þ ¼ ¼  ¼D Þ  ™Œ’ ßþ ß ¾ ¾  ¾™ ß  ¦,ŒŽ’–”˜œšž¢ ¤¨¦ª àþ à À À  À¦ à  ½ŒŽ’”˜–š áþ á Â Â  ½ á âþ â Ä Ä  ÄC â ãþ ã Æ Æ  ÆD ã äþ ä È È  ÈD ä åþ å Ê Ê  ÊC å æþ æ Ì Ì  ÌD æ çþ ç Î Î  ÎC ç  Ì –”˜œš èþ è Ð Ð  ÐÌ è éþ é Ò Ò  ÒC é  ÜŒ”’Ž  êþ ê Ô Ô  ÔÜ ê  ê" ŽŒ’”˜–žœ  ëþ ë Ö Ö  Öê ë  ŒŽ’”˜–š ìþ ì Ø Ø  Ø ì  ŒŽ–”˜ íþ í Ú Ú  Ú íH  $ ŽŒ”’–š˜ ž¢ îþ î Ü Ü  Ü îA ïþ ï Þ Þ  ÞC ï  2( ŒŽ’”˜–šžœ ¤¢& ðþ ð à à  à2 ð  JŒŽ”’–š˜ ñþ ñ â>    %ô %  J J   J€ % &ü & L L  L  &S 'ó ' N N  NC '  Ž”’–Œš˜ (ó ( P P  PŽ (  ¢ ) ) R R  R¢ ) *  * T T$   T_ * +ô + V V&  VS + ,ô , X X'  X_ ,  ©Œ”’š˜ -ò - Z Z  Z© -  »ŽŒ”’ .þ . \ \  \» .  Ç$ ŒŽ”’–š˜ ž" /ó / ^ ^  ^Ç /  ÜŒŽ”’– 0ó 0 ` `  `Ü 0 1ó 1 b b  bC 1  é”’–š˜ 2ô 2 d d(   dé 2 3 3 f f  f 3 4 4 h h  h 4 5 5 j j  j 5 â  âJ ñ òþ ò ä ä  ä¶ ò  [ŽŒ”’–š˜ óþ ó æ æ   æ[ ó  l ŒŽ’–”œš  ôþ ô è è   èl ô õþ õ ê ê   êC õ  " Œ’”˜–šžœŽ  öþ ö ì ì   ì ö ÷þ ÷ î î   î ÷ øþ ø ð ð  ðC ø  ”& ŒŽ’–”˜œš¢ $ ùþ ù ò ò  ò” ù úþ ú ô ô  ôD ú ûþ û ö ö  ö“ û ü  ü ø ø   ø ü  ¬$ ”’–š˜œ ž¢Œ ýü ý ú ú  ú¬ ý þ  þ ü ü   üÔ þ ÿò ÿ þ þ   þC ÿ  ¿ ”’ ò      ¿   ËŒ”’š˜ ò      Ë       È  þ     C  þ     C   ÛŽŒ        Û   ä Œ”’–š˜œŽ        ä   ôŽŒ”’ þ     ô    ”’Žš˜           ò      C          “          “    ŒŽ ÿ               $ ŽŒ”’–š˜œ ž"  þ         þ     “         í  ü       í    " "  "“  õ  $ $  $“     & &  &C     ( (  (C   2ŒŽ”’    * *   *2  ô  , ,   ,S   =ŒŽ”’ ô  . .   .=  ô  0 0   0=  ô  2 2   2_  ô  4 4   4_  ô  6 6!   6„   JŽ”’ ó  8 8"   8J   WŒ ó  : :#   :W   ^$ ŽŒ”’–š˜œ ž¢    < <   <^    > >  >^       @ @  @ƒ    q’”˜–šŒŽ !þ ! B B  Bq ! "ó " D D   D " #ó # F F   F # $ó $ H H   H $  €ŒŽ’˜–š?   ÷ŒŽ’ 6þ 6 l l  l÷ 6 7þ 7 n n  n÷ 7 8þ 8 p p  p÷ 8 9þ 9 r r  r÷ 9 :þ : t t  t÷ : ;þ ; v v  v÷ ; <þ < x x  x÷ < =þ = z z  z÷ = >   Œ >þ |  |  > ?þ ~  ~  ? @ €  €  @ Aþ ‚  ‚  A B „  „  B   ŒŽ C †  †  C   $ ”’–š˜œ ž¢ D  ˆ  ˆ  D  ! Œ E  Š  Š!  E  ' ŒŽ F  Œ  Œ'  F G Ž  Ž  G H     H  /  Iþ ’  ’/  I  4 $ Jþ ”  ”4  J  ; $ Kþ –  –;  K  D Œ”’ Lü ˜  ˜D  L  P ŒŽ’ Mþ š  šP  M Nþ œ  œP  N Oþ ž  žP  O Pþ     P  P Qþ ¢  ¢P  Q Rþ ¤  ¤P  R Sþ ¦  ¦P  S Tþ ¨  ¨P  T F G `  l  ™ ¤ © àÅ é ï H     "  $F &G (` *l ,” .™ 0à2Å 4  6å 8ï :û <p > @Ú B DP F H  J  L N P R T  ª>  > >œ ÄTÈT |œ ÄTÈT  >œ ÄTÈT  Uœ ÄTÈT ªœ ÄTÈT  Uœ ÄTÈT  ®œ ÄT ÈT  œ ÄT ÈT   Uœ ÄTÈT  ªœ ÄTÈT  Uœ ÄTÈT  Uœ ÄTÈT ªœ ÄTÈT  Uœ ÄTÈT  ®œ ÄT ÈT  œ ÄT ÈT  Uœ ÄTÈT ªœ ÄTÈT  Uœ ÄTÈT   Uœ ÄTÈT ªœ ÄTÈT  Uœ ÄTÈT    ®œ ÄT ÈT   œ ÄT ÈT  Uœ ÄTÈT ªœ ÄTÈT  Uœ ÄTÈT   Uœ ÄTÈT  ªœ ÄTÈT  Uœ ÄTÈT  ®œ ÄT ÈT  œ ÄT ÈT  $Uœ ÄTÈT $ªœ ÄTÈT  $Uœ ÄTÈT  (Uœ ÄTÈT (ªœ ÄTÈT  (Uœ ÄTÈT  ®œ ÄT ÈT  œ ÄT ÈT  ,Uœ ÄTÈT ,ªœ ÄTÈT  ,Uœ ÄTÈT  0Uœ ÄTÈT 0ªœ ÄTÈT  0Uœ ÄTÈT  ®œ ÄT ÈT  œ ÄT ÈT  4Uœ ÄTÈT 4ªœ ÄTÈT  4Uœ ÄTÈT  8Uœ ÄTÈT 8ªœ ÄTÈT  8Uœ ÄTÈT  ®œ ÄT ÈT  œ ÄT ÈT  <Uœ ÄTÈT <ªœ ÄTÈT  <Uœ ÄTÈT  @Uœ ÄTÈT  ªœ ÄT ÈT   œ ÄT ÈT    @ªœ ÄTÈT - @U>|$@JÿœQÄTÈTÄTÈTÄTÈ TÄ TÈTÄTÈTÄTÈTÄTÈTÄTÈTÄ TÈ"TÄ$T È&T  RŠ;################################################################ ; FILE REQUEST.ASM -- # ; # ; COPYRIGHT 1980, 1981, 1982, 1983 CONVERGENT TECHNOLOGIES,INC. # ; ALL RIGHTS RESERVED # ; # ; THIS PROGRAM IS FURNISHED UNDER A LICENSE RESTRICTING ITS USE # ; SOLELY FOR THE OPERATION OF A DESIGNATED COMPUTER FOR A # ; PARTICULAR PURPOSE,AND MAY NOT BE COPIED OR OTHERWISE USED # ; WITHOUT THE PRIOR WRITTEN CONSENT OF CONVERGENT TECHNOLOGIES, # ; INC. TITLE TO AND OWNERSHIP OF THE PROGRAM?  n # %' additional lines. A full description of the fields of the # %' macro and their use can be found in the CTOS manual and in # %' the System Programmers Guide. The macro arguments are # %' defined as follows: # %'  # %' %SysRequest( # %' rqCode ....... The request number of the service # %' interface. These numbers must be in # %' order with no omissions. Note that the # %' first entry in a new level is offset 0 # %' (The first entry in level 3 is 3000h) # %' ,name ......... The name of the procedure. This field # %' is here for convenience only and is not # %' used internally by the macro. # %' ,exchange ..... This is the CTOS exchange that the # %' request will be routed to by the # %' Request interface. User defined codes # %' should use a zero in this field # %' ,ServiceCode .. This field is for the convenience of # %' the Service process, and can be used in # %, INCLUDING ITS # ; SOURCE CODE, SHALL AT ALL TIMES REMAIN IN CONVERGENT # ; TECHNOLOGIES. # ; # ; # ; NOTES FOR CHANGING THIS FILE -- # ; # ; Please be aware that in the Convergent Assembly language # ; there are two types of comments,normal comments,(any text on # ; a line after a ";" character, and a macro comment (%' text ').# ; It is not possible to "comment out" a macro by inserting a # ; ";" in front of it. You may comment out a macro by replacing # ; the percent sign in the call with a ";",or by precceding the # ; call with "%'". This will cause the macro processor to # ; ignore any text up to and including the next "'" or RETURN # ; (0Ah) character,whichever comes first. # ; # ; Macro calls must not be mixed. In general,the invocation of # ; a macro causes an entry to be added to a table,and mixing # ; macro calls would result in scrambled tables. # ;################################################################ $INCLUDE (Request_MF.mdf) ;################################################################ ; There are three macros which are used to define requests: ; SysRequest, UsrRequest, and Request. ; ; SysRequest is used by Convergent Technologies to construct the ; tables in level 0 (Workstation CTOS requests). ; ; UsrRequest is utilized by users who have previously defined request ; codes in the range 0FFFEh..0FFFFh (or -32 to -1 in decimal). We suggest ; that new request codes not be defined in this block. ; ; All other request codes are defined using the Request macro. ; ; These macros constructs a set of tables which are used ; by CTOS to route the request to the proper CPU and to the ; proper exchange within a CPU. Other fields of the requests ; are used to implement the procedural interface. ; ; Requests are divided into groups called levels. The request ; level is defined as the high 4 bits of the request code. There ; is one exception to this rule: user requests in the range -1..-32 ; (0FFE0h..0FFFFh) are treated as being in a special level 16 (10h) ; for the purposes of generating the tables. In this file, use the ; UsrRequest macro to define requests in the -1..-32 range. ; ; Convergent reserves request levels 0 to 0Bh (request codes 0 to ; 0BFFF) for system use. User requests must be defined in levels ; 0Ch to 0Fh or in the special range of 0FFFFh to 0FFFEh. Remember ; that requests which are in even levels have procedural ; interfaces and must have corresponding entries in RqLabl.asm ; All requests, regardless of level, must have corresponding ; entries in Routing.asm ; ; Request codes must be contiguous. Dummy entries may be added ; to fill space. The "requestNumber" field is used by the ; macro just to verify the contiguity of the requests. ; # ; # %' SysRequest / Request / UsrRequest MACRO DEFINITION # %' # %' MACRO FORMAT -- # %' These macros all take 8 arguments which are # %' described below. The first 7 arguments must be on the same # %' line, and the last argument, the parameter format, can be o@ ' any way the process desires. # %' ,sCntInfo ..... # %' ,nReqPbCb ..... # %' ,nRespPbCb .... These values are put into the request # %' block which the CTOS procedural # %' interface creates for the user in the # %' fields of the same name. Note that # %' sCntInfo is limited to 64 bytes by the # %' existing cluster workstation code. # %' , %( format ) . The "format" is described in the # %' following section. # %' , %( routing) . This field defined the way the request # %' ,  routing. (see REQUEST.MDF for details) # %' , %(NetRouting).This field used by CT-Net define as # %' , below. # %' ) # %'  # %' FORMAT -- # %' The format is a set of short macros which define the # %' order and type of arguments that are pushed onto the stack # %' when a user calls the CTOS procedural interface. Also in # %' the "format" are any constants which go into the request # %' block. The CTOS procedure initializes the request block to # %' zeros, so any zero constants may be omitted. The macros are # %' defined as follows: # %'  # %' name: meaning: # %' %illegal ...... call to this request is an error. # %' %none ......... no arguments on stack (this call is # %' optional). # %' %c(v,o) ....... byte value "v" is placed in request # %' block at offset "o" in the request # %' block. # %' %w(o) ......... the next word on the stack goes at # %' offset "o". # %' %b(o) ......... the low byte of next word on stack goes # %' at offset "o" # %' # %' For convenience, the following abbreviations are also # %' defined: # %' # %' abbreviation: definition: # %' %fh .......... %w(12) # %' %lfa ......... %w(16) %w(14) # %' %p(o) ........ %w(o+2) %w(o) # %' %p0 .......... %w(20) %w(18) # %' %s0 .......... %w(22) # %' %p1 .......... %w(26) %w(24) # %' %s1 .......... %w(28) # %' %p2 .......... %w(32) %w(30) # %' %s2 .......... %w(34) # %' %p3 .......... %w(38) %w(36) # %' %pbCb0 ....... %w(20) %w(18) %w(22) # %' %pbCb1 ....... %w(26) %w(14) %w(28) # %' %pbCb2 ....... %w(32) %w(30) %w(34) # %' # %' # %' NET ROUTING -- %' The table rgNetRouting is used by the CTOS Kernel to decide whether a %' request gets routed by file handle, by file spec, or not at all. %' It is also used by CTOSIF.asm to determine how to expand file specs. %' The following is a set of general rules for request blocks that have %' file specs. These rules permit routing information to be encoded. %' %' 1. A request may not have more than two file specs. %' 2. The first file spec must be specified by the first pb/cb pair. %' 3. If a file spec has a password, it must be specified by the pb/cb %' pair that immediately follows the pb/cb for the file spec. %' 4. If one file spec has a password associated with it, then %' all file specs in the request must have passwords. %' %' %RW This request is a read or write and may have to be %' be broken up in to smaller requests. %' %ESC This request does not follow the rules above, and must be %' handled seperately (e.g., SpoolerPassword). %' %SpecPW All file spec pb/cb pairs are followed by password pb/cb pairs. %' %rFh Route this request by the file handle. %' %DevSpec Route this request by div spec %' %DirSpec Route this request by dir Spec %' %FileSpec Route this request by file spec %' %FileSpec2 Route this request by file spec (request contains 2 of them) %' %FileSpecP2S2 Route by file spec in p2/s2 ;################################################################ ;################################################################ ; Exchange definitions -- ; Exchanges 0 to 24 are reserved for CTOS processes. ; exchNul EQU 0 exchKbd EQU 1 ; Keyboard manager/ Debugger ; NO LONGER USED***> exchSysIn EQU 3 ;@  %p0 %s0 %p1 %s1 %w(12) ),%(%rLocal), %( %DevSpec %SpecPW )) %SysRequest(17,CreateDir,exchFilterPros,0003h,6,3,0, %( %p0 %s0 %p1 %s1 %p2 %s2 %w(14) %w(16) ),%(%rLocal), %( %DirSpec %SpecPW )) %SysRequest(18,DeleteDir,exchFilterPros,0004h,6,2,0, %( %p0 %s0 %p1 %s1 ),%(%rLocal), %( %DirSpec %SpecPW )) %SysRequest(19,CloseAllFiles,exchFilterPros,0504h,0,0,0, %( %none ),%(%rLocal), %( %noRouting )) %SysRequest(20,QuietIO,exchFilterPros,0507h,0,0,0, %( %none ),%(%rLocal), %( %noRouting ))  %SysRequest(21,QueryVidHdw,exchVideo,0C03h,6,0,1, %( %p0 %s0 ),%(%rLocal), %( %noRouting )) %SysRequest(22,LoadFontRam,exchVideo,0B00h,6,1,0, %( %fh %p0 %s0 ),%(%rLocal), %( %noRouting )) %SysRequest(23,LoadStyleRam,exchVideo,0B03h,6,1,0, %( %p0 %s0 ),%(%rLocal), %( %noRouting )) %SysRequest(24,LoadCursorRam,exchVideo,0B02h,6,1,0, %( %p0 %s0 ),%(%rLocal), %( %noRouting )) %SysRequest(25,ReadDirSector,exchFilterPros,0005h,6,2,1, %( %p0 %s0 %p1 %s1 %w(14) %p2 %c(2,35) ),%(%rLocal), System Input proccess exchTerm EQU 5 ; Application terminator exchLclFs EQU 10 ; File system manager/Utility exchResex EQU exchLclFs exchTask EQU exchLclFs ; All these are dynamically installed or not server functions exchVideo EQU 0 exchSplr EQU 0 exchUFS Equ 0 exchISAM EQU 0 exch3270 EQU 0 exchSplrOld EQU 0 exchQueMgr EQU 0 exchRJE EQU 0 exchCommLine EQU exchLclFs exchCommSer EQU 0 exchTape EQU 0 exchX25 EQU 0 exchDBMS EQU 0 ; DBMS service exchSNA EQU 0 ; SNA exchMailSer EQU 0 ; Mail Server ExchTia EQU 0 exchAgent EQU -1 exchNotInstalled EQU -2 exchMassIO EQU -3 ; Mass storage I/O manager exchFilSys1 EQU -4 ; File system manager/ Utility exchFilSys2 EQU -5 exchFilSys3 EQU -6 exchFilSys4 EQU -7 exchChgUsrN EQU -8 ; Multi-Part Change User Num Rq for FS exchSrpAgent EQU -9 exchLog EQU -10 exchFilterPros EQU -11 exchMem EQU -12 exchVp EQU -13 ; Var-Part only rqs exchKbd EQU -14 ; Keyboard manager/ Debugger, maybe resident exchTpReq EQU -15 ; SRP Tp 8251 service ;################################################################ ; FILE REQUEST.ASM -- # ; Start of System Requests. Note: The 0'th request MUST be present %SysRequestInit %SysRequest(0,(illegal),0,0000h,0,0,0, %( %illegal ),%(%rlocal), %( %noRouting )) %SysRequest(1,SetPath,exchLclFs,0D13h,6,3,0, %( %p0 %s0 %p1 %s1 %p2 %s2 ),%(%rLocal), %( %noRouting )) %SysRequest(2,ClearPath,exchLclFs,0D14h,0,0,0, %( %none ),%(%rLocal), %( %noRouting )) %SysRequest(3,SetPrefix,exchLclFs,0D15h,6,1,0, %( %p0 %s0 ),%(%rLocal),%( %noRouting )) %SysRequest(4,OpenFile,exchFilterPros,0001h,6,2,1, %( %c(2,34) %p2 %p0 %s0 %p1 %s1 %w(14) ),%(%rLocal), %( %FileSpec %SpecPW %openFh)) %SysRequest(5,CreateFile,exchFilterPros,0000h,6,2,0, %( %p0 %s0 %p1 %s1 %lfa ),%(%rLocal), %( %FileSpec %SpecPW )) %SysRequest(6,DeleteFile,exchFilSys1,0501h,2,0,0, %( %fh ),%(%rHandle), %( %rFh %closeFh )) %SysRequest(7,RenameFile,exchFilSys1,0002h,6,2,0, %( %fh %p0 %s0 %p1 %s1 ),%(%rHandle), %( %rFh %FileSpec %SpecPW )) %SysRequest(8,GetFileStatus,exchFilSys1,0700h,6,0,1, %( %fh %w(14) %p0 %s0 ),%(%rHandle),%( %rFh )) %SysRequest(9,SetFileStatus,exchFilSys1,0701h,6,1,0, %( %fh %w(14) %p0 %s0 ),%(%rHandle),%( %rFh )) %SysRequest(10,CloseFile,exchFilSys1,0500h,2,0,0, %( %fh ),%(%rHandle), %( %rFh %closeFh)) %SysRequest(11,MountVolume,exchFilterPros,0800h,6,2,0, %( %p0 %s0 %p1 %s1 ),%(%rLocal), %( %DevSpec %SpecPW )) %SysRequest(12,DismountVolume,exchFilterPros,0801h,6,2,0, %( %p0 %s0 %p1 %s1),%(%rLocal), %( %DevSpec %SpecPW )) %SysRequest(13,ChangeFileLength,exchFilSys1,0503h,6,0,0, %( %fh %lfa ),%(%rHandle), %( %rFh )) %SysRequest(14,GetDateTime,exchFilSys3,0200h,6,0,1, %( %p0 %c(4,22) ),%(%rMasterFp), %( %noRouting )) %SysRequest(15,GetVhb,exchFilterPros,0803h,6,1,1, %( %p0 %s0 %p1 %s1 ),%(%rLocal), %( %DevSpec )) %SysRequest(16,SetDevParams,exchFilterPros,0804h,6,2,0, %( A  %( %DirSpec %SpecPW )) ; *1 %SysRequest(26,GetDcbOld,exchFilterPros,0805h,6,2,1, %( %p0 %s0 %p1 %s1 %p2 %s2 ),%(%rLocal), %( %DevSpec )) %SysRequest(27,GetUcb,exchLclFs,0D17h,6,0,1, %( %p0 %s0 ),%(%rLocal), %( %noRouting )) %SysRequest(28,Chain,exchTerm,0000h,6,2,0, %( %p0 %s0 %p1 %s1 %w(12) %w(14) %w(16) ),%(%rLocal), %( %filespec )) %SysRequest(29,LoadTask,exchTask,0A00h,6,0,0, %( %fh %w(14) %w(16) ),%(%rLocal), %( %noRouting )) %SysRequest(30,SetFhLongevity,exchFilSys1,0505h,4,0,0, %( %w(12) %w(14) ),%(%rHandle), %( %rFh )) %SysRequest(31,GetFhLongevity,exchFilSys1,0506h,6,0,1, %( %fh %p0 %c(1,22) ),%(%rHandle), %( %rFh )) %SysRequest(32,ResetSubsys,exchTask,0E00h,6,0,0, %( %fh %w(14) %w(16) ),%(%rLocal), %( %noRouting )) %SysRequest(33,DeviceRead,exchMassIo,8000h,6,0,2, %( %w(12) %p0 %s0 %lfa %p1 %c(2,28) ),%(%rLocal), %( %RW )) %SysRequest(34,DeviceWrite,exchMassIo,8001h,6,1,1, %( %w(12) %p0 %s0 %lfa %p1 %c(2,28) ),%(%rLocal), %( %RW )) %SysRequest(35,Read,exchFilSys2,0000h,6,0,2, %( %fh %p0 %s0 %lfa %p1 %c(2,28) ),%(%rHandle), %( %rFh %RW )) %SysRequest(36,Write,exchFilSys2,0001h,6,1,1, %( %fh %p0 %s0 %lfa %p1 %c(2,28) ),%(%rHandle), %( %rFh %RW )) %SysRequest(37,DeviceReadIdAndData,exchMassIo,8002h,6,0,2, %( %w(12) %p0 %s0 %lfa %p1 %c(2,28) ),%(%rHandle), %( %noRouting )) %SysRequest(38,Format,exchFilSys2,0003h,6,1,1, %( %w(12) %p0 %s0 %lfa %p1 %c(2,28) ),%(%rHandle),  %( %rFh %RW )) %SysRequest(39,DeviceReadID,exchMassIo,8004h,6,0,2, %( %w(12) %p0 %s0 %lfa %p1 %c(2,28) ),%(%rHandle), %( %noRouting )) %SysRequest(40,AllocExch,exchResex,0D00h,6,0,1, %( %p0 %c(2,22) ),%(%rLocal), %( %noRouting )) %SysRequest(41,DeallocExch,exchResex,0D01h,2,0,0, %( %w(12) ),%(%rLocal), %(%noRouting)) %SysRequest(42,AllocMemorySL,exchResex,0D02h,6,0,1, %( %w(12) %p0 %c(4,22) ),%(%rLocal), %(%noRouting)) %SysRequest(43,DeallocMemorySL,exchResex,0D03h,6,0,0, %( %p(14) %w(12) ),%(%rLocal), %(%noRouting)) %SysRequest(44,AllocMemoryLL,exchResex,0D04h,6,0,1, %( %w(12) %p0 %c(4,22) ),%(%rLocal), %(%noRouting)) %SysRequest(45,DeallocMemoryLL,exchResex,0D05h,6,0,0, %( %p(14) %w(12) ),%(%rLocal), %(%noRouting)) %SysRequest(46,AllocAllMemorySL,exchResex,0D06h,6,0,2, %( %p0 %p1 %c(2,22) %c(4,28) ),%(%rLocal), %(%noRouting)) %SysRequest(47,ResetMemoryLL,exchResex,0D07h,0,0,0, %( %none ),%(%rLocal), %(%noRouting)) %SysRequest(48,QueryMemAvail,exchResex,0D08h,6,0,1, %( %p0 %c(2,22) ),%(%rLocal), %(%noRouting)) %SysRequest(49,OpenRTClock,exchKbd,0300h,6,1,0, %( %p0 %c(12,22) ),%(%rLocal), %(%noRouting)) %SysRequest(50,CloseRTClock,exchKbd,0400h,6,1,0, %( %p0 %c(12,22) ),%(%rLocal), %(%noRouting)) %SysRequest(51,SetDateTime,exchFilterPros,0201h,4,0,0, %( %w(12) %w(14) ),%(%rLocal), %(%noRouting)) %SysRequest(52,Beep,exchKbd,0100h,0,0,0, %( %none ),%(%rLocal), %(%noRouting)) %SysRequest(53,ReadKbd,exchKbd,0001h,6,0,1, %( %p0 %c(2,22) ),%(%rLocal), %(%noRouting)) %SysRequest(54,ReadKbdDirect,exchKbd,0001h,6,0,1, %( %w(12) %p0 %c(1,22) ),%(%rLocal), %(%noRouting)) %SysRequest(55,QueryKbdLEDs,exchKbd,0003h,6,0,1, %( %p0 %c(2,22) ),%(%rLocal), %(%noRouting)) %SysRequest(56,SetKbdLED,exchKbd,0004h,4,0,0, %( %w(12) %w(14) ),%(%rLocal), %(%noRouting)) %SysRequest(57,SetKbdUnencodedMode,exchKbd,0005h,2,0,0, %( %w(12) ),%(%rLocal), %(%noRouting)) %SysRequest(58,QueryKbdState,exchKbd,0006h,6,0,1, %( %p0 %c(4,22) ),%(%rLocal), %(%noRouting)) %SysRequest(59,SetSysInMode,exchNul,0008h,4,0,0, %( %w(14) %fh ),%(%rLocal), %(%noRouting)) %SysRequest(60,ReadActionCode,exchKbd,000Ah,6,0,1, %( %p0 %c(2,22) ),%(%rLocal), %(%noRouting)) %SysRequest(61,QueryWSNum,exchResex,0202h,6,0,1, %( %p0 %c(2,22) ),%(%rLocal), %(%noRouting)) %SysRequest(62,CloseAllFilesLL,exchFilterPros,0508h,0,0,0, %( %none ),%(%rLocal), %(%noRouting)) %SysRequest(63,KbdWakeUp,exchKbd,0002h,0,0,0, %( %none ),%(%rLocal), %(%noRouting))A  enameISAM,exchISAM,800Ah,2,4,1, %( %w(12) %p(14) %w(18) %p(20) %w(24) %p(26) %w(30) %p(32) %w(36) %p(38) %c(4,42) ),%(%rRemote), %( %rFh %FileSpec2 %SpecPW )) %SysRequest(90,SetISAMProtection,exchISAM,800Bh,2,2,1, %( %w(12) %p(14) %w(18) %p(20) %w(24) %p(26) %c(4,30) ),%(%rRemote), %( %rFh )) %SysRequest(91,SetupISAMIterationKey,exchISAM,0EFFFh,4,1,1, %( %w(12) %w(14) %p(16) %w(20) %p(22) %c(4,26) ),%(%rRemote), %( %noRouting )) %SysRequest(92,SetupISAMIterationPrefix,exchISAM,800Ch,4,1,1, %( %w(12) %w(14) %p(16) %w(20) %p(22) %c(4,26) ),%(%rRemote), %( %rFh )) %SysRequest(93,SetupISAMIterationRange,exchISAM,0EFFFh,6,2,1, %( %w(12) %w(14) %p(18) %w(22) %b(16) %p(24) %w(28) %b(17) %p(30) %c(4,34) ),%(%rRemote), %( %noRouting )) %SysRequest(94,StoreISAMRecord,exchISAM,0D80Dh,2,1,2, %( %w(12) %p(14) %w(18) %p(20) %c(4,24) %p(26) %c(4,30) ),%(%rRemote), %( %rFh )) %SysRequest(95,UnlockISAM,exchISAM,0EFFFh,0,0,1, %( %p(12) %c(4,16) ),%(%rRemote), %(%noRouting))  ; *2 %SysRequest(64,BeeperOff,0,0200h,0,0,0, %( %none ),%(%rLocal), %(%noRouting)) ; *2 %SysRequest(65,SetKbdUnencodedModeReal,exchKbd,0005h,2,0,0, %( %w(12) ),%(%rLocal), %(%noRouting)) ; *2 %SysRequest(66,KbdResetSysIn,exchNul,000Ch,0,0,0, %( %none ),%(%rLocal), %(%noRouting)) ; *2 %SysRequest(67,DisableActionFinish,exchKbd,0007h,2,0,0, %( %w(12) ),%(%rLocal), %(%noRouting)) %SysRequest(68,CheckpointSysIn,exchNul,0009h,0,0,0, %( %none ),%(%rLocal), %(%noRouting)) %SysRequest(69,SetIntHandler,exchResex,0D0Bh,12,0,0, %( %w(12) %p(14) %w(18) %w(20) %w(22) ),%(%rLocal), %(%noRouting)) %SysRequest(70,ResetKbd,exchKbd,0000h,2,0,0, %( %w(12) ),%(%rLocal), %(%noRouting)) ; *2 %SysRequest(71,ResetSysIn,exchNul,0000h,2,0,0, %( %w(12) ),%(%rLocal), %(%noRouting)) ; *2 %SysRequest(72,ResetAgent,exchAgent,0000h,2,0,0, %( %w(12) ),%(%rLocal), %(%noRouting)) ; *2 %SysRequest(73,(reserved),0,0000h,0,0,0, %( %illegal ),%(%rLocal), %(%noRouting)) %SysRequest(74,ResetVideo,exchVideo,0C00h,6,0,1, %( %b(12) %b(13) %b(14) %b(15) %p0 %c(2,22) ),%(%rLocal), %(%noRouting)) %SysRequest(75,InitVidFrame,exchVideo,0C01h,10,0,0, %( %b(12) %b(13) %b(14) %b(15) %b(16) %b(17) %b(18) %b(19) %b(20) %b(21) ),%(%rLocal), %(%noRouting)) %SysRequest(76,InitCharMap,exchVideo,0C02h,6,0,1, %( %p0 %s0 ),%(%rLocal), %(%noRouting)) %SysRequest(77,SetScreenVidAttr,exchVideo,0B01h,4,0,0, %( %w(12) %w(14) ),%(%rLocal), %(%noRouting)) %SysRequest(78,CloseISAM,exchISAM,8400h,2,0,1, %( %w(12) %p(14) %c(4,18) ),%(%rRemote), %( %rFh %closeFh )) %SysRequest(79,CreateISAM,exchISAM,0001h,0,5,1, %( %p(12) %w(16) %p(18) %w(22) %p(24) %w(28) %p(30) %w(34) %p(36) %w(40) %p(42) %c(4,46)),%(%rRemote), %( %FileSpec2 %SpecPW )) %SysRequest(80,DeleteISAM,exchISAM,8002h,2,0,1, %( %w(12) %p(14) %c(4,18) ),%(%rRemote), %( %rFh %closeFh )) %SysRequest(81,DeleteISAMRecord,exchISAM,0D803h,6,0,1, %( %w(12) %p(14) %p(18) %c(4,22) ),%(%rRemote), %( %rFh )) %SysRequest(82,GetISAMRecords,exchISAM,0C004h,4,0,3, %( %w(12) %b(14) %p(16) %w(20) %p(22) %c(2,26) %p(28) %c(4,32) ),%(%rRemote), %( %rFh )) %SysRequest(83,LockISAM,exchISAM,0EFFFh,2,1,1, %( %w(12) %p(14) %w(18) %p(20) %c(4,24) ),%(%rRemote), %(%noRouting)) %SysRequest(84,ModifyISAMRecord,exchISAM,0D805h,6,1,1, %( %w(12) %p(14) %p(18) %w(22) %p(24) %c(4,28) ),%(%rRemote), %( %rFh )) %SysRequest(85,OpenISAM,exchISAM,0006h,4,2,2, %( %p(28) %c(2,32) %p(16) %w(20) %p(22) %w(26) %w(12) %w(14) %p(34) %c(4,38) ),%(%rRemote), %( %FileSpec2 %SpecPW %openFh )) %SysRequest(86,ReadISAMRecordByUri,exchISAM,0C007h,6,0,2, %( %w(12) %p(14) %p(18) %w(22) %p(24) %c(4,28) ),%(%rRemote), %( %rFh )) %SysRequest(87,ReadNextISAMRecord,exchISAM,0C008h,2,0,3, %( %w(12) %p(14) %w(18) %p(20) %c(4,24) %p(26) %c(4,30) ),%(%rRemote), %( %rFh )) %SysRequest(88,ReadUniqueISAMRecord,exchISAM,0C009h,4,1,3, %( %w(12) %w(14) %p(16) %w(20) %p(22) %w(26) %p(28) %c(4,32) %p(34) %c(4,38) ),%(%rRemote), %( %rFh )) %SysRequest(89,RB  %SysRequest(96,PurgeISAMUser,exchISAM,000Eh,2,0,0, %( %w(12) ),%(%rRemote), %(%noRouting)) %SysRequest(97,OpenFileLL,exchFilterPros,0001h,6,2,1, %( %c(2,34) %p2 %p0 %s0 %p1 %s1 %w(14) ),%(%rLocal), %( %FileSpec %SpecPW %openFh )) %SysRequest(98,ConvertToSys,exchResex,0D0Ch,0,0,0, %( %none ),%(%rLocal), %(%noRouting)) %SysRequest(99,ServeRq,exchResex,0D0Dh,4,0,0, %( %w(12) %w(14) ),%(%rLocal), %(%noRouting)) %SysRequest(100,GetClusterStatus,exchSrpAgent,0000h,6,0,1, %( %w(12) %p0 %s0 ),%(%rLineNumber), %(%noRouting)) %SysRequest(101,SetCommISR,exchCommLine,0303h,22,0,0, %( %w(12) %p(14) %p(18) %p(22) %p(26) %p(30) ),%(%rLocal), %(%noRouting)) %SysRequest(102,ResetCommISR,exchCommLine,0305h,2,0,0, %( %w(12) ),%(%rLocal), %(%noRouting)) %SysRequest(103,KbAttn3270,exch3270,0000h,6,2,0, %( %c(1,22) %p(18) %p(24) %w(28) ),%(%rRemote), %(%noRouting)) %SysRequest(104,ScreenRead3270,exch3270,0001h,6,2,0, %( %c(1,22) %p(18) %p(24) %w(28) ),%(%rRemote), %(%noRouting)) %SysRequest(105,StatusRead3270,exch3270,0002h,6,2,0, %( %c(1,22) %p(18) %p(24) %w(28) ),%(%rRemote), %(%noRouting)) %SysRequest(106,ReadyForCmd3270,exch3270,0003h,6,1,1, %( %c(1,22) %p(18) %p(24) %w(28) ),%(%rRemote), %(%noRouting)) %SysRequest(107,StartEm3270,exch3270,0004h,6,1,1, %( %c(1,22) %p(18) %p(24) %w(28) ),%(%rRemote), %(%noRouting)) %SysRequest(108,StopEm3270,exch3270,0005h,2,0,0, %( %w(12) ),%(%rRemote), %(%noRouting)) %SysRequest(109,CancelRq3270,exch3270,0006h,6,1,0, %( %c(1,22) %p(18) ),%(%rRemote), %(%noRouting)) %SysRequest(110,ReportStatus3270,exch3270,0007h,6,1,1, %( %c(1,22) %p(18) %p(24) %w(28) ),%(%rRemote), %(%noRouting)) %SysRequest(111,SetVerifyCount,exchFilSys1,0509h,2,0,0, %( %w(12) ),%(%rMasterFp), %(%noRouting)) %SysRequest(112,FileSystemAbort,exchFilterPros,0508h,0,0,0, %( %none ),%(%rLocal), %(%noRouting)) %SysRequest(113,QuerySpooler,exchSplrOld,0000h,0,0,0, %( %none ),%(%rLocal), %(%noRouting)) %SysRequest(114,AddFileSpooler,exchSplrOld,0000h,4,4,0, %( %p(16) %w(20) %p(22) %w(26) %p(28) %w(32) %p(34) %w(38) %b(12) %b(13) %b(14) %b(15) ),%(%rLocal), %(%noRouting)) %SysRequest(115,DelFileSpooler,exchSplrOld,0000h,0,2,0, %( %p(12) %w(16) %p(18) %w(22) ),%(%rLocal), %(%noRouting)) %SysRequest(116,PausePrinter,exchSplrOld,0000h,0,1,0, %( %p(12) %w(16) ),%(%rLocal), %(%noRouting)) %SysRequest(117,RestartPrinter,exchKbd,0500h,2,1,0, %( %p(14) %w(18) %w(12) ),%(%rFileId), %(%noRouting)) %SysRequest(118,CancelPrint,exchSplrOld,0000h,0,1,0, %( %p(12) %w(16) ),%(%rLocal), %(%noRouting)) %SysRequest(119,GetSpoolerStatus,exchKbd,0600h,2,1,1, %( %p(14) %w(18) %w(12) %p(20) %w(24) ),%(%rFileId), %(%noRouting)) %SysRequest(120,GetNxtFilePrt,exchSplrOld,0000h,0,1,1, %( %p(12) %w(16) %p(18) %w(22) ),%(%rRemote), %(%noRouting)) %SysRequest(121,SetLpISR,exchResex,0D10h,6,0,0, %( %p(14) %w(12) ),%(%rLocal), %(%noRouting)) %SysRequest(122,DisableCluster,exchSrpAgent,0,4,0,0, %( %w(12) %w(14) ),%(%rMasterCp), %(%noRouting)) %SysRequest(123,GetRunFileHdr,exchFilSys1,0E00h,6,0,1, %( %fh %p0 %s0 ),%(%rHandle), %( %rFh )) %SysRequest(124,QueryDcb,exchFilterPros,0805h,6,1,1, %( %p0 %s0 %p1 %s1 ),%(%rLocal), %( %DevSpec )) %SysRequest(125,WriteLog,exchLog,0002h,6,1,0, %( %p0 %s0 ),%(%rLocal), %(%noRouting)) %SysRequest(126,SetCommISRRaw,exchCommLine,0304h,30,0,0, %( %w(12) %p(14) %p(18) %p(22) %p(26) %p(30) %w(34) %w(36) %w(38) %w(40) ),%(%rLocal), %(%noRouting)) %SysRequest(127,PurgeISAMTransaction,exchISAM,0EFFFh,0,0,1, %( %p(12) %c(4,16) ),%(%rRemote), %(%noRouting)) %SysRequest(128,EndISAMTransaction,exchISAM,0EFFFh,0,0,1, %( %p(12) %c(4,16) ),%(%rRemote), %(%noRouting)) %SysRequest(129,GetISAMRecordsHold,exchISAM,0F004h,4,0,3, %( %w(12) %b(14) %p(16) %w(20) %p(22) %c(2,26) %p(28) %c(4,32) ),%(%rRemote), %(%rFh)) %SysRequest(130,HoldISAMRecord,exchISAM,0D00Fh,6,0,1, %( %w(12) %p(14) %p(18) %c(4,22) ),%(%rRemote), %(%rFh)) %SysRequest(131,ReadISAMRecordByUriHold,exchISAM,0F007h,6,0,2, %( %w(B  er,0002h,4,0,0, %( %w(12) %w(14) ),%(%rLocal), %(%noRouting)) %SysRequest(155,DialComm,exchCommSer,0003h,2,1,0, %( %w(12) %p(14) %w(18) ),%(%rLocal), %(%noRouting)) %SysRequest(156,DisconnectComm,exchCommSer,0004h,2,0,0, %( %w(12) ),%(%rLocal), %(%noRouting)) %SysRequest(157,FlushCommBuffer,exchCommSer,0005h,4,0,0, %( %w(12) %b(14) ),%(%rLocal), %(%noRouting)) %SysRequest(158,GetCommParameters,exchCommSer,0006h,2,0,1, %( %w(12) %p(14) %c(20,18) ),%(%rlocal), %(%noRouting)) %SysRequest(159,OpenCommLine,exchCommSer,0007h,4,2,1, %( %b(12) %p(16) %w(20) %p(22) %w(26) %w(14) %p(28) %c(2,32) ),%(%rlocal), %(%noRouting)) %SysRequest(160,ReadComm,exchCommSer,0008h,4,0,2, %( %w(12) %w(14) %p(16) %w(20) %p(22) %c(2,26) ),%(%rlocal), %(%noRouting)) %SysRequest(161,SetCommParameters,exchCommSer,0009h,2,1,0, %( %w(12) %p(14) %c(20,18) ),%(%rlocal), %(%noRouting)) %SysRequest(162,WriteComm,exchCommSer,000Ah,4,1,1, %( %w(12) %w(14) %p(16) %w(20) %p(22) %c(2,26) ),%(%rlocal), %(%noRoutin12) %p(14) %p(18) %w(22) %p(24) %c(4,28) ),%(%rRemote), %(%rFh)) %SysRequest(132,ReadNextISAMRecordHold,exchISAM,0F008h,2,0,3, %( %w(12) %p(14) %w(18) %p(20) %c(4,24) %p(26) %c(4,30) ),%(%rRemote), %(%rFh)) %SysRequest(133,ReadUniqueISAMRecordHold,exchISAM,0F009h,4,1,3, %( %w(12) %w(14) %p(16) %w(20) %p(22) %w(26) %p(28) %c(4,32) %p(34) %c(4,38) ),%(%rRemote), %(%rFh)) %SysRequest(134,ReleaseISAMRecord,exchISAM,0D410h,6,0,1, %( %w(12) %p(14) %p(18) %c(4,22) ),%(%rRemote), %(%rFh))  %SysRequest(135,SetupISAMIteration,exchISAM,0EFFFh,4,1,1, %( %w(12) %w(14) %p(16) %w(20) %p(22) %c(4,26) ),%(%rRemote), %(%noRouting)) %SysRequest(136,StartISAMTransaction,exchISAM,0EFFFh,4,1,1, %( %b(12) %w(14) %p(16) %w(20) %p(22) %c(4,26) ),%(%rRemote), %(%noRouting)) %SysRequest(137,AddQueueEntry,exchQueMgr,0000h,6,3,0, %( %p(18) %w(22) %b(12) %b(13) %w(14) %p(24) %w(28) %p(30) %c(4,34) %w(16) ),%(%rRemote), %( %DevSpec )) %SysRequest(138,RemoveKeyedQueueEntry,exchQueMgr,0001h,4,3,0, %( %p(16) %w(20) %p(22) %w(26) %w(12) %p(28) %w(32) %w(14) ),%(%rRemote), %( %DevSpec )) %SysRequest(139,ReadNextQueueEntry,exchQueMgr,0002h,4,1,2, %( %p(16) %w(20) %p(12) %p(22) %w(26) %p(28) %w(32) ),%(%rRemote), %( %DevSpec )) %SysRequest(140,ReadKeyedQueueEntry,exchQueMgr,0003h,4,3,2, %( %p(16) %w(20) %p(22) %w(26) %w(12) %p(28) %w(32) %w(14) %p(34) %w(38) %p(40) %w(44) ),%(%rRemote), %( %DevSpec )) %SysRequest(141,MarkNextQueueEntry,exchQueMgr,0004h,2,1,2, %( %p(14) %w(18) %b(12) %p(20) %w(24) %p(26) %w(30) ),%(%rRemote), %( %DevSpec )) %SysRequest(142,MarkKeyedQueueEntry,exchQueMgr,0005h,4,3,2, %( %p(16) %w(20) %p(22) %w(26) %w(12) %p(28) %w(32) %w(14) %p(34) %w(38) %p(40) %w(44) ),%(%rRemote), %( %DevSpec ))  %SysRequest(143,RemoveMarkedQueueEntry,exchQueMgr,0006h,4,1,0, %( %p(16) %w(20) %p(12) ),%(%rRemote), %( %DevSpec )) %SysRequest(144,UnMarkQueueEntry,exchQueMgr,0007h,4,1,0, %( %p(16) %w(20) %p(12) ),%(%rRemote), %( %DevSpec )) %SysRequest(145,ReWriteMarkedQueueEntry,exchQueMgr,0008h,4,2,0, %( %p(16) %w(20) %p(12) %p(22) %w(26) ),%(%rRemote), %( %DevSpec )) %SysRequest(146,EstablishQueueServer,exchQueMgr,0009h,4,1,0, %( %p(16) %w(20) %w(12) %b(14) ),%(%rRemote), %( %DevSpec )) %SysRequest(147,TerminateQueueServer,exchQueMgr,000Ah,0,1,0, %( %p(12) %w(16) ),%(%rRemote), %(%noRouting)) %SysRequest(148,PurgeQueueServer,exchQueMgr,000Bh,2,0,0, %( %w(12) ),%(%rRemote), %(%noRouting)) %SysRequest(149,SignoffRJE,exchRJE,0000h,2,0,0, %( %w(12) ),%(%rRemote), %(%noRouting)) %SysRequest(150,SignonRJE,exchRJE,0000h,0,2,0, %( %p(12) %w(16) %p(18) %w(22) ),%(%rRemote), %(%noRouting)) %SysRequest(151,StatusRJE,exchRJE,0000h,0,0,2, %( %p(12) %c(2,16) %p(18) %w(22) ),%(%rRemote), %(%noRouting)) %SysRequest(152,AcceptCommCall,exchCommSer,0000h,4,0,0, %( %w(12) %w(14) ),%(%rLocal), %(%noRouting)) %SysRequest(153,CloseAllCommLines,exchCommSer,0001h,2,0,0, %( %w(12)),%(%rLocal), %(%noRouting)) %SysRequest(154,CloseCommLine,exchCommSC g)) %SysRequest(163,BreakComm,exchCommSer,000Bh,2,0,0, %( %w(12) ),%(%rlocal), %(%noRouting)) %SysRequest(164,ResetQueMgr,exchQueMgr,0000h,2,0,0, %( %w(12) ),%(%rRemote), %(%noRouting)) %SysRequest(165,NotifyNextIncomingCall,exchX25,0,8,1,3, %( %w(12) %p(38) %c(2,42) %p(26) %w(30) %p(32) %c(2,36) %p(20) %w(24) %w(14) %w(16) %w(18) ),%(%rRemote), %(%noRouting)) %SysRequest(166,AcceptX25Call,exchX25,0,6,2,0, %( %w(12) %p(18) %w(22) %p(24) %w(28) %w(16) ),%(%rRemote), %(%noRouting)) %SysRequest(167,InitiateX25Call,exchX25,0,6,3,3, %( %w(12) %p(36) %c(2,40) %p(42) %w(46) %p(48) %c(2,52) %p(30) %w(34) %p(18) %w(22) %p(24) %w(28) %w(14) ),%(%rRemote), %(%noRouting)) %SysRequest(168,ClearX25Call,exchX25,0,6,1,0, %( %w(12) %w(14) %p(18) %w(22) ),%(%rRemote), %(%noRouting)) %SysRequest(169,PurgeX25User,exchX25,0,2,0,0, %( %w(12) ),%(%rRemote), %(%noRouting)) %SysRequest(170,ReadX25Packet,exchX25,0,6,0,3, %( %w(12) %p(18) %w(22) %p(24) %c(2,28) %p(30) %c(1,34) %w(14) ),%(%rRemote), %(%noRouting)) %SysRequest(171,WriteX25Packet,exchX25,0,6,1,0, %( %w(12) %w(14) %p(18) %w(22) ),%(%rRemote), %(%noRouting)) %SysRequest(172,WriteX25Interrupt,exchX25,0,4,0,0, %( %w(12) %w(14) ),%(%rRemote), %(%noRouting)) %SysRequest(173,ResetX25Call,exchX25,0,4,0,0, %( %w(12) %w(14) ),%(%rRemote), %(%noRouting)) %SysRequest(174,QueryX25Status,exchX25,0,8,0,2, %( %w(12) %p(20) %w(24) %b(14) %b(15) %w(16) %w(18) %p(26) %c(1,30) ),%(%rRemote), %(%noRouting)) %SysRequest(175,ConnectX25Permanent,exchX25,0,2,0,1, %( %w(12) %p(14) %c(2,18) ),%(%rRemote), %(%noRouting)) %SysRequest(176,DeletePartition,exchTask,0F01h,2,0,0, %( %w(12) ),%(%rLocal), %(%noRouting)) %SysRequest(177,GetPartitionHandle,exchTask,0F02h,0,1,1, %( %p(12) %w(16) %p(18) %c(2,22) ),%(%rLocal), %(%noRouting)) %SysRequest(178,LoadPrimaryTask,exchTerm,0000h,6,2,0, %( %w(12) %p(18) %w(22) %p(24) %w(28) %w(14) ),%(%rLocal), %(%noRouting)) %SysRequest(179,TerminatePartition,exchTask,0F03h,2,0,0, %( %w(12) ),%(%rLocal), %(%noRouting)) %SysRequest(180,VacatePartition,exchTask,0E01h,2,0,0, %( %w(12) ),%(%rLocal), %(%noRouting)) %SysRequest(181,CreatePartition,exchTask,0F00h,6,1,1, %( %p(18) %w(22) %w(12) %b(14) %p(24) %c(2,28) ),%(%rLocal),  %(%noRouting)) %SysRequest(182,SetPartitionLock,exchTask,0F04h,2,0,0, %( %b(12) ),%(%rLocal), %(%noRouting)) %SysRequest(183,SetPartitionExch,exchTask,0F05h,2,0,0, %( %w(12) ),%(%rLocal), %(%noRouting)) %SysRequest(184,GetPartitionExch,exchTask,0F06h,2,0,1, %( %w(12) %p(14) %c(2,18) ),%(%rLocal), %(%noRouting)) %SysRequest(185,GetPartitionStatus,exchTask,0F07h,4,0,1, %( %w(12) %w(14) %p(16) %w(20) ),%(%rLocal), %(%noRouting)) %SysRequest(186,SetExitRunFile,exchTask,0D09h,6,2,0, %( %p(18) %w(22) %p(24) %w(28) %w(12) ),%(%rLocal), %(%noRouting)) %SysRequest(187,QueryExitRunFile,exchTask,0D0Ah,6,0,3, %( %p(18) %w(22) %p(24) %w(28) %p(30) %c(2,34) ),%(%rLocal), %(%noRouting)) %SysRequest(188,ConfigureSpooler, exchSplr,0000h,6,3,0,  %( %b(12) %p0 %s0 %p1 %s1 %p2 %s2 %b(13) %b(14) ),%(%rMasterFp), %( %FileSpecP2S2 )) %SysRequest(189,SpoolerPassword,exchSplr,0001h,6,2,0, %( %p0 %s0 %p1 %s1 ),%(%rMasterFp), %(%noRouting)) %SysRequest(190,OpenTape,exchTape,0,6,1,1, %( %p0 %s0 %b(12) %b(13) %b(14) %w(16) %p1 %c(2,28) ),%(%rRemote), %(%noRouting)) %SysRequest(191,ReadTapeRecords,exchTape,1,6,0,3, %( %fh %w(14) %p0 %s0 %p1 %c(2,28) %p2 %c(2,34) ),%(%rFileId), %(%noRouting)) %SysRequest(192,WriteTapeRecords,exchTape,2,6,1,2, %( %fh %w(14) %p0 %s0 %p1 %c(2,28) %p2 %c(2,34) ),%(%rFileId), %(%noRouting)) %SysRequest(193,TapeOperation,exchTape,3,6,0,0, %( %fh %b(14) %b(15) %w(16) ),%(%rFileId), %(%noRouting)) %SysRequest(194,CloseTape,exchTape,4,2,0,0, %( %fh ),%(%rFileId), %(%noRouting)) %SysRequest(195,PurgeTapeUser,exchTape,5,2,0,0, %( %w(12) ),%(%rRemote)) %SysRequest(196,TapeStatus,exchTape,6,6,0,1, %( %fh %p0 %c(2,22) ),%(%rFileId),%(%noRouting)) %SysRequest(197,ResetSplr,exchSplr,0000h,2,0,0, %( %w(12C  quest(223,AttachLu,exchSNA,0,4,0,1, %( %w(12) %p(16) %c(2,20) %b(14) ),%(%rRemote), %(%noRouting)) %SysRequest(224,InitiateSNASession,exchSNA,0,2,5,0, %( %w(12) %p(14) %w(18) %p(20) %w(24) %p(26) %w(30) %p(32) %w(36) %p(38) %w(42) ),%(%rRemote), %(%rFh)) %SysRequest(225,NotifyNextIncomingBind,exchSNA,0,4,0,2, %( %w(12) %w(14) %p(16) %w(20) %p(22) %w(26) ),%(%rRemote), %(%rFh)) %SysRequest(226,TerminateSNASession,exchSNA,0,2,0,0, %( %w(12) ),%(%rRemote), %(%rFh)) %SysRequest(227,AcceptSNASession,exchSNA,0,2,1,0, %( %w(12) %p(14) %w(18) ),%(%rRemote), %(%rFh)) %SysRequest(228,RejectSNASession,exchSNA,0,2,1,0, %( %w(12) %p(14) %w(18) ),%(%rRemote), %(%rFh)) %SysRequest(229,PurgeSNAUser,exchSNA,0,2,0,0, %( %w(12) ),%(%rRemote), %(%noRouting)) %SysRequest(230,CloseSNASession,exchSNA,0,2,1,0, %( %w(12) %p(14) %w(18) ),%(%rRemote), %(%rFh)) %SysRequest(231,DetachLu,exchSNA,0,2,0,0, %( %w(12) ),%(%rRemote), %(%rFh %CloseFh)) %SysRequest(232,QuerySNAStatus,exchSNA,0,8,0,2, ) ),%(%rLocal),%(%noRouting)) %SysRequest(198,ModifyISAMRecordByKey,exchISAM,0F811h,4,1,2, %( %w(12) %w(14) %p(16) %w(20) %p(22) %c(4,26) %p(28) %c(4,32) ),%(%rRemote), %(%rFh)) %SysRequest(199,DeleteISAMRecordByKey,exchISAM,0F812h,4,1,2, %( %w(12) %w(14) %p(16) %w(20) %p(22) %c(4,26) %p(28) %c(4,32) ),%(%rRemote), %(%rFh)) %SysRequest(200,LogRemote,exchLog,0001h,6,2,0, %( %p0 %s0 %p1 %s1 ),%(%rMasterFp), %(%noRouting)) %SysRequest(201,VacateParCleanup,exchAgent,0000h,0,0,0, %( %none ),%(%rLocal), %(%noRouting)) %SysRequest(202,GetWsUserName,exchResex,0203h,6,0,1, %( %w(12) %p0 %s0 ),%(%rLocal), %(%noRouting)) %SysRequest(203,SetWsUserName,exchResex,0204h,6,1,0, %( %p0 %s0 ),%(%rLocal), %(%noRouting)) %SysRequest(204,FinishISAMCommit,exchISAM,0013h,0,1,1, %( %p(12) %w(16) %p(18) %c(4,22) ),%(%rRemote), %(%DevSpec)) %SysRequest(205,HoldISAMDataSet,exchISAM,0D014h,4,0,1, %( %w(12) %b(14) %p(16) %c(4,20) ),%(%rRemote), %(%rFh)) %SysRequest(206,ReleaseISAMDataSet,exchISAM,0D415h,2,0,1, %( %w(12) %p(14) %c(4,18) ),%(%rRemote), %(%rFh)) %SysRequest(207,RollbackISAMTransaction,exchISAM,0016h,0,1,1, %( %p(12) %w(16) %p(18) %c(4,22) ),%(%rRemote), %(%DevSpec)) %SysRequest(208,SetISAMTransactionParams,exchISAM,0017h,0,2,1, %( %p(12) %w(16) %p(18) %w(22) %p(24) %c(4,28) ),%(%rRemote), %(%DevSpec)) %SysRequest(209,StartISAMCommit,exchISAM,0018h,0,2,1, %( %p(12) %w(16) %p(18) %w(22) %p(24) %c(4,28) ),%(%rRemote), %(%DevSpec)) %SysRequest(210,SetupISAMIterationLimits,exchISAM,8019h,6,2,1, %( %w(12) %w(14) %b(16) %p(18) %w(22) %p(24) %w(28) %p(30) %c(4,34) ),%(%rRemote), %(%rFh)) %SysRequest(211,BeginISAMTransaction,exchISAM,001Ah,0,1,2, %( %p(12) %w(16) %p(18) %c(7,22) %p(24) %c(4,28) ),%(%rRemote), %(%DevSpec)) %SysRequest(212,DbResourceRequest,exchDBMS,0FFFFh,10,3,3, %( %none ),%(%rRemote), %(%DevSpec %openFh )) %SysRequest(213,DbNodeRequest,exchDBMS,0FFFFh,10,3,3, %( %none ),%(%rRemote), %(%rFh %closeFh)) %SysRequest(214,DbHandleRequest,exchDBMS,0FFFFh,10,3,3, %( %none ),%(%rRemote), %(%rFh)) %SysRequest(215,ChangeOpenMode,exchFilSys1,0006h,6,1,0, %( %fh %p0 %s0 %w(14) ),%(%rHandle), %( %rFh %SpecPW )) %SysRequest(216,GetDirStatus,exchFilterPros,0007h,6,2,1, %( %p0 %s0 %p1 %s1 %w(12) %p2 %s2 ),%(%rLocal), %( %DirSpec %SpecPW )) %SysRequest(217,SetDirStatus,exchFilterPros,0008h,6,3,0, %( %p0 %s0 %p1 %s1 %w(12) %p2 %s2 ),%(%rLocal), %( %DirSpec %SpecPW )) %SysRequest(218,ChangeUserNumQmg,exchQueMgr,0000h,2,0,0, %( %w(12) ),%(%rRemote), %(%noRouting)) %SysRequest(219,ChangeUserNumFs,exchFilterPros,0D13h,2,0,0, %( %w(12) ),%(%rLocal), %(%noRouting)) %SysRequest(220,ReadSNAPIU,exchSNA,0,6,0,4, %( %w(12) %w(14) %w(16) %p(18) %w(22) %p(24) %w(28)  %p(30) %w(34) %p(36) %w(40) ),%(%rRemote), %(%rFh)) %SysRequest(221,WriteSNAPIU,exchSNA,0,2,1,0, %( %w(12) %p(14) %w(18) ),%(%rRemote), %(%rFh)) %SysRequest(222,XWriteSNAPIU,exchSNA,0,2,1,0, %( %w(12) %p(14) %w(18) ),%(%rRemote), %(%rFh)) %SysReD  %( %w(12) %p(20) %w(24) %b(14) %b(15) %w(16) %w(18) %p(26) %c(1,30) ),%(%rRemote), %(%FileSpec)) %SysRequest(233,TerminateSNAUser,exchSNA,0,2,0,0, %( %w(12) ),%(%rRemote), %(%noRouting)) %SysRequest(234,AcknowledgeMailReceipt,exchMailSer,0,6,1,0, %( %w(12) %p(18) %c(12,22) %w(14) %w(16) ),%(%rRemote), %( %rFh )) %SysRequest(235,CheckForMail,exchMailSer,1,4,1,2, %( %p(16) %w(20) %p(12) %p(22) %c(2,26) %p(28) %c(2,32) ),%(%rRemote), %( %DevSpec )) %SysRequest(236,ConfigureMail,exchMailSer,2,4,2,0, %( %w(12) %w(14) %p(16) %w(20) %p(22) %w(26) ),%(%rRemote), %( %rFh )) %SysRequest(237,ConnectNextMailCenter,exchMailSer,3,2,0,2, %( %w(12) %p(14) %c(2,18) %p(20) %w(24) ),%(%rRemote), %( %rFh %openFh)) %SysRequest(238,EstablishMailConnection,exchMailSer,4,0,2,2, %( %p(12) %w(16) %p(18) %w(22) %p(24) %c(2,28) %p(30) %w(34) ),%(%rRemote), %( %DevSpec %openFh)) %SysRequest(239,PurgeMailUser,exchMailSer,5,2,0,0, %( %w(12) ),%(%rRemote), %(%noRouting)) %SysRequest(240,QueryMailConfiguration,exchMailSer,6,4,2,2, %( %w(12) %w(14) %p(16) %w(20) %p(22) %w(26) %p(28) %w(32) %p(34) %c(2,38) ),%(%rRemote), %( %rFh )) %SysRequest(241,QueryMailStatus,exchMailSer,7,6,0,2, %( %w(12) %w(14) %w(16) %p(18) %w(22) %p(24) %c(2,28) ),%(%rRemote), %( %rFh )) %SysRequest(242,QueryMailUniqueId,exchMailSer,8,2,0,1, %( %w(12) %p(14) %c(4,18) ),%(%rRemote), %( %rFh )) %SysRequest(243,QueryServerForUser,exchMailSer,9,0,2,1, %( %p(12) %w(16) %p(18) %w(22) %p(24) %c(2,28) ),%(%rRemote), %( %DevSpec )) %SysRequest(244,ReceiveMail,exchMailSer,10,2,0,3, %( %w(12) %p(14) %w(18) %p(20) %c(2,24) %p(26) %c(12,30) ),%(%rRemote), %( %rFh )) %SysRequest(245,ResetMailServer,exchMailSer,11,2,0,0, %( %w(12) ),%(%rRemote), %(%noRouting)) %SysRequest(246,SendMail,exchMailSer,12,4,2,1, %( %w(12) %p(16) %w(20) %p(22) %w(26) %p(28) %c(12,32) %w(14) ),%(%rRemote), %( %rFh )) %SysRequest(247,SignoffMailUser,exchMailSer,13,4,1,0, %( %p(16) %w(20) %p(12) ),%(%rRemote), %( %DevSpec )) %SysRequest(248,TerminateMailConnection,exchMailSer,14,2,0,0, %( %w(12) ),%(%rRemote), %( %rFh %closeFh )) %SysRequest(249,ValidateMail,exchMailSer,15,2,2,2, %( %w(12) %p(14) %w(18) %p(20) %w(24) %p(26) %c(2,30) %p(32) %c(2,36) ),%(%rRemote), %( %rFh )) %SysRequest(250,SetMailAgentStatus,exchMailSer,16,2,1,0, %( %w(12) %p(14) %w(18) ),%(%rRemote), %( %rFh )) %SysRequest(251,PurgeMailUniqueId,exchMailSer,17,0,0,0, %( %none ),%(%rRemote), %(%noRouting)) %SysRequest(252,SetNode,exchLclFs,0D16h,6,1,0, %( %pbcb0 ),%(%rLocal), %(%noRouting)) %SysRequest(253,ExpandSpec,exchFilterPros,0806h,6,2,1, %( %pbcb0 %pbcb1 %pbcb2 %fh ),%(%rLocal), %( %FileSpec %SpecPW )) %SysRequest(254,QueryExchange,exchResex,0D18h,6,0,1, %( %fh %p0 %c(2,22) ),%(%rLocal), %(%noRouting)) %SysRequest(255,SetVideoTimeout,0,000Bh,2,0,0, %( %w(12) ),%(%rLocal), %(%noRouting)) %SysRequest(256,ReadActionKbd,0,000Ch,6,0,1, %( %b(12) %p0 %c(1,22) ),%(%rLocal), %(%noRouting)) %SysRequest(257,ReadKbdStatus,0,000Ch,6,0,2, %( %w(12) %p0 %c(2,22) %p1 %c(1,28) ),%(%rLocal), %(%noRouting)) %SysRequest(258,NotifyCM,0,0,6,1,0, %( %w(12) %pbcb0 ),%(%rLocal), %(%noRouting)) %SysRequest(259,ChangeUserNumMail,exchMailSer,18,2,0,0, %( %w(12) ),%(%rRemote),  %(%noRouting)) %SysRequest(260,QuietMailUser,exchMailSer,19,2,0,0, %( %w(12) ),%(%rRemote), %(%noRouting)) %SysRequest(261,OSVersion,exchLclFs,0206h,0,0,1, %( %p(12) %c(2,16)),%(%rLocal), %(%noRouting)) %SysRequest(262,LoadInterActiveTask,exchTerm,0000h,6,2,0, %( %w(12) %p(18) %w(22) %p(24) %w(28) %w(14) %w(16)),%(%rLocal), %(%noRouting)) %SysRequest(263,TerminateISAMServer,exchISAM,001Bh,0,0,2, %( %p(12) %c(2,16) %p(18) %c(4,22)),%(%rRemote), %(%noRouting)) %SysRequest(264,MapXBusWindow,0,0D1Ah,6,0,2, %( %b(12) %b(13) %p(18) %c(4,22) %w(14) %p(24) %c(2,28) %w(16)),%(%rLocal), %(%noRouting)) %SysRequest(265,QuietKbdForSwap,0,0000h,2,0,0, %( %w(12) ),%(%rLocal), %(%noRouting)) %SysRequest(266,Purge3270EmD  ) %SysRequest(295,SwapinContext,0,0,2,0,0, %(%fh),%(%rLocal), %(%noRouting)) %SysRequest(296,CreateUser,0,0F00h,6,1,1, %( %p(18) %w(22) %w(12) %c(4,14) %p(24) %c(2,28) %w(16)),%(%rLocal), %( %noRouting)) %SysRequest(297,NotUsed,0,0h,6,0,1, %( ),%(%rLocal), %( %noRouting)) %SysRequest(298,SetKbdHandler,0,0D24h,6,0,0, %( %p(14) %w(12)), %(%rlocal), %( %noRouting)) %SysRequest(299,AllocateMemoryReal,0,026h,6,0,1, %( %w(12) %p0 %c(4,22)), %(%rlocal), %( %noRouting))  %SysRequest(300,DeAllocateMemoryReal,0,027h,6,0,0, %( %p(14) %w(12)), %(%rlocal), %( %noRouting)) %SysRequest(301,CallSourceDbgNub,exchKbd,0600h,6,1,1, %( %fh %p0 %c(2,22) %p1 %c(4,28) ), %(%rLocal), %( %noRouting )) %SysRequest(302,QueryNodeName,0,0,0,0,2, %( %p(12) %w(16) %p(18) %c(2,22)), %(%rLocal), %( %NoRouting)) %SysRequest(303,ReadSwap,0,0,6,0,3, %( %fh %p(14) %pbcb0 %p1 %c(2,28) %p2 %c(2,34)), %(%rLocal) %( %NoRouting)) %SysRequest(304,WriteSwa,0,0000h,6,0,0, %( ),%(%rRemote), %(%noRouting)) %SysRequest(267,PurgeX25,0,0000h,6,0,0, %( ),%(%rRemote), %(%noRouting)) %SysRequest(268,SetTrapHandler,exchResex,0D0Bh,12,0,0, %( %w(12) %p(14) %c(0FFh, 22) ),%(%rLocal), %(%noRouting)) %SysRequest(269,QueryNodeForMailUser,0,20,0,2,2, %( %p(12) %w(16) %p(18) %w(22) %p(24) %w(28) %p(30) %c(2,34) ),%(%rRemote), %( %DevSpec )) %SysRequest(270,(CtNetTermination),0,0000h,2,0,0, %( %none ),%(%rLocal), %(%noRouting)) %SysRequest(271,QueryRequestInfo,ExchResex,0D18h,6,0,1, %( %fh %pbcb0 ),%(%rLocal), %(%noRouting)) %SysRequest(272,GetUserStatus,%'exchLocalfile'0,0206h,6,0,1, %( %fh %pbcb0 ),%(%rLocal), %(%noRouting)) %SysRequest(273,CMTermination,0,0000h,2,0,0, %( %none ),%(%rLocal), %(%noRouting)) %SysRequest(274,FilterProsTermination,0,0000h,2,0,0, %( %none ),%(%rLocal), %(%noRouting)) %SysRequest(275,VacatePartitionA,0,0E01h,2,0,0, %( %w(12) ),%(%rLocal), %(%noRouting)) %SysRequest(276,VacatePartitionB,0,0E02h,2,0,0, %( %w(12) ),%(%rLocal), %(%noRouting)) %SysRequest(277,SetVectorArea,exchResex,0D1Bh,6,0,1, %(%fh %w(14) %p0 %c(0,22)),%(%rLocal), %(%noRouting)) %SysRequest(278,AllocAreaSL,exchResex,0D1Ch,6,0,1, %(%w(12) %p0 %c(4,22)),%(%rLocal), %(%noRouting)) %SysRequest(279,ExpandAreaSL,exchResex,0D1Dh,6,0,1, %(%w(12) %w(14) %p0 %c(2,22)),%(%rLocal), %(%noRouting)) %SysRequest(280,ExpandAreaLL,exchResex,0D1Eh,6,0,1, %(%w(12) %w(14) %p0 %c(2,22)),%(%rLocal), %(%noRouting)) %SysRequest(281,ShrinkAreaSL,exchResex,0D1Fh,6,0,0, %(%p(14) %w(12)),%(%rLocal), %(%noRouting)) %SysRequest(282,ShrinkAreaLL,exchResex,0D20h,6,0,0, %(%p(14) %w(12)),%(%rLocal), %(%noRouting)) %SysRequest(283,QueryBigMemavail,exchResex,0D21h,6,0,1, %( %p0 %c(4,22)),%(%rLocal), %(%noRouting)) %SysRequest(284,CreateAlias,exchResex,0D22h,6,0,1, %( %p(14) %p0 %c(4,22)),%(%rLocal), %(%noRouting)) %SysRequest(285,SetSegmentAccess,exchResex,0D23h,6,0,0, %(%w(12) %b(14)), %(%rLocal), %(%noRouting)) %SysRequest(286,SetColorData,0,0C04h,0,2,2, %(%p(12) %w(16) %pbcb0 %pbcb1 %pbcb2),%(%rLocal), %(%noRouting)) %SysRequest(287,ProgramColorMapper,0,0,0,2,2, %(%p(12) %w(16) %pbcb0 %pbcb1 %pbcb2),%(%rLocal), %(%noRouting)) %SysRequest(288,SetCommISRRawSFN,exchCommLine,0304h,30,0,0, %(%w(12) %p(14) %p(18) %p(22) %p(26) %p(30) %w(34) %w(36) %w(38) %w(40)),%(%rLocal), %(%noRouting)) %SysRequest(289,OpenQueue,0,0,4,2,0, %(%p(16) %w(20) %p(22) %w(26) %w(12) %w(14)), %(%rLocal), %(%noRouting)) %SysRequest(290,ResetMemorySL,0,09H,0,0,0, %(%None),%(%rLocal), %(%noRouting)) %SysRequest(291,ResetAllSegs,0,0AH,0,0,0, %(%None),%(%rLocal), %(%noRouting)) %SysRequest(292,FreeLargeLL,0,0BH,0,0,0, %(%None),%(%rLocal), %(%noRouting)) %SysRequest(293,LoadFile,0,0A00h,8,0,0, %( %fh %w(14) %w(16) %c(0,18)%'reserve extra word' ),%(%rLocal), %( %noRouting )) %SysRequest(294,ReOpenFile,exchFilterPros,0001h,6,2,1, %( %c(2,34) %p2 %pbcb0 %pbcb1 %w(14) ),%(%rLocal), %( %FileSpec %SpecPW %openFh)E p,0,0,6,1,0, %( %fh %p(14) %pbcb0 ), %(%rLocal), %( %NoRouting)) %SysRequest(305,DeactiveRunFile,0,0,2,0,0, %( %fh ), %(%rLocal), %( %NoRouting)) ;Requests 307, 308, 309 reserved for Burroughs %SysRequest(307,BurroughsReserve,0,0,0,0,0, %( ),%( %rLocal ), %( %noRouting )) %SysRequest(308,BurroughsReserve,0,0,0,0,0, %( ),%( %rLocal ), %( %noRouting )) %SysRequest(309,BurroughsReserve,0,0,0,0,0, %( ),%( %rLocal ), %( %noRouting )) %SysRequest(310,Sync1,exchNotInstalled,0,2,0,1, %( %w(12) %p(14) %w(18) ), %( %rRemote ), %( %noRouting )) %SysRequest(311,Sync2,exchNotInstalled,0,2,0,1, %( %w(12) %p(14) %w(18) ), %( %rRemote ), %( %noRouting )) %SysRequest(312,Sync3,exchNotInstalled,0,2,0,1, %( %w(12) %p(14) %w(18) ), %( %rRemote ), %( %noRouting )) %SysRequest(313,Sync4,exchNotInstalled,0,2,0,1, %( %w(12) %p(14) %w(18) ), %( %rRemote ), %( %noRouting )) %SysRequest(314,Sync5,exchNotInstalled,0,2,0,1, %( %w(12) %p(14) %w(18) ), %( %rRemote ), %( %noRouting )) %SysRequest(315,Sync6,exchNotInstalled,0,2,0,1, %( %w(12) %p(14) %w(18) ), %( %rRemote ), %( %noRouting )) %SysRequest(316,Sync7,exchNotInstalled,0,2,0,1, %( %w(12) %p(14) %w(18) ), %( %rRemote ), %( %noRouting )) %SysRequest(317,Sync8,exchNotInstalled,0,2,0,1, %( %w(12) %p(14) %w(18) ), %( %rRemote ), %( %noRouting )) ; The level 1 block at 1000h has no procedural interfaces. %Request(1000h,ChangeUserNumISAM,exchISAM,001Ch,2,0,0,%( %w(12) ),%(%rRemote), %(%noRouting)) %Request(1001h,QuietISAMUser,exchISAM,0001Dh,2,0,0,%( %w(12) ),%(%rRemote), %(%noRouting)) %Request(1002h,QuietContext,exchTerm,0003h,2,0,0, %( %w(12) ),%(%rRemote), %( %noRouting )) %Request(1003h,QuietQMGR,exchQueMgr,0h,2,0,0, %( %w(12) ),%(%rRemote), %( %noRouting )) %Request(1004h,QuietSplr,exchSplr,0h,2,0,0, %( %w(12) ),%(%rRemote), %( %noRouting )) %Request(1005h,Execfh,exchTerm,0005h,4,0,0, %( %w(12) %w(14) ),%(%rHandle), %( %noRouting )) %Request(1006h,InitCommLine,exchCommLine,0300h,6,2,1, %( %pbcb0 %pbcb1 %pbcb2 ),%(%rLocal), %( %noRouting )) %Request(1007h,ResetCommLine,exchCommLine,0301h,6,0,0, %(%w(12) ),%(%rLocal), %( %noRouting )) %Request(1008h,ChangeCommLineBaudRate,exchCommLine,0302h,6,0,0, %(%w(12) %w(14) %w(16) ),%(%rLocal), %( %noRouting )) %Request(1009h,TerminateCommLine,exchNotInstalled,0000h,2,0,0, %(%w(12) ),%(%rLocal), %( %noRouting )) %Request(100Ah,ChangeUserNumCommLine,exchNotInstalled,0000h,2,0,0, %(%w(12) ),%(%rLocal), %( %noRouting )) %Request(100Bh,WaitSync,exchNotInstalled,0000h,2,0,0, %(%none),%(%rRemote),%(%noRouting)) %Request(100Ch,NewTapeIO,exchNotInstalled,0000h,6,0,3, %(%none),%(%rRemote),%(%noRouting)) %Request(100Dh,NewTapeIO,exchNotInstalled,0000h,6,1,2, %(%none),%(%rRemote),%(%noRouting)) %Request(100Eh,ReMakeFh,exchFilSys1,0403h,6,0,1, %( %fh %p0 %c(2,22) ),%(%rHandle), %( %rFh )) ; The level 2 block at 2000h has procedural interfaces. %Request(2000h,SdlcOpen,0,0000h,2,0,1,%( %w(12) %p(14) %c(2,18)),%(%rRemote), %(%noRouting)) %Request(2001h,SdlcClose,0,0000h,2,0,0,%( %w(12) ),%(%rRemote), %(%noRouting)) %Request(2002h,SdlcInit,0,0000h,2,1,0,%( %w(12) %p(14) %w(18)),%(%rRemote), %(%noRouting)) %Request(2003h,SdlcStat,0,0000h,4,0,1,%( %w(12) %w(14) %p(16) %w(20)),%(%rRemote), %(%noRouting)) %Request(2004h,SdlcRead,0,0000h,2,0,2,%( %w(12) %p(14) %w(18) %p(20) %c(2,24)),%(%rRemote), %(%noRouting)) %Request(2005h,SdlcWrite,0,0000h,2,1,1,%(%w(12)%p(14)%w(18)%p(20) %c(2,24)),%(%rRemote), %(%noRouting)) %Request(2006h,TerminateSdlc,0,0,2,0,0,%( %w(12) ),%(%rRemote), %(%noRouting)) %Request(2007h,PurgeSdlc,0,0,2,0,0,%( %w(12) ),%(%rRemote), %(%noRouting)) %Request(2008h,BscOpen,0,0000h,6,1,1,%( %c(2,28) %p1 %p0 %s0 %w(14)),%(%rRemote), %(%noRouting)) %Request(2009h,BscIoctl,0,0000h,6,2,0,%( %fh %p0 %c(1,22) %p1 %s1 ),%(%rRemote), %(%noRouting)) %Request(200Ah,BscRead,0,0000h,6,1,1,%( %fh %p0 %s0 %p1 %s1),%(%rRemote), %(%noRouting)) %Request(200Bh,BscWrite,0,0000h,6,1,1,%( %fh %p0 %s0 %p1 %s1 ),%(%rRemote), %(%noRouting)) %Request(200Ch,BE  , 0, %(%none),%(%rLocal), %(%noRouting)) %Request(3021h, UFSDummy, exchUFS, 0, 0, 0, 0, %(%none),%(%rLocal), %(%noRouting)) %Request(3022h, UFSDummy, exchUFS, 0, 0, 0, 0, %(%none),%(%rRemote), %(%noRouting)) %Request(3023h, UFSDummy, exchUFS, 0, 0, 0, 0, %(%none),%(%rRemote), %(%noRouting)) %Request(3024h,UpdateDCB,exchFilterPros,0807h,6,3,0, %(%None),%(%rLocal), %(%DevSpec %SpecPW)) %Request(3025h,ReadRemote,exchFilSys2,5,6,0,2, %( %fh %p0 %s0 %lfa %p1 %c(2,28) ),%(%rHandle), %(%noRouting)) %Request(3026h,WriteRemote,exchFilSys2,6,6,1,1, %( %fh %p0 %s0 %lfa %p1 %c(2,28) ),%(%rHandle), %(%noRouting)) %Request(3027h,CleanupRemoteExecution,exchKbd,0800h,0,0,0, %(%none),%(%rLocal), %(%noRouting)) %Request(3028h,SetIoRedirectionMode,exchKbd,0900h,2,0,0, %(%none),%(%rLocal), %(%noRouting)) %Request(3029h,UffTerminal,exchSrpAgent,0,6,2,3, %(%none),%(%rFileId), %(%noRouting)) %Request(302Ah,WriteTerminal,exchSrpAgent,0,4,1,0,%(%none),%(%rFileId), %(%noRouting)) %Request(302Bh,SizeWindow,exchSrpAgent,0scClose,0,0000h,6,0,0,%( %fh ),%(%rRemote), %(%noRouting)) %Request(200Dh,TerminateBsc,0,0,2,0,0,%( %w(12) ),%(%rRemote), %(%noRouting)) %Request(200Eh,PurgeBsc,0,0,2,0,0,%( %w(12) ),%(%rRemote), %(%noRouting)) ; ; The level 3 block at 3000h has no procedural interfaces ; ; %Request(3000h,PtResponse,0,0,0,0,0, %( %none ),%(%rLocal), %(%noRouting)) %Request(3001h,MegaGetStatistics,exchResex,0205h,2,0,1, %( %none ),%(%rFileId), %(%noRouting)) %Request(3002h,RemoteBoot, exchFilSys1, 0207h, 4, 0, 0, %( %none ),%(%rHandle), %(%noRouting)) %Request(3003h,UFSOpen, exchUFS, 0, 26, 1, 1, %(%none),%(%rLocal), %(%noRouting)) %Request(3004h,UFSRead, exchUFS, 0, 12, 0, 2, %(%none),%(%rLocal), %(%noRouting)) %Request(3005h,UFSWrite, exchUFS, 0, 12, 1, 1, %(%none),%(%rLocal), %(%noRouting)) %Request(3006h,UFSClose, exchUFS, 0, 12, 0, 0, %(%none),%(%rLocal), %(%noRouting)) %Request(3007h,UFSAccess, exchUFS, 0, 22, 1, 1, %(%none),%(%rLocal), %(%noRouting)) %Request(3008h,UFSLink, exchUFS, 0, 28, 1, 0, %(%none),%(%rLocal), %(%noRouting)) %Request(3009h,UFSDelete, exchUFS, 0, 20, 1, 0, %(%none),%(%rLocal), %(%noRouting)) %Request(300Ah,UFSStat, exchUFS, 0, 20, 1, 1, %(%none),%(%rLocal), %(%noRouting)) %Request(300Bh,UFSFStat, exchUFS, 0, 8, 0, 1, %(%none),%(%rLocal), %(%noRouting)) %Request(300Ch,UFSChange, exchUFS, 0, 22, 2, 0, %(%none),%(%rLocal), %(%noRouting)) %Request(300Dh,UFSMount, exchUFS, 0, 10, 0, 0, %(%none),%(%rLocal), %(%noRouting)) %Request(300Eh,UFSUMount, exchUFS, 0, 2, 0, 0, %(%none),%(%rLocal), %(%noRouting)) %Request(300Fh,UFSSync, exchUFS, 0, 0, 0, 0, %(%none),%(%rLocal), %(%noRouting)) %Request(3010h,RemoteMount,exchFilSys1, 0D0Eh, 2, 2, 0, %(%none),%(%rMasterFp), %(%noRouting)) %Request(3011h,QueryRedirectStatus,exchKbd,00700h,0,0,1,%(%none),%(%rLocal), %(%noRouting)) %Request(3012h,OpenTerminal,exchTPreq,0,4,0,1,%(%none),%(%rFileId), %(%noRouting)) %Request(3013h,CloseTerminal,exchTPreq,0,4,0,0,%(%none),%(%rFileId), %(%noRouting)) %Request(3014h,WhereTerminalBuffer,exchTPreq,0,4,0,1,%(%none),%(%rFileId), %(%noRouting)) %Request(3015h,ReadTerminal,exchTPreq,0,6,0,2,%(%none),%(%rFileId), %(%noRouting)) %Request(3016h,SetTerminal,exchTPreq,0,6,1,1,%(%none),%(%rFileId), %(%noRouting)) %Request(3017h,SetTerminalOwner,exchTpReq,0,6,0,0, %(%none),%(%rFileId), %(%noRouting)) %Request(3018h,RingOutTerminal,exchTpReq,0,4,0,0, %(%none),%(%rFileId), %(%noRouting)) %Request(3019h,DrainTerminalOutput,exchTpReq,0,4,0,0, %(%none),%(%rFileId), %(%noRouting)) %Request(301Ah,UFSUStat, exchUFS, 0, 2, 0, 1, %(%none),%(%rLocal), %(%noRouting)) %Request(301Bh, UFSUTimes, exchUFS, 0, 20, 2, 0, %(%none),%(%rLocal), %(%noRouting)) %Request(301Ch, UFSDummy, exchUFS, 0, 0, 0, 0, %(%none),%(%rRemote), %(%noRouting)) %Request(301Dh, UFSDummy, exchUFS, 0, 0, 0, 0, %(%none),%(%rLocal), %(%noRouting)) %Request(301Eh, UFSDummy, exchUFS, 0, 0, 0, 0, %(%none),%(%rLocal), %(%noRouting)) %Request(301Fh, UFSDummy, exchUFS, 0, 0, 0, 0, %(%none),%(%rLocal), %(%noRouting)) %Request(3020h, UFSDummy, exchUFS, 0, 0, 0F ,6,0,1, %(%none),%(%rFileId), %(%noRouting)) %Request(302Ch,PlaceWindow,exchSrpAgent,0,6,0,1, %(%none),%(%rFileId), %(%noRouting)) %Request(302Dh,CreateWindow,exchSrpAgent,0,6,0,2, %(%none),%(%rFileId), %(%noRouting)) %Request(302Eh,DeleteWindow,exchSrpAgent,0,6,0,1, %(%none),%(%rFileId), %(%noRouting)) %Request(302Fh,SelectWindow,exchSrpAgent,0,4,0,1, %(%none),%(%rFileId), %(%noRouting)) %Request(3030h,GetWindowLayout,exchSrpAgent,0,4,0,1, %(%none),%(%rFileId), %(%noRouting)) %Request(3031h,CatchWindowKeys,exchSrpAgent,0,4,0,2, %(%none),%(%rFileId), %(%noRouting)) %Request(3032h,SetWindowText,exchSrpAgent,0,4,2,0, %(%none),%(%rFileId), %(%noRouting)) %Request(3033h,MultibusRequest,exchResex,0D24h,6,0,0,%( %b(12) %b(13) %p(14) ),%(%rLocal), %(%noRouting)) %Request(3034h,MultiAp,0,0,0,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(3035h,MultiAp,0,0,0,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(3036h,MultiAp,0,0,0,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(3037h,MultiAp,0,0,0,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(3038h,MultiAp,0,0,0,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(3039h,MultiAp,0,0,0,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(303Ah,MultiAp,0,0,0,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(303Bh,MultiAp,0,0,0,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(303Ch,TpTerminate,exchTPreq,0,2,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(303Dh,FlushLog,exchFilSys1,0900h,6,1,0,%(%p0 %s0 ),%(%rMasterFp), %(%noRouting)) %Request(303Eh,StartPT,exchSrpAgent,0,0,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(303Fh,TapeRegisterSlave,exchTape,7,4,0,0,%(%b(12) %b(13) %b(14)),%(%rRemote), %(%noRouting)) %Request(3040h,LocalOpenTape,exchTape,8,6,1,1, %( %p0 %s0 %b(12) %b(13) %b(14) %w(16) %p1 %c(2,28) ),%(%rLocal), %(%noRouting)) %Request(3041h,LocalPurgeTapeUser,exchTape,9,2,0,0, %( %w(12) ),%(%rLocal), %(%noRouting)) %Request(3042h,TerminatePT,exchSrpAgent,2,0,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(3043h,RPTia,ExchTia,0,6,1,0,%(%none),%(%rFileId), %(%noRouting)) %Request(3044h,LocalConfigureSpooler, exchSplr,0000h,6,3,0, %( %b(12) %p0 %s0 %p1 %s1 %p2 %s2 %b(13) %b(14) ),%(%rLocal), %(%noRouting)) %Request(3045h,LocalSpoolerPassword,exchSplr,0001h,6,2,0, %( %p0 %s0 %p1 %s1 ),%(%rLocal), %(%noRouting)) %Request(3046h,LocalResetSplr,exchSplr,0000,2,0,0, %( %w(12)),%(%rLocal), %(%noRouting)) %Request(3047h,TerminatePtEmulation,exchSrpAgent,0,2,0,0,%(%None),%(%rLocal), %(%noRouting)) %Request(3048h,MegaFrameDisableCluster,exchFilSys1,0902h,6,0,0, %( %w(12) %w(14) %w(16)), %(%rMasterFp), %(%noRouting)) %Request(3049h,HistRqCode,0,0,10,0,1,%( %w(12) %w(14) %w(16) %w(20) %w(18) %w(24) %w(22) %w(26) ),%(%rLocal), %(%noRouting)) %Request(304Ah,RebootMasterFp,0,0,4,0,0,%(%w(12) %w(14)),%(%rRemote), %(%noRouting)) %Request(304Bh,GetIobQueue,exchMassIO,0,2,0,2, %( %p0 %s0 %p1 %c(2,24) ),%(%rFileId), %(%noRouting)) %Request(304Ch,MultiAp,0,0,0,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(304Dh,MultiAp,0,0,0,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(304Eh,MultiAp,0,0,0,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(304Fh,MultiAp,0,0,0,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(3050h,MultiAp,0,0,0,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(3051h,MultiAp,0,0,0,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(3052h,MultiAp,0,0,0,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(3053h,MultiAp,0,0,0,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(3054h,MultiAp,0,0,0,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(3055h,MultiAp,0,0,0,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(3056h,MultiAp,0,0,0,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(3057h,MultiAp,0,0,0,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(3058h,InternalChangeUserNumFs,%'exchChgUsrN'0,0D13h,2,0,0, %( %w(12) ),%(%rLocal), %(%noRouting)) %Request(3059h,Reserved,0,0,0,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(305Ah,Reserved,0,0,0,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(305Bh,Reserved,0,0,0,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(305Ch,Reserved,0F  ined in a word # ; at offset 4 in the request block. The system service's # ; previous user number is contained in a word at offset 12 in # ; the request block. # ;################################################################ %ChgUserNumRequest(218) ; Request code for ChangeUserNumQmg. %ChgUserNumRequest(259) ; ChangeUserNumMail ; This macro must appear last in the file! %final End; 3048h,MegaFrameDisableCluster,exchFilSys1,0902h,6,0,0, %( %w(€ Request_MFˆCTAsm II-1.0– ??SEG??SEGSTACKSTACKrgTablescoedrqSeg5constrqSeg6constrqSeg7constrqSeg8constrqSeg9constrqSeg9xconstrqSeg10constdatadataTCodeconstOCodeconstICodeconstrqSeg0constrqSeg1constrqSeg2constrqSeg3constrqSeg4constrqSeg4xconstRqGroup˜h˜T˜hD˜hD˜H$ ˜H$ ˜H" ˜HD˜HD˜He˜h ˜Hì ˜Hx˜H˜Ht˜Hz ˜Hz!"˜Ht#$˜Hº%&˜Hº'(š )ÿÿÿÿ,0,0,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(305Dh,Reserved,0,0,0,0,0,%(%none),%(%rLocal), %(%noRouting)) %Request(305Eh,Reserved,0,0,0,0,0,%(%none),%(%rLocal), %(%noRouting)) ; User requests in levels 0C..0Fh should be added here ; Request -1 is included only as an example of a user request, and ; is "commented out". These UsrRequests are included only for ; compatibility with previous versions of workstation CTOS. ; ; (Note that exchanges 0 to 24 are reserved for CTOS processes.) ; %UsrRequestInit %' %UsrRequest(-1,UserService,16,0001h,0,0,0, %' %( %w(16) %p0 %s0 ),%(%rLocal), %(%noRouting)) ;################################################################ ; The list of request codes which the CTOS termination process # ; issues to quiet the process activities during subsystem # ; termination (invoked with "Exit" or "Chain"). The requests # ; are generated with no arguments and with request numbers as # ; given to the macro. # ;################################################################ %TerminationRequest(70) ; Request code for ResetKbd, to quiet keyboard process %TerminationRequest(71) ; Request code for ResetSysIn, to stop system input process %TerminationRequest(72) ; Reset Agent %TerminationRequest(96) ; Request code for PurgeISAM users %TerminationRequest(108) ; Request code for StopEm3270 %TerminationRequest(153) ; Request code for CloseAllCommLines %TerminationRequest(164) ; Request code for ResetQueMgr %TerminationRequest(169) ; Request code for PurgeX25User %TerminationRequest(195) ; Request code for PurgeTapeUser %TerminationRequest(197) ; Request code for ResetSplr %TerminationRequest(233) ; Request code for TerminateSNAUser. %TerminationRequest(239) ; Request code for PurgeMailUser. %TerminationRequest(270) ; CtNetTermination %TerminationRequest(273) ; CMTermination %TerminationRequest(274) ; Filter Process Termination %TerminationRequest(2006h) ; Terminate SDLC %TerminationRequest(200Dh) ; Terminate BSNC %TerminationRequest(303Ch) ; Terminate any Open Read or Drain Rqs EVEN ; The list of request codes which the CTOS master workstation ; agent or the CtNetServer issues on behalf of cluster workstation ; when the master or the CtNetServer determines that a cluster ; workstation is not communicating with it any more. ; %' %WsAbortRequest(0D002h) ; Reset users installed system service %WsAbortRequest(96) %WsAbortRequest(108) %WsAbortRequest(148) %WsAbortRequest(153) %WsAbortRequest(195) %WsAbortRequest(169) %WsAbortRequest(229) %WsAbortRequest(239) %WsAbortRequest(251) %WsAbortRequest(112) %WsAbortRequest(2007H) %WsAbortRequest(200EH) ;################################################################ ; The list of request codes which a Multi-Partitioned CTOS # ; issues on behalf of a system service to notify other system # ; services its user number is changing. These requests are # ; issued when the system service does a ConvertToSys request. # ; The system service's new user number is contaG  ÿ rgRoutingrgSCntlInfoSysrgLocalServiceCodeUsrt rgPrcLookUp nUsrRequest rcLookUprgSCntlInfoUsrz rgRoutingUsrº rgRqExchgSysrgPrcLookUpBase nTerminationRqInitrgTerminationRequestrgLocalServiceCodergChgUserNumRq@RgNetRoutingUsrº RgpRoutingrgNReqRespPbCbSysrgRcMax nWsAbortRqInit rcLookupSysrgTerminationRq rcMaxSyst rcLookupUsrt rgWsAbortRq(rgLocalServiceCodeSys nChgUserNumRqInitrgPrgLocalServiceCode rgPrgRqExchg rgNetRouting rgRqExchg nSysRequest rgPrgNetRoutingrgNReqRespPbCbUsrz rgRqExchgUsrt rcMaxUsrv JF œ ÄTÈT œ ÄT ÈT  œ ÄT ÈT  œ ÄTÈT  œ ÄTÈT  œ ÄTÈT         ð   $ ”’–š˜œ ž¢         ð             ð   ”’–         ð   $  ž”’–š˜œŽ" õÿ       ð S  4”’–š˜œŽ  õÿ        4 ð   CŒ  üÿ        C ó   IŒ”’–š˜œ üÿ     I ó   WŒŽ”’– üÿ     W ó   cŒŽ”’– üÿ     c  ó   üÿ     C  ó    o”’–š˜œ õÿ     o  ð   õÿ     o  ð    |ŒŽ üÿ     |  ó    „”’ úÿ     „ ò   ”’–š˜œ õÿ      ð   ž”’–š˜œŒ  õÿ        ž ð   ¬$ ”’–š˜œ ž¢Ž "õÿ " " "  "¬ ð  $õÿ $ $ $  $o ð  &õÿ & & &  & ð  (õÿ ( ( (  ( ð   ¾”’– * * * *   *¾ ð   ÈŒ”’– , , , ,   ,È ð  . . . .   . ð  0 0 0 0   0 ð   Ó% ”’–š˜œŽ ž# 2õÿ 2 2 2  2Ó ð   ç$ ”’–š˜œ ž¢ 4õÿ 4 4 4  4ç ð  6  6 6 6   6¾ ð   ù ”’–š˜œŒŽ 8 8 8 8  8ù ð   ŒŽ :  : : :   :  ð   ŒŽ <üÿ < < <  < ó   Œ”’ >üÿ > > >  > ó  @  @ @ @  @   ð    $Œ”’–Žš˜ Býÿ B B B€  B$ !ð !€  5Œ”’–Žš˜ Dýÿ D D D€  D5 "ð "€ Fûÿ F F F  F$ #ó #ˆ Hûÿ H H H  H5 $ó $ˆ Jýÿ J J J€  J$ %ó % Lûÿ L L L  L5 &ó &ˆ Nýÿ N N N€  N$ 'ó '  H”’ P  P P P   PH (ð ( R  R R R   RC )ð )  SŒ”’ T  T G  Ž’–”œš ® ® ® ®À  ®G Wñ W  Z( ŒŽ’”˜–šžœ¤¢ & ° ° ° ° À  °Z Xñ X  s,ŒŽ’–”˜œšž¢ ¤¨¦* ² ² ² ² €  ²s Yñ Y   ŒŽ’–”˜œš ´ ´ ´ ´ €  ´ Zñ Z  ¡ŒŽ’”˜– ¶ ¶ ¶ ¶ÿï  ¶¡ [ñ [ ¸ ¸ ¸ ¸ €  ¸¡ \ñ \  ³$ ŒŽ”’–š˜œ ž" º º º ºÿï  º³ ]ñ ]  Ê ŒŽ’–”œš ¼ ¼ ¼ ¼ Ø  ¼Ê ^ñ ^  ߎŒ ¾ ¾ ¾ ¾ÿï  ¾ß _ñ _ À À À À  ÀC `ñ ` Âõÿ Â Â Â    að aS Ä  Ä Ä Ä   Ä bð b Æ  Æ Æ Æ   Æ cð c  茔’– ÈT T   TS *ð *  _ŽŒ V  V V V   V_ +ð + X  X X X   XS ,ð , Z  Z Z Z   Z_ -ð -  g”’š˜ \  \ \ \   \g .ð . ^  ^ ^ ^   ^ /ð / `  ` ` `   `H 0ð 0  v”’  bòÿ b b b  bv 1ð 1 dòÿ d d d  dv 2ð 2 fõÿ f f f  f 3ð 3 hòÿ h h h  h 4ð 4 jòÿ j j j  jH 5ð 5 lòÿ l l l  l 6ð 6 nòÿ n n n  nH 7ð 7 pòÿ p p p  p 8ð 8 ròÿ r r r  rC 9ð 9 tòÿ t t t  t„ :ð :  ŽŒ v v v v  v ;ð ; xòÿ x x x   xH <ð < z  z z z  zH =ð = |õÿ | | |  | >ð > ~òÿ ~ ~ ~  ~ ?ð ? € € € €  € @ð @ ‚òÿ ‚ ‚ ‚  ‚C Að A „ „ „ „   „ Bð B †òÿ † † †  †C Cð C ˆ ˆ ˆ ˆ   ˆ Dð D  ˆŒŽ’”–  Š  Š  Š Š   Šˆ Eð E Œòÿ Œ Œ Œ  ŒC Fð F Ž Ž Ž Ž  ŽC Gð G ÿÿ     C Hð H ’ ’ ’ ’  ’ Ið I  “ ”’ ” ” ” ”   ”“ Jð J  ¢   – –  – –   –¢ Kð K ˜ ˜ ˜ ˜   ˜¾ Lð L š š š š   š Mð M  ±ŒŽ œ œ œ œ„  œ± Nñ N  ½0ŽŒ”’–š˜œ ž¢¦¤¨¬ª. ž ž ž ž  ž½ Oñ O        €   ± Pñ P  ×ŒŽ”’ ¢ ¢ ¢ ¢Ø  ¢× Qñ Q  å" Œ’”˜–žœ  ¤ ¤ ¤ ¤À  ¤å Rñ R  ùŒŽ’–” ¦ ¦ ¦ ¦ÿï  ¦ù Sñ S  ŒŽ”’–š˜ ¨ ¨ ¨ ¨Ø  ¨  Tñ T  ( žœ’”˜–šŒŽ¤¢ & ª ª ª ª  ª Uñ UT  6ŒŽ”’–š˜ ¬ ¬ ¬ ¬À  ¬6 Vñ V  G ŒH ÷ÿ È È È  Èè dö d  ó" ŒŽ”’˜–œš ž Ê  Ê Ê Ê  Êó eð e Ì  Ì Ì Ì  ÌC fð f  ”’š˜œ ΠΠΠΠ Πgñ g РРРР Рhñ h Ò Ò Ò Ò  Ò iñ i  ”’š˜œ Ô Ô Ô Ô  Ô jñ j Ö Ö Ö Ö  Ö kñ k Ø Ø Ø Ø  ØC lñ l  !”’ Ú Ú Ú Ú  Ú! mñ m Ü Ü Ü Ü  Ü nñ n Þüÿ Þ Þ Þ   ÞC oò o àõÿ à à à  à pð p â â â â  â qð q  ,(’”˜–šžœ ¤¢¦  ä ä ä ä  ä, rð r  CŽŒ”’– æ æ æ æ  æC sð s  NŽŒ è è è è  èN tð t  VŽ’Œ êòÿ ê ê ê  êV uô u ì ì ì ì  ìN vð v  aŽ’Œ–”˜ îòÿ î î î  îa wô w  qŽŒ”’– ð ð ð ð  ðq xñ x ò  ò ò ò   ò_ yð y ô÷ÿ ô ô ô  ô zõ z öüÿ ö ö ö  öè {ó { øõÿ ø ø ø  ø |ð | úöÿ ú ú ú  ú }ð }  ~*ŒŽ”’˜–œš ž¢¤¦¨ ü  ü ü ü  ü~ ~ð ~ þ þ þ þÿï  þß ñ     ÿï  ß €ñ €    ð  å ñ     Р × ‚ñ ‚    ð  6 ƒñ ƒ    ð  G „ñ „         ð  Z …ñ …        Ô  × †ñ †    ÿï  ¡ ‡ñ ‡  ’ Ž’”˜–    ÿï  ’ ˆñ ˆ  ¤$ ”’– Žš˜œ ž"      ¤ ‰ñ ‰  ¹" ’”˜–šŒžœ Ž      ¹ Šñ Š  Ë" ’”ŽŒ˜–šžœ       Ë ‹ñ ‹  ß.’”˜–šŒžœ Ž¤¢¦ª¨¬      ß Œñ Œ  ù Ž’ –”˜œšž      ù ñ       ß Žñ Ž  ’”ŽŒ        ñ             ñ   ’”ŽŒ˜–š " " " "  " ‘ñ ‘  '’”Œ $ $ $ $   $' ’ñ ’ & & & &   &N “ñ “ ( ( ( (   (C ”ñ ” * * * *  *C •ñ • , , , ,  ,C –ñ –  3ŽŒ”’– . . . .  .3 —ñ — 0 0 0 0  0 ˜ð ˜ 2 2 2 2  2C ™ð ™ 4 4 4 4  4 šð š  ?ŒŽ’ 6 6 6 6  6? ›ð › 8 8 8 8  8C œð œ  JŒ : : : :  :J ð   QŒŽ < < < <H  Çñ Ç öÿ     o Èò È ’ÿÿ ’ ’ ’  ’ Éð É ”  ” ” ”  ”è Êð Ê –  – – –  – Ëð Ë  ꎌ”’ ˜ ˜ ˜ ˜  ˜ê Ìñ Ì  øŒ’ š š š šР šø Íñ Í œ œ œ œÔ  œ± Îñ Î ž ž ž ž  žê Ïñ Ï  ŽŒ”’–š˜            Ðñ Ð ¢ ¢ ¢ ¢  ¢ Ññ Ñ  $ ŒŽ”’–š˜œ ž" ¤ ¤ ¤ ¤€  ¤ Òñ Ò  ,ŽŒ”’š˜ ¦ ¦ ¦ ¦  ¦, Óñ Ó  >:  ¨ ¨  ¨ ¨ÿÿ  ¨> Ôñ ÔA ª ª  ª ªÿÿ  ª> Õñ Õ ¬ ¬    <Q žð ž  ]" ’”˜–šŽžœ  > > > >  >] Ÿð Ÿ  rŒŽ’”˜– @ @ @ @  @r  ð    ‚ŒŽ B B B B   B‚ ¡ð ¡  ŽŒŽ’”˜– D D D D   DŽ ¢ð ¢ F F F F   FC £ð £ H H H H  HC ¤ñ ¤   ,Œ¨¦œšž¢ –”˜Ž’*$ J J J J  J  ¥ñ ¥  »Œ”’–š˜œ L L L L  L» ¦ñ ¦ # Ê6Œ¦¤¬ª®²° ž¢”’–š˜œŽ(4 N N N N  NÊ §ñ § P P P P  Pc ¨ñ ¨ R R R R  RC ©ñ ©  é$ Œ”’–š˜ žŽ" T T T T  Té ªñ ª V V V V  Vc «ñ « X X X X  X ¬ñ ¬ Z Z Z Z  Z ­ñ ­  ý Œ–”˜’œš \ \ \ \  \ý ®ñ ®  ŒŽ ^ ^ ^ ^  ^ ¯ñ ¯ `  ` ` `  `C °ð °  ŽŒ”’ b  b b b  b ±ð ±  *Œ”’–š˜œŽ d d d d  d* ²ð ² f  f f f  fC ³ð ³ h  h h h  hC ´ð ´  9”’–Œš˜ j  j j j  j9 µð µ  K  l  l l l  lK ¶ð ¶ n  n n n  nC ·ð · p  p p p  p ¸ð ¸  QŒŽ’” r  r r r  rQ ¹ð ¹ t  t t t   tž ºð º  ]$”’–š˜œ ž" v  v v v   v] »ð »  n$ ”’–š˜œ ž¢  x x x x  xn ¼ò ¼ z z z z  zo ½ò ½   ”’– š˜ | | | |  | ¾ñ ¾  •$ ŒŽ”’–š˜ ž" ~ ~ ~ ~  ~• ¿ô ¿  ©$ ŒŽ”’–š˜ ž" € € € €  €© Àô À  ¿Œ ‚ ‚ ‚ ‚  ‚¿ Áô Á „ „ „ „  „C Âô  † † † †  †C Ãñ à ÈŒ”’ ˆ ˆ ˆ ˆ  ˆÈ Äô Ä Š Š Š Š  ŠC Åð Å  Ô" ŒŽ’”˜–žœ  Œ Œ Œ Œø  ŒÔ Æñ Æ Ž Ž Ž Žø  ŽÔ I ¬ ¬ÿÿ  ¬> Öñ Ö  GŒ”’–Ž ®üÿ ® ® ®  ®G ×ó ×  S$ ”’–š˜œŒ ž¢ °õÿ ° ° °  °S Øð Ø  f$ ”’–š˜œŒ ž¢ ²õÿ ² ² ²  ²f Ùð Ù ´ ´ ´ ´  ´C Úñ Ú ¶õÿ ¶ ¶ ¶   ¶C Ûð Û  w*ŒŽ”’–š˜œ ž¢¦¤¨ ¸ ¸ ¸ ¸  ¸w Üñ Ü º º º º  º? Ýñ Ý ¼ ¼ ¼ ¼  ¼? Þñ Þ  Œ’ ¾ ¾ ¾ ¾  ¾ ßñ ß  š,ŒŽ’–”˜œšž¢ ¤¨¦ª À À À À  Àš àñ à  ±ŒŽ’”˜–š Â Â Â Â  ± áñ á Ä Ä Ä Ä  ÄC âñ â Æ Æ Æ Æ  Æ? ãñ ã È È È È  È? äñ ä Ê Ê Ê Ê  ÊC åñ å Ì Ì Ì Ì  Ì? æñ æ Î Î Î Î  ÎC çñ ç Ð Ð Ð Ð  Ðý èñ è Ò Ò Ò Ò  ÒC éñ é  ÀŒ”’Ž  Ô Ô Ô Ô  ÔÀ êñ ê  Î" ’”ŽŒ˜–žœ  Ö Ö Ö Ö  ÖΠëñ ë  䌎’”˜–š Ø Ø Ø Ø  Øä ìñ ì  󌎖”˜ Ú Ú Ú Ú  Úó íñ íH  $ ŽŒ”’–š˜ ž¢ Ü Ü Ü Ü  Ü îñ îA Þ Þ Þ Þ  ÞC ïñ ï  ( ŒŽ’”˜–šžœ ¤¢& à à à à  à ðñ ð  .ŒŽ”’–š˜ â â â â  â. ññ ñ ä ä ä ä  ä± òñ ò  ?ŽŒ”’–š˜ æ æ æ æ   æ? óñ ó  P ŒŽ’–”œš  è è è è   èP ôñ ô ê ê ê ê   êC õñ õ  c" Œ’”˜–šžœŽ  ì ì ì ì   ìc öñ ö î î î î   î  ÷ñ ÷ ð ð ð ð  ðC øñ ø  x& ŒŽ’–”˜œš¢ $ ò ò ò ò  òx ùñ ù ô ô ô ô  ô? úñ ú ö ö ö ö  ö ûñ û ø  ø ø ø   ø üð ü  $ ”’–š˜œ ž¢Œ úõÿ ú ú ú  ú ýð ý ü  ü ü ü   üÈ þð þ þ þ þ þ   þC ÿð ÿ  £ ”’       £ ð   ¯Œ”’š˜       ¯ ð       È ð       C ñ       C ñ   ¿ŽŒ           ¿ ð   È Œ”’–š˜œŽ          È ð   ØŽŒ”’      Ø ñ   å ”’Žš˜       å ð       C  ð    ø      ø  ñ        ø  ñ    ýŒŽ ÿ         ý  ð    $ ŽŒ”’–š˜œ ž"        ñ       I  xþÿ x x x  xÑ <ñ < =  ÜŒ z z  zÜ =ñ = | |  |Ü >ñ > ~ ~  ~Ü ?ñ ? € €  €Ü @ñ @ ‚ ‚  ‚Ü Añ A  ⌎ „ „  „â Bó B  é$ ”’–š˜œ ž¢ †  †  †é Cð C  ûŒ ˆ  ˆ  ˆû Dð D   ŒŽ Š  Š  Š  Eð E Œþÿ Œ  ŒÜ Fð F Žþÿ Ž  ŽÜ Gð G   þÿ     Hñ H   $ ’þÿ ’  ’  Iñ I   $ ”þÿ ”  ”  Jñ J   Œ”’ –üÿ –  –  Kó K zœ ÄTÈT zœ ÄTÈT  =œ ÄTÈT  =œ ÄTÈT   * ŒŽ ˜ ˜  ˜*  Lñ L š    ð         è ð           è ð  " " " "  " ð  $ $ $ $  $ ð  & & & &  &C ð  ( ( ( (  (C ð   ŒŽ”’ *  * * *   *  ð  ,  , , ,   ,S ð   +ŒŽ”’ .  . . .   .+ ð  0  0 0 0   0+ ð  2  2 2 2   2_ ð  4  4 4 4   4_ ð  6  6 6 6!   6„ ð   8Ž”’ 8  8 8 8"   88 ð   EŒ :  : : :#   :E ð   L$ ŽŒ”’–š˜œ ž¢ < < < <   <L ð  > > > >  >L ð  @  @ @ @  @~  ð    _’”˜–šŒŽ B B B B  B_ !ð ! D D D D   D "ð " F F F F   F #ð # H H H H   H $ð $  nŒŽ J J J J   Jn %ð % Lõÿ L L L  L  &ð &S N N N N  NC 'ð '  v”’–Œš˜ P P P P  Pv (ð (  Š R R R R  RŠ )ð ) T T T T$   T_ *ð * V V V V&  VS +ð + X X X X'  X_ ,ð ,  ‘Œ”’š˜ Zòÿ Z Z Z  Z‘ -ð -  £ŽŒ”’ \ \ \ \  \£ .ð .  ¯$ ŒŽ”’–š˜ ž" ^ ^ ^ ^  ^¯ /ð /  ÄŒŽ”’– ` ` ` `  `Ä 0ð 0 b b b b  bC 1ð 1 d d d d  d 2ð 2 f f f f  f 3ð 3 h h h h  h 4ð 4  ÑŒŽ’ jþÿ j j j  jÑ 5ñ 5 lþÿ l l l  lÑ 6ñ 6 nþÿ n n n  nÑ 7ñ 7 pþÿ p p p  pÑ 8ñ 8 rþÿ r r r  rÑ 9ñ 9 tþÿ t t t  tÑ :ñ : vþÿ v v v  vÑ ;ñ ; J  š  šÜ Mñ M  6 ŒŽ’ œ œ  œ6  Nñ N  A ŒŽ’” ž ž  žA  Oñ O  M ŒŽ’–”       M  Pñ P  \ ŒŽ’–” ¢ ¢  ¢\  Qñ Q ¤ ¤  ¤Ü Rñ R ¦ ¦  ¦Ü Sñ S  m š˜”’–Ž ¨ ¨  ¨m  Tñ T  ~ Œ”’š˜œ ª ª  ª~  Uñ U   Œ”’–š˜œ ¬ ¬  ¬  Vñ V ® ®  ®  Wñ W ° °  °û Xñ X ² ²  ²Ü Yñ Y ´ ´  ´Ü Zñ Z ˜œ ÄTÈT ˜œ ÄTÈT  Lœ ÄTÈT  Lœ ÄTÈT  ˜œ ÄT ÈT  œ ÄT ÈT  ¶ ¶  ¶ [ð [   ¸  ¸  ¸  \ô \  ¤  ºüÿ º  º¤  ]ó ]  © 2 ¼ ¼  ¼©  ^ð ^  ² $  ¾ ¾  ¾²  _ð _  ¹ $  À À  À¹  `ð `     Â Â    að a   Ç . Ä Ä  ÄÇ  bð b  Ð . Æ Æ  ÆÐ  cð c  × & È È  È×  dð d  Þ , Ê Ê  ÊÞ  eð e  ç  Ì Ì  Ìç  fð f  î . Î Î  Îî  gð g  õ   Ð Ð  Ðõ  hð h Ò Ò  Ò  ið i Ô Ô  Ô jð j  ú  Öüÿ Ö   Öú  kò k    Øòÿ Ø  Ø  lð l    Úñÿ Ú  Ú  mô m Üñÿ Ü  ܤ  nô n Þñÿ Þ  Þ  oô o   àñÿ à  à  pô p    âñÿ â  â  qô q    äñÿ ä  ä  rô r æñÿ æ  æ¤  sô s èñÿ è  è¤  tô t ê ê  ê  uð u  " , ì ì  ì"  vð v î î  î wñ w ð ð  ð xð x ò ò  ò yð y ô ô  ô zð z ö ö  ö {ð { ø ø  ø |ð | ú ú  ú }ñ } ü ü  ü ~ñ ~  ) $ þõÿ þ  þ)  ð   0 Œ”’–Žš˜ ûÿ   0  €ó €  A Œ”’–Žš˜ ûÿ   A  ó  òÿ    ‚ð ‚ òÿ      ƒð ƒ  T 0 ÷ÿ   T  „ô „  ]   ÷ÿ    ]  …ô …  d   ÷ÿ    d  †ô † ÷ÿ   d  ‡ô ‡ ÷ÿ     ˆô ˆ ÷ÿ   d  ‰ô ‰ ÷ÿ     Šô Š ÷ÿ     ‹ô ‹  k  ÷ÿ   k  Œô Œ  r  ÷ÿ   r  ô   y  Ž   $   y  Žð Ž     ð        ð  " "  " ‘ð ‘ $ $  $ ’ð ’ & &  & “ð “ ( (  ( ”ð ” * *  * •ð • , ,  , –ð – .ñÿ .  .  —ð —  ‚ ”’– 0üÿ 0   0‚  ˜ò ˜ 2÷ÿ 2  2 ™ð ™  Œ   4 4  4Œ  J  ÈT  4ºœ ÄTÈT  4ºœ ÄTÈT  8tœ ÄTÈT 8tœ ÄTÈT  8ºœ ÄTÈT  8ºœ ÄTÈT  xœ ÄT ÈT  œ ÄT ÈT  <tœ ÄTÈT <tœ ÄTÈT  <ºœ ÄTÈT  <ºœ ÄTÈT  @tœ ÄTÈT  tœ ÄT ÈT   œ ÄT ÈT    @tœ ÄTÈT  @ºœ ÄTÈT ) @ºzz(@ÿœIÄTÈTÄTÈTÄTÈ TÄ TÈTÄTÈTÄTÈTÄTÈTÄTÈTÄ T È"T   Ššñ š  ”  ”’– š˜ 6 6  6”  ›ð › 8 8   8Ü œð œ :÷ÿ :  : ð   ¨  < <  <¨  žô ž  ¯ $ ”’–š˜œ ž¢  > >  >¯  Ÿð Ÿ   ”’–š˜œ @ @  @   ð   B B  BÜ ¡ð ¡ D÷ÿ D  D  ¢ð ¢ Füÿ F   F  £ò £  Ï ŒŽ”’˜–š  H H  HÏ  ¤ð ¤ J J  Jâ ¥ñ ¥  Þ ”’–š˜ Lýÿ L  LÞ  ¦ô ¦ N N  N §ð § P P  P ¨ð ¨ R R  R ©ð © T T  T ªð ª V V  V «ð « X X  X ¬ð ¬ Z Z  Z ­ð ­ \ \  \ ®ð ® ^ ^  ^ ¯ð ¯ ` `  ` °ð ° b b  b ±ð ± d d  d ²ð ² f f   fÜ ³ð ³ h h  h ´ð ´ j j  j µð µ l l  l ¶ð ¶ n n  n ·ð · p p  p ¸ð ¸ r r  r ¹ð ¹ F G H  `  l ™ ¤ © àÅ é ï     "  $  &<0 (` *l ,” .™ 0à2© 4å 6ï 8û :p <  >  @Ú B  t=  =   ¶œ ÄTÈT  ¶œ ÄTÈT  [œ ÄTÈT  [œ ÄTÈT _ tœ ÄTÈT tœ ÄTÈT  ºœ ÄTÈT  ºœ ÄTÈT  xœ ÄT ÈT  œ ÄT ÈT  tœ ÄTÈT tœ ÄTÈT  ºœ ÄTÈT  ºœ ÄTÈT   tœ ÄTÈT tœ ÄTÈT  ºœ ÄTÈT  ºœ ÄTÈT    xœ ÄT ÈT   œ ÄT ÈT  tœ ÄTÈT tœ ÄTÈT  ºœ ÄTÈT  ºœ ÄTÈT   tœ ÄTÈT  tœ ÄTÈT  ºœ ÄTÈT  ºœ ÄTÈT  xœ ÄT ÈT  œ ÄT ÈT  $tœ ÄTÈT $tœ ÄTÈT  $ºœ ÄTÈT  $ºœ ÄTÈT  (tœ ÄTÈT (tœ ÄTÈT  (ºœ ÄTÈT  (ºœ ÄTÈT  xœ ÄT ÈT  œ ÄT ÈT  ,tœ ÄTÈT ,tœ ÄTÈT  ,ºœ ÄTÈT  ,ºœ ÄTÈT  0tœ ÄTÈT 0tœ ÄTÈT  0ºœ ÄTÈT  0ºœ ÄTÈT  xœ ÄT ÈT  œ ÄT ÈT  4tœ ÄTÈT 4tœ ÄTK ; ; COPYRIGHT 1980,1983 CONVERGENT TECHNOLOGIES, INC. ; ALL RIGHTS RESERVED ; ; THIS PROGRAM IS FURNISHED UNDER A LICENSE RESTRICTING ITS USE ; SOLELY FOR THE OPERATION OF A DESIGNATED COMPUTER FOR A ; PARTICULAR PURPOSE, AND MAY NOT BE COPIED OR OTHERWISE USED ; WITHOUT THE PRIOR WRITTEN CONSENT OF CONVERGENT TECHNOLOGIES, ; INC. TITLE TO AND OWNERSHIP OF THE PROGRAM, INCLUDING ITS ; SOURCE CODE, SHALL AT ALL TIMES REMAIN IN CONVERGENT TECHNOLOGIES. ; %Set(Level,0) %Set(counter,0) %SET(nSysRequest,0) %SET(nUsrRequest,0) %SET(nTerminationRq,0) %SET(nWsAbortRq,0) %SET(nChgUserNumRq,0) ; ; macro for defining termination request needed ; %*DEFINE (TerminationRequest(rc))( rgTables segment public 'coed' %IF (%nTerminationRq EQ 0) THEN ( EVEN rgTerminationRq LABEL WORD) FI DW %rc rgTables ends %SET(nTerminationRq, %nTerminationRq+1)) ; ; macro for defining abort request needed ; %*DEFINE (WsAbortRequest(rc))( rgTables segment public 'coed' %IF (%nWsAbortRq EQ 0) THEN ( rgWsAbortRq LABEL BYTE) FI DW %rc rgTables ends %SET(nWsAbortRq, %nWsAbortRq+1)) ; ; macro for defining ChgUserNum request needed ; %*DEFINE (ChgUserNumRequest(rc))( rgTables segment public 'coed' %IF (%nChgUserNumRq EQ 0) THEN ( rgChgUserNumRq LABEL BYTE) FI DW %rc rgTables ends %SET(nChgUserNumRq, %nChgUserNumRq+1)) %*define(xOut(str))(%out(%str)) %define(nl)( ) ; ctos 3.xx public RgpRouting,rgRouting public rgNetRouting, rgPrgNetRouting ; public rgRqExchgSys public rgSCntlInfoSys, rgNReqRespPbCbSys ;public rgnReqPbCbSYS,rgnRespPbCbPbSys public rgLocalServiceCode, rgLocalServiceCodeSys, nSysRequest, rcLookupSys, rcMaxSys public rgRqExchgUsr public rgSCntlInfoUsr, rgNReqRespPbCbUsr public rgLocalServiceCodeUsr, nUsrRequest, rcLookupUsr, rcMaxUsr ; public rgRoutingUsr, RgNetRoutingUsr ; public nTerminationRqInit, nWsAbortRqInit, nChgUserNumRqInit Public rcLookUp, rgPrcLookUp, rgPrcLookUpBase Public rgRqExchg, rgPrgRqExchg Public rgRcMax, rgPrgLocalServiceCode Public rgChgUserNumRq, rgTerminationRq, rgWsAbortRq Public rgTerminationRequest STACK segment word stack 'STACK' STACK ends ; For loadable requests, put first the tables that will be discarded: ; rgP's, TCode. Then put OCode, because part of it may be discardable. ; OCode contains the dividing point. ; ; Version and Tables ; Table array entries: rgWsAbortRq, rgChgUserNumRq, rgTerminationRq, ; rgSwappingRq. The second word tells InitRqEx how many words are in ; rgTables. rgTables segment public 'coed' DB 'J', 'F' ;Version, change here and in InitRqEx.plm sRgTables DW 0 rgTables ends ; Array [0..16] of pointer to rgRqExchg rqSeg5 segment public 'const' rgPrgRqExchg Label Byte DD rgRqExchgSys rqSeg5 ends ; Array [0..8] of pointer to rcLookup rqSeg6 segment word public 'const' rgPrcLookup Label Byte DD RcLookUpSys rqSeg6 ends  ; array [ 0..8 ] of pointers to first word of table data rqSeg7 segment word public 'const' rgPrcLookUpBase Label Byte DD pRgbTcodeBase ; entry for level 0 (0..FDF) rqSeg7 ends ; array [0..16] of max request codes rqSeg8 segment word public 'const' rgRcMax Label Byte rqSeg8 ends ; array [0..16] of pointers to local service code tables rqSeg9 segment word public 'const' rgPrgLocalServiceCode Label Byte DD rgLocalServiceCodeSys rqSeg9 ends ; array [0..16] of pointers to megaframe routing code tables rqSeg9x segment word public 'const' rgpRouting Label Byte DD rgRouting rqSeg9x ends ; array [0..16] of pointers to net routing code tables rqSeg10 segment word public 'const' rgPrgNetRouting Label Byte DD rgNetRouting rqSeg10 ends ; Put data segment with discarded segments, for loadable rq files ; data segment public 'data' dummy Label Byte data ends ; Format array entries TCode segment word public 'const' prgbTcodeBase Label Byte TCode ends ; Offsets into the 'format' array OCode segment word public 'const' rcLookUp Label Byte OCode ends ICode segment word public 'const' ICode ends RqGroup GROUP ICode,OCode, rqSeg6, rqSeg7, rqSeg8 ; Exchange servicing a request rqSeg0 segment word public 'const' rgRqExchg Label Word rqSeg0 ends ; sCntlK  Spec and routeByNode %*define(DevSpec)(%SET(netRouting,%netRouting+1)) ; Set expandDirSpec and routeByNode %*define(DirSpec)(%SET(netRouting,%netRouting+2)) ; Set expand2FileSpecs and routeByNode %*define(FileSpec2)(%SET(netRouting,%netRouting+4)) ; Set expand2FileSpec specified by p2 and s2 and routeByNode %*define(FileSpecP2S2)(%SET(netRouting,%netRouting+5)) %*define(rFh)(%SET(netRouting,%netRouting+8)) %*define(openFh)(%SET(netRouting,%netRouting+40h)) %*define(closeFh)(%SET(netRouting,%netRouting+6)) %*define(SpecPw)(%SET(netRouting,%netRouting+10h)) %*define(RW)(%SET(netRouting,%netRouting+80h)) ; ; new table -- ; %*Define(NewTable)(TCode segment %rqLabel label byte db %sRq, %nVar %varDB db %nCon %conDB TCode ends ) ; %*define(c1xx(s,q,p))(%if(%q eq 0)then(%c10x(%s,%p))else(%c11x(%s,%q,%p))fi) %*define(c0xx(q,p))(%if(%q eq 0)then(%c00x(%p))else(%c01x(%q,%p))fi) %*define(c00x(p))(%if(%p eq 0)then(%c000)else(%c001(%p))fi) %*define(c01x(q,p))(%if(%p eq 0)then(%c010(%q))else(%c011(%q,%p))fi) %*defineInfo array rqSeg1 segment word public 'const' rqSeg1 ends ; RqPbCb array, RespPbCb array rqSeg2 segment word public 'const' rqSeg2 ends ; ; Local Service code array rqSeg3 segment word public 'const' rqSeg3 ends ; megaframe Routing arrays rqSeg4 segment word public 'const' rqSeg4 ends ; Net Routing arrays rqSeg4x segment word public 'const' rqSeg4x ends ; ; megaframe routing macros ; %*define(rLocal)(0F0H) %*define(rRemote)(0F1H) %*define(rMasterFp)(0F2H) %*define(rHandle)(0F3H) %*define(rFileId)(0F4H) %*define(rMasterCp)(0F5H) %*define(rLineNumber)(0F6H) ; format macros "none", "b", "w", and "c" (basic macros) ; %*define(none)() %*define(noRouting)() %*define(illegal)(%define(varLB)(Ill)) %*define(b(loc))(%define(n)(%eval(%loc))%IF(%n + 2 GT %sRq)THEN%' (%define(sRq)(%eval(%n + 2)))FI%define(varLB)(%varLB%bLab%n)%' %define(varDB)(%varDB db %loc)%SET(nVar,%nVar+1)) %*define(w(loc))(%define(n)(%eval(%loc))%' %IF(%n + 2 GT %sRq)THEN(%define(sRq)(%eval(%n + 2)))FI%' %define(varLB)(%varLB%n)%define(varDB)(%varDB db 80h+%loc)%SET(nVar,%nVar+1)) %*define(c(val,loc))(%if(%val ne 0) then(%define(n)(%eval(%loc))%' %IF(%n + 2 GT %sRq)THEN(%define(sRq)(%eval(%n + 2)))FI%' %define(conLB)(%conLB%eval(%val)%n)%define(conDB)(%conDB db %loc,%val)%SET(nCon,%nCon+1))fi) %*Define(bLab)(b) %*Define(sep)(X) ; ; Define abreviations on above macros: ; ;fh = w(12) %*define(fh)(%IF(0EH GT %sRq)THEN(%define(sRq)(0EH))FI%' %define(varLB)(%varLB%(0CH))%' %define(varDB)(%varDB DB 8CH)%SET(nVar,%nVar+1)) %*define(lfa)(%IF(12H GT %sRq)THEN(%define(sRq)(12H))FI%' %define(varLB)(%varLB%(10H0EH))%define(varDB)(%varDB DB 90H,8EH)%SET(nVar,%nVar+2)) %*define(p0)(%IF(16H GT %sRq)THEN(%define(sRq)(16H))FI%' %define(varLB)(%varLB%(14H12H))%define(varDB)(%varDB DB 94H,92H)%SET(nVar,%nVar+2)) %*define(s0)(%w(22)) %*define(pbcb0)(%IF(18H GT %sRq)THEN(%define(sRq)(18H))FI%' %define(varLB)(%varLB%(14H12H16H))%define(varDB)(%varDB DB 94H,92H,96H)%SET(nVar,%nVar+3)) %*define(p1)(%IF(1CH GT %sRq)THEN(%define(sRq)(1CH))FI%' %define(varLB)(%varLB%(1AH18H))%define(varDB)(%varDB DB 9AH,98H)%SET(nVar,%nVar+2)) %*define(s1)(%w(28)) %*define(pbcb1)(%IF(1EH GT %sRq)THEN(%define(sRq)(1EH))FI%' %define(varLB)(%varLB%(1AH18H1CH))%define(varDB)(%varDB DB 09AH,98H,09CH)%SET(nVar,%nVar+3)) %*define(p2)(%IF(22H GT %sRq)THEN(%define(sRq)(22H))FI%' %define(varLB)(%varLB%(20H1EH))%define(varDB)(%varDB DB 0A0H,9EH)%SET(nVar,%nVar+2)) %*define(s2)(%w(34)) %*define(pbcb2)(%IF(24H GT %sRq)THEN(%define(sRq)(24H))FI%' %define(varLB)(%varLB%(20H1EH22H))%define(varDB)(%varDB DB 0A0H,9EH,0A2H)%SET(nVar,%nVar+3)) %*define(p3)(%IF(28H GT %sRq)THEN(%define(sRq)(28H))FI%' %define(varLB)(%varLB%(26H24H))%define(varDB)(%varDB DB 0A6H,0A4H)%SET(nVar,%nVar+2)) %*define(pbcb3)(%IF(2AH GT %sRq)THEN(%define(sRq)(2AH))FI%' %define(varLB)(%varLB%(26H24H28H))%define(varDB)(%varDB DB 0A6H,0A4H,0A8H)%SET(nVar,%nVar+3)) %*define(p(o))(%w(%o+2)%w(%o)) ; routing macros ; ; Set expandFileSpec and routeByNode %*define(FileSpec)(%SET(netRouting,%netRouting+3)) ; Set expandDevL (c10x(s,p))(%if(%p eq 0)then(%c100(%s))else(%c101(%s,%p))fi) %*define(c11x(s,q,p))(%if(%p eq 0)then(%c110(%s,%q))else(%c111(%s,%q,%p))fi) %*define(c000)(%define(conDB)()%define(nCon)(0)%define(conLB)()) %*define(c001(p))(%define(conDB)( db 3,%p)%define(nCon)(1)%define(conLB)(3%eval(%p))) %*define(c010(q))(%define(conDB)( db 2,%q)%define(nCon)(1)%define(conLB)(2%eval(%q))) %*define(c011(q,p))(%define(conDB)( db 2,%q,3,%p)%define(nCon)(2)%define(conLB)(2%eval(%q)3%eval(%p))) %*define(c100(s))(%define(conDB)( db 0,%s)%define(nCon)(1)%define(conLB)(0%eval(%s))) %*define(c101(s,p))(%define(conDB)( db 0,%s,3,%p)%define(nCon)(2)%define(conLB)(0%eval(%s)3%eval(%p))) %*define(c110(s,q))(%define(conDB)( db 0,%s,2,%q)%define(nCon)(2)%define(conLB)(0%eval(%s)2%eval(%q))) %*define(c111(s,q,p))(%define(conDB)( db 0,%s,2,%q,3,%p)%define(nCon)(3)%define(conLB)(0%eval(%s)2%eval(%q)3%eval(%p))) ; ; Sys Requests -- ; %*define(SysRequestInit)(%' %' %' '%xOut(%nl Start Sys requests:%nl )%' %' %' '%Enter7(rgRqExchgSys LABEL word%' %' ',rgSCntlInfoSys LABEL Word%' %' ',rgNReqRespPbCbSys LABEL word%' %' ',rgLocalServiceCode LABEL byte %' 'rgLocalServiceCodeSys EQU rgLocalServiceCode%' %' ',RcLookUpSys LABEL byte%' %' ',RgRouting LABEL byte%' %' ',RgNetRouting LABEL byte)%' ) %*define(SysRequest(id,name,exchange,code,size,nReqPbCb,nRespPbCb,format,mgfrouting,CtNetRouting))(%' %' '%xOut(%id)%define(varLB)()%define(varDB)()%define(nVar)(0) %' '%set(sRq,12+%size+6*(%nReqPbCb+%nRespPbCb)) %' '%set(netRouting,0) %' '%if(%size EQ 0) THEN (%c0xx(%nReqPbCb,%nRespPbCb))ELSE(%c1xx(%size,%nReqPbCb,%nRespPbCb))FI %' '%format %' '%CtNetRouting %' '%define(rqLabel)(T%conLB%sep%varLB) %' '%IF(NOT(%isdef(%rqLabel)))THEN(%NewTable)FI ; (%id - %name) rqSeg0 segment Dw %exchange rqSeg0 ends rqSeg1 segment Dw %size rqSeg1 ends rqSeg2 segment DB %nReqPbCb DB %nRespPbCb rqSeg2 ends rqSeg3 segment DW %code rqSeg3 ends OCode segment DW offset %rqLabel - offset prgbTcodeBase OCode ends rqSeg4 segment DB %mgfRouting rqSeg4 ends rqSeg4x segment DB %netRouting rqSeg4x ends %SET(nSysRequest,%nSysRequest+1)%xOut(,)) ; ; USR REQUESTS -- ; %*define(UsrRequestInit)(%' %' %' '%xOut(%nl Start User requests:%nl)%' %' %' '%Enter7(rgRqExchgUsr LABEL word%' %' ',rgSCntlInfoUsr LABEL word%' %' ',rgNReqRespPbCbUsr LABEL word%' %' ',rgLocalServiceCodeUsr LABEL byte%' %' ',RcLookUpUsr LABEL byte%' %' ',RgRoutingUsr LABEL byte%' %' ',RgNetRoutingUsr LABEL byte)%' ) %*define(UsrRequest(id,name,exchange,code,size,nReqPbCb,nRespPbCb,format,mgfrouting,CtNetRouting))(%' %' '%xOut(%id)%' %' '%nl;%name (%id)%nl %' '%define(varLB)()%' %' '%define(conLB)()%' %' '%define(varDB)()%' %' '%define(conDB)()%' %' '%define(nCon)(0)%' %' '%define(nVar)(0)%' %' '%set(sRq,12+%size+6*(%nReqPbCb+%nRespPbCb))%' %' '%set(netRouting,0)%' %' %' '%c(%size,0)%' %' '%c(%nReqPbCb,2)%' %' '%c(%nRespPbCb,3)%' %' '%format%' %' '%CtNetRouting%' %' '%define(rqLabel)(T%conLB%sep%varLB)%' %' '%IF(NOT(%isdef(%rqLabel))) THEN(%NewTable)FI %' %' '%Enter7(DW %exchange,DW %size,DW (%nRespPbCb*100H+%nReqPbCb) %' 'DW %code,%' %' 'DW offset %rqLabel - offset prgbTcodeBase,DB %mgfRouting,DB %netRouting)%' %' '%SET(nUsrRequest,%nUsrRequest+1)%' %' '%xOut(,)%' ) ; Enter a string into each of 7 segments, used for constructing tables -- ; %*DEFINE(Enter7(data0,data1,data2,data3,data4,data5,data6))( rqSeg0 segment %data0 rqSeg0 ends rqSeg1 segment %data1 rqSeg1 ends rqSeg2 segment %data2 rqSeg2 ends rqSeg3 segment %data3 rqSeg3 ends OCode segment %data4 OCode ends rqSeg4 segment %data5 rqSeg4 ends rqSeg4x segment %data6 rqSeg4x ends ) %*DEFINE(Enter3(data0,data1,data5))( rqSeg0 segment %data0 rqSeg0 ends rqSeg3 segment %data1 rqSeg3 ends OCode segment %data5 OCode ends ) %*DEFINE(Enter5(data0,data1,data5,data6,data7))( rqSeg0 segment %data0 rqSeg0 ends rqSeg3 segment %data1 rqSeg3 ends OCode segment %data5 OCode ends rqSeg4 segment %data6 rqSeg4 ends rqSeg4x segment %data7 rqSeg4x ends ) %*define(RequestInit(OldLevel,Level))(%' %If (%OldLevel EQ 0h) Then ( rqSeg8 Segment Dw %nSysReL  nter,0) %Set(Level,0h) %xOut(%nl End pass%nl)) ZZquest rqSeg8 Ends ) Else ( ; (Level %OLdlevel) rqSeg5 Segment DD rgRqExchg%OldLevel rqSeg5 Ends rqSeg9 Segment DD rgLocalServiceCode%OldLevel rqSeg9 Ends rqSeg9x Segment DD rgRouting%OldLevel rqSeg9x Ends rqSeg10 Segment DD rgNetRouting%OldLevel rqSeg10 Ends rqSeg8 Segment DW %counter rqSeg8 Ends %If ((%OldLevel And 1) EQ 0) Then ( rqSeg6 Segment DD rgFormatOffsetTable%OldLevel rqSeg6 Ends rqSeg7 Segment DD prgbTcodeBase rqSeg7 Ends ) Fi ) Fi %Set(counter,0) %If (%Level NE 10h) Then ( %xOut(%nl Level %Level requests: ) %Enter5(rgRqExchg%Level LABEL byte,rgLocalServiceCode%Level Label Byte ,rgFormatOffsetTable%Level LABEL byte,rgRouting%Level Label Byte,rgNetRouting%Level Label Byte)%' ) Fi ) %*Define(erc1)(%xOut( Use UsrRequest for Requests in the -32..-1 range )) %*Define(erc2)(%xOut( Use SysRequest for Requests in the 0..0FDFh range )) %*define(Request(id,name,exchange,code,size,nReqPbCb,nRespPbCb,format,%' mgfrouting,ctnetrouting))(%define(varLB)()%define(conLB)()%define(varDB)()%define(conDB)%' ()%define(nCon)(0)%define(nVar)(0)%set(sRq,12+%size+6*(%nReqPbCb+%nRespPbCb))%' %set(netRouting,0)%c(%size,0)%' %c(%nReqPbCb,2)%c(%nRespPbCb,3)%format%CtNetRouting%Set(OldLevel, %Level)%' %Set(Level, (%Id/1000h) And 0Fh)%If ((%eval(%Id) GE 0FFE0h) And (%' %Eval(%Id) LE 0FFFFh)) Then (%erc1)Fi%If (%Level EQ 0) Then (%erc2)Fi%' %While ((%OldLevel And 0Fh) LT %Level)(%RequestInit(%OldLevel,%' %Eval(%OldLevel+1))%Set(OldLevel,%OldLevel+1))%xOut(%id)%define(rqLabel)%' (T%conLB%sep%varLB)%IF(NOT(%isdef(%rqLabel))) THEN(%NewTable)FI ; (%id - %name) %Enter5(DW %exchange,DW %Code,DW offset %rqLabel - offset prgbTcodeBase,DB %mgfrouting, DB %netRouting)%Set(counter,%counter+1)%xOut(,)) ; ; final -- set counters in various tables, create gen table. ; %*define(Final)( rgTables segment public 'coed' %IF (%nWsAbortRq EQ 0) THEN (rgWsAbortRq label byte) FI %IF (%nChgUserNumRq EQ 0) THEN (rgChgUserNumRq label byte) FI %IF (%nTerminationRq EQ 0) THEN (rgTerminationRq label byte) FI rgTerminationRequest Equ RgTerMinationRq rgTables ends OCode segment rcMaxSys DW %nSysRequest rcMaxUsr DW %nUsrRequest OCode ends data segment public 'data' rgnRequest label word nSysRequest DW %nSysRequest nUsrRequest DW %nUsrRequest nWsAbortRqInit DW %nWsAbortRq nChgUserNumRqInit DW %nChgUserNumRq nTerminationRqInit DW %nTerminationRq data ends %While(%Level LE 15)(%RequestInit(%Level,%Eval(%Level+1))%Set(Level,%Level+1)) rqSeg5 Segment DD rgRqExchgUsr rqSeg5 Ends rqSeg6 Segment DD RcLookUpUsr rqSeg6 Ends rqSeg7 Segment DD pRgbTcodeBase rqSeg7 Ends rqSeg8 Segment Dw %nUsrRequest rqSeg8 Ends rqSeg9 Segment DD rgLocalServiceCodeUsr rqSeg9 Ends rqSeg9x Segment DD rgRoutingUsr rqSeg9x Ends rqSeg10 Segment DD rgNetRoutingUsr,rgSCntlInfoSys, rgSCntlInfoUsr, rgNReqRespPbCbSys DD rgNReqRespPbCbUsr, rgWsAbortRq, rgChgUserNumRq, rgTerminationRq DD rgnRequest DB %if(%*isdef(%fMerge)) THEN (%fMerge) ELSE(0FFh)FI rqSeg10 Ends rgTables segment public 'coed' ORG offset sRgTables DW %nChgUserNumRq + %nTerminationRq + %nWsAbortRq rgTables ends %Set(cou