IMD 1.17: 25/11/2014 12:19:42 82VKXBVERDOS D* BT12:0 68K VERSADOS/RMS68K OBJECT 4.5 (DS,DD 96 tpi 5.1/4" DISK) REVISED: 04/22/86 DISK 12 OF 24  BT12 82VKXBVERDOS 0420±a-=/*‘theuser'saccountnumbersoeachuserhastheirowncopy.=/*K=/*NOTE:‚Someequatefilesareboard/systemspecificandarecopiedbythe=/*ˆ"COPYGEN..CF"file.=/* =COPY\1:9995.&.BAB.EQ‘\2:\3;\4C =COPY\1:9995.&.CCB.EQ‘\2:\3;\4C =COPY\1:9995.&.EXE.EQ‘\2:\3;\4C =COPY\1:9995.&.FME.EQ‘\2:\3;\4C =COPY\1:9995.&.FMI.EQ‘\2:\3;\4C =COPY\1:9995.&.IOE.EQ‘\2:\3;\4C!=COPY\1:9995.&.KILL.MC\2:\3;\4C$=COPY\1:9995.&.KILLDRV.EQ\2:\3;\4C$=COPY\1:9995.&.KILLIOI.EQ\2:\3;\4C =COPY\1:9995.&.LV5.EQ‘\2:\3;\4C$=COPY\1:9995.&.M300DRV.EQ\2:\3;\4C$=COPY\1:9995.&.M605DRV.EQ\2:\3;\4C%=COPY\1:9995.&.M610INTQ.EQŒ\2:\3;\4C$=COPY\1:9995.&.M615DRV.EQ\2:\3;\4C$=COPY\1:9995.&.M625DRV.EQ\2:\3;\4C =COPY\1:9995.&.MAP.EQ‘\2:\3;\4C$=COPY\1:9995.&.MMBPMMU.MC\2:\3;\4C#=COPY\1:9995.&.MMUTYP.EQŽ\2:\3;\4C =COPY\1:9995.&.NIO.EQ‘\2:\3;\4C#=COPY\1:9995.&.RADDRV.EQŽ\2:\3;\4C#=COPY\1:9995.&.RIODRV.EQŽ\2:\3;\4C =COPY\1:9995.&.STR.EQ‘\2:\3;\4C =COPY\1:9995.&.TCB.EQ‘\2:\3;\4C =COPY\1:9995.&.TR1.EQ‘\2:\3;\4C$=COPY\1:9995.&.TR1RTCD.EQ\2:\3;\4C =COPY\1:9995.&.TST.EQ‘\2:\3;\4C$=COPY\1:9995.&.UTILITY.MC\2:\3;\4C=/*%=COPY\1:9999.&.KILLEXEC.EQŒ\2:\3;\4C$=COPY\1:9999.&.MMBPMMU.EQ\2:\3;\4C*=COPY\1:9999.M146818.M146818.EQ‡\2:\3;\4C&=COPY\1:9999.M68020.CACR.EQ‹\2:\3;\4C&=COPY\1:9999.M6840.M6840.EQ‹\2:\3;\4C(=COPY\1:9999.M68451.M68451.EQ‰\2:\3;\4C*=COPY\1:9999.MK68901.MK68901.EQ‡\2:\3;\4C*=COPY\1:9999.MM58274.MM58274.EQ‡\2:\3;\4C&=COPY\1:9999.Z8036.Z8036.EQ‹\2:\3;\4CN p,=/*L=/* COPYGEN.EXORMACS.CF - Chain file to copy all EXORMACS specific files for =/*—sysgen.+=COPY\1:9993.EXORMACS.ACIALOC.SI†\2:\3;\4C=/*#=COPY\1:9998.&.SYSINIT.LG\2:\3;\4,=COPY\1:9998.EXORMACS.CNFGDRVR.CI…\2:\3;\4C*=COPY\1:9998.EXORMACS.IFDRVR.CI‡\2:\3;\4C+=COPY\1:9998.EXORMACS.INITIO1.AG†\2:\3;\4C*=COPY\1:9998.EXORMACS.SYSTEM.CI‡\2:\3;\4C=/*&=COPY\1:9999.C4O9.SYSPAR.RO‹\2:\3;\4C'=COPY\1:9999.EXORMACS.RMS.CIŠ\2:\3;\4C'=COPY\1:9999.EXORMACS.RMS.LLŠ\2:\3;\4C'=COPY\1:9999.EXORMACS.RMS.LOŠ\2:\3;\4CNNNNNy=/*L=/* COPYGEN.FHSIOS.CF - Chain file to copy all files for sysgen of FHS & IOS =COPY\1:9998.&.FHS.LG‘\2:\3;\4C =COPY\1:9998.&.IOS.LG‘\2:\3;\4C%=COPY\1:9998.DEVICE.FHS.ROŒ\2:\3;\4C%=COPY\1:9998.DEVICE.IOS.ROŒ\2:\3;\4C"=COPY\1:9998.FHS.IXR.AG\2:\3;\4C*=COPY\1:9998.FHSIOS.VERSADOS.CI‡\2:\3;\4C#=COPY\1:9998.FILE.FHS.ROŽ\2:\3;\4C#=COPY\1:9998.FILE.IOS.ROŽ\2:\3;\4C%=COPY\1:9998.OSLIST.FHS.SIŒ\2:\3;\4C%=COPY\1:9998.OSLIST.IOS.SIŒ\2:\3;\4C&=COPY\1:9998.VERSAPT.FHS.CF‹\2:\3;\4C&=COPY\1:9998.VERSAPT.IOS.CF‹\2:\3;\4CNNN NN‚=/*C=/* COPYGEN.FMS.CF - Chain file to copy all files for sysgen of FMS!=COPY\1:9998.&.FDTA.RO\2:\3;\4C!=COPY\1:9998.&.FFHS.RO\2:\3;\4C!=COPY\1:9998.&.FIOM.RO\2:\3;\4C!=COPY\1:9998.&.FIOS.RO\2:\3;\4C =COPY\1:9998.&.FMS.LG‘\2:\3;\4C!=COPY\1:9998.&.FUTY.RO\2:\3;\4C"=COPY\1:9998.FMS.IXR.AG\2:\3;\4C'=COPY\1:9998.FMS.VERSADOS.CIŠ\2:\3;\4C%=COPY\1:9998.OSLIST.FMS.SIŒ\2:\3;\4C&=COPY\1:9998.VERSAPT.FMS.CF‹\2:\3;\4CNNNNNN‹ =/*L=/* COPYGEN.IOC.CF - Chain file to copy all files for sysgen of IOC portions=/*’forany/alldrivers#=COPY\1:9998.&.IOCGEN.CIŽ\2:\3;\4C#=COPY\1:9998.&.IOCGEN.LGŽ\2:\3;\4C$=COPY\1:9998.IOC.BEGIN.AG\2:\3;\4C"=COPY\1:9998.IOC.END.AG\2:\3;\4C$=COPY\1:9998.MACRO.DCB.SI\2:\3;\4C(=COPY\1:9998.MACRO.DCBDISK.SI‰\2:\3;\4C(=COPY\1:9998.MACRO.DCBGPIB.SI‰\2:\3;\4C)=COPY\1:9998.MACRO.DCBMTAPE.SIˆ\2:\3;\4C'=COPY\1:9998.MACRO.DCBPRT.SIŠ\2:\3;\4C(=COPY\1:9998.MACRO.DCBTERM.SI‰\2:\3;\4CNN NNNN” =/*C=/* COPYGEN.IOI.CF - Chain file to copy all files for sysgen of IOI =COPY\1:9998.&.IOI.CI‘\2:\3;\4C =COPY\1:9998.&.IOI.LG‘\2:\3;\4C =COPY\1:9998.&.IOI.RO‘\2:\3;\4C$=COPY\1:9998.&.ROMIOI1.AG\2:\3;\4C%=COPY\1:9998.&.ROMIOI90.ROŒ\2:\3;\4C$=COPY\1:9998.EET.START.AG\2:\3;\4C"=COPY\1:9998.FMS.IOI.AG\2:\3;\4C&=COPY\1:9998.VERSAPT.IOI.CF‹\2:\3;\4CNNNNNN =/*I=/* COPYGEN.LOADER.CF - Chain file to copy all files for sysgen of LOADER3=/*•(systemwillpickwhichMMU/NOMMUfilestouse)$=COPY\1:9998.&.EMHNDLR.RO\2:\3;\4C%=COPY\1:9998.MMU.LOADER.LGŒ\2:\3;\4C%=COPY\1:9998.MMU.LOADER.ROŒ\2:\3;\4C*=COPY\1:9998.MMULDR.VERSADOS.CI‡\2:\3;\4C'=COPY\1:9998.NOMMU.LOADER.LGŠ\2:\3;\4C'=COPY\1:9998.NOMMU.LOADER.ROŠ\2:\3;\4C,=COPY\1:9998.NOMMULDR.VERSADOS.CI…\2:\3;\4C&=COPY\1:9998.VERSAPT.LDR.CF‹\2:\3;\4C NNNNNN¦ =/*B=/* COPYGEN.ROOT.CF - Chain file to copy all root files for sysgen=/*#=COPY\1:0000.&.UTILIB.ROŽ\2:\3;\4C=/*$=COPY\1:9998.&.INITDAT.AG\2:\3;\4C$=COPY\1:9998.&.INITIO1.LG\2:\3;\4C$=COPY\1:9998.&.INITMEM.AG\2:\3;\4C$=COPY\1:9998.&.INITMEM.LG\2:\3;\4C"=COPY\1:9998.&.MTYPE.SI\2:\3;\4C"=COPY\1:9998.&.ROGEN.CI\2:\3;\4C"=COPY\1:9998.&.ROGEN.LG\2:\3;\4C#=COPY\1:9998.&.SYSGEN.CFŽ\2:\3;\4C$=COPY\1:9998.&.SYSINIT.CI\2:\3;\4C#=COPY\1:9998.&.VALPAR.CIŽ\2:\3;\4C%=COPY\1:9998.&.VERSADOS.CDŒ\2:\3;\4C&=COPY\1:9998.IOC.ADDRESS.CI‹\2:\3;\4C%=COPY\1:9998.MULT.MTYPE.SIŒ\2:\3;\4C(=COPY\1:9998.NOLIST.SYSGEN.CF‰\2:\3;\4C&=COPY\1:9998.SIO.ADDRESS.CI‹\2:\3;\4C%=COPY\1:9998.STD.SYSGEN.CFŒ\2:\3;\4C*=COPY\1:9998.VERSAPT.SYSINIT.CF‡\2:\3;\4C=/*'=COPY\1:9999.BESTFIT.INIT.ROŠ\2:\3;\4C%=COPY\1:9999.BUDDY.INIT.ROŒ\2:\3;\4CNNNN¯ =/*H=/* COPYGEN.SCSIDRV.CF - Chain file to copy all files for sysgen of SCSI=/*–driverontheVME117$=COPY\1:9993.&.SCSIDRV.CI\2:\3;\4C$=COPY\1:9993.&.SCSIDRV.LG\2:\3;\4C$=COPY\1:9993.&.SCSIDRV.RO\2:\3;\4C&=COPY\1:9998.IOC.SCSIDRV.AG‹\2:\3;\4C*=COPY\1:9998.VERSAPT.SCSIDRV.CF‡\2:\3;\4CNNNNNN¸=/*N=/* COPYGEN.M331DRV.CF - Chain file to copy all files for sysgen of VME331/332=/*$=COPY\1:9993.&.M331DRV.CI\2:\3;\4C$=COPY\1:9993.&.M331DRV.LG\2:\3;\4C$=COPY\1:9993.&.M331DRV.RO\2:\3;\4C&=COPY\1:9998.IOC.M331DRV.AG‹\2:\3;\4C*=COPY\1:9998.VERSAPT.M331DRV.CF‡\2:\3;\4CNNNNN NÁ=/*K=/* COPYGEN.VM03.CF - Chain file to copy all VM03 specific files for sysgen#=COPY\1:9998.&.SYSINIT.LG\2:\3;\4(=COPY\1:9998.VM03.CNFGDRVR.CI‰\2:\3;\4C&=COPY\1:9998.VM03.IFDRVR.CI‹\2:\3;\4C'=COPY\1:9998.VM03.INITIO1.AGŠ\2:\3;\4C&=COPY\1:9998.VM03.SYSTEM.CI‹\2:\3;\4C=/*&=COPY\1:9999.CBOF.SYSPAR.RO‹\2:\3;\4C#=COPY\1:9999.VM03.RMS.CIŽ\2:\3;\4C#=COPY\1:9999.VM03.RMS.LLŽ\2:\3;\4C#=COPY\1:9999.VM03.RMS.LOŽ\2:\3;\4CNNNNNNÊ 'COPYGEN VME101 CFßß   $VME110 CFèè   $RADDRV CFññ  $VME120 CFúú  $RIODRV CF  $VMES10 CF     $SIODRV CF  $VM04 CF   $VME117 CF''  $VME122 CF00  $VME130 CF99   $VME131 CFBB   $=/*O=/* COPYGEN.VME101.CF - Chain file to copy all VME101 specific files for sysgen)=COPY\1:9993.VME101.EPCILOC.SIˆ\2:\3;\4C=/*#=COPY\1:9998.&.SYSINIT.LG\2:\3;\4*=COPY\1:9998.VME101.CNFGDRVR.CI‡\2:\3;\4C(=COPY\1:9998.VME101.IFDRVR.CI‰\2: \3;\4C)=COPY\1:9998.VME101.INITIO1.AGˆ\2:\3;\4C(=COPY\1:9998.VME101.SYSTEM.CI‰\2:\3;\4C=/*&=COPY\1:9999.C9OC.SYSPAR.RO‹\2:\3;\4C%=COPY\1:9999.VME101.RMS.CIŒ\2:\3;\4C%=COPY\1:9999.VME101.RMS.LLŒ\2:\3;\4C%=COPY\1:9999.VME101.RMS.LOŒ\2:\3;\4CNNNNN×=/*O=/* COPYGEN.VME110.CF - Chain file to copy all VME110 specific files for sysgen)=COPY\1:9993.VME110.ACIALOC.SIˆ\2:\3;\4C=/*#=COPY\1:9998.&.SYSINIT.LG\2:\3;\4*=COPY\1:9998.VME110.CNFGDRVR.CI‡\2:\3;\4C(=COPY\1:9998.VME110.IFDRVR.CI‰\2:\3;\4C)=COPY\1:9998.VME110.INITIO1.AGˆ\2:\3;\4C(=COPY\1:9998.VME110.SYSTEM.CI‰\2:\3;\4C=/*&=COPY\1:9999.C9OC.SYSPAR.RO‹\2:\3;\4C%=COPY\1:9999.VME110.RMS.CIŒ\2:\3;\4C%=COPY\1:9999.VME110.RMS.LLŒ\2:\3;\4C%=COPY\1:9999.VME110.RMS.LOŒ\2:\3;\4CNNNNN à=/*G=/* COPYGEN.RADDRV.CF - Chain file to copy all files for sysgen of RAD1#=COPY\1:9992.&.RADDRV.CIŽ\2:\3;\4C#=COPY\1:9992.&.RADDRV.LGŽ\2:\3;\4C#=COPY\1:9992.&.RADDRV.ROŽ\2:\3;\4C#=COPY\1:9992.&.RADIOC.SIŽ\2:\3;\4C#=COPY\1:9992.&.RADMEM.CIŽ\2:\3;\4C#=COPY\1:9992.&.RADMEM.AGŽ\2:\3;\4C)=COPY\1:9998.VERSAPT.RADDRV.CFˆ\2:\3;\4CNNNNNNé =/*D=/* COPYGEN.VME120.CF - Chain file to copy all VME120 specific files=/*•forsysgen(=COPY\1:9993.VME120.MFPLOC.SI‰\2:\3;\4C=/*)=COPY\1:9998.VME12X.CNFGDRVR.CI‡\2:\3;\4'=COPY\1:9998.VME12X.IFDRVR.CI‰\2:\3;\4'=COPY\1:9998.VME12X.SYSTEM.CI‰\2:\3;\4(=COPY\1:9998.VME12X.INITIO1.AGˆ\2:\3;\4(=COPY\1:9998.VME12X.SYSINIT.LGˆ\2:\3;\4=/*&=COPY\1:9999.CBOD.SYSPAR.RO‹\2:\3;\4C%=COPY\1:9999.VME120.RMS.CIŒ\2:\3;\4C%=COPY\1:9999.VME120.RMS.LLŒ\2:\3;\4C%=COPY\1:9999.VME120.RMS.LOŒ\2:\3;\4C&=COPY\1:9999.VME12X.BOARD.EQŠ\2:\3;\4(=COPY\1:9999.VME12X.PREINIT.ROˆ\2:\3;\4NNN NNò=/*F=/* COPYGEN.RIODRV.CF - Chain file to copy all files for sysgen of RIO#=COPY\1:9992.&.RIODRV.CIŽ\2:\3;\4C#=COPY\1:9992.&.RIODRV.LGŽ\2:\3;\4C#=COPY\1:9992.&.RIODRV.ROŽ\2:\3;\4C#=COPY\1:9992.&.RIOIOC.SIŽ\2:\3;\4C#=COPY\1:9992.&.RIOMEM.CIŽ\2:\3;\4C#=COPY\1:9992.&.RIOMEM.AGŽ\2:\3;\4C)=COPY\1:9998.VERSAPT.RIODRV.CFˆ\2:\3;\4CNNNNNNû =/*O=/* COPYGEN.VMES10.CF - Chain file to copy all VMES10 specific files for sysgen#=COPY\1:9998.&.SYSINIT.LG\2:\3;\4*=COPY\1:9998.VMES10.CNFGDRVR.CI‡\2:\3;\4C(=COPY\1:9998.VMES10.IFDRVR.CI‰\2:\3;\4C)=COPY\1:9998.VMES10.INITIO1.AGˆ\2:\3;\4C'=COPY\1:9998.VMES10.MTYPE.SIŠ\2:\3;\4C(=COPY\1:9998.VMES10.SYSTEM.CI‰\2:\3;\4C=/*&=COPY\1:9999.CAOE.SYSPAR.RO‹\2:\3;\4C%=COPY\1:9999.VMES10.RMS.CIŒ\2:\3;\4C%=COPY\1:9999.VMES10.RMS.LLŒ\2:\3;\4C%=COPY\1:9999.VMES10.RMS.LOŒ\2:\3;\4CNN NNNN =/*M=/* COPYGEN.SIODRV.CF - Chain file to copy all files for sysgen of SIO driver#=COPY\1:9993.&.SIODRV.CI\2:\3;\4C#=COPY\1:9993.&.SIODRV.LG\2:\3;\4C#=COPY\1:9993.&.SIODRV.RO\2:\3;\4C%=COPY\1:9998.IOC.SIODRV.AG\2:\3;\4C)=COPY\1:9998.VERSAPT.SIODRV.CF‰\2:\3;\4CNNNNNN =/*K=/* COPYGEN.VM04.CF - Chain file to copy all VM04 specific files for sysgen#=COPY\1:9998.&.SYSINIT.LG\2:\3;\4(=COPY\1:9998.VM04.CNFGDRVR.CI‰\2:\3;\4C&=COPY\1:9998.VM04.IFDRVR.CI‹\2:\3;\4C'=COPY\1:9998.VM04.INITIO1.AGŠ\2:\3;\4C&=COPY\1:9998.VM04.SYSTEM.CI‹\2:\3;\4C=/*(=COPY\1:9999.C40O44.SYSPAR.RO‰\2:\3;\4C(=COPY\1:9999.VM04.CTRLSTAT.EQ‰\2:\3;\4C#=COPY\1:9999.VM04.RMS.CIŽ\2:\3;\4C#=COPY\1:9999.VM04.RMS.LLŽ\2:\3;\4C#=COPY\1:9999.VM04.RMS.LOŽ\2:\3;\4C  NNNNNN =/*D=/* COPYGEN.VME117.CF - Chain file to copy all VME117 specific files=/*•forsysgen(=COPY\1:9993.VME117.SCCLOC.SI‰\2:\3;\4C=/*#=COPY\1:9998.&.SYSINIT.LG\2:\3;\4*=COPY\1:9998.VME117.CNFGDRVR.CI‡\2:\3;\4C(=COPY\1:9998.VME117.IFDRVR.CI‰\2:\3;\4C)=COPY\1:9998.VME117.INITIO1.AGˆ\2:\3;\4C(=COPY\1:9998.VME117.SYSTEM.CI‰\2:\3;\4C=/*(=COPY\1:9999.C20O24.SYSPAR.RO‰\2:\3;\4C)=COPY\1:9999.VME117.CTRLREG.EQˆ\2:\3;\4C)=COPY\1:9999.VME117.MM58274.EQˆ\2:\3;\4C%=COPY\1:9999.VME117.RMS.CIŒ\2:\3;\4C%=COPY\1:9999.VME117.RMS.LLŒ\2:\3;\4C%=COPY\1:9999.VME117.RMS.LOŒ\2:\3;\4CNNNNN  =/*D=/* COPYGEN.VME122.CF - Chain file to copy all VME122 specific files=/*•forsysgen(=COPY\1:9993.VME122.MFPLOC.SI‰\2:\3;\4C=/*)=COPY\1:9998.VME12X.CNFGDRVR.CI‡\2:\3;\4'=COPY\1:9998.VME12X.IFDRVR.CI‰\2:\3;\4'=COPY\1:9998.VME12X.SYSTEM.CI‰\2:\3;\4(=COPY\1:9998.VME12X.INITIO1.AGˆ\2:\3;\4(=COPY\1:9998.VME12X.SYSINIT.LGˆ\2:\3;\4=/*&=COPY\1:9999.CBOD.SYSPAR.RO‹\2:\3;\4C%=COPY\1:9999.VME122.RMS.CIŒ\2:\3;\4C%=COPY\1:9999.VME122.RMS.LLŒ\2:\3;\4C%=COPY\1:9999.VME122.RMS.LOŒ\2:\3;\4C&=COPY\1:9999.VME12X.BOARD.EQŠ\2:\3;\4(=COPY\1:9999.VME12X.PREINIT.ROˆ\2:\3;\4NNNNN(=/*O=/* COPYGEN.VME130.CF - Chain file to copy all VME130 specific files for sysgen#=COPY\1:9998.&.SYSINIT.LG\2:\3;\4)=COPY\1:9998.VME130.INITIO1.AGˆ\2:\3;\4C(=COPY\1:9998.VME130.SYSTEM.CI‰\2:\3;\4C)=COPY\1:9998.VME13X.CNFGDRVR.CI‡\2:\3;\4'=COPY\1:9998.VME13X.IFDRVR.CI‰\2:\3;\4=/*(=COPY\1:9999.C40O44.SYSPAR.RO‰\2:\3;\4C%=COPY\1:9999.VME130.RMS.CIŒ\2:\3;\4C%=COPY\1:9999.VME130.RMS.LLŒ\2:\3;\4C%=COPY\1:9999.VME130.RMS.LOŒ\2:\3;\4C*=COPY\1:9999.VME13X.CTRLSTAT.EQ‡\2:\3;\4CNNNNN  N1 =/*O=/* COPYGEN.VME131.CF - Chain file to copy all VME131 specific files for sysgen#=COPY\1:9998.&.SYSINIT.LG\2:\3;\4)=COPY\1:9998.VME131.INITIO1.AGˆ\2:\3;\4C(=COPY\1:9998.VME131.SYSTEM.CI‰\2:\3;\4C)=COPY\1:9998.VME13X.CNFGDRVR.CI‡\2:\3;\4'=COPY\1:9998.VME13X.IFDRVR.CI‰\2:\3;\4=/*(=COPY\1:9999.C40O44.SYSPAR.RO‰\2:\3;\4C%=COPY\1:9999.VME131.RMS.CIŒ\2:\3;\4C%=COPY\1:9999.VME131.RMS.LLŒ\2:\3;\4C%=COPY\1:9999.VME131.RMS.LOŒ\2:\3;\4C*=COPY\1:9999.VME13X.CTRLSTAT.EQ‡\2:\3;\4CNNNNNN: û'VERSAPT M319DRV CFOO  $P050DRV CFXX  $M360DRV CFaa  $M300DRV CFjj  $M320DRV CFss  $M420DRV CF||  $M435DRV CF……  $M600DRV CFŽŽ  $M605DRV CF——  $M610DRV CF    $M615DRV CF©©  $M625DRV CF²²  $ACIADRV CF»»  $BEGIN CFÄÄ   $EPCIDRV CFÍÍ  $IPCDRV CFÖÖ  $MFPDRV CFßß  $RADDRV CFèè  $PIADRV CFññ  $RWINDRV CFúú  $=/*=/* VERSAPT.M319DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\M319DRVŽ*StartofM319DRVH*<----------------------------------------------------------------------QUIT  NNNNNNNG=/*=/* VERSAPT.P050DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\P050DRVŽ*StartofP050DRVH*<----------------------------------------------------------------------QUITNNNNNNN  P=/*=/* VERSAPT.M360DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\M360DRVŽ*StartofM360DRVH*<----------------------------------------------------------------------QUITNNNNNNNY=/*=/* VERSAPT.M300DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\M300DRVŽ*StartofM300DRVH*<----------------------------------------------------------------------QUITNNNNN  NNb=/*=/* VERSAPT.M320DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\M320DRVŽ*StartofM320DRVH*<----------------------------------------------------------------------QUITNNNNNNNk=/*,=/* VERSAPT.M420DRV.CF - SASI driver patches=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\M420DRVŽ*StartofM420DRVH*<----------------------------------------------------------------------QUITNN  NNNNt=/*0=/* VERSAPT.M435DRV.CF - Mag Tape Driver Patches=/*=PATCH VERSADOS.SYG*>---------------------------------------------------------------------O\M435DRVŽ*StartofM435DRVG*<---------------------------------------------------------------------QUITNNNNNN}=/*=/*ƒVERSAPT.M600DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------#O\M600DRVŽ*StartofVME600driverH*<----------------------------------------------------------------------QUITN  NNNNNN†=/*=/*ƒVERSAPT.M605DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------#O\M605DRVŽ*StartofVME605driverH*<----------------------------------------------------------------------QUITNNNNNNN  =/*=/*ƒVERSAPT.M610DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------#O\M610DRVŽ*StartofVME610driverH*<----------------------------------------------------------------------QUITNNNNNNN˜=/*=/*ƒVERSAPT.M615DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------#O\M615DRVŽ*StartofVME615driverH*<----------------------------------------------------------------------QUITNNNNNN  N¡=/*=/*ƒVERSAPT.M625DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------#O\M625DRVŽ*StartofVME625driverH*<----------------------------------------------------------------------QUITNNNNNNNª=/*=/* VERSAPT.ACIADRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\ACIADRVŽ*StartofACIADRVH*<----------------------------------------------------------------------QUITNNNN NNN³F=/* .VERSAPT.CF is built from VERSAPT.BEGIN.CF at sysgen time.F=/* It will contain patches to be applied to VERSADOS after the sysgenA=/*process.‚The.VERSAPT.CFfileisbuiltdynamicallyatC=/* sysgen time depending on the configuration of your system whichC=/*isdefinedby.CNFGDRVR.CIand&.CNFGTASK.CIfiles.‚TheE=/* other VERSAPT.*.CF files are copy appended to this file to createB=/*thefinal.VERSAPT.CFfile.‚TheSUBScommandisrunonE=/* .VERSAPT.CF to create the .XVERSAPT.CF file whichB=/* is run after the sysgen has completed, to apply any patches to%=/* .VERSADOS.SY as required.=/*NNNNN¼ =/*7=/*‚VERSAPT.EPCIDRV.CF-EPCIdriverpatchesforVME101=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\EPCIDRVŽ*StartofEPCIDRVH*<----------------------------------------------------------------------QUITN NNNNNÅ=/*=/* VERSAPT.IPCDRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\IPCDRV*StartofIPCDRVH*<----------------------------------------------------------------------QUITNNNNNNNÎ=/*=/* VERSAPT.MFPDRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\MFPDRV*StartofMFPDRVH*<----------------------------------------------------------------------QUIT NNNNNNN×=/*=/* VERSAPT.RADDRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\RADDRV*StartofRADDRVH*<----------------------------------------------------------------------QUITNNNNNNN à=/*=/* VERSAPT.PIADRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\PIADRV*StartofPIADRVH*<----------------------------------------------------------------------QUITNNNNNNNé=/*=/* VERSAPT.RWINDRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\RWINDRVŽ*StartofRWINDRVH*<----------------------------------------------------------------------QUITNNNNN NNò'VERSAPT DRVS10 CF  $VM22DRV CF  $EET CF  $END CF""  $FHS CF++  $FMS CF44  $IOS CF==  $LDR CFFF  $MPCCDRV CFOO  $MPSCDRV CFXX  $MPSCSPR CFaa  $MPSCSUP CFjj  $SCSIDRV CFss  $RIODRV CF||  $IOI CF……  $SYSINIT CFŽŽ  $SIODRV CF——  $M331DRV CF    $P117DRV CF©©  $SCCDRV CF²²  $=/*9=/*‚VERSAPT.DRVS10.CF-TERMDRVdriverpatchesforVME/10=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\TERMDRVŽ*StartofTERMDRVH*<----------------------------------------------------------------------QUITNNNNNNÿ =/*=/* VERSAPT.VM22DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\VM22DRV*StartofVM22DRVH*<----------------------------------------------------------------------QUITNNNNNNN=/*=/*†VERSAPT.EET.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\EETSTR*StartofEETH*<----------------------------------------------------------------------QUITNNNNNN N=/*8=/* SYSTEM MUST BE RE-BOOTED FOR PATCHES TO TAKE EFFECT.=/*=ENDNNNNNNN=/*=/*†VERSAPT.FHS.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\FHSSTR*StartofFHSH*<----------------------------------------------------------------------QUITNNNN NNN#=/*=/*†VERSAPT.FMS.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\FMSSTR*StartofFMSH*<----------------------------------------------------------------------QUITNNNNNNN,=/*=/*†VERSAPT.IOS.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\IOSSTR*StartofIOSH*<----------------------------------------------------------------------QUITNN NNNNN5=/*=/*†VERSAPT.LDR.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\LDRSTR*StartofLDRH*<----------------------------------------------------------------------QUITNNNNNNN>=/*=/* VERSAPT.MPCCDRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\MPCCDRVŽ*StartofMPCCDRVH*<----------------------------------------------------------------------QUIT NNNNNNNG=/*=/* VERSAPT.MPSCDRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\MPSCDRVŽ*StartofMPSCDRVH*<----------------------------------------------------------------------QUITNNNNNNN P=/*=/* VERSAPT.MPSCSPR.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\MPSCSPRŽ*StartofMPSCSPRH*<----------------------------------------------------------------------QUITNNNNNNNY=/*=/*ƒVERSAPT.MPSCSUP.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\MPSCSUPŽ*StartofMPSCSUPH*<----------------------------------------------------------------------QUITNNNNN NNb=/*=/* VERSAPT.SCSIDRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\SCSIDRVŽ*StartofSCSIDRVH*<----------------------------------------------------------------------QUITNNNNNNNk=/*=/* VERSAPT.RIODRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\RIODRV*StartofRIODRVH*<----------------------------------------------------------------------QUITNNN NNNNt=/*=/*†VERSAPT.IOI.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\IOCSTR*StartofIOCH*<----------------------------------------------------------------------QUITNNNNNNN}=/*=/*†VERSAPT.SYSINIT.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\INTSTR*StartofINTH*<----------------------------------------------------------------------QUITN NNNNNN†=/*=/* VERSAPT.SIODRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\SIODRVŽ*StartofSIODRVH*<----------------------------------------------------------------------QUITNNNNNNN =/*7=/*‚VERSAPT.M331DRV.CF-MVME331/MVME332driverpatches=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\M331DRV*StartofM331DRVH*<----------------------------------------------------------------------QUITNNNNNN˜=/*=/* VERSAPT.P117DRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\P117DRVŽ*StartofP117DRVH*<----------------------------------------------------------------------QUITNNNNNN N¡=/*=/* VERSAPT.SCCDRV.CF=/*=PATCH VERSADOS.SYH*>----------------------------------------------------------------------O\SCCDRVŽ*StartofSCCDRVH*<----------------------------------------------------------------------QUITNNNNNNNª'EXORMACSCOPYSGENCF¿¿s  $INITIO1 AGØØ©  $CNFGDRVRCIññ{  $SYSTEM CI  ˆ  $IFDRVR CI##(  $=/*>=/*‚EXORMACS.COPYSGEN.CF‚-‚ChainfiletocopyfilesforSYSGEN=/*)=/*‚--‚FORCECATALOGTOBESET=EXORMACS=USE :.EXORMACS=/*D=/*†ThischainfilecopiesthosefilesrequiredtodoaSYSGENintoa'=/*†aspecifiedvolumeandusernumber. =/*==/*ƒInvokeas:„=EXORMACS.COPYSGEN.CF‚arg1,arg2,arg3,arg4,arg5 =/*…where:.=/*‰Arg1=\1„SourcevolumenameŒ(mustspecify).=/*‰Arg2=\2„TargetvolumenameŒ(mustspecify).=/*‰Arg3=\3„TargetusernumberŒ(mustspecify)-=/*‰Arg4=\4„COPYoptionletter(s)‰(optional)=/*—B=bothcopy&verify=/*—P=packfiles =/*—Y=overwriteiffileexists*=/*—N=skipcopyiffileexistsƒ(default)*=/*–VT=verify&showonly1stdifference=OPT N=/RX=\0=/RD=0 =/IF RX < 3…=/RD=1=/ENDIF =/IF RX > 4…=/RD=1=/ENDIF =/IF RD=0 …=/IFC\1Š=/RD=1…=/ENDIF …=/IFC\2Š=/RD=2…=/ENDIF …=/IFC\3Š=/RD=3…=/ENDIF …=/IFC\4Š=ARG\1,\2,\3,N…=/ENDIF=/ENDIFJ=/*‚SetArg5sothisfilecan'tbererundirectlyw/osettingproperargs!=ARG \1,\2,\3,\4,ARGS=OPT -N =/IF RD <> 0Mƒ=/*INVOCATIONERROR!Insufficient,null,and/orinvalidargumentspecified!ƒ=/R?ƒ=END=/ENDIF *=/* ==== Start driver related file copyingO=/*----------------------------------------------------------------------------)=/* Copy all VM30 (MCCM) files for sysgen=/@„\1:9998.COPYGEN.VM30DRV.CFO=/*----------------------------------------------------------------------------(=/* Copy all IPC driver files for sysgen=/@„\1:9998.COPYGEN.IPCDRV.CFO=/*----------------------------------------------------------------------------,=/* Copy all driver library files for sysgen=/@„\1:9998.COPYGEN.DRVLIB.CFO=/*----------------------------------------------------------------------------)=/* Copy all ACIA driver files for sysgen=/@„\1:9998.COPYGEN.ACIADRV.CFO=/*----------------------------------------------------------------------------"=/* Copy all VM22 files for sysgen=/@„\1:9998.COPYGEN.VM22DRV.CF·DÀ(ÈO=/*----------------------------------------------------------------------------(=/* Copy all PRT driver files for sysgen=/@„\1:9998.COPYGEN.PIADRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all disk related files for sysgen=/@„\1:9998.COPYGEN.DSKPARAM.CFO=/*----------------------------------------------------------------------------=/*=/**=/* ==== Start system related file copyingO=/*----------------------------------------------------------------------------/=/*‚CopyallEXORMACSspecificfilesforsysgen=/@„\1:9998.COPYGEN.EXORMACS.CFO=/*----------------------------------------------------------------------------!=/* Copy all EET files for sysgen=/@„\1:9998.COPYGEN.EET.CFO=/*----------------------------------------------------------------------------'=/* Copy all FHS & IOS files for sysgen=/@„\1:9998.COPYGEN.FHSIOS.CFO=/*----------------------------------------------------------------------------!=/* Copy all FMS files for sysgen=/@„\1:9998.COPYGEN.FMS.CFO=/*----------------------------------------------------------------------------$=/* Copy all LOADER files for sysgen=/@„\1:9998.COPYGEN.LOADER.CFO=/*----------------------------------------------------------------------------<=/* Copy all BEGIN/END files for sysgen (OSLIST and VERSAPT)=/@„\1:9998.COPYGEN.BEGINEND.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOI files for sysgen=/@„\1:9998.COPYGEN.IOI.CFO=/*----------------------------------------------------------------------------'=/* Copy all CNFG TASK files for sysgen=/@„\1:9998.COPYGEN.CNFGTASK.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOC files for sysgen=/@„\1:9998.COPYGEN.IOC.CFO=/*----------------------------------------------------------------------------!=/* Copy all .EQ files for sysgen=/@„\1:9998.COPYGEN.EQ.CF O=/*----------------------------------------------------------------------------2=/*‚Copyalltherestoftherootfilesforsysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*4=/*†EXORMACS.COPYSGEN.CF‚completed.‰Haveaniceday!=/*N=/*‚No"NOARG"and"=END"becauseindependentdriverreleaseitemsmayfollow!NNNNNN**ˆEXORMACS.INITIO1.AG**‚Includedfilesare:*‰M6840.M6840.EQŠINCLUDEM6840.M6840.EQ ŠSECTION8ŠPAGE*J*‚ThiscodeisneededtosatisfyINIT,whichisboard-independentandmust/*‚calluponustodotheboard-dependentstuff.**„InitializetheMMU.* ŠXDEFƒINITMMUŠXREF.SMMUHERE INITMMU: 7ŠMOVEM.LD0-D7/A0,-(SP)„Saveregisterswe'llblowaway. *ŠLEA„$FE2000,A0‰A0<--addressoftheMMU. ,ŠIFNEƒ\MMUIfwe'resupposedtousetheMMU, ;ŠMOVE.LA0,MMUHERE‰.SavetheaddressoftheMMUinSYSPAR. ŠENDC 4ŠIFEQƒ\MMUElse(we'renotsupposedtousetheMMU), DŠMOVEM.LMMUFAKE(PC),D0-D7.GivetheMMUsomestuffwhichwillmake*ŠMOVEM.LD0-D7,(A0)ˆ.itlooktransparent. ŠENDC 3ŠMOVEM.L(SP)+,D0-D7/A0„Restoreregistersandexit.ŠRTS  DMMUFAKEƒDC.Lƒ$0000FFFF,$00000001‚StufftoputinMMUtomakeitlookŠDC.Lƒ0,0,0,0,0,0ˆtransparent. **„Startthetimerrunning.*)ŠXREFƒCRASHSAV‹ThesearefoundinSYSPAR.ŠXREF.SEXCSTACKŠXREF.SPTMADDRŠXREF.STIMESLICŠXREF.STIMINTVŠXREF.STIMINTV4 &ŠXREFƒCLOCKFRQ‹ThesearefoundinIND. ŠXREFƒTIMERAŠXREFƒTIMINTVA ŠXREFƒTIMSLIC 1ŠXDEFƒTIMERSTŒEntrypointtoSTARTTIMERroutine.*1TIMERSTƒEQU„*’EntrypointtoSTARTTIMERroutine.;ŠMOVE.LTIMSLIC(PC),TIMESLICSetthesysgenparameterwhich'*¦dictatesthe#oftimerticspertime*¦slice'ŠMOVE.LTIMERA(PC),A1†GETTIMERADDRESS#ŠMOVE.LA1,PTMADDR‰SAVEITFOREXEC$ŠBEQ.S‚TIMER_EXIT‰BRANCHIFNOTIMER)ŠPEA„TIMERBE(PC)ˆWHERETOGOONBUSERROR$ŠMOVE.W#'BE',-(A7)ˆSETBUSERRFLAG3ŠMOVE.B#$01,CR2SR(A1)…ALLOWWRITETOCONTROLREG1&ŠMOVE.B#$01,CR13(A1)†ALLTIMERSRESET$ŠMOVE.L#CLOCKFRQ,D0‡CLOCKFREQUENCYŠDIVUƒ#4,D0ŽDIVIDEBY4#ŠSUB.W‚#1,D0ŽCLOCKINTERRUPTSAT-1*ŠMOVE.WTIMINTVA(PC),D1„INTERRUPTINTERVAL ŠMOVE.WD1,TIMINTV‰SAVEFOREXECŠMULUƒ#4,D1ŽMULTIPLYBY4*ŠSUB.W‚#1,D1ŽSUBTRACT1-TIMERGOESTO-1!ŠMOVE.WD1,TIMINTV4ˆSAVEFOREXECŠLSL.W‚#8,D1ŽPUTINHIGHBYTE ÐPÙ;á)ŠADD.W‚D1,D0ŽVALUEFORTIMER3(2HALVES)ŠMOVEP‚D0,MSBT3(A1)‡SETTIMER34ŠMOVE.W#256,D0ŒVALUEFORTIMER1(OVERFLOWCOUNTER)ŠMOVEP‚D0,MSBT1(A1)‡SETTIMER18ŠMOVE.B#$00,CR2SR(A1)…ALLOWWRITETOCONTROLREGISTER3;ŠMOVE.B#$C6,CR13(A1)†T3--INTERNALCLOCK,INTERRUPTENABLED,*£OUTPUTENABLED,8-BITMODE8ŠMOVE.B#$01,CR2SR(A1)…ALLOWWRITETOCONTROLREGISTER1;ŠMOVE.B#$00,CR13(A1)†T1--EXTERNALCLOCK,ENABLEALLTIMERS/ŠADDQ.L#6,SPŽEverythingwentOK;justgetthat'*¦buserrorjunkoffthestackandexitŠBRA.S‚TIMER_EXIT*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>•NOTICEš<<<<<<<*‚>>>>>>>µ<<<<<<<>*‚>>>>>>>…WhenincorporatinganydriversduringSYSGEN„<<<<<<<?*‚>>>>>>>…thatrequirememoryallocatedforthemasperƒ<<<<<<<?*‚>>>>>>>…thedriverpackageinstructions-thisistheƒ<<<<<<<,*‚>>>>>>>…spotthefile(s)gointo!!–<<<<<<<*‚>>>>>>>µ<<<<<<<=*‚>>>>>>>…Thisisalsothespotforcodeforadriver…<<<<<<<>*‚>>>>>>>…that‚requiresothertypesofinitialization,ƒ<<<<<<<0*‚>>>>>>>…such‚asclearinganinterrupt.‘<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>‘MERGEITHERE—<<<<<<<*<*ˆWhenyouwritethecodethatistobemergedhere,wrapit*ˆaroundwiththefollowing:*:*ˆAtthebeginning,withDRVRxOUTreferringtoyourunique*ˆlabel,putthiscode:*'*‹PEA„DRVRxOUT(PC)„IFBUSERROROCCURS,*¢RETURNORGOONTONEXT*¢DRIVER'SINITIALIZATION**‹MOVE.W#'BE',-(A7)…SAVE'BUSERROR'FLAG*9*ˆTheninsertthecodetodowhatyouneedtodoforthis*ˆparticulardriver.**ˆAttheend,putthis:***‹LEA„6(A7),A7ˆREMOVEBUSERRORFROMSTACK*DRVRxOUTƒEQU„**=*ˆInthisway,ifthecodeforonedrivercausesabuserror,.*ˆthecodeforotherdriverswillbeexecuted.*E*‚>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<G*********************************************************************** ŠENDNNN N**ˆEXORMACS.CNFGDRVR.CI*'* Configuration file for device driversO*------------------------------------------------------------------------------F* This file sets up the flags used by the "EXORMACS.IFDRVR.CI" file to'* conditionally include device drivers.*K* The user should only have to modify this file to include/exclude drivers.E* If you add more boards/devices, you may have to increase the sysgen>* command T option for more symbols in the "&.SYSGEN.CF" file.*K* To modify specific items of a driver, edit the corresponding driver file,J* "&.xxxxDRV.CI" except as noted where one driver handles multiple boards.O*------------------------------------------------------------------------------ N******************************************************************************L*---‚BOARD/SYSTEMDEPENDENCIESareincludedfromthe&.VERSADOS.CDfile.---=*EXORMACS.SYSTEM.CIƒaddprocessorboard/systemdependencies,(*–includinglocalterminalsandprinters6*&.CNFGTASK.CIƒaddO/StaskconfigurationforROM/RAMM*****************************************************************************  O*------------------------------------------------------------------------------:NOLTERMƒ=2Œ#ofterminalsusingACIAserialports;max=2IFGTˆ\NOLTERM-2ƒMSG†NOLTERMmustbe<=2ƒABORTENDC O*------------------------------------------------------------------------------1NOLPRT„=1Œ#oflocal(on-board)printers;max=1 O*------------------------------------------------------------------------------=NOVM20„=1Œ#ofVM20…FDC(floppyonlydiskcontrollerboards)*¦usesIPCdriver*¦(see"&.IPCDRV.CI") IFGTˆ\NOVM207ƒNFV20$1ƒ=2Œ#offloppydiskdriveson1stFDC;max=47ƒNFV20$2ƒ=0Œ#offloppydiskdriveson2ndFDC;max=4 HƒVM200$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stFDCboard;drive0HƒVM201$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stFDCboard;drive1HƒVM202$1ƒ="'F8SDDSM'"‚Typeof3rdfloppydiskon1stFDCboard;drive2é-ò(ú'HƒVM203$1ƒ="'F8SDDSM'"‚Typeof4thfloppydiskon1stFDCboard;drive3 HƒVM200$2ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon2ndFDCboard;drive0HƒVM201$2ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon2ndFDCboard;drive1HƒVM202$2ƒ="'F8SDDSM'"‚Typeof3rdfloppydiskon2ndFDCboard;drive2HƒVM203$2ƒ="'F8SDDSM'"‚Typeof4thfloppydiskon2ndFDCboard;drive3ENDC O*------------------------------------------------------------------------------;NOVM21„=1Œ#ofVM21…UDC(universaldiskcontrollerboards)%*¦floppy&harddisks;twoboardset;*¦usesIPCdriver*¦(see"&.IPCDRV.CI") IFGTˆ\NOVM215ƒNHV21$1ƒ=2Œ#ofhardƒdiskdriveson1stUDC;max=47ƒNFV21$1ƒ=2Œ#offloppydiskdriveson1stUDC;max=45ƒNHV21$2ƒ=0Œ#ofhardƒdiskdriveson2ndUDC;max=47ƒNFV21$2ƒ=0Œ#offloppydiskdriveson2ndUDC;max=4 FƒVM210$1„="'FXCMD80'"‚Typeof1sthardƒdiskon1stUDCboard;drive0FƒVM211$1„="'RMCMD16'"‚Typeof2ndhardƒdiskon1stUDCboard;drive1FƒVM212$1„="'FXCMD80'"‚Typeof3rdhardƒdiskon1stUDCboard;drive2FƒVM213$1„="'RMCMD16'"‚Typeof4thhardƒdiskon1stUDCboard;drive3 HƒVM214$1„="'F8SDDSM'"‚Typeof1stfloppydiskon1stUDCboard;drive4HƒVM215$1„="'F8SDDSM'"‚Typeof2ndfloppydiskon1stUDCboard;drive5HƒVM216$1„="'F8SDDSM'"‚Typeof3rdfloppydiskon1stUDCboard;drive6HƒVM217$1„="'F8SDDSM'"‚Typeof4thfloppydiskon1stUDCboard;drive7 FƒVM210$2„="'FXLRK25'"‚Typeof1sthardƒdiskon2ndUDCboard;drive0FƒVM211$2„=" 'RMLRK25'"‚Typeof2ndhardƒdiskon2ndUDCboard;drive1FƒVM212$2„="'FXCMD80'"‚Typeof3rdhardƒdiskon2ndUDCboard;drive2FƒVM213$2„="'RMCMD16'"‚Typeof4thhardƒdiskon2ndUDCboard;drive3 HƒVM214$2„="'F8SDDSM'"‚Typeof1stfloppydiskon2ndUDCboard;drive4HƒVM215$2„="'F8SDDSM'"‚Typeof2ndfloppydiskon2ndUDCboard;drive5HƒVM216$2„="'F8SDDSM'"‚Typeof3rdfloppydiskon2ndUDCboard;drive6HƒVM217$2„="'F8SDDSM'"‚Typeof4thfloppydiskon2ndUDCboard;drive7ENDC O*------------------------------------------------------------------------------8NOVM22„=0Œ#ofVM22…SMDdiskcontrollersboards(single*¦board) IFGTˆ\NOVM222ƒNHV22$1ƒ=0Œ#ofhardƒdiskdrivesonVM22;max=84ƒNFV22$1ƒ=0Œ#offloppydiskdrivesonVM22;max=4 BƒVM220$1ƒ="'FXCMD80'"‚Typeoffixed…on1stdiskon1stVM22boardFƒVM221$1ƒ="'RMCMD16'"‚Typeofremovableon1stdiskon1stVM22boardBƒVM222$1ƒ="'FXCMD80'"‚Typeoffixed…on2nddiskon1stVM22boardFƒVM223$1ƒ="'RMCMD16'"‚Typeofremovableon2nddiskon1stVM22boardBƒVM224$1ƒ="'FXCMD80'"‚Typeoffixed…on3rddiskon1stVM22boardFƒVM225$1ƒ="'RMCMD16'"‚Typeofremovableon3rddiskon1stVM22boardBƒVM226$1ƒ="'FXCMD80'"‚Typeoffixed…on4thdiskon1stVM22boardFƒVM227$1ƒ="'RMCMD16'"‚Typeofremovableon4thdiskon1stVM22board @ƒVM228$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stVM22board@ƒVM229$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stVM22board@ƒVM22A$1ƒ="'F5DDDSI'"‚Typeof3rdfloppydiskon1stVM22board@ƒVM22B$1ƒ="'F5DDDSI'"‚Typeof4thfloppydiskon1stVM22boardENDC O*------------------------------------------------------------------------------7NOVM30„=1Œ#ofVM30…MCCM‚(multi-channelcommunications *¦boards)(*¦usesIPCdriver;has1printerport/bd*¦(see"&.IPCDRV.CI") IFGTˆ\NOVM30/ƒNTV30$1ƒ=4Œ#ofterminalson1stMCCM;max=4.ƒNPV30$1ƒ=1Œ#ofprinters‚on1stMCCM;max=1/ƒNTV30$2ƒ=0Œ#ofterminalson2ndMCCM;max=4.ƒNPV30$2ƒ=0Œ#ofprinters‚on2ndMCCM;max=1/ƒNTV30$3ƒ=0Œ#ofterminalson3rdMCCM;max=4.ƒNPV30$3ƒ=0Œ#ofprinters‚on3rdMCCM;max=1/ƒNTV30$4ƒ=0Œ#ofterminalson4thMCCM;max=4.ƒNPV30$4ƒ=0Œ#ofprinters‚on4thMCCM;max=1ENDC O*------------------------------------------------------------------------------**ˆEXORMACS.SYSTEM.CI*L****************************************************************************B*‚Thisfilecontainsallboard/systemdependenciesforEXORMACS.Š*&*‚Itiscalledfrom"&.VERSADOS.CD".¦**Ê*E*‚Theusershouldnothavetomodifythisfileexceptunderextreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ONBOARDRAMADDRESSES*>*†VMEbusdriversrequirethefollowingtargetsystemdependentB*†variablestobedefinedwhenthemacrofileDUALPORT.MCisused:<*†NotethattheONBD$HIparametermayvaryontheVME110and<*†andVME101systemsdependingonthesizeandnumberofRAM<*†chipsusedontheprocessorcard.‚Thevaluesshownarethe?*†minimumrequirements.Modifythatparametertomatchyourown*†systemifdifferent.**;ONBD$LOƒ=$0‹Lowvalueforon-boardram(asseenbydriver)RAM$SQ„=$0‹Differencebetweenon-boardramaddressasseenby*˜driveranddevice.JOFFBD$LO‚=\ONBD$LO+\RAM$SQLowvalueforon-boardram(asseenbydevice)JOFFBD$HI‚=\ONBD$HI+\RAM$SQHighvaluforon-boardram(asseenbydevice) FMSG‰******************************************************************MSG‰**ˆAddressesoftimer,etc.FMSG‰****************************************************************** !TIMER…=$FEE040†Addressoftimer.5CLOCKFRQ‚=1000‰Numberofclockticksper millisecond'PANEL…=$FE0000†Addressoffrontpanel.5TRCFLAGƒ=0ŒTraceflag.‚Zeroimpliesdon'ttrace.‚The/*˜settingofbitsintheTRCFLAGparameterwill1*˜controlwhicheventscauseanentrytobebuilt*˜inthetracetable.*˜Bit#inTRCFLAG†Event *›15‘TRAP#1*›14‘I/Ointerruptnotclaimed*°byusertask.*›13‘Timerinterrupt.*›12‘Usertrap(2-15)*›11‘Exception *›10‘Dispatch*œ9‘I/Ointerruptclaimedby *°usertask*œ8‘ReturnfromLOADMMU*œ7‘Simulatedinterrupt6 /$*œ6‘SYSFAILinterrupt.*FMSG‰******************************************************************.MSG‰**ƒLocalterminal/printerdeviceaddresses#MSG‰**ƒShortI/Ospacebaseaddress&MSG‰**ƒShortI/OspaceaddressoffsetsFMSG‰****************************************************************** :&VECTNOƒ=$FFŠStartingVectorNumberusedbyIOC.IPCDRV.AG8LTDA$01ƒ=$FEE011†EXORMACSlocalterminalportAaddress8LTDA$02ƒ=$FEE015†EXORMACSlocalterminalportBaddress0LPDA$01ƒ=$FEE009†EXORMACSlocalprinteraddress 1SIOBASEƒ=$FF0000†BaseaddressofShortI/Ospace&DEVADDƒ=\SIOBASE.RMS.CIfileandhasavalueequal!*œtotheinitialprogramcounter.*@*ˆThefollowingparametersareusedtodefinememorypartitions.A*ˆIfonlypartition0exists,thenMEMEND2shouldbesettozero.*@NOPARTSƒ=1ŒNumberofmemorypartitions(neededby&.INITMEM.AG)AMEMEND1ƒ=$200000†Theendƒofpartition0(assumedtostartat0).&MEMEND2ƒ=$0‹Thestartofpartition1.1*˜Note:ForVM11-2(512k)RAMboardsetMEMEND2to#*ž$40000.Jumperboardaccordingly.$MEMEND3ƒ=$0‹Theendƒofpartition1.:WHERLOAD‚=0ŒMemoryaddresswherebootfilewillbeloaded6*˜Ifnonzero,VERSAdoswillbemovedatinitialization*˜time.=CACHEF„=0ŒNotusedfortheEXORmacs(neededby&.INITDAT.AG).RMS.CI*)ASN‡=0Œ#ofaddressspaces--notusedbut!*˜neededtosatisfy&.INITDAT.AG. GMSG‰*******************************************************************>MSG‰*ƒCopythesysteminitializerintoM68XXX.INIT.RObasedon:MSG‰*ƒthetypeofmemoryallocationdefinedatRMSGENtimeMSG‰*ƒin.RMS.CD.GMSG‰******************************************************************* =COPY‡&.MTYPE.SI,MTYPE.SI;Y IFEQˆ\MEMALOC'ƒ=COPY‡BESTFIT.INIT.RO,M68XXX.INIT.RO;YENDC IFNEˆ\MEMALOC%ƒ=COPY‡BUDDY.INIT.RO,M68XXX.INIT.RO;YENDC GMSG‰*******************************************************************=MSG‰*ƒCopyC4O9.SYSPAR.ROinto&.SYSPAR.ROtomakeitgeneric@MSG‰*ƒfor.LGfileandpossibleforsysgeningmorethan1systemMSG‰*ƒperaccount#GMSG‰******************************************** *********************** "=COPY‡C4O9.SYSPAR.RO,&.SYSPAR.RO;YNN**ˆEXORMACS.IFDRVR.CI*.* Conditional file for EXORmacs device driversO*------------------------------------------------------------------------------O* This file uses flags setup in the EXORMACS.CNFGDRVR.CI and EXORMACS.SYSTEM.CI0* files to conditionally include device drivers.*J* The user should not have to modify this file to include/exclude drivers.*D*„******************************************************************?*„**‚NOTICE:‚Thefollowingconditionalsareorderdependent.„**3*„**‹Donotchangetheorder!‚Localdrivers1st.‡**9*„**‹Theorderdeterminesdevicenumber(HD00,PR,etc)‚***„**‹formostitems.¤**D*„*******************************************************************>*„NOTE:‚"CN00"thru"CN09"reservedfornonVM30(MCCM)ports.* IFNEˆ\NOLTERMƒINCLUDE…&.ACIADRV.CIENDC* IFNEˆ\NOLPRTƒINCLUDE…&.PIAEXM.CIENDC*IFNEˆ\NOVM20+\NOVM21+\NOVM30ƒINCLUDE…&.IPCDRV.CIENDC* IFNEˆ\NOVM30?ƒ*„NOTE:‚"CNn0"thru"CNn3"reservedfortheseeachMCCMboard,+ƒ*‹where"n"istheboardnumber(1,2,...).7ƒ*‹"PRn"isassignedsequentiallyforeachMCCMboard.ƒINCLUDE…&.VM30DRV.CIENDCO*------------------------------------------------------------------------------ IFNEˆ\NOVM22ƒINCLUDE…&.VM22DRV.CIENDCNN)'VM03 COPYSGENCF00¤  $INITIO1 AGQQ4§  $IFDRVR CI’’P  $SYSTEM CI››­  $CNFGDRVRCI¼¼#Ê  $ =/*:=/*‚VM03.COPYSGEN.CF‚-‚ChainfiletocopyfilesforSYSGEN=/*%=/*‚--‚FORCECATALOGTOBESET=VM03 =USE :.VM03=/*D=/*†ThischainfilecopiesthosefilesrequiredtodoaSYSGENintoa'=/*†aspecifiedvolumeandusernumber.=/*9=/*ƒInvokeas:„=VM03.COPYSGEN.CF‚arg1,arg2,arg3,arg4,arg5 =/*…where:.=/*‰Arg1=\1„SourcevolumenameŒ(mustspecify).=/*‰Arg2=\2„TargetvolumenameŒ(mustspecify).=/*‰Arg3=\3„TargetusernumberŒ(mustspecify)-=/*‰Arg4=\4„COPYoptionletter(s)‰(optional)=/*—B=bothcopy&verify=/*—P=packfiles =/*—Y=overwriteiffileexists*=/*—N=skipcopyiffileexistsƒ(default)*=/*–VT=verify&showonly1stdifference2=/*‰Arg5=\5„includePCDRVdriverfilesƒ(optional)=/*—PCDRV=includethem=OPT N=/RX=\0=/RD=0 =/IF RX < 3…=/RD=1=/ENDIF =/IF RX > 5…=/RD=1=/ENDIF =/IF RD=0 …=/IFC\1Š=/RD=1…=/ENDIF …=/IFC\2Š=/RD=2…=/ENDIF …=/IFC\3Š=/RD=3…=/ENDIF …=/IFC\4 Š=/IFC\5=ARG\1,\2,\3,N,-PCDRVŠ=/ELSE=ARG\1,\2,\3,N,\5Š=/ENDIF…=/ENDIF …=/IFC\5ˆ=ARG\1,\2,\3,\4,-PCDRV…=/ELSEˆ=/IFEQ"PCDRV"\5ˆ=/ELSE‹=/IFEQ"-PCDRV"\5‹=/ELSEŽ=/RD=5‹=/ENDIFˆ=/ENDIF…=/ENDIF=/ENDIFJ=/*‚SetArg6sothisfilecan'tbererundirectlyw/osettingproperargs!=ARG \1,\2,\3,\4,\5,ARGS=OPT -N =/IF RD <> 0Mƒ=/*INVOCATIONERROR!Insufficient,null,and/orinvalidargumentspecified!ƒ=/R?ƒ=END=/ENDIF *=/* ==== Start driver related file copying=/IFEQ "PCDRV"\5O=/*----------------------------------------------------------------------------"=/* Copy all RAD1 files for sysgen=/@„\1:9998.COPYGEN.RADDRV.CFO=/*----------------------------------------------------------------------------!=/* Copy all RIO files for sysgen=/@„\1:9998.COPYGEN.RIODRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME600 files for sysgen=/@„\1:9998.COPYGEN.M600DRV.CF(P1(9(AO=/*----------------------------------------------------------------------------$=/* Copy all VME605 files for sysgen=/@„\1:9998.COPYGEN.M605DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME610 files for sysgen=/@„\1:9998.COPYGEN.M610DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME615 files for sysgen=/@„\1:9998.COPYGEN.M615DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME625 files for sysgen=/@„\1:9998.COPYGEN.M625DRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all PCDRV common files for sysgen=/@„\1:9998.COPYGEN.PCDRV.CF=/ENDIFO=/*----------------------------------------------------------------------------)=/* Copy all VM30 (MCCM) files for sysgen=/@„\1:9998.COPYGEN.VM30DRV.CFO=/*----------------------------------------------------------------------------(=/* Copy all IPC driver files for sysgen=/@„\1:9998.COPYGEN.IPCDRV.CFO=/*----------------------------------------------------------------------------,=/* Copy all driver library files for sysgen=/@„\1:9998.COPYGEN.DRVLIB.CFO=/*----------------------------------------------------------------------------)=/* Copy all MPSC driver files for sysgen=/@„\1:9998.COPYGEN.MPSCDRV.CFO=/*----------------------------------------------------------------------------"=/* Copy all VM22 files for sysgen=/@„\1:9998.COPYGEN.VM22DRV.CFO=/*----------------------------------------------------------------------------/=/* Copy all VME435 (mag tape) files for sysgen=/@„\1:9998.COPYGEN.M435DRV.CFO=/*------------------------------------------------------------------- ---------(=/* Copy all PRT driver files for sysgen=/@„\1:9998.COPYGEN.PIADRV.CFO=/*----------------------------------------------------------------------------7=/* Copy all RWIN1 (Winchester) driver files for sysgen=/@„\1:9998.COPYGEN.RWINDRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all disk related files for sysgen=/@„\1:9998.COPYGEN.DSKPARAM.CFO=/*----------------------------------------------------------------------------=/*=/**=/* ==== Start system related file copyingO=/*----------------------------------------------------------------------------+=/*‚CopyallVM03specificfilesforsysgen=/@„\1:9998.COPYGEN.VM03.CFO=/*----------------------------------------------------------------------------!=/* Copy all EET files for sysgen=/@„\1:9998.COPYGEN.EET.CFO=/*----------------------------------------------------------------------------'=/* Copy all FHS & IOS files for sysgen=/@„\1:9998.COPYGEN.FHSIOS.CFO=/*----------------------------------------------------------------------------!=/* Copy all FMS files for sysgen=/@„\1:9998.COPYGEN.FMS.CFO=/*----------------------------------------------------------------------------$=/* Copy all LOADER files for sysgen=/@„\1:9998.COPYGEN.LOADER.CFO=/*----------------------------------------------------------------------------<=/* Copy all BEGIN/END files for sysgen (OSLIST and VERSAPT)=/@„\1:9998.COPYGEN.BEGINEND.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOI files for sysgen=/@„\1:9998.COPYGEN.IOI.CFO=/*----------------------------------------------------------------------------'=/* Copy all CNFG TASK files for sysgen=/@„\1:9998.COPYGEN.CNFGTASK.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOC files for sysgen=/@„\1:9998.COPYGEN.IOC.CFO=/*----------------------------------------------------------------------------!=/* Copy all .EQ files for sysgen=/@„\1:9998.COPYGEN.EQ.CFO=/*----------------------------------------------------------------------------2=/*‚Copyalltherestoftherootfilesforsysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*0=/*†VM03.COPYSGEN.CF‚completed.‰Haveaniceday!=/*N=/*‚No"NOARG"and"=END"becauseindependentdriverreleaseitemsmayfollow!NNNNNN N5INITIO„IDNT‚45,0RMS68KI/OinitializerfortheVM03.O*******************************************************************************O*******************************************************************************O**********************************************************************************É***E***…ROUTINE:‚INITIO--RMS68KI/OINITIALIZERFORTHEVM03BOARD.†******É***J***…ENVIRONMENT:‚PartoftheRMS68KexecfortheMotorola68000family.***(***‡Copyright1983byMotorola,Inc.¢******É***D***…FUNCTION:‚RoutinesfromthismodulearecalledbytheRMS68K‡***E***‡routineINITduringsysteminitialization.‚Allboard-specific„***.***‡initializationisdoneinthismodule.œ******É***G***…NOTES:‚ThismoduleisSUBSed,ASMed,andLINKedatSYSGENtime.„***?***‡Allmoduleswillrunatlevel7andinsupervisormode.‹******É***O*******************************************************************************O*******************************************************************************O*^***************************************************************************** *,*‚Revisionhistory(addnewchangestotop).*…Date†Author‚ChangesI*…--------‚------‚-------------------------------------------------------A*…10/29/85ƒCBS„ChangedthewaywegotoKILLERtouseKILL.EXECT0*—macro.8*†1/28/85ƒSJF„ChangedMMUinitializationtolookat\MMU*…10/13/83ƒSJF„Initialwriting.?*†1/10/84ƒMSL„VerifythatUIP(update-in-progress)bitisreset&*—beforereadingrealtimeclockchip.* * *‚XDEF's.*,ŠXDEFƒINITMMUŒRoutinetoinitializetheMMU.,ŠXDEFƒTIMERSTŒRoutinetostartupthetimer.3ŠXDEFƒINITIORoutinetosetupalltheotherboard-*§specifichardware. * *‚XREF's.* *…Routines:*…ParametersfromINITDAT:-ŠXREFƒTIMSLICŒ#oftimerticspertimeslice.+ŠXREFƒTIMERAAddroftimerchip(MC146818).4ŠXREFƒTIMINTVA‹#ofmillisecondsbetweentimertics.4ŠXREFƒCLOCKFRQ‹Frequencyofclock(tosetuptimer).*…SYSPARvariables:I3RSZHb?j rAz2‚6ŠXREF.SMMUHEREŒAddrofMMU;0ifwe'renotusingone.0ŠXREF.SFRST451ŒAddroffirstMMUinthesystem./ŠXREF.SLAST451ŒAddroflast‚MMUinthesystem.7ŠXREF.SCURR451ŒPtrtoMMULOADMMUshouldlookatnext.7ŠXREF.SCURRSDCurrentsegmentdescriptor#intheMMU.7ŠXREF.SDPRVAODual-PortedRamVersabusAddressOffset.ŠXREF.SDATEDate.0ŠXREF.STIMESLIC‹#oftimerticspertimeslice.7ŠXREF.STIMINTVŒTimeintervalbetweentimerinterrupts..ŠXREF.SPTMADDRŒAddroftimerchip(MC146818).ŠXREF.STIME_LEFT ŠXREF.SNSEŠXREF.SMIDNIGHT *„Others:.ŠXREFƒCRASHSAV‹PlacetoSAVEinfoifweCRASH.  **‚Includedfiles:**‰&.UTILITY.MC*‰M68451.M68451.EQ*‰M146818.M146818.EQ *‰&.KILL.MC*‰&.KILLEXEC.EQ *‰&.STR.EQ*ŠNOLISTŠINCLUDE&.UTILITY.MCŠINCLUDEM68451.M68451.EQŠINCLUDEM146818.M146818.EQŠINCLUDE&.KILL.MCŠINCLUDE&.KILLEXEC.EQŠINCLUDE&.STR.EQŠLIST‰PAGE ŠSECTION8ŠOPT„BRSO*******************************************************************************2*ˆDATECONVERSIONSFROMONEBINARYFORMTOANOTHER*Ç6*ˆORDINALDATE-->DAYNUMBERWHEREDAY1=JAN11980***ˆCALL *’BSR‡DATEGO*¦BINARYGREGORIAN-YYYYMMDD*§TO*¦BINARYORDINALƒ-DAYNUMBER*ˆINPUT'*’D0=DATETOBECONVERTED--YYYYMMDD**ˆOUTPUT#*’D0=CONVERTEDDATE‡--DAYNUMBER*O**********************************************************************************‰NON-LEAPDAYSBEFORETABLE*Ç,,F*‚DistanceisSforshortbranches,Lforlongbranches,ornothingif*‚thedefaultwilldo.6*‚Thebytetocheckistreatedasanunsignedinteger.*CHECK_RANGE MACRO ŠCMP.B‚\2,\1ŠBLO.\0RANGE_ERR ŠCMP.B‚\3,\1ŠBHI.\0RANGE_ERRŠENDM  TIMERST:E‰MOVE.WTIMSLIC(PC),TIMESLIC‚#TIMERINTERRUPTSBEFORETASKINTERRUPT'‰MOVE.LTIMERA(PC),A1‡GETTIMERADDRESS#‰MOVE.LA1,PTMADDR ŠSAVEITFOREXEC!‰BEQ.L‚TIMERBEBRANCHIFNOTIMER)‰PEA„TIMERBE(PC)‰WHERETOGOONBUSERROR$‰MOVE.W#'BE',-(A7)‰SETBUSERRFLAG*4*ˆGetsystemtimeanddatefrombatterybackedtimer*‰MOVE.L„#1800,D1ŒTimeoutcountN:UIP_LOOPBTST†#7,REGA(A1)‰WaitforUIPbittoresetbefore#‰BEQ.S…UIP_OKAYŒreadingclockchip.4‰DBRA†D1,UIP_LOOP‰Ifbatteryisdead,we'lltimeout,$‰BRA.L…RANGE_ERR‹andalwaysgohere.UIP_OKAY*‰CLR.L…D1’Prepareforfollowingshortload'‰MOVE.B„HRS(A1),D1ŠGethoursfromtimerŠCHECK_RANGE.LD1,#0,#230‰MOVE.L„#3600*1000,D2‡Addendisonehour'smsecs+‰CLR.L…D0’CalculationwilltakeplaceinD0NNNNNN*‰BRA.S…CALCLOOPŒStartthecalculationloopCALCHRS)‰ADD.L…D2,D0Addonehour'smsecstotimeCALCLOOP*‰DBRA†D1,CALCHRSŠLoopuntilhourscomputed*‰CLR.W…D1’Prepareforfollowingshortload*‰MOVE.B„MINS(A1),D1‰GetminutesfromtimerŠCHECK_RANGED1,#0,#59)‰MULU.W„#60,D1ŽConvertminutestoseconds*‰CLR.L…D2’Prepareforfollowingshortload*‰MOVE.B„SECS(A1),D2‰GetsecondsfromtimerŠCHECK_RANGED2,#0,#59‰ADD.L…D2,D1D1=totalseconds‰MULU.W„#1000,D1ŒD1=totalmsecs!‰ADD.L…D1,D0D0=grandtotalmsecs‰ADD.L…TIME_LEFT,D0 ‰MOVE.L„D0,NSEŽStoreitforexec‰CLR.L…MIDNIGHT (‰CLR.L…D0’Preparetoformgregoriandate'‰MOVE.B„YEAR(A1),D0‰GetyearfromtimerŠCHECK_RANGED0,#0,#99‰ADD.W…#1900,D0ŒYear=1900+YY‰SWAP†D0’D0=YYYY0000 ‰MOVE.B„MONTH(A1),D0ˆD0=YYYY00MMŠCHECK_RANGED0,#1,#12‰LSL.W…#8,D0D0=YYYYMM00"‰MOVE.B„DAYOMTH(A1),D0†D0=YYYYMMDDŠCHECK_RANGED0,#1,#31 *I*‚Thetimeanddatelookreasonable,solet'sgoaheadandkeepthoseforG*‚ourown(thechipmustnothavelostpowersincelasttime).‚Wecan'tI*‚tellforsurewhetherthechiplostpower,eventhoughthere'sabitinJ*‚thechipthatsaysso,becausethebughasalreadyreadtheinformation,*‚makingitunavailabletous.* ‰BSR.L…DATEGOŽConverttoordinal!‰MOVE.L„D0,DATEGivedatetoexec ŠBRA.S‚GO_TIMER *H*‚Ifwecomehere,oneofthefieldsreadfromtheclockchipiswhacko.*‚Setsystemtimeanddayto0.*1RANGE_ERRMOVE.LTIME_LEFT,NSE†Timeofday<--0.ŠCLR.L‚MIDNIGHTŠM OVE.L#0,DATEŒDate<--0. **ˆNowstarttimerticking*KGO_TIMERMOVEƒTIMINTVA(PC),TIMINTV‚SavetimerinterruptintervalinSYSPAR.4‰MOVE.B#$A,REGA(A1)ˆSELECTPERIODICACTIVATIONRATE0‰MOVE.BREGC(A1),D0‰RESETANYPENDINGINTERRUPTS&‰MOVE.B#$46,REGB(A1)‡ENABLETHETIMER.‰ADD.L‚#6,A7REMOVE'BE'ANDBUSERRORADDRESS‰RTS˜BACKTOINIT*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>•NOTICEš<<<<<<<*‚>>>>>>>µ<<<<<<<>*‚>>>>>>>…WhenincorporatinganydriversduringSYSGEN„<<<<<<<?*‚>>>>>>>…thatrequirememoryallocatedforthemasperƒ<<<<<<<?*‚>>>>>>>…thedriverpackageinstructions-thisistheƒ<<<<<<<,*‚>>>>>>>…spotthefile(s)gointo!!–<<<<<<<*‚>>>>>>>µ<<<<<<<=*‚>>>>>>>…Thisisalsothespotforcodeforadriver…<<<<<<<>*‚>>>>>>>…that‚requiresothertypesofinitialization,ƒ<<<<<<<0*‚>>>>>>>…such‚asclearinganinterrupt.‘<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>‘MERGEITHERE—<<<<<<<*<*ˆWhenyouwritethecodethatistobemergedhere,wrapit*ˆaroundwiththefollowing:*:*ˆAtthebeginning,withDRVRxOUTreferringtoyourunique*ˆlabel,putthiscode:*'*‹PEA„DRVRxOUT(PC)„IFBUSERROROCCURS,*¢RETURNORGOONTONEXT*¢DRIVER'SINITIALIZATION**‹MOVE.W#'BE',-(A7)…SAVE'BUSERROR'FLAG*9*ˆTheninsertthecodetodowhatyouneedtodoforthis*ˆparticulardriver.**ˆAttheend,putthis:***‹LEA„6(A7),A7ˆREMOVEBUSERRORFROMSTACK*DRVRxOUTƒEQU„**=*ˆInthisway,ifthecodeforonedrivercausesabuserror,.*ˆthecodeforotherdriverswillbeexecuted.*E*‚>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<G*********************************************************************** ‰ENDNN NN**ˆVM03.IFDRVR.CI*** Conditional file for VM03 device driversO*------------------------------------------------------------------------------G* This file uses flags setup in the VM03.CNFGDRVR.CI and VM03.SYSTEM.CI0* files to conditionally include device drivers.*J* The user should not have to modify this file to include/exclude drivers.*D*„******************************************************************?*„**‚NOTICE:‚Thefollowingconditionalsareorderdependent.„**3*„**‹Donotchangetheorder!‚Localdrivers1st.‡**9*„**‹Theorderdeterminesdevicenumber(HD00,PR,etc)‚***„**‹formostitems.¤**D*„*******************************************************************>*„NOTE:‚"CN00"thru"CN09"reservedfornonVM30(MCCM)ports.* IFNEˆ\NOLTERMƒINCLUDE…&.MPSCV03.CIENDC* IFNEˆ\NVME400ƒINCLUDE…&.MPSC400.CIENDC* IFNEˆ\NVME410ƒINCLUDE…&.PIA410.CIENDC*IFNEˆ\NOVM20+\NOVM21+\NOVM30ƒINCLUDE…&.IPCDRV.CIENDC* IFNEˆ\NOVM30?ƒ*„NOTE:‚"CNn0"thru"CNn3"reservedfortheseeachMCCMboard,+ƒ*‹where"n"istheboardnumber(1,2,...).7ƒ*‹"PRn"isassignedsequentiallyforeachMCCMboard.ƒINCLUDE…&.VM30DRV.CIENDCO*------------------------------------------------------------------------------ IFNEˆ\NOVM22ƒINCLUDE…&.VM22DRV.CIENDC* IFNEˆ\NORWINƒINCLUDE…&.RWINDRV.CIENDC* IFNEˆ\NVME435ƒINCLUDE…&.M435DRV.CIENDC* IFNEˆ\NVME600ƒINCLUDE…&.M600DRV.CIENDC* IFNEˆ\NVME605ƒINCLUDE…&.M605DRV.CIENDC*IFNEˆ\NVME610+\NVME620ƒINCLUDE…&.M610DRV.CIENDC* IFNEˆ\NVME615ƒINCLUDE…&.M615DRV.CIENDC* IFNEˆ\NVME625ƒINCLUDE…&.M625DRV.CIENDC* IFNEˆ\NRADƒINCLUDE…&.RADDRV.CIENDC* IFNEˆ\NRIOƒINCLUDE…&.RIODRV.CIENDCNŠQ**ˆVM03.SYSTEM.CI*L****************************************************************************>*‚Thisfilecontainsallboard/systemdependenciesforVM03.Ž*&*‚Itiscalledfrom"&.VERSADOS.CD".¦**Ê*E*‚Theusershouldnothavetomodifythisfileexceptunderextreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ONBOARDRAMADDRESSES*>*†VMEbusdriversrequirethefollowingtargetsystemdependentB*†variablestobedefinedwhenthemacrofileDUALPORT.MCisused:<*†NotethattheONBD$HIparametermayvaryontheVME110and<*†andVME101systemsdependingonthesizeandnumberofRAM<*†chipsusedontheprocessorcard.‚Thevaluesshownarethe?*†minimumrequirements.Modifythatparametertomatchyourown*†systemifdifferent.**;ONBD$LOƒ=$0‹Lowvalueforon-boardram(asseenbydriver)RAM$SQ„=$0‹Differencebetweenon-boardramaddressasseenby*˜driveranddevice.JOFFBD$LO‚=\ONBD$LO+\RAM$SQLowvalueforon-boardram(asseenbydevice)JOFFBD$HI‚=\ONBD$HI+\RAM$SQHighvaluforon-boardram(asseenbydevice) FMSG‰******** **********************************************************MSG‰**ˆAddressesoftimer,etc.FMSG‰****************************************************************** !TIMER…=$F80081†Addressoftimer.5CLOCKFRQ‚=0800‰Numberofclocktickspermillisecond"PANEL…=$0‹Addressoffrontpanel.5TRCFLAGƒ=0ŒTraceflag.‚Zeroimpliesdon'ttrace.‚The/*˜settingofbitsintheTRCFLAGparameterwill1*˜controlwhicheventscauseanentrytobebuilt*˜inthetracetable.*˜Bit#inTRCFLAG†Event *›15‘TRAP#1*›14‘I/Ointerruptnotclaimed*°byusertask.*›13‘Timerinterrupt.*›12‘Usertrap(2-15)*›11‘Exception *›10‘Dispatch*œ9‘I/Ointerruptclaimedby *°usertask*œ8‘ReturnfromLOADMMU*œ7‘Simulatedinterrupt*œ6‘SYSFAILinterrupt.“7œ/¤,¬*=HOGMODEƒ=0ŒSpecifieswhetherornotyouwanttheVM03tohog2*˜theVERSAbus(whichallowsittorunfasterwhen3*˜accessingtheVERSAbus).‚ThismayONLYbeusedif3*˜therearenoothercardsinthesystemcapableof**˜becomingbusmaster!‚Ifindoubt,use0.*š0=don'thogthebus.0*š1=hogthebus(nootherintelligentboards).*?SYSFAILƒ=0ŒDetermineswhetherornottheoperatingsystemwill5*˜beinterruptedwhenSYSFAILisassertedonthebus.2*˜SomeintelligentboardswillassertSYSFAILwhen0*˜theyexperienceafailureofsomekind.‚Ifyou5*˜havesuchboardsinthesystem,ANDTHEDRIVERSFOR3*˜THESEBOARDSHAVESYSFAILHANDLERS,thenyouwill2*˜probablywantSYSFAILinterruptsenabled.‚Ifthe4*˜appropriateSYSFAILhandlersarenotwritten,then5*˜takingaSYSFAILinterruptwillhangupthesystem,0*˜soyouwouldwantSYSFAILinterruptsdisabled.!*š0=disableSYSFAILinterrupts. *š1=‚enableSYSFAILinterrupts.*FMSG‰******************************************************************.MSG‰**ƒLocalterminal/printerdeviceaddresses#MSG‰**ƒShortI/Ospacebaseaddress&MSG‰**ƒShortI/OspaceaddressoffsetsFMSG‰****************************************************************** <&VECTNOƒ=$FFŠStartingVectorNumber‚(usedbyIOC.IPCDRV.AG)4LTDA$01ƒ=$F80065†VM03localterminalportAaddress 1SIOBASEƒ=$FF0000†BaseaddressofShortI/Ospace&DEVADDƒ=\SIOBASE****************************************************************‰Vectornumbers£**>**************************************************************-IOCVEC1ƒ=$49ŠI/Ochannelinterrupt1vector.-IOCVEC2ƒ=$4AŠI/Ochannelinterrupt2vector.-IOCVEC3ƒ=$4BŠI/Ochannelinterrupt3vector.-IOCVEC4ƒ=$4CŠI/Ochannelinterrupt4vector.*IOCLVL1ƒ=3ŒI/Ochannelinterrupt1level.*IOCLVL2ƒ=4ŒI/Ochannelinterrupt2level.*IOCLVL3ƒ=5ŒI/Ochannelinterrupt3level.*IOCLVL4ƒ=6ŒI/Ochannelinterrupt4level. FMSG‰******************************************************************3MSG‰**…DescriptiveinfoaboutthisoperatingsystemFMSG‰****************************************************************** 6TIMSLICƒ=2ŒNumberoftimerinterruptspertimeslice.=TIMINTVƒ=10‹Numberofmillisecondsbetweentimerinterrupts.?ROMEADDR‚=$0‹ROMendaddress--definedbyuserforaROMmable,*œ system.‚Setto$0ifnotaROMablesystem.-*œTheROMstartaddress(ROMSADDR)isdefined3*œinthe.RMS.CIfileandhasavalueequal!*œtotheinitialprogramcounter.@*ˆThefollowingparametersareusedtodefinememorypartitions.A*ˆIfonlypartition0exists,thenMEMEND2shouldbesettozero.*@NOPARTSƒ=1ŒNumberofmemorypartitions(neededby&.INITMEM.AG)AMEMEND1ƒ=$200000†Theendƒofpartition0(assumedtostartat0).&MEMEND2ƒ=$0‹Thestartofpartition1.$MEMEND3ƒ=$0‹Theendƒofpartition1.:WHERLOAD‚=0ŒMemoryaddresswherebootfilewillbeloaded6*˜Ifnonzero,VERSAdoswillbemovedatinitialization*˜time.4NVME316ƒ=0ŒNotusedbyVM03(neededforSYSINIT.CI)5CACHEF„=0ŒNotusedbyVM03(neededfor&.INITDAT.AG)3ASMTYPEƒ=0ŒTypeofassemblertouseforINITIO1.AG *œ0-UseASM*œ1-UseASM020 EMSG‰*****************************************************************)MSG‰**‚Parametersabouttablesizes,etc.EMSG‰***************************************************************** 'PAGESIZE‚=\PGSIZE†From.RMS.CI*+ASN‡=127Š#ofaddressspaces--notusedbut!*˜neededtosatisfy&.INITDAT.AG. GMSG‰*******************************************************************>MSG‰*ƒCopythesysteminitializerintoM68XXX.INIT.RObasedon:MSG‰*ƒthetypeofmemoryallocationdefinedatRMSGENtimeMSG‰*ƒin.RMS.CD.GMSG‰******************************************************************* =COPY‡&.MTYPE.SI,MTYPE.SI;Y IFEQˆ\MEMALOC'ƒ=COPY‡BESTFIT.INIT.RO,M68XXX.INIT.RO;YENDC IFNEˆ\MEMALOC%ƒ=COPY‡BUDDY.INIT.RO,M68XXX.INIT.RO;YENDC GMSG‰*******************************************************************=MSG‰*ƒCopyCBOF.SYSPAR.ROinto&.SYSPAR.ROtomakeitgenericAMSG‰*ƒfor.LGfilesandpossibleforsysgeningmorethan1systemMSG‰*ƒperaccount#GMSG‰******************************************************************* "=COPY‡CBOF.SYSPAR.RO,&.SYSPAR.RO;YNNNN**ˆVM03.CNFGDRVR.CI*'* Configuration file for device driversO*------------------------------------------------------------------------------B* This file sets up the flags used by the "VM03.IFDRVR.CI" file to'* conditionally include device drivers.*K* The user should only have to modify this file to include/exclude drivers.E* If you add more boards/devices, you may have to increase the sysgen>* command T option for more symbols in the "&.SYSGEN.CF" file.*K* To modify specific items of a driver, edit the corresponding driver file,J* "&.xxxxDRV.CI" except as noted where one driver handles multiple boards.O*------------------------------------------------------------------------------ N******************************************************************************L*---‚BOARD/SYSTEMDEPENDENCIESareincludedfromthe&.VERSADOS.CDfile.---9*VM03.SYSTEM.CIƒaddprocessorboard/systemdependencies,(*–includinglocalterminalsandprinters6*&.CNFGTASK.CI„addO/Staskconfigura tionforROM/RAMM*****************************************************************************  O*------------------------------------------------------------------------------ANOLTERMƒ=2Œ#ofterminalsusingVM03(7201)serialports;max=2 O*------------------------------------------------------------------------------2NORWIN„=0Œ#ofRWIN1„Winchestercontrollerboards* IFGTˆ\NORWIN)ƒCONTWIN1‚="2"Š1stRWIN1iscontroller28ƒNHRWIN$1‚=0Œ#ofhardƒdiskdriveson1stRWIN1;max=2:ƒNFRWIN$1‚=0Œ#offloppydiskdriveson1stRWIN1;max=2BƒRWIN0$1ƒ="'H5WIN40'"‚Typeof1sthardƒdiskon1stRWIN1,drive0BƒRWIN1$1ƒ="'H5WIN40'"‚Typeof2ndhardƒdiskon1stRWIN1,drive1DƒRWIN2$1ƒ="'F5DDDSI'"‚Typeof1stfloppydiskon1stRWIN1,drive2DƒRWIN3$1ƒ="'F5DDDSI'"‚Typeof2ndfloppydiskon1stRWIN1,drive3 )ƒCONTWIN2‚="5"Š2ndRWIN1iscontroller58ƒNHRWIN$2‚=0Œ#ofhardƒdiskdriveson2ndRWIN1;max=2:ƒNFRWIN$2‚=0Œ#offloppydiskdriveson2ndRWIN1;max=2´*½-Å+Í1ÕBƒRWIN0$2ƒ="'H5WIN40'"‚Typeof1sthardƒdiskon2ndRWIN1,drive0BƒRWIN1$2ƒ="'H5WIN40'"‚Typeof2ndhardƒdiskon2ndRWIN1,drive1DƒRWIN2$2ƒ="'F5DDDSI'"‚Typeof1stfloppydiskon2ndRWIN1,drive2DƒRWIN3$2ƒ="'F5DDDSI'"‚Typeof2ndfloppydiskon2ndRWIN1,drive3ƒ*Gƒ*…NOTE:‚Youcannotmix5-1/4"and8"floppies.‚Pickoneortheother.ƒ*ENDC O*------------------------------------------------------------------------------=NOVM20„=0Œ#ofVM20…FDC(floppyonlydiskcontrollerboards) *¦twoboardset;usesIPCdriver*¦(see"&.IPCDRV.CI") IFGTˆ\NOVM207ƒNFV20$1ƒ=0Œ#offloppydiskdriveson1stFDC;max=47ƒNFV20$2ƒ=0Œ#offloppydiskdriveson2ndFDC;max=4 ?ƒVM200$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stFDCboard?ƒVM201$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stFDCboard?ƒVM202$1ƒ="'F8SDDSM'"‚Typeof3rdfloppydiskon1stFDCboard?ƒVM203$1ƒ="'F8SDDSM'"‚Typeof4thfloppydiskon1stFDCboard ?ƒVM200$2ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon2ndFDCboard?ƒVM201$2ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon2ndFDCboard?ƒVM202$2ƒ="'F8SDDSM'"‚Typeof3rdfloppydiskon2ndFDCboard?ƒVM203$2ƒ="'F8SDDSM'"‚Typeof4thfloppydiskon2ndFDCboardENDC O*------------------------------------------------------------------------------;NOVM21„=1Œ#ofVM21…UDC(universaldiskcontrollerboards)%*¦floppy&harddisks;twoboardset;*¦usesIPCdriver*¦(see"&.IPCDRV.CI") IFGTˆ\NOVM215ƒNHV21$1ƒ=2Œ#ofhardƒdiskdriveson1stUDC;max=47ƒNFV21$1ƒ=2Œ#offloppydiskdriveson1stUDC;max=45ƒNHV21$2ƒ=0Œ#ofhardƒdiskdriveson2ndUDC;max=47ƒNFV21$2ƒ=0Œ#offloppydiskdriveson2ndUDC;max=4 =ƒVM210$1ƒ="'FXLRK25'"‚Typeof1sthardƒdiskon1stUDCboard=ƒVM211$1ƒ="'RMLRK25'"‚Typeof2ndhardƒdiskon1stUDCboard=ƒVM212$1ƒ="'FXCMD80'"‚Typeof3rdhardƒdiskon1stUDCboard=ƒVM213$1ƒ="'RMCMD16'"‚Typeof4thhardƒdiskon1stUDCboard ?ƒVM214$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stUDCboard?ƒVM215$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stUDCboard?ƒVM216$1ƒ="'F8SDDSM'"‚Typeof3rdfloppydiskon1stUDCboard?ƒVM217$1ƒ="'F8SDDSM'"‚Typeof4thfloppydiskon1stUDCboard =ƒVM210$2ƒ="'FXLRK25'"‚Typeof1sthardƒdiskon2ndUDCboard=ƒVM211$2ƒ="'RMLRK25'"‚Typeof2ndhardƒdiskon2ndUDCboard=ƒVM212$2ƒ="'FXCMD80'"‚Typeof3rdhardƒdiskon2ndUDCboard=ƒVM213$2ƒ="'RMCMD16'"‚Typeof4thhardƒdiskon2ndUDCboard ?ƒVM214$2ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon2ndUDCboard?ƒVM215$2ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon2ndUDCboard?ƒVM216$2ƒ="'F8SDDSM'"‚Typeof3rdfloppydiskon2ndUDCboard?ƒVM217$2ƒ="'F8SDDSM'"‚Typeof4thfloppydiskon2ndUDCboardENDC O*----------------------------- -------------------------------------------------8NOVM22„=1Œ#ofVM22…SMDdiskcontrollersboards(single*¦board) IFGTˆ\NOVM222ƒNHV22$1ƒ=2Œ#ofhardƒdiskdrivesonVM22;max=84ƒNFV22$1ƒ=4Œ#offloppydiskdrivesonVM22;max=4 >ƒVM220$1ƒ="'FXCMD80'"‚Typeof1sthardƒdiskon1stVM22board>ƒVM221$1ƒ="'RMCMD16'"‚Typeof2ndhardƒdiskon1stVM22board>ƒVM222$1ƒ="'FXCMD80'"‚Typeof3rdhardƒdiskon1stVM22board>ƒVM223$1ƒ="'RMCMD16'"‚Typeof4thhardƒdiskon1stVM22board>ƒVM224$1ƒ="'FXCMD80'"‚Typeof5thhardƒdiskon1stVM22board>ƒVM225$1ƒ="'RMCMD16'"‚Typeof6thhardƒdiskon1stVM22board>ƒVM226$1ƒ="'FXCMD80'"‚Typeof7thhardƒdiskon1stVM22board>ƒVM227$1ƒ="'RMCMD16'"‚Typeof8thhardƒdiskon1stVM22board @ƒVM228$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stVM22board@ƒVM229$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stVM22board@ƒVM22A$1ƒ="'F5DDDSI'"‚Typeof3rdfloppydiskon1stVM22board@ƒVM22B$1ƒ="'F5DDDSI'"‚Typeof4thfloppydiskon1stVM22boardENDC O*------------------------------------------------------------------------------7NOVM30„=0Œ#ofVM30…MCCM(multi-channelcommunications *¦boards)(*¦usesIPCdriver;has1printerport/bd*¦(see"&.IPCDRV.CI") IFGTˆ\NOVM30/ƒNTV30$1ƒ=0Œ#ofterminalson1stMCCM;max=4.ƒNPV30$1ƒ=0Œ#ofprinters‚on1stMCCM;max=1/ƒNTV30$2ƒ=0Œ#ofterminalson2ndMCCM;max=4.ƒNPV30$2ƒ=0Œ#ofprinters‚on2ndMCCM;max=1/ƒNTV30$3ƒ=0Œ#ofterminalson3rdMCCM;max=4.ƒNPV30$3ƒ=0Œ#ofprinters‚on3rdMCCM;max=1/ƒNTV30$4ƒ=0Œ#ofterminalson4thMCCM;max=4.ƒNPV30$4ƒ=0Œ#ofprinters‚on4thMCCM;max=1ENDC O*------------------------------------------------------------------------------5NVME400ƒ=1#ofMVME400‚dual7201serialportboards IFGTˆ\NVME400:ƒNU400$1ƒ=2Œ#ofports/usersonVME400bd.#1;max=2/bd.:ƒNU400$2ƒ=0Œ#ofports/usersonVME400bd.#2;max=2/bd.ENDC O*------------------------------------------------------------------------------9NVME410ƒ=1#ofMVME410‚dual16-bitparallelportboards IFGT‚\NVME410<ƒNU410$1ƒ=1Œ#ofprintersinuseonVME410board#1:‚max=2<ƒNU410$2ƒ=0Œ#ofprintersinuseonVME410board#2:‚max=2ENDC O*------------------------------------------------------------------------------;NVME435ƒ=0Œ#ofMVME435magtapecontrollerboards;max=2 IFGTˆ\NVME435;ƒN435$1„=0Œ#oftapedrivesonfirst‚MVME435board;max=5<ƒN435$2„=0Œ#oftapedrivesonsecondMVME435board;max=5ENDC O*------------------------------------------------------------------------------7NVME600ƒ=0Œ#ofMVME600‚analoginput‚controllerboards O*------------------------------------------------------------------------------8NVME605ƒ=0Œ#ofMVME605‚analogoutputcontrollerboards IFGTˆ\NVME6059ƒNU605…=0ŒNumberofusers(total)fortheMVME605boardsENDC O*------------------------------------------------------------------------------3NVME610ƒ=0Œ#ofMVME610…AC‚input‚controllerboards IFGTˆ\NVME610GƒM610QSIZ‚=128…MinimumnumberofentriesinInterruptProcessingQueueENDC O*------------------------------------------------------------------------------8NVME615ƒ=0Œ#ofMVME615/616AC‚outputcontrollerboards IFGTˆ\NVME6159ƒNU615…=0ŒNumberofusers(total)fortheMVME615boardsENDC O*------------------------------------------------------------------------------3NVME620ƒ=0Œ#ofMVME620…DC‚input‚controllerboards O*------------------------------------------------------------------------------4NVME625ƒ=0Œ#ofMVME625…DC‚outputcontrollerboards IFGTˆ\NVME6259ƒNU625…=0ŒNumberofusers(total)fortheMVME625boardsENDCO*------------------------------------------------------------------------------#NRAD†=0Œ#ofRAD†RemoteA/Dboards IFGTˆ\NRADƒNURAD…=0Œ#ofRADusersENDC O*------------------------------------------------------------------------------#NRIO†=0Œ#ofRIO†RemoteI/Oboards IFGTˆ\NRIO1ƒNRIOINTƒ=0Œ#ofinterruptlevelsp erI/OmoduleENDC O*------------------------------------------------------------------------------NNNN'VME101 COPYSGENCFéé²  $INITIO1 AGË  $IFDRVR CI33_  $SYSTEM CI<<‘  $CNFGDRVRCIUU+à  $=/*<=/*‚VME101.COPYSGEN.CF‚-‚ChainfiletocopyfilesforSYSGEN=/*'=/*‚--‚FORCECATALOGTOBESET=VME101 =USE :.VME101=/*D=/*†ThischainfilecopiesthosefilesrequiredtodoaSYSGENintoa'=/*†aspecifiedvolumeandusernumber.=/*;=/*ƒInvokeas:„=VME101.COPYSGEN.CF‚arg1,arg2,arg3,arg4,arg5 =/*…where:.=/*‰Arg1=\1„SourcevolumenameŒ(mustspecify).=/*‰Arg2=\2„TargetvolumenameŒ(mustspecify).=/*‰Arg3=\3„TargetusernumberŒ(mustspecify)-=/*‰Arg4=\4„COPYoptionletter(s)‰(optional)=/*—B=bothcopy&verify=/*—P=packfiles =/*—Y=overwriteiffileexists*=/*—N=skipcopyiffileexistsƒ(default)*=/*–VT=verify&showonly1stdifference2=/*‰Arg5=\5„includePCDRVdriverfilesƒ(optional)=/*—PCDRV=includethem=OPT N=/RX=\0=/RD=0 =/IF RX < 3…=/RD=1=/ENDIF =/IF RX > 5…=/RD=1=/ENDIF =/IF RD=0 …=/IFC\1Š=/RD=1…=/ENDIF …=/IFC\2Š=/RD=2…=/ENDIF …=/IFC\3Š=/RD=3…=/ENDIF …=/IFC\4 Š=/IFC\5=ARG\1,\2,\3,N,-PCDRVŠ=/ELSE=ARG\1,\2,\3,N,\5Š=/ENDIF…=/ENDIF …=/IFC\5ˆ=ARG\1,\2,\3,\4,-PCDRV…=/ELSEˆ=/IFEQ"PCDRV"\5ˆ=/ELSE‹=/IFEQ"-PCDRV"\5‹=/ELSEŽ=/RD=5‹=/ENDIFˆ=/ENDIF…=/ENDIF=/ENDIFJ=/*‚SetArg6sothisfilecan'tbererundirectlyw/osettingproperargs!=ARG \1,\2,\3,\4,\5,ARGS=OPT -N =/IF RD <> 0Mƒ=/*INVOCATIONERROR!Insufficient,null,and/orinvalidargumentspecified!ƒ=/R?ƒ=END=/ENDIF *=/* ==== Start driver related file copying=/IFEQ "PCDRV"\5O=/*----------------------------------------------------------------------------"=/* Copy all RAD1 files for sysgen=/@„\1:9998.COPYGEN.RADDRV.CFO=/*----------------------------------------------------------------------------!=/* Copy all RIO files for s ysgen=/@„\1:9998.COPYGEN.RIODRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME600 files for sysgen=/@„\1:9998.COPYGEN.M600DRV.CFáPê%òú"O=/*----------------------------------------------------------------------------$=/* Copy all VME605 files for sysgen=/@„\1:9998.COPYGEN.M605DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME610 files for sysgen=/@„\1:9998.COPYGEN.M610DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME615 files for sysgen=/@„\1:9998.COPYGEN.M615DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME625 files for sysgen=/@„\1:9998.COPYGEN.M625DRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all PCDRV common files for sysgen=/@„\1:9998.COPYGEN.PCDRV.CF=/ENDIFO=/*----------------------------------------------------------------------------,=/* Copy all driver library files for sysgen=/@„\1:9998.COPYGEN.DRVLIB.CFO=/*----------------------------------------------------------------------------)=/* Copy all MPSC driver files for sysgen=/@„\1:9998.COPYGEN.MPSCDRV.CFO=/*----------------------------------------------------------------------------(=/* Copy all PRT driver files for sysgen=/@„\1:9998.COPYGEN.PIADRV.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME050 driver files for sysgen=/@„\1:9998.COPYGEN.M050DRV.CF=/@„\1:9998.COPYGEN.P050DRV.CF=/@„\1:9998.COPYGEN.MPCCDRV.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME300 (GPIB) files for sysgen=/@„\1:9998.COPYGEN.M300DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME319 files for sysgen=/@„\1:9998.COPYGEN.M319DRV.CFO=/*----------------------------------------------------------------------------F=/* Copy all VME316 (VMEbus to I/O channel interface) files for sysgen=/@„\1:9998.COPYGEN.M316DEF.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME320 files for sysgen=/@„\1:9998.COPYGEN.M320DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME331 files for sysgen=/@„\1:9998.COPYGEN.M331DRV.CFNNNN  NNO=/*----------------------------------------------------------------------------/=/* Copy all VME435 (mag tape) files for sysgen=/@„\1:9998.COPYGEN.M435DRV.CFO=/*----------------------------------------------------------------------------7=/* Copy all RWIN1 (Winchester) driver files for sysgen=/@„\1:9998.COPYGEN.RWINDRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all disk related files for sysgen=/@„\1:9998.COPYGEN.DSKPARAM.CFO=/*----------------------------------------------------------------------------=/*=/**=/* ==== Start system related file copyingO=/*-----------------------------------------------------------------------------=/*‚CopyallVME101specificfilesforsysgen=/@„\1:9998.COPYGEN.VME101.CFO=/*----------------------------------------------------------------------------)=/* Copy all EPCI driver files for sysgen=/@„\1:9998.COPYGEN.EPCIDRV.CFO=/*----------------------------------------------------------------------------!=/* Copy all EET files for sysgen=/@„\1:9998.COPYGEN.EET.CFO=/*----------------------------------------------------------------------------'=/* Copy all FHS & IOS files for sysgen=/@„\1:9998.COPYGEN.FHSIOS.CFO=/*----------------------------------------------------------------------------!=/* Copy all FMS files for sysgen=/@„\1:9998.COPYGEN.FMS.CFO=/*----------------------------------------------------------------------------$=/* Copy all LOADER files for sysgen=/@„\1:9998.COPYGEN.LOADER.CFO=/*----------------------------------------------------------------------------<=/* Copy all BEGIN/END files for sysgen (OSLIST and VERSAPT)=/@„\1:9998.COPYGEN.BEGINEND.CFNO=/*----------------------------------------------------------------------------!=/* Copy all IOI files for sysgen=/@„\1:9998.COPYGEN.IOI.CFO=/*----------------------------------------------------------------------------'=/* Copy all CNFG TASK files for sysgen=/@„\1:9998.COPYGEN.CNFGTASK.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOC files for sysgen=/@„\1:9998.COPYGEN.IOC.CFO=/*----------------------------------------------------------------------------!=/* Copy all .EQ files for sysgen=/@„\1:9998.COPYGEN.EQ.CFO=/*----------------------------------------------------------------------------2=/*‚Copyalltherestoftherootfilesforsysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*2=/*†VME101.COPYSGEN.CF‚completed.‰Haveaniceday!=/*N=/*‚No"NOARG"and"=END"becauseindependentdriverreleaseitemsmayfollow!NN  NN7INITIO„IDNTƒ45,0RMS68KI/OinitializerfortheVME101.O*v*****************************************************************************O*******************************************************************************O**********************************************************************************É***G***…ROUTINE:‚INITIO--RMS68KI/OINITIALIZERFORTHEVME101BOARD.„******É***J***…ENVIRONMENT:‚PartoftheRMS68KexecfortheMotorola68000family.***(***‡Copyright1983byMotorola,Inc.¢******É***D***…FUNCTION:‚RoutinesfromthismodulearecalledbytheRMS68K‡***E***‡routineINITduringsysteminitialization.‚Allboard-specific„***.***‡initializationisdoneinthismodule.œ******É***G***…NOTES:‚ThismoduleisSUBSed,ASMed,andLINKedatSYSGENtime.„***?***‡Allmoduleswillrunatlevel7andinsupervisormode.‹******É***O*******************************************************************************O*******************************************************************************O******************************************************************************* *,*‚Revisionhistory(addnewchangestotop).*…Date†Author‚ChangesI*…--------‚------‚-------------------------------------------------------D*…10/29/85ƒCBS„ChangedthewaywecallKILLERtousetheKILL.EXECT0*—macro.B*…10/05/84ƒKEG„CommentedouttheRESETinstructionbecausethenew.*—VME101bugtakescareofthe2661interrupts.*…10/25/83ƒSJF„Initialwriting.* * *‚XDEF's.*,ŠXDEFƒINITMMUŒRoutinetoinitializetheMMU.,ŠXDEFƒTIMERSTŒRoutinetostartupthetimer.3ŠXDEFƒINITIORoutinetosetupalltheotherboard-**‚XREF's* *…Routines:*…ParametersfromINITDAT:-ŠXREFƒTIMSLICŒ#oftimerticspertimeslice.(ŠXREFƒTIMERAAddroftimerchip(M6840).4ŠXREFƒTIMINTVA‹#ofmillisecondsbetweentimertics.4ŠXREFƒCLOCKFRQ‹Frequencyofclock(tosetuptimer).*…SYSPARvariables:ŠXREF.SDATEDate.0ŠXREF.STIMESLIC‹#oftimerticspertimeslice. 2D8#7ŠXREF.STIMINTVŒTimeintervalbetweentimerinterrupts.8ŠXREF.STIMINTV4‹Anothervaluerelatedtotimeinterval.+ŠXREF.SPTMADDRŒAddroftimerchip(M6840). *„Others:.ŠXREFƒCRASHSAV‹PlacetoSAVEinfoifweCRASH.   **‚Includedfiles:**‰M6840.M6840.EQ *‰&.KILL.MC*‰&.KILLEXEC.EQ *‰&.STR.EQ*ŠNOLISTŠINCLUDEM6840.M6840.EQŠINCLUDE&.KILL.MCŠINCLUDE&.KILLEXEC.EQŠINCLUDE&.STR.EQ*ŠLIST ŠSECTION8ŠPAGE*J*‚ThiscodeisneededtosatisfyINIT,whichisboard-independentandmust/*‚calluponustodotheboard-dependentstuff.**„InitializetheMMU.*3INITMMUƒRTS—It'seasyforustoinitializetheMMU,*§sincewedon'thaveone. **„Startthetimerrunning.*TIMERSTDŠMOVE.LTIMSLIC(PC),TIMESLIC‚Setthesysgenparameterwhichdictates%*§the#oftimerticspertimeslice.'‰MOVE.LTIMERA(PC),A1‡GETTIMERADDRESS#‰MOVE.LA1,PTMADDRŠSAVEITFOREXEC$‰BEQ.S‚TIMER_EXITŠBRANCHIFNOTIMER)‰PEA„TIMERBE(PC)‰WHERETOGOONBUSERROR$‰MOVE.W#'BE',-(A7)‰SETBUSERRFLAG3‰MOVE.B#$01,CR2SR(A1)†ALLOWWRITETOCONTROLREG1&‰MOVE.B#$01,CR13(A1)‡ALLTIMERSRESET$‰MOVE.L#CLOCKFRQ,D0ˆCLOCKFREQUENCY‰DIVUƒ#4,D0DIVIDEBY4#‰SUB.W‚#1,D0CLOCKINTERRUPTSAT-1*‰MOVE.WTIMINTVA(P! C),D1…INTERRUPTINTERVAL ‰MOVE.WD1,TIMINTVŠSAVEFOREXEC‰MULUƒ#4,D1MULTIPLYBY4*‰SUB.W‚#1,D1SUBTRACT1-TIMERGOESTO-1!‰MOVE.WD1,TIMINTV4‰SAVEFOREXEC‰LSL.W‚#8,D1PUTINHIGHBYTE)‰ADD.W‚D1,D0VALUEFORTIMER3(2HALVES)‰MOVEP‚D0,MSBT3(A1)ˆSETTIMER34‰MOVE.W#256,D0VALUEFORTIMER1(OVERFLOWCOUNTER)‰MOVEP‚D0,MSBT1(A1)ˆSETTIMER18‰MOVE.B#$00,CR2SR(A1)†ALLOWWRITETOCONTROLREGISTER3;‰MOVE.B#$C6,CR13(A1)‡T3--INTERNALCLOCK,INTERRUPTENABLED,*£OUTPUTENABLED,8-BITMODE8‰MOVE.B#$01,CR2SR(A1)†ALLOWWRITETOCONTROLREGISTER1;‰MOVE.B#$00,CR13(A1)‡T1--EXTERNALCLOCK,ENABLEALLTIMERS3‰ADDQ.L#6,SPEverythingwentOK;justgetthatbus4‰BRA.S‚TIMER_EXITŠerrorjunkoffthestackandexit.*;TIMERBE‚MOVE.L‚#CRASHSAV,PTMADDR‚USEDUMPPOINTERFORTIMER TIMER_EXITRTS–ReturntoINIT. ŠPAGE ‰SECTIONƒ80************************************************,*ƒValuetoputinVME101controlregister.ƒ*0*************************************************7CTRL†SET„%1101ŽStatusdisplaybitpattern.Alsousedto-*£asserttheSYSFAIL*signalontheVMEbusby,*£settingthemallto1.Statusdisplayhere*£issetupfor"D".*ª0000‚=‚display"0"*ª0001‚=‚display"1"*¶:*ª1110‚=‚display"E"*ª1111‚=‚display"F",CTRL†SET„1<<4+CTRLŠStatusdisplay(enabled).9CTRL†SET„0<<5+CTRLŠBusblocktransferrequest(disabled).;CTRL†SET„0<<6+CTRLŠBusrequesttime-outcounter(disabled).>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>•NOTICEš<<<<<<<*‚>>>>>>>µ<<<<<<<>*‚>>>>>>>…WhenincorporatinganydriversduringSYSGEN„<<<<<<<?*‚>>>>>>>…thatrequirememoryallocatedforthemasperƒ<<<<<<<?*‚>>>>>>>…thedriverpackageinstructions-thisistheƒ<<<<<<<,*‚>>>>>>>…spotthefile(s)gointo!!–<<<<<<<*‚>>>>>>>µ<<<<<<<=*‚>>>>>>>…Thisisalsothespotforcodeforadriver…<<<<<<<>*‚>>>>>>>…that‚requiresothertypesofinitialization,ƒ<<<<<<<0*‚>>>>>>>…such‚asclearinganinterrupt.‘<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>‘MERGEITHERE—<<<<<<<*<*ˆWhenyouwritethecodethatistobemergedhere,wrapit*ˆaroundwiththefollowing:*:*ˆAtthebeginning,withDRVRxOUTreferringtoyourunique*ˆlabel,putthiscode:*'*‹PEA„DRVRxOUT(PC)„IFBUSERROROCCURS,*¢RETURNORGOONTONEXT*¢DRIVER'SINITIALIZATION**‹MOVE.W#'BE',-(A7)…SAVE'BUSERROR'FLAG*9*ˆTheninsertthecodetodowhatyouneedtodoforthis*ˆparticulardriver.**ˆAttheend,putthis:***‹LEA„6(A7),A7ˆREMOVEBUSERRORFROMSTACK*DRVRxOUTƒEQU„**=*ˆInthisway,ifthecodeforonedrivercausesabuserror,.*ˆthecodeforotherdriverswillbeexecuted.*E*‚>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<G*********************************************************************** ŠENDN! NNN**ˆVME101.IFDRVR.CI*,* Conditional file for VME101 device driversO*------------------------------------------------------------------------------K* This file uses flags setup in the VME101.CNFGDRVR.CI and VME101.SYSTEM.CI0* files to conditionally include device drivers.*J* The user should not have to modify this file to include/exclude drivers.*D*„******************************************************************?*„**‚NOTICE:‚Thefollowingconditionalsareorderdependent.„**3*„**‹Donotchangetheorder!‚Localdrivers1st.‡**9*„**‹Theorderdeterminesdevicenumber(HD00,PR,etc)‚***„**‹formostitems.¤**D*„******************************************************************** IFNEˆ\NVME316Dƒ*‚TheVME316hasnodriver.‚IthasaninitializationmodulethatisJƒ*‚mergedintoSYSINIT.RO.‚TheincludefilebelowdefinestheI/Ochannel.ƒ*ƒINCLUDE…&.M316DEF.CIENDC* IFNEˆ\NVME319ƒINCLUDE…&.M319DRV.CIENDC* IFNEˆ\NVME320ƒINCLUDE…&.M320DRV.CIENDC* IFNEˆ\NVME300ƒINCLUDE…&.M300DRV.CIENDC* IFNEˆ\NORWINƒINCLUDE…&.RWINDRV.CIENDC* IFNEˆ\NOLTERMƒINCLUDE…&.EPCIDRV.CIENDC* IFNEˆ\NOLPRTƒINCLUDE…&.PIA101.CIENDC* IFNEˆ\NVME050ƒINCLUDE…&.M050DRV.CIENDC* IFNEˆ\NVME400ƒINCLUDE…&.MPSC400.CIENDC* IFNEˆ\NVME331ƒINCLUDE…&.M331DRV.CIENDC* IFNEˆ\NVME410ƒINCLUDE…&.PIA410.CIENDC* IFNEˆ\NVME435ƒINCLUDE…&.M435DRV.CIENDC* IFNEˆ\NVME600ƒINCLUDE…&.M600DRV.CIENDC* IFNEˆ\NVME605ƒINCLUDE…&.M605DRV.CIENDC*IFNEˆ\NVME610+\NVME620ƒINCLUDE…&.M610DRV.CIENDC* IFNEˆ\NVME615ƒINCLUDE…&.M615DRV.CIENDC* IFNEˆ\NVME625ƒINCLUDE…&.M625DRV.CIENDC* IFNEˆ\NRADƒINCLUDE…&.RADDRV.CIENDC* IFNEˆ\NRIOƒINCLUDE…&.RIODRV.CIENDC+`**ˆVME101.SYSTEM.CI*L****************************************************************************@*‚Thisfilecontainsallboard/systemdependenciesforVME101.Œ*&*‚Itiscalledfrom"&.VERSADOS.CD".¦**Ê*E*‚Theusershouldnothavetomodifythisfileexceptunderextreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ONBOARDRAMADDRESSES*>*†VMEbusdriversrequirethefollowingtargetsystemdependentB*†variablestobedefinedwhenthemacrofileDUALPORT.MCisused:<*†NotethattheONBD$HIparametermayvaryontheVME110and<*†andVME101systemsdependingonthesizeandnumberofRAM<*†chipsusedontheprocessorcard.‚Thevaluesshownarethe?*†minimumrequirements.Modifythatparametertomatchyourown*†systemifdifferent.*;ONBD$LOƒ=$0‹Low‚valueforon-boardram(asseenbydriver)?ONBD$HIƒ=$0FFFˆHighvalueforon-boardram(asseenbydriv" er)ARAM$SQ„=$0000ˆDifferencebetweenon-boardramaddressasseenby*˜driveranddevice.JOFFBD$LO‚=\ONBD$LO+\RAM$SQLow‚valueforon-boardram(asseenbydevice)KOFFBD$HI‚=\ONBD$HI+\RAM$SQHighvalueforon-boardram(asseenbydevice) FMSG‰******************************************************************MSG‰**ˆAddressesoftimer,etc.FMSG‰****************************************************************** !TIMER…=$FE00D0†Addressoftimer.5CLOCKFRQ‚=0800‰Numberofclocktickspermillisecond"PANEL…=$0‹Addressoffrontpanel.6TRCFLAGƒ=$0‹Traceflag.‚Zeroimpliesdon'ttrace.‚The/*˜settingofbitsintheTRCFLAGparameterwill1*˜controlwhicheventscauseanentrytobebuilt*˜inthetracetable.*˜Bit#inTRCFLAG†Event *›15‘TRAP#1*›14‘I/Ointerruptnotclaimed*°byusertask.*›13‘Timerinterrupt.*›12‘Usertrap(2-15)*›11‘Exception *›10‘Dispatch*œ9‘I/Ointerruptclaimedby *°usertask*œ8‘ReturnfromLOADMMU*œ7‘Simulatedinterrupt45=-E0*œ6‘SYSFAILinterrupt.* FMSG‰******************************************************************.MSG‰**ƒLocalterminal/printerdeviceaddresses#MSG‰**ƒShortI/Ospacebaseaddress&MSG‰**ƒShortI/OspaceaddressoffsetsFMSG‰****************************************************************** 9LTDA$01ƒ=$FE00A1†VME101localterminal#1deviceaddress9LTDA$02ƒ=$FE00B1†VME101localterminal#2deviceaddress8LPDA$01ƒ=$FE00C1†VME101localprinter‚#1deviceaddress 1SIOBASEƒ=$FF0000†BaseaddressofShortI/Ospace****************************************************************‰Vectornumbers£**>**************************************************************9IOCVEC1ƒ=$1BŠAutovectrizedinterrupt-PIAloc.printer8IOCVEC2ƒ=$1CŠAutovectrizedinterrupt-EPCIterminal18IOCVEC3ƒ=$1DŠAutovectrizedinterrupt-EPCIterminal28IOCVEC4ƒ=$1AŠAutovectrizedinterrupt-PTMprog.timer*3IOCLVL1ƒ=3ŒAutovectorizedinterruptlevelforPIA6IOCLVL2ƒ=4ŒAutovectorizedinterruptlevelforEPCI16IOCLVL3ƒ=5ŒAutovectorizedinterruptlevelforEPCI23IOCLVL4ƒ=2ŒAutovectorizedinterruptlevelforPTM FMSG‰******************************************************************3MSG‰**…DescriptiveinfoaboutthisoperatingsystemFMSG‰****************************************************************** 6TIMSLICƒ=2ŒNumberoftimerinterruptspertimeslice.=TIMINTVƒ=10‹Numberofmillisecondsbetweentimerinterrupts.?ROMEADDR‚=$0‹ROMendaddress--definedbyuserforaROMmable,*œsystem.‚Setto$0ifnotaROMablesystem.-*œTheROMstartaddress(ROMSADDR)isdefined3*œinthe.RMS.CIfileandhasavalueequal!*œtotheinitialprogramcounter.*@*ˆThefollowingparametersareusedtodefinememorypartitions.A*ˆIfonlypartition0exists,thenMEMEND2shouldbesettozero.*@NOPARTSƒ=1ŒNumberofmemorypartitions(neededby&.INITMEM.AG)AMEMEND1ƒ=$200000†Theendƒofpartition0(assumedtostartat0).&MEMEND2ƒ=$0‹Thestartofpartition1.$MEMEND3ƒ=$0‹Theendƒofpartition1.;WHERLOAD‚=$0‹Memoryaddresswherebootfilewillbeloaded6*˜Ifnonzero,VERSAdoswillbemovedatinitialization*˜time.7CACHEF„=0ŒNotusedbyVME101(neededfor&.INITDAT.AG)3ASMTYPEƒ=0ŒTypeofassemblertouseforINITIO1.AG *œ0-UseASM*œ1-UseASM020 EMSG‰****************************************" *************************)MSG‰**‚Parametersabouttablesizes,etc.EMSG‰***************************************************************** 'PAGESIZE‚=\PGSIZE†From.RMS.CI*)ASN‡=0Œ#ofaddressspaces--notusedbut!*˜neededtosatisfy&.INITDAT.AG. GMSG‰*******************************************************************>MSG‰*ƒCopythesysteminitializerintoM68XXX.INIT.RObasedon:MSG‰*ƒthetypeofmemoryallocationdefinedatRMSGENtimeMSG‰*ƒin.RMS.CD.GMSG‰******************************************************************* =COPY‡&.MTYPE.SI,MTYPE.SI;Y IFEQˆ\MEMALOC'ƒ=COPY‡BESTFIT.INIT.RO,M68XXX.INIT.RO;YENDC IFNEˆ\MEMALOC%ƒ=COPY‡BUDDY.INIT.RO,M68XXX.INIT.RO;YENDC GMSG‰*******************************************************************=MSG‰*ƒCopyC9OC.SYSPAR.ROinto&.SYSPAR.ROtomakeitgenericAMSG‰*ƒfor.LGfilesandpossibleforsysgeningmorethan1systemMSG‰*ƒperaccount#GMSG‰******************************************************************* "=COPY‡C9OC.SYSPAR.RO,&.SYSPAR.RO;Y**ˆVME101.CNFGDRVR.CI*'* Configuration file for device driversO*------------------------------------------------------------------------------D* This file sets up the flags used by the "VME101.IFDRVR.CI" file to'* conditionally include device drivers.*K* The user should only have to modify this file to include/exclude drivers.E* If you add more boards/devices, you may have to increase the sysgen>* command T option for more symbols in the "&.SYSGEN.CF" file.*K* To modify specific items of a driver, edit the corresponding driver file,J* "&.xxxxDRV.CI" except as noted where one driver handles multiple boards.O*------------------------------------------------------------------------------ N******************************************************************************L*---‚BOARD/SYSTEMDEPENDENCIESareincludedfromthe&.VERSADOS.CDfile.---;*VME101.SYSTEM.CIƒaddprocessorboard/systemdependencies,(*˜includinglocalterminalsandprinters6*&.CNFGTASK.CI†addO/StaskconfigurationforROM/RAMM***************************************************************************** O*------------------------------------------------------------------------------@NOLTERMƒ=2Œ#ofterminalsonVME101serialports(EPCI);max=2 O*------------------------------------------------------------------------------1NOLPRT„=1Œ#oflocal(on-board)printers;max=1 O*------------------------------------------------------------------------------2NORWIN„=0Œ#ofRWIN1„Winchestercontrollerboards* IFGTˆ\NORWIN+ƒCONTWIN1‚="3"Š1stRWIN1controllernumber8ƒNHRWIN$1‚=0Œ#ofhardƒdiskdriveson1stRWIN1;max=2:ƒNFRWIN$1‚=0Œ#offloppydiskdriveson1stRWIN1;max=2BƒRWIN0$1ƒ="'H5WIN40'"‚Typeof1sthardƒdiskon1stRWIN1,drive0BƒRWIN1$1ƒ="'H5WIN40'"‚Typeof2ndhardƒdiskon1stRWIN1,drive1DƒRWIN2$1ƒ="'F5DDDSI'"‚Typeof1stfloppydiskon1stRWIN1,drive2DƒRWIN3$1ƒ="'F5DDDSI'"‚Typeof2ndfloppydiskon1stRWIN1,drive3 M)V"^fn$v~/†%+ƒCONTWIN2‚="4"Š2ndRWIN1controllernumber8ƒNHRWIN$2‚=0Œ#ofhardƒdiskdriveson2ndRWIN1;max=2:ƒNFRWIN$2‚=0Œ#offloppydiskdriveson2ndRWIN1;max=2BƒRWIN0$2ƒ="'H5WIN40'"‚Typeof1sthardƒdiskon2ndRWIN1,drive0BƒRWIN1$2ƒ="'H5WIN40'"‚Typeof2ndhardƒdiskon2ndRWIN1,drive1DƒRWIN2$2ƒ="'F5DDDSI'"‚Typeof1stfloppydiskon2ndRWIN1,drive2DƒRWIN3$2ƒ="'F5DDDSI'"‚Typeof2ndfloppydiskon2ndRWIN1,drive3ƒ*Gƒ*…NOTE:‚Youcannotmix5-1/4"and8"floppies.‚Pickoneortheo# ther.ƒ*ENDC O*------------------------------------------------------------------------------)NVME050ƒ=0Œ#ofVME050ƒSystemController IFGTˆ\NVME0507ƒNT050$1ƒ=0Œ#ofterminalsontheVME050board;max=26ƒNP050$1ƒ=0Œ#ofprinters‚ontheVME050board;max=1ENDC O*------------------------------------------------------------------------------8NVME300ƒ=0Œ#ofMVME300‚IEEE488GPIBcontrollerboards O*------------------------------------------------------------------------------ 5…=/RD=1=/ENDIF =/IF RD=0 …=/IFC\1Š=/RD=1…=/ENDIF …=/IFC\2Š=/RD=2…=/ENDIF …=/IFC\3Š=/RD=3…=/ENDIF …=/IFC\4 Š=/IFC\5=ARG\1,\2,\3,N,-PCDRVŠ=/ELSE=ARG\1,\2,\3,N,\5Š=/ENDIF…=/ENDIF …=/IFC\5ˆ=ARG\1,\2,\3,\4,-PCDRV…=/ELSEˆ=/IFEQ"PCDRV"\5ˆ=/ELSE‹=/IFEQ"-PCDRV"\5‹=/ELSEŽ=/RD=5‹=/ENDIFˆ=/ENDIF…=/ENDIF=/ENDIFJ=/*‚SetArg6sothisfilecan'tbererundirectlyw/osettingproperargs!=ARG \1,\2,\3,\4,\5,ARGS=OPT -N =/IF RD <> 0Mƒ=/*INVOCATIONERROR!Insufficient,null,and/orinvalidargumentspecified!ƒ=/R?ƒ=END=/ENDIF *=/* ==== Start driver related file copying=/IFEQ "PCDRV"\5O=/*-% ---------------------------------------------------------------------------"=/* Copy all RAD1 files for sysgen=/@„\1:9998.COPYGEN.RADDRV.CFO=/*----------------------------------------------------------------------------!=/* Copy all RIO files for sysgen=/@„\1:9998.COPYGEN.RIODRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME600 files for sysgen=/@„\1:9998.COPYGEN.M600DRV.CF’P›%£«%³O=/*----------------------------------------------------------------------------$=/* Copy all VME605 files for sysgen=/@„\1:9998.COPYGEN.M605DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME610 files for sysgen=/@„\1:9998.COPYGEN.M610DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME615 files for sysgen=/@„\1:9998.COPYGEN.M615DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME625 files for sysgen=/@„\1:9998.COPYGEN.M625DRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all PCDRV common files for sysgen=/@„\1:9998.COPYGEN.PCDRV.CF=/ENDIFO=/*----------------------------------------------------------------------------,=/* Copy all driver library files for sysgen=/@„\1:9998.COPYGEN.DRVLIB.CFO=/*----------------------------------------------------------------------------)=/* Copy all MPSC driver files for sysgen=/@„\1:9998.COPYGEN.MPSCDRV.CFO=/*----------------------------------------------------------------------------(=/* Copy all PRT driver files for sysgen=/@„\1:9998.COPYGEN.PIADRV.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME050 driver files for sysgen=/@„\1:9998.COPYGEN.M050DRV.CF=/@„\1:9998.COPYGEN.P050DRV.CF=/@„\1:9998.COPYGEN.MPCCDRV.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME300 (GPIB) files for sysgen=/@„\1:9998.COPYGEN.M300DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME319 files for sysgen=/@„\1:9998.COPYGEN.M319DRV.CFO=/*----------------------------------------------------------------------------F=/* Copy all VME316 (VMEbus to I/O channel interface) files for sysgen=/@„\1:9998.COPYGEN.M316DEF.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME320 files for sysgen=/@„\1:9998.COPYGEN.M320DRV.CFNNNN% NNNO=/*----------------------------------------------------------------------------$=/* Copy all VME331 files for sysgen=/@„\1:9998.COPYGEN.M331DRV.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME420 (SASI) files for sysgen=/@„\1:9998.COPYGEN.M420DRV.CFO=/*----------------------------------------------------------------------------/=/* Copy all VME435 (mag tape) files for sysgen=/@„\1:9998.COPYGEN.M435DRV.CFO=/*----------------------------------------------------------------------------7=/* Copy all RWIN1 (Winchester) driver files for sysgen=/@„\1:9998.COPYGEN.RWINDRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all disk related files for sysgen=/@„\1:9998.COPYGEN.DSKPARAM.CFO=/*----------------------------------------------------------------------------=/*=/**=/* ==== Start system related file copyingO=/*-----------------------------------------------------------------------------=/*‚CopyallVME110specificfilesforsysgen=/@„\1:9998.COPYGEN.VME110.CFO=/*----------------------------------------------------------------------------)=/* Copy all ACIA driver files for sysgen=/@„\1:9998.COPYGEN.ACIADRV.CFO=/*----------------------------------------------------------------------------!=/* Copy all EET files for sysgen=/@„\1:9998.COPYGEN.EET.CFO=/*----------------------------------------------------------------------------'=/* Copy all FHS & IOS files for sysgen=/@„\1:9998.COPYGEN.FHSIOS.CFO=/*----------------------------------------------------------------------------!=/* Copy all FMS files for sysgen=/@„\1:9998.COPYGEN.FMS.CFO=/*----------------------------------------------------------------------------$=/* Copy all LOADER files for sysgen=/@„\1:9998.COPYGEN.LOADER.CFO=/*----------------------------------------------------------------------------<=/* Copy all BEGIN/END files for sysgen (OSLIST and VERSAPT)=/@„\1:9998.COPYGEN.BEGINEND.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOI files for sysgen=/@„\1:9998.COPYGEN.IOI.CFO=/*----------------------------------------------------------------------------'=/* Copy all CNFG TASK files for sysgen=/@„\1:9998.COPYGEN.CNFGTASK.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOC files for sysgen=/@„\1:9998.COPYGEN.IOC.CFO=/*----------------------------------------------------------------------------!=/* Copy all .EQ files for sysgen=/@„\1:9998.COPYGEN.EQ.CFO=/*----------------------------------------------------------------------------2=/*‚Copyalltherestoftherootfilesforsysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*2=/*†VME110.COPYSGEN.CF‚completed.‰Haveaniceday!=/*N=/*‚No"NOARG"and"=END"becauseindependentdriverreleaseitemsmayfollow!& NNN7INITIO„IDNTƒ45,0RMS68KI/OinitializerfortheVME110.O*v*****************************************************************************O*******************************************************************************O**********************************************************************************É***G***…ROUTINE:‚INITIO--RMS68KI/OINITIALIZERFORTHEVME110BOARD.„******É***J***…ENVIRONMENT:‚PartoftheRMS68KexecfortheMotorola68000family.***(***‡Copyright1983byMotorola,Inc.¢******É***D***…FUNCTION:‚RoutinesfromthismodulearecalledbytheRMS68K‡***E***‡routineINITduringsysteminitialization.‚Allboard-specific„***.***‡initializationisdoneinthismodule.œ******É***G***…NOTES:‚ThismoduleisSUBSed,ASMed,andLINKedatSYSGENtime.„***?***‡Allmoduleswillrunatlevel7andinsupervisormode.‹******É***O*******************************************************************************O*******************************************************************************O*^***************************************************************************** *,*‚Revisionhistory(addnewchangestotop).*…Date†Author‚ChangesI*…--------‚------‚-------------------------------------------------------D*…10/29/85ƒCBS„ChangedthewaywecallKILLERtousetheKILL.EXECT0*—macro*…10/25/83ƒSJF„Initialwriting.* * *‚XDEF's.*,ŠXDEFƒINITMMUŒRoutinetoinitializetheMMU.,ŠXDEFƒTIMERSTŒRoutinetostartupthetimer.3ŠXDEFƒINITIORoutinetosetupalltheotherboard-*§specifichardware. * *‚XREF's.* *…Routines:*…ParametersfromINITDAT:-ŠXREFƒTIMSLICŒ#oftimerticspertimeslice.(ŠXREFƒTIMERAAddroftimerchip(M6840).4ŠXREFƒTIMINTVA‹#ofmillisecondsbetweentimertics.4ŠXREFƒCLOCKFRQ‹Frequencyofclock(tosetuptimer).*…SYSPARvariables:ŠXREF.SDATEDate.0ŠXREF.STIMESLIC‹#oftimerticspertimeslice.7ŠXREF.STIMINTVŒTimeintervalbetweentimerinterrupts.»3ÄDÌ<Ô8ŠXREF.STIMINTV4‹Anothervaluerelatedtotimeinterval.+ŠXREF.SPTMADDRŒAddroftimerchip(M6840). *„Others:.ŠXREFƒCRASHSAV‹PlacetoSAVEinfoifweCRASH.   **‚Includedfiles:**‰&.UTILITY.MC*‰M6840.M6840.EQ *‰&.KILL.MC*‰&.KILLEXEC.EQ *‰&.STR.EQ*ŠNOLISTŠINCLUDE&.UTILITY.MCŠINCLUDEM6840.M6840.EQŠINCLUDE&.KILL.MCŠINCLUDE&.KILLEXEC.EQŠINCLUDE&.STR.EQŠLIST ŠSECTION8ŠPAGE*J*‚ThiscodeisneededtosatisfyINIT,whichisboard-independentandmust/*‚calluponustodotheboard-dependentstuff.**„InitializetheMMU.*3INITMMUƒRTS—It'seasyforustoinitializetheMMU,*§sincewedon'thaveone. **„Startthetimerrunning.*TIMERSTDŠMOVE.WTIMSLIC(PC),TIMESLIC‚Setthesysgenparameterwhichdictates%*§the#oftimerticspertimeslice.'‰MOVE.LTIMERA(PC),A1‡GETTIMERADDRESS#‰MOVE.LA1,PTMADDRŠSAVEITFOREXEC$‰BEQ.S‚TIMER_EXITŠBRANCHIFNOTIMER)‰PEA„TIMERBE(PC)‰WHERETOGOONBUSERROR$‰MOVE.W#'BE',-(A7& )‰SETBUSERRFLAG3‰MOVE.B#$01,CR2SR(A1)†ALLOWWRITETOCONTROLREG1&‰MOVE.B#$01,CR13(A1)‡ALLTIMERSRESET$‰MOVE.L#CLOCKFRQ,D0ˆCLOCKFREQUENCY‰DIVUƒ#4,D0DIVIDEBY4#‰SUB.W‚#1,D0CLOCKINTERRUPTSAT-1*‰MOVE.WTIMINTVA(PC),D1…INTERRUPTINTERVAL ‰MOVE.WD1,TIMINTVŠSAVEFOREXEC‰MULUƒ#4,D1MULTIPLYBY4*‰SUB.W‚#1,D1SUBTRACT1-TIMERGOESTO-1!‰MOVE.WD1,TIMINTV4‰SAVEFOREXEC‰LSL.W‚#8,D1PUTINHIGHBYTE)‰ADD.W‚D1,D0VALUEFORTIMER3(2HALVES)‰MOVEP‚D0,MSBT3(A1)ˆSETTIMER34‰MOVE.W#256,D0VALUEFORTIMER1(OVERFLOWCOUNTER)‰MOVEP‚D0,MSBT1(A1)ˆSETTIMER18‰MOVE.B#$00,CR2SR(A1)†ALLOWWRITETOCONTROLREGISTER3;‰MOVE.B#$C6,CR13(A1)‡T3--INTERNALCLOCK,INTERRUPTENABLED,*£OUTPUTENABLED,8-BITMODE8‰MOVE.B#$01,CR2SR(A1)†ALLOWWRITETOCONTROLREGISTER1;‰MOVE.B#$00,CR13(A1)‡T1--EXTERNALCLOCK,ENABLEALLTIMERS3‰ADDQ.L#6,SPEverythingwentOK;justgetthatbus4‰BRA.S‚TIMER_EXITŠerrorjunkoffthestackandexit.*;TIMERBE‚MOVE.L‚#CRASHSAV,PTMADDR‚USEDUMPPOINTERFORTIMER TIMER_EXITRTS–ReturntoINIT.ŠPAGE ‰SECTIONƒ80************************************************,*ƒValuetoputinVME110controlregister.ƒ*0*************************************************6CTRL†SET„%00Busreleasecontrol(releaseonrequest).*©00=Releaseonrequest.*©01=Releaseonbusclear.*©10=Releasewhendone.*©11=Releasenever.*CTRL†SET„0<<4+CTRLŠFailLEDcontrol(off).;CTRL†SET„0<<5+CTRLŠVMEbusSYSFAIL*interruptmask(disabled$*§sincewearen'tpreparedtohandle%*§SYSFAILontheVME110becauseitis)*§sharedwithACFAILandSoftwareAbort).0CTRL†SET„1<<6+CTRLŠWatchdogtimermask(enable).:CTRL†SET„0<<7+CTRLŠWrite-protectionofonboardRAMinuser$*§modeaccordingtomapdecoderPROM *§(disable).  GOTOKILL:A‰KILL.EXECT0‚INITIO1AG,NO_110_REG‚Callkillertocrashthesystem *ˆnoreturn INITIO: 9ŠPEA„GOTOKILL(PC)‡ArrangeforKILLERtogetcontrolifwe4ŠPUSHƒ#'BE'Žcan'taccesstheVME110controlregister"*§(whichwouldcauseabuserror). 9ŠLEA„$FE8021,A0‰A0<--addrofVME110'scontrolregister.-ŠMOVE.B#CTRL,(A0)‰Loadthecontrolregister. 2ŠADD.L‚#6,SPŽGetthebuserrorjunkoffthestack.   E*‚>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>•NOTICEš<<<<<<<*‚>>>>>>>µ<<<<<<<>*‚>>>>>>>…WhenincorporatinganydriversduringSYSGEN„<<<<<<<?*‚>>>>>>>…thatrequirememoryallocatedforthemasperƒ<<<<<<<?*‚>>>>>>>…thedriverpackageinstructions-thisistheƒ<<<<<<<,*‚>>>>>>>…spotthefile(s)gointo!!–<<<<<<<*‚>>>>>>>µ<<<<<<<=*‚>>>>>>>…Thisisalsothespotforcodeforadriver…<<<<<<<>*‚>>>>>>>…that‚requiresothertypesofinitialization,ƒ<<<<<<<0*‚>>>>>>>…such‚asclearinganinterrupt.‘<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>‘MERGEITHERE—<<<<<<<*<*ˆWhenyouwritethecodethatistobemergedhere,wrapit*ˆaroundwiththefollowing:*:*ˆAtthebeginning,withDRVRxOUTreferringtoyourunique*ˆlabel,putthiscode:*'*‹PEA„DRVRxOUT(PC)„IFBUSERROROCCURS,*¢RETURNORGOONTONEXT*¢DRIVER'SINITIALIZATION**‹MOVE.W#'BE',-(A7)…SAVE'BUSERROR'FLAG*9*ˆTheninsertthecodetodowhatyouneedtodoforthis*ˆparticulardriver.**ˆAttheend,putthis:***‹LEA„6(A7),A7ˆREMOVEBUSERRORFROMSTACK*DRVRxOUTƒEQU„**=*ˆInthisway,ifthecodeforonedrivercausesabuserror,.*ˆthecodeforotherdriverswillbeexecuted.*E*‚>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<G***********************************************************************‰ENDN' NNNN**ˆVME110.IFDRVR.CI*,* Conditional file for VME110 device driversO*------------------------------------------------------------------------------K* This file uses flags setup in the VME110.CNFGDRVR.CI and VME110.SYSTEM.CI0* files to conditionally include device drivers.*J* The user should not have to modify this file to include/exclude drivers.*D*„******************************************************************?*„**‚NOTICE:‚Thefollowingconditionalsareorderdependent.„**3*„**‹Donotchangetheorder!‚Localdrivers1st.‡**9*„**‹Theorderdeterminesdevicenumber(HD00,PR,etc)‚***„**‹formostitems.¤**D*„******************************************************************** IFNEˆ\NVME316Dƒ*‚TheVME316hasnodriver.‚IthasaninitializationmodulethatisJƒ*‚mergedintoSYSINIT.RO.‚TheincludefilebelowdefinestheI/Ochannel.ƒ*ƒINCLUDE…&.M316DEF.CIENDC* IFNEˆ\NORWINƒINCLUDE…&.RWINDRV.CIENDC*IFNEˆ\NVME4205ƒINCLUDE…&.M4205.CIENDC*IFNEˆ\NVME4208ƒINCLUDE…&.M4208.CIENDC* IFNEˆ\NVME319ƒINCLUDE…&.M319DRV.CIENDC* IFNEˆ\NVME320ƒINCLUDE…&.M320DRV.CIENDC* IFNEˆ\NOLTERMƒINCLUDE…&.ACIADRV.CIENDC* IFNEˆ\NVME400ƒINCLUDE…&.MPSC400.CIENDC* IFNEˆ\NVME331ƒINCLUDE…&.M331DRV.CIENDC* IFNEˆ\NVME410ƒINCLUDE…&.PIA410.CIENDC* IFNEˆ\NVME050ƒINCLUDE…&.M050DRV.CIENDC* IFNEˆ\NVME300ƒINCLUDE…&.M300DRV.CIENDC* IFNEˆ\NVME435ƒINCLUDE…&.M435DRV.CIENDC* IFNEˆ\NVME600ƒINCLUDE…&.M600DRV.CIENDC* IFNEˆ\NVME605ƒINCLUDE…&.M605DRV.CIENDC*IFNEˆ\NVME610+\NVME620ƒINCLUDE…&.M610DRV.CIENDC* IFNEˆ\NVME615ƒINCLUDE…&.M615DRV.CIENDC* IFNEˆ\NVME625ƒINCLUDE…&.M625DRV.CIENDC* IFNEˆ\NRADƒINCLUDE…&.RADDRV.CIENDC* IFNEˆ\NRIOƒINCLUDE…&.RIODRV.CIENDCÜd**ˆVME110.SYSTEM.CI*L****************************************************************************@*‚Thisfilecontainsallboard/systemdependenciesforVME110.Œ*&*‚Itiscalledfrom"&.VERSADOS.CD".¦**Ê*E*‚Theusershouldnothavetomodifythisfileexceptunderextreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ONBOARDRAMADDRESSES*>*†VMEbusdriversrequirethefollowingtargetsystemdependentB*†variablestobedefinedwhenthemacrofileDUALPORT.MCisused:<*†NotethattheONBD$HIparametermayvaryontheVME110and<*†andVME101systemsdependingonthesizeandnumberofRAM<*†chipsusedonthepr' ocessorcard.‚Thevaluesshownarethe?*†minimumrequirements.Modifythatparametertomatchyourown*†systemifdifferent.**;ONBD$LOƒ=$0‹Low‚valueforon-boardram(asseenbydriver)?ONBD$HIƒ=$0FFFˆHighvalueforon-boardram(asseenbydriver)ARAM$SQ„=$0000ˆDifferencebetweenon-boardramaddressasseenby*˜driveranddevice.JOFFBD$LO‚=\ONBD$LO+\RAM$SQLow‚valueforon-boardram(asseenbydevice)KOFFBD$HI‚=\ONBD$HI+\RAM$SQHighvalueforon-boardram(asseenbydevice) FMSG‰******************************************************************MSG‰**ˆAddressesoftimer,etc.FMSG‰****************************************************************** !TIMER…=$FE8010†Addressoftimer.5CLOCKFRQ‚=0800‰Numberofclocktickspermillisecond"PANEL…=$0‹Addressoffrontpanel.5TRCFLAGƒ=0ŒTraceflag.‚Zeroimpliesdon'ttrace.‚The/*˜settingofbitsintheTRCFLAGparameterwill1*˜controlwhicheventscauseanentrytobebuilt*˜inthetracetable.*˜Bit#inTRCFLAG†Event *›15‘TRAP#1*›14‘I/Ointerruptnotclaimed*°byusertask.*›13‘Timerinterrupt.*›12‘Usertrap(2-15)*›11‘Exception *›10‘Dispatch*œ9‘I/Ointerruptclaimedby *°usertask*œ8‘ReturnfromLOADMMU*œ7‘Simulatedinterruptå6î/ö2þ*œ6‘SYSFAILinterrupt.*FMSG‰******************************************************************.MSG‰**ƒLocalterminal/printerdeviceaddresses#MSG‰**ƒShortI/Ospacebaseaddress&MSG‰**ƒShortI/OspaceaddressoffsetsFMSG‰****************************************************************** /LTDA$01ƒ=$FE8001†VME110localterminaladdress****************************************************************‰Vectornumbers£**>**************************************************************.RMS.CIfileandhasavalueequal!*œtotheinitialprogramcounter.*@*ˆThefollowingparametersareusedtodefinememorypartitions.A*ˆIfonlypartition0exists,thenMEMEND2shouldbesettozero.*@NOPARTSƒ=1ŒNumberofmemorypartitions(neededby&.I( NITMEM.AG)AMEMEND1ƒ=$200000†Theendƒofpartition0(assumedtostartat0).*MEMEND2ƒ=$00000‡Thestartofpartition1.*˜NotapplicableforaVME110(MEMEND3ƒ=$00000‡Theendƒofpartition1.:WHERLOAD‚=0ŒMemoryaddresswherebootfilewillbeloaded5*˜Ifnonzero,VERSAdoswillbemoveatinitialization*˜time.8CACHEF„=0ŒNotusedforVME110(neededfor&.INITDAT.AG)3ASMTYPEƒ=0ŒTypeofassemblertouseforINITIO1.AG *œ0-UseASM*œ1-UseASM020 EMSG‰*****************************************************************)MSG‰**‚Parametersabouttablesizes,etc.EMSG‰***************************************************************** 'PAGESIZE‚=\PGSIZE†From.RMS.CI*)ASN‡=0Œ#ofaddressspaces--notusedbut!*˜neededtosatisfy&.INITDAT.AG. GMSG‰*******************************************************************>MSG‰*ƒCopythesysteminitializerintoM68XXX.INIT.RObasedon:MSG‰*ƒthetypeofmemoryallocationdefinedatRMSGENtimeMSG‰*ƒin.RMS.CD.GMSG‰******************************************************************* =COPY‡&.MTYPE.SI,MTYPE.SI;Y IFEQˆ\MEMALOC'ƒ=COPY‡BESTFIT.INIT.RO,M68XXX.INIT.RO;YENDC IFNEˆ\MEMALOC%ƒ=COPY‡BUDDY.INIT.RO,M68XXX.INIT.RO;YENDC GMSG‰*******************************************************************=MSG‰*ƒCopyC9OC.SYSPAR.ROinto&.SYSPAR.ROtomakeitgenericAMSG‰*ƒfor.LGfilesandpossibleforsysgeningmorethan1systemMSG‰*ƒperaccount#GMSG‰******************************************************************* "=COPY‡C9OC.SYSPAR.RO,&.SYSPAR.RO;YNNNNNNN**ˆVME110.CNFGDRVR.CI*'* Configuration file for device driversO*------------------------------------------------------------------------------D* This file sets up the flags used by the "VME110.IFDRVR.CI" file to'* conditionally include device drivers.*K* The user should only have to modify this file to include/exclude drivers.E* If you add more boards/devices, you may have to increase the sysgen>* command T option for more symbols in the "&.SYSGEN.CF" file.*K* To modify specific i( tems of a driver, edit the corresponding driver file,J* "&.xxxxDRV.CI" except as noted where one driver handles multiple boards.O*------------------------------------------------------------------------------ N******************************************************************************L*---‚BOARD/SYSTEMDEPENDENCIESareincludedfromthe&.VERSADOS.CDfile.---;*VME110.SYSTEM.CIƒaddprocessorboard/systemdependencies,(*˜includinglocalterminalsandprinters6*&.CNFGTASK.CI†addO/StaskconfigurationforROM/RAMM***************************************************************************** O*------------------------------------------------------------------------------@NOLTERMƒ=1Œ#ofterminalsonVME110serialports(ACIA);max=1IFGTˆ\NOLTERM-1ƒMSG†NOLTERMmustbe<=1ƒABORTENDC O*------------------------------------------------------------------------------2NORWIN„=1Œ#ofRWIN1„Winchestercontrollerboards*@*ˆNOTE:‚Youcannotsysgena2ndRWIN1boardifyouaresysgening7*foraSASI5.‚Thetwoboardsareatthesameaddress.7*ReferenceIOC.ADDRESS.CItochangetheaddressifyou$*wantbothboardsatthesametime.* IFGTˆ\NORWIN+ƒCONTWIN1‚="0"Š1stRWIN1controllernumber8ƒNHRWIN$1‚=1Œ#ofhardƒdiskƒdriveson1stRWIN1;max=2<ƒNFRWIN$1‚=2Œ#of5-1/4"floppydriveson1stRWIN1;max=2BƒRWIN0$1ƒ="'H5WIN40'"‚Typeof1sthardƒdiskon1stRWIN1,drive0BƒRWIN1$1ƒ="'H5WIN40'"‚Typeof2ndhardƒdiskon1stRWIN1,drive1,&'' /.7.?!DƒRWIN2$1ƒ="'F5DDDSI'"‚Typeof1stfloppydiskon1stRWIN1,drive2DƒRWIN3$1ƒ="'F5DDDSI'"‚Typeof2ndfloppydiskon1stRWIN1,drive3 +ƒCONTWIN2‚="5"Š2ndRWIN1controllernumber8ƒNHRWIN$2‚=0Œ#ofhardƒdiskdriveson2ndRWIN1;max=2:ƒNFRWIN$2‚=0Œ#offloppydiskdriveson2ndRWIN1;max=2BƒRWIN0$2ƒ="'H5WIN40'"‚Typeof1sthardƒdiskon2ndRWIN1,drive0BƒRWIN1$2ƒ="'H5WIN40'"‚Typeof2ndhardƒdiskon2ndRWIN1,drive1DƒRWIN2$2ƒ="'F5DDDSI'"‚Typeof1stfloppydiskon2ndRWIN1,drive2DƒRWIN3$2ƒ="'F5DDDSI'"‚Typeof2ndfloppydiskon2ndRWIN1,drive3ƒ*Gƒ*…NOTE:‚Youcannotmix5-1/4"and8"floppies.‚Pickoneortheother.ƒ*ENDC O*------------------------------------------------------------------------------)NVME050ƒ=0Œ#ofVME050ƒSystemController IFGTˆ\NVME0507ƒNT050$1ƒ=0Œ#ofterminalsontheVME050board;max=26ƒNP050$1ƒ=0Œ#ofprinters‚ontheVME050board;max=1ENDC O*------------------------------------------------------------------------------8NVME300ƒ=0Œ#ofMVME300‚IEEE488GPIBcontrollerboards O*------------------------------------------------------------------------------ƒNF4205$1‚=2Œ#offloppydiskdrivesonVME420(SASI);max=2AƒM42050$1‚="'H5WIN40'"‚Typeofhardƒdiskon1stMVME420,dr* ive0AƒM42051$1‚="'H5WIN40'"‚Typeofhardƒdiskon1stMVME420,drive1CƒM42052$1‚="'F5DDDSI'"‚Typeoffloppydiskon1stMVME420,drive2CƒM42053$1‚="'F5DDDSI'"‚Typeoffloppydiskon1stMVME420,drive3ƒ*>ƒ*…NOTE:‚TotaldisksforSASI=4,i.e.NH4205$1+NF4205$1<=4.ƒ*ENDC O*------------------------------------------------------------------------------=NVME4208‚=0Œ#ofMVME420‚SASI8"interfacecontrollerboards*IFGTˆ\NVME42082ƒCONT4208‚="2"ŠMVME420(SASI8)controllernumber<ƒNH4208$1‚=0Œ#ofhardƒdiskdrivesonVME420(SASI);max=2>ƒNF4208$1‚=0Œ#offloppydiskdrivesonVME420(SASI);max=2AƒM42080$1‚="'H8WIN10'"‚Typeofhardƒdiskon1stMVME420,drive0AƒM42081$1‚="'H8WIN10'"‚Typeofhardƒdiskon1stMVME420,drive1CƒM42082$1‚="'F8DDDSI'"‚Typeoffloppydiskon1stMVME420,drive2CƒM42083$1‚="'F8DDDSI'"‚Typeoffloppydiskon1stMVME420,drive3ƒ*>ƒ*…NOTE:‚TotaldisksforSASI=4,i.e.NH4208$1+NF4208$1<=4.ƒ*ENDC O*------------------------------------------------------------------------------;NVME435ƒ=0Œ#ofMVME435‚magtapecontrollerboards;max=2 IFGTˆ\NVME435;ƒN435$1„=0Œ#oftapedrivesonfirst‚MVME435board;max=8<ƒN435$2„=0Œ#oftapedrivesonsecondMVME435board;max=8ENDC O*------------------------------------------------------------------------------7NVME600ƒ=0Œ#ofMVME600‚analoginput‚controllerboards O*------------------------------------------------------------------------------8NVME605ƒ=0Œ#ofMVME605‚analogoutputcontrollerboards IFGTˆ\NVME6059ƒNU605…=0ŒNumberofusers(total)fortheMVME605boardsENDC O*------------------------------------------------------------------------------3NVME610ƒ=0Œ#ofMVME610…AC‚input‚controllerboards IFGTˆ\NVME610GƒM610QSIZ‚=128…MinimumnumberofentriesinInterruptProcessingQueueENDC O*------------------------------------------------------------------------------8NVME615ƒ=0Œ#ofMVME615/616AC‚outputcontrollerboards IFGTˆ\NVME6159ƒNU615…=0ŒNumberofusers(total)fortheMVME615boardsENDC O*------------------------------------------------------------------------------3NVME620ƒ=0Œ#ofMVME620…DC‚input‚controllerboards O*------------------------------------------------------------------------------4NVME625ƒ=0Œ#ofMVME625…DC‚outputcontrollerboards IFGTˆ\NVME6259ƒNU625…=0ŒNumberofusers(total)fortheMVME625boardsENDC O*------------------------------------------------------------------------------#NRAD†=0Œ#ofRAD†RemoteA/Dboards IFGTˆ\NRADƒNURAD…=0Œ#ofRADusersENDC O*------------------------------------------------------------------------------#NRIO†=0Œ#ofRIO†RemoteI/Oboards IFGTˆ\NRIO1ƒNRIOINTƒ=0Œ#ofinterruptlevelsperI/OmoduleENDC O*------------------------------------------------------------------------------NNN'VME120 COPYSGENCFSSµ  $* =/*<=/*‚VME120.COPYSGEN.CF‚-‚ChainfiletocopyfilesforSYSGEN=/*'=/*‚--‚FORCECATALOGTOBESET=VME120 =USE :.VME120=/*D=/*†ThischainfilecopiesthosefilesrequiredtodoaSYSGENintoa'=/*†aspecifiedvolumeandusernumber.=/*;=/*ƒInvokeas:„=VME120.COPYSGEN.CF‚arg1,arg2,arg3,arg4,arg5 =/*…where:.=/*‰Arg1=\1„SourcevolumenameŒ(mustspecify).=/*‰Arg2=\2„TargetvolumenameŒ(mustspecify).=/*‰Arg3=\3„TargetusernumberŒ(mustspecify)-=/*‰Arg4=\4„COPYoptionletter(s)‰(optional)=/*—B=bothcopy&verify=/*—P=packfiles =/*—Y=overwriteiffileexists*=/*—N=skipcopyiffileexistsƒ(default)*=/*–VT=verify&showonly1stdifference2=/*‰Arg5=\5„includePCDRVdriverfilesƒ(optional)=/*—PCDRV=includethem=OPT N=/RX=\0=/RD=0 =/IF RX < 3…=/RD=1=/ENDIF =/IF RX > 5…=/RD=1=/ENDIF =/IF RD=0 …=/IFC\1Š=/RD=1…=/ENDIF …=/IFC\2Š=/RD=2…=/ENDIF …=/IFC\3Š=/RD=3…=/ENDIF …=/IFC\4 Š=/IFC\5=ARG\1,\2,\3,N,-PCDRVŠ=/ELSE=ARG\1,\2,\3,N,\5Š=/ENDIF…=/ENDIF …=/IFC\5ˆ=ARG\1,\2,\3,\4,-PCDRV…=/ELSEˆ=/IFEQ"PCDRV"\5ˆ=/ELSE‹=/IFEQ"-PCDRV"\5‹=/ELSEŽ=/RD=5‹=/ENDIFˆ=/ENDIF…=/ENDIF=/ENDIFJ=/*‚SetArg6sothisfilecan'tbererundirectlyw/osettingproperargs!=ARG \1,\2,\3,\4,\5,ARGS=OPT -N =/IF RD <> 0Mƒ=/*INVOCATIONERROR!Insufficient,null,and/orinvalidargumentspecified!ƒ=/R?ƒ=END=/ENDIF *=/* ==== Start driver related file copying=/IFEQ "PCDRV"\5O=/*----------------------------------------------------------------------------"=/* Copy all RAD1 files for sysgen=/@„\1:9998.COPYGEN.RADDRV.CFO=/*----------------------------------------------------------------------------!=/* Copy all RIO files for sysgen=/@„\1:9998.COPYGEN.RIODRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME600 files for sysgen=/@„\1:9998.COPYGEN.M600DRV.CFKPT%\d#lO=/*----------------------------------------------------------------------------$=/* Copy all VME605 files for sysgen=/@„\1:9998.COPYGEN.M605DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME610 files for sysgen=/@„\1:9998.COPYGEN.M610DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME615 files for sysgen=/@„\1:9998.COPYGEN.M615DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME625 files for sysgen=/@„\1:9998.COPYGEN.M625DRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all PCDRV common files for sysgen=/@„\1:9998.COPYGEN.PCDRV.CF=/ENDIFO=/*----------------------------------------------------------------------------,=/* Copy all driver library files for sysgen=/@„\1:9998.COPYGEN.DRVLIB.CFO=/*----------------------------------------------------------------------------(=/* Co+ py all MFP driver files for sysgen=/@„\1:9998.COPYGEN.MFPDRV.CFO=/*----------------------------------------------------------------------------)=/* Copy all MPSC driver files for sysgen=/@„\1:9998.COPYGEN.MPSCDRV.CFO=/*----------------------------------------------------------------------------(=/* Copy all PRT driver files for sysgen=/@„\1:9998.COPYGEN.PIADRV.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME050 driver files for sysgen=/@„\1:9998.COPYGEN.M050DRV.CF=/@„\1:9998.COPYGEN.P050DRV.CF=/@„\1:9998.COPYGEN.MPCCDRV.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME300 (GPIB) files for sysgen=/@„\1:9998.COPYGEN.M300DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME319 files for sysgen=/@„\1:9998.COPYGEN.M319DRV.CFO=/*----------------------------------------------------------------------------F=/* Copy all VME316 (VMEbus to I/O channel interface) files for sysgen=/@„\1:9998.COPYGEN.M316DEF.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME320 files for sysgen=/@„\1:9998.COPYGEN.M320DRV.CFNNNNNNO=/*----------------------------------------------------------------------------$=/* Copy all VME331 files for sysgen=/@„\1:9998.COPYGEN.M331DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME360 files for sysgen=/@„\1:9998.COPYGEN.M360DRV.CFO=/*----------------------------------------------------------------------------/=/* Copy all VME435 (mag tape) files for sysgen=/@„\1:9998.COPYGEN.M435DRV.CFO=/*----------------------------------------------------------------------------7=/* Copy all RWIN1 (Winchester) driver files for sysgen=/@„\1:9998.COPYGEN.RWINDRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all disk related files for sysgen=/@„\1:9998.COPYGEN.DSKPARAM.CFO=/*----------------------------------------------------------------------------=/*=/**=/* ==== Start system related file copyingO=/*-----------------------------------------------------------------------------=/+ *‚CopyallVME120specificfilesforsysgen=/@„\1:9998.COPYGEN.VME120.CFO=/*----------------------------------------------------------------------------!=/* Copy all EET files for sysgen=/@„\1:9998.COPYGEN.EET.CFO=/*----------------------------------------------------------------------------'=/* Copy all FHS & IOS files for sysgen=/@„\1:9998.COPYGEN.FHSIOS.CFO=/*----------------------------------------------------------------------------!=/* Copy all FMS files for sysgen=/@„\1:9998.COPYGEN.FMS.CFO=/*----------------------------------------------------------------------------$=/* Copy all LOADER files for sysgen=/@„\1:9998.COPYGEN.LOADER.CFO=/*----------------------------------------------------------------------------N<=/* Copy all BEGIN/END files for sysgen (OSLIST and VERSAPT)=/@„\1:9998.COPYGEN.BEGINEND.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOI files for sysgen=/@„\1:9998.COPYGEN.IOI.CFO=/*----------------------------------------------------------------------------'=/* Copy all CNFG TASK files for sysgen=/@„\1:9998.COPYGEN.CNFGTASK.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOC files for sysgen=/@„\1:9998.COPYGEN.IOC.CFO=/*----------------------------------------------------------------------------!=/* Copy all .EQ files for sysgen=/@„\1:9998.COPYGEN.EQ.CFO=/*----------------------------------------------------------------------------2=/*‚Copyalltherestoftherootfilesforsysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*2=/*†VME120.COPYSGEN.CF‚completed.‰Haveaniceday!=/*N=/*‚No"NOARG"and"=END"becauseindependentdriverreleaseitemsmayfollow!NNN'VMES10 COPYSGENCF€€²  $INITIO1 AG©©KI  $IFDRVR CI[  $SYSTEM CI  À  $CNFGDRVRCI,,)æ  $MTYPE SImm   $, =/*E=/*‚VMES10.COPYSGEN.CF‚-‚ChainfiletocopyfilesforSYSGEN†(VME/10)=/*'=/*‚--‚FORCECATALOGTOBESET=VMES10 =USE :.VMES10=/*D=/*†ThischainfilecopiesthosefilesrequiredtodoaSYSGENintoa'=/*†aspecifiedvolumeandusernumber.=/*;=/*ƒInvokeas:„=VMES10.COPYSGEN.CF‚arg1,arg2,arg3,arg4,arg5 =/*…where:.=/*‰Arg1=\1„SourcevolumenameŒ(mustspecify).=/*‰Arg2=\2„TargetvolumenameŒ(mustspecify).=/*‰Arg3=\3„TargetusernumberŒ(mustspecify)-=/*‰Arg4=\4„COPYoptionletter(s)‰(optional)=/*—B=bothcopy&verify=/*—P=packfiles =/*—Y=overwriteiffileexists*=/*—N=skipcopyiffileexistsƒ(default)*=/*–VT=verify&showonly1stdifference2=/*‰Arg5=\5„includePCDRVdriverfilesƒ(optional)=/*—PCDRV=includethem=OPT N=/RX=\0=/RD=0 =/IF RX < 3…=/RD=1=/ENDIF =/IF RX > 5…=/RD=1=/ENDIF =/IF RD=0 …=/IFC\1Š=/RD=1…=/ENDIF …=/IFC\2Š=/RD=2…=/ENDIF …=/IFC\3Š=/RD=3…=/ENDIF …=/IFC\4 Š=/IFC\5=ARG\1,\2,\3,N,-PCDRVŠ=/ELSE=ARG\1,\2,\3,N,\5Š=/ENDIF…=/ENDIF …=/IFC\5ˆ=ARG\1,\2,\3,\4,-PCDRV…=/ELSEˆ=/IFEQ"PCDRV"\5ˆ=/ELSE‹=/IFEQ"-PCDRV"\5‹=/ELSEŽ=/RD=5‹=/ENDIFˆ=/ENDIF…=/ENDIF=/ENDIFJ=/*‚SetArg6sothisfilecan'tbererundirectlyw/osettingproperargs!=ARG \1,\2,\3,\4,\5,ARGS=OPT -N =/IF RD <> 0Mƒ=/*INVOCATIONERROR!Insufficient,null,and/orinvalidargumentspecified!ƒ=/R?ƒ=END=/ENDIF *=/* ==== Start driver related file copying=/IFEQ "PCDRV"\5O=/*----------------------------------------------------------------------------"=/* Copy all RAD1 files for sysgen=/@„\1:9998.COPYGEN.RADDRV.CFO=/*----------------------------------------------------------------------------!=/* Copy all RIO files for sysgen=/@„\1:9998.COPYGEN.RIODRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME600 files for sysgen=/@„\1:9998.COPYGEN.M600DRV.CFxP%‰‘#™O=/*----------------------------------------------------------------------------$=/* Copy all VME605 files for sysgen=/@„\1:9998.COPYGEN.M605DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME610 files for sysgen=/@„\1:9998.COPYGEN.M610DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME615 files for sysgen=/@„\1:9998.COPYGEN.M615DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME625 files for sysgen=/@„\1:9998.COPYGEN.M625DRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all PCDRV common files for sysgen=/@„\1:9998.COPYGEN.PCDRV.CF=/ENDIFO=/*----------------------------------------------------------------------------,=/* Copy all driver library files for sysgen=/@„\1:9998.COPYGEN.DRVLIB.CFO=/*----------------------------------------------------------------------------)=/* Copy all MPSC driver files for sysgen=/@„\1:9998.COPYGEN.MPSCDRV.CFO=/*----------------------------------------------------------------------------(=/* Copy all PRT driver files for sysgen=/@„\1:9998.COPYGEN.PIADRV.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME050 driver files for sysgen=/@„\1:9998.COPYGEN.M050DRV.CF=/@„\1:9998.COPYGEN.P050DRV.CF=/@„\1:9998.COPYGEN.MPCCDRV.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME300 (GPIB) files for sysgen=/@„\1:9998.COPYGEN.M300DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME319 files for sysgen=/@„\1:9998.COPYGEN.M319DRV.CFO=/*---, -------------------------------------------------------------------------F=/* Copy all VME316 (VMEbus to I/O channel interface) files for sysgen=/@„\1:9998.COPYGEN.M316DEF.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME320 files for sysgen=/@„\1:9998.COPYGEN.M320DRV.CFNNNNNNNO=/*----------------------------------------------------------------------------$=/* Copy all VME360 files for sysgen=/@„\1:9998.COPYGEN.M360DRV.CFO=/*----------------------------------------------------------------------------/=/* Copy all VME435 (mag tape) files for sysgen=/@„\1:9998.COPYGEN.M435DRV.CFO=/*----------------------------------------------------------------------------7=/* Copy all RWIN1 (Winchester) driver files for sysgen=/@„\1:9998.COPYGEN.RWINDRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all disk related files for sysgen=/@„\1:9998.COPYGEN.DSKPARAM.CFO=/*----------------------------------------------------------------------------=/*=/**=/* ==== Start system related file copyingO=/*-----------------------------------------------------------------------------=/*‚CopyallVMES10specificfilesforsysgen=/@„\1:9998.COPYGEN.VMES10.CFO=/*----------------------------------------------------------------------------+=/* Copy all DRVS10 driver files for sysgen=/@„\1:9998.COPYGEN.DRVS10.CFO=/*----------------------------------------------------------------------------!=/* Copy all EET files for sysgen=/@„\1:9998.COPYGEN.EET.CFO=/*----------------------------------------------------------------------------'=/* Copy all FHS & IOS files for sysgen=/@„\1:9998.COPYGEN.FHSIOS.CFO=/*----------------------------------------------------------------------------!=/* Copy all FMS files for sysgen=/@„\1:9998.COPYGEN.FMS.CFO=/*----------------------------------------------------------------------------$=/* Copy all LOADER files for sysgen=/@„\1:9998.COPYGEN.LOADER.CFO=/*----------------------------------------------------------------------------- N<=/* Copy all BEGIN/END files for sysgen (OSLIST and VERSAPT)=/@„\1:9998.COPYGEN.BEGINEND.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOI files for sysgen=/@„\1:9998.COPYGEN.IOI.CFO=/*----------------------------------------------------------------------------'=/* Copy all CNFG TASK files for sysgen=/@„\1:9998.COPYGEN.CNFGTASK.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOC files for sysgen=/@„\1:9998.COPYGEN.IOC.CFO=/*----------------------------------------------------------------------------!=/* Copy all .EQ files for sysgen=/@„\1:9998.COPYGEN.EQ.CFO=/*----------------------------------------------------------------------------2=/*‚Copyalltherestoftherootfilesforsysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*2=/*†VMES10.COPYSGEN.CF‚completed.‰Haveaniceday!=/*N=/*‚No"NOARG"and"=END"becauseindependentdriverreleaseitemsmayfollow!NNN7INITIO„IDNTƒ45,0RMS68KI/OinitializerfortheVME/10.O*******************************************************************************O*******************************************************************************O**********************************************************************************É***A***…ROUTINE:‚INITIO--RMS68KI/OINITIALIZERFORTHEVME/10.Š******É***J***…ENVIRONMENT:‚PartoftheRMS68KexecfortheMotorola68000family.***(***‡Copyright1983byMotorola,Inc.¢******É***D***…FUNCTION:‚RoutinesfromthismodulearecalledbytheRMS68K‡***E***‡routineINITduringsysteminitialization.‚Allboard-specific„***.***‡initializationisdoneinthismodule.œ******É***G***…NOTES:‚ThismoduleisSUBSed,ASMed,andLINKedatSYSGENtime.„***?***‡Allmoduleswillrunatlevel7andinsupervisormode.‹******É***O*******************************************************************************O*******************************************************************************O******************************************************************************* *,*‚Revisionhistory(addnewchangestotop).*…Date†Author‚ChangesI*…--------‚------‚-------------------------------------------------------F*…10/29/85ƒCBS„ChangedthewaywecallKILLERtouseKILL.EXECT0macro8*†1/28/85ƒSJF„ChangedMMUinitializationtolookat\MMU4*†3/6/84ƒSJF„Makebit7ofCR1a0ratherthana1.?*†1/10/84ƒMSL„VerifythatUIP(update-in-progress)bitisclear&*—beforereadingreal-timeclockchip.*…11/7/83ƒSJF„Initialwriting.* * *‚XDEF's.*,ŠXDEFƒINITMMUŒRoutinetoinitializetheMMU.,ŠXDEFƒTIMERSTŒRoutinetostartupthetimer.3ŠXDEFƒINITIORoutinetosetupalltheotherboard-*§specifichardware.-  * *‚XREF's.* *…Routines:*…ParametersfromINITDAT:-ŠXREFƒTIMSLICŒ#oftimerticspertimeslice.+ŠXREFƒTIMERAAddroftimerchip(MC146818).ŠXREFƒTIMINTVAŠXREFƒCLOCKFRQ*…SYSPARvariables:¡3ªB²CºÂ(ÊPÒBÚ4â7ê<ò6ŠXREF.SMMUHEREŒAddrofMMU;0ifwe'renotusingone.0ŠXREF.SFRST451ŒAddroffirstMMUinthesystem./ŠXREF.SLAST451ŒAddroflast‚MMUinthesystem.7ŠXREF.SCURR451ŒPtrtoMMULOADMMUshouldlookatnext.7ŠXREF.SCURRSDCurrentsegmentdescriptor#intheMMU.7ŠXREF.SDPRVAODual-PortedRamVersabusAddressOffset.ŠXREF.SDATEDate.1ŠXREF.STIME_LEFTŠmsuntilnextsignificantevent0ŠXREF.STIMESLIC‹#oftimerticspertimeslice.7ŠXREF.STIMINTVŒTimeintervalbetweentimerinterrupts..ŠXREF.SPTMADDRŒAddroftimerchip(MC146818).0ŠXREF.SNSENextsignificanteventabsolutetime$ŠXREF.SMIDNIGHT‹msoflastmidnight *„Others:.ŠXREFƒCRASHSAV‹PlacetoSAVEinfoifweCRASH. **‚Includedfiles:**‰&.UTILITY.MC*‰M68451.M68451.EQ*‰M146818.M146818.EQ *‰&.KILL.MC*‰&.KILLEXEC.EQ *‰&.STR.EQ*ŠNOLISTŠINCLUDE&.UTILITY.MCŠINCLUDEM68451.M68451.EQŠINCLUDEM146818.M146818.EQŠINCLUDE&.KILL.MCŠINCLUDE&.KILLEXEC.EQŠINCLUDE&.STR.EQŠLISTŠPAGEO*******************************************************************************O**********************************************************************************É***7***…ROUTINE:‚INITMMU--INITIALIZETHEM68451MMUs.”******É***G***…FUNCTION:‚IfwearesupposedtohaveMMUs,verifythatatleast„***4***‡oneexists,countthem,andinitializethem.–******É******…NOTES:¾******É***E***…REGISTERUSAGE:‚(A)rgument‚(D)estroyed‚(P)reserved‚(R)eturnedƒ***)***Œ0ƒ1ƒ2ƒ3ƒ4ƒ5ƒ6ƒ7‡SRhi„SRlo(CCR)…******‡D:ƒPƒPƒ.ƒ.ƒ.ƒ.ƒ.ƒ.‡.ˆD******‡A:ƒPƒPƒ.ƒ.ƒ.ƒ.ƒ.ƒP ******É******…ENTRYCONDITIONS:³***+***‡Supervisormode,interruptlevel7.Ÿ******É***-***…EXITCONDITIONSDIFFERENTFROMENTRY:Ÿ******É***O*******************************************************************************O*^*****************************************************************************  ŠSECTION8ŠOPT„BRS INITMMU: /ŠIFNEƒ\MMUIfwe'resupposedtohavesomeMMUs, 1ŠSAVEƒD0/D1/A0/A1ˆSaveregisterswe'llblowaway. 0ŠLEA„$F1A800,A0‰A0<--addressofthefirstMMU.%ŠMOVE.LA0,MMUHERE‰SaveitinSYSPAR. *‰PEA…GOTOKILLCRASHIFFIRSTMMUNOTTHERE'‰MOVE.W‚#'BE',-(A7)ŠBUSERRORSWITCHON,‰MOVE.B‚(A0),D0ŽVERIFYPRESENCEOFFIRSTMMU8‰MOVE.L‚A0,FRST451‹SAVEADDRESSOFFIRST68451INSYSPAR.‰MOVE.L‚A0,CURR451‹IT'SALSOTHECURRENT68451(‰MOVE.L‚#1,CURRSDŒSEGMENTDESCRIPTOR#1#‰LEA…N68451U(PC),A1‡ADDRESSOFEXIT6‰MOVE.L‚A1,2(A7)EXITIFBUSERRORWHILECOUNTINGMMUs%‰MOVE.W‚#3,D0FOURPOSSIBLELASTMMUsN68451B1‰MOVE.B‚(A0),D1ŽEXITTHROUGHBUSERRORIFNONEXT.‰MOVE.L‚A0,LAST451‹CURRENTMAYBETHELASTMMU)‰ADD.Lƒ#$40,A0ŽSETTOCHECKNEXTMMUSLOT‰DBRA„D0,N68451B‹LOOPTILLDONE+‰ADD.Lƒ#6,A7BUSERRORPOINTEROFFOFSTACK *I*‚UnloadsegmentdescriptersinallMMU's,incaseRESETwasn'tperformed*‚priortoboot.*N68451U'ŠMOVE.LFRST451,A1ŠPointtofirst68451$ŠMOVE.B#1,D0Segmentdescriptor#1UNLD10%ŠMOVE.BD0,DP(A1)‹Pointtodescriptor-ŠMOVE.B#0,SSR(A1)ŠElseclearthisdescriptorUNLDNEXTŠADDQ.B#1,D0NextdescriptorŠCMP.B‚#$20,D0EndofthisMMU?ŠBNE.S‚UNLD10ŽBranchifno#ŠLEA„$40(A1),A1ŠMoveontonextMMUŠCLR.B‚D0’Descriptor#0)ŠCMP.L‚LAST451,A1ŠArewebeyondallMMUs?ŠBLE.S‚UNLD10ŽBranchifnoUNLDEXIT **‚Exit.*.N68451XƒRESTORED0/D1/A0/A1‡Restoreregisters. ŠENDC ŠRTS—Return. GOTOKILL:A‰KILL.EXECT0‚INITIO1AG,NO_451_1STƒCallkillertocrashthesystem *ˆnoretur. n  ŠPAGEO*********************************************************************************ˆSTARTTIMER„(146818TIMER)* *G*‚Thismacrowillverifythatabyteiswithinaspecifiedrange.‚IfitH*‚isnotwithintherange,abranchistakentoRANGE_ERR.‚ThesyntaxisD*„CHECK_RANGE.,,F*‚DistanceisSforshortbranches,Lforlongbranches,ornothingif*‚thedefaultwilldo.6*‚Thebytetocheckistreatedasanunsignedinteger.*CHECK_RANGE MACRO ŠCMP.B‚\2,\1ŠBLO.\0RANGE_ERR ŠCMP.B‚\3,\1ŠBHI.\0RANGE_ERRŠENDM  TIMERST:E‰MOVE.WTIMSLIC(PC),TIMESLIC‚#TIMERINTERRUPTSBEFORETASKINTERRUPT'‰MOVE.LTIMERA(PC),A1‡GETTIMERADDRESS#‰MOVE.LA1,PTMADDRŠSAVEITFOREXEC!‰BEQ.L‚TIMERBEBRANCHIFNOTIMER)‰PEA„TIMERBE(PC)‰WHERETOGOONBUSERROR$‰MOVE.W#'BE',-(A7)‰SETBUSERRFLAG*4*ˆGetsystemtimeanddatefrombatterybackedtimer*‰MOVE.L„#1800,D1ŒTimeoutcount:UIP_LOOPBTST†#7,REGA(A1)‰WaitforUIPbittoresetbefore#‰BEQ.S…UIP_OKAYŒreadingclockchip.4‰DBRA†D1,UIP_LOOP‰Ifbatteryisdead,we'lltimeout,$‰BRA.L…RANGE_ERR‹andalwaysgohere.UIP_OKAYNNNNN*‰CLR.L…D1’Prepareforfollowingshortload'‰MOVE.B„HRS(A1),D1ŠGethoursfromtimerŠCHECK_RANGE.LD1,#0,#230‰MOVE.L„#3600*1000,D2‡Addendisonehour'smsecs+‰CLR.L…D0’CalculationwilltakeplaceinD0*‰BRA.S…CALCLOOPŒStartthecalculationloopCALCHRS)‰ADD.L…D2,D0Addonehour'smsecstotimeCALCLOOP*‰DBRA†D1,CALCHRSŠLoopuntilhourscomputed*‰CLR.W…D1’Prepareforfollowingshortload*‰MOVE.B„MINS(A1),D1‰GetminutesfromtimerŠCHECK_RANGED1,#0,#59)‰MULU.W„#60,D1ŽConvertminutestoseconds*‰CLR.L…D2’Prepareforfollowingshortload*‰MOVE.B„SECS(A1),D2‰GetsecondsfromtimerŠCHECK_RANGED2,#0,#59‰ADD.L…D2,D1D1=totalseconds‰MULU.W„#1000,D1ŒD1=totalmsecs!‰ADD.L…D1,D0D0=grandtotalmsecs‰ADD.L…TIME_LEFT,D0 ‰MOVE.L„D0,NSEŽStoreitforexec‰CLR.L…MIDNIGHT (‰CLR.L…D0’Preparetoformgregoriandate'‰MOVE.B„YEAR(A1),D0‰GetyearfromtimerŠCHECK_RANGED0,#0,#99‰ADD.W…#1900,D0ŒYear=1900+YY‰SWAP†D0’D0=YYYY0000 ‰MOVE.B„MONTH(A1),D0ˆD0=YYYY00MMŠCHECK_RANGED0,#1,#12‰LSL.W…#8,D0D0=YYYYMM00"‰MOVE.B„DAYOMTH(A1),D0†D0=YYYYMMDDŠCHECK_RANGED0,#1,#31 *I*‚Thetimeanddatelookreasonable,solet'sgoaheadandkeepthoseforG*‚ourown(thechipmustnothavelostpowersincelasttime).‚Wecan'tI*‚tellforsurewhetherthechiplostpower,eventhoughthere'sabitinJ*‚thechipthatsaysso,becausethebughasalreadyreadtheinformation,. NN*‚makingitunavailabletous.* ‰BSR.L…DATEGOŽConverttoordinal!‰MOVE.L„D0,DATEGivedatetoexec ŠBRA.S‚GO_TIMER *H*‚Ifwecomehere,oneofthefieldsreadfromtheclockchipiswhacko.*‚Setsystemtimeanddayto0.*1RANGE_ERRMOVE.LTIME_LEFT,NSE†Timeofday<--0.ŠCLR.L‚MIDNIGHTŠMOVE.L#0,DATEŒDate<--0. **ˆNowstarttimerticking*KGO_TIMERMOVEƒTIMINTVA(PC),TIMINTV‚SavetimerinterruptintervalinSYSPAR.4‰MOVE.B#$A,REGA(A1)ˆSELECTPERIODICACTIVATIONRATE0‰MOVE.BREGC(A1),D0‰RESETANYPENDINGINTERRUPTS&‰MOVE.B#$46,REGB(A1)‡ENABLETHETIMER.‰ADD.L‚#6,A7REMOVE'BE'ANDBUSERRORADDRESS‰RTS˜BACKTOINIT*DAYNUMBERWHEREDAY1=JAN11980***ˆCALL *’BSR‡DATEGO*¦BINARYGREGORIAN-YYYYMMDD*§TO*¦BINARYORDINALƒ-DAYNUMBER*ˆINPUT'*’D0=DATETOBECONVERTED--YYYYMMDD**ˆOUTPUT#*’D0=CONVERTEDDATE‡--DAYNUMBER*O******************************************************************************* ‰SECTIONƒ8**ˆNON-LEAPDAYSBEFORETABLE¥*Ç=DATEDBNLDC.W0,31,59,90,120,151,181,212,243,273,304,334,365Œ*Ç*ˆLEAPDAYSBEFORETABLE©*ÇCTRL1…SET„%00<<5+CTRL1‡Cursorselection(weleavethisalone).CTRL1…SET„0<<7+CTRL1‰Reserved.  0************************************************,*ƒValuetoputinVMEC1controlregister2ƒ*0************************************************ 0CTRL2…SET„0<<0MaskforMMUinterrupt(disable).;CTRL2…SET„0<<1+CTRL2‰Maskfor'transmitterempty'interrupt$*§fromthe2661connectingustothe*§keyboard(disable).>CTRL2…SET„0<<2+CTRL2‰Maskfor'busclear'interrupt(disable).CTRL5…SE/ T„1<<4+CTRL5‰Maskforlocalresourcetimeout(enable).6CTRL5…SET„1<<5+CTRL5‰MaskforVMEbustimeout(enable).;CTRL5…SET„0<<6+CTRL5‰Addressmodifieralteration(disable).=CTRL5…SET„1<<7+CTRL5‰Boardfailcontrol(we'reOK).‚Whenthis'*§bitis0,SYSFAIL*isassertedonthe *§VMEbus.  0************************************************,*ƒValuetoputinVMEC1controlregister6ƒ*0************************************************ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>•NOTICEš<<<<<<<*‚>>>>>>>µ<<<<<<<>*‚>>>>>>>…WhenincorporatinganydriversduringSYSGEN„<<<<<<<?*‚>>>>>>>…thatrequirememoryallocatedforthemasperƒ<<<<<<<?*‚>>>>>>>…thedriverpackageinstructions-thisistheƒ<<<<<<<,*‚>>>>>>>…spotthefile(s)gointo!!–<<<<<<<*‚>>>>>>>µ<<<<<<<=*‚>>>>>>>…Thisisalsothespotforcodeforadriver…<<<<<<<>*‚>>>>>>>…that‚requiresothertypesofinitialization,ƒ<<<<<<<0*‚>>>>>>>…such‚asclearinganinterrupt.‘<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>‘MERGEITHERE—<<<<<<<*<*ˆWhenyouwritethecodethatistobemergedhere,wrapit*ˆaroundwiththefollowing:*:*ˆAtthebeginning,withDRVRxOUTreferringtoyourunique*ˆlabel,putthiscode:*'*‹PEA„DRVRxOUT(PC)„IFBUSERROROCCURS,*¢RETURNORGOONTONEXT*¢DRIVER'SINITIALIZATION**‹MOVE.W#'BE',-(A7)…SAVE'BUSERROR'FLAG*9*ˆTheninsertthecodetodowhatyouneedtodoforthis*ˆparticulardriver.**ˆAttheend,putthis:***‹LEA„6(A7),A7ˆREMOVEBUSERRORFROMSTACK*DRVRxOUTƒEQU„**=*ˆInthisway,ifthecodeforonedrivercausesabuserror,.*ˆthecodeforotherdriverswillbeexecuted.*E*‚>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<G***********************************************************************G*********************************************************************** ‰ENDNNN0 NN**ˆVMES10.IFDRVR.CI*,* Conditional file for VMES10 device driversO*------------------------------------------------------------------------------K* This file uses flags setup in the VMES10.CNFGDRVR.CI and VMES10.SYSTEM.CI0* files to conditionally include device drivers.*J* The user should not have to modify this file to include/exclude drivers.*D*„******************************************************************?*„**‚NOTICE:‚Thefollowingconditionalsareorderdependent.„**3*„**‹Donotchangetheorder!‚Localdrivers1st.‡**9*„**‹Theorderdeterminesdevicenumber(HD00,PR,etc)‚***„**‹formostitems.¤**D*„******************************************************************** IFNEˆ\NVME316Dƒ*‚TheVME316hasnodriver.‚IthasaninitializationmodulethatisJƒ*‚mergedintoSYSINIT.RO.‚TheincludefilebelowdefinestheI/Ochannel.ƒ*ƒINCLUDE…&.M316DEF.CIENDC* IFNEˆ\NORWINƒINCLUDE…&.RWINDRV.CIENDC* IFNEˆ\NVME320ƒINCLUDE…&.M320DRV.CIENDC* IFNEˆ\NVME319ƒINCLUDE…&.M319DRV.CIENDC* IFNEˆ\NVME360ƒINCLUDE…&.M360DRV.CIENDC* IFNEˆ\NOLTERMƒINCLUDE…DRVS10.CIENDC* IFNEˆ\NVME400ƒINCLUDE…&.MPSC400.CIENDC* IFNEˆ\NVME410ƒINCLUDE…&.PIA410.CIENDC* IFNEˆ\NVME050ƒINCLUDE…&.M050DRV.CIENDC* IFNEˆ\NVME300ƒINCLUDE…&.M300DRV.CIENDC* IFNEˆ\NVME435ƒINCLUDE…&.M435DRV.CIENDC* IFNEˆ\NVME600ƒINCLUDE…&.M600DRV.CIENDC* IFNEˆ\NVME605ƒINCLUDE…&.M605DRV.CIENDC*IFNEˆ\NVME610+\NVME620ƒINCLUDE…&.M610DRV.CIENDC* IFNEˆ\NVME615ƒINCLUDE…&.M615DRV.CIENDC* IFNEˆ\NVME625ƒINCLUDE…&.M625DRV.CIENDC* IFNEˆ\NRADƒINCLUDE…&.RADDRV.CIENDC* IFNEˆ\NRIOƒINCLUDE…&.RIODRV.CIENDCNú\**ˆVMES10.SYSTEM.CI*L****************************************************************************@*‚Thisfilecontainsallboard/systemdependenciesforVME/10.Œ*&*‚Itiscalledfrom"&.VERSADOS.CD".¦**Ê*E*‚Theusershouldnothavetomodifythisfileexceptunderextreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ONBOARDRAMADDRESSES*>*†VMEbusdriversrequirethefollowingtargetsystemdependentB*†variablestobedefinedwhenthemacrofileDUALPORT.MCisused:<*†NotethattheONBD$HIparametermayvaryontheVME110and<*†andVME101systemsdependingonthesizeandnumberofRAM<*†chipsusedontheprocessorcard.‚Thevaluesshownarethe?*†minimumrequirements.Modifythatparametertomatchyourown*†systemifdifferent.**;ONBD$LOƒ=$0‹Low‚valueforon-boardram(asseenbydriver)@ONBD$HIƒ=$5FFFF‡Highvalueforon-boardram(asseenbydriver)CRAM$SQ„=$D00000†Differencebetweenon-boardramaddressasseenby*˜driveranddevice.JOFFBD$LO‚=\ONBD$LO+\RAM$SQLow‚valueforon-boardram(asseenbydevice)KOFFBD$HI‚=\ONBD$HI+\RAM$SQHighvalueforon-boardram(asseenbydevice)0  FMSG‰******************************************************************MSG‰**ˆAddressesoftimer,etc.FMSG‰****************************************************************** !TIMER…=$F1A081†Addressoftimer.2CLOCKFRQ‚=0ŒNumberofclocktickspermillisecond"PANEL…=$0‹Addressoffrontpanel.5TRCFLAGƒ=0ŒTraceflag.‚Zeroimpliesdon'ttrace.‚The/*˜settingofbitsintheTRCFLAGparameterwill1*˜controlwhicheventscauseanentrytobebuilt*˜inthetracetable.*˜Bit#inTRCFLAG†Event *›15‘TRAP#1*›14‘I/Ointerruptnotclaimed*°byusertask.*›13‘Timerinterrupt.*›12‘Usertrap(2-15)*›11‘Exception *›10‘Dispatch*œ9‘I/Ointerruptclaimedby *°usertask*œ8‘ReturnfromLOADMMU*œ7‘Simulatedinterrupt6 20)*œ6‘SYSFAILinterrupt.* ?SYSFAILƒ=0ŒDetermineswhetherornottheoperatingsystemwill5*˜beinterruptedwhenSYSFAILisassertedonthebus.2*˜SomeintelligentboardswillassertSYSFAILwhen0*˜theyexperienceafailureofsomekind.‚Ifyou5*˜havesuchboardsinthesystem,ANDTHEDRIVERSFOR3*˜THESEBOARDSHAVESYSFAILHANDLERS,thenyouwill2*˜probablywantSYSFAILinterruptsenabled.‚Ifthe4*˜appropriateSYSFAILhandlersarenotwritten,then5*˜takingaSYSFAILinterruptwillhangupthesystem,0*˜soyouwouldwantSYSFAILinterruptsdisabled.!*š0=disableSYSFAILinterrupts. *š1=‚enableSYSFAILinterrupts. FMSG‰******************************************************************.MSG‰**ƒLocalterminal/printerdeviceaddresses#MSG‰**ƒShortI/Ospacebaseaddress&MSG‰**ƒShortI/OspaceaddressoffsetsFMSG‰****************************************************************** %KBDOVRDƒ=0ŒKeyboardoverrideoption:)*˜0=keyswitchonfrontpanelisenabled.*˜1=keyswitchoverride-ifkeyisinlocked)*œpositionthekeyboardisstillenabled.0*˜NOTE:‚ThisparameterisonlyvalidwithVME/10!*Ÿunitswiththepanelkeyswitch. 1SIOBASEƒ=$FF0000†BaseaddressofShortI/Ospace****************************************************************‰Vectornumbers£**>***************************************************************-IOCVEC1ƒ=$41ŠI/Ochannelinterrupt1vector.-IOCVEC2ƒ=$43ŠI/Ochannelinterrupt2vector.-IOCVEC3ƒ=$44ŠI/Ochannelinterrupt3vector.-IOCVEC4ƒ=$45ŠI/Ochannelinterrupt4vector.**IOCLVL1ƒ=2ŒI/Ochannelinterrupt1level.*IOCLVL2ƒ=4ŒI/Ochannelinterrupt2level.*IOCLVL3ƒ=5ŒI/Ochannelinterrupt3level.*IOCLVL4ƒ=6ŒI/Ochannelinterrupt4level. FMSG‰******************************************************************3MSG‰**…DescriptiveinfoaboutthisoperatingsystemFMSG‰****************************************************************** 6TIMSLICƒ=2ŒNumberoftimerinterruptspertimeslice.=TIMINTVƒ=16‹Numberofmillisecondsbetweentimerinterrupts.7*˜(NotusedonVME/10.‚Itisincludedfordocumentation/*˜only.‚TheactualvalueusedfortheVME/10is*˜15.625msec.)?ROMEADDR‚=$0‹ROMendaddress--definedbyuserforaROMmable,*œsystem.‚Setto$0ifnotaROMablesystem.-*œTheROMstartad1 dress(ROMSADDR)isdefined3*œinthe.RMS.CIfileandhasavalueequal!*œtotheinitialprogramcounter.*@*ˆThefollowingparametersareusedtodefinememorypartitions.A*ˆIfonlypartition0exists,thenMEMEND2shouldbesettozero.*@NOPARTSƒ=2ŒNumberofmemorypartitions(neededby&.INITMEM.AG)@MEMEND1ƒ=$2FF00‡Theendƒofpartition0(assumedtostartat0).*MEMEND2ƒ=$2FF00‡Thestartofpartition1.)MEMEND3ƒ=$280000†Theendƒofpartition1.;WHERLOAD‚=$0‹Memoryaddresswherebootfilewillbeloaded6*˜Ifnonzero,VERSAdoswillbemovedatinitialization*˜time.6CACHEF„=0ŒNotusedbyVMES10(neededby&.INITDAT.AG)3ASMTYPEƒ=0ŒTypeofassemblertouseforINITIO1.AG *œ0-UseASM*œ1-UseASM020 EMSG‰*****************************************************************)MSG‰**‚Parametersabouttablesizes,etc.EMSG‰***************************************************************** 'PAGESIZE‚=\PGSIZE†From.RMS.CI*ASN‡=127Š#ofaddressspaces EMSG‰***************************************************************** MSG‰**½**#MSG‰**ŒADDRESSANDDATABUSSIZE˜**=MSG‰**…---------------------------------------------------…**'MSG‰**ŒA$SIZE=‚WIDTHOFADDRESSBUS“** MSG‰**½**)MSG‰**Œ32…=‚32BITEXTENDEDADDRESSING**)MSG‰**Œ24…=‚24BITSTANDARDADDRESSING** MSG‰**½**$MSG‰**ŒD$SIZE=‚WIDTHOFDATABUS–** MSG‰**½**#MSG‰**Œ32…=‚32BITLONGWORDDATA“**MSG‰**Œ16…=‚16BITWORDDATA—** MSG‰**½**EMSG‰***************************************************************** D$SIZE„=16 A$SIZE„=24 GMSG‰*******************************************************************>MSG‰*ƒCopythesysteminitializerintoM68XXX.INIT.RObasedon:MSG‰*ƒthetypeofmemoryallocationdefinedatRMSGENtimeMSG‰*ƒin.RMS.CD.GMSG‰******************************************************************* IFEQˆ\MEMALOC'ƒ=COPY‡BESTFIT.INIT.RO,M68XXX.INIT.RO;YENDC IFNEˆ\MEMALOC%ƒ=COPY‡BUDDY.INIT.RO,M68XXX.INIT.RO;YENDC GMSG‰*******************************************************************=MSG‰*ƒCopyC8OC.SYSPAR.ROinto&.SYSPAR.ROtomakeitgenericAMSG‰*ƒfor.LGfilesandpossibleforsysgeningmorethan1systemMSG‰*ƒperaccount#GMSG‰******************************************************************* "=COPY‡CAOE.SYSPAR.RO,&.SYSPAR.RO;YNN**ˆVMES10.CNFGDRVR.CI*'* Configuration file for device driversO*------------------------------------------------------------------------------D* This file sets up the flags used by the "VMES10.IFDRVR.CI" file to'* conditionally include device drivers.*K* The user should only have to modify this file to include/exclude drivers.E* If you add more boards/devices, you may have to increase the sysgen>* command T option for more symbols in the "&.SYSGEN.CF" file.*K* To modify specific items of a driver, edit the corresponding driver file,J* "&.xxxxDRV.CI" except as noted where one driver handles multiple boards.O*------------------------------------------------------------------------------ N******************************************************************************L*---‚BOARD/SYSTEMDEPENDENCIESareincludedfromthe&.VERSADOS.CDfile.---;*VMES10.SYSTEM.CIƒaddprocessorboard/systemdependencies,(*˜includinglocalterminalsandprinters6*&.CNFGTASK.CI†addO/Staskcon1 figurationforROM/RAMM***************************************************************************** O*------------------------------------------------------------------------------@NOLTERMƒ=1Œ#ofterminalsonVMES10serialports(TERM);max=1 O*------------------------------------------------------------------------------2NORWIN„=1Œ#ofRWIN1„Winchestercontrollerboards* IFGTˆ\NORWIN+ƒCONTWIN1‚="0"Š1stRWIN1controllernumber8ƒNHRWIN$1‚=2Œ#ofhardƒdiskdriveson1stRWIN1;max=2:ƒNFRWIN$1‚=1Œ#offloppydiskdriveson1stRWIN1;max=2BƒRWIN0$1ƒ="'H5WIN40'"‚Typeof1sthardƒdiskon1stRWIN1,drive0BƒRWIN1$1ƒ="'H5WIN40'"‚Typeof2ndhardƒdiskon1stRWIN1,drive1DƒRWIN2$1ƒ="'F5DDDSI'"‚Typeof1stfloppydiskon1stRWIN1,drive2DƒRWIN3$1ƒ="'F5DDDSI'"‚Typeof2ndfloppydiskon1stRWIN1,drive3 +ƒCONTWIN2‚="1"Š2ndRWIN1controllernumber8ƒNHRWIN$2‚=0Œ#ofhardƒdiskdriveson2ndRWIN1;max=2:ƒNFRWIN$2‚=0Œ#offloppydiskdriveson2ndRWIN1;max=2$)- 5=#E M!U3]BƒRWIN0$2ƒ="'H5WIN40'"‚Typeof1sthardƒdiskon2ndRWIN1,drive0BƒRWIN1$2ƒ="'H5WIN40'"‚Typeof2ndhardƒdiskon2ndRWIN1,drive1DƒRWIN2$2ƒ="'F5DDDSI'"‚Typeof1stfloppydiskon2ndRWIN1,drive2DƒRWIN3$2ƒ="'F5DDDSI'"‚Typeof2ndfloppydiskon2ndRWIN1,drive3ƒ*Gƒ*…NOTE:‚Youcannotmix5-1/4"and8"floppies.‚Pickoneortheother.ƒ*ENDC O*------------------------------------------------------------------------------)NVME050ƒ=0Œ#ofVME050ƒSystemController IFGTˆ\NVME0507ƒNT050$1ƒ=0Œ#ofterminalsontheVME050board;max=26ƒNP050$1ƒ=0Œ#ofprinters‚ontheVME050board;max=1ENDC O*------------------------------------------------------------------------------8NVME300ƒ=0Œ#ofMVME300‚IEEE488GPIBcontrollerboards O*------------------------------------------------------------------------------ 4…=/RD=1=/ENDIF =/IF RD=0 …=/IFC\1Š=/RD=1…=/ENDIF …=/IFC\2Š=/RD=2…=/ENDIF …=/IFC\3Š=/RD=3…=/ENDIF …=/IFC\4Š=ARG\1,\2,\3,N…=/ENDIF=/ENDIFJ=/*‚SetArg5sothisfilecan'tbererundirectlyw/osettingproperargs!=ARG \1,\2,\3,\4,ARGS=OPT -N =/IF RD <> 0Mƒ=/*INVOCATIONERROR!Insufficient,null,and/orinvalidargumentspecified!ƒ=/R?ƒ=END=/ENDIF *=/* ==== Start driver related file copyingO=/*----------------------------------------------------------------------------)=/* Copy all VM30 (MCCM) files for sysgen=/@„\1:9998.COPYGEN.VM30DRV.CFO=/*----------------------------------------------------------------------------(=/* Copy all IPC driver files for sysgen=/@„\1:9998.COPYGEN.IPCDRV.CFO=/*---4 -------------------------------------------------------------------------,=/* Copy all driver library files for sysgen=/@„\1:9998.COPYGEN.DRVLIB.CFO=/*----------------------------------------------------------------------------(=/* Copy all SIO driver files for sysgen=/@„\1:9998.COPYGEN.SIODRV.CFO=/*----------------------------------------------------------------------------"=/* Copy all VM22 files for sysgen=/@„\1:9998.COPYGEN.VM22DRV.CFrD{(ƒO=/*----------------------------------------------------------------------------*=/* Copy all disk related files for sysgen=/@„\1:9998.COPYGEN.DSKPARAM.CFO=/*----------------------------------------------------------------------------=/*=/**=/* ==== Start system related file copyingO=/*----------------------------------------------------------------------------+=/*‚CopyallVM04specificfilesforsysgen=/@„\1:9998.COPYGEN.VM04.CFO=/*----------------------------------------------------------------------------!=/* Copy all EET files for sysgen=/@„\1:9998.COPYGEN.EET.CFO=/*----------------------------------------------------------------------------'=/* Copy all FHS & IOS files for sysgen=/@„\1:9998.COPYGEN.FHSIOS.CFO=/*----------------------------------------------------------------------------!=/* Copy all FMS files for sysgen=/@„\1:9998.COPYGEN.FMS.CFO=/*----------------------------------------------------------------------------$=/* Copy all LOADER files for sysgen=/@„\1:9998.COPYGEN.LOADER.CFO=/*----------------------------------------------------------------------------<=/* Copy all BEGIN/END files for sysgen (OSLIST and VERSAPT)=/@„\1:9998.COPYGEN.BEGINEND.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOI files for sysgen=/@„\1:9998.COPYGEN.IOI.CFO=/*----------------------------------------------------------------------------'=/* Copy all CNFG TASK files for sysgen=/@„\1:9998.COPYGEN.CNFGTASK.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOC files for sysgen=/@„\1:9998.COPYGEN.IOC.CFO=/*----------------------------------------------------------------------------!=/* Copy all .EQ files for sysgen=/@„\1:9998.COPYGEN.EQ.CFO=/*----------------------------------------------------------------------------2=/*‚Copyalltherestoftherootfilesforsysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*0=/*†VM04.COPYSGEN.CF‚completed.‰Haveaniceday!=/*N=/*‚No"NOARG"and"=END"becauseindependentdriverreleaseitemsmayfollow!NNNN4 NNN**‚Includedfiles:*‰PAGE*‰&.UTILITY.MC*‰Z8036.Z8036.EQ*‰VM04.CTRLSTAT.EQ*‰M68020.CACR.EQ***ˆIfthereistobeanMMUinthissystem,*$*ˆ&.STR.EQ‡TRAP0ANDTRAP1EQUATES *ˆ&.TCB.EQ *ˆ&.KILL.MC*ˆ&.KILLEXEC.EQ* *ˆ&.MMUTYP.EQ**ˆForeithertypeofMMU,'*ˆ&.MMBPMMU.EQˆGeneralMMB/PMMUequates!*ˆ&.MMBPMMU.MCˆMacroslikeXPMOVE**ˆ&.TST.EQ‘Tasksegmenttable*°SetsADDRTYPflag*ˆ&.MAP.EQ‘Memorymapequates‰PAGE5INITIO„IDNTƒ45,0RMS68KI/OinitializerfortheVM04.O*******************************************************************************O*******************************************************************************O**********************************************************************************É***E***…ROUTINE:‚INITIO--RMS68KI/OINITIALIZERFORTHEVM04BOARD.†******É***J***…ENVIRONMENT:‚PartoftheRMS68KexecfortheMotorola68000family.***(***‡Copyright1983byMotorola,Inc.¢******É***D***…FUNCTION:‚RoutinesfromthismodulearecalledbytheRMS68K‡***E***‡routineINITduringsysteminitialization.‚Allboard-specific„***.***‡initializationisdoneinthismodule.œ******É***G***…NOTES:‚ThismoduleisSUBSed,ASMed,andLINKedatSYSGENtime.„***?***‡Allmoduleswillrunatlevel7andinsupervisormode.‹******É******"***†NOTEonT0ADDSEGandT0ADDMMIO***E***‚ThisTRAP#0callisdifferentfromtheothers--itonlyreturns8***‚toPCwithconditioncodessetuptoindicateerror.***‚Why,youask?D***‚BecauseitisthesameroutineasADD_SEG_TO_MMUwhichiscalledH***‚byGTSEGandothersandIdidn'twanttochangethereturnforthem.E***‚---OnlytheoperatingsystemshouldusetheseparticularTRAP#0 ***†calls.O*******************************************************************************O*******************************************************************************O*^*****************************************************************************ŠNOLISTŠINCLUDE&.UTILITY.MC‹:”JœJ¤X¬F´Y¼`Ä6Ì0ÔGÜBäFì=ô"ŠINCLUDEZ8036.Z8036.EQŠINCLUDEVM04.CTRLSTAT.EQŠINCLUDEM68020.CACR.EQ ‰IFNE†\MMU+‰INCLUDE‚&.STR.EQ‡TRAP0ANDTRAP1EQUATES‰INCLUDE‚&.TCB.EQ ‰INCLUDEƒ&.MMUTYP.EQ ‰IFEQ†\MMU-MMB851MMUTYPƒEQU‡MMB851‰ENDC‰IFEQ†\MMU-M68851MMUTYPƒEQU‡M68851‰ENDC(‰INCLUDEƒ&.MMBPMMU.MCƒMacroslikeXPMOVE.‰INCLUDEƒ&.MMBPMMU.EQƒGeneralMMB/PMMUequates‰INCLUDEƒ&.TST.EQ$‰INCLUDEƒ&.MAP.EQ‘Memorymapequates‰INCLUDEƒ&.KILL.MC‰INCLUDEƒ&.KILLEXEC.EQ‰ENDC‰LIST‰PAGE* *‚XDEF's.*,ŠXDEFƒINITMMUŒRoutinetoinitializetheMMU.,ŠXDEFƒTIMERSTŒRoutinetostartupthetimer.3ŠXDEFƒINITIORoutinetosetupalltheotherboard-*§specifichardware. * *‚XREF's.* *…Routines:*…ParametersfromINITDAT:-ŠXREFƒTIMSLICŒ#oftimerticspertimeslice.(ŠXREFƒTIMERAAddroftimerchip(Z8036).4ŠXREFƒTIMINTVA‹#ofmillisecondsbetweentimertics.4ŠXREFƒCLOCKFRQ‹Frequencyofclock(tosetuptimer).+‰XREF†PAGESIZEŒINITDAT--sysgenedpagesize4‰XREF†MEMTABLŽINITDA5 T--Startofmemorydescriptors*…SYSPARvariables:6ŠXREF.SMMUHEREŒAddrofMMU;0ifwe'renotusingone.ŠXREF.SDATEDate.0ŠXREF.STIMESLIC‹#oftimerticspertimeslice.7ŠXREF.STIMINTVŒTimeintervalbetweentimerinterrupts.+ŠXREF.SPTMADDRŒAddroftimerchip(Z8036).,‰XREF†FC_TABLEŒSYSPAR--functioncodetable0‰XREF†SUPERMMUŒSYSPAR--supervisorrootpointer0‰XREF†TDEFTYPSYSPAR--TypeofmemoryforTCB's ‰XREF†TCBHDSYSPAR--TCBheader *„Others:.ŠXREFƒCRASHSAV‹PlacetoSAVEinfoifweCRASH.  ŠLIST ‰IFNE†\MMU‰PAGEO**V***************************************************************************** *ˆINITMMU*@*ˆIfwearesupposedtohaveanMMB851,verifyitsexistenceand*ˆinitializeitby:*<*ˆ1.Makeasupervisortreethatmapslogical=physicaland?*‹installpointertothetreeinsupervisordataandsupervisor5*‹programslotsinthefunctioncodetableinSYSPAR.*:*ˆ2.Makeatranslationtreeforeachtaskthatisalready*‹inthesystemviasysgen.*=*ˆ3.‚WritetothetranslationcontrolregisteroftheMMB851.*A*ˆIfwearesupposedtohaveanMC68851,verifyitsexistenceand*ˆinitializeitby:*F*ˆ1.‚Writeapagedescriptorintothesupervisorrootpointerregister*ŒoftheMC68851.*:*ˆ2.Makeatranslationtreeforeachtaskthatisalready*‹inthesystemviasysgen.*>*ˆ3.‚WritetothetranslationcontrolregisteroftheMC68851.*,*ˆEntry:„Supervisormode,interruptlevel7.*!*ˆRegisterusage:…01234567*™D‚S‰S *™A‚SS‡S**™P=entryparameter*™R=returnedparameter*™S=savedandrestored*™*=destroyed*"*ˆExit:‚Goodreturn-RTS‚toINIT.*Badreturn‚-BSRKILLER***,*ˆRevisionhistory(addnewchangestotop).*ˆDate†Author‰ChangesF*ˆ--------‚-------------‚---------------------------------------------9*ˆ01/28/86‚BAWŒChangedthewaythesupertreeisbuilt--$*¡buildasubtreeforeachpartition.*ˆ01/28/86‚BAWŒDeleted24bitaddressingstuff;*ˆ12/10/85‚BAWŒChangedFIND_MEM_ENDtofindhighestaddress%*¡regardlessofRAMorROMpartition.?*ˆ10/31/85‚CBS‰ChangedcallstoKILLERtouseKILL.EXECT0macro/*ˆ10/30/85‚BAWŒFixedFIX_1_TCBfor32bitstuff *ˆ06/25/85‚BAWŒOriginalwriting.*O*^******************************************************************************‰PAGE ‰SECTIONƒ8 ‰OPT‡P=68020‰OPT‡BRS‰OPT‡MEX INITMMU: ‰SAVE†D0/D4-D5/D7/A0-A1/A5‰IFEQ†\MMU-MMB851*****************************‚THISISFORTHEMMB851‚***************************** *@*‚SetupDFCwith'7'forCPUspacesothatwhenwedoMOVESthe?*‚writewillalwaysbetoCPUspace,wheretheMMB851isfound.;*‚AlsosetupSFCwith'7'sowecanreadMMB851registers.* ‰MOVE.L„#7,D0‰MOVEC.LƒD0,DFC‰MOVEC.LƒD0,SFC 3‰MOVE.L„#$10000,MMUHERE…AddressofMMBinCPUspace*>*‚Makeatreeforthesupervisorthatmapslogicaltophysical**/*‚Allocatememoryforafaketasksegmenttable?*‚Weneedenough256bytepagestoholdonetasksegmenttable.**@FAKE_TSTEQU‡((TSTLEN+VPGMASK)&NOTVPGMASK)>>8ˆPagesforfakeTST ‰CLR.L…D07‰MOVE.B„TDEFTYP,D0ŠGetsametypeofmemoryasforTCB's‰SWAP†D0’Puttypeinupperword6‰MOVE.W„#FAKE_TST,D0ˆPutnumberofpagesinlowerword)‰MOVE.L„D0,A0A0<--type,numberofpages‰MOVE.L„#T0PAGAL,D0‰TRAP†#0‰BRA.S…INIT1_OK2‰KILL.EXECT0ƒINITIO1AG,PA_FTST_FAILED„CrashsystemINIT1_OK ‰MOVE.L„A0,A5**‚Clearoutthepageofmemory* ‰MOVE.W„#63,D1INIT2„CLR.L…(A0)+‰DBRA†D1,INIT2 *&*‚GetindexintoMMUinfoareaintoD5*‰MOVE.W„#TSTMMU,D5*'*‚GetindexintoattributeareaintoD7*‰MOVE.W„#TSTATTR,D7*%*‚Buildasubtreeforeachpartition.*‰BSR.L…FIX_PARTITIONS‰BSRNE.LƒGOTOKIL3*B*‚ThepointertothesupervisortableshouldnowbeintheTSTPMMU*‚slotoftheTST.C*‚MovethetwolongwordsstartingatTSTPMMU(A5)intotheSUPERMMU*‚slotinSYSPAR.*‰MOVE.L„TSTPMMU(A5),SUPERMMU ‰M5 OVE.L„TSTPMMU+4(A5),SUPERMMU+4  B*vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv*;*‚Now,setupatreeformemory-mappedI/Oupatthetopof*‚thememorymap.*‰BSR.L…FIX_MMIO‰BSRNE…GOTOKILR**‚DeallocatethefakeTSTpage.* ‰MOVE.L„A5,A0‰MOVE.L„#FAKE_TST,D1‰MOVE.L„#T0PGFR,D0‰TRAP†#0‰BRA.L…INIT3_OK%‰KILL.EXECT0ƒINITIO1AG,PF_FTST_FAILEDINIT3_OK‰ENDC‰IFEQ†\MMU-M68851*****************************‚THISISFORTHEM68851‚*****************************  3‰MOVE.L„#$10000,MMUHERE…AddressofMMBinCPUspace *-*‚MovesomethingintostatuspartofSUPERMMU*=‰MOVE.L„#LDPDES,SUPERMMU+4„Putthecodeforapagedescriptor%*¦intotheaddressfieldofSUPERMMU.** ‰ENDC‰PAGE.**********************************************,*‚HEREFOREITHERTHEMMB851ORTHEM68851‚*.********************************************** *>*‚Now,setupatranslationtreeforeachTCBthathasalready*‚beencreatedatsysgentime.*‰BSR.L…FIX_TCBS‰BSRNE…GOTOKIL2*)*‚Setuptranslationforsupervisorspace*‰XPMOVE„SUPERMMU,SRP  *+*‚WritetotheTranslationControlregister*‚Addresstranslationenabled$*‚FunctioncodetablelookupenabledI*‚pagesize,initialskip,andTIxfieldsassetupinMMBPMMU.XEQUATES.EQ*1TCCNTLƒSET‡1<meansOK* couldn'tbuildtree**,*ˆRevisionhistory(addnewchangestotop).*ˆDate†Author‰ChangesF*ˆ--------‚-------------‚--------------------------------------------- *ˆ01/28/86‚BAWŒOriginalwriting.*O*^******************************************************************************1MEMSIZE‚EQU‡12’SizeofaMEMTABLentryinINITDATFIX_PARTITIONS: ‰SAVE†D0/D1/D4/A0**‚Setupfortrapcall:* ‰CLR.W…D4 7‰LEA‡MEMTABL(PC),A0‹A0<---addressofmemorymaptable*¦fromINITDAT‰REPEAT 3‰MOVE.L„#T0ADDSEG,D0ˆMustloadD0eachtimebecause*¦TRAP#0handlerdestroysit.5‰MOVE.L„MAPSTRA(A0),D1†Beginningaddressofpartition ‰CLR.B…D12‰MOVE.L„D1,TSTLB(A5,D5)…intologicalstartaddress 2‰MOVE.L„MAPENDA(A0),D1†Endingaddressofpartition(‰CLR.B…D1’Useaddresswithlowestbyte0‰SUB.L…#$100,D10‰MOVE.L„D1,TSTLE(A5,D5)…intologicalendaddress**‚Dothetrapcall*‰TRAP†#0(‰BEQ.L…ADD_OK„Seenoteinmoduleheader. ‰BRA‡FIX_PERRADD_OK 6ŒLEA„MEMSIZE(A0),A0…Getnextpartition's‚MEMTABLentry 5‰UNTIL.Wƒ(A0)‚‚#$FFFF„EndflagforMEMTABLtable. ‰RESTOREƒD0/D1/D4/A0‰RTS FIX_PERR ‰MOVE.B„#1,D0‰RESTOREƒD0/D1/D4/A0‰RTS‰PAGEO**V*******6 ********************************************************************** *ˆFIX_MMIO*$*ˆBuildatranslationtreeforMMIO.5*ˆMaplogical=physicalfrom$FFF00000to$FFFFFC00.**ˆEntry:„CalledbyINITMMU.*’A5=addressoffakeTST"*’D5.W=offsetintoTSTMMU‚ofTST#*’D7.W=offsetintoTSTATTRofTST*’TSTAATTR(A5,D7)=0*!*ˆRegisterusage:…01234567 *™D‚S‰PƒP *™A‚SS‡P**™P=entryparameter*™R=returnedparameter*™S=savedandrestored*™*=destroyed**ˆExit:‚RTS‚toINITMMU&*’CC=translationtreesetupok*’CC=ranoutofmemory**,*ˆRevisionhistory(addnewchangestotop).*ˆDate†Author‰ChangesF*ˆ--------‚-------------‚--------------------------------------------- *ˆ09/19/85‚BAWŒOriginalwriting.*O*^***************************************************************************** FIX_MMIO: ‰SAVE„D0/A0-A1   ‰MOVE.L„#$FFF00000,TSTLB(A5,D5)‰MOVE.L„#$FFFFFC00,TSTLE(A5,D5)‰MOVE.L„#T0ADDSEG,D0 ‰TRAP†#0 !‰BEQ.SƒFIXM_OKSeenoteinheader‰BRA.SƒFIXM_ERR  FIXM_OK‰SETCCEQ‰RESTORED0/A0-A1‰RTSFIXM_ERR‰SETCCNE‰RESTOREƒD0/A0-A1‰RTS‰PAGEO**V***************************************************************************** *ˆFIX_TCBS*B*ˆBuildatranslationtreeforeachTSTcurrentlyontheTCBlist.**ˆEntry:„CalledbyINITMMU.*!*ˆRegisterusage:…01234567*™D‚S*™A„S**™P=entryparameter*™R=returnedparameter*™S=savedandrestored*™*=destroyed**ˆExit:‚RTS‚toINITMMU&*’CC=translationtreesetupok*’CC=ranoutofmemory**,*ˆRevisionhistory(addnewchangestotop).*ˆDate†Author‰ChangesF*ˆ--------‚-------------‚--------------------------------------------- *ˆ09/19/85‚BAWŒOriginalwriting.*O*^*****************************************************************************‰PAGE FIX_TCBS: ‰SAVE†D0/A1‰MOVE.L„TCBHD,D0‰WHILEƒ‚DO ‘MOVE.LD0,A1‘BSR„FIX_1_TCB ‘BNE„FIX_ERR ‘MOVE.LƒTCBALL(A1),D0 ‰ENDW 6FIX_ERR‚EQU‚*‰Notethatconditioncodesgetsetabove.‰RESTORE‚D0/A1‰RTS‰PAGEO**V***************************************************************************** *ˆFIX_1_TCB*7*ˆBuildatranslationtreeforthistask,allsegments.**ˆEntry:„CalledbyFIX_TCBS*’A1=addressofTCB*!*ˆRegisterusage:…01234567 *™D‚S‰SƒS*™A„P‡S**™P=entryparameter*™R=returnedparameter*™S=savedandrestored*™*=destroyed**ˆExit:‚RTS‚toINITMMU&*’CC=translationtreesetupok*’CC=ranoutofmemory**,*ˆRevisionhistory(addnewchangestotop).*ˆDate†Author‰ChangesF*ˆ--------‚-------------‚---------------------------------------------/*ˆ10/30/85‚BAWŒFixedFIX_1_TCBfor32bitstuff *ˆ09/19/85‚BAWŒOriginalwriting.*O*^***************************************************************************** FIX_1_TCB: ‰SAVE„D0/D5/D7/A5 8‰MOVE.L‚TCBTST(A1),A5‰A5<---tasksegmenttableaddress‰MOVE.W‚TCBATTR(A1),D0'‰AND.Wƒ#1<‚THENRealtimetask... 0‘MOVE.L‚SUPERMMU,TSTPMMU(A5)‚Usesupervisortree ‘MOVE.L‚SUPERMMU+4,TSTPMMU+4(A5) 6‘MOVE.W‚#0,TSTASN(A5)‰ClearTSTASNtoindicaterealtm ‰ELSEšNotarealtimetask... .‘ST†TSTASN(A5)ŒSetTSTASNtoindicatenotreal*°time  *..................... ‘CLR.L‚D5‘MOVE.W#TSTMMU,D5‘MOVE.W#TSTATTR,D7‘REPEAT“BTST#SEGAUSED,TSTAATTR(A5,D7) “IF‚‚THEN ˜CLR.WŠD4˜MOVE.L‰#T0ADDSEG,D0˜TRAP#0"˜BEQ.S‚FIX_1_OKŠSeenoteinheader˜BRA.S‚FIX_1_ERR FIX_1_OKEQU‡*“ENDI “ADD.W…#TSTMLEN,D5“ADD.W…#TSTALEN,D7 ‘UNTIL‚D5‚‚#TSTMEND *........ ‰ENDI ‰CMP.BƒD0,D0‰RESTOREƒD0/D5/D7/A5‰RTS FIX_1_ERR ‰MOVE.B‚#1,D0‰RESTOREƒD0/D5/D7/A5‰RTS  ‰ENDC ‰IFEQ†\MMU ‰SECTIONƒ86 NNNNINITMMU:‰RTS‰ENDC ‰OPT‡NOMEXŠPAGE O**********************************************************************************ˆSTARTTIMER„(Z8036TIMER)**N*********************************************************************************ˆCounterModeSpecReg*CSC†SET‡$00‘Initialize/CSC†SET‡1<<7+CSCŒEnableContinuousSingleCycle***C1EN…SET‡$00‘Initializeit C1EN…SET‡1<<2+C1EN‹EnableportA#C1EN…SET‡1<<6+C1EN‹EnableCounter1 C1EN…SET‡1<<7+C1EN‹EnableportB*)*ˆsetupcontrol/statusregforCounter1* C1SR…SET‡$001C1SR…SET‡0<<0+C1SR‹Thisisaread-onlystatusbit*¦showscountinprogress,C1SR…SET‡1<<1+C1SR‹Thisisawrite-onlybit,*¦triggerenabled8C1SR…SET‡1<<2+C1SR‹Count-downsequencetoresumeenabled0C1SR…SET‡0<<3+C1SR‹Readcountercontroldisabled.C1SR…SET‡0<<4+C1SR‹Int.error,aread-onlybitC1SR…SET‡0<<5+C1SR‹Int.pending"*¦1=thetimerrequiresservicing)C1SR…SET‡1<<6+C1SR‹Enabletimerinterrupt-C1SR…SET‡1<<7+C1SR‹Int.underserviceenabled* TIMERST: +ŠSAVEƒD0/A1ŽSaveregisterswe'llblowaway. E‰MOVE.WTIMSLIC(PC),TIMESLIC‚#TIMERINTERRUPTSBEFORETASKINTERRUPTNNN‰LEA„Z8036,A1GETTIMERADDRESS#‰MOVE.LA1,PTMADDRSAVEITFOREXEC!‰BEQ.L‚TIMERBEBRANCHIFNOTIMER)‰PEA„TIMERBE(PC)ŒWHERETOGOONBUSERROR$‰MOVE.W#'BE',-(A7)ŒSETBUSERRFLAG**7‰MOVE.B„#CSC,CT1MO(A1)†Setcontinuousmodeoncounter1*‰NOP›ThisNOPforcestheexecutionunitto$*§waitforthebusinterfaceunitto%*§completeona68020(incaseweget*§abuserror). *H*‚Getthetimer"tick"interval(inmilliseconds)andsaveitinSYSPAR.*8ŠMOVEƒTIMINTVA(PC),D0„D0<--tickintervalfromINITDAT.#ŠMOVEƒD0,TIMINTV‰SaveitinSYSPAR. *L*‚Nowcalculatethenumberofcyclesthetimershouldcountbetween"ticks."&*‚Apparentlywehavea2Mhzinput,so<*„(#ofcycles/tick)‚=‚(2000cycles/msec)*(#ofmsec/tick)*'ŠMULUƒ#2000,D0‹D0<--#ofcycles/tick.>ŠMOVE.BD0,CT1PL(A1)‡Givethechiptheleastsignificantpart.3ŠLSR„#8,D0ŽGivethechipthemost‚significantpart.ŠMOVE.BD0,CT1PM(A1)‡* **ˆNowstarttimerticking*'‰MOVE.B#C1EN,MCCR(A1)ˆENABL7 ECOUNTER1(‰MOVE.B#C1SR,C1CSR(A1)‡ENABLEINTERRUPT.‰ADD.L‚#6,A7‘REMOVE'BE'ANDBUSERRORADDRESS !ŠRESTORED0/A1Restoreregisters.‰RTSšBACKTOINIT***;TIMERBE‚MOVE.L‚#CRASHSAV,PTMADDR‚USEDUMPPOINTERFORTIMER!ŠRESTORED0/A1Restoreregisters.‰RTS˜BACKTOINIT ***‰PAGE ‰XDEF„INITIO ‰SECTIONƒ8.**********************************************,*ƒValuestoputinVM04controlregisters.*.************************************************ˆMasterInterruptControlReg* INTCN„SET‡$00$INTCN„SET‡0<<0+INTCNŠ0=Clearreset*¦1=Softwarereset3INTCN„SET‡1<<1+INTCNŠEnablerightjustifiedaddress1INTCN„SET‡0<<2+INTCNŠTimervectorincludesstatus *¦disabled2INTCN„SET‡0<<3+INTCNŠPortBvectorincludesstatus *¦disabled2INTCN„SET‡0<<4+INTCNŠPortAVectorincludesstatus *¦disabled6INTCN„SET‡1<<5+INTCNŠ1=noint.vectorduringanIACK*¦0=outputtheint.vector6INTCN„SET‡0<<6+INTCNŠ1=disableint.fromlowerchain*¦0=operatenormally,INTCN„SET‡1<<7+INTCNŠEnablemasterinterrupt**‚Controlreg0*-ICNT0„SET…$00VERSAbusint.vectornumberreg*£Thesebitsareenabledduring *£IACKcycles**‚Controlreg1*ICNT1„SET…$00Initializeit'ICNT1„SET…0<<0+ICNT1‰NA(notavailable)ICNT1„SET…0<<1+ICNT1‰NAICNT1„SET…0<<2+ICNT1‰NA2ICNT1„SET…0<<3+ICNT1‰DisableVERSAbussystemreset8*ICNT1„SET…1<<4+ICNT1‰1=VERSAbus32bitdataportsize$*£0=VERSAbus16bitdataportsizeICNT1„SET…0<<5+ICNT1‰NA2ICNT1„SET…1<<6+ICNT1‰EnableRAMbusdiag.interruptICNT1„SET…0<<7+ICNT1‰NA**‚Controlreg2* ICNT2„SET…$00;ICNT2„SET…0<<0+ICNT2‰1=VERSAbusint.statusint.disabled'*£0=VERSAbusint.statusint.enabledICNT2„SET…0<<1+ICNT2‰AckVBIRQ1ICNT2„SET…0<<2+ICNT2‰AckVBIRQ2ICNT2„SET…0<<3+ICNT2‰AckVBIRQ3ICNT2„SET…0<<4+ICNT2‰AckVBIRQ4ICNT2„SET…0<<5+ICNT2‰AckVBIRQ5ICNT2„SET…0<<6+ICNT2‰AckVBIRQ6 ICNT2„SET…1<<7+ICNT2‰maskVBIRQ7**‚Controlreg3* ICNT3„SET…$00;ICNT3„SET…1<<0+ICNT3‰0=putVERSAbusmonitorintestmode.&*§1=VERSAbusmonitorinnormalmode.0ICNT3„SET…0<<1+ICNT3‰InterruptRequestLevelIL0ICNT3„SET…0<<2+ICNT3‰IL1ICNT3„SET…0<<3+ICNT3‰IL2*§IL0-2correspondstoVBIRQx-ICNT3„SET…0<<4+ICNT3‰0=cachetestmodeoff.*§1=cachetestmodeon.;ICNT3„SET…\SYSFAIL<<5+ICNT3‚0=disableSYSFAILinterrupts. *§1=enable‚SYSFAILinterrupts.0ICNT3„SET…1<<6+ICNT3‰0=disableallinterrupts.*§1=enableallinterrupts.6ICNT3„SET…0<<7+ICNT3‰DisallowVERSAbusmonitoroverrun *£interrupt**‚Controlreg4* ICNT4„SET…$00)ICNT4„SET…0<<0+ICNT4‰1=SYSFAILasserted*£0=SYSFAILnegates,ICNT4„SET…0<<1+ICNT4‰1=cachereaddisabled*£0=cachereadenabled-ICNT4„SET…0<<2+ICNT4‰1=cachewritedisabled*£0=cachewriteenabled2ICNT4„SET…0<<3+ICNT4‰1=allcacheentriescleared*£0=cacheisnotcleared4*ICNT4„SET…1<<4+ICNT4‰1=32-bitVERSAbusaddressing *£0=16-bitVERSAbusaddressing0ICNT4„SET…1<<5+ICNT4‰1=enableVERSAbuscaching *£0=disenableVERSAbuscaching1ICNT4„SET…1<<6+ICNT4‰1=VERSAbusmonitorenabled*£0=VERSAbusmonitorcleared1ICNT4„SET…1<<7+ICNT4‰EnableVERSAbusmonitortest ***‚Controlregister5.*/ICNT5„SET…$0FBeginwithallcacheingdisabled.(ICNT5„SET…-\CACHEUI<<0+ICNT5IfCACHEUI,'ICNT5„SET…-\CACHEUD<<1+ICNT5.‚CACHEUD,'ICNT5„SET…-\CACHESI<<2+ICNT5.‚CACHESI,FICNT5„SET…-\CACHESD<<3+ICNT5orCACHESDare1,clearthecorresponding*§bitstoenablecacheing. 8ICNT5„SET1<<4+ICNT50=letPALdecode68020addresses.(*§1=letRAMbusdecode68020addresses. =ICNT5„SET1<<5+ICNT50=forceRAMbuswritestotheVERSAbus.%*§1=allowwritesacrosstheRAMbus. (*ICNT5„SET0<<6+ICNT50=enableRAMbus.*§1=disableRAMbus. 8ICNT5„SET1<<7+ICNT50=wearesecondaryRAMbusmaster.#*§1=weareprimaryRAMbusmaster.*PANL…SET$0DŒshown"D"onLED *G*‚SetupthevaluewithwhichtoinitializetheCACR.‚ThisvalueshouldD*‚causethecachetobeflushedand,7 ifsysgenparameterCACHE020so%*‚specifies,shouldenablethecache.*CACR_VALUE‚SETŠ1<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>•NOTICEš<<<<<<<*‚>>>>>>>µ<<<<<<<>*‚>>>>>>>…WhenincorporatinganydriversduringSYSGEN„<<<<<<<?*‚>>>>>>>…thatrequirememoryallocatedforthemasperƒ<<<<<<<?*‚>>>>>>>…thedriverpackageinstructions-thisistheƒ<<<<<<<,*‚>>>>>>>…spotthefile(s)gointo!!–<<<<<<<*‚>>>>>>>µ<<<<<<<=*‚>>>>>>>…Thisisalsothespotforcodeforadriver…<<<<<<<>*‚>>>>>>>…that‚requiresothertypesofinitialization,ƒ<<<<<<<0*‚>>>>>>>…such‚asclearinganinterrupt.‘<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>‘MERGEITHERE—<<<<<<<*<*ˆWhenyouwritethecodethatistobemergedhere,wrapit*ˆaroundwiththefollowing:*:*ˆAtthebeginning,withDRVRxOUTreferringtoyourunique*ˆlabel,putthiscode:*'*‹PEA„DRVRxOUT(PC)„IFBUSERROROCCURS,*¢RETURNORGOONTONEXT*¢DRIVER'SINITIALIZATION**‹MOVE.W#'BE',-(A7)…SAVE'BUSERROR'FLAG*9*ˆTheninsertthecodetodowhatyouneedtodoforthis*ˆparticulardriver.**ˆAttheend,putthis:***‹LEA„6(A7),A7ˆREMOVEBUSERRORFROMSTACK*DRVRxOUTƒEQU„**=*ˆInthisway,ifthecodeforonedrivercausesabuserror,.*ˆthecodeforotherdriverswillbeexecuted.*E*‚>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<G***********************************************************************    ‰END8 NNNN**ˆVM04.CNFGDRVR.CI*'* Configuration file for device driversO*------------------------------------------------------------------------------B* This file sets up the flags used by the "VM04.IFDRVR.CI" file to'* conditionally include device drivers.*K* The user should only have to modify this file to include/exclude drivers.E* If you add more boards/devices, you may have to increase the sysgen>* command T option for more symbols in the "&.SYSGEN.CF" file.*K* To modify specific items of a driver, edit the corresponding driver file,J* "&.xxxxDRV.CI" except as noted where one driver handles multiple boards.O*------------------------------------------------------------------------------ N******************************************************************************L*---‚BOARD/SYSTEMDEPENDENCIESareincludedfromthe&.VERSADOS.CDfile.---9*VM04.SYSTEM.CIƒaddprocessorboard/systemdependencies,(*–includinglocalterminalsandprinters6*&.CNFGTASK.CI„addO/StaskconfigurationforROM/RAMM***************************************************************************** O*------------------------------------------------------------------------------DNOLTERMƒ=2Š#ofterminalsusingVM04(MK68564)serialports;max=2 O*------------------------------------------------------------------------------=NOVM20„=0Œ#ofVM20…FDC(floppyonlydiskcontrollerboards) *¦twoboardset;usesIPCdriver*¦(see"&.IPCDRV.CI") IFGTˆ\NOVM207ƒNFV20$1ƒ=0Œ#offloppydiskdriveson1stFDC;max=47ƒNFV20$2ƒ=0Œ#offloppydiskdriveson2ndFDC;max=4 ?ƒVM200$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stFDCboard?ƒVM201$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stFDCboard?ƒVM202$1ƒ="'F8SDDSM'"‚Typeof3rdfloppydiskon1stFDCboard?ƒVM203$1ƒ="'F8SDDSM'"‚Typeof4thfloppydiskon1stFDCboard ?ƒVM200$2ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon2ndFDCboard?ƒVM201$2ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon2ndFDCboardü), ?ƒVM202$2ƒ="'F8SDDSM'"‚Typeof3rdfloppydiskon2ndFDCboard?ƒVM203$2ƒ="'F8SDDSM'"‚Typeof4thfloppydiskon2ndFDCboardENDC O*------------------------------------------------------------------------------;NOVM21„=1Œ#ofVM21…UDC(universaldiskcontrollerboards)%*¦floppy&harddisks;twoboardset;*¦usesIPCdriver*¦(see"&.IPCDRV.CI") IFGTˆ\NOVM215ƒNHV21$1ƒ=2Œ#ofhardƒdiskdriveson1stUDC;max=47ƒNFV21$1ƒ=2Œ#offloppydiskdriveson1stUDC;max=45ƒNHV21$2ƒ=0Œ#ofhardƒdiskdriveson2ndUDC;max=47ƒNFV21$2ƒ=0Œ#offloppydiskdriveson2ndUDC;max=4 =ƒVM210$1ƒ="'FXLRK25'"‚Typeof1sthardƒdiskon1stUDCboard=ƒVM211$1ƒ="'RMLRK25'"‚Typeof2ndhardƒdiskon1stUDCboard=ƒVM212$1ƒ="'FXCMD80'"8 ‚Typeof3rdhardƒdiskon1stUDCboard=ƒVM213$1ƒ="'RMCMD16'"‚Typeof4thhardƒdiskon1stUDCboard ?ƒVM214$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stUDCboard?ƒVM215$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stUDCboard?ƒVM216$1ƒ="'F8SDDSM'"‚Typeof3rdfloppydiskon1stUDCboard?ƒVM217$1ƒ="'F8SDDSM'"‚Typeof4thfloppydiskon1stUDCboard =ƒVM210$2ƒ="'FXLRK25'"‚Typeof1sthardƒdiskon2ndUDCboard=ƒVM211$2ƒ="'RMLRK25'"‚Typeof2ndhardƒdiskon2ndUDCboard=ƒVM212$2ƒ="'FXCMD80'"‚Typeof3rdhardƒdiskon2ndUDCboard=ƒVM213$2ƒ="'RMCMD16'"‚Typeof4thhardƒdiskon2ndUDCboard ?ƒVM214$2ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon2ndUDCboard?ƒVM215$2ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon2ndUDCboard?ƒVM216$2ƒ="'F8SDDSM'"‚Typeof3rdfloppydiskon2ndUDCboard?ƒVM217$2ƒ="'F8SDDSM'"‚Typeof4thfloppydiskon2ndUDCboardENDC O*------------------------------------------------------------------------------8NOVM22„=1Œ#ofVM22…SMDdiskcontrollersboards(single*¦board) IFGTˆ\NOVM222ƒNHV22$1ƒ=2Œ#ofhardƒdiskdrivesonVM22;max=84ƒNFV22$1ƒ=4Œ#offloppydiskdrivesonVM22;max=4 >ƒVM220$1ƒ="'FXCMD80'"‚Typeof1sthardƒdiskon1stVM22board>ƒVM221$1ƒ="'RMCMD16'"‚Typeof2ndhardƒdiskon1stVM22board>ƒVM222$1ƒ="'FXCMD80'"‚Typeof3rdhardƒdiskon1stVM22board>ƒVM223$1ƒ="'RMCMD16'"‚Typeof4thhardƒdiskon1stVM22board>ƒVM224$1ƒ="'FXCMD80'"‚Typeof5thhardƒdiskon1stVM22board>ƒVM225$1ƒ="'RMCMD16'"‚Typeof6thhardƒdiskon1stVM22board>ƒVM226$1ƒ="'FXCMD80'"‚Typeof7thhardƒdiskon1stVM22board>ƒVM227$1ƒ="'RMCMD16'"‚Typeof8thhardƒdiskon1stVM22board @ƒVM228$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stVM22board@ƒVM229$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stVM22board@ƒVM22A$1ƒ="'F5DDDSI'"‚Typeof3rdfloppydiskon1stVM22board@ƒVM22B$1ƒ="'F5DDDSI'"‚Typeof4thfloppydiskon1stVM22boardENDC O*------------------------------------------------------------------------------7NOVM30„=1Œ#ofVM30…MCCM(multi-channelcommunications *¦boards)(*¦usesIPCdriver;has1printerport/bd*¦(see"&.IPCDRV.CI") IFGTˆ\NOVM30/ƒNTV30$1ƒ=4Œ#ofterminalson1stMCCM;max=4.ƒNPV30$1ƒ=1Œ#ofprinters‚on1stMCCM;max=1/ƒNTV30$2ƒ=0Œ#ofterminalson2ndMCCM;max=4.ƒNPV30$2ƒ=0Œ#ofprinters‚on2ndMCCM;max=1/ƒNTV30$3ƒ=0Œ#ofterminalson3rdMCCM;max=4.ƒNPV30$3ƒ=0Œ#ofprinters‚on3rdMCCM;max=1/ƒNTV30$4ƒ=0Œ#ofterminalson4thMCCM;max=4.ƒNPV30$4ƒ=0Œ#ofprinters‚on4thMCCM;max=1ENDC O*------------------------------------------------------------------------------NN**ˆVM04.IFDRVR.CI*** Conditional file for VM04 device driversO*------------------------------------------------------------------------------J*‚ThisfileusesflagssetupintheVM04.CNFGDRVR.CIfiletoconditionally*‚includedevicedrivers.*J*‚Theusershouldnothavetomodifythisfiletoinclude/excludedrivers.*D*„******************************************************************?*„**‚NOTICE:‚Thefollowingconditionalsareorderdependent.„**3*„**‹Donotchangetheorder!‚Localdrivers1st.‡**9*„**‹Theorderdeterminesdevicenumber(HD00,PR,etc)‚***„**‹formostitems.¤**D*„*******************************************************************>*„NOTE:‚"CN00"thru"CN09"reservedfornonVM30(MCCM)ports.* IFNEˆ\NO9 LTERMƒINCLUDE…&.SIODRV.CIENDC* IFNEˆ\NOVM22ƒINCLUDE…&.VM22DRV.CIENDC*IFNEˆ\NOVM20+\NOVM21+\NOVM30ƒINCLUDE…&.IPCDRV.CIENDC* IFNEˆ\NOVM30?ƒ*„NOTE:‚"CNn0"thru"CNn3"reservedfortheseeachMCCMboard,+ƒ*‹where"n"istheboardnumber(1,2,...).7ƒ*‹"PRn"isassignedsequentiallyforeachMCCMboard.ƒINCLUDE…&.VM30DRV.CIENDCNNN%**ˆVM04.SYSTEM.CI*L****************************************************************************>*‚Thisfilecontainsallboard/systemdependenciesforVM04.Ž*&*‚Itiscalledfrom"&.VERSADOS.CD".¦**Ê*E*‚Theusershouldnothavetomodifythisfileexceptunderextreme‡**‚circumstances.º*L****************************************************************************  <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ONBOARDRAMADDRESSES*>*†VMEbusdriversrequirethefollowingtargetsystemdependentB*†variablestobedefinedwhenthemacrofileDUALPORT.MCisused:<*†NotethattheONBD$HIparametermayvaryontheVME110and<*†andVME101systemsdependingonthesizeandnumberofRAM<*†chipsusedontheprocessorcard.‚Thevaluesshownarethe?*†minimumrequirements.Modifythatparametertomatchyourown*†systemifdifferent.**;ONBD$LOƒ=$0‹Lowvalueforon-boardram(asseenbydriver)RAM$SQ„=$0‹Differencebetweenon-boardramaddressasseenby*˜driveranddevice.JOFFBD$LO‚=\ONBD$LO+\RAM$SQLowvalueforon-boardram(asseenbydevice)JOFFBD$HI‚=\ONBD$HI+\RAM$SQHighvaluforon-boardram(asseenbydevice) FMSG‰******************************************************************MSG‰**ˆAddressesoftimer,etc.FMSG‰****************************************************************** #TIMER…=$FFFB0000„Addressoftimer.3CLOCKFRQ‚=0ŒNumberofclocktickspermillisecond.5PANEL…=$0‹Addressoffrontpanel(notusedonVM04).5TRCFLAGƒ=0ŒTraceflag.‚Zeroimpliesdon'ttrace.‚The/*˜settingofbitsintheTRCFLAGparameterwill1*˜controlwhicheventscauseanentrytobebuilt*˜inthetracetable.*˜Bit#inTRCFLAG†Event *›15‘TRAP#1*›14‘I/Ointerruptnotclaimed*°byusertask.*›13‘Timerinterrupt.*›12‘Usertrap(2-15)*›11‘Exception *›10‘Dispatch*œ9‘I/Ointerruptclaimedby *°usertask*œ8‘ReturnfromLOADMMU*œ7‘Simulatedinterrupt7'./ 7+?2*œ6‘SYSFAILinterrupt.**?SYSFAILƒ=0ŒDetermineswhetherornottheoperatingsystemwill5*˜beinterruptedwhenSYSFAILisassertedonthebus.2*˜SomeintelligentboardswillassertSYSFAILwhen0*˜theyexperienceafailureofsomekind.‚Ifyou9 5*˜havesuchboardsinthesystem,ANDTHEDRIVERSFOR3*˜THESEBOARDSHAVESYSFAILHANDLERS,thenyouwill2*˜probablywantSYSFAILinterruptsenabled.‚Ifthe4*˜appropriateSYSFAILhandlersarenotwritten,then5*˜takingaSYSFAILinterruptwillhangupthesystem,0*˜soyouwouldwantSYSFAILinterruptsdisabled.!*š0=disableSYSFAILinterrupts. *š1=‚enableSYSFAILinterrupts.FMSG‰******************************************************************.MSG‰**ƒLocalterminal/printerdeviceaddresses#MSG‰**ƒShortI/Ospacebaseaddress&MSG‰**ƒShortI/OspaceaddressoffsetsFMSG‰****************************************************************** :&VECTNOƒ=$FFŠStartingVectorNumber‚usedbyIOC.IPCDRV.AG6LTDA$01ƒ=$FFFB0040„VM04localterminalport1address6LTDA$02ƒ=$FFFB0050„VM04localterminalport2address 3SIOBASEƒ=$FFFF0000„BaseaddressofShortI/Ospace&DEVADDƒ=\SIOBASE.RMS.CIfileandhasavalueequal!*œtotheinitialprogramcounter.*@*ˆThefollowingparametersareusedtodefinememorypartitions.A*ˆIfonlypartition0exists,thenMEMEND2shouldbesettozero.*:*ˆTheMMB851usesapproximately$400bytesofoverheadfor,*ˆevery$40000bytesofmemorytobemapped.9*ˆThussupervisormemory(wherethetranslationtreesare>*ˆbuilt)mustbelargeenough($38000works,$28000doesnot).;*ˆAlso,ifyouwanttoputmemoryatahighaddresswithno5*ˆmemoryinbetween,youmustpartitionmemoryintoa;*ˆpartitionforlowaddresses,andapartitionforthehigh8*ˆaddresses.Otherwiseyoucouldrunoutofmemorywhile!*ˆbuildingthetranslationtrees.*IFNEˆ\MMUIfMMUNNNNN'ƒIFEQˆ\MEMALOC†UsingBestFitalgorithmF†*********************************************************************†*†*WARNING!!!!†*C†*SetupMEMEND2tostartonaPGSIZEboundary,wherePGSIZEisas†*definedinVM04.RMS.CI.†*F†***********: ********************************************************** 3†NOPARTSƒ=2ŒNumberofmemorypartitions(neededby†*˜&.INITMEM.AG)@†MEMEND1ƒ=$48000‡Theendƒofpartition0(assumedtostartat0)+†MEMEND2ƒ=$48000‡Thestartofpartition1.*†MEMEND3ƒ=$400000†Theendƒofpartition1.ƒENDC,ƒIFNEˆ\MEMALOC†UsingBuddyBuffersalgorithm3†NOPARTSƒ=1ŒNumberofmemorypartitions(neededby†*˜&.INITMEM.AG)A†MEMEND1ƒ=$400000†Theendƒofpartition0(assumedtostartat0)'†MEMEND2ƒ=$0‹Thestartofpartition1.%†MEMEND3ƒ=$0‹Theendƒofpartition1.ƒENDCENDCIFEQˆ\MMU‰IfNoMMU3ƒNOPARTSƒ=1ŒNumberofmemorypartitions(neededbyƒ*˜&.INITMEM.AG)BƒMEMEND1ƒ=$400000†Theendƒofpartition0(assumedtostartat0).'ƒMEMEND2ƒ=$0‹Thestartofpartition1.%ƒMEMEND3ƒ=$0‹Theendƒofpartition1.ENDC:WHERLOAD‚=0ŒMemoryaddresswherebootfilewillbeloaded6*˜Ifnonzero,VERSAdoswillbemovedatinitialization*˜time.6NVME316ƒ=0ŒNotusedbyVM04(neededfor&.SYSINIT.CI)5CACHEF„=0ŒNotusedbyVM04(neededfor&.INITDAT.AG) =CACHE020‚=1ŒThisflagdetermineswhetherthe68020'son-chip!*˜instructioncachewillbeused:*š0=don'tuseit. *š1=useit. 7*˜ThefollowingflagsdeterminewhichtypesofaccessesNN7*˜willgetcachedbytheVM04'sinstruction/datacache.1*˜Ineachcase,0=don'tcacheit,1=cacheit.0CACHEUIƒ=1Œ1=cacheuser‡instructionaccesses.)CACHEUDƒ=1Œ1=cacheuser‡dataˆaccesses.6CACHESIƒ=1Œ1=cachesupervisorinstructionaccesses./CACHESDƒ=1Œ1=cachesupervisordataˆaccesses.3ASMTYPEƒ=1ŒTypeofassemblertouseforINITIO1.AG *œ0-UseASM*œ1-UseASM020 EMSG‰*****************************************************************)MSG‰**‚Parametersabouttablesizes,etc.EMSG‰***************************************************************** *7*‚PAGESIZENEEDSTOBEATLEASTASLARGEASPGSIZEFROM *‚VM04.RMS.CI*PAGESIZE‚=\PGSIZE†FromRMS.CI*)ASN‡=0Œ#ofaddressspaces--notusedbut!*˜neededtosatisfy&.INITDAT.AG. GMSG‰*******************************************************************>MSG‰*ƒCopythesysteminitializerintoM68XXX.INIT.RObasedon:MSG‰*ƒthetypeofmemoryallocationdefinedatRMSGENtimeMSG‰*ƒin.RMS.CD.GMSG‰******************************************************************* IFEQˆ\MEMALOC'ƒ=COPY‡BESTFIT.INIT.RO,M68XXX.INIT.RO;Y ƒIFEQˆ\MMU†=COPY‡&.MTYPE.SI,MTYPE.SI;YƒENDC ƒIFNEˆ\MMU†=COPY‡MULT.MTYPE.SI,MTYPE.SI;YƒENDCENDC IFNEˆ\MEMALOC%ƒ=COPY‡BUDDY.INIT.RO,M68XXX.INIT.RO;Yƒ=COPY‡&.MTYPE.SI,MTYPE.SI;YENDC GMSG‰*******************************************************************?MSG‰*ƒCopyC40O44.SYSPAR.ROinto&.SYSPAR.ROtomakeitgenericAMSG‰*ƒfor.LGfilesandpossibleforsysgeningmorethan1systemMSG‰*ƒperaccount#GMSG‰******************************************************************* $=COPY‡C40O44.SYSPAR.RO,&.SYSPAR.RO;YN'VME122 COPYSGENCFSSµ  $: =/*<=/*‚VME122.COPYSGEN.CF‚-‚ChainfiletocopyfilesforSYSGEN=/*'=/*‚--‚FORCECATALOGTOBESET=VME122 =USE :.VME122=/*D=/*†ThischainfilecopiesthosefilesrequiredtodoaSYSGENintoa'=/*†aspecifiedvolumeandusernumber.=/*;=/*ƒInvokeas:„=VME122.COPYSGEN.CF‚arg1,arg2,arg3,arg4,arg5 =/*…where:.=/*‰Arg1=\1„SourcevolumenameŒ(mustspecify).=/*‰Arg2=\2„TargetvolumenameŒ(mustspecify).=/*‰Arg3=\3„TargetusernumberŒ(mustspecify)-=/*‰Arg4=\4„COPYoptionletter(s)‰(optional)=/*—B=bothcopy&verify=/*—P=packfiles =/*—Y=overwriteiffileexists*=/*—N=skipcopyiffileexistsƒ(default)*=/*–VT=verify&showonly1stdifference2=/*‰Arg5=\5„includePCDRVdriverfilesƒ(optional)=/*—PCDRV=includethem=OPT N=/RX=\0=/RD=0 =/IF RX < 3…=/RD=1=/ENDIF =/IF RX > 5…=/RD=1=/ENDIF =/IF RD=0 …=/IFC\1Š=/RD=1…=/ENDIF …=/IFC\2Š=/RD=2…=/ENDIF …=/IFC\3Š=/RD=3…=/ENDIF …=/IFC\4 Š=/IFC\5=ARG\1,\2,\3,N,-PCDRVŠ=/ELSE=ARG\1,\2,\3,N,\5Š=/ENDIF…=/ENDIF …=/IFC\5ˆ=ARG\1,\2,\3,\4,-PCDRV…=/ELSEˆ=/IFEQ"PCDRV"\5ˆ=/ELSE‹=/IFEQ"-PCDRV"\5‹=/ELSEŽ=/RD=5‹=/ENDIFˆ=/ENDIF…=/ENDIF=/ENDIFJ=/*‚SetArg6sothisfilecan'tbererundirectlyw/osettingproperargs!=ARG \1,\2,\3,\4,\5,ARGS=OPT -N =/IF RD <> 0Mƒ=/*INVOCATIONERROR!Insufficient,null,and/orinvalidargumentspecified!ƒ=/R?ƒ=END=/ENDIF *=/* ==== Start driver related file copying=/IFEQ "PCDRV"\5O=/*----------------------------------------------------------------------------"=/* Copy all RAD1 files for sysgen=/@„\1:9998.COPYGEN.RADDRV.CFO=/*----------------------------------------------------------------------------!=/* Copy all RIO files for sysgen=/@„\1:9998.COPYGEN.RIODRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME600 files for sysgen=/@„\1:9998.COPYGEN.M600DRV.CFKPT%\d#lO=/*----------------------------------------------------------------------------$=/* Copy all VME605 files for sysgen=/@„\1:9998.COPYGEN.M605DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME610 files for sysgen=/@„\1:9998.COPYGEN.M610DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME615 files for sysgen=/@„\1:9998.COPYGEN.M615DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME625 files for sysgen=/@„\1:9998.COPYGEN.M625DRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all PCDRV common files for sysgen=/@„\1:9998.COPYGEN.PCDRV.CF=/ENDIFO=/*----------------------------------------------------------------------------,=/* Copy all driver library files for sysgen=/@„\1:9998.COPYGEN.DRVLIB.CFO=/*----------------------------------------------------------------------------(=/* Co; py all MFP driver files for sysgen=/@„\1:9998.COPYGEN.MFPDRV.CFO=/*----------------------------------------------------------------------------)=/* Copy all MPSC driver files for sysgen=/@„\1:9998.COPYGEN.MPSCDRV.CFO=/*----------------------------------------------------------------------------(=/* Copy all PRT driver files for sysgen=/@„\1:9998.COPYGEN.PIADRV.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME050 driver files for sysgen=/@„\1:9998.COPYGEN.M050DRV.CF=/@„\1:9998.COPYGEN.P050DRV.CF=/@„\1:9998.COPYGEN.MPCCDRV.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME300 (GPIB) files for sysgen=/@„\1:9998.COPYGEN.M300DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME319 files for sysgen=/@„\1:9998.COPYGEN.M319DRV.CFO=/*----------------------------------------------------------------------------F=/* Copy all VME316 (VMEbus to I/O channel interface) files for sysgen=/@„\1:9998.COPYGEN.M316DEF.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME320 files for sysgen=/@„\1:9998.COPYGEN.M320DRV.CFNNNNNNO=/*----------------------------------------------------------------------------$=/* Copy all VME331 files for sysgen=/@„\1:9998.COPYGEN.M331DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME360 files for sysgen=/@„\1:9998.COPYGEN.M360DRV.CFO=/*----------------------------------------------------------------------------/=/* Copy all VME435 (mag tape) files for sysgen=/@„\1:9998.COPYGEN.M435DRV.CFO=/*----------------------------------------------------------------------------7=/* Copy all RWIN1 (Winchester) driver files for sysgen=/@„\1:9998.COPYGEN.RWINDRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all disk related files for sysgen=/@„\1:9998.COPYGEN.DSKPARAM.CFO=/*----------------------------------------------------------------------------=/*=/**=/* ==== Start system related file copyingO=/*-----------------------------------------------------------------------------=/; *‚CopyallVME122specificfilesforsysgen=/@„\1:9998.COPYGEN.VME122.CFO=/*----------------------------------------------------------------------------!=/* Copy all EET files for sysgen=/@„\1:9998.COPYGEN.EET.CFO=/*----------------------------------------------------------------------------'=/* Copy all FHS & IOS files for sysgen=/@„\1:9998.COPYGEN.FHSIOS.CFO=/*----------------------------------------------------------------------------!=/* Copy all FMS files for sysgen=/@„\1:9998.COPYGEN.FMS.CFO=/*----------------------------------------------------------------------------$=/* Copy all LOADER files for sysgen=/@„\1:9998.COPYGEN.LOADER.CFO=/*----------------------------------------------------------------------------N<=/* Copy all BEGIN/END files for sysgen (OSLIST and VERSAPT)=/@„\1:9998.COPYGEN.BEGINEND.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOI files for sysgen=/@„\1:9998.COPYGEN.IOI.CFO=/*----------------------------------------------------------------------------'=/* Copy all CNFG TASK files for sysgen=/@„\1:9998.COPYGEN.CNFGTASK.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOC files for sysgen=/@„\1:9998.COPYGEN.IOC.CFO=/*----------------------------------------------------------------------------!=/* Copy all .EQ files for sysgen=/@„\1:9998.COPYGEN.EQ.CFO=/*----------------------------------------------------------------------------2=/*‚Copyalltherestoftherootfilesforsysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*2=/*†VME122.COPYSGEN.CF‚completed.‰Haveaniceday!=/*N=/*‚No"NOARG"and"=END"becauseindependentdriverreleaseitemsmayfollow!NNN'VME133 COPYSGENCF€€¸  $INITIO1 AG©©#2  $IFDRVR CIÚÚe  $SYSTEM CIããÁ  $CNFGDRVRCI  /ø  $< =/*<=/*‚VME133.COPYSGEN.CF‚-‚ChainfiletocopyfilesforSYSGEN=/*'=/*‚--‚FORCECATALOGTOBESET=VME133 =USE :.VME133=/*D=/*†ThischainfilecopiesthosefilesrequiredtodoaSYSGENintoa'=/*†aspecifiedvolumeandusernumber.=/*;=/*ƒInvokeas:„=VME133.COPYSGEN.CF‚arg1,arg2,arg3,arg4,arg5 =/*…where:.=/*‰Arg1=\1„SourcevolumenameŒ(mustspecify).=/*‰Arg2=\2„TargetvolumenameŒ(mustspecify).=/*‰Arg3=\3„TargetusernumberŒ(mustspecify)-=/*‰Arg4=\4„COPYoptionletter(s)‰(optional)=/*—B=bothcopy&verify=/*—P=packfiles =/*—Y=overwriteiffileexists*=/*—N=skipcopyiffileexistsƒ(default)*=/*–VT=verify&showonly1stdifference2=/*‰Arg5=\5„includePCDRVdriverfilesƒ(optional)=/*—PCDRV=includethem=OPT N=/RX=\0=/RD=0 =/IF RX < 3…=/RD=1=/ENDIF =/IF RX > 5…=/RD=1=/ENDIF =/IF RD=0 …=/IFC\1Š=/RD=1…=/ENDIF …=/IFC\2Š=/RD=2…=/ENDIF …=/IFC\3Š=/RD=3…=/ENDIF …=/IFC\4 Š=/IFC\5=ARG\1,\2,\3,N,-PCDRVŠ=/ELSE=ARG\1,\2,\3,N,\5Š=/ENDIF…=/ENDIF …=/IFC\5ˆ=ARG\1,\2,\3,\4,-PCDRV…=/ELSEˆ=/IFEQ"PCDRV"\5ˆ=/ELSE‹=/IFEQ"-PCDRV"\5‹=/ELSEŽ=/RD=5‹=/ENDIFˆ=/ENDIF…=/ENDIF=/ENDIFJ=/*‚SetArg6sothisfilecan'tbererundirectlyw/osettingproperargs!=ARG \1,\2,\3,\4,\5,ARGS=OPT -N =/IF RD <> 0Mƒ=/*INVOCATIONERROR!Insufficient,null,and/orinvalidargumentspecified!ƒ=/R?ƒ=END=/ENDIF *=/* ==== Start driver related file copying=/IFEQ "PCDRV"\5O=/*----------------------------------------------------------------------------"=/* Copy all RAD1 files for sysgen=/@„\1:9998.COPYGEN.RADDRV.CFO=/*----------------------------------------------------------------------------!=/* Copy all RIO files for sysgen=/@„\1:9998.COPYGEN.RIODRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME600 files for sysgen=/@„\1:9998.COPYGEN.M600DRV.CFxP(‰‘™O=/*----------------------------------------------------------------------------$=/* Copy all VME605 files for sysgen=/@„\1:9998.COPYGEN.M605DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME610 files for sysgen=/@„\1:9998.COPYGEN.M610DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME615 files for sysgen=/@„\1:9998.COPYGEN.M615DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME625 files for sysgen=/@„\1:9998.COPYGEN.M625DRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all PCDRV common files for sysgen=/@„\1:9998.COPYGEN.PCDRV.CF=/ENDIFO=/*----------------------------------------------------------------------------,=/* Copy all driver library files for sysgen=/@„\1:9998.COPYGEN.DRVLIB.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME050 driver files for sysgen=/@„\1:9998.COPYGEN.M050DRV.CF=/@„\1:9998.COPYGEN.P050DRV.CF=/@„\1:9998.COPYGEN.MPCCDRV.CFO=/*----------------------------------------------------------------------------(=/* Copy all SCC driver files for sysgen=/@„\1:9998.COPYGEN.SCCDRV.CFO=/*----------------------------------------------------------------------------(=/* Copy all MFP driver files for sysgen=/@„\1:9998.COPYGEN.MFPDRV.CFO=/*----------------------------------------------------------------------------)=/* Copy all MPSC driver files for sysgen=/@„\1:9998.COPYGEN.MPSCDRV.CFO=/*----------------------------------------------------------------------------(=/* Copy all PRT driver files for sysgen=/@„\1:9998.COPYGEN.PIADRV.CFO=/*---< -------------------------------------------------------------------------+=/* Copy all VME300 (GPIB) files for sysgen=/@„\1:9998.COPYGEN.M300DRV.CFO=/*----------------------------------------------------------------------------F=/* Copy all VME316 (VMEbus to I/O channel interface) files for sysgen=/@„\1:9998.COPYGEN.M316DEF.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME319 files for sysgen=/@„\1:9998.COPYGEN.M319DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME320 files for sysgen=/@„\1:9998.COPYGEN.M320DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME331 files for sysgen=/@„\1:9998.COPYGEN.M331DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME360 files for sysgen=/@„\1:9998.COPYGEN.M360DRV.CFO=/*----------------------------------------------------------------------------/=/* Copy all VME435 (mag tape) files for sysgen=/@„\1:9998.COPYGEN.M435DRV.CFNNNNO=/*----------------------------------------------------------------------------7=/* Copy all RWIN1 (Winchester) driver files for sysgen=/@„\1:9998.COPYGEN.RWINDRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all disk related files for sysgen=/@„\1:9998.COPYGEN.DSKPARAM.CFO=/*----------------------------------------------------------------------------=/*=/**=/* ==== Start system related file copyingO=/*-----------------------------------------------------------------------------=/*‚CopyallVME133specificfilesforsysgen=/@„\1:9998.COPYGEN.VME133.CFO=/*----------------------------------------------------------------------------!=/* Copy all EET files for sysgen=/@„\1:9998.COPYGEN.EET.CFO=/*----------------------------------------------------------------------------'=/* Copy all FHS & IOS files for sysgen=/@„\1:9998.COPYGEN.FHSIOS.CFO=/*----------------------------------------------------------------------------!=/* Copy all FMS files for sysgen=/@„\1:9998.COPYGEN.FMS.CFO=/*----------------------------------------------------------------------------$=/* Copy all LOADER files for sysgen=/@„\1:9998.COPYGEN.LOADER.CFO=/*----------------------------------------------------------------------------<=/* Copy all BEGIN/END files for sysgen (OSLIST and VERSAPT)=/@„\1:9998.COPYGEN.BEGINEND.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOI files for sysgen=/@„\1:9998.COPYGEN.IOI.CF= NO=/*----------------------------------------------------------------------------'=/* Copy all CNFG TASK files for sysgen=/@„\1:9998.COPYGEN.CNFGTASK.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOC files for sysgen=/@„\1:9998.COPYGEN.IOC.CFO=/*----------------------------------------------------------------------------!=/* Copy all .EQ files for sysgen=/@„\1:9998.COPYGEN.EQ.CFO=/*----------------------------------------------------------------------------2=/*‚Copyalltherestoftherootfilesforsysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*2=/*†VME133.COPYSGEN.CF‚completed.‰Haveaniceday!=/*N=/*‚No"NOARG"and"=END"becauseindependentdriverreleaseitemsmayfollow!NNNN**‚Includedfiles:**‰&.UTILITY.MC*‰MK68901.MK68901.EQ*‰VME133.BOARD.EQ*‰MK68901.TIMERST.SI***ˆ&.TST.EQ‘Tasksegmenttable*°SetsADDRTYPflag*ˆ&.MAP.EQ‘Memorymapequates *ˆ&.KILL.MC*ˆ&.KILLEXEC.EQ *ˆ&.STR.EQ*6*ˆMM58274.MM58274.EQˆEquatesforRealtimeclockchip.8*ˆMM58274.TIMERST.SI‚CodetoinitializeRealtimeclock.8*ˆ&.TIMECONV.AI‡Codetoconverttime,datereprsentation* ‰PAGE7INITIO„IDNTƒ45,0RMS68KI/OinitializerfortheVME133.O*******************************************************************************O*******************************************************************************O**********************************************************************************É***E***…ROUTINE:‚INITIO--RMS68KI/OINITIALIZERFORTHEVME133BOARD.†****É***J***…ENVIRONMENT:‚PartoftheRMS68KexecfortheMotorola68000family.***(***‡Copyright1983byMotorola,Inc.¢******É***D***…FUNCTION:‚RoutinesfromthismodulearecalledbytheRMS68K‡***E***‡routineINITduringsysteminitialization.‚Allboard-specific„***.***‡initializationisdoneinthismodule.œ******É***G***…NOTES:‚ThismoduleisSUBSed,ASMed,andLINKedatSYSGENtime.„***?***‡Allmoduleswillrunatlevel7andinsupervisormode.‹******É***O*******************************************************************************O*******************************************************************************O*^***************************************************************************** *,*‚Revisionhistory(addnewchangestotop).*…Date†Author‚ChangesI*…--------‚------‚-------------------------------------------------------**…12/02/85ƒBAW„Initialwriting./*…12/19/85ƒBAW„Addedsupportforrealti= mechip¡2ª²Eº\ÂEÊ B*…03/20/86ƒKEG„RemovedtheRTSattheendofthefilesomorecode.*—canbelinkedafterthisfileduringsysgen.** ŠNOLISTŠINCLUDE&.UTILITY.MCŠINCLUDE‚MK68901.MK68901.EQŠINCLUDEVME133.BOARD.EQŠINCLUDE&.KILL.MCŠINCLUDE&.KILLEXEC.EQŠINCLUDE&.STR.EQ=ŠINCLUDEMM58274.MM58274.EQˆEquatesforRealtimeclockchip.‰LIST*NNNNNN *‚XDEF's.*,ŠXDEFƒINITMMUŒRoutinetoinitializetheMMU.,ŠXDEFƒTIMERSTŒRoutinetostartupthetimer.3ŠXDEFƒINITIORoutinetosetupalltheotherboard-*§specifichardware. * *‚XREF's.* *…Routines:*…ParametersfromINITDAT:-ŠXREFƒTIMSLICŒ#oftimerticspertimeslice.(ŠXREFƒTIMERAAddroftimerchip(Z8036).4ŠXREFƒTIMINTVA‹#ofmillisecondsbetweentimertics.4ŠXREFƒCLOCKFRQ‹Frequencyofclock(tosetuptimer). ŠXREFƒMEMTABL*…SYSPARvariables:6ŠXREF.SMMUHEREŒAddrofMMU;0ifwe'renotusingone.ŠXREF.SDATEDate.0ŠXREF.STIMESLIC‹#oftimerticspertimeslice.7ŠXREF.STIMINTVŒTimeintervalbetweentimerinterrupts.+ŠXREF.SPTMADDRŒAddroftimerchip(Z8036).,‰XREF†FC_TABLEŒSYSPAR--functioncodetable0‰XREF†SUPERMMUŒSYSPAR--supervisorrootpointer0‰XREF†TDEFTYPSYSPAR--TypeofmemoryforTCB's ‰XREF†TCBHDSYSPAR--TCBheader-‰XREF†TIMINTRSYSPAR--Countervalue--gets%*¦subtractedfromTIMINTV4everytime$*¦aninterruptoccurs.‚WhenTIMINTV4&*¦isnegative,anextramillisecondis*¦subtractedfromTIME_LEFT.4‰XREF†TIMINTV4ŒSYSPAR--CountdownvalueforTIMINTR 2‰XREF†CTRLREGSYSPAR--Controlregisterforboard 5‰XREF†RTC_TIMER‹SYSPAR--Addressofrealtimeclock. *„Others:.ŠXREFƒCRASHSAV‹PlacetoSAVEinfoifweCRASH.  ŠLIST**G*‚Thismacrowillverifythatabyteiswithinaspecifiedrange.‚IfitH*‚isnotwithintherange,abranchistakentoRANGE_ERR.‚ThesyntaxisD*„CHECK_RANGE.> ,,F*‚DistanceisSforshortbranches,Lforlongbranches,ornothingif*‚thedefaultwilldo.6*‚Thebytetocheckistreatedasanunsignedinteger.*CHECK_RANGE MACRO ŠCMP.B‚\2,\1ŠBLO.\0RANGE_ERR ŠCMP.B‚\3,\1ŠBHI.\0RANGE_ERR‰ENDM‰PAGEO**V***************************************************************************** *ˆINITMMU**,*ˆEntry:„Supervisormode,interruptlevel7.*!*ˆRegisterusage:…01234567*™D*™A**™P=entryparameter*™R=returnedparameter*™S=savedandrestored*™*=destroyed*"*ˆExit:‚Goodreturn-RTS‚toINIT.*Badreturn‚-BSRKILLER***,*ˆRevisionhistory(addnewchangestotop).*ˆDate†Author‰ChangesF*ˆ--------‚-------------‚--------------------------------------------- *ˆ12/02/85‚BAWŒOriginalwriting.*O*^******************************************************************************‰PAGE ‰SECTIONƒ8‰OPT‡BRS‰OPT‡MEX INITMMU: ‰RTS ŠPAGEO********************************************************************************* *ˆSTARTTIMER„(MK68901MFPCHIP)?*ˆReadRealtimeclock(MM58274chip)andsetupdateandtime.**N****************************************************************************** * *‚MACROSUSEDBYMK68901.TIMERST** *‚GET_TI:,*‚GettheTimerinputvaluefortheMK68901.H*‚FortheVME120andVME122,theprocessorclockfrequencyisdividedby&*‚4beforebeingfedintotheMK68901.C*‚FortheVME133,theprocessorclockfrequency,1.23MHz,doesnot*‚needtobedividedby4.**‚ReturnsTIvalueinD0* GET_TIƒMACRO‰MOVE.L„#1230000,D0‰ENDM* *‚GET_TO:6*‚TheTOvalueis1000/TIMINTV.UsuallyTIMINTVis10.*‚ReturnsTOvalueinD2.*‚DestroysD3.* GET_TOƒMACRO‰MOVE.L„#1000,D2 ‰CLR.L…D3‰MOVE.W„TIMINTV,D3 ‰DIVU†D3,D2‰ENDM**‚EQUATESUSEDBYTIMERST:*PS‡EQU‡100‡Pre_scalar.PS_TACR‚EQU‡6‰ValuetowritetoTACRregister.**‚PSŽPS_TACRƒ(Delaymode)**‚41*‚10Ž2*‚16Ž3*‚50Ž4*‚64Ž5*‚1006*‚2007*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>•NOTICEš<<<<<<<*‚>>>>>>>µ<<<<<<<>*‚>>>>>>>…WhenincorporatinganydriversduringSYSGEN„<<<<<<<?*‚>>>>>>>…thatrequirememoryallocatedforthemasperƒ<<<<<<<?*‚>>>>>>>…thedriverpackageinstructions-thisistheƒ<<<<<<<,*‚>>>>>>>…spotthefile(s)gointo!!–<<<<<<<*‚>>>>>>>µ<<<<<<<=*‚>>>>>>>…Thisisalsothespotforcodeforadriver…<<<<<<<>*‚>>>>>>>…that‚requiresothertypesofinitialization,ƒ<<<<<<<0*‚>>>>>>>…such‚asclearinganinterrupt.‘<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>‘MERGEITH> ERE—<<<<<<<*<*ˆWhenyouwritethecodethatistobemergedhere,wrapit*ˆaroundwiththefollowing:*:*ˆAtthebeginning,withDRVRxOUTreferringtoyourunique*ˆlabel,putthiscode:*'*‹PEA„DRVRxOUT(PC)„IFBUSERROROCCURS,*¢RETURNORGOONTONEXT*¢DRIVER'SINITIALIZATION**‹MOVE.W#'BE',-(A7)…SAVE'BUSERROR'FLAG*9*ˆTheninsertthecodetodowhatyouneedtodoforthis*ˆparticulardriver.**ˆAttheend,putthis:***‹LEA„6(A7),A7ˆREMOVEBUSERRORFROMSTACK*DRVRxOUTƒEQU„**=*ˆInthisway,ifthecodeforonedrivercausesabuserror,.*ˆthecodeforotherdriverswillbeexecuted.*E*‚>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<G***********************************************************************   ‰ENDNNNNNN**ˆVME133.IFDRVR.CI*,* Conditional file for VME133 device driversO*------------------------------------------------------------------------------K* This file uses flags setup in the VME133.CNFGDRVR.CI and VME133.SYSTEM.CI0* files to conditionally include device drivers.*J* The user should not have to modify this file to include/exclude drivers.*D*„******************************************************************?*„**‚NOTICE:‚Thefollowingconditionalsareorderdependent.„**3*„**‹Donotchangetheorder!‚Localdrivers1st.‡**9*„**‹Theorderdeterminesdevicenumber(HD00,PR,etc)‚***„**‹formostitems.¤**D*„******************************************************************** IFNEˆ\NVME316Dƒ*‚TheVME316hasnodriver.‚IthasaninitializationmodulethatisJƒ*‚mergedintoSYSINIT.RO.‚TheincludefilebelowdefinestheI/Ochannel.ƒ*ƒINCLUDE…&.M316DEF.CIENDC* IFNEˆ\NVME320ƒINCLUDE…&.M320DRV.CIENDC* IFNEˆ\NVME319ƒINCLUDE…&.M319DRV.CIENDC* IFNEˆ\NORWINƒINCLUDE…&.RWINDRV.CIENDC* IFNEˆ\NVME360ƒINCLUDE…&.M360DRV.CIENDC* IFNEˆ\NOLTERMƒINCLUDE…&.MFPDRV.CIENDC* IFNEˆ\NOSCCƒINCLUDE…&.SCCDRV.CIENDC* IFNEˆ\NVME050ƒINCLUDE…&.M050DRV.CIENDC* IFNEˆ\NVME400ƒINCLUDE…&.MPSC400.CIENDC* IFNEˆ\NVME331ƒINCLUDE…&.M331DRV.CIENDC* IFNEˆ\NVME410ƒINCLUDE…&.PIA410.CIENDC* IFNEˆ\NVME300ƒINCLUDE…&.M300DRV.CIENDC* IFNEˆ\NVME435ƒINCLUDE…&.M435DRV.CIENDC* IFNEˆ\NVME600ƒINCLU? DE…&.M600DRV.CIENDC* IFNEˆ\NVME605ƒINCLUDE…&.M605DRV.CIENDC*IFNEˆ\NVME610+\NVME620ƒINCLUDE…&.M610DRV.CIENDC* IFNEˆ\NVME615ƒINCLUDE…&.M615DRV.CIENDC* IFNEˆ\NVME625ƒINCLUDE…&.M625DRV.CIENDC* IFNEˆ\NRADƒINCLUDE…&.RADDRV.CIENDC* IFNEˆ\NRIOƒINCLUDE…&.RIODRV.CIENDC  Òf**ˆVME133.SYSTEM.CI*L****************************************************************************@*‚Thisfilecontainsallboard/systemdependenciesforVME133.Œ*&*‚Itiscalledfrom"&.VERSADOS.CD".¦**Ê*E*‚Theusershouldnothavetomodifythisfileexceptunderextreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ONBOARDRAMADDRESSES*>*†VMEbusdriversrequirethefollowingtargetsystemdependentB*†variablestobedefinedwhenthemacrofileDUALPORT.MCisused:<*†NotethattheONBD$HIparametermayvaryontheVME110and<*†andVME101systemsdependingonthesizeandnumberofRAM<*†chipsusedontheprocessorcard.‚Thevaluesshownarethe?*†minimumrequirements.Modifythatparametertomatchyourown*†systemifdifferent.**;ONBD$LOƒ=$0‹Lowvalueforon-boardram(asseenbydriver)RAM$SQ„=$0‹Differencebetweenon-boardramaddressasseenby*˜driveranddevice.JOFFBD$LO‚=\ONBD$LO+\RAM$SQLowvalueforon-boardram(asseenbydevice)JOFFBD$HI‚=\ONBD$HI+\RAM$SQHighvaluforon-boardram(asseenbydevice) FMSG‰******************************************************************MSG‰**ˆAddressesoftimer,etc.FMSG‰****************************************************************** *TIMER…=$F80001†Addressoftimer.(MK68901)3CLOCKFRQ‚=0ŒNumberofclocktickspermillisecond.7PANEL…=$0‹Addressoffrontpanel(notusedonVME133).5TRCFLAGƒ=0ŒTraceflag.‚Zeroimpliesdon'ttrace.‚The/*˜settingofbitsintheTRCFLAGparameterwill1*˜controlwhicheventscauseanentrytobebuilt*˜inthetracetable.*˜Bit#inTRCFLAG†Event *›15‘TRAP#1*›14‘I/Ointerruptnotclaimed*°byusertask.*›13‘Timerinterrupt.*›12‘Usertrap(2-15)*›11‘Exception *›10‘Dispatch*œ9‘I/Ointerruptclaimedby *°usertask*œ8‘ReturnfromLOADMMUÛ5äìô3ü(*œ7‘Simulatedinterrupt*œ6‘SYSFAILinterrupt.**?SYSFAILƒ=0ŒDetermineswhetherornottheoperatingsystemwill5*˜beinterruptedwhenSYSFAILisassertedonthebus.2*˜SomeintelligentboardswillassertSYSFAILwhen0*˜theyexperienceafailureofsomekind.‚Ifyou5*˜havesuchboardsinthesystem,ANDTHEDRIVERSFOR3*˜THESEBOARDSHAVESYSFAILHANDLERS,thenyouwill2*˜probablywantSYSFAILinterruptsenabled.‚Ifthe4*˜appropriateSYSFAILhandlersarenotwritten,then5*˜takingaSYSFAILinterruptwillhangupthesystem,0*˜soyouwouldwantSYSFAILinterruptsdisabled.!*š0=disableSYSFAILinterrupts. *š1=‚enableSYSFAILinterrupts.FMSG‰******************************************************************.MSG‰**ƒLocalterminal/printerdeviceaddresses#MSG‰**ƒShortI/Ospacebaseaddress&MSG‰**ƒShortI/OspaceaddressoffsetsFMSG‰****************************************************************** :&VECTNOƒ=$FFŠStartingVectorNumber‚usedbyIOC.IPCDRV.AG>LTDA$01ƒ=$FFF? 80001„VME133localterminalport1address(MFP)ELTDA$02ƒ=$FFFA0002„VME133localterminalport2address(SCCPORTA)ELTDA$03ƒ=$FFFA0000„VME133localterminalport2address(SCCPORTB) 3SIOBASEƒ=$FFFF0000„BaseaddressofShortI/Ospace&DEVADDƒ=\SIOBASE.RMS.CIfileandhasavalueequal!*œtotheinitialprogramcounter.*NNNN@*ˆThefollowingparametersareusedtodefinememorypartitions.A*ˆIfonlypartition0exists,thenMEMEND2shouldbesettozero.*@NOPARTSƒ=1ŒNumberofmemorypartitions(neededby&.INITMEM.AG)AMEMEND1ƒ=$400000†Theendƒofpartition0(assumedtostartat0).&MEMEND2ƒ=$0‹Thestartofpartition1.$MEMEND3ƒ=$0‹Theendƒofpartition1.:WHERLOAD‚=0ŒMemoryaddresswherebootfilewillbeloaded6*˜Ifnonzero,VERSAdoswillbemovedatinitialization*˜time.7CACHEF„=0ŒNotusedbyVME133(neededfor&.INITDAT.AG) =CACHE020‚=1ŒThisflagdetermineswhetherthe68020'son-chip!*˜instructioncachewillbeused:*š0=don'tuseit. *š1=useit. 7*˜Thefollowingflagsdeterminewhichtypesofaccesses8*˜willgetcachedbytheVME133'sinstruction/datacache1*˜Ineachcase,0=don'tcacheit,1=cacheit.0CACHEUIƒ=0Œ1=cacheuser‡instructionaccesses.)CACHEUDƒ=0Œ1=cacheuser‡dataˆaccesses.6CACHESIƒ=0Œ1=cachesupervisorinstructionaccesses./CACHESDƒ=0Œ1=cachesu@ pervisordataˆaccesses.3ASMTYPEƒ=1ŒTypeofassemblertouseforINITIO1.AG *œ0-UseASM*œ1-UseASM020  >****************************************************************‰Vectornumbers£**>***************************************************************-IOCVEC1ƒ=$50ŠI/Ochannelinterrupt1vector.-IOCVEC2ƒ=$51ŠI/Ochannelinterrupt2vector.-IOCVEC3ƒ=$52ŠI/Ochannelinterrupt3vector.-IOCVEC4ƒ=$53ŠI/Ochannelinterrupt4vector.**IOCLVL1ƒ=2ŒI/Ochannelinterrupt1level.*IOCLVL2ƒ=3ŒI/Ochannelinterrupt2level.*IOCLVL3ƒ=4ŒI/Ochannelinterrupt3level.*IOCLVL4ƒ=5ŒI/Ochannelinterrupt4level. EMSG‰*****************************************************************)MSG‰**‚Parametersabouttablesizes,etc.EMSG‰***************************************************************** 1PAGESIZE‚=256ŠSizeinbytesofapageofmemory.*)ASN‡=0Œ#ofaddressspaces--notusedbut!*˜neededtosatisfy&.INITDAT.AG.EMSG‰***************************************************************** MSG‰**½**#MSG‰**ŒADDRESSANDDATABUSSIZE˜**=MSG‰**…---------------------------------------------------…**'MSG‰**ŒA$SIZE=‚WIDTHOFADDRESSBUS“** MSG‰**½**)MSG‰**Œ32…=‚32BITEXTENDEDADDRESSING**)MSG‰**Œ24…=‚24BITSTANDARDADDRESSING** MSG‰**½**$MSG‰**ŒD$SIZE=‚WIDTHOFDATABUS–** MSG‰**½**#MSG‰**Œ32…=‚32BITLONGWORDDATA“**MSG‰**Œ16…=‚16BITWORDDATA—** MSG‰**½**EMSG‰***************************************************************** D$SIZE„=32 A$SIZE„=24 GMSG‰*******************************************************************>MSG‰*ƒCopythesysteminitializerintoM68XXX.INIT.RObasedon:MSG‰*ƒthetypeofmemoryallocationdefinedatRMSGENtimeMSG‰*ƒin.RMS.CD.GMSG‰******************************************************************* =COPY‡&.MTYPE.SI,MTYPE.SI;Y IFEQˆ\MEMALOC'ƒ=COPY‡BESTFIT.INIT.RO,M68XXX.INIT.RO;YENDC IFNEˆ\MEMALOC%ƒ=COPY‡BUDDY.INIT.RO,M68XXX.INIT.RO;YENDC GMSG‰*******************************************************************?MSG‰*ƒCopyC40O44.SYSPAR.ROinto&.SYSPAR.ROtomakeitgenericAMSG‰*ƒfor.LGfilesandpossibleforsysgeningmorethan1systemMSG‰*ƒperaccount#GMSG‰******************************************************************* $=COPY‡C40O44.SYSPAR.RO,&.SYSPAR.RO;YNN**ˆVME133.CNFGDRVR.CI*'* Configuration file for device driversO*------------------------------------------------------------------------------D* This file sets up the flags used by the "VME133.IFDRVR.CI" file to'* conditionally include device drivers.*K* The user should only have to modify this file to include/exclude drivers.E* If you add more boards/devices, you may have to increase the sysgen>* command T option for more symbols in the "&.SYSGEN.CF" file.*K* To modify specific items of a driver, edit the corresponding driver file,J* "&.xxxxDRV.CI" except as noted where one driver handles multiple boards.O*------------------------------------------------------------------------------ N******************************************************************************L*---‚BOARD/SYSTEMDEPENDENCIESareincludedfromthe&.VERSADOS.CDfile.---;*VME133.SYSTEM.CIƒaddprocessorboard/systemdependencies,(*˜includinglocalterminalsandprinters6*&.CNFGTASK.CI†addO/Staskcon@ figurationforROM/RAMM***************************************************************************** O*------------------------------------------------------------------------------?NOLTERMƒ=1‡#ofterminalsusingVME133‚MFP‚serialports;max=1 *¤(MK689801)O*------------------------------------------------------------------------------=NOSCC…=1‡#ofterminalsusingVME133‚SCC‚serialports;max=2 *¤(Z8530)"*“1meansyouwillonlygetportB(*“2meansyouwillgetportAandportBO*------------------------------------------------------------------------------2NORWIN„=0Œ#ofRWIN1„Winchestercontrollerboards* IFGTˆ\NORWIN+ƒCONTWIN1‚="8"Š1stRWIN1controllernumber8ƒNHRWIN$1‚=0Œ#ofhardƒdiskdriveson1stRWIN1;max=2:ƒNFRWIN$1‚=0Œ#offloppydiskdriveson1stRWIN1;max=2>ƒRWIN0$1ƒ="'H5WIN40'"‚Typeofhardƒdiskon1stRWIN1,drive0>ƒRWIN1$1ƒ="'H5WIN40'"‚Typeofhardƒdiskon1stRWIN1,drive1@ƒRWIN2$1ƒ="'F5DDDSI'"‚Typeoffloppydiskon1stRWIN1,drive2) %'-5.= @ƒRWIN3$1ƒ="'F5DDDSI'"‚Typeoffloppydiskon1stRWIN1,drive3 +ƒCONTWIN2‚="9"Š2ndRWIN1controllernumber8ƒNHRWIN$2‚=0Œ#ofhardƒdiskdriveson2ndRWIN1;max=2:ƒNFRWIN$2‚=0Œ#offloppydiskdriveson2ndRWIN1;max=2BƒRWIN0$2ƒ="'H5WIN40'"‚Typeof1sthardƒdiskon2ndRWIN1,drive0BƒRWIN1$2ƒ="'H5WIN40'"‚Typeof2ndhardƒdiskon2ndRWIN1,drive1DƒRWIN2$2ƒ="'F5DDDSI'"‚Typeof1stfloppydiskon2ndRWIN1,drive2DƒRWIN3$2ƒ="'F5DDDSI'"‚Typeof2ndfloppydiskon2ndRWIN1,drive3ƒ*Gƒ*…NOTE:‚Youcannotmix5-1/4"and8"floppies.‚Pickoneortheother.ƒ*ENDC O*------------------------------------------------------------------------------)NVME050ƒ=1Œ#ofVME050ƒSystemController IFGTˆ\NVME0507ƒNT050$1ƒ=2Œ#ofterminalsontheVME050board;max=26ƒNP050$1ƒ=1Œ#ofprinters‚ontheVME050board;max=1ENDC O*------------------------------------------------------------------------------8NVME300ƒ=0Œ#ofMVME300‚IEEE488GPIBcontrollerboards O*------------------------------------------------------------------------------@NVME316ƒ=0Œ#ofMVME316‚VMEbustoI/Ochannelinterfaceboards;*˜max=1 O*------------------------------------------------------------------------------ 5…=/RD=1=/ENDIF =/IF RD=0 …=/IFC\1Š=/RD=1…=/ENDIF …=/IFC\2Š=/RD=2…=/ENDIF …=/IFC\3Š=/RD=3…=/ENDIF …=/IFC\4 Š=/IFC\5=ARG\1,\2,\3,N,-PCDRVŠ=/ELSE=ARG\1,\2,\3,N,\5Š=/ENDIF…=/ENDIF …=/IFC\5ˆ=ARG\1,\2,\3,\4,-PCDRV…=/ELSEˆ=/IFEQ"PCDRV"\5ˆ=/ELSE‹=/IFEQ"-PCDRV"\5‹=/ELSEŽ=/RD=5‹=/ENDIFˆ=/ENDIF…=/ENDIF=/ENDIFJ=/*‚SetArg6sothisfilecan'tbererundirectlyw/osettingproperargs!=ARG \1,\2,\3,\4,\5,ARGS=OPT -N =/IF RD <> 0Mƒ=/*INVOCATIONERROR!Insufficient,null,and/orinvalidargumentspecified!ƒ=/R?ƒ=END=/ENDIF *=/* ==== Start driver related file copying=/IFEQ "PCDRV"\5O=/*----------------------------------------------------------------------------"=/* Copy all RAD1 files for sysgen=/@„\1:9998.COPYGEN.RADDRV.CFO=/*----------------------------------------------------------------------------!=/* Copy all RIO files for sysgen=/@„\1:9998.COPYGEN.RIODRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME600 files for sysgen=/@„\1:9998.COPYGEN.M600DRV.CFIPR%Zb#jO=/*----------------------------------------------------------------------------$=/* Copy all VME605 files for sysgen=/@„\1:9998.COPYGEN.M605DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME610 files for sysgen=/@„\1:9998.COPYGEN.M610DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME615 files for sysgen=/@„\1:9998.COPYGEN.M615DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME625 files for sysgen=/@„\1:9998.COPYGEN.M625DRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all PCDRV common files for sysgen=/@„\1:9998.COPYGEN.PCDRV.CF=/ENDIFO=/*----------------------------------------------------------------------------,=/* Copy all driver library files for sysgen=/@„\1:9998.COPYGEN.DRVLIB.CFO=/*----------------------------------------------------------------------------(=/* Copy all SIO driver files for sysgen=/@„\1:9998.COPYGEN.SIODRV.CFO=/*----------------------------------------------------------------------------)=/* Copy all MPSC driver files for sysgen=/@„\1:9998.COPYGEN.MPSCDRV.CFO=/*----------------------------------------------------------------------------(=/* Copy all PRT driver files for sysgen=/@„\1:9998.COPYGEN.PIADRV.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME050 driver files for sysgen=/C @„\1:9998.COPYGEN.M050DRV.CF=/@„\1:9998.COPYGEN.P050DRV.CF=/@„\1:9998.COPYGEN.MPCCDRV.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME300 (GPIB) files for sysgen=/@„\1:9998.COPYGEN.M300DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME319 files for sysgen=/@„\1:9998.COPYGEN.M319DRV.CFO=/*----------------------------------------------------------------------------F=/* Copy all VME316 (VMEbus to I/O channel interface) files for sysgen=/@„\1:9998.COPYGEN.M316DEF.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME320 files for sysgen=/@„\1:9998.COPYGEN.M320DRV.CFNNNNNNO=/*----------------------------------------------------------------------------$=/* Copy all VME331 files for sysgen=/@„\1:9998.COPYGEN.M331DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME360 files for sysgen=/@„\1:9998.COPYGEN.M360DRV.CFO=/*----------------------------------------------------------------------------/=/* Copy all VME435 (mag tape) files for sysgen=/@„\1:9998.COPYGEN.M435DRV.CFO=/*----------------------------------------------------------------------------7=/* Copy all RWIN1 (Winchester) driver files for sysgen=/@„\1:9998.COPYGEN.RWINDRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all disk related files for sysgen=/@„\1:9998.COPYGEN.DSKPARAM.CFO=/*----------------------------------------------------------------------------=/*=/**=/* ==== Start system related file copyingO=/*-----------------------------------------------------------------------------=/*‚CopyallVME131specificfilesforsysgen=/@„\1:9998.COPYGEN.VME131.CFO=/*----------------------------------------------------------------------------!=/* Copy all EET files for sysgen=/@„\1:9998.COPYGEN.EET.CFO=/*----------------------------------------------------------------------------'=/* Copy all FHS & IOS files for sysgen=/@„\1:9998.COPYGEN.FHSIOS.CFO=/*----------------------------------------------------------------------------!=/* Copy all FMS files for sysgen=/@„\1:9998.COC PYGEN.FMS.CFO=/*----------------------------------------------------------------------------$=/* Copy all LOADER files for sysgen=/@„\1:9998.COPYGEN.LOADER.CFO=/*----------------------------------------------------------------------------N<=/* Copy all BEGIN/END files for sysgen (OSLIST and VERSAPT)=/@„\1:9998.COPYGEN.BEGINEND.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOI files for sysgen=/@„\1:9998.COPYGEN.IOI.CFO=/*----------------------------------------------------------------------------'=/* Copy all CNFG TASK files for sysgen=/@„\1:9998.COPYGEN.CNFGTASK.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOC files for sysgen=/@„\1:9998.COPYGEN.IOC.CFO=/*----------------------------------------------------------------------------!=/* Copy all .EQ files for sysgen=/@„\1:9998.COPYGEN.EQ.CFO=/*----------------------------------------------------------------------------2=/*‚Copyalltherestoftherootfilesforsysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*2=/*†VME131.COPYSGEN.CF‚completed.‰Haveaniceday!=/*N=/*‚No"NOARG"and"=END"becauseindependentdriverreleaseitemsmayfollow!NNN**‚Includedfiles:**‰&.UTILITY.MC*‰Z8036.Z8036.EQ*‰VME13X.CTRLSTAT.EQ*‰M68020.CACR.EQ***ˆIfthereistobeanMMUinthissystem, *‰&.KILL.MC*‰&.KILLEXEC.EQ$*‰&.STR.EQ‡TRAP0ANDTRAP1EQUATES *‰&.TCB.EQ** *ˆ&.MMUTYP.EQ**ˆForeithertypeofMMU,+*ˆ&.MMBPMMU.EQˆGeneralequatesforMMB/PMMU!*ˆ&.MMBPMMU.MCˆMacroslikeXPMOVE**ˆ&.TST.EQ‘Tasksegmenttable*°SetsADDRTYPflag*ˆ&.MAP.EQ‘Memorymapequates‰PAGE7INITIO„IDNTƒ45,0RMS68KI/OinitializerfortheVME130.O*******************************************************************************O*******************************************************************************O**********************************************************************************É***E***…ROUTINE:‚INITIO--RMS68KI/OINITIALIZERFORTHEVME130BOARD.†****É***J***…ENVIRONMENT:‚PartoftheRMS68KexecfortheMotorola68000family.***(***‡Copyright1983byMotorola,Inc.¢******É***D***…FUNCTION:‚RoutinesfromthismodulearecalledbytheRMS68K‡***E***‡routineINITduringsysteminitialization.‚Allboard-specific„***.***‡initializationisdoneinthismodule.œ******É***G***…NOTES:‚ThismoduleisSUBSed,ASMed,andLINKedatSYSGENtime.„***?***‡Allmoduleswillrunatlevel7andinsupervisormode.‹******É***O*******************************************************************************O*******************************************************************************O*^**************************D *************************************************** *,*‚Revisionhistory(addnewchangestotop).*…Date†Author‚ChangesI*…--------‚------‚-------------------------------------------------------N r2{ ƒJ‹I“X›G£U«a³a»IÃCË!Ó8ÛCã6*…02/25/86ƒJAH„Addedcodetoenablecacheaccelerator.*<*…10/30/85ƒCBS„ChangedKILLERcallstouseKILL.EXECT0macro*)*…10/10/85ƒBAW„AddedINITMMUcodeforMMB*@*…06/25/85ƒCBS„Addedfixtocachecleartofixbuginsomeearly*—68020masks.*4*…05/01/85ƒCBS„ConvertedmodulefromVM04toVME130.*NNNNNNC*†2/27/85ƒSJF„ChangedtimerinitializationtouseTIMINTVvaluefor+*—thenumberofmillisecondsbetweenticks.*…10/20/84ƒACC„Initialwriting.** ŠNOLISTŠINCLUDE&.UTILITY.MCŠINCLUDEZ8036.Z8036.EQŠINCLUDEVME13X.CTRLSTAT.EQŠINCLUDEM68020.CACR.EQ ‰IFNE†\MMU+‰INCLUDE‚&.STR.EQ‡TRAP0ANDTRAP1EQUATES‰INCLUDE‚&.TCB.EQ‰INCLUDE‚&.KILL.MC‰INCLUDE‚&.KILLEXEC.EQ ‰INCLUDEƒ&.MMUTYP.EQ ‰IFEQ†\MMU-MMB851MMUTYPƒEQU‡MMB851‰ENDC‰IFEQ†\MMU-M68851MMUTYPƒEQU‡M68851‰ENDC(‰INCLUDEƒ&.MMBPMMU.MCƒMacroslikeXPMOVE.‰INCLUDEƒ&.MMBPMMU.EQƒGeneralMMB/PMMUequates‰INCLUDEƒ&.TST.EQ$‰INCLUDEƒ&.MAP.EQ‘Memorymapequates‰ENDC‰LIST* *‚XDEF's.*,ŠXDEFƒINITMMUŒRoutinetoinitializetheMMU.,ŠXDEFƒTIMERSTŒRoutinetostartupthetimer.3ŠXDEFƒINITIORoutinetosetupalltheotherboard-*§specifichardware. * *‚XREF's.* *…Routines:*…ParametersfromINITDAT:-ŠXREFƒTIMSLICŒ#oftimerticspertimeslice.(ŠXREFƒTIMERAAddroftimerchip(Z8036).4ŠXREFƒTIMINTVA‹#ofmillisecondsbetweentimertics.4ŠXREFƒCLOCKFRQ‹Frequencyofclock(tosetuptimer). ŠXREFƒMEMTABL*…SYSPARvariables:6ŠXREF.SMMUHEREŒAddrofMMU;0ifwe'renotusingone.ŠXREF.SDATEDate.0ŠXREF.STIMESLIC‹#ofD timerticspertimeslice.7ŠXREF.STIMINTVŒTimeintervalbetweentimerinterrupts.+ŠXREF.SPTMADDRŒAddroftimerchip(Z8036).,‰XREF†FC_TABLEŒSYSPAR--functioncodetable0‰XREF†SUPERMMUŒSYSPAR--supervisorrootpointer0‰XREF†TDEFTYPSYSPAR--TypeofmemoryforTCB's ‰XREF†TCBHDSYSPAR--TCBheader *„Others:.ŠXREFƒCRASHSAV‹PlacetoSAVEinfoifweCRASH.  ‰IFNE‚\MMU‰PAGEO**V***************************************************************************** *ˆINITMMU*@*ˆIfwearesupposedtohaveanMMB851,verifyitsexistenceand*ˆinitializeitby:*<*ˆ1.Makeasupervisortreethatmapslogical=physicaland?*‹installpointertothetreeinsupervisordataandsupervisor5*‹programslotsinthefunctioncodetableinSYSPAR.*:*ˆ2.Makeatranslationtreeforeachtaskthatisalready*‹inthesystemviasysgen.*=*ˆ3.‚WritetothetranslationcontrolregisteroftheMMB851.*A*ˆIfwearesupposedtohaveanMC68851,verifyitsexistenceand*ˆinitializeitby:*F*ˆ1.‚Writeapagedescriptorintothesupervisorrootpointerregister*ŒoftheMC68851.*:*ˆ2.Makeatranslationtreeforeachtaskthatisalready*‹inthesystemviasysgen.*>*ˆ3.‚WritetothetranslationcontrolregisteroftheMC68851.*,*ˆEntry:„Supervisormode,interruptlevel7.*!*ˆRegisterusage:…01234567*™D‚S‰S *™A‚SS‡S**™P=entryparameter*™R=returnedparameter*™S=savedandrestored*™*=destroyed*"*ˆExit:‚Goodreturn-RTS‚toINIT.*Badreturn‚-BSRKILLER***,*ˆRevisionhistory(addnewchangestotop).*ˆDate†Author‰ChangesF*ˆ--------‚-------------‚---------------------------------------------9*ˆ01/28/86‚BAWŒChangedthewaythesupertreeisbuilt--$*¡buildasubtreeforeachpartition.*ˆ01/28/86‚BAWŒDeleted24bitaddressingstuff;*ˆ12/10/85‚BAWŒChangedFIND_MEM_ENDtofindhighestaddress%*¡regardlessofRAMorROMpartition.?*ˆ10/31/85‚CBS‰ChangedcallstoKILLERtouseKILL.EXECT0macro/*ˆ10/30/85‚BAWŒFixedFIX_1_TCBfor32bitstuff *ˆ06/25/85‚BAWŒOriginalwriting.*O*^******************************************************************************‰PAGE ‰SECTIONƒ8 ‰OPT‡P=68020‰OPT‡BRS‰OPT‡MEX INITMMU: ‰SAVE†D0/D4-D5/D7/A0-A1/A5‰IFEQ†\MMU-MMB851*****************************‚THISISFORTHEMMB851‚***************************** *@*‚SetupDFCwith'7'forCPUspacesothatwhenwedoMOVESthe?*‚writewillalwaysbetoCPUspace,wheretheMMB851isfound.;*‚AlsosetupSFCwith'7'sowecanreadMMB851registers.* ‰MOVE.L„#7,D0‰MOVEC.LƒD0,DFC‰MOVEC.LƒD0,SFC 3‰MOVE.L„#$10000,MMUHERE…AddressofMMBinCPUspace*>*‚Makeatreeforthesupervisorthatmapslogicaltophysical**/*‚Allocatememoryforafaketasksegmenttable?*‚Weneedenough256bytepagestoholdonetasksegmenttable.**@FAKE_TSTEQU‡((TSTLEN+VPGMASK)&NOTVPGMASK)>>8ˆPagesforfakeTST ‰CLR.L…D07‰MOVE.B„TDEFTYP,D0ŠGetsametypeofmemoryasforTCB's‰SWAP†D0’Puttypeinupperword6‰MOVE.W„#FAKE_TST,D0ˆPutnumberofpagesinlowerword)‰MOVE.L„D0,A0A0<--type,numberofpages‰MOVE.L„#T0PAGAL,D0‰TRAP†#0‰BRA.S…INIT1_OK2‰KILL.EXECT0ƒINITIO1AG,PA_FTST_FAILED„CrashsystemINIT1_OK ‰MOVE.L„A0,A5**‚Clearoutthepageofmemory* ‰MOVE.W„#63,D1INIT2„CLR.L…(A0)+‰DBRA†D1,INIT2 *&*‚GetindexintoMMUinfoareaintoD5*‰MOVE.W„#TSTMMU,D5*'*‚GetindexintoattributeareaintoD7*‰MOVE.W„#TSTATTR,D7*%*‚Buildasubtreeforeachpartition.*‰BSR.L…FIX_PARTITIONS‰BSRNE.LƒGOTOKIL3*B*‚ThepointertothesupervisortableshouldnowbeintheTSTPMMU*‚slotoftheTST.C*‚MovethetwolongwordsstartingatTSTPMMU(A5)intotheSUPERMMU*‚slotinSYSPAR.*‰MOVE.L„TSTPMMU(A5),SUPERMMU ‰MOVE.L„TSTPMMU+4(A5),SUPERMMU+4  B*vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv*;*‚Now,setupatreefE ormemory-mappedI/Oupatthetopof*‚thememorymap.*‰BSR.L…FIX_MMIO‰BSRNE…GOTOKILR**‚DeallocatethefakeTSTpage.* ‰MOVE.L„A5,A0‰MOVE.L„#FAKE_TST,D1‰MOVE.L„#T0PGFR,D0‰TRAP†#0‰BRA.L…INIT3_OK%‰KILL.EXECT0ƒINITIO1AG,PF_FTST_FAILEDINIT3_OK‰ENDC‰IFEQ†\MMU-M68851*****************************‚THISISFORTHEM68851‚*****************************  3‰MOVE.L„#$10000,MMUHERE…AddressofMMBinCPUspace *-*‚MovesomethingintostatuspartofSUPERMMU*=‰MOVE.L„#LDPDES,SUPERMMU+4„Putthecodeforapagedescriptor%*¦intotheaddressfieldofSUPERMMU.** ‰ENDC‰PAGE.**********************************************,*‚HEREFOREITHERTHEMMB851ORTHEM68851‚*.********************************************** *>*‚Now,setupatranslationtreeforeachTCBthathasalready*‚beencreatedatsysgentime.*‰BSR.L…FIX_TCBS‰BSRNE…GOTOKIL2*)*‚Setuptranslationforsupervisorspace*‰XPMOVE„SUPERMMU,SRP  *+*‚WritetotheTranslationControlregister*‚Addresstranslationenabled$*‚FunctioncodetablelookupenabledI*‚pagesize,initialskip,andTIxfieldsassetupinMMBPMMU.XEQUATES.EQ*1TCCNTLƒSET‡1<meansOK* couldn'tbuildtree**,*ˆRevisionhistory(addnewchangestotop).*ˆDate†Author‰ChangesF*ˆ--------‚-------------‚--------------------------------------------- *ˆ01/28/86‚BAWŒOriginalwriting.*O*^******************************************************************************1MEMSIZE‚EQU‡12’SizeofaMEMTABLentryinINITDATFIX_PARTITIONS: ‰SAVE†D0/D1/D4/A0**‚Setupfortrapcall:* ‰CLR.W…D4 7‰LEA‡MEMTABL(PC),A0‹A0<---addressofmemorymaptable*¦fromINITDAT‰REPEAT3‰MOVE.L„#T0ADDSEG,D0ˆMustloadD0eachtimebecause*¦TRAP#0handlerdestroysit. 5‰MOVE.L„MAPSTRA(A0),D1†Beginningaddressofpartition ‰CLR.B…D12‰MOVE.L„D1,TSTLB(A5,D5)…intologicalstartaddress 2‰MOVE.L„MAPENDA(A0),D1†Endingaddressofpartition(‰CLR.B…D1’Useaddresswithlowestbyte0‰SUB.L…#$100,D10‰MOVE.L„D1,TSTLE(A5,D5)…intologicalendaddress**‚Dothetrapcall*‰TRAP†#0(‰BEQ.L…ADD_OK„Seenoteinmoduleheader. ‰BRA‡FIX_PERRADD_OK 6ŒLEA„MEMSIZE(A0),A0…Getnextpartition's‚MEMTABLentry 5‰UNTIL.Wƒ(A0)‚‚#$FFFF„EndflagforMEMTABLtable. ‰RESTOREƒD0/D1/D4/A0‰RTS FIX_PERR ‰MOVE.B„#1,D0‰RESTOREƒD0/D1/D4/A0‰RTS‰PAGEO**V***************************************************************************** *ˆFIX_MMIO*$*ˆBuildatranslationtreeforMMIO.5*ˆMaplogical=E physicalfrom$FFF00000to$FFFFFC00.**ˆEntry:„CalledbyINITMMU.*’A5=addressoffakeTST"*’D5.W=offsetintoTSTMMU‚ofTST#*’D7.W=offsetintoTSTATTRofTST*’TSTAATTR(A5,D7)=0*!*ˆRegisterusage:…01234567 *™D‚S‰PƒP *™A‚SS‡P**™P=entryparameter*™R=returnedparameter*™S=savedandrestored*™*=destroyed**ˆExit:‚RTS‚toINITMMU&*’CC=translationtreesetupok*’CC=ranoutofmemory**,*ˆRevisionhistory(addnewchangestotop).*ˆDate†Author‰ChangesF*ˆ--------‚-------------‚--------------------------------------------- *ˆ09/19/85‚BAWŒOriginalwriting.*O*^***************************************************************************** FIX_MMIO: ‰SAVE„D0/A0-A1   ‰MOVE.L„#$FFF00000,TSTLB(A5,D5)‰MOVE.L„#$FFFFFC00,TSTLE(A5,D5)‰MOVE.L„#T0ADDSEG,D0 ‰TRAP†#0 !‰BEQ.SƒFIXM_OKSeenoteinheader‰BRA.SƒFIXM_ERR  FIXM_OK‰SETCCEQ‰RESTORED0/A0-A1‰RTSFIXM_ERR‰SETCCNE‰RESTOREƒD0/A0-A1‰RTS‰PAGEO**V***************************************************************************** *ˆFIX_TCBS*B*ˆBuildatranslationtreeforeachTSTcurrentlyontheTCBlist.**ˆEntry:„CalledbyINITMMU.*!*ˆRegisterusage:…01234567*™D‚S*™A„S**™P=entryparameter*™R=returnedparameter*™S=savedandrestored*™*=destroyed**ˆExit:‚RTS‚toINITMMU&*’CC=translationtreesetupok*’CC=ranoutofmemory**,*ˆRevisionhistory(addnewchangestotop).*ˆDate†Author‰ChangesF*ˆ--------‚-------------‚--------------------------------------------- *ˆ09/19/85‚BAWŒOriginalwriting.*O*^*****************************************************************************‰PAGE FIX_TCBS: ‰SAVE†D0/A1‰MOVE.L„TCBHD,D0‰WHILEƒ‚DO ‘MOVE.LD0,A1‘BSR„FIX_1_TCB ‘BNE„FIX_ERR ‘MOVE.LƒTCBALL(A1),D0 ‰ENDW 6FIX_ERR‚EQU‚*‰Notethatconditioncodesgetsetabove.‰RESTORE‚D0/A1‰RTS‰PAGEO**V***************************************************************************** *ˆFIX_1_TCB*7*ˆBuildatranslationtreeforthistask,allsegments.**ˆEntry:„CalledbyFIX_TCBS*’A1=addressofTCB*!*ˆRegisterusage:…01234567 *™D‚S‰SƒS*™A„P‡S**™P=entryparameter*™R=returnedparameter*™S=savedandrestored*™*=destroyed**ˆExit:‚RTS‚toINITMMU&*’CC=translationtreesetupok*’CC=ranoutofmemory**,*ˆRevisionhistory(addnewchangestotop).*ˆDate†Author‰ChangesF*ˆ--------‚-------------‚---------------------------------------------/*ˆ10/30/85‚BAWŒFixedFIX_1_TCBfor32bitstuff *ˆ09/19/85‚BAWŒOriginalwriting.*O*^***************************************************************************** FIX_1_TCB: ‰SAVE„D0/D5/D7/A5 8‰MOVE.L‚TCBTST(A1),A5‰A5<---tasksegmenttableaddress‰MOVE.W‚TCBATTR(A1),D0'‰AND.Wƒ#1<‚THENRealtimetask... 0‘MOVE.L‚SUPERMMU,TSTPMMU(A5)‚Usesupervisortree ‘MOVE.L‚SUPERMMU+4,TSTPMMU+4(A5) 6‘MOVE.W‚#0,TSTASN(A5)‰ClearTSTASNtoindicaterealtm ‰ELSEšNotarealtimetask... .‘ST†TSTASN(A5)ŒSetTSTASNtoindicatenotreal*°time  *..................... ‘CLR.L‚D5‘MOVE.W#TSTMMU,D5‘MOVE.W#TSTATTR,D7‘REPEAT“BTST#SEGAUSED,TSTAATTR(A5,D7) “IF‚‚THEN ˜CLR.WŠD4˜MOVE.L‰#T0ADDSEG,D0˜TRAP#0"˜BEQ.S‚FIX_1_OKŠSeenoteinheader˜BRA.S‚FIX_1_ERR FIX_1_OKEQU‡*“ENDI “ADD.W…#TSTMLEN,D5“ADD.W…#TSTALEN,D7 ‘UNTIL‚D5‚‚#TSTMEND *........ ‰ENDI ‰CMP.BƒD0,D0‰RESTOREƒD0/D5/D7/A5‰RTS FIX_1_ERR ‰MOVE.B‚#1,D0‰RESTOREƒD0/D5/D7/A5‰RTS‰ENDC ‰IFEQ†\MMU ‰SECTIONƒ8INITMMU:‰RTS‰ENDCŠPAGE O**********************************************************************************ˆSTARTTIMER„(Z8036TIMER)**N**************************************************************************F *******ˆCounterModeSpecReg*CSC†SET‡$00‘Initialize/CSC†SET‡1<<7+CSCŒEnableContinuousSingleCycle***C1EN…SET‡$00‘Initializeit C1EN…SET‡1<<2+C1EN‹EnableportA#C1EN…SET‡1<<6+C1EN‹EnableCounter1 C1EN…SET‡1<<7+C1EN‹EnableportB*)*ˆsetupcontrol/statusregforCounter1* C1SR…SET‡$001C1SR…SET‡0<<0+C1SR‹Thisisaread-onlystatusbit*¦showscountinprogress,C1SR…SET‡1<<1+C1SR‹Thisisawrite-onlybit,*¦triggerenabled8C1SR…SET‡1<<2+C1SR‹Count-downsequencetoresumeenabled0C1SR…SET‡0<<3+C1SR‹Readcountercontroldisabled.C1SR…SET‡0<<4+C1SR‹Int.error,aread-onlybitC1SR…SET‡0<<5+C1SR‹Int.pending"*¦1=thetimerrequiresservicing)C1SR…SET‡1<<6+C1SR‹Enabletimerinterrupt-C1SR…SET‡1<<7+C1SR‹Int.underserviceenabled* TIMERST: +ŠSAVEƒD0/A1ŽSaveregisterswe'llblowaway. E‰MOVE.WTIMSLIC(PC),TIMESLIC‚#TIMERINTERRUPTSBEFORETASKINTERRUPT‰LEA„Z8036,A1GETTIMERADDRESS#‰MOVE.LA1,PTMADDRSAVEITFOREXEC!‰BEQ.L‚TIMERBEBRANCHIFNOTIMER)‰PEA„TIMERBE(PC)ŒWHERETOGOONBUSERROR$‰MOVE.W#'BE',-(A7)ŒSETBUSERRFLAG**7‰MOVE.B„#CSC,CT1MO(A1)†Setcontinuousmodeoncounter1*‰NOP›ThisNOPforcestheexecutionunitto$*§waitforthebusinterfaceunitto%*§completeona68020(incaseweget*§abuserror). *H*‚Getthetimer"tick"interval(inmilliseconds)andsaveitinSYSPAR.*8ŠMOVEƒTIMINTVA(PC),D0„D0<--tickintervalfromINITDAT.#ŠMOVEƒD0,TIMINTV‰SaveitinSYSPAR. *L*‚Nowcalculatethenumberofcyclesthetimershouldcountbetween"ticks."N*‚Apparentlywehavea2Mhzinput,(4Mhzinput,butZ8036runsathalfspeed)@*‚so,(#ofcycles/tick)‚=‚(2000cycles/msec)*(#ofmsec/tick)*'ŠMULUƒ#2000,D0‹D0<--#ofcycles/tick.>ŠMOVE.BD0,CT1PL(A1)‡Givethechiptheleastsignificantpart.3ŠLSR„#8,D0ŽGivethechipthemost‚significantpart.ŠMOVE.BD0,CT1PM(A1)‡* **ˆNowstarttimerticking*'‰MOVE.B#C1EN,MCCR(A1)ˆENABLECOUNTER1(‰MOVE.B#C1SR,C1CSR(A1)‡ENABLEINTERRUPT.‰ADD.L‚#6,A7‘REMOVE'BE'ANDBUSERRORADDRESS !ŠRESTORED0/A1Restoreregisters.‰RTSšBACKTOINIT***;TIMERBE‚MOVE.L‚#CRASHSAV,PTMADDR‚USEDUMPPOINTERFORTIMER!ŠRESTORED0/A1Restoreregisters.‰RTS˜BACKTOINIT ***‰PAGE ‰XDEF„INITIO ‰SECTIONƒ8.**********************************************.*ƒValuestoputinVME130controlregisters.*.************************************************ˆMasterInterruptControlReg* INTCN„SET‡$00$INTCN„SET‡0<<0+INTCNŠ0=Clearreset*¦1=Softwarereset3INTCN„SET‡1<<1+INTCNŠEnablerightjustifiedaddress1INTCN„SET‡0<<2+INTCNŠTimervectorincludesstatus *¦disabled2INTCN„SET‡0<<3+INTCNŠPortBvectorincludesstatus *¦disabled2INTCN„SET‡0<<4+INTCNŠPortAVectorincludesstatus *¦disabled6INTCN„SET‡1<<5+INTCNŠ1=noint.vectorduringanIACK*¦0=outputtheint.vector6INTCN„SET‡0<<6+INTCNŠ1=disableint.fromlowerchain*¦0=operatenormally,INTCN„SET‡1<<7+INTCNŠEnablemasterinterrupt**‚Controlreg0*+ICNT0„SET…$00VMEbusint.vectornumberreg*£Thesebitsareenabledduring *£IACKcycles**‚Controlreg1*ICNT1„SET…$00Initializeit'ICNT1„SET…0<<0+ICNT1‰NA(notavailable)ICNT1„SET…0<<1+ICNT1‰NAICNT1„SET…0<<2+ICNT1‰NAICNT1„SET…0<<3+ICNT1‰NAICNT1„SET…0<<4+ICNT1‰NAICNT1„SET…0<<5+ICNT1‰NAICNT1„SET…0<<6+ICNT1‰NA"ICNT1„SET…1<<7+ICNT1‰DisableMPIRQ**‚Controlreg2* ICNT2„SET…$009ICNT2„SET…0<<0+ICNT2‰1=VMEbusint.statusint.disabled%*£0=VMEbusint.statusint.enabledICNT2„SET…0<<1+ICNT2‰AckVBIRQ1ICNT2„SET…0<<2+ICNT2‰AckVBIRQ2ICNT2„SET…0<<3+ICNT2‰AckVBIRQ3ICNT2„SET…0<<4+ICNT2‰AckVBIRQ4ICNT2„SET…0<<5+ICNT2‰AckVBIRQ5ICNT2„SET…0<<6+ICNT2‰AckVBIRQ6 ICNT2„SET…1<<7+ICNT2‰maskVBIRQ7**‚Controlreg3* ICNT3„SET…$00ICNT3„SET…0<<0+ICNT3‰Reserved0ICNT3„SET…0<<1+ICNT3‰InterruptRequestLevelIL0ICNT3„SET…0<<2+ICNT3‰IL1ICNT3„SET…0<<3+ICNT3‰IL2*§IL0-2correspondstoVBIRQxICF NT3„SET…0<<4+ICNT3‰Reserved;ICNT3„SET…\SYSFAIL<<5+ICNT3‚0=disableSYSFAILinterrupts. *§1=enable‚SYSFAILinterrupts.0ICNT3„SET…1<<6+ICNT3‰0=disableallinterrupts.*§1=enableallinterrupts.4ICNT3„SET…0<<7+ICNT3‰DisallowVMEbusmonitoroverrun *£interrupt**‚Controlregister5.*ICNT5„SET…$00Initializeit.)ICNT5„SET…0<<0+ICNT5‰1=SYSFAILasserted*£0=SYSFAILnegated2*ICNT5„SET…1<<1+ICNT5‰1=32bitVMEbusaddressing*£0=24bitVMEbusaddressing/*ICNT5„SET…1<<2+ICNT5‰1=32bitdataportsize*£0=16bitdataportsize>ICNT5„SET…1<<3+ICNT5‰1=disableVMX32busdiagnosticinterrupt**£0=enableVMX32busdiagnosticinterrupt8ICNT5„SET1<<4+ICNT50=letPALdecode68020addresses.)*§1=letVMX32busdecode68020addresses*=ICNT5„SET1<<5+ICNT50=forceVMX32buswritestotheVMEbus.'*§1=allowwritesacrosstheVMX32bus.***ICNT5„SET0<<6+ICNT50=enableVMX32bus.*§1=disableVMX32bus.*ICNT5„SET…0<<7+ICNT5ŒReserved**G*‚SetupthevaluewithwhichtoinitializetheCACR.‚ThisvalueshouldD*‚causethecachetobeflushedand,ifsysgenparameterCACHE020so%*‚specifies,shouldenablethecache.*CACR_VALUE‚SETŠ1<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>•NOTICEš<<<<<<<*‚>>>>>>>µ<<<<<<<>*‚>>>>>>>…WhenincorporatinganydriversduringSYSGEN„<<<<<<<?*‚>>>>>>>…thatrequirememoryallocatedforthemasperƒ<<<<<<<?*‚>>>>>>>…thedriverpackageinstructions-thisistheƒ<<<<<<<,*‚>>>>>>>…spotthefile(s)gointo!!–<<<<<<<*‚>>>>>>>µ<<<<<<<=*‚>>>>>>>…Thisisalsothespotforcodeforadriver…<<<<<<<>*‚>>>>>>>…that‚requiresothertypesofinitialization,ƒ<<<<<<<0*‚>>>>>>>…such‚asclearinganinterrupt.‘<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>‘MERGEITHERE—<<<<<<<*<*ˆWhenyouwritethecodethatistobemergedhere,wrapit*ˆaroundwiththefollowing:*:*ˆAtthebeginning,withDRVRxOUTreferringtoyourunique*ˆlabel,putthiscode:*'*‹PEA„DRVRxOUT(PC)„IFBUSERROROCCURS,*¢RETURNORGOONTONEXT*¢DRIVER'SINITIALIZATION**‹MOVE.W#'BE',-(A7)…SAVE'BUSERROR'FLAG*9*ˆTheninsertthecodetodowhatyouneedtodoforthis*ˆparticulardriver.**ˆAttheend,putthis:***‹LEA„6(A7),A7ˆREMOVEBUSERRORFROMSTACK*DRVRxOUTƒEQU„**=*ˆInthisway,ifthecodeforonedrivercausesabuserror,.*ˆthecodeforotherdriverswillbeexecuted.*E*‚>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<G***********************************************************************    ‰ENDNNNNG NNN**ˆVME131.SYSTEM.CI*L****************************************************************************@*‚Thisfilecontainsallboard/systemdependenciesforVME131.Œ*&*‚Itiscalledfrom"&.VERSADOS.CD".¦**Ê*E*‚Theusershouldnothavetomodifythisfileexceptunderextreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ONBOARDRAMADDRESSES*>*†VMEbusdriversrequirethefollowingtargetsystemdependentB*†variablestobedefinedwhenthemacrofileDUALPORT.MCisused:<*†NotethattheONBD$HIparametermayvaryontheVME110and<*†andVME101systemsdependingonthesizeandnumberofRAM<*†chipsusedontheprocessorcard.‚Thevaluesshownarethe?*†minimumrequirements.Modifythatparametertomatchyourown*†systemifdifferent.**;ONBD$LOƒ=$0‹Lowvalueforon-boardram(asseenbydriver)RAM$SQ„=$0‹Differencebetweenon-boardramaddressasseenby*˜driveranddevice.JOFFBD$LO‚=\ONBD$LO+\RAM$SQLowvalueforon-boardram(asseenbydevice)JOFFBD$HI‚=\ONBD$HI+\RAM$SQHighvaluforon-boardram(asseenbydevice) FMSG‰******************************************************************MSG‰**ˆAddressesoftimer,etc.FMSG‰****************************************************************** #TIMER…=$FFFB0000„Addressoftimer.3CLOCKFRQ‚=0ŒNumberofclocktickspermillisecond.7PANEL…=$0‹Addressoffrontpanel(notusedonVME131).5TRCFLAGƒ=0ŒTraceflag.‚Zeroimpliesdon'ttrace.‚The/*˜settingofbitsintheTRCFLAGparameterwill1*˜controlwhicheventscauseanentrytobebuilt*˜inthetracetable.*˜Bit#inTRCFLAG†Event *›15‘TRAP#1*›14‘I/Ointerruptnotclaimed*°byusertask.*›13‘Timerinterrupt.*›12‘Usertrap(2-15)*›11‘Exception *›10‘Dispatch*œ9‘I/Ointerruptclaimedby *°usertask*œ8‘ReturnfromLOADMMUë5ôü   ! 7 (*œ7‘Simulatedinterrupt*œ6‘SYSFAILinterrupt.**?SYSFAILƒ=0ŒDetermineswhetherornottheoperatingsystemwill5*˜beinterruptedwhenSYSFAILisassertedonthebus.2*˜SomeintelligentboardswillassertSYSFAILwhen0*˜theyexperienceafailureofsomekind.‚Ifyou5*˜havesuchboardsinthesystem,ANDTHEDRIVERSFOR3*˜THESEBOARDSHAVESYSFAILHANDLERS,thenyouwill2*˜probablywantSYSFAILinterruptsenabled.‚Ifthe4*˜appropriateSYSFAILhandlersarenotwritten,then5*˜takingaSYSFAILinterruptwillhangupthesystem,0*˜soyouwouldwantSYSFAILinterruptsdisabled.!*š0=disableSYSFAILinterrupts. *š1=‚enableSYSFAILinterrupts.FMSG‰******************************************************************.MSG‰**ƒLocalterminal/printerdeviceaddresses#MSG‰**ƒShortI/Ospacebaseaddress&MSG‰**ƒShortI/OspaceaddressoffsetsFMSG‰****************************************************************** :&VECTNOƒ=$FFŠStartingVectorNumber‚usedbyIOC.IPCDRV.AG8LTDA$01ƒ=$FFFH B0040„VME131localterminalport1address8LTDA$02ƒ=$FFFB0050„VME131localterminalport2address 3SIOBASEƒ=$FFFF0000„BaseaddressofShortI/Ospace&DEVADDƒ=\SIOBASE.RMS.CIfileandhasavalueequal!*˜totheinitialprogramcounter.*@*ˆThefollowingparametersareusedtodefinememorypartitions.NNNNA*ˆIfonlypartition0exists,thenMEMEND2shouldbesettozero.*:*ˆTheMMB851usesapproximately$400bytesofoverheadfor,*ˆevery$40000bytesofmemorytobemapped.9*ˆThussupervisormemory(wherethetranslationtreesare>*ˆbuilt)mustbelargeenough($38000works,$28000doesnot).;*ˆAlso,ifyouwanttoputmemoryatahighaddresswithno5*ˆmemoryinbetween,youmustpartitionmemoryintoa;*ˆpartitionforlowaddresses,andapartitionforthehigh8*ˆaddresses.Otherwiseyoucouldrunoutofmemorywhile!*ˆbuildingthetranslationtrees.*NH NNNN**E*********************************************************************** WARNING !!!!*L* Set up MEMEND2 to start on a PGSIZE = \PGSIZE boundary, where PGSIZE is as* defined in VME131.RMS.CI*E********************************************************************* IFNEˆ\MMU*ƒIFEQˆ\MEMALOC…Ifusingbestfitalgorithm3†NOPARTSƒ=2ŒNumberofmemorypartitions(neededby†*˜&.INITMEM.AG)@†MEMEND1ƒ=$58000‡Theendƒofpartition0(assumedtostartat0)+†MEMEND2ƒ=$58000‡Thestartofpartition1.*†MEMEND3ƒ=$400000†Theendƒofpartition1.ƒENDC/ƒIFNEˆ\MEMALOC…Ifusingbuddybuffersalgorithm3†NOPARTSƒ=1ŒNumberofmemorypartitions(neededby†*˜&.INITMEM.AG)A†MEMEND1ƒ=$400000†Theendƒofpartition0(assumedtostartat0)'†MEMEND2ƒ=$0‹Thestartofpartition1.%†MEMEND3ƒ=$0‹Theendƒofpartition1.ƒENDCENDCIFEQˆ\MMU‰IfNOMMU3ƒNOPARTSƒ=1ŒNumberofmemorypartitions(neededbyƒ*˜&.INITMEM.AG)AƒMEMEND1ƒ=$400000†Theendƒofpartition0(assumedtostartat0)'ƒMEMEND2ƒ=$0‹Thestartofpartition1.%ƒMEMEND3ƒ=$0‹Theendƒofpartition1.ENDCNNN:WHERLOAD‚=0ŒMemoryaddresswherebootfilewillbeloaded6*˜Ifnonzero,VERSAdoswillbemovedatinitialization*˜time.7CACHEF„=0ŒNotusedbyVME131(neededfor&.INITDAT.AG) =CACHE020‚=1ŒThisflagdetermineswhetherthe68020'son-chip!*˜instructioncachewillbeused:*š0=don'tuseit. *š1=useit. 7*˜Thefollowingflagsdeterminewhichtypesofaccesses8*˜willgetcachedbytheVME131'sinstruction/datacache1*˜Ineachcase,0=don'tcacheit,1=cacheit.0CACHEUIƒ=1Œ1=cacheuser‡instructionaccesses.)CACHEUDƒ=1Œ1=cacheuser‡dataˆaccesses.6CACHESIƒ=1Œ1=cachesupervisorinstructionaccesses./CACHESDƒ=1Œ1=cachesupervisordataˆaccesses.3ASMTYPEƒ=1ŒTypeofassemblertouseforINITIO1.AG *œ0-UseASM*œ1-UseASM020 >****************************************************************‰Vectornumbers£**>***************************************************************-IOCVEC1ƒ=$50ŠI/Ochannelinterrupt1vector.-IOCVEC2ƒ=$51ŠI/OchannelinteI rrupt2vector.-IOCVEC3ƒ=$52ŠI/Ochannelinterrupt3vector.-IOCVEC4ƒ=$53ŠI/Ochannelinterrupt4vector.**IOCLVL1ƒ=2ŒI/Ochannelinterrupt1level.*IOCLVL2ƒ=3ŒI/Ochannelinterrupt2level.*IOCLVL3ƒ=4ŒI/Ochannelinterrupt3level.*IOCLVL4ƒ=5ŒI/Ochannelinterrupt4level. EMSG‰*****************************************************************)MSG‰**‚Parametersabouttablesizes,etc.EMSG‰***************************************************************** *0*‚PAGESIZENEEDSTOBEAMULTIPLEOFPGSIZEFROM*‚VME131.RMS.CI*PAGESIZE‚=\PGSIZE†FromRMS.CI**)ASN‡=0Œ#ofaddressspaces--notusedbut!*˜neededtosatisfy&.INITDAT.AG. EMSG‰***************************************************************** MSG‰**½**#MSG‰**ŒADDRESSANDDATABUSSIZE˜**=MSG‰**…---------------------------------------------------…**'MSG‰**ŒA$SIZE=‚WIDTHOFADDRESSBUS“** MSG‰**½**)MSG‰**Œ32…=‚32BITEXTENDEDADDRESSING**)MSG‰**Œ24…=‚24BITSTANDARDADDRESSING** MSG‰**½**$MSG‰**ŒD$SIZE=‚WIDTHOFDATABUS–** MSG‰**½**#MSG‰**Œ32…=‚32BITLONGWORDDATA“**MSG‰**Œ16…=‚16BITWORDDATA—** MSG‰**½**EMSG‰***************************************************************** D$SIZE„=32 A$SIZE„=32 GMSG‰*******************************************************************>MSG‰*ƒCopythesysteminitializerintoM68XXX.INIT.RObasedon:MSG‰*ƒthetypeofmemoryallocationdefinedatRMSGENtimeMSG‰*ƒin.RMS.CD.GMSG‰******************************************************************* IFEQˆ\MEMALOC'ƒ=COPY‡BESTFIT.INIT.RO,M68XXX.INIT.RO;Y ƒIFEQˆ\MMU†=COPY‡&.MTYPE.SI,MTYPE.SI;YƒENDC ƒIFNEˆ\MMU†=COPY‡MULT.MTYPE.SI,MTYPE.SI;YƒENDCENDC IFNEˆ\MEMALOC%ƒ=COPY‡BUDDY.INIT.RO,M68XXX.INIT.RO;Yƒ=COPY‡&.MTYPE.SI,MTYPE.SI;YENDC GMSG‰*******************************************************************?MSG‰*ƒCopyC40O44.SYSPAR.ROinto&.SYSPAR.ROtomakeitgenericAMSG‰*ƒfor.LGfilesandpossibleforsysgeningmorethan1systemMSG‰*ƒperaccount#GMSG‰******************************************************************* $=COPY‡C40O44.SYSPAR.RO,&.SYSPAR.RO;YNNN'VME117 COPYSGENCF 0 0¬  $INITIO1 AG Q Q@  $SYSTEM CI ¢ ¢º  $CNFGDRVRCI à Ã&í  $IFDRVR CI ì ìT  $I =/*<=/*‚VME117.COPYSGEN.CF‚-‚ChainfiletocopyfilesforSYSGEN=/*'=/*‚--‚FORCECATALOGTOBESET=VME117 =USE :.VME117=/*D=/*†ThischainfilecopiesthosefilesrequiredtodoaSYSGENintoa'=/*†aspecifiedvolumeandusernumber.=/*;=/*ƒInvokeas:„=VME117.COPYSGEN.CF‚arg1,arg2,arg3,arg4,arg5 =/*…where:.=/*‰Arg1=\1„SourcevolumenameŒ(mustspecify).=/*‰Arg2=\2„TargetvolumenameŒ(mustspecify).=/*‰Arg3=\3„TargetusernumberŒ(mustspecify)-=/*‰Arg4=\4„COPYoptionletter(s)‰(optional)=/*—B=bothcopy&verify=/*—P=packfiles =/*—Y=overwriteiffileexists*=/*—N=skipcopyiffileexistsƒ(default)*=/*–VT=verify&showonly1stdifference2=/*‰Arg5=\5„includePCDRVdriverfilesƒ(optional)=/*—PCDRV=includethem=OPT N=/RX=\0=/RD=0 =/IF RX < 3…=/RD=1=/ENDIF =/IF RX > 5…=/RD=1=/ENDIF =/IF RD=0 …=/IFC\1Š=/RD=1…=/ENDIF …=/IFC\2Š=/RD=2…=/ENDIF …=/IFC\3Š=/RD=3…=/ENDIF …=/IFC\4 Š=/IFC\5=ARG\1,\2,\3,N,-PCDRVŠ=/ELSE=ARG\1,\2,\3,N,\5Š=/ENDIF…=/ENDIF …=/IFC\5ˆ=ARG\1,\2,\3,\4,-PCDRV…=/ELSEˆ=/IFEQ"PCDRV"\5ˆ=/ELSE‹=/IFEQ"-PCDRV"\5‹=/ELSEŽ=/RD=5‹=/ENDIFˆ=/ENDIF…=/ENDIF=/ENDIFJ=/*‚SetArg6sothisfilecan'tbererundirectlyw/osettingproperargs!=ARG \1,\2,\3,\4,\5,ARGS=OPT -N =/IF RD <> 0Mƒ=/*INVOCATIONERROR!Insufficient,null,and/orinvalidargumentspecified!ƒ=/R?ƒ=END=/ENDIF *=/* ==== Start driver related file copying=/IFEQ "PCDRV"\5O=/*----------------------------------------------------------------------------"=/* Copy all RAD1 files for sysgen=/@„\1:9998.COPYGEN.RADDRV.CFO=/*----------------------------------------------------------------------------!=/* Copy all RIO files for sysgen=/@„\1:9998.COPYGEN.RIODRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME600 files for sysgen=/@„\1:9998.COPYGEN.M600DRV.CF (P 1' 9( AO=/*----------------------------------------------------------------------------$=/* Copy all VME605 files for sysgen=/@„\1:9998.COPYGEN.M605DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME610 files for sysgen=/@„\1:9998.COPYGEN.M610DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME615 files for sysgen=/@„\1:9998.COPYGEN.M615DRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME625 files for sysgen=/@„\1:9998.COPYGEN.M625DRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all PCDRV common files for sysgen=/@„\1:9998.COPYGEN.PCDRV.CF=/ENDIFO=/*----------------------------------------------------------------------------,=/* Copy all driver library files for sysgen=/@„\1:9998.COPYGEN.DRVLIB.CFO=/*----------------------------------------------------------------------------(=/* Copy all SCC driver files for sysgen=/@„\1:9998.COPYGEN.SCCDRV.CFO=/*----------------------------------------------------------------------------)=/* Copy all MPSC driver files for sysgen=/@„\1:9998.COPYGEN.MPSCDRV.CFO=/*----------------------------------------------------------------------------5=/* Copy all VME117 local PRT driver files for sysgen=/@„\1:9998.COPYGEN.P117DRV.CFO=/*----------------------------------------------------------------------------(=/* Copy all PRT driver files for sysgen=/@„\1:9998.COPYGEN.PIADRV.CFO=/*----------------------------------------------------------------------------+=/* Copy all VME050 driver files for sysgen=/@„\1:9998.COPYGEN.M050DRV.CF=/@„\1:9998.COPYGEN.P050DRV.CF=/@„\1:9998.COPYGEN.MPCCJ DRV.CFO=/*----------------------------------------------------------------------------F=/* Copy all VME316 (VMEbus to I/O channel interface) files for sysgen=/@„\1:9998.COPYGEN.M316DEF.CFO=/*----------------------------------------------------------------------------/=/* Copy all VME435 (mag tape) files for sysgen=/@„\1:9998.COPYGEN.M435DRV.CFO=/*----------------------------------------------------------------------------)=/* Copy all SCSI driver files for sysgen=/@„\1:9998.COPYGEN.SCSIDRV.CFO=/*----------------------------------------------------------------------------7=/* Copy all RWIN1 (Winchester) driver files for sysgen=/@„\1:9998.COPYGEN.RWINDRV.CFO=/*----------------------------------------------------------------------------*=/* Copy all disk related files for sysgen=/@„\1:9998.COPYGEN.DSKPARAM.CFO=/*----------------------------------------------------------------------------=/*=/**=/* ==== Start system related file copyingO=/*-----------------------------------------------------------------------------=/*‚CopyallVME117specificfilesforsysgen=/@„\1:9998.COPYGEN.VME117.CFO=/*----------------------------------------------------------------------------!=/* Copy all EET files for sysgen=/@„\1:9998.COPYGEN.EET.CFO=/*----------------------------------------------------------------------------'=/* Copy all FHS & IOS files for sysgen=/@„\1:9998.COPYGEN.FHSIOS.CFO=/*----------------------------------------------------------------------------!=/* Copy all FMS files for sysgen=/@„\1:9998.COPYGEN.FMS.CFO=/*----------------------------------------------------------------------------$=/* Copy all LOADER files for sysgen=/@„\1:9998.COPYGEN.LOADER.CFO=/*----------------------------------------------------------------------------<=/* Copy all BEGIN/END files for sysgen (OSLIST and VERSAPT)=/@„\1:9998.COPYGEN.BEGINEND.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOI files for sysgen=/@„\1:9998.COPYGEN.IOI.CFO=/*----------------------------------------------------------------------------'=/* Copy all CNFG TASK files for sysgen=/@„\1:9998.COPYGEN.CNFGTASK.CFO=/*----------------------------------------------------------------------------!=/* Copy all IOC files for sysgen=/@„\1:9998.COPYGEN.IOC.CFO=/*----------------------------------------------------------------------------!=/* Copy all .EQ files for sysgen=/@„\1:9998.COPYGEN.EQ.CFO=/*----------------------------------------------------------------------------2=/*‚Copyalltherestoftherootfilesforsysgen=/@„\1:9998.COPYGEN.ROOT.CFO=/*----------------------------------------------------------------------------=/*2=/*†VME117.COPYSGEN.CF‚completed.‰Haveaniceday!=/*N=/*‚No"NOARG"and"=END"becauseindependentdriverreleaseitemsmayfollow!NNNNJ N7INITIO„IDNT‚45,0RMS68KI/OinitializerfortheVME117.O*******************************************************************************O*******************************************************************************O**********************************************************************************É***A***…ROUTINE:‚INITIO--RMS68KI/OINITIALIZERFORTHEVME117.Š******É***J***…ENVIRONMENT:‚PartoftheRMS68KexecfortheMotorola68000family.***(***‡Copyright1983byMotorola,Inc.¢******É***D***…FUNCTION:‚RoutinesfromthismodulearecalledbytheRMS68K‡***E***‡routineINITduringsysteminitialization.‚Allboard-specific„***.***‡initializationisdoneinthismodule.œ******É***G***…NOTES:‚ThismoduleisSUBSed,ASMed,andLINKedatSYSGENtime.„***?***‡Allmoduleswillrunatlevel7andinsupervisormode.‹******É***O*******************************************************************************O*******************************************************************************O******************************************************************************* *,*‚Revisionhistory(addnewchangestotop).*…Date†Author‚ChangesI*…--------‚------‚-------------------------------------------------------9*†3/26/86ƒBAW„AddedreadofM117ERCLRtoclearinterruptsF*†10/29/85‚CBS„ChangedthewaywecallKILLERtouseKILL.EXECT0macro;*†6/26/85ƒCBS„Madenewequatefilefor117controlregister<*†3/25/85ƒBAW„Addedrealtimeclockreadtosettimeonboot*†2/15/85ƒBAW„Initialwriting.N I R ZL b; jK rR z[ ‚: Š ’-* * *‚XDEF's.*,ŠXDEFƒINITMMUŒRoutinetoinitializetheMMU.,ŠXDEFƒTIMERSTŒRoutinetostartupthetimer.3ŠXDEFƒINITIORoutinetosetupalltheotherboard-*§specifichardware. * *‚XREF's.* *…Routines:*…ParametersfromINITDAT:-ŠXREFƒTIMSLICŒ#oftimerticspertimeslice.)ŠXREFƒTIMERAAddroftimerchip(M68B40).3ŠXREFƒTIMINTVA‹#ofmillisecondsbetweeninterrupts*ŠXREFƒCLOCKFRQ‹#ofcyclespermillisecond*…SYSPARvariables:ŠXREF.SDATEDate.1ŠXREF.STIME_LEFTŠmsuntilnextsignificanteventNNNK NN0ŠXREF.STIMESLIC‹#oftimerticspertimeslice.7ŠXREF.STIMINTVŒTimeintervalbetweentimerinterrupts.ŠXREF.STIMINTV4,ŠXREF.SPTMADDRŒAddroftimerchip(M68B40).0ŠXREF.SNSENextsignificanteventabsolutetime$ŠXREF.SMIDNIGHT‹msoflastmidnight *„Others:.ŠXREFƒCRASHSAV‹PlacetoSAVEinfoifweCRASH. **‚Includedfiles:**‰&.UTILITY.MC*‰M6840.M6840.EQ*‰VME117.MM58274.EQ*‰VME117.CTRLREG.EQ *‰&.KILL.MC*‰&.KILLEXEC.EQ *‰&.STR.EQ*ŠNOLISTŠINCLUDE&.UTILITY.MCŠINCLUDEM6840.M6840.EQŠINCLUDEVME117.MM58274.EQŠINCLUDEVME117.CTRLREG.EQŠINCLUDE&.KILL.MCŠINCLUDE&.KILLEXEC.EQŠINCLUDE&.STR.EQŠLISTŠPAGEO*******************************************************************************O**********************************************************************************É***/***…ROUTINE:‚INITMMU--NOPFORTHEMVME117œ******É******É******…ENTRYCONDITIONS:³***+***‡Supervisormode,interruptlevel7.Ÿ******É***-***…EXITCONDITIONSDIFFERENTFROMENTRY:Ÿ******É***O*******************************************************************************O*^*****************************************************************************  ŠSECTION8ŠOPT„BRS INITMMU:,‰RTS˜It'seasyforustoinitializetheMMU,*£sincewedon'thaveone.* ‰PAGEL*****************************************************************************)*„Startthetimerrunning.Š(M68B40timer)**&*ƒWeusetimer3inthefollowingway:*-*ˆMostsignificantbyte‚<---(TIMINTVA*4)-1*.*ˆLeastsignificantbyte<---|CLOCKFRQ|-1*¤|--------| *¤|_‚4…_|?*ˆTheMSBdecrementsonceaftertheLSBhasdecrementeddownto/*ˆ-1.‚ThetheLSBresetstoitsoriginalcount..*ˆWhentheMSBhits-1,thereisaninterrupt.*;*ˆThusthereisaninterruptafterCLOCKFRQ*TIMERVAcycles.*TIMERST:-‰BSR‡RTC_STŠGettimeintosysparfrombattery*¢backedupclock.DŠMOVE.WTIMSLIC(PC),TIMESLIC‚Setthesysgenparameterwhichdictates%*§the#oftimerticspertimeslice.'‰MOVE.LTIMERA(PC),A1‡GETTIMERADDRESS#‰MOVE.LA1,PTMADDRŠSAVEITFOREXEC$‰BEQ.S‚TIMER_EXITŠBRANCHIFNOTIMER)‰PEA„TIMERBE(PC)‰WHERETOGOONBUSERROR$‰MOVE.W#'BE',-(A7)‰SETBUSERRFLAG3‰MOVE.B#$01,CR2SR(A1)†ALLOWWRITETOCONTROLREG1&‰MOVE.B#$01,CR13(A1)‡ALLTIMERSRESET$‰MOVE.L#CLOCKFRQ,D0ˆCLOCKFREQUENCY‰DIVUƒ#4,D0DIVIDEBY4#‰SUB.W‚#1,D0CLOCKINTERRUPTSAT-1*‰MOVE.WTIMINTVA(PC),D1…INTERRUPTINTERVAL ‰MOVE.WD1,TIMINTVŠSAVEFOREXEC‰MULUƒ#4,D1MULTIPLYBY4*‰SUB.W‚#1,D1SUBTRACT1-TIMERGOESTO-1!‰MOVE.WD1,TIMINTV4‰SAVEFOREXEC‰LSL.W‚#8,D1PUTINHIGHBYTE)‰ADD.W‚D1,D0VALUEFORTIMER3(2HALVES)‰MOVEP‚D0,MSBT3(A1)ˆSETTIMER34‰MOVE.W#256,D0VALUEFORTIMER1(OVERFLOWCOUNTER)‰MOVEP‚D0,MSBT1(A1)ˆSETTIMER18‰MOVE.B#$00,CR2SR(A1)†ALLOWWRITETOCONTROLREGISTER3;‰MOVE.B#$C6,CR13(A1)‡T3--INTERNALCLOCK,INTERRUPTENABLED,*£OUTPUTENABLED,8-BITMODE8‰MOVE.B#$01,CR2SR(A1)†ALLOWWRITETOCONTROLREGISTER1;‰MOVE.B#$00,CR13(A1)‡T1--EXTERNALCLOCK,ENABLEALLTIMERS3‰ADDQ.L#6,SPEverythingwentOK;justgetthatbus,‰RTS˜errorjunkoffthestackandgobackto*£INIT.*;TIMERBE‚MOVE.L‚#CRASHSAV,PTMADDR‚USEDUMPPOINTERFORTIMER TIMER_EXITRTS–ReturntoINIT.*@@@@ŠPAGEO********************************************************************************2*ˆREADREALTIMEBATTERY-BACKEDUPCLOCK(MM58274)*O**************************************************************************K ***** **G*‚Thismacrowillverifythatabyteiswithinaspecifiedrange.‚IfitH*‚isnotwithintherange,abranchistakentoRANGE_ERR.‚ThesyntaxisD*„CHECK_RANGE.,,F*‚DistanceisSforshortbranches,Lforlongbranches,ornothingif*‚thedefaultwilldo.6*‚Thebytetocheckistreatedasanunsignedinteger.*CHECK_RANGE MACRO ŠCMP.B‚\2,\1ŠBLO.\0RANGE_ERR ŠCMP.B‚\3,\1ŠBHI.\0RANGE_ERRŠENDM  *@@@@@!*@@@ VME117.INITIO1.MG -- 3/28/857*‚THISISANEWWAYTOCALCULATENUMBEROFMILLISECONDS<*‚ANDDATEAFTERREADINGTHEMM58274BATTERYBACKEDUPCLOCK***‚REGISTERUSE:*’0ƒ1ƒ2ƒ3ƒ4ƒ5ƒ6*ˆA* *ˆD‰*ƒ*ƒ*ƒ*ƒ**)*ˆA1=addressofbattery-backedupclock'*ˆD0=accumulatedmillisecondsoftime-*ˆD1=secondsandminutesasreadfromclock(*ˆD2=hoursanddaysasreadfromclock(*ˆD3=monthandyearasreadfromclock*ˆD4=workregister*H*‚TheMM58472storesitstimedatainbinarycodeddecimalandwhenread/*‚youseeanFintheupper4bitsofthebyte.*1*‚Followalongwiththisexampleinthecomments:*#*ˆthetimeis13:29:45ƒdate‚3/26/85* *‚readas**ˆF5F4F9F2ƒF3F1F6F2„F3F0F5F8**‚fromtheMM58472.*RTC_ST:&****‚Atsomepoint,addthistosyspar‰MOVE.L„#RTC_TIMER,A1*‰PEA‡RTC_BE(PC)ŠWheretogoifthereisno#‰MOVE.W„#'BE',-(A7)‰realtimeclock RTC_LOOP:6‰MOVEP.LƒUNIT_SEC(A1),D1…Readtheclockintoregisters‰MOVEP.LƒUNIT_HRS(A1),D2‰MOVEP.LƒUNIT_MON(A1),D3+‰MOVEP.LƒUNIT_SEC(A1),D4…Readsecondsagain)‰CMP.L…D1,D4Ifitsdifferent,tryagain. ‰BNE‡RTC_LOOP ,‰CLR.L…D0’D0willcontaintotalmilliseconds**ƒD0=0**‰secminhr‚daymon‚yr+*ƒD1=F5F4F9F2‰D2=F3F1F6F2ŠD3=F3F0F5F8**ƒD4=F5F4F9F2**‚FirstweworkwithD1*"‰AND.L…#$0F0F0F0F,D1‡D1=05040902‰AND.L…#$0F,D4D4=00000002 ‰MULU†#10,D4ŽD4=00000014†(&20)‰LSR.L…#8,D1D1=00050409(‰ADD.B…D1,D4D4=0000001D†(&29)‚minutes‰CHECK_RANGE.L‚D4,#0,#59*‰MULU†#60,D4ŽD4=000006CC†(&1740)seconds(‰ADD.L…D4,D0AddnumberofsecondstoD0**‰LSR.L…#8,D1D1=00000504‰CLR.L…D4’D4=00000000‰MOVE.B„D1,D4D4=00000004(‰MULU†#10,D4ŽD4=00000028‚(&40seconds)‰LSR.L…#8,D1D1=00000005(‰ADD.L…D1,D4D4=0000002D‚(&45seconds)‰CHECK_RANGE.L‚D4,#0,#59*‰ADD.L…D4,D0D0=000006F9‚(&1785seconds).‰MULU†#1000,D0ŒD0=001B3CA8‚(&17850000MSEC)*F*‚NowD0holdsthetotalsofarofthenumberofmillisecondsfromthe*‚minutesandsecondsfields.*&*‚Let'sworkonthehoursfieldinD2.**‰hr‚daymon‚yr*ƒD2=F3F1F6F2ŠD3=F3F0F5F8*"‰AND.L…#$0F0F0F0F,D2‡D2=03010602‰MOVE.L„D2,D1D1=03010602‰SWAP†D1’D1=06020301‰AND.L…#$0F0F,D1ŒD1=00000301‰CLR.L…D4’D4=00000000‰MOVE.B„D1,D4D4=00000001&‰MULU†#10,D4ŽD4=0000000A„(&10hours)‰LSR.L…#8,D1D1=00000003&‰ADD.B…D1,D4D4=0000000D„(&13hours)‰CHECK_RANGE.LD4,#0,#23**-‰MOVE.L„#3600*1000,D1‡Millisecondsinanhour/‰BRA‡CALCLOOPŒLoopuntilnumberofmilliseconds.CALCHRS‚ADD.L…D1,D0inhoursfieldcalculated.CALCLOOPDBRA†D4,CALCHRS *1*‚D0nowcontainsthegrandtotalofmilliseconds*‰ADD.L…TIME_LEFT,D0 ‰MOVE.L„D0,NSEŽStoreitforexec‰CLR.L…MIDNIGHT***ƒNowworkonthedate**‰hr‚daymon‚yr*ƒD2=03010602ŠD3=F3F0F5F8*"‰AND.L…#$0F0F0F0F,D3‡D3=03000508 ‰CLR.L…D0‰MOVE.B„D3,D0D0=00000008&‰MULU†#10,D0ŽD0=00000050‚(&80years)‰LSR.W…#8,D3D3=00030005&‰ADD.B…D3,D0D0=00000055‚(&85years)‰CHECK_RANGE‚D0,#0,#99%‰ADD.W…#1900,D0ŒD0=000007C1‚(&1985)!‰SWAP†D0’D0=07C10000‚(YYYY0000) ‰SWAP†D3’D3=05080300 ‰CLR.L…D4‰MOVE.B„D3,D4D4=00000000‰MULU†#10,D4ŽD4=00000000‰LSR.L…#8,D3D3=00050803&‰ADD.B…D3,D4D4=00000003‚(&03month)%‰ADD.B…D4,D0D0=07C10003‚(YYYY00MM)‰CHECK_RANGEƒD0,#1,#12%‰LSL.W…#8,D0D0=07C10300‚(YYYYMM00)**‰hr‚day*ƒD2=03010602*‰AND.L…#$0F0F,D2‹D2=00000602 ‰CLR.L…D4‰MOVE.B„D2,D4D4=00000002%‰MULU†#10,D4ŽDL 4=00000014ƒ(&20days)‰LSR.L…#8,D2D2=00000006%‰ADD.B…D2,D4D4=0000001Aƒ(&26days)‰CHECK_RANGE‚D4,#1,#31%‰ADD.B…D4,D0D0=07C1031Aƒ(YYYYMMDD) *7*‚Thetimeanddatelookreasonable,solet'skeepthem*‰BSR‡DATEGOŽConverttoordinal!‰MOVE.L„D0,DATEGivedatetoexec  0‰ADDQ.L„#6,A7Remove'BE'andbuserrormessages‰RTS*@*‚Ifwecomehere,oneofthefieldsreadfromtheclockchipis)*‚"whacko".‚Setsystemtimeanddayto0.*1RANGE_ERR‚MOVE.L‚TIME_LEFT,NSE‡Timeofday<---0‰CLR.L…MIDNIGHT‰MOVE.L„#0,DATE ‰ADDQ.L„#6,A7‰RTS*4*‚Ifwecomehere,thereisnorealtimeclockfound*RTC_BE****…MOVE.L„#CRASHSAV,RTC_TIMER‰RTS    *@@@ŠPAGEO*******************************************************************************2*ˆDATECONVERSIONSFROMONEBINARYFORMTOANOTHER*Ç6*ˆORDINALDATE-->DAYNUMBERWHEREDAY1=JAN11980***ˆCALL *’BSR‡DATEGO*¦BINARYGREGORIAN-YYYYMMDD*§TO*¦BINARYORDINALƒ-DAYNUMBER*ˆINPUT'*’D0=DATETOBECONVERTED--YYYYMMDD**ˆOUTPUT#*’D0=CONVERTEDDATE‡--DAYNUMBER*O******************************************************************************* ‰SECTIONƒ8**ˆNON-LEAPDAYSBEFORETABLE¥*Ç=DATEDBNLDC.W0,31,59,90,120,151,181,212,243,273,304,334,365Œ*Ç*ˆLEAPDAYSBEFORETABLE©*Ç>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>•NOTICEš<<<<<<<*‚>>>>>>>µ<<<<<<<>*‚>>>>>>>…WhenincorporatinganydriversduringSYSGEN„<<<<<<<?*‚>>>>>>>…thatrequirememoryallocatedforthemasperƒ<<<<<<<?*‚>>>>>>>…thedriverpackageinstructions-thisistheƒ<<<<<<<,*‚>>>>>>>…spotthefile(s)gointo!!–<<<<<<<*‚>>>>>>>µ<<<<<<<=*‚>>>>>>>…Thisisalsothespotforcodeforadriver…<<<<<<<>*‚>>>>>>>…that‚requiresothertypesofinitialization,ƒ<<<<<<<0*‚>>>>>>>…such‚asclearinganinterrupt.‘<<<<<<<*‚>>>>>>>µ<<<<<<<*‚>>>>>>>‘MERGEITHERE—<<<<<<<*<*ˆWhenyouwritethecodethatistobemergedhere,wrapit*ˆaroundwiththefollowing:*:*ˆAtthebeginning,withDRVRxOUTreferringtoyourunique*ˆlabel,putthiscode:*'*‹PEA„DRVRxOUT(PC)„IFBUSERROROCCURS,*¢RETURNORGOONTONEXT*¢DRIVER'SINITIALIZATION**‹MOVE.W#'BE',-(A7)…SAVE'BUSERROR'FLAG*9*ˆTheninsertthecodetodowhatyouneedtodoforthis*ˆparticulardriver.**ˆAttheend,putthis:***‹LEA„6(A7),A7ˆREMOVEBUSERRORFROMSTACK*DRVRxOUTƒEQU„**=*ˆInthisway,ifthecodeforonedrivercausesabuserror,.*ˆthecodeforotherdriverswillbeexecuted.*E*‚>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<G*********************************************************************** ‰END M NN**ˆVME117.SYSTEM.CI*L****************************************************************************@*‚Thisfilecontainsallboard/systemdependenciesforVME117.Œ*&*‚Itiscalledfrom"&.VERSADOS.CD".¦**Ê*E*‚Theusershouldnothavetomodifythisfileexceptunderextreme‡**‚circumstances.º*L**************************************************************************** <*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**†ONBOARDRAMADDRESSES*>*†VMEbusdriversrequirethefollowingtargetsystemdependentB*†variablestobedefinedwhenthemacrofileDUALPORT.MCisused:<*†NotethattheONBD$HIparametermayvaryontheVME110and<*†andVME101systemsdependingonthesizeandnumberofRAM<*†chipsusedontheprocessorcard.‚Thevaluesshownarethe?*†minimumrequirements.Modifythatparametertomatchyourown*†systemifdifferent.**0*ƒTheMVME117doesnothaveanydualportedRAM.=*ƒTheremaybeeither128Kbytesor512bytesofRAMonboard,4*ƒdependingonwhichtypeofMVME117boardyouhave.**;ONBD$LOƒ=$0‹Low‚valueforon-boardram(asseenbydriver)@ONBD$HIƒ=$1FFFF‡Highvalueforon-boardram(asseenbydriver)ARAM$SQ„=$0000ˆDifferencebetweenon-boardramaddressasseenby*˜driveranddevice.JOFFBD$LO‚=\ONBD$LO+\RAM$SQLow‚valueforon-boardram(asseenbydevice)KOFFBD$HI‚=\ONBD$HI+\RAM$SQHighvalueforon-boardram(asseenbydevice) FMSG‰******************************************************************MSG‰**ˆAddressesoftimer,etc.FMSG‰****************************************************************** TIMER…=$F50000†Addressoftimer*5CLOCKFRQ‚=1000‰Numberofclocktickspermillisecond*œ1MHzinternalclock"PANEL…=$0‹Addressoffrontpanel.5TRCFLAGƒ=0ŒTraceflag.‚Zeroimpliesdon'ttrace.‚The/*˜settingofbitsintheTRCFLAGparameterwill1*˜controlwhicheventscauseanentrytobebuilt*˜inthetracetable. š1 £4 «1 ³%*˜Bit#inTRCFLAG†Event *›15‘TRAP#1*›14‘I/Ointerruptnotclaimed*°byusertask.*›13‘Timerinterrupt.*›12‘Usertrap(2-15)*›11‘Exception *›10‘Dispatch*œ9‘I/Ointerruptclaimedby *°usertask*œ8‘ReturnfromLOADMMU*œ7‘Simulatedinterrupt*œ6‘SYSFAILinterrupt.*FMSG‰******************************************************************.MSG‰**ƒLocalterminal/printerdeviceaddresses$MSG‰***‚ShortI/Ospacebaseaddress'MSG‰***‚ShortI/OspaceaddressoffsetsFMSG‰****************************************************************** 9LTDA$01ƒ=$F48005†VME117localterminal#1deviceaddress9LTDA$02ƒ=$F48001†VME117localterminal#2deviceaddress8LPDA$01ƒ=$F44001†VME117localprinter‚#1deviceaddress2LDDA$01ƒ=$F58001†VME117localdiskˆdeviceaddress ?SYSFAILƒ=0ŒDetermineswhetherornottheoperatingsystemwill5*˜beinterruptedwhenSYSFAILisassertedonthebus.2*˜SomeintelligentboardswillassertSYSFAILwhen0*˜theyexperienceafailureofsomekind.‚Ifyou5*˜havesuchboardsinthesystem,ANDTHEDRIVERSFOR3*˜THESEBOARDSHAVESYSFAILHANDLERS,thenyouwill2*˜probablywantSYSFAILinterruptsenabled.‚Ifthe4*˜appropriateSYSFAILhandlersarenotwritten,then5*˜takingaSYSFAILinterruptwillM hangupthesystem,0*˜soyouwouldwantSYSFAILinterruptsdisabled.!*š0=disableSYSFAILinterrupts. *š1=‚enableSYSFAILinterrupts.*=PARITY„=1ŒDetermineswhetherparitycheckingwillbedoneor1*˜not.‚Itisusuallybesttocheckparity,butin5*˜someapplications,speedmaybeofmoreimportance,8*˜andinthatcasetheusercandisableparitychecking.*š0=disablePARITY*š1=enablePARITY**AREQMODEƒ=1ŒOntheVME117,itispossibletochoosetherequestor2*˜modeofReleasewhendoneorreleaseonrequest.2*˜Releasewhendonemeansthatwhoeverhasthebus*˜releasesitwhenitisdone.3*˜Releaseonrequestmeansthatwhoeverhasthebus0*˜hangsontoituntilsomeoneelserequestsit.1*˜WerecommendreleaseonrequestfortheVME117.**š0=releasewhendone*š1=releaseonrequest*1SIOBASEƒ=$FF0000†BaseaddressofshortI/Ospace****************************************************************‰Vectornumbers£**>***************************************************************-IOCVEC1ƒ=$50ŠI/Ochannelinterrupt1vector.-IOCVEC2ƒ=$51ŠI/Ochannelinterrupt2vector.-IOCVEC3ƒ=$52ŠI/Ochannelinterrupt3vector.-IOCVEC4ƒ=$53ŠI/Ochannelinterrupt4vector.**IOCLVL1ƒ=2ŒI/Ochannelinterrupt1level.*IOCLVL2ƒ=3ŒI/Ochannelinterrupt2level.*IOCLVL3ƒ=4ŒI/Ochannelinterrupt3level.*IOCLVL4ƒ=5ŒI/Ochannelinterrupt4level. FMSG‰******************************************************************3MSG‰**…DescriptiveinfoaboutthisoperatingsystemFMSG‰****************************************************************** 6TIMSLICƒ=2ŒNumberoftimerinterruptspertimeslice.=TIMINTVƒ=10‹Numberofmillisecondsbetweentimerinterrupts.?ROMEADDR‚=$0‹ROMendaddress--definedbyuserforaROMmable,*œsystem.‚Setto$0ifnotaROMablesystem.-*œTheROMstartaddress(ROMSADDR)isdefined3*œinthe.RMS.CIfileandhasavalueequal!*œtotheinitialprogramcounter.*@*ˆThefollowingparametersareusedtodefinememorypartitions.A*ˆIfonlypartition0exists,thenMEMEND2shouldbesettozero.*@NOPARTSƒ=1ŒNumberofmemorypartitions(neededby&.INITMEM.AG)AMEMEND1ƒ=$200000†Theendƒofpartition0(assumedtostartat0).&MEMEND2ƒ=$0‹Thestartofpartition1.$MEMEND3ƒ=$0‹Theendƒofpartition1. ;WHERLOAD‚=$0‹Memoryaddresswherebootfilewillbeloaded6*˜Ifnonzero,VERSAdoswillbemovedatinitialization*˜time.8CACHEF„=0ŒNotusedforVME117(neededfor&.INITDAT.AG)3ASMTYPEƒ=0ŒTypeofassemblertouseforINITIO1.AG *œ0-UseASM*œ1-UseASM020 EMSG‰*****************************************************************)MSG‰**‚Parametersabouttablesizes,etc.EMSG‰***************************************************************** 'PAGESIZE‚=\PGSIZE†From.RMS.CI*6ASN‡=127Š#ofaddressspaces:‚neededby&.INITDAT.AG. GMSG‰*******************************************************************>MSG‰*ƒCopythesysteminitializerintoM68XXX.INIT.RObasedon:MSG‰*ƒthetypeofmemoryallocationdefinedatRMSGENtimeMSG‰*ƒin.RMS.CD.GMSG‰******************************************************************* =COPY‡&.MTYPE.SI,MTYPE.SI;Y IFEQˆ\MEMALOC'ƒ=COPY‡BESTFIT.INIT.RO,M68XXX.INIT.RO;YENDC IFNEˆ\MEMALOC%ƒ=COPY‡BUDDY.INIT.RO,M68XXX.INIT.RO;YENDC GMSG‰*******************************************************************?MSG‰*ƒCopyC20O24.SYSPAR.ROinto&.SYSPAR.ROtomakeitgenericAMSG‰*ƒfor.LGfilesandpossibleforsysgeningmorethan1systemMSG‰*ƒperaccount#GMSG‰****N *************************************************************** $=COPY‡C20O24.SYSPAR.RO,&.SYSPAR.RO;YNN*ˆVME117.CNFGDRVR.CI*'* Configuration file for device driversO*------------------------------------------------------------------------------D* This file sets up the flags used by the "VME117.IFDRVR.CI" file to'* conditionally include device drivers.*K* The user should only have to modify this file to include/exclude drivers.E* If you add more boards/devices, you may have to increase the sysgen>* command T option for more symbols in the "&.SYSGEN.CF" file.*K* To modify specific items of a driver, edit the corresponding driver file,J* "&.xxxxDRV.CI" except as noted where one driver handles multiple boards.O*------------------------------------------------------------------------------ N******************************************************************************L*---‚BOARD/SYSTEMDEPENDENCIESareincludedfromthe&.VERSADOS.CDfile.---;*VME117.SYSTEM.CIƒaddprocessorboard/systemdependencies,(*˜includinglocalterminalsandprinters6*&.CNFGTASK.CI†addO/StaskconfigurationforROM/RAMM***************************************************************************** O*------------------------------------------------------------------------------9NOLTERMƒ=2Œ#ofterminalsonVME117serialports;max=2NOSCC…=\NOLTERM O*------------------------------------------------------------------------------1NOLPRT„=1Œ#oflocal(on-board)printers;max=1 O*------------------------------------------------------------------------------)NVME050ƒ=0Œ#ofVME050ƒSystemController IFGTˆ\NVME0507ƒNT050$1ƒ=0Œ#ofterminalsontheVME050board;max=26ƒNP050$1ƒ=0Œ#ofprinters‚ontheVME050board;max=1ENDC O*------------------------------------------------------------------------------3NOSCSI„=1Œ#oflocalSCSIcontrollerchips;max=1 *F*‚WARNING--‚WeMUSTbeginwithSASIcontrollersontheVME117.ƒIfyouE*‚WARNING--‚need‚toSYSGEN‚SASIcontrollersontheVME117,‚theFIRST »* Ä8 Ì0 Ô- Ü/G*‚WARNING--‚controllermustbeSASI.‚AnyadditionalcontrollerscanbeF*‚WARNING--‚SASIorSCSI,inanyorder.ƒThisonlyappliestodiskson:*‚WARNING--‚theVME117SCSIBusInterface(SASIorSCSI).**H*‚NOTE:ThecontrollernumbermustequaltheSCSIaddressasjumeredon*‰thecontrollerboard.* 8* The following are the supported SASI type controllers:*4* DSKTYP$0 and DSKTYP$2 can be one of the following:>*Š"'DTC520XX'"‚thisreferstoaDTC520BorDTC520DBcontroller)*˜harddisksmax=2†floppydisksmax=24*Š"'OMTI5200'"‚thisreferstoaOMTI5200controller)*˜harddisksmax=2†floppydisksmax=2D*Š"'ADAP4000'"‚thisreferstoaADAPTECACB4000or4000Acontroller*˜harddisksmax=2* 8* The following are the supported SCSI type controllers:*4* DSKTYP$1 and DSKTYP$3 can be one of the following:4*Š"'SABER55M'"‚thisreferstoaSABER55Mcontroller*˜harddisksmax=2?*Š"'EMULMD01'"‚thisreferstoaEMULEXMEDALISTMD01controller*˜harddisksmax=2N 7*Š"'ADAP5500'"‚thisreferstoaADAPTEC5500controller*˜harddisksmax=4 @* The following is the supported Common Command Set controllers:* * DSKTYP$5 can be the following::*Š"'COM_CMD'"ƒthisreferstoanycontrollersupportingthe*˜CommonCommandSet)*˜harddisksmax=4†floppydisksmax=4 IFGTˆ\NOSCSI ƒ*ƒ*‚Controller#0ƒ*!ƒCONTSCS0‚="0"‹Controllernumber1ƒDSKTYP$0‚="'DTC520XX'"‚DTC520xxdiskcontroller#ƒNHSCSI$0‚=2#ofhardƒdiskdrives%ƒNFSCSI$0‚=2#offloppydiskdrivesBƒSCSI0$0ƒ="'H5SASI40'"‚Typeofhardƒdiskoncontroller0,drive0BƒSCSI1$0ƒ="'H5SASI40'"‚Typeofhardƒdiskoncontroller0,drive1CƒSCSI2$0ƒ="'F5DDDSI'"ƒTypeoffloppydiskoncontroller0,drive2CƒSCSI3$0ƒ="'F5DDDSI'"ƒTypeoffloppydiskoncontroller0,drive3ƒ*ƒ*‚Controller#1ƒ*!ƒCONTSCS1‚="1"‹Controllernumber7ƒDSKTYP$1‚="'SABER55M'"‚ADSISABER-55Mdiskcontroller#ƒNHSCSI$1‚=2#ofhardƒdiskdrivesBƒSCSI0$1ƒ="'H5SCSI40'"‚Typeofharddiskoncontroller1,drive0BƒSCSI1$1ƒ="'H5SCSI40'"‚Typeofharddiskoncontroller1,drive1BƒSCSI2$1ƒ="'H5SCSI40'"‚Typeofharddiskoncontroller1,drive2BƒSCSI3$1ƒ="'H5SCSI40'"‚Typeofharddiskoncontroller1,drive3ƒ*ƒ*‚Controller#2ƒ*!ƒCONTSCS2‚="2"‹Controllernumber1ƒDSKTYP$2‚="'DTC520XX'"‚DTC520xxdiskcontroller#ƒNHSCSI$2‚=0#ofhardƒdiskdrives%ƒNFSCSI$2‚=0#offloppydiskdrivesBƒSCSI0$2ƒ="'H5SASI40'"‚Typeofhardƒdiskoncontroller2,drive0BƒSCSI1$2ƒ="'H5SASI40'"‚Typeofhardƒdiskoncontroller2,drive1CƒSCSI2$2ƒ="'F5DDDSI'"ƒTypeoffloppydiskoncontroller2,drive2CƒSCSI3$2ƒ="'F5DDDSI'"ƒTypeoffloppydiskoncontroller2,drive3ƒ*ƒ*‚Controller#3ƒ*!ƒCONTSCS3‚="3"‹Controllernumber7ƒDSKTYP$3‚="'SABER55M'"‚ADSISABER-55Mdiskcontroller#ƒNHSCSI$3‚=0#ofhardƒdiskdrivesBƒSCSI0$3ƒ="'H5SCSI40'"‚Typeofharddiskoncontroller3,drive0BƒSCSI1$3ƒ="'H5SCSI40'"‚Typeofharddiskoncontroller3,drive1BƒSCSI2$3ƒ="'H5SCSI40'"‚Typeofharddiskoncontroller3,drive2BƒSCSI3$3ƒ="'H5SCSI40'"‚Typeofharddiskoncontroller3,drive3ƒ*1ƒ*‚Controller#4isreservedforTapecontrollersƒ*ƒ*ƒ*‚Controller#5ƒ*!ƒCONTSCS5‚="5"‹Controllernumber*ƒDSKTYP$5‚="'COM_CMD'"ƒCommonCommandset#ƒNHSCSI$5‚=0#ofhardƒdiskdrives%ƒNFSCSI$5‚=0#offloppydiskdrivesBƒSCSI0$5ƒ="'H5SCSI40'"‚Typeofhardƒdiskoncontroller5,drive0BƒSCSI1$5ƒ="'H5SCSI40'"‚Typeofhardƒdiskoncontroller5,drive1BƒSCSI2$5ƒ="'H5SCSI40'"‚Typeofhardƒdiskoncontroller5,drive2BƒSCSI3$5ƒ="'H5SCSI40'"‚Typeofhardƒdiskoncontroller5,drive3CƒSCSI4$5ƒ="'F5DDDSI'"ƒTypeoffloppydiskoncontroller5,drive4CƒSCSI5$5ƒ="'F5DDDSI'"ƒTypeoffloppydiskoncontroller5,drive5CƒSCSI6$5ƒ="'F5DDDSI'"ƒTypeoffloppydiskoncontroller5,drive6CƒSCSI7$5ƒ="'F5DDDSI'"ƒTypeoffloppydiskoncontroller5,drive7ƒ*6ƒ*‚Controller#6and#7arereservedforVME117boardsƒ*ENDC O*------------------------------------------------------------------------------2NORWIN„=1Œ#ofRWIN1„Winchestercontrollerboards* IFGTˆ\NORWIN+ƒCONTWIN1‚="8"Š1stRWIN1controllernumber8ƒNHRWIN$1‚=1Œ#ofhardƒdiskdriveson1stRWIN1;max=2:ƒNFRWIN$1‚=2Œ#offloppydiskdriveson1stRWIN1;max=2>ƒRWIN0$1ƒ="'H5WIN40'"‚Typeofhardƒdiskon1stRWIN1,drive0>ƒRWIN1$1ƒ="'H5WIN40'"‚Typeofhardƒdiskon1stRWIN1,drive1@ƒRWIN2$1ƒ="'F5DDDSI'"‚Typeoffloppydiskon1stRWIN1,drive2@ƒRWIN3$1ƒ="'F5DDDSI'"‚Typeoffloppydiskon1stRWIN1,drive3 +ƒCONTWIN2‚="9"Š2ndRWIN1controllernumber8ƒNHRWIN$2‚=0Œ#ofhardƒdiskdriveson2ndRWIN1;max=2:ƒNFRWIN$2‚=0Œ#offloppydiskdriveson2ndRWIN1;max=2BƒRWIN0$2ƒ="'H5WIN40'"‚Typeof1sthardƒdiskon2ndRWIN1,drive0BƒRWIN1$2ƒ="'H5WIN40'"‚Typeof2ndhardƒdiskon2ndRWIN1,drive1DƒRWIN2$2ƒ="'F5DDDSI'"‚Typeof1stfloppydiskon2ndRWIN1,drive2DƒRWIN3$2ƒ="'F5DDDSI'"‚Typeof2ndfloppydiskon2ndRWIN1,drive3ƒ*O Gƒ*…NOTE:‚Youcannotmix5-1/4"and8"floppies.‚Pickoneortheother.ƒ*ENDC O*------------------------------------------------------------------------------@NVME316ƒ=1Œ#ofMVME316‚VMEbustoI/Ochannelinterfaceboards;*˜max=1 O*------------------------------------------------------------------------------5NVME400‚=0#ofMVME400‚dual7201serialportboards IFGT‚\NVME400:ƒNU400$1ƒ=0#ofports/usersonVME400bd.#1;max=2/bd.:ƒNU400$2ƒ=0#ofports/usersonVME400bd.#2;max=2/bd.ENDC O*------------------------------------------------------------------------------9NVME410‚=0#ofMVME410‚dual16-bitparallelportboards IFGT‚\NVME410<ƒNU410$1ƒ=0Œ#ofprintersinuseonVME410board#1:‚max=2<ƒNU410$2ƒ=0Œ#ofprintersinuseonVME410board#2:‚max=2ENDC O*------------------------------------------------------------------------------;NVME435ƒ=0Œ#ofMVME435magtapecontrollerboards;max=2 IFGTˆ\NVME435;ƒN435$1„=0Œ#oftapedrivesonfirst‚MVME435board;max=8<ƒN435$2„=0Œ#oftapedrivesonsecondMVME435board;max=8ENDC O*------------------------------------------------------------------------------7NVME600ƒ=0Œ#ofMVME600‚analoginput‚controllerboards O*------------------------------------------------------------------------------8NVME605ƒ=0Œ#ofMVME605‚analogoutputcontrollerboards IFGTˆ\NVME6059ƒNU605…=0ŒNumberofusers(total)fortheMVME605boardsENDC O*------------------------------------------------------------------------------3NVME610ƒ=0Œ#ofMVME610…AC‚input‚controllerboards IFGTˆ\NVME610GƒM610QSIZ‚=128…MinimumnumberofentriesinInterruptProcessingQueueENDC O*------------------------------------------------------------------------------8NVME615ƒ=0Œ#ofMVME615/616AC‚outputcontrollerboards IFGTˆ\NVME6159ƒNU615…=0ŒNumberofusers(total)fortheMVME615boardsENDC O*------------------------------------------------------------------------------3NVME620ƒ=0Œ#ofMVME620…DC‚input‚controllerboards O*------------------------------------------------------------------------------4NVME625ƒ=0Œ#ofMVME625…DC‚outputcontrollerboards IFGTˆ\NVME6259ƒNU625…=0ŒNumberofusers(total)fortheMVME625boardsENDC O*------------------------------------------------------------------------------#NRAD†=0Œ#ofRAD†RemoteA/Dboards IFGTˆ\NRADƒNURAD…=0Œ#ofRADusersENDC O*------------------------------------------------------------------------------#NRIO†=0Œ#ofRIO†RemoteI/Oboards IFGTˆ\NRIO1ƒNRIOINTƒ=0Œ#ofinterruptlevelsperI/OmoduleENDC O*------------------------------------------------------------------------------N**ˆVME117.IFDRVR.CI*,* Conditional file for VME117 device driversO*------------------------------------------------------------------------------K* This file uses flags setup in the VME117.CNFGDRVR.CI and VME117.SYSTEM.CI0* files to conditionally include device drivers.*J* The user should not have to modify this file to include/exclude drivers.*D*„******************************************************************?*„**‚NOTICE:‚Thefollowingconditionalsareorderdependent.„**3*„**‹Donotchangetheorder!‚Localdrivers1st.‡**9*„**‹Theorderdeterminesdevicenumber(HD00,PR,etc)‚***„**‹formostitems.¤**D*„******************************************************************** IFNEˆ\NVME316Dƒ*‚TheVME316hasnodriver.‚IthasaninitializationmodulethatisJƒ*‚mergedintoSYSINIT.RO.‚TheincludefilebelowdefinestheI/Ochannel.ƒ*ƒINCLUDE…&.M316DEF.CIENDC** IFNEˆ\NOSCSIƒINCLUDE…&.SCSIDRV.CIENDC* IFNEˆ\NORWINƒINCLUDE…&.RWINDRV.CIENDC* O IFNEˆ\NOLTERMƒINCLUDE…&.SCCDRV.CIENDC* IFNEˆ\NOLPRTƒINCLUDE…&.P117DRV.CIENDC* IFNEˆ\NVME050ƒINCLUDE…&.M050DRV.CIENDC* IFNEˆ\NVME400ƒINCLUDE…&.MPSC400.CIENDC* IFNEˆ\NVME410ƒINCLUDE…&.PIA410.CIENDC* IFNEˆ\NVME435ƒINCLUDE…&.M435DRV.CIENDC* IFNEˆ\NVME600ƒINCLUDE…&.M600DRV.CIENDC* IFNEˆ\NVME605ƒINCLUDE…&.M605DRV.CIENDC*IFNEˆ\NVME610+\NVME620ƒINCLUDE…&.M610DRV.CIENDC* IFNEˆ\NVME615ƒINCLUDE…&.M615DRV.CIENDC* IFNEˆ\NVME625ƒINCLUDE…&.M625DRV.CIENDC* IFNEˆ\NRADƒINCLUDE…&.RADDRV.CIENDC* IFNEˆ\NRIOƒINCLUDE…&.RIODRV.CIENDCN äU'VME130 OPYSGENCFÿÿÿÿÿÿÿÿ  NNNNNNN