IMD 1.17: 11/11/2014 11:37:37 82VKXSVRDOS B* VERSADOS/RMS68K SRC/OBJ 4.4 (NOT BOOTABLE) SN=49367 18 OF 30  SR18q82VKXSVRDOS 0420¤a-DAYNUMBERWHEREDAY1=JAN11980***ˆCALL *’BSR‡DATEGO*¦BINARYGREGORIAN-YYYYMMDD*§TO*¦BINARYORDINALƒ-DAYNUMBER*ˆINPUT'*’D0=DATETOBECONVERTED--YYYYMMDD**ˆOUTPUT#*’D0=CONVERTEDDATE‡--DAYNUMBER*O******************************************************************************* ŠSECTION8**‰NON-LEAPDAYSBEFORETABLE*ÇŠMOVE.B#$A0,TCR(A1)‡Settimertogenerateperiodicinterrupts*ŠMOVE.B#$4C,TIVR(A1)†Setuptimervector.(ŠMOVE.L#CLOCKFRQ,D0‡D0=tickspersecond6* Divide to find out how many ticks per 10ms interval.E*ƒWewanttodivideby100butbecauseofthepossibilityofoverflow,*ƒwemustdivideby200,thenmultiplyby2.(ŠDIVUƒ#200,D0ŒD0=ticksper05msinterval*ŠAND.L‚#$0000FFFF,D0†Masktojustquotient'ŠLSL.L‚#1,D0ŽD0=ticksper10msinterval5ŠMOVE.WTIMINTVA(PC),TIMINTVSet10mstiminginterval5ŠLSR.L‚#5,D0ŽD0=valueforpreloadwithprescaleof32"ŠMOVEP.LD0,CPRH-2(A1)…Setpreload)ŠMOVE.B#$A1,TCR(A1)‡Starttimerticking.ŠRESTORED0/A0/A1ŠRTS—BACKTOINITŠPAGEO**************************************************************************** ***O**********************************************************************************É***:***…ROUTINE:‚INITIO--INITIALIZEBOARD-DEPENDENTI/O.‘******É***H***…FUNCTION:‚Thisroutineissortofacatchallforinitializationƒ***/***‡ofthingsotherthanthetimerandMMU.›******É******…NOTES:¾******É***E***…REGISTERUSAGE:‚(A)rgument‚(D)estroyed‚(P)reserved‚(R)eturnedƒ***)***Œ0ƒ1ƒ2ƒ3ƒ4ƒ5ƒ6ƒ7‡SRhi„SRlo(CCR)…******‡D:ƒ.ƒ.ƒDƒ.ƒ.ƒ.ƒ.ƒ.‡.ˆD******‡A:ƒ.ƒ.ƒ.ƒ.ƒ.ƒ.ƒ.ƒP ******É******…ENTRYCONDITIONS:³******É***-***…EXITCONDITIONSDIFFERENTFROMENTRY:Ÿ******É***O*******************************************************************************O******************************************************************************* *7* Equates for the 68230 PI/T in the VME115 environment:*/MODE0„EQU$0FƒMode0:unidirectional8-bitmode-VECTBASEEQU$C0ƒBaseinterruptvectornumberBINTFUNC‚EQU$18ƒInterruptfunctionforPC5/PC6vectoredinterrupts;INTPRIO‚EQU$05ƒInterruptpriority:HI-->H3/H4/H2/H1-->LO=INPUTSƒEQU$00ƒSelectallinputsthrudatadirectionregister?OUTPUTS‚EQU$FFƒSelectalloutputsthrudatadirectionregister3NULLOUT‚EQU$00ƒInitialdataofallnullcharacters&SUBMODE‚EQU$80ƒSubmode1X(bit7set)8H12ENAB‚EQU$00ƒH1disabled(bit3);H2disabled(bit2)6H34ENAB‚EQU$06ƒH3enabled‚(bit3);H4enabled‚(bit2).PITENAB‚EQU$30ƒEnableallinterrupts;Mode0. PAGEINITIO:*"* Get the base address of the chip*<ŠMOVE.LTIMERA(PC),A0†Addressof68230PI/Tinterrupt/timer.*G* Program the interrupt functions used by the serial port (H3), printerI* port (H2) and SYSFAIL (H4), and initialize Port A as outputs and Port B!* as inputs for the printer port.*AŠAND.B‚#MODE0,PGCR(A0)„SetPortModeControlRegisterforMode0.<ŠMOVE.B#VECTBASE,PIVR(A0)Setbaseinterruptvectornumber.EŠMOVE.B#INTFUNC+INTPRIO,PSRR(A0)Setinterruptfunctions&priority.8ŠMOVE.B#OUTPUTS,PADDR(A0)SelectPortAasalloutputs.6ŠMOVE.B#INPUTS,PBDDR(A0)‚SelectPortBasallinputs.@ŠMOVE.B#NULLOUT,PADR(A0)‚SetPortAinitialdataasnullchars.FŠMOVE.B#SUBMODE+H12ENAB,PACR(A0)SetPortAsubmode1X,H1,H2disabledFŠMOVE.B#SUBMODE+H34ENAB,PBCR(A0)SetPortBsubmode1X,H3,H4enabled.** Init Port C as follows:*ˆPC7:ƒInput„TIACK*ˆPC6:ƒInput„PIACK*ˆPC5:ƒOutputƒPIRQ:*ˆPC4:ƒOutputƒSYSFAIL(drivelowtoturnoffstartupmode)*ˆPC3:ƒOutputƒTIRQ*ˆPC2:ƒInput„ExternalClock!*ˆPC1:ƒOutputƒPrinterInputPrime!*ˆPC0:ƒOutputƒPrinterDataStrobe)* Program Outputs as '1'and Inputs as '0'*9ŠMOVE.B#$3B,PCDDR(A0)…ProgramPortCasdescribedabove.1ŠMOVE.B#%00000001,PCDR(A0)‚SetDataStrobehigh.8ŠMOVE.B#PITENAB,PGCR(A0)‚Enableallinterrupts;Mode0.*H* TEMPORARY PATCH SPACE UNTIL WE CAN FIGURE OUT WHAT TO DO WITH THE PI/T*ŠNOPŠNOPŠNOPŠNOP 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,ifth ecodeforonedrivercausesabuserror,.*ˆthecodeforotherdriverswillbeexecuted.*E*‚>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<G***********************************************************************G***********************************************************************O******************************************************************************* ŠEND**ˆVME115.IFDRVR.CI*,* Conditional file for VME115 device driversO*------------------------------------------------------------------------------K* This file uses flags setup in the VME115.CNFGDRVR.CI and VME115.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ˆ\NVME315ƒINCLUDE…&.M315DRV.CIENDC* IFNEˆ\NORWINƒINCLUDE…&.RWINDRV.CIENDC* IFNEˆ\NOLTERMƒINCLUDE…&.DARTDRV.CIENDC* IFNEˆ\NOLPRTƒINCLUDE…&.P115DRV.CIENDC* IFNEˆ\NVME050ƒINCLUDE…&.M050DRV.CIENDC* IFNEˆ\NVME400ƒINCLUDE…&.MPSC400.CIENDC* IFNEˆ\NVME410ƒINCLUDE…&.PIA410.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é:\**ˆVME115.SYSTEM.CI*L****************************************************************************@*‚Thisfilecontainsallboard/systemdependenciesforVME115.Œ*&*‚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(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…=$F81001†Addressoftimer.****************************************************************‰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.AMEMEND1ƒ=$200000†Endingaddrforon-board‚memorymustbe=this.‚NotapplicableforaVME115DMEMEND3ƒ=$00000‡Ceilingaddrforoff-boardmemory(mustbe* 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.---;*VME115.SYSTEM.CIƒaddprocessorboard/systemdependencies,(*˜includinglocalterminalsandprinters6*&.CNFGTASK.CI†addO/StaskconfigurationforROM/RAMM***************************************************************************** O*------------------------------------------------------------------------------:NOLTERMƒ=2Œ#ofterminalsonVME115serialports;max=2 O*------------------------------------------------------------------------------1NOLPRT„=1Œ#oflocal(on-board)printers;max=1 O*------------------------------------------------------------------------------2NORWIN„=1Œ#ofRWIN1„Winchestercontrollerboards* IFGTˆ\NORWIN)ƒCONTWIN1‚="2"Š1stRWIN1iscontroller28ƒNHRWIN$1‚=1Œ#ofhardƒdiskdriveson1stRWIN1;max=2:ƒNFRWIN$1‚=2Œ#offloppydiskdriveson1stRWIN1;max=2BƒRWIN0$1ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon1stRWIN1,drive0BƒRWIN1$1ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon1stRWIN1,drive1DƒRWIN2$1ƒ="'F5DDDSI'"‚Typeof1stfloppydiskon1stRWIN1,drive2DƒRWIN3$1ƒ="'F5DDDSI'"‚Typeof2ndfloppydiskon1stRWIN1,drive3 \)e mu'}*)ƒCONTWIN2‚="5"Š2ndRWIN1iscontroller58ƒNHRWIN$2‚=0Œ#ofhardƒdiskdriveson2ndRWIN1;max=2:ƒNFRWIN$2‚=0Œ#offloppydiskdriveson2ndRWIN1;max=2BƒRWIN0$2ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon2ndRWIN1,drive0BƒRWIN1$2ƒ="'H5WIN15'"‚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‚ontheVM E050board;max=1ENDC O*------------------------------------------------------------------------------8NVME300ƒ=0Œ#ofMVME300‚IEEE488GPIBcontrollerboards O*------------------------------------------------------------------------------I*NOTE:‚TheMVME315boardisnotsupportedduetoincompatibilitybetween@*ˆMVME115andMVME315althoughcontrollerassignmentsreservesa@*ˆslotfortheMVME315boardsinceMVME115(VME115bug)includes*ˆMVME315support.*ANVME315ƒ=0Œ#ofMVME315‚winchester/floppydiskcontrollerboards IFGTˆ\NVME315+ƒCONT3151‚="1"Š1stMVME315iscontroller18ƒNH315$1ƒ=0Œ#ofhardƒdiskdriveson1stVME315;max=2éé:ƒNF315$1ƒ=0Œ#offloppydiskdriveson1stVME315;max=4 AƒM3150$1ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon1stMVME315boardAƒM3151$1ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon1stMVME315boardCƒM3154$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stMVME315boardCƒM3155$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stMVME315boardCƒM3156$1ƒ="'F5DDDSI'"‚Typeof3rdfloppydiskon1stMVME315boardCƒM3157$1ƒ="'F5DDDSI'"‚Typeof4thfloppydiskon1stMVME315board +ƒCONT3152‚="6"Š2ndMVME315iscontroller68ƒNH315$2ƒ=0Œ#ofhardƒdiskdriveson2ndVME315;max=2:ƒNF315$2ƒ=0Œ#offloppydiskdriveson2ndVME315;max=4 AƒM3150$2ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon2ndMVME315boardAƒM3151$2ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon2ndMVME315boardCƒM3154$2ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon2ndMVME315boardCƒM3155$2ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon2ndMVME315boardCƒM3156$2ƒ="'F5DDDSI'"‚Typeof3rdfloppydiskon2ndMVME315boardCƒM3157$2ƒ="'F5DDDSI'"‚Typeof4thfloppydiskon2ndMVME315boardENDC éééO*------------------------------------------------------------------------------@NVME316ƒ=1Œ#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.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 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 VME315 files for sysgen=/@„\1:9998.COPYGEN.M315DRV.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 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=/*----------------------------------------------------------------------------1=/*‚CopyallVME120/128specificfilesforsysgen=/@„\1:9998.COPYGEN.VME12X.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=/*†VME120.COPYSGEN.CF‚completed.‰Haveaniceday!=/*N=/*‚No"NOARG"and"=END"becauseindependentdriverreleaseitemsmayfollow!éé éé**ˆVME120.IFDRVR.CI*,* Conditional file for VME120 device driversO*------------------------------------------------------------------------------K* This file uses flags setup in the VME120.CNFGDRVR.CI and VME120.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ˆ\NVME315ƒINCLUDE…&.M315DRV.CIENDC* IFNEˆ\NORWINƒINCLUDE…&.RWINDRV.CIENDC* IFNEˆ\NOLTERMƒINCLUDE…&.MFPDRV.CIENDC* IFNEˆ\NVME050ƒINCLUDE…&.M050DRV.CIENDC* IFNEˆ\NVME400ƒINCLUDE…&.MPSC400.CIENDC* IFNEˆ\NVME410ƒINCLUDE…&.PIA410.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éªX**ˆVME120.SYSTEM.CI*L****************************************************************************@*‚Thisfilecontainsallboard/systemdependenciesforVME120.Œ*&*‚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ƒ=$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…=$F20001†Addressoftimer‚(MustmatchvalueforMFP_BASE*œin9999.MK68901.MK68901.EQ)2CLOCKFRQ‚=0ŒNumberofclocktickspermillisecond*œ(notusedonVME12X)"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³4¼1Ä.*œ9‘I/Ointerruptclaimedby *°usertask*œ8‘ReturnfromLOADMMU*œ7‘Simulatedinterrupt*œ6‘SYSFAILinterrupt.*FMSG‰******************************************************************.MSG‰**ƒLocalterminal/printerdeviceaddresses$MSG‰***‚ShortI/Ospacebaseaddress'MSG‰***‚ShortI/OspaceaddressoffsetsFMSG‰****************************************************************** 9LTDA$01ƒ=$F20001†VME120localterminal#1deviceaddress 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.EMEMEND1ƒ=$28000-$100‚Endingaddrforon-board‚memorymustbe=this.EMEMEND3ƒ=$200000†Ceilingaddrforoff-boardmemory(mustbe* 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.---;*VME120.SYSTEM.CIƒaddprocessorboard/systemdependencies,(*˜includinglocalterminalsandprinters6*&.CNFGTASK.CI†addO/StaskconfigurationforROM/RAMM***************************************************************************** O*------------------------------------------------------------------------------?NOLTERMƒ=1Œ#ofterminalsonVME120serialports(MFP);max=1 O*------------------------------------------------------------------------------2NORWIN„=1Œ#ofRWIN1„Winchestercontrollerboards* IFGTˆ\NORWIN)ƒCONTWIN1‚="2"Š1stRWIN1iscontroller28ƒNHRWIN$1‚=1Œ#ofhardƒdiskdriveson1stRWIN1;max=2:ƒNFRWIN$1‚=2Œ#offloppydiskdriveson1stRWIN1;max=2>ƒRWIN0$1ƒ="'H5WIN15'"‚Typeofhardƒdiskon1stRWIN1,drive0>ƒRWIN1$1ƒ="'H5WIN15'"‚Typeofhardƒdiskon1stRWIN1,drive1@ƒRWIN2$1ƒ="'F5DDDSI'"‚Typeoffloppydiskon1stRWIN1,drive2@ƒRWIN3$1ƒ="'F5DDDSI'"‚Typeoffloppydiskon1stRWIN1,drive3 )ƒCONTWIN2‚="5"Š2ndRWIN1iscontroller58ƒNHRWIN$2‚=0Œ#ofhardƒdiskdriveson2ndRWIN1;max=2:ƒNFRWIN$2‚=0Œ#offloppydiskdriveson2ndRWIN1;max=2Ì(ÕÝå)íBƒRWIN0$2ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon2ndRWIN1,drive0BƒRWIN1$2ƒ="'H5WIN15'"‚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‚IEEE488GPIBcontroller boards O*------------------------------------------------------------------------------ANVME315ƒ=1Œ#ofMVME315‚winchester/floppydiskcontrollerboards IFGTˆ\NVME315+ƒCONT3151‚="1"Š1stMVME315iscontroller18ƒNH315$1ƒ=1Œ#ofhardƒdiskdriveson1stVME315;max=2ééé:ƒNF315$1ƒ=4Œ#offloppydiskdriveson1stVME315;max=4 AƒM3150$1ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon1stMVME315boardAƒM3151$1ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon1stMVME315boardCƒM3154$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stMVME315boardCƒM3155$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stMVME315boardCƒM3156$1ƒ="'F5DDDSI'"‚Typeof3rdfloppydiskon1stMVME315boardCƒM3157$1ƒ="'F5DDDSI'"‚Typeof4thfloppydiskon1stMVME315board +ƒCONT3152‚="6"Š2ndMVME315iscontroller68ƒNH315$2ƒ=0Œ#ofhardƒdiskdriveson2ndVME315;max=2:ƒNF315$2ƒ=0Œ#offloppydiskdriveson2ndVME315;max=4 AƒM3150$2ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon2ndMVME315boardAƒM3151$2ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon2ndMVME315boardCƒM3154$2ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon2ndMVME315boardCƒM3155$2ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon2ndMVME315boardCƒM3156$2ƒ="'F5DDDSI'"‚Typeof3rdfloppydiskon2ndMVME315boardCƒM3157$2ƒ="'F5DDDSI'"‚Typeof4thfloppydiskon2ndMVME315boardENDC O*------------------------------------------------------------------------------@NVME316ƒ=1Œ#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.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 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 VME315 files for sysgen=/@„\1:9998.COPYGEN.M315DRV.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 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=/*----------------------------------------------------------------------------1=/*‚CopyallVME120/128specificfilesforsysgen=/@„\1:9998.COPYGEN.VME12X.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=/*†VME128.COPYSGEN.CF‚completed.‰Haveaniceday!=/*N=/*‚No"NOARG"and"=END"becauseindependentdriverreleaseitemsmayfollow!éé  éé**ˆVME128.IFDRVR.CI*,* Conditional file for VME128 device driversO*------------------------------------------------------------------------------K* This file uses flags setup in the VME128.CNFGDRVR.CI and VME128.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ˆ\NVME315ƒINCLUDE…&.M315DRV.CIENDC* IFNEˆ\NORWINƒINCLUDE…&.RWINDRV.CIENDC* IFNEˆ\NOLTERMƒINCLUDE…&.MFPDRV.CIENDC* IFNEˆ\NVME050ƒINCLUDE…&.M050DRV.CIENDC* IFNEˆ\NVME400ƒINCLUDE…&.MPSC400.CIENDC* IFNEˆ\NVME410ƒINCLUDE…&.PIA410.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éX**ˆVME128.SYSTEM.CI*L****************************************************************************@*‚Thisfilecontainsallboard/systemdependenciesforVME128.Œ*&*‚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ƒ=$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…=$F20001†Addressoftimer‚(MustmatchvalueforMFP_BASE*œin9999.MK68901.MK68901.EQ)2CLOCKFRQ‚=0ŒNumberofclocktickspermillisecond*œ(notusedonVME12X)"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#4,143<*œ9‘I/Ointerruptclaimedby *°usertask*œ8‘ReturnfromLOADMMU*œ7‘Simulatedinterrupt*œ6‘SYSFAILinterrupt.*FMSG‰******************************************************************.MSG‰**ƒLocalterminal/printerdeviceaddresses$MSG‰***‚ShortI/Ospacebaseaddress'MSG‰***‚ShortI/OspaceaddressoffsetsFMSG‰****************************************************************** 9LTDA$01ƒ=$F20001†VME128localterminal#1deviceaddress 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.EMEMEND1ƒ=$28000-$100‚Endingaddrforon-board‚memorymustbe=this.EMEMEND3ƒ=$200000†Ceilingaddrforoff-boardmemory(mustbe* 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.---;*VME128.SYSTEM.CIƒaddprocessorboard/systemdependencies,(*˜includinglocalterminalsandprinters6*&.CNFGTASK.CI†addO/Staskcon  figurationforROM/RAMM***************************************************************************** O*------------------------------------------------------------------------------:NOLTERMƒ=1Œ#ofterminalsonVME128serialports;max=1 O*------------------------------------------------------------------------------2NORWIN„=1Œ#ofRWIN1„Winchestercontrollerboards* IFGTˆ\NORWIN)ƒCONTWIN1‚="2"Š1stRWIN1iscontroller28ƒNHRWIN$1‚=1Œ#ofhardƒdiskdriveson1stRWIN1;max=2:ƒNFRWIN$1‚=2Œ#offloppydiskdriveson1stRWIN1;max=2BƒRWIN0$1ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon1stRWIN1,drive0BƒRWIN1$1ƒ="'H5WIN15'"‚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=2D)MU])eBƒRWIN0$2ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon2ndRWIN1,drive0BƒRWIN1$2ƒ="'H5WIN15'"‚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ˆ\NVME0503ƒNT050$1ƒ=2Œ#ofterminalsonVME050board;max=22ƒNP050$1ƒ=1Œ#ofprinters‚onVME050board;max=1ENDC O*------------------------------------------------------------------------------8NVME300ƒ=0Œ#ofMVME300‚IEEE488GPIBcontrollerboards O*------------------------------------------------------------------------------ANVME315ƒ=1Œ#ofMVME315‚winchester/floppydiskcontrollerboards IFGTˆ\NVME315+ƒCONT3151‚="1"Š1stMVME315iscontroller18ƒNH315$1ƒ=1Œ#ofhardƒdiskdriveson1stVME315;max=2ééé:ƒNF315$1ƒ=4Œ#offloppydiskdriveson1stVME315;max=4 AƒM3150$1ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon1stMVME315boardAƒM3151$1ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon1stMVME315boardCƒM3154$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stMVME315boardCƒM3155$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stMVME315boardCƒM3156$1ƒ="'F5DDDSI'"‚Typeof3rdfloppydiskon1stMVME315boardCƒM3157$1ƒ="'F5DDDSI'"‚Typeof4thfloppydiskon1stMVME315board +ƒCONT3152‚="6"Š2ndMVME315iscontroller68ƒNH315$2ƒ=0Œ#ofhardƒdiskdriveson2ndVME315;max=2:ƒNF315$2ƒ=0Œ#offloppydiskdriveson2ndVME315;max=4 AƒM3150$2ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon2ndMVME315boardAƒM3151$2ƒ="'H5WIN15'"‚Typeof2ndhardƒdisko  n2ndMVME315boardCƒM3154$2ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon2ndMVME315boardCƒM3155$2ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon2ndMVME315boardCƒM3156$2ƒ="'F5DDDSI'"‚Typeof3rdfloppydiskon2ndMVME315boardCƒM3157$2ƒ="'F5DDDSI'"‚Typeof4thfloppydiskon2ndMVME315boardENDC O*------------------------------------------------------------------------------@NVME316ƒ=1Œ#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 f  iles for sysgen=/@„\1:9998.COPYGEN.RIODRV.CFO=/*----------------------------------------------------------------------------$=/* Copy all VME600 files for sysgen=/@„\1:9998.COPYGEN.M600DRV.CFqPz'‚(Š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 VME315 files for sysgen=/@„\1:9998.COPYGEN.M315DRV.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 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=/*----------------------------------------------------------------------------<=/* 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!éééé6INITIO„IDNTƒ5,1RMS68KI/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*…--------‚------‚-------------------------------------------------------8*†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:)ŠXREFƒKILLERRoutinetocrashthesystem.*…ParametersfromINITDAT:-ŠXREFƒTIMSLICŒ#oftimerticspertimeslice.+ŠXREFƒTIMERAAddroftimerchip(MC146818).ŠXREFƒTIMINTVAŠXREFƒCLOCKFRQ*…SYSPARvariables:6ŠXREF.SMMUHEREŒAddrofMMU;0ifwe'renotusingone.’4›A£E«?³O»AÃ/Ë:Ó>Û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*ŠNOLISTŠINCLUDE&.UTILITY.MCŠINCLUDEM68451.M68451.EQŠINCLUDEM146818.M146818.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…KILLERCRASHIFFIRSTMMUNOTTHERE'‰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.Š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* UIP_LOOP:4‰BTST†#7,REGA(A1)‰WaituntilUIPbitisclearbefore#‰BNE.S…UIP_LOOPŒreadingtimerchip. *‰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,*‚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…SET„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!!–<<<<<<<*‚>>>>>>>µ<<<<<<<=*‚>>>>>>>…Thisisalsothespotfor codeforadriver…<<<<<<<>*‚>>>>>>>…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*********************************************************************** ‰ENDéééééé**ˆ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ˆ\NVME315ƒINCLUDE…&.M315DRV.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.CIENDCéãX**ˆ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) 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‘Simulatedinterruptì6õ2ý-*œ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/printerdeviceaddre sses#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.-*œTheROMstartaddress(ROMSADDR)isdefined3*œinthe.RMS.CIfileandhasavalueequal!*œtotheinitialprogramcounter.@MEMEND1ƒ=$2FF00‡Endingaddrforon-board‚memorymustbe=this.‚NotapplicableforaVME110EMEMEND3ƒ=$280000†Ceilingaddrforoff-boardmemory(mustbe* 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/StaskconfigurationforROM/RAMM***************************************************************************** O*------------------------------------------------------------------------------@NOLTERMƒ=1Œ#ofterminalsonVMES10serialports(TERM);max=1 O*------------------------------------------------------------------------------2NORWIN„=1Œ#ofRWIN1„Winchestercontrollerboards* IFGTˆ\NORWIN)ƒCONTWIN1‚="0"Š1stRWIN1iscontroller08ƒNHRWIN$1‚=1Œ#ofhardƒdiskdriveson1stRWIN1;max=2:ƒNFRWIN$1‚=1Œ#offloppydiskdriveson1stRWIN1;max=2BƒRWIN0$1ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon1stRWIN1,drive0BƒRWIN1$1ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon1stRWIN1,drive1DƒRWIN2$1ƒ="'F5DDDSI'"‚Typeof1stfloppydiskon1stRWIN1,drive2DƒRWIN3$1ƒ="'F5DDDSI'"‚Typeof2ndfloppydiskon1stRWIN1,drive3 )ƒCONTWIN2‚="1"Š2ndRWIN1iscontroller18ƒNHRWIN$2‚=0Œ#ofhardƒdiskdriveson2ndRWIN1;max=2:ƒNFRWIN$2‚=0Œ#offloppydiskdriveson2ndRWIN1;max=2 )*.&(BƒRWIN0$2ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon2ndRWIN1,drive0BƒRWIN1$2ƒ="'H5WIN15'"‚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*------------------------------------------------------------------------------ANVME315ƒ=0Œ#ofMVME315‚winchester/floppydiskcontrollerboards IFGTˆ\NVME315+ƒCONT3151‚="3"Š1stMVME315iscontroller38ƒNH315$1ƒ=0Œ#ofhardƒdiskdriveson1stVME315;max=2:ƒNF315$1ƒ=0Œ#offloppydiskdriveson1stVME315;max=4 AƒM3150$1ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon1stMVME315boardAƒM3151$1ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon1stMVME315boardCƒM3154$1ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon1stMVME315boardCƒM3155$1ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon1stMVME315boardCƒM3156$1ƒ="'F5DDDSI'"‚Typeof3rdfloppydiskon1stMVME315boardCƒM3157$1ƒ="'F5DDDSI'"‚Typeof4thfloppydiskon1stMVME315board +ƒCONT3152‚="4"Š2ndMVME315iscontroller48ƒNH315$2ƒ=0Œ#ofhardƒdiskdriveson2ndVME315;max=2:ƒNF315$2ƒ=0Œ#offloppydiskdriveson2ndVME315;max=4 AƒM3150$2ƒ="'H5WIN15'"‚Typeof1sthardƒdiskon2ndMVME315boardAƒM3151$2ƒ="'H5WIN15'"‚Typeof2ndhardƒdiskon2ndMVME315boardCƒM3154$2ƒ="'F8SDDSM'"‚Typeof1stfloppydiskon2ndMVME315boardCƒM3155$2ƒ="'F8SDDSM'"‚Typeof2ndfloppydiskon2ndMVME315boardCƒM3156$2ƒ="'F5DDDSI'"‚Typeof3rdfloppydiskon2ndMVME315boardCƒM3157$2ƒ="'F5DDDSI'"‚Typeof4thfloppydiskon2ndMVME315boardENDC O*------------------------------------------------------------------------------@NVME316ƒ=0Œ#ofMVME316‚VMEbustoI/Ochannelinterfaceboards;*˜max=1I****NOTE:‚DonotuseVME316inthissystem,asI/Ochannelisalreadyon2****ˆtheCPUboard!‚See"&.DRV316.CI"fordetails. 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=/*--- -------------------------------------------------------------------------,=/* 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.CF2D;(CO=/*----------------------------------------------------------------------------*=/* 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!éééé ééé4INITIO„IDNTƒ5,1RMS68KI/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.‹******É***O*******************************************************************************O*******************************************************************************O*^***************************************************************************** *,*‚Revisionhistory(addnewchangestotop).*…Date†Author‚ChangesI*…--------‚------‚-------------------------------------------------------C*†2/27/85ƒSJF„ChangedtimerinitializationtouseTIMINTVvaluefor+*—thenumberofmillisecondsbetweenticks.*…10/20/84ƒACC„Initialwriting.** * *‚XDEF's.*,ŠXDEFƒINITMMUŒRoutinetoinitializetheMMU.,ŠXDEFƒTIMERSTŒRoutinetostartupthetimer.3ŠXDEFƒINITIORoutinetosetupalltheotherboard-*§specifichardware. * *‚XREF's.* *…Routines:)ŠXREFƒKILLERRoutinetocrashthesystem.*…ParametersfromINITDAT:-ŠXREFƒTIMSLICŒ#oftimerticspertimeslice.(ŠXREFƒTIMERAAddroftimerchip(Z8036).4ŠXREFƒTIMINTVA‹#ofmillisecondsbetweentimertics.4ŠXREFƒCLOCKFRQ‹Frequencyofclock(tosetuptimer).*…SYSPARvariables:6ŠXREF.SMMUHEREŒAddrofMMU;0ifwe'renotusingone.ŠXREF.SDATEDate.K4TR\HdAlEt@|0ŠXREF.STIMESLIC‹#oftimerticspertimeslice.7ŠXREF.STIMINTVŒTimeintervalbetweentimerinterrupts.+ŠXREF.SPTMADDRŒAddroftimerchip(Z8036). *„Others:.ŠXREFƒCRASHSAV‹PlacetoSAVEinfoifweCRASH.  **‚Includedfiles:**‰&.UTILITY.MC*‰Z8036.Z8036.EQ*‰VM04.CTRLSTAT.EQ*‰M68020.CACR.EQ*ŠNOLISTŠINCLUDE&.UTILITY.MCŠINCLUDEZ8036.Z8036.EQŠINCLUDEVM04.CTRLSTAT.EQŠINCLUDEM68020.CACR.EQŠLIST ‰SECTIONƒ8ŠPAGEO*v*****************************************************************************O**********************************************************************************É***/***…ROUTINE:‚INITMMU--INITIALIZETHEˆMMU.•******É***?***…FUNCTION:‚VerifiestheexistenceoftheˆMMUandsetsit…***H***‡upforusebyRMS68K.‚TheVM04'sMMUisnotcurrentlysupported.******É******…NOTES:¾******É***E***…REGISTERUSAGE:‚(A)rgument‚(D)estroyed‚(P)reserved‚(R)eturnedƒ***)***Œ0ƒ1ƒ2ƒ3ƒ4ƒ5ƒ6ƒ7‡SRhi„SRlo(CCR)…******‡D:ƒPƒ.ƒ.ƒ.ƒ.ƒ.ƒ.ƒ.‡.ˆD* *****‡A:ƒPƒ.ƒ.ƒ.ƒ.ƒ.ƒ.ƒP ******É******…ENTRYCONDITIONS:³***+***‡Supervisormode,interruptlevel7.Ÿ******É***-***…EXITCONDITIONSDIFFERENTFROMENTRY:Ÿ******É***O*******************************************************************************O*^*****************************************************************************  ŠOPT„BRS INITMMU: ŠRTS  ŠPAGE O**********************************************************************************ˆSTARTTIMER„(Z8036TIMER)**N*********************************************************************************ˆCounterModeSpecReg*CSC†SET‡$00‘Initialize/CSC†SET‡1<<7+CSCŒEnableContinuousSingleCycle***C1EN…SET‡$00‘Initializeit#C1EN…SET‡1<<6+C1EN‹EnableCounter1*)*ˆ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."&*‚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)ˆ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.**********************************************,*ƒ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‰DisableVERSAbussystemreset7ICNT1„SET…1<<4+ICNT1‰1=VERSAbus32bitdataportsize$*£0=VERSAbus16bitdataportsizeICNT1„SET…0<<5+ICNT1‰NA2ICNT1„SET…1<<6+ICNT1‰EnableRAMbusdiag.interruptICNT 1„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=cacheisnotcleared3ICNT4„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,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***********************************************************************    ‰ENDéééééé**ˆ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/Staskconfigura tionforROM/RAMM***************************************************************************** O*------------------------------------------------------------------------------DNOLTERMƒ=2Š#ofterminalsusingVM04(MK68564)serialports;max=2 O*------------------------------------------------------------------------------=NOVM20„=0Œ#ofVM20…FDC(floppyonlydiskcontrollerboards) *¦twoboardset;usesIPCdriver*¦(see"&.IPCDRV.CI")G*NOTE:‚Ifyouincreasethenumberoffloppiesoneitherthe1stor2nd@*ˆcontrollerboards,youmayneedtoedit&.IPCDRV.CIandchangeB*ˆtheZvaluefrom81to85sothatthefileIOC.VM20DRV.AGcanbe;*ˆassembledduringsysgen.‚The81valueissothatthefileA*ˆIOC.VM20DRV.AGcanbeassembledina384Ksystemduringsysgen. 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„=0Œ#ofVM21…UDC(universaldiskcontrollerboards)%*¦floppy&harddisks;twoboardset;*¦usesIPCdriver*¦(see"&.IPCDRV.CI")I*NOTE:‚Ifyouincreasethenumberofharddiskorfloppiesoneitherthe@*ˆ1stor2ndcontrollerboards,youmayneedtoedit&.IPCDRV.CIF*ˆandchangetheZvaluefrom81to92sothatthefileIOC.VM21DRV.AGB*ˆcanbeassembledduringsysgen.‚The81valueissothatthefileA*ˆIOC.VM21DRV.AGcanbeassembledina384Ksystemduringsysgen. IFGTˆ\NOVM215ƒNHV21$1ƒ=0Œ#ofhardƒdiskdriveson1stUDC;max=47ƒNFV21$1ƒ=0Œ#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)J*NOTE:‚Ifyouincreasethenumberofharddiskorfloppies,youwillneedC*ˆtoedit&.VM22DRV.CIandchangetheZvaluefrom81to92sothatF*ˆthefileIOC.VM22DRV.AGcanbeassembledduringsysgen.‚The81valueF*ˆissothatthefileIOC.VM22DRV.AGcanbeassembledin a384Ksystem*ˆduringsysgen. 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*------------------------------------------------------------------------------éééééé**ˆ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ˆ\NO 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.CIENDCééé¥%**ˆ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‘Simulatedinterrupt®6·-¿&*œ6‘SYSFAILinterrupt.**?SYSFAILƒ=0ŒDetermineswhetherornottheoperatingsystemwill5*˜beinterruptedwhenSYSFAILisassertedonthebus.2*˜SomeintelligentboardswillassertSYSFAILwhen0*˜theyexperienceafailureofsomekind.‚Ifyou 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.AMEMEND1ƒ=$400000†Endingaddrforon-board‚memorymustbe=this.@MEMEND3ƒ=$0‹Ceilingaddrforoff-boardmemory(mustbe 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=/*----------------------------------------------------------------------------(=/* 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 VME315 files for sysgen=/@„\1:9998.COPYGEN.M315DRV.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 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=/*----------------------------------------------------------------------------<=/* 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! éééé'FMS IOI AGøøSqqIXR AGqqVERSADOSCI  qq* *ˆFMS.IOI.AG*G*ˆThiscodeisreferencedbythesysteminitializer.IfFMSispresent,B*ˆthedesiredFMSlogicwillbeexecuted.‚However,iftheuserhasA*ˆelectedtoremoveFMSfromthesystem,animmediatereturnwill*ˆbeexecuted.   ‰SECTION1 ‰XDEF†FMSIOI01 FMSIOI01: IFNE…\FMS$ ‰NOLIST‰INCLUDEƒ&.IOE.EQ‰INCLUDEƒ&.NIO.EQ‰INCLUDEƒ&.FME.EQ‰INCLUDEƒ&.FMI.EQ‰LIST ŠSECTION1*ˆINCLUDEƒ&.IOE.EQ*ˆINCLUDEƒ&.NIO.EQ*ˆINCLUDEƒ&.FME.EQ*ˆINCLUDEƒ&.FMI.EQ  NOVDTS EQU \TOTDSK NO. OF VDT'S!NOFCBS EQU \NODIFFIL NO. OF FCB'S NOFATS EQU \NOFILES NO. OF FAT'SNODVS‚EQU\NODEFVOLNO.OFDV'S#DEFFAB EQU \DEFFAB DEFAULT FAB SIZE"DEFDAT EQU \DEFDAT DEFAULT DB SIZE ‰XREF†FMSDLEN‰PAGE**ˆOUTPUT*’D0=FMSASQLENGTH***D*.IOI MUST CALCULATE LENGTH OF FMS DATA SEGMENT, AS WELL AS SOME ASQE*…LENGTHSBECAUSEOFRESTRICTIONSTHATLINKCANONLYADDANDSUBTRACT*…EXPRESSIONSWITHXREF'S*&*FMS STACK AREA IS FIRST PART OF FMSD-=*…STACKSIZEISDETERMINEDBYNO.OFDIFFERENTFILESTHATCAN*…BEOPENEDATONCE>*COMMON STACK MUST BE LARGE ENOUGH TO ACCOMODATE 12*(NOFCBS+1);*…PLUSALITTLEFORSUBROUTINECALLSISSUEDPRIORTODEVBSY8*…BEINGCALLED(ABOUT30BYTES)PLUSONECOMPLETESETOF*…REGISTERS(66BYTES)***ŠMOVE.L#NOFCBS+1,D0 ŠMULUƒ#12,D0ŠADD.L‚#100,D0 ŠMOVE.LD0,D1ŠMOVE.L#NOVDTS,D0ŠMULUƒ#VDTLEN,D0 ŠADD.L‚D0,D1ŠMOVE.L#NOFCBS,D0ŠMULUƒ#FCBLEN,D0 ŠADD.L‚D0,D1ŠMOVE.L#NOFATS,D0ŠMULUƒ#FATLEN,D0 ŠADD.L‚D0,D1ŠMOVE.L#NODVS,D0ŠMULUƒ#DVLEN,D0 ŠADD.L‚D0,D1*ŠMOVE.L#SECSZE*(SDBSZE+DBSZE+SATSZE+1),D0ŠMULUƒ#NOVDTS,D0ŠADD.L‚D0,D1ŽD1=SEGMENTLENGTHŠMOVE.LD1,FMSDLEN:*CALCULATE LENGTH OF .FMS'S ASQ (EVTLEN+FHSNLN)*(NOFATS+2)ŠMOVE.L#NOFATS+2,D0ŠMULUƒ#EVTLEN+FHSNLN,D0 ENDC‰RTS‰END ðT* *ˆFMS.IXR.AG*E* File of I/O XDEF's whose values are determined by sysgen parameters* .ˆXDEF‚NOVDTS,NOFCBS,NOFATS,NODVS,DEFFAB,DEFDAT NOVDTS‚EQUƒ\TOTDSK„No.ofVDT'S!NOFCBS‚EQUƒ\NODIFFIL‚No.ofFCB'S NOFATS‚EQUƒ\NOFILESƒNo.ofFAT'SNODVSƒEQUƒ\NODEFVOL‚No.ofDV'S#DEFFAB‚EQUƒ\DEFFAB„DefaultFABsize"DEFDAT‚EQUƒ\DEFDAT„DefaultDB‚size ENDééééééù**ˆFMS.VERSADOS.CI*AMSG‰*************************************************************'MSG‰**ˆFMS--FileManagementSystem”**AMSG‰*************************************************************TASKˆ&.FMS.LO,.FMSSTATE…='DORM'ATTRIB„='CRIT'ATTRIB„='RTIM'ATTRIB„='SYST'PRIORITY‚=$D0FMSSTR„=*ŒFMSloadaddr. FMSASR„=*+2ŠFMSASRentrypointSUBSˆFMS.IXR.AG"ASM‰FMS.IXR.AG,FMS.IXR.RO,\ASMLS;R IFEQˆ\ASMLSWƒ=COPY‡\ASMLS,\WORKLS;AENDC SUBSˆ&.FMS.LG LINKˆ&.FMS.LG IFEQˆ\LINKLSWƒ=COPY‡\LINKLS,\WORKLS;AENDCEND‰FMS#*BuildVERSAdos‚.OSLIST.AG=COPY‡OSLIST.FMS.SI,OSLIST.AG;A5* Build VERSAdos patch chain file .VERSAPT.CF!=COPY‡VERSAPT.FMS.CF,VERSAPT.CF;Aééé éé'EET START AGBqqVERSADOSCI  Pqq**ˆEET.START.AG* *ˆRoutineto*,*’StarttheExit/EntryTask(EET)ifpresent********C*******‚IftheEETtaskispresentinthesystemitwillbestarted>*******‚howeverifnotpresentanimmediatereturnwilloccur.********ˆInput/*’A6=StartaddressofI/Ocommondatasegment**ˆOutput***ˆRegisterAlteration**’A0=Destroyed*’D0=Destroyed*‰PAGE**ˆINCLUDEƒ&.TR1.EQ*ˆINCLUDEƒ&.UTILITY.MC*‰NOLIST‰INCLUDEƒ&.TR1.EQ‰INCLUDEƒ&.UTILITY.MC‰LIST‰PAGE‰XDEF†EETSTART   ‰XREF†KILL‰PAGE ‰SECTION1 …IFNE‚\EET$* BIT0…EQU‡0*EETSPB:‰DC.B†'&EET'„Targettaskname"‰DC.L†2‰Targettasksessionnumber‰DC.B†0‰Directiveoptions‰DC.L†0‰Monitortaskname#‰DC.L†0‰Monitortasksessionnumber‰DC.B†60ˆTaskstartupregisters‰DS.W†0…ENDC‰PAGE EETSTART: …IFNE‚\EET$‰MOVE.L„#START,D0*œD0=Startdirective‰LEA‡EETSPB,A0'*œA0=Addressofstartparameterblock‰TRAP†#1 *œStarttask ‰BSRNE…KILL+*œBringsystemdownifunabletostarttask…ENDC‰RTS*œReturntocaller‰ENDéééC **ˆEET.VERSADOS.CI*BMSG‰**************************************************************MSG‰**ˆEETEQUvaluesBMSG‰***************************************************************=DEFAULTƒ="SYS:0.&"„*Systemdefaultvolume:usernumber.catalog6SECURITY‚=1ŒSwitchtoindicateifsecuritypackageis,*˜supported.‚Valueofzeroexcludespackage,,*˜nonzeroincludesit.‚Thispackagerequires*˜approximately1Kofmemory.*;SPCCMD„=1ŒSwitchtoindicateifthefollowingusersession/*˜managementcommandsaresupported:‚HELP,CLOSE/*˜ASSIGN,NEWS.‚Valueofzeroexcludescommands.-*˜Thispackagerequiresapproximately1/2kof *˜memory.* ;TERMOCNT‚=2Œ*No.ofterminaloutputtimeoutsbeforelogoff* =CHAINBAT‚=1ŒSwitchtoindicateifchainandbatchprocessing1*˜aresupported.‚Valueofzeroexcludesbatchand-*˜chain;non-zeroincludesthem.‚Thispackage**˜requiresapproximately3-1/2Kofmemory.*8CONBATCH‚=1ŒNumberofconcurrentbatchjobsthatcanbe'*˜running.‚CannotbemorethanNOTASKS.*;BATCHPGE‚=2ŒNo.ofpagesforbatchjobqueueing.‚Eachpage/*˜accomodates32entries.‚Inaddition,thereis**˜spacefor31entriesminusthenumberof*˜terminalsinthesystem.*Autobreakinactive*›1-->Autobreakactive*˜Bit1:*›0-->Autologoninactive*›1-->Autologonactive**MSG‰AMSG‰************************************************************* MSG‰**ˆEET--EntryExitTask›**=!AMSG‰*************************************************************TASKˆ&.EET.LO,&EETSTATE…='DORM'ATTRIB„='CRIT'ATTRIB„='SYST' SESSIONƒ=2PRIORITY‚=$C8EETSTR„=*ŒEETloadaddr.SUBSˆ&.EET.LG,&.CMDLIST.AG&ASM‰&.CMDLIST.AG,&.CMDLIST.RO,\ASMLS;R IFEQˆ\ASMLSWƒ=COPY‡\ASMLS,\WORKLS;AENDC LINKˆ&.EET.LG IFEQˆ\LINKLSWƒ=COPY‡\LINKLS,\WORKLS;AENDCEND‰EET5* Build VERSAdos patch chain file .VERSAPT.CF!=COPY‡VERSAPT.EET.CF,VERSAPT.CF;Aééééé é'FHS IXR AG55qq* *ˆFHS.IXR.AG*E* File of I/O XDEF's whose values are determined by sysgen parameters* ˆXDEF‚LUNS &LUNS„EQUƒ\MAXLU+1‚No.ofLU'spertask ENDééééééé- 'GET TASKID AGBBOqq **ˆGET.TASKID.AG* *ˆRoutineto'*’Getthespecifiedtaskidentification*D*ˆThisroutineiscalledbyFHSandIOSduringtheirinitialization.E*ˆSinceIOSandFHScannotdistinguishbetweenaROMandaRAMsystemF*ˆthismodulewillbeassembledatSYSGENtimeasthisdistinctioncan*ˆbedeterminedthen.**‰PAGE**ˆINCLUDEƒ&.TR1.EQ*ˆINCLUDEƒ&.TR1RTCD.EQ*‰NOLIST‰INCLUDEƒ&.TR1.EQ‰INCLUDEƒ&.TR1RTCD.EQ‰LIST‰PAGE**ˆINPUT:-*’A0=ADDRESSOFGETTASKIDPARAMETERBLOCK*’A1=TASKNAME*’D0=TASKSESSIONNUMBER** *ˆOUTPUT:**’A0=FIRST‚HALFOFTASKIDƒ(TCBADDRESS)+*’A1=SECONDHALFOFTASKIDƒ(SESSIONNBR)*’D0=RESULTSOFTRAPCALL* *—....UNLESS*%*¦THISISAROMSYSTEMANDTHETARGET*¦TASKCANNOTBEFOUNDTHEN*¦D0.B=NEGATIVEONE(-1)**ˆRETURNCONDITONS:*–ZERO‚-ƒSUCCESSFULREQUEST!*’NON-ZERO‚-UNSUCCESSFULREQUEST!*’NEGATIVE‚-UNSUCCESSFULREQUEST+*ŸROMBASEDSYSTEMWITHTARGETTASKMISSING‰PAGE**ˆEXTERNALDEFINITIONS* ‰XDEF†GETTSKID‰PAGE ‰SECTION0 GETTSKID:‰MOVE.L„A1,(A0)‰MOVE.L„D0,4(A0)*œSETRESPECTIVELY *TASKNAME*TASKSESSIONNUMBER‰MOVE.L„#GTTASKID,D0*œD0=GETTASKIDDIRECTIVE‰TRAP†#1*œINITIATEGETTASKIDREQUEST …IFNE…\$ROPT*‰CMP.B…#RTCDTASK,D0‰BNE.S…GTID0100-*œBRANCHIFERROROTHERTHANTARGETTASKDOES *œNOTEXIST‰MOVE.B„#-1,D0**œSETFLAG-TARGETTASKDOESNOTEXISTON*§AROMBASEDSYSTEM…ENDC GTID0100: ‰TST.B…D0*œESTABLISHOUTPUTCONDITONS‰RTS*œRETURNTOCALLER‰ENDé:P«'IOC M300XTR AGOO%qqBEGIN AGXX iqqP050DRV AGii<qqP115DRV AGrr8qqM300DRV AG{{ xqqM315DRV AGŒŒf­qqM320DRV AG-- BqqM4205 AGVVqqM4208 AGww÷qqM435DRV AG˜˜qqACIADRV AG¹¹ WqqDARTDRV AGÊÊ VqqEPCIDRV AGÛÛ ]qqVM20DRV AGìì2ÛqqMFPDRV AG%%:qqMPCCDRV AG.. TqqMPSCDRV AG??€qqPIADRV AGXXˆqqRWINDRV AGii?ŒqqDRVS10 AGªª1qq**ˆ&.M300XTR.AG*(EXTR…IDNT†1,0‡GPIBExtraPageCalculator *‚Includedfiles: *‰&.IOE.EQ *‰&.CCB.EQ*‰&.M300DRV.EQŠNOLISTŠINCLUDE&.IOE.EQŠINCLUDE&.CCB.EQŠINCLUDE&.M300DRV.EQŠLIST 4‰XDEF†GPIBXP„Extrapagewordtobepas sedtoGPIBDRV*A*…NOTE:GPIBXPispassedtoGPIBDRVasaword,butonlytheupper@*ƒbytecontainsthevalidextrapages,andthelowerbyteis00.D*ƒthisisnecessarybecauseonlywordsmaybepassedthroughanXREF4*ƒandCMRexpectstheExtraPagesinthefirstbyte.*BGPIBUCL0 SET \GB0$UCL+\G0A$UCL+\G0B$UCL+\G0C$UCL+\G0D$UCL+\G0E$UCLBGPIBUCL0 SET GPIBUCL0+\G0F$UCL+\G0G$UCL+\G0H$UCL+\G0I$UCL+\G0J$UCL9GPIBUCL0 SET GPIBUCL0+\G0K$UCL+\G0L$UCL+\G0M$UCL+\G0N$UCL BGPIBUCL1 SET \GB1$UCL+\G1A$UCL+\G1B$UCL+\G1C$UCL+\G1D$UCL+\G1E$UCLBGPIBUCL1 SET GPIBUCL1+\G1F$UCL+\G1G$UCL+\G1H$UCL+\G1I$UCL+\G1J$UCL9GPIBUCL1 SET GPIBUCL1+\G1K$UCL+\G1L$UCL+\G1M$UCL+\G1N$UCL GPIBUCL‚SET†GPIBUCL0‰IFGT…GPIBUCL1-GPIBUCL0GPIBUCL‚SET†GPIBUCL1‰ENDC /GPIBXPƒEQU‡(GPIBUCL+(IOSILN*15)+CNFGAREA)&$FF00 ‰ENDéééG&**ˆIOC.BEGIN.AG*O*********************************************************************************ˆIOC--DEFINEDCB'SANDCDB'S*(*‡(ThemacrosusedaredefinedinIODM.)*E*‚08/01/84‚ChangedNOSASItoNVME420,NOWINtoNORWIN,andTOTM435to=*ŒNVME435forthenewsysgenmethod.‚SplitoutdriverDCB/CDB&*ŒalsotorelocatableIOCfilemethod.4*‚11/10/83‚ModifiedtouseIOCVECandIOCLVLequates&*ŒincludesWinchesterandSASIdrivers*Œmagtapeatlevel1'*‚09/02/83‚Modifiedformagtapedriver*O******************************************************************************* *‚Includedequatefiles: *†&.IOE.EQ *†&.NIO.EQ* NOLIST‚INCLUDEƒ&.IOE.EQ‚INCLUDEƒ&.NIO.EQ LIST *@*‚ThissectionbecomesIOCOMS,whichisusedbyFMS,IOS,&FHS.*#IOCOM„IDNT†04,01‡I/OCOMMONSEGMENT SECTION0‚===DCBSECTION=== OPT MEX  XDEF IOCOMS,CCSEG XREF DCBEND *6*‚Hereareparametersdescribingthetablesandlists.*IOCOMS DC.L0†I/Osysgenoptions. ( DC.L DCQSTR Start address of DCQ space.&DC.LDCQENDEndƒaddressofDCQspace.DC.L0†Addressof1stDCQ. ( DC.L LUTSTR Start address of LUT space.&DC.LLUTENDEndƒaddressofLUTspace.DC.L0†Addressof1stLUT. ( DC.L DCBTBL Start address of DCB space.&DC.LDCBENDEndƒaddressofDCBspace. DC.L DCBTBL Address of 1st DCB. DC.L0SEMAPHOREFLAG%DC.B0SYSTEMTASKCOORDINATIONFLAG *“BIT‡MEANING%*•0‡0-->IOSINITIALIZATIONNOTDONE*1-->IOSINITIALIZATION…DONE%*•1‡0-->FHSINITIALIZATIONNOTDONE*1-->FHSINITIALIZATION…DONE%*•2‡0-->FMSINITIALIZATIONNOTDONE*1-->FMSINITIALIZATION…DONEDCB.B15,0‰FORFUTUREUSE(DC.L0,0,0‰TASKIDFORUNCLAIMEDBREAKS PAGEO********************************************************************************C*ˆStorageforDCQ'sandLUT's.‚Initiallythesetwolistsareempty.*O******************************************************************************* * *‚DCQspace.* POY DCQSTR EQU * DS.B \PAGESIZE*\DCQPGEDCQEND EQU *-1 * *‚LUTspace.* LUTSTR EQU * DS.B LUTBEG*\NOTASKS DS.B LUTSEG*\NOTASKS*(\MAXLU+1)LUTEND EQU *-1‰PAGEO**********************************************************************************ˆDefineDCB'sbasedonSYSGENparameters.*O******************************************************************************* *SECTION0‚===DCBSECTION===*DCBTBLEQU*‡ThisisthetopofDCBspace.  SECTION1‚===CDBSECTION===IDC.W0‚@@@@dummyallocationtosatisfyLINK1.6problemofnullsection)CCSEG‚EQU*‡ThisisthetopofCDBspace.  ENDééééé**ˆIOC.P050DRV.AG**‚Includedequatefiles: *‰&.IOE.EQ *‰&.NIO.EQ*ŠNOLISTŠINCLUDE&.IOE.EQŠINCLUDE&.NIO.EQŠLIST !*‚Includeddevicespecificmacros*‰MACRO.DCB.SI*‰MACRO.DCBPRT.SI*ŠNOLISTŠINCLUDEMACRO.DCB.SIŠINCLUDEMACRO.DCBPRT.SIŠLIST ŠPAGE&*‚AssignvaluesfromSYSGENparameters*.DVCODEƒSET\&PRTDV„Definestartingdevicecode0L050$01‚EQU\L050$01ƒDefineVME050boardaddress6NP050$1‚SET\NP050$1ƒDefine#printersonVME050board=PRT050ƒEQU\P050DRVƒDefinethephysicaladdressofthedriver 5CNAME„SET…('C'<<16)+(DVCODE>>8)‚channelnamemnemonicE*ƒNOTE:‚UseofCNAMEguaranteesthattheASCIIprinterDCBidentifier>*Š(PR‚,PR1,etc)willalwayscorrespondwiththechannelname*Šmnemonic(CPR,CPR1,etc.). O*******************************************************************************:*‚SETUPDCB'S&CDB'SFORREMOTEPRINTERS‚-‚VME050boardsO******************************************************************************* /* Define PCP$ATW one time here for all printers.PCP$ATW‚SET…\PCP$TLRL<<2+\PCP$AFF<<1+\PCP$LNFD IFGE‚NP050$1-1*ƒVME050Board.printerport**--‚DATACONTROLBLOCK‚--*K PRTDCB DVCODE,IOSID,IOSESS,$632,95,1,CNAME,0,$0007,$0033,PCP$ATW,\PCP$REC,%&‡\PCP$RSZ,\PCP$WTO,\PCP$LRL,\PCP$ELCIFNEDVCODE-'PR‚'1DVCODESETDVCODE+$100‚SETUPFORNEXTPRINTERID ENDCIFEQDVCODE-'PR‚'DVCODE SET 'PR1 ' ENDC ***‚CHANNELDATABLOCK‚***: CDB 0,CNAME,XTPV050,254,PRT050,0,L050$01+$81,7,$8B,5,$10,&„0,0,0,0,0,0,0,0,0,0,0  ENDC  END éa=**ˆIOC.P115DRV.AG**‚Includedequatefiles: *‰&.IOE.EQ *‰&.NIO.EQ*ŠNOLISTŠINCLUDE&.IOE.EQŠINCLUDE&.NIO.EQŠLIST !*‚Includeddevicespecificmacros*‰MACRO.DCB.SI*‰MACRO.DCBPRT.SI*ŠNOLISTŠINCLUDEMACRO.DCB.SIŠINCLUDEMACRO.DCBPRT.SIŠLIST ŠPAGE&*‚AssignvaluesfromSYSGENparameters*.DVCODEƒSET\&PRTDV„Definestartingdevicecode8LPDA$01‚EQU\LPDA$01ƒDefinelocalprinterdeviceaddress=PRT115ƒEQU\P115DRVƒDefinethephysicaladdressofthedriver 0CNAME„SET…'CPR'+DVCODE&$FF‚channelnamemnemonicE*ƒNOTE:‚UseofCNAMEguaranteesthattheASCIIprinterDCBidentifier>*Š(PR‚,PR1,etc)willalwayscorrespondwiththechannelname*Šmnemonic(CPR,CPR1,etc.). O*******************************************************************************9*‚SETUPDCB'S&CDB'SFORREMOTEPRINTERS‚-‚VME115boardO******************************************************************************* /* Define PCP$ATW one time here for all printers.PCP$ATW‚SET…\PCP$TLRL<<2+\PCP$AFF<<1+\PCP$LNFD *ƒVME115Board.printerport**--‚DATACONTROLBLOCK‚--*K PRTDCB DVCODE,IOSID,IOSESS,$632,95,1,CNAME,0,$0007,$0033,PCP$ATW,\PCP$REC,%&‡\PCP$RSZ,\PCP$WTO,\PCP$LRL,\PCP$ELCIFNEDVCODE-'PR‚'1DVCODESETDVCODE+$100‚SETUPFORNEXTPRINTERID ENDCIFEQDVCODE-'PR‚'DVCODE SET 'PR1 ' ENDC ***‚CHANNELDATABLOCK‚***6 CDB 0,CNAME,XTPV115,254,PRT115,0,LPDA$01,1,$C1,5,$10,&„0,0,0,0,0,0,0,0,0,0,0  ENDééj9**ˆIOC.M300DRV.AG**‚Includedequatefiles: *ˆ&.IOE.EQ *ˆ&.NIO.EQ*‰NOLIST‰INCLUDEƒ&.IOE.EQ‰INCLUDEƒ&.NIO.EQ‰LIST !*‚Includeddevicespecificmacros*ˆMACRO.DCB.SI*ˆMACRO.DCBGPIB.SI*‰NOLIST‰INCLUDEƒMACRO.DCB.SI‰INCLUDEƒMACRO.DCBGPIB.SI‰LIST‰PAGE***‚DefinevariablesusingSYSGENparameters*+M300…EQU‚\M300DRV‚AddressofMVME300driver-L300$01‚EQU‚\L300$01‚MVME300board#1address-L300$02‚EQU‚\L300$02‚MVME300board#2address  O********************************************************************************ƒSETUPDCB'SFORMVME300O******************************************************************************* ‰PAGEA******************************************************************.*…DefineGPIBDefaultParametersandAttribute*A******************************************************************GPD$ATM‚EQU‡$1F‘ATTRIBUTEMASKGPD$PAM‚EQU‡$FFFPARAMETERMASK7GPD$AT1‚EQU‡$2137DEVICEATTRIBUTES(BUS,NOTSHARABLE)7GPD$AT2‚EQU‡$6137DEVICEATTRIBUTES(DEV,NOTSHARABLE)3GPD$AT3‚EQU‡$4137DEVICEATTRIBUTSE(DEV,SHARABLE)/GPD$ATW‚EQU‡$3’ATTRIBUTEWORD(TALKER/LISTENER)(GPD$WTO‚EQU‡30000WRITETIMEOUT(30SEC)'GPD$RTO‚EQU‡30000READTIMEOUT‚(30SEC)#GPD$EOR‚EQ U‡$19010901‹ENDOFRECORDGPD$EOS‚EQU‡$0A0AENDOFSTRING'GPD$PPC‚EQU‡$80‘PARALLELPOLLCONFIGUREGPD$PRA‚EQU‡$1F‘PRIMARYADDRESS$GPD$WLN‚EQU‡$0’WRITETRANSFERLENGTH#GPD$RLN‚EQU‡$0’READTRANSFERLENGTH*GPD$RSM‚EQU‡$0’READSECONDARYADDRESSMASK+GPD$WSM‚EQU‡$0’WRITESECONDARYADDRESSMASK*6*‚DCBƒDEFINITIONFORIEEE-488BUSANDBUSSABLEDEVICES* IFGE \NVME300-1*C GPDVDCB.14 'BUSA',GPD$AT1,0,1,GPD$ATM,GPD$PAM,$1F,GPD$WTO,GPD$RTO,B& GPD$EOR,GPD$EOS,GPD$PPC,GPD$PRA,GPD$WLN,GPD$RLN,GPD$RSM,GPD$WSM,& $0,$0,'BUS0'*D GPDVDCB 'BA0A',GPD$AT2,0,1,GPD$ATM,GPD$PAM,GPD$ATW,GPD$WTO,GPD$RTO,B& GPD$EOR,GPD$EOS,GPD$PPC,GPD$PRA,GPD$WLN,GPD$RLN,GPD$RSM,GPD$WSM,& $0,$0,'BUS0'*sE|4D GPDVDCB 'BA0B',GPD$AT3,0,1,GPD$ATM,GPD$PAM,GPD$ATW,GPD$WTO,GPD$RTO,B& GPD$EOR,GPD$EOS,GPD$PPC,GPD$PRA,GPD$WLN,GPD$RLN,GPD$RSM,GPD$WSM,& $0,$0,'BUS0'*D GPDVDCB 'BA0C',GPD$AT2,0,1,GPD$ATM,GPD$PAM,GPD$ATW,GPD$WTO,GPD$RTO,B& GPD$EOR,GPD$EOS,GPD$PPC,GPD$PRA,GPD$WLN,GPD$RLN,GPD$RSM,GPD$WSM,& $0,$0,'BUS0'*D GPDVDCB 'BA0D',GPD$AT3,0,1,GPD$ATM,GPD$PAM,GPD$ATW,GPD$WTO,GPD$RTO,B& GPD$EOR,GPD$EOS,GPD$PPC,GPD$PRA,GPD$WLN,GPD$RLN,GPD$RSM,GPD$WSM,& $0,$0,'BUS0'**†HANDLETHERESTASDEFAULTS*  GPDFDCB.BA0E* ENDC** IFGE \NVME300-2*C GPDVDCB.14 'BUSB',GPD$AT1,0,1,GPD$ATM,GPD$PAM,$1F,GPD$WTO,GPD$RTO,B& GPD$EOR,GPD$EOS,GPD$PPC,GPD$PRA,GPD$WLN,GPD$RLN,GPD$RSM,GPD$WSM,& $0,$0,'BUS1'**†HANDLETHERESTASDEFAULTS* GPDFDCB.BB0A*  ENDC   O********************************************************************************ƒSETUPCDBFORMVME300O******************************************************************************* ***‚CHANNELDATABLOCK‚*********‚IEEE-488CHANNELS  IFGE \NVME300-1I CDB $0001,'BUS0',XTGBUS,254,M300,0,L300$01,64,$B0,4,$40,1,0,0,0,0,0,0,0,&…0,0,0 ENDC* IFGE \NVME300-2I CDB $0001,'BUS1',XTGBUS,254,M300,0,L300$02,64,$B1,4,$40,1,0,0,0,0,0,0,0,&…0,0,0 ENDC  ENDéé**ˆIOC.M315DRV.AG**‚Includedequatefiles: *ˆ&.IOE.EQ *ˆ&.NIO.EQ*‰NOLIST‰INCLUDEƒ&.IOE.EQ‰INCLUDEƒ&.NIO.EQ‰LIST !*‚Includeddevicespecificmacros*ˆMACRO.DCB.SI*ˆMACRO.DCBDISK.SI*‰NOLIST‰INCLUDEƒMACRO.DCB.SI‰INCLUDEƒMACRO.DCBDISK.SI‰LIST‰PAGE***‚DefinevariablesusingSYSGENparameters*+M315…EQU‚\M315DRV‚AddressofMVME315driver-L315$01‚EQU‚\L315$01‚MVME315board#1address-L315$02‚EQU‚\L315$02‚MVME315board#2address8VECTNO1‚EQU‚$FF‡Initializevectornumberfor1stMVME3158VECTNO2‚EQU‚$FE‡Initializevectornumberfor2ndMVME315 'NVME315‚EQU\NVME315‚#ofVME315boardsANH315$1‚EQU\NH315$1‚#hardƒdiskson1stMVME315controllerboardCNF315$1‚EQU\NF315$1‚#floppydiskson1stMVME315controllerboard éééé „!&•20¥­(µ(½3Å'Í,Õ3Ý"å'íDõ&ý8N ON ANH315$2‚EQU\NH315$2‚#hardƒdiskson2ndMVME315controllerboardCNF315$2‚EQU\NF315$2‚#floppydiskson2ndMVME315controllerboard  O********************************************************************************ƒSETUPDCB'SFORMVME315O******************************************************************************* *#*‚SetupDCBparametersforMVME315*‚(mediaindependent)* DEV_ATT‚SET‡$1FDEV_CODESET‡0DEV_STATSET‡4PAR_MASKSET‡$DBF3ECC_LEN‚SET‡11  CHAN_ID‚SET‡'A315'O********************************************************************************(*ˆHARDDISKSONFIRSTMVME315CONTROLLER*O*******************************************************************************‰IFGE†NH315$1-1O********************************************************************************-*ƒFirstharddiskonfirstMVME315controller*O******************************************************************************* DSKNM„SET‡'HD\CONT3151\ZERO'>SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\M3150$1,'H8WIN10'*ééé*‚8"‚10‚megabyte‚hard‚disk*“INCLUDEƒ&.H8WIN10.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3150$1,'H5WIN05'**‚51/4"‚5‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN05.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3150$1,'H5WIN10'**‚51/4"‚10‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN10.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3150$1,'H5WIN12'**‚51/4"‚12‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN12.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3150$1,'H5WIN15'**‚51/4"‚15‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN15.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*0*‚SetupattributemaskforharddiskonMVME315*9ATT_MASKSET‚0<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\M3151$1,'H8WIN10'**‚8"‚10‚megabyte‚hard‚disk*“INCLUDEƒ&.H8WIN10.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3151$1,'H5WIN05'**‚51/4"‚5‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN05.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3151$1,'H5WIN10'**‚51/4"‚10‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN10.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3151$1,'H5WIN12'**‚51/4"‚12‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN12.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3151$1,'H5WIN15'*ééé*‚51/4"‚15‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN15.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*0*‚SetupattributemaskforharddiskonMVME315*9ATT_MASKSET‚0<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFGE†NF315$1-1O********************************************************************************/*‚FirstfloppydiskonfirstMVME315controller*O******************************************************************************* ‰IFC‡\M3154$1,'F8DDDSI'*-*‚8"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F8DDDSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3154$1,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3154$1,'F8SDSSI'*-*‚8"‚singledensity,singlesided,IBMformat*“INCLUDE„&.F8SDSSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3154$1,'F8SDSSM'*éééé2*‚8"‚singledensity,singlesided,Motorolaformat*“INCLUDE„&.F8SDSSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3154$1,'F5DDDSI'*1*‚51/4"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F5DDDSI.SI SIZESET‚SET‡1‰ENDC 4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*.*‚SetupattributesmaskforfloppyonMVME315*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\M3155$1,'F8DDDSI'*-*‚8"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F8DDDSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3155$1,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3155$1,'F8SDSSI'*-*‚8"‚singledensity,singlesided,IBMformat*“INCLUDE„&.F8SDSSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3155$1,'F8SDSSM'*2*‚8"‚singledensity,singlesided,Motorolaformat*“INCLUDE„&.F8SDSSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3155$1,'F5DDDSI'*1*‚51/4"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F5DDDSI.SI SIZESET‚SET‡1‰ENDC 4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*.*‚SetupattributesmaskforfloppyonMVME315*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\M3156$1,'F8DDDSI'*-*‚8"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F8DDDSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3156$1,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SIééé SIZESET‚SET‡1‰ENDC‰IFC‡\M3156$1,'F8SDSSI'*-*‚8"‚singledensity,singlesided,IBMformat*“INCLUDE„&.F8SDSSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3156$1,'F8SDSSM'*2*‚8"‚singledensity,singlesided,Motorolaformat*“INCLUDE„&.F8SDSSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3156$1,'F5DDDSI'*1*‚51/4"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F5DDDSI.SI SIZESET‚SET‡1‰ENDC 4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*.*‚SetupattributesmaskforfloppyonMVME315*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\M3157$1,'F8DDDSI'*-*‚8"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F8DDDSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3157$1,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3157$1,'F8SDSSI'*-*‚8"‚singledensity,sin glesided,IBMformat*“INCLUDE„&.F8SDSSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3157$1,'F8SDSSM'*2*‚8"‚singledensity,singlesided,Motorolaformat*“INCLUDE„&.F8SDSSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3157$1,'F5DDDSI'*1*‚51/4"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F5DDDSI.SI SIZESET‚SET‡1‰ENDC ééé4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*.*‚SetupattributesmaskforfloppyonMVME315*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\M3150$2,'H8WIN10'**‚8"‚10‚megabyte‚hard‚disk*“INCLUDEƒ&.H8WIN10.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3150$2,'H5WIN05'**‚51/4"‚5‚megabyte‚hard‚disk*“INCLUDEƒ&.H5W IN05.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3150$2,'H5WIN10'**‚51/4"‚10‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN10.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3150$2,'H5WIN12'*éééé*‚51/4"‚12‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN12.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3150$2,'H5WIN15'**‚51/4"‚15‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN15.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*0*‚SetupattributemaskforharddiskonMVME315*9ATT_MASKSET‚0<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\M3151$2,'H8WIN10'**‚8"‚10‚megabyte‚hard‚disk*“INCLUDEƒ&.H8WIN10.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3151$2,'H5WIN05'**‚51/4"‚5‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN05.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3151$2,'H5WIN10'**‚51/4"‚10‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN10.SI SIZESET‚SET‡1‰ENDCé‰IFC‡\M3151$2,'H5WIN12'**‚51/4"‚12‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN12.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3151$2,'H5WIN15'**‚51/4"‚15‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN15.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*0*‚SetupattributemaskforharddiskonMVME315*9ATT_MASKSET‚0<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFGE†NF315$2-1O********************************************************************************/*‚FirstfloppydiskonfirstMVME315controller*O******************************************************************************* ‰IFC‡\M3154$2,'F8DDDSI'*-*‚8"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F8DDDSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3154$2,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3154$2,'F8SDSSI'*-*‚8"‚singledensity,singlesided,IBMformat*“INCLUDE„&.F8SDSSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3154$2,'F8SDSSM'*2*‚8"‚singledensity,singlesided,Motorolaformat*“INCLUDE„&.F8SDSSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3154$2,'F5DDDSI'*1*‚51/4"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F5DDDSI.SI SIZESET‚SET‡1‰ENDC 4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatypeéé‰ENDC*.*‚SetupattributesmaskforfloppyonMVME315*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\M3155$2,'F8DDDSI'*-*‚8"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F8DDDSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3155$2,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3155$2,'F8SDSSI'*-*‚8"‚singledensity,singlesided,IBMformat*“INCLUDE„&.F8SDSSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3155$2,'F8SDSSM'*2*‚8"‚singledensity,singlesided,Motorolaformat*“INCLUDE„&.F8SDSSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3155$2,'F5DDDSI'*1*‚51/4"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F5DDDSI.SI SIZESET‚SET‡1‰ENDC 4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*.*‚SetupattributesmaskforfloppyonMVME315*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\M3156$2,'F8DDDSI'*-*‚8"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F8DDDSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3156$2,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3156$2,'F8SDSSI'*-*‚8"‚singledensity,singlesided,IBMformat*“INCLUDE„&.F8SDSSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3156$2,'F8SDSSM'*2*‚8"‚singledensity,singlesided,Motorolaformat*“INCLUDE„&.F8SDSSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3156$2,'F5DDDSI'*1*‚51/4"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F5DDDSI.SI SIZESET‚SET‡1‰ENDC 4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*.*‚SetupattributesmaskforfloppyonMVME315*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\M3157$2,'F8DDDSI'*-*‚8"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F8DDDSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3157$2,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚! SET‡1‰ENDC‰IFC‡\M3157$2,'F8SDSSI'*-*‚8"‚singledensity,singlesided,IBMformat*“INCLUDE„&.F8SDSSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3157$2,'F8SDSSM'*2*‚8"‚singledensity,singlesided,Motorolaformat*“INCLUDE„&.F8SDSSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3157$2,'F5DDDSI'*1*‚51/4"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F5DDDSI.SI SIZESET‚SET‡1‰ENDC 4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*.*‚SetupattributesmaskforfloppyonMVME315*9ATT_MASKSET‚1<JFG -VECTNO1‚EQU‚$FD†Vectornumberfor1stMVME320-VECTNO2‚EQU‚$FC†Vectornumberfor2ndMVME320 O********************************************************************************ƒSETUPDCB'SFORMVME320O******************************************************************************* *#*‚SetupDCBparametersforMVME320*‚(mediaindependent)* DEV_ATT‚SET‡$1FDEV_CODESET‡0DEV_STATSET‡4CHAN_ID‚SET‡'M320'PAR_MASKSET‡$53F3 ECC_LEN‚SET‡0  F***********************************************************************(*ˆHARDDISKSONFIRSTMVME320CONTROLLER*F**********************************************************************‰IFGE†NH320$1-1F***********************************************************************-*ƒFirstharddiskonfirstMVME320controller*F********************************************************************** DSKNM„SET‡'HD\CONT320\ZERO'>SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\M3200$1,'H8WIN10'**‚8"‚10‚megabyte‚hard‚disk*“INCLUDEƒ&.H8WIN10.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3200$1,'H5WIN05'**‚51/4"‚5‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN05.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3200$1,'H5WIN10'**‚51/4"‚10‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN10.SI SIZESET‚SET‡1éé‰ENDC‰IFC‡\M3200$1,'H5WIN15'**‚51/4"‚15‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN15.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3200$1,'H5WIN40'**‚51/4"‚40‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN40.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*0*‚SetupattributemaskforharddiskonMVME320*9ATT_MASKSET‚0<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\M3201$1,'H8WIN10'**‚8"‚10‚megabyte‚hard‚disk*“INCLUDEƒ&.H8WIN10.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3201$1,'H5WIN05'**‚51/4"‚5‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN05.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3201$1,'H5WIN10'**‚51/4"‚10‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN10.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3201$1,'H5WIN15'**‚51/4"‚15‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN15.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3201$1,'H5WIN40'**‚51/4"‚40‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN40.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*0*‚SetupattributemaskforharddiskonMVME320*9ATT_MASKSET‚0<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFGE†NF320$1-1;************************************************************/*‚FirstfloppydiskonfirstMVME320controller*;*********************************************************** ‰IFC‡\M3202$1,'F8DDDSI'*-*‚8"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F8DDDSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3202$1,'F8SDSSI'*-*‚8"‚singledensity,singlesided,IBMformat*“INCLUDE„&.F8SDSSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3202$1,'F5DDDSI'*1*‚51/4"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F5DDDSI.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*.*‚SetupattributesmaskforfloppyonMVME320*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothenthey" haveselectedadiskmedia ‰IFC‡\M3203$1,'F8DDDSI'*-*‚8"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F8DDDSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3203$1,'F8SDSSI'*-*‚8"‚singledensity,singlesided,IBMformat*“INCLUDE„&.F8SDSSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\M3203$1,'F5DDDSI'*1*‚51/4"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F5DDDSI.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*.*‚SetupattributesmaskforfloppyonMVME320*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFGE†NH420-1=**************************************************************,*ƒFirstharddiskonfirstSASI5‚controller*8******************************************************** ‰IFC‡\&M4200,'H5WIN05'**‚51/4"‚5‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN05.SI SIZESET‚SET‡1‰ENDC‰IFC‡\&M4200,'H5WIN10'**‚51/4"‚10‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN10.SI SIZESET‚SET‡1‰ENDC‰IFC‡\&M4200,'H5WIN15'**‚51/4"‚15‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN15.SI SIZESET‚SET‡1‰ENDC‰IFC‡\&M4200,'H5WIN40'**‚51/4"‚40‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN40.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*NaWL_Fg!/*‚SetupattributemaskforharddiskonSASI‚5*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\&M4201,'H5WIN05'**‚51/4"‚5‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN05.SI SIZESET‚SET‡1‰ENDC‰IFC‡\&M4201,'H5WIN10'**‚51/4"‚10‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN10.SI SIZESET‚SET‡1‰ENDC‰IFC‡\&M4201,'H5WIN15'**‚51/4"‚15‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN15.SI SIZESET‚SET‡1‰ENDC‰IFC‡\&M4201,'H5WIN40'**‚51/4"‚40‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN40.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*/*‚SetupattributemaskforharddiskonSASI5*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\&M4202,'F5DDDSI'*1*‚51/4"‚doubledensity,doublesided,IBMformat*“INCLUDEƒ&.F5DDDSI.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*+*‚SetupattributesmaskforfloppyonSAS5*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\&M4203,'F5DDDSI'*1*‚51/4"‚doubledensity,doublesided,IBMformat*“INCLUDEƒ&.F5DDDSI.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*-*‚SetupattributesmaskforfloppyonSASI5*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFGE†NH420-1=**************************************************************,*ƒFirstharddiskonfirstSASI8‚controller*8******************************************************** ‰IFC‡\&M4200,'H8WIN10'**‚8"‚10‚megabyte‚hard‚disk*“INCLUDEƒ&.H8WIN10.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*/*‚SetupattributemaskforharddiskonSASI8*9ATT_MASKSET‚0<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\&M4201,'H8WIN10'**‚8"‚10‚megabyte‚hard‚disk*“INCLUDEƒ&.H8WIN10.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*/*‚SetupattributemaskforharddiskonSASI8*9ATT_MASKSET‚0<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFGE†NF420-1;************************************************************.*‚FirstfloppydiskonfirstSASI8controller*;*********************************************************** ‰IFC‡\&M4202,'F8DDDSI'*-*‚8"‚doubledensity,doublesided,IBMformat*“INCLUDEƒ&.F8DDDSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\&M4202,'F8SDSSI'*-*‚8"‚singledensity,singlesided,IBMformat*“INCLUDEƒ&.F8SDSSI.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*-*‚SetupattributesmaskforfloppyonSASI8*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\&M4203,'F8DDDSI'*-*‚8"‚doubledensity,doublesided,IBMformat*“INCLUDEƒ&.F8DDDSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\&M4203,'F8SDSSI'*-*‚8"‚singledensity,singlesided,IBMformat*“INCLUDEƒ&.F8SDSSI.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*-*‚SetupattributesmaskforfloppyonSASI8*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFGE†NFV20$1-1;************************************************************+*‚FirstfloppydiskonfirstFDCcontroller*;*********************************************************** ‰IFC‡\VM200$1,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM200$1,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC***‚SetupattributesmaskforfloppyonFDC*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM201$1,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM201$1,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC***‚SetupattributesmaskforfloppyonFDC*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM202$1,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM202$1,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC***‚SetupattributesmaskforfloppyonFDC*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM203$1,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM203$1,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC***‚SetupattributesmaskforfloppyonFDC*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFGE†NFV20$2-1;************************************************************,*‚FirstfloppydiskonsecondFDCcontroller*;*********************************************************** ‰IFC‡\VM200$2,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM200$2,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC***‚SetupattributesmaskforfloppyonFDC*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM201$2,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM201$2,'F( 8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC***‚SetupattributesmaskforfloppyonFDC*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM202$2,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM202$2,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC***‚SetupattributesmaskforfloppyonFDC*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM203$2,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM203$2,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC***‚SetupattributesmaskforfloppyonFDC*9ATT_MASKSET‚1<>8)‚channelnamemnemonic C*ƒDefineprinterattributeword(PCP$ATW)onetimeforallprinters.PCP$ATW‚SET‡\PCP$TLRL<<2+\PCP$AFF<<1+\PCP$LNFD O*******************************************************************************)*‚SETUPDCBFOR1STPIA(PORTA)PRINTERO******************************************************************************* IFGE‚NUBRD1-1**ƒPIA#1,printerportA**--‚DATACONTROLBLOCK‚--**K PRTDCB DVCODE,IOSID,IOSESS,$632,95,1,CNAME,0,$0007,$0033,PCP$ATW,\PCP$REC,%&‡\PCP$RSZ,\PCP$WTO,\PCP$LRL,\PCP$ELC IFNEDVCODE-'PR‚'1DVCODESETDVCODE+$100‚SetupfornextprinterID ENDCIFEQDVCODE-'PR‚'DVCODE SET 'PR1 ' ENDC O*******************************************************************************)*‚SETUPCDBFOR1STPIA(PORTA)PRINTERO**********************************************************************************‚CHANNELDATABLOCK‚***> CDB 0,CNAME,CHANTYPE,254,PIA,0,DEVADDR1,7,IOCVECT,IOCLVL,$10,&„0,0,0,0,0,0,0,0,0,0,0 ENDC  O*******************************************************************************)*‚SETUPDCBFOR1STPIA(PORTB)PRINTERO*******************************************************************************IFGE‚NUBRD1-2*ƒPIA#1,printerportB5CNAME„SET…('C'<<16)+(DVCODE>>8)‚channelnamemnemonic**--‚DATACONTROLBLOCK‚--**+ PGYBK PRTDCB DVCODE,IOSID,IOSESS,$632,95,1,CNAME,0,$0007,$0033,PCP$ATW,\PCP$REC,%&‡\PCP$RSZ,\PCP$WTO,\PCP$LRL,\PCP$ELC IFNEDVCODE-'PR‚'DVCODE SET DVCODE+$100 ENDC)IFEQDVCODE-'PR‚'SETUPNEXTPRINTERIDDVCODE SET 'PR1 ' ENDC ***‚CHANNELDATABLOCK‚***D CDB 0,CNAME,CHANTYPE,254,PIA,0,DEVADDR1+PORTB,7,IOCVECT,IOCLVL,$10,&„0,0,0,0,0,0,0,0,0,0,0 ENDC  IFGE‚NOPIA-2O*******************************************************************************)*‚SETUPDCBFOR2NDPIA(PORTA)PRINTERO*******************************************************************************IFGE‚NUBRD2-1*ƒPIA#2,printerportA5CNAME„SET…('C'<<16)+(DVCODE>>8)‚channelnamemnemonic**--‚DATACONTROLBLOCK‚--**K PRTDCB DVCODE,IOSID,IOSESS,$632,95,1,CNAME,0,$0007,$0033,PCP$ATW,\PCP$REC,%&‡\PCP$RSZ,\PCP$WTO,\PCP$LRL,\PCP$ELC IFNEDVCODE-'PR‚'1DVCODESETDVCODE+$100‚SETUPFORNEXTPRINTERID ENDCIFEQDVCODE-'PR‚'DVCODE SET 'PR1 ' ENDC ***‚CHANNELDATABLOCK‚***> CDB 0,CNAME,CHANTYPE,254,PIA,0,DEVADDR2,7,IOCVECT,IOCLVL,$10,&„0,0,0,0,0,0,0,0,0,0,0 ENDC O*******************************************************************************)*‚SETUPDCBFOR2NDPIA(PORTB)PRINTERO*******************************************************************************IFGE‚NUBRD2-2*ƒPIA#2,printerportB5CNAME„SET…('C'<<16)+(DVCODE>>8)‚channelnamemnemonic**--‚DATACONTROLBLOCK‚--**K PRTDCB DVCODE,IOSID,IOSESS,$632,95,1,CNAME,0,$0007,$0033,PCP$ATW,\PCP$REC,%&‡\PCP$RSZ,\PCP$WTO,\PCP$LRL,\PCP$ELC IFNEDVCODE-'PR‚'DVCODE SET DVCODE+$100 ENDC)IFEQDVCODE-'PR‚'SETUPNEXTPRINTERIDDVCODE SET 'PR1 ' ENDC ***‚CHANNELDATABLOCK‚***D CDB 0,CNAME,CHANTYPE,254,PIA,0,DEVADDR2+PORTB,7,IOCVECT,IOCLVL,$10,&„0,0,0,0,0,0,0,0,0,0,0 ENDC ENDC END**ˆIOC.RWINDRV.AG**‚Includedequatefiles: *†&.IOE.EQ *†&.NIO.EQ* NOLIST‚INCLUDEƒ&.IOE.EQ‚INCLUDEƒ&.NIO.EQ LIST !*‚Includeddevicespecificmacros*†MACRO.DCB.SI*†MACRO.DCBDISK.SI* NOLIST‚INCLUDEMACRO.DCB.SI‚INCLUDEMACRO.DCBDISK.SI LIST  PAGE**‚DefinevariablesusingSYSGENparameters*)RWIN…EQU\RWINDRV‚addressofRWIN1driver)LWIN$01‚EQU\LWIN$01‚RWIN1bd.#1address)LWIN$02‚EQU\LWIN$02‚RWIN1bd.#2addressANHRWIN$1EQU\NHRWIN$1#…harddiskson1stRWIN1controllerboardENFRWIN$1 EQU \NFRWIN$1 # floppies disks on 1st RWIN1 controller boardANHRWIN$2EQU\NHRWIN$2#…harddiskson2ndRWIN1controllerboardENFRWIN$2 EQU \NFRWIN$2 # floppies disks on 2nd RWIN1 controller board  O********************************************************************************ƒSETUPDCB'SFORRWIN1O******************************************************************************* *!*‚SetupDCBparametersforRWIN1*‚(mediaindependent)* DEV_ATT‚SET‡$1FDEV_CODESET‡0DEV_STATSET‡4PAR_MASKSET‡$1AF3 ECC_LEN‚SET‡0  F***********************************************************************&*ˆHARDDISKSONFIRSTRWIN1CONTROLLER*F**********************************************************************CHAN_ID‚SET‡'WIN1'‰IFGE†NHRWIN$1-1F***********************************************************************+*ƒFirstharddiskonfirstRWIN1controller*F********************************************************************** DSKNM„SET‡'HD\CONTWIN1\ZERO'>SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\RWIN0$1,'H8WIN10'**‚8"‚10‚megabyte‚hard‚disk*“INCLUDEƒ&.H8WIN10.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN0$1,'H5WIN05+ '**‚51/4"‚5‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN05.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN0$1,'H5WIN10'**‚51/4"‚10‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN10.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN0$1,'H5WIN15'*aXjZrNzN‚QŠS’NšM*‚51/4"‚15‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN15.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN0$1,'H5WIN40'**‚51/4"‚40‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN40.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*.*‚SetupattributemaskforharddiskonRWIN1*9ATT_MASKSET‚0<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\RWIN1$1,'H8WIN10'**‚8"‚10‚megabyte‚hard‚disk*“INCLUDEƒ&.H8WIN10.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN1$1,'H5WIN05'**‚51/4"‚5‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN05.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN1$1,'H5WIN10'**‚51/4"‚10‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN10.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN1$1,'H5WIN15'**‚51/4"‚15‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN15.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN1$1,'H5WIN40'**‚51/4"‚40‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN40.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*.*‚SetupattributemaskforharddiskonRWIN1*9ATT_MASKSET‚0<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\RWIN2$1,'F8DDDSI'*-*‚8"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F8DDDSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN2$1,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN2$1,'F8SDSSI'*-*‚8"‚singledensity,singlesided,IBMformat*“INCLUDE„&.F8SDSSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN2$1,'F8SDSSM'*2*‚8"‚singledensity,singlesided,Motorolaformat*“INCLUDE„&, .F8SDSSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN2$1,'F5DDDSI'*1*‚51/4"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F5DDDSI.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*,*‚SetupattributesmaskforfloppyonRWIN1*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\RWIN3$1,'F8DDDSI'*-*‚8"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F8DDDSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN3$1,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN3$1,'F8SDSSI'*-*‚8"‚singledensity,singlesided,IBMformat*“INCLUDE„&.F8SDSSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN3$1,'F8SDSSM'*2*‚8"‚singledensity,singlesided,Motorolaformat*“INCLUDE„&.F8SDSSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN3$1,'F5DDDSI'*1*‚51/4"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F5DDDSI.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*,*‚SetupattributesmaskforfloppyonRWIN1*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\RWIN0$2,'H8WIN10'**‚8"‚10‚megabyte‚hard‚disk*“INCLUDEƒ&.H8WIN10.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN0$2,'H5WIN05'**‚51/4"‚5‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN05.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN0$2,'H5WIN10'**‚51/4"‚10‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN10.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN0$2,'H5WIN15'**‚51/4"‚15‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN15.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN0$2,'H5WIN40'*, *‚51/4"‚40‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN40.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*.*‚SetupattributemaskforharddiskonRWIN1*9ATT_MASKSET‚0<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\RWIN1$2,'H8WIN10'**‚8"‚10‚megabyte‚hard‚disk*“INCLUDEƒ&.H8WIN10.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN1$2,'H5WIN05'**‚51/4"‚5‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN05.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN1$2,'H5WIN10'**‚51/4"‚10‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN10.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN1$2,'H5WIN15'**‚51/4"‚15‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN15.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN1$2,'H5WIN40'**‚51/4"‚40‚megabyte‚hard‚disk*“INCLUDEƒ&.H5WIN40.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*.*‚SetupattributemaskforharddiskonRWIN1*9ATT_MASKSET‚0<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\RWIN2$2,'F8DDDSI'*-*‚8"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F8DDDSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN2$2,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN2$2,'F8SDSSI'*-*‚8"‚singledensity,singlesided,IBMformat*“INCLUDE„&.F8SDSSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN2$2,'F8SDSSM'*2*‚8"‚singledensity,singlesided,Motorolaformat*“INCLUDE„&.F8SDSSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN2$2,'F5DDDSI'*1*‚51/4"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F5DDDSI.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*,*‚SetupattributesmaskforfloppyonRWIN1*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\RWIN3$2,'F8DDDSI'*-*‚8"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F8DDDSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN3$2,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN3$2,'F8SDSSI'*-*‚8"‚singledensity,singlesided,IBMformat*“INCLUDE„&.F8SDSSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN3$2,'F8SDSSM'*2*‚8"‚singledensity,singlesided,Motorolaformat*“INCLUDE„&.F8SDSSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\RWIN3$2,'F5DDDSI'*1*‚51/4"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F5DDDSI.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*,*‚SetupattributesmaskforfloppyonRWIN1*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFGE†NHV21$1-1F***********************************************************************)*ƒFirstharddiskonfirstUDCcontroller*F********************************************************************** ‰IFC‡\VM210$1,'FXCMD16'**‚CMDƒ16‚megabyte‚hard‚disk*“INCLUDEƒ&.FXCMD16.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM210$1,'FXCMD80'*¯X¸VÀOÈRÐFØMàOèPðRøQEL. *‚CMDƒ80‚megabyte‚hard‚disk*“INCLUDEƒ&.FXCMD80.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM210$1,'FXLRK08'**‚LARK‚8‚megabyte‚hard‚disk*“INCLUDEƒ&.FXLRK08.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM210$1,'FXLRK25'**‚LARK‚25‚megabyte‚hard‚disk*“INCLUDEƒ&.FXLRK25.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*,*‚SetupattributemaskforharddiskonUDC*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM211$1,'RMCMD16'**‚CMDƒ16‚megabyte‚hard‚disk*“INCLUDEƒ&.RMCMD16.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM211$1,'RMLRK08'**‚LARK‚8‚megabyte‚hard‚disk*“INCLUDEƒ&.RMLRK08.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM211$1,'RMLRK25'**‚LARK‚25‚megabyte‚hard‚disk*“INCLUDEƒ&.RMLRK25.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*,*‚SetupattributemaskforharddiskonUDC*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM212$1,'FXCMD16'**‚CMDƒ16‚megabyte‚hard‚disk*“INCLUDEƒ&.FXCMD16.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM212$1,'FXCMD80'**‚CMDƒ80‚megabyte‚hard‚disk*“INCLUDEƒ&.FXCMD80.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM212$1,'FXLRK08'**‚LARK‚8‚megabyte‚hard‚disk*“INCLUDEƒ&.FXLRK08.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM212$1,'FXLRK25'**‚LARK‚25‚megabyte‚hard‚disk*“INCLUDEƒ&.FXLRK25.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*,*‚SetupattributemaskforharddiskonUDC*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM213$1,'RMCMD16'**‚CMDƒ16‚megabyte‚hard‚disk*“INCLUDEƒ&.RMCMD16.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM213$1,'RMLRK08'**‚LARK‚8‚megabyte‚hard‚disk*“INCLUDEƒ&.RMLRK08.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM213$1,'RMLRK25'**‚LARK‚25‚megabyte‚hard‚disk*“INCLUDEƒ&.RMLRK25.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*,*‚SetupattributemaskforharddiskonUDC*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFGE†NFV21$1-1;************************************************************+*‚FirstfloppydiskonfirstUDCcontroller*;*********************************************************** ‰IFC‡\VM214$1,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM214$1,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC***‚SetupattributesmaskforfloppyonUDC*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM215$1,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM215$1,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC***‚SetupattributesmaskforfloppyonUDC*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM216$1,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM216$1,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC***‚SetupattributesmaskforfloppyonUDC*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM217$1,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM217$1,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC***‚SetupattributesmaskforfloppyonUDC*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFGE†NHV21$2-1F*************************************************************************ƒFirstharddiskonsecondUDCcontroller*F********************************************************************** ‰IFC‡\VM210$2,'FXCMD16'**‚CMDƒ16‚megabyte‚hard‚disk*“INCLUDEƒ&.FXCMD16.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM210$2,'FXCMD80'**‚CMDƒ80‚megabyte‚hard‚disk*“INCLUDEƒ&.FXCMD80.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM210$2,'FXLRK08'**‚LARK‚8‚megabyte‚hard‚disk*“INCLUDEƒ&.FXLRK08.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM210$2,'FXLRK25'*/ *‚LARK‚25‚megabyte‚hard‚disk*“INCLUDEƒ&.FXLRK25.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*,*‚SetupattributemaskforharddiskonUDC*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM211$2,'RMCMD16'**‚CMDƒ16‚megabyte‚hard‚disk*“INCLUDEƒ&.RMCMD16.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM211$2,'RMLRK08'**‚LARK‚8‚megabyte‚hard‚disk*“INCLUDEƒ&.RMLRK08.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM211$2,'RMLRK25'**‚LARK‚25‚megabyte‚hard‚disk*“INCLUDEƒ&.RMLRK25.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*,*‚SetupattributemaskforharddiskonUDC*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM212$2,'FXCMD16'**‚CMDƒ16‚megabyte‚hard‚disk*“INCLUDEƒ&.FXCMD16.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM212$2,'FXCMD80'**‚CMDƒ80‚megabyte‚hard‚disk*“INCLUDEƒ&.FXCMD80.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM212$2,'FXLRK08'**‚LARK‚8‚megabyte‚hard‚disk*“INCLUDEƒ&.FXLRK08.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM212$2,'FXLRK25'**‚LARK‚25‚megabyte‚hard‚disk*“INCLUDEƒ&.FXLRK25.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*,*‚SetupattributemaskforharddiskonUDC*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM213$2,'RMCMD16'**‚CMDƒ16‚megabyte‚hard‚disk*0 “INCLUDEƒ&.RMCMD16.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM213$2,'RMLRK08'**‚LARK‚8‚megabyte‚hard‚disk*“INCLUDEƒ&.RMLRK08.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM213$2,'RMLRK25'**‚LARK‚25‚megabyte‚hard‚disk*“INCLUDEƒ&.RMLRK25.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*,*‚SetupattributemaskforharddiskonUDC*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFGE†NFV21$2-1;************************************************************,*‚FirstfloppydiskonsecondUDCcontroller*;*********************************************************** ‰IFC‡\VM214$2,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM214$2,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC***‚SetupattributesmaskforfloppyonUDC*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM215$2,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM215$2,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC***‚SetupattributesmaskforfloppyonUDC*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM216$2,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM216$2,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC***‚SetupattributesmaskforfloppyonUDC*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM217$2,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM217$2,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC***‚SetupattributesmaskforfloppyonUDC*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM220$1,'FXCMD16'**‚CMD16‚megabyte‚hard‚disk*“INCLUDEƒ&.FXCMD16.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM220$1,'FXCMD80'**‚CMD80‚megabyte‚hard‚disk*“INCLUDEƒ&.FXCMD80.SI SIZESET‚SET‡1‰ENDCV!R)P1Y9KAQIVQTYPaOi ‰IFC‡\VM220$1,'FXLRK08'**‚LARK08‚megabyte‚hard‚disk*“INCLUDEƒ&.FXLRK08.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM220$1,'FXLRK25'**‚LARK25‚megabyte‚hard‚disk*“INCLUDEƒ&.FXLRK25.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*-*‚SetupattributemaskforharddiskonVM22*9ATT_MASKSET‚0<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM221$1,'RMCMD16'**‚CMD16‚megabyte‚hard‚disk*“INCLUDEƒ&.RMCMD16.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM221$1,'RMLRK08'**‚LARK08‚megabyte‚hard‚disk*“INCLUDEƒ&.RMLRK08.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM221$1,'RMLRK25'**‚LARK25‚megabyte‚hard‚disk*“INCLUDEƒ&.RMLRK25.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*-*‚SetupattributemaskforharddiskonVM21 2*9ATT_MASKSET‚0<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM222$1,'FXCMD16'**‚CMD16‚megabyte‚hard‚disk*“INCLUDEƒ&.FXCMD16.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM222$1,'FXCMD80'**‚CMD80‚megabyte‚hard‚disk*“INCLUDEƒ&.FXCMD80.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM222$1,'FXLRK08'**‚LARK08‚megabyte‚hard‚disk*“INCLUDEƒ&.FXLRK08.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM222$1,'FXLRK25'**‚LARK25‚megabyte‚hard‚disk*“INCLUDEƒ&.FXLRK25.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*-*‚SetupattributemaskforharddiskonVM22*9ATT_MASKSET‚0<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM223$1,'RMCMD16'**‚CMD16‚megabyte‚hard‚disk*“INCLUDEƒ&.RMCMD16.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM223$1,'RMLRK08'**‚LARK08‚megabyte‚hard‚disk*“INCLUDEƒ&.RMLRK08.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM223$1,'RMLRK25'**‚LARK25‚megabyte‚hard‚disk*“INCLUDEƒ&.RMLRK25.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*-*‚SetupattributemaskforharddiskonVM22*9ATT_MASKSET‚0<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM224$1,'FXCMD16'**‚CMD16‚megabyte‚hard‚disk*“INCLUDEƒ&.FXCMD16.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM224$1,'FXCMD80'**‚CMD80‚megabyte‚hard‚disk*“INCLUDEƒ&.FXCMD80.SI SIZESET‚SET‡12 ‰ENDC‰IFC‡\VM224$1,'FXLRK08'**‚LARK08‚megabyte‚hard‚disk*“INCLUDEƒ&.FXLRK08.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM224$1,'FXLRK25'**‚LARK25‚megabyte‚hard‚disk*“INCLUDEƒ&.FXLRK25.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*-*‚SetupattributemaskforharddiskonVM22*9ATT_MASKSET‚0<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM225$1,'RMCMD16'**‚CMD16‚megabyte‚hard‚disk*“INCLUDEƒ&.RMCMD16.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM225$1,'RMLRK08'**‚LARK08‚megabyte‚hard‚disk*“INCLUDEƒ&.RMLRK08.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM225$1,'RMLRK25'**‚LARK25‚megabyte‚hard‚disk*“INCLUDEƒ&.RMLRK25.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*-*‚SetupattributemaskforharddiskonVM22*9ATT_MASKSET‚0<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM226$1,'FXCMD16'**‚CMD16‚megabyte‚hard‚disk*“INCLUDEƒ&.FXCMD16.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM226$1,'FXCMD80'**‚CMD80‚megabyte‚hard‚disk*“INCLUDEƒ&.FXCMD80.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM226$1,'FXLRK08'**‚LARK08‚megabyte‚hard‚disk*“INCLUDEƒ&.FXLRK08.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM226$1,'FXLRK25'**‚LARK25‚megabyte‚hard‚disk*“INCLUDEƒ&.FXLRK25.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*-*‚SetupattributemaskforharddiskonVM22*9ATT_MASKSET‚0<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM227$1,'RMCMD16'**‚CMD16‚megabyte‚hard‚disk*“INCLUDEƒ&.RMCMD16.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM227$1,'RMLRK08'**‚LARK08‚megabyte‚hard‚disk*“INCLUDEƒ&.RMLRK08.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM227$1,'RMLRK25'**‚LARK25‚megabyte‚hard‚disk*“INCLUDEƒ&.RMLRK25.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*-*‚SetupattributemaskforharddiskonVM22*9ATT_MASKSET‚0<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM228$1,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM228$1,'F8SDSSM'*2*‚8"‚singledensity,singlesided,Motorolaformat*“INCLUDE„&.F8SDSSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM228$1,'F8DDDSI'*-*‚8"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F8DDDSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM228$1,'F8SDSSI'*-*‚8"‚singledensity,singlesided,IBMformat*“INCLUDE„&.F8SDSSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM228$1,'F5DDDSI'*1*‚51/4"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F5DDDSI.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*+*‚SetupattributesmaskforfloppyonVM22*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM229$1,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM229$1,'F8SDSSM'*2*‚8"‚singledensity,singlesided,Motorolaformat*“INCLUDE„&.F8SDSSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM229$1,'F8DDDSI'*-*‚8"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F8DDDSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM229$1,'F8SDSSI'*-*‚8"‚singledensity,singlesided,IBMformat*“INCLUDE„&.F8SDSSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM229$1,'F5DDDSI'*13 *‚51/4"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F5DDDSI.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*+*‚SetupattributesmaskforfloppyonVM22*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM22A$1,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM22A$1,'F8SDSSM'*2*‚8"‚singledensity,singlesided,Motorolaformat*“INCLUDE„&.F8SDSSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM22A$1,'F8DDDSI'*-*‚8"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F8DDDSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM22A$1,'F8SDSSI'*-*‚8"‚singledensity,singlesided,IBMformat*“INCLUDE„&.F8SDSSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM22A$1,'F5DDDSI'*1*‚51/4"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F5DDDSI.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*+*‚SetupattributesmaskforfloppyonVM22*9ATT_MASKSET‚1<SIZESET‚SET‡0‰Ifnon-zerothentheyhaveselectedadiskmedia ‰IFC‡\VM22B$1,'F8SDDSM'*2*‚8"‚singledensity,doublesided,Motorolaformat*“INCLUDE„&.F8SDDSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM22B$1,'F8SDSSM'*2*‚8"‚singledensity,singlesided,Motorolaformat*“INCLUDE„&.F8SDSSM.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM22B$1,'F8DDDSI'*-*‚8"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F8DDDSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM22B$1,'F8SDSSI'*-*‚8"‚singledensity,singlesided,IBMformat*“INCLUDE„&.F8SDSSI.SI SIZESET‚SET‡1‰ENDC‰IFC‡\VM22B$1,'F5DDDSI'*1*‚51/4"‚doubledensity,doublesided,IBMformat*“INCLUDE„&.F5DDDSI.SI SIZESET‚SET‡1‰ENDC4*ƒMakesuretheuserhasdefinedavalidmediatype. ‰IFEQ†SIZESET‰FAIL†**Invalidmediatype‰ENDC*+*‚SetupattributesmaskforfloppyonVM22*9ATT_MASKSET‚1<‰DC.L†0,0,0,0ƒBUFFERZONEBETWEENDEVICEINDEPENDENT/DEPENDENT)‰DC.B†IOSTLN„SPACEFORCONFIGURATIONINFO‰DCB.B…DCBLEN-(*-LLUN),0 (DCBENDEQU*-1…EndaddressofDCBspace.IOCOMEEQU*‡EndofIOCcommonA*ƒ{Nolongerforcestonextpageboundary(wasIOCOML)-8/03/84} SPC 3SECTION1‚===CDBSECTION=== ) DC.L 0 Link of 0 marks end of CDB chain.  ENDééš9**ˆIOC.PV01DRV.AG**‚Includedequatefiles: *‰&.IOE.EQ *‰&.NIO.EQ*ŠNOLISTŠINCLUDE&.IOE.EQŠINCLUDE&.NIO.EQŠLIST !*‚Includeddevicespecificmacros*‰MACRO.DCB.SI*‰MACRO.DCBPRT.SI*ŠNOLISTŠINCLUDEMACRO.DCB.SIŠINCLUDEMACRO.DCBPRT.SIŠLIST ŠPAGE&*‚AssignvaluesfromSYSGENparameters*.DVCODEƒSET\&PRTDV„Definestartingdevicecode;LPDA$01‚EQU\LPDA$01ƒDefinelocalprinterdeviceaddress#1;LPDA$02‚EQU\LPDA$02ƒDefinelocalprinterdeviceaddress#2=PRTV01ƒEQU\PV01DRVƒDefinethephysicaladdressofthedriver 0CNAME„SET…'CPR'+DVCODE&$FF‚channelnamemnemonicE*ƒNOTE:‚UseofCNAMEguaranteesthattheASCIIprinterDCBidentifier>*Š(PR‚,PR1,etc)willalwayscorrespondwiththechannelname*Šmnemonic(CPR,CPR1,etc.). O*******************************************************************************7*‚SETUPDCB'S&CDB'SFORREMOTEPRINTERS‚-‚VM01boardO******************************************************************************* /* Define PCP$ATW one time here for all printers.PCP$ATW‚SET…\PCP$TLRL<<2+\PCP$AFF<<1+\PCP$LNFD *ƒVM01Board.printerport#1**--‚DATACONTROLBLOCK‚--*K PRTDCB DVCODE,IOSID,IOSESS,$632,95,1,CNAME,0,$0007,$0033,PCP$ATW,\PCP$REC,%&‡\P5 CP$RSZ,\PCP$WTO,\PCP$LRL,\PCP$ELCIFNEDVCODE-'PR‚'1DVCODESETDVCODE+$100‚SETUPFORNEXTPRINTERID ENDCIFEQDVCODE-'PR‚'DVCODE SET 'PR1 ' ENDC ***‚CHANNELDATABLOCK‚***7 CDB 0,CNAME,XTPVM1,254,PRTV01,0,LPDA$01,$10,$1E,6,$10,&„0,0,0,0,0,0,0,0,0,0,0    IFGE \NOLPRT-2**ƒVM01Board.printerport#2* 0CNAME„SET…'CPR'+DVCODE&$FF‚channelnamemnemonic *--‚DATACONTROLBLOCK‚--*K PRTDCB DVCODE,IOSID,IOSESS,$632,95,1,CNAME,0,$0007,$0033,PCP$ATW,\PCP$REC,%&‡\PCP$RSZ,\PCP$WTO,\PCP$LRL,\PCP$ELCIFNEDVCODE-'PR‚'1DVCODESETDVCODE+$100‚SETUPFORNEXTPRINTERID ENDCIFEQDVCODE-'PR‚'DVCODE SET 'PR1 ' ENDC  ***‚CHANNELDATABLOCK‚***£N¬7 CDB 0,CNAME,XTPVM1,254,PRTV01,0,LPDA$02,$10,$1E,6,$10,&„0,0,0,0,0,0,0,0,0,0,0 ENDC  ENDééééééé**ˆIOC.TNTDRV.AG**‚Includedequatefiles: *†&.IOE.EQ *†&.NIO.EQ*‰NOLIST‰INCLUDEƒ&.IOE.EQ‰INCLUDEƒ&.NIO.EQ‰LIST !*‚Includeddevicespecificmacros*†MACRO.DCB.SI*†MACRO.DCBTERM.SI*‰NOLIST‰INCLUDEƒMACRO.DCB.SI‰INCLUDEƒMACRO.DCBTERM.SI‰LIST PAGE 0* Define TCP$ATW one time here for all terminalsITCP$ATW‚SET‚\TCP$HCPY+\TCP$XCTL<<1+\TCP$BITS<<2+\TCP$STPB<<3+\TCP$USEP<<4GTCP$ATW‚SET‚TCP$ATW+\TCP$PRTY<<5+\TCP$ECHO<<6+\TCP$TAHD<<7+\TCP$TFUL<<8.SYSTEM.CI"file.1*ƒ"+$NN"‚istheoffsettothe1stboardregister.J*-------------------------------------------------------------------------I*------------------------------------------------------------------------CL400$01ƒ=\IOCBASE+($0E0*\CMULT)+$0DMVME400bd.#1,portAaddress*©L400$01‚=\L400$01CL400$02ƒ=\IOCBASE+($0D0*\CMULT)+$0DMVME400bd.#2,portAaddress*©L400$02‚=\L400$02J*-------------------------------------------------------------------------CL410$01ƒ=\IOCBASE+($0F0*\CMULT)+$01MVME410bd.#1,portAaddress*©L410$01‚=\L410$01CL410$02ƒ=\IOCBASE+($090*\CMULT)+$01MVME410bd.#2,portAaddress*©L410$02‚=\L410$02J*-------------------------------------------------------------------------IL420$01ƒ=\IOCBASE+($078*\CMULT)+$01MVME420bd.#1,portƒaddress:SASI8*©L420$01‚=\L420$01IL420$02ƒ=\IOCBASE+($070*\CMULT)+$01MVME420bd.#2,portƒaddress:SASI5*©L420$02‚=\L420$02J*-------------------------------------------------------------------------LL435$01ƒ=\IOCBASE+($1E0*\CMULT)+$29MVME435bd.#1,portAaddress:Magtape*©L435$01‚=\L435$01CL435$02ƒ=\IOCBASE+($1C0*\CMULT)+$29MVME435bd.#2,portAaddress*©L435$02‚=\L435$02J*-------------------------------------------------------------------------Î+×=LRAD$01ƒ=\IOCBASE+($700*\CMULT)+$01RAD…bd.#1,portƒaddress*©LRAD$01‚=\LRAD$01J*-------------------------------------------------------------------------=LRIO$01ƒ=\IOCBASE+($010*\CMULT)+$01RIO…bd.#1,portƒaddress*©LRIO$01‚=\LRIO$01J*-----7 --------------------------------------------------------------------CL600$01ƒ=\IOCBASE+($F00*\CMULT)+$1+$2MVME600bd.#1,portƒaddress*©L600$01‚=\L600$01CL600$02ƒ=\IOCBASE+($E00*\CMULT)+$1+$2MVME600bd.#2,portƒaddress*©L600$02‚=\L600$02J*-------------------------------------------------------------------------AL605$01ƒ=\IOCBASE+($B00*\CMULT)+$01MVME605bd.#1,portƒaddress*©L605$01‚=\L605$01J*-------------------------------------------------------------------------@L610$01ƒ=\IOCBASE+($002*\CMULT)+$1‚MVME610bd.#1,portƒaddress*©L610$01‚=\L610$01@L610$02ƒ=\IOCBASE+($004*\CMULT)+$1‚MVME610bd.#2,portƒaddress*©L610$02‚=\L610$02J*-------------------------------------------------------------------------@L615$01ƒ=\IOCBASE+($001*\CMULT)+$1‚MVME615bd.#1,portƒaddress*©L615$01‚=\L615$01J*-------------------------------------------------------------------------AL625$01ƒ=\IOCBASE+($000*\CMULT)+$01MVME625bd.#1,portƒaddress*©L625$01‚=\L625$01J*-------------------------------------------------------------------------?LWIN$01ƒ=\IOCBASE+($068*\CMULT)+$03RWIN1ƒbd.#1,portƒaddress*©LWIN$01‚=\LWIN$01?LWIN$02ƒ=\IOCBASE+($070*\CMULT)+$03RWIN1ƒbd.#2,portƒaddress*©LWIN$02‚=\LWIN$02J*-------------------------------------------------------------------------é'OSLIST BEGIN AGëë qqEND AGôôqqFHS SIýý qqFMS SI&qqIOS SI#qqTNTDRV SIqq**ˆOSLIST.BEGIN.AG* ‰XDEF†OSMTBL ‰XDEF†OSMEND*-*ˆTABLEOFOPERATINGSYSTEMMODULETASKNAMES**ƒIncludedequatefiles:*ˆINCLUDEƒ&.IOE.EQ*ˆINCLUDEƒ&.EXE.EQ*ˆINCLUDEƒ&.NIO.EQ*ˆINCLUDEƒ&.FME.EQ*ˆINCLUDEƒ&.FMI.EQ‰NOLIST‰INCLUDEƒ&.IOE.EQ‰INCLUDEƒ&.EXE.EQ‰INCLUDEƒ&.NIO.EQ‰INCLUDEƒ&.FME.EQ‰INCLUDEƒ&.FMI.EQ‰LIST SECTION 1‰PAGE*D*ˆThefollowingNOPisrequirediftheuserhaselectedtoeliminateA*ˆallmodulesfromOSLISTsuchthatitbecomesanullfile.SinceC*ˆLINK1.6hasproblemwithlinkinganullmodulethathasXREFandC*ˆXDEFreferences,theNOPisheretokeepthismodulefrombeinga*ˆnullmodule.*‰NOP‰PAGEOSMTBL:éé7 éééã!**ˆOSLIST.END.AG*OSMENDƒEQU…*“ENDOFTABLE ‰END‡OSMTBLéééééééì**ˆFHS*‰DC.B†$20‘STARTUPVALUE)*§Thisvaluewilldetermine(lowtohigh)&*§theorderataskistobestartedby*§IOI‰DC.B†1“BITNUMBER&*§Thisvalue,ifpresent,representsa$*§bitnumberthatmustbesetbefore$*§IOIwillattempttostartthenext'*§task.This,alongwithSTARTUPVALUE,(*§allowsthecoordinationofbringingup(*§systemtasksatboottimeinaorderly$*§process.TheoffsetSVTSTCFinthe%*§SystemValueTableiswherethebit*§mustbeset.*%*¦IFthesystemtaskdoesNOTrequire'*¦boottimecoordinationthebitnumber*¦mustbesetto$FF.*‰DC.L†FHSIDFHSTASKNAME‰DC.L†IOSESSŽSESSION* ‰DC.B†0“NO ‰DC.B†0•ASQ ‰DC.L†0˜WAS‰DC.L†0›REQUESTED‰DC.W†0*$‰DC.L†0,0,0,0NODATASEGMENTNEED8 ED*ééééõ! ‰XDEF†FMSDLEN**ˆFMS*‰DC.B†$10‘STARTUPVALUE)*§Thisvaluewilldetermine(lowtohigh)&*§theorderataskistobestartedby*§IOI‰DC.B†2“BITNUMBER&*§Thisvalue,ifpresent,representsa$*§bitnumberthatmustbesetbefore$*§IOIwillattempttostartthenext'*§task.This,alongwithSTARTUPVALUE,(*§allowsthecoordinationofbringingup(*§systemtasksatboottimeinaorderly$*§process.TheoffsetSVTSTCFinthe%*§SystemValueTableiswherethebit*§mustbeset.*%*¦IFthesystemtaskdoesNOTrequire'*¦boottimecoordinationthebitnumber*¦mustbesetto$FF.* ‰DC.L†FMSIDFMSTASKNAME‰DC.L†IOSESSŽSESSION* ‰DC.B†0“NO ‰DC.B†0•ASQ ‰DC.L†0˜WAS‰DC.L†0›REQUESTED‰DC.W†0**‰DC.W†SGOPPAŽOPTIONS-LOG.ADDR=PHYS.ADDR.‰DC.W†SGATRW+SGATSS‡ATTRIBUTES‰DC.L†FMSDSEG.NAME‰DC.L†0“LOGICALADDRESSFMSDLEN‚DC.L†0“SEGMENTLENGTH*ééééþ' ‰XDEF†OESIZE**ˆIOS*IOSXXX:‰DC.B†$30‘STARTUPVALUE)*§Thisvaluewilldetermine(lowtohigh)&*§theorderataskistobestartedby*§IOI‰DC.B†0“BITNUMBER&*§Thisvalue,ifpresent,representsa$*§bitnumberthatmustbesetbefore8 $*§IOIwillattempttostartthenext'*§task.This,alongwithSTARTUPVALUE,(*§allowsthecoordinationofbringingup(*§systemtasksatboottimeinaorderly$*§process.TheoffsetSVTSTCFinthe%*§SystemValueTableiswherethebit*§mustbeset.*%*¦IFthesystemtaskdoesNOTrequire'*¦boottimecoordinationthebitnumber*¦mustbesetto$FF.*‰DC.L†IOSIDIOSTASKNAME‰DC.L†IOSESSŽSESSION* ‰DC.B†0“NO ‰DC.B†0•ASQ ‰DC.L†0˜WAS‰DC.L†0›REQUESTED‰DC.W†0*$‰DC.L†0,0,0,0NODATASEGMENTNEEDED*OESIZEƒEQU‡*-IOSXXXéééé$ ACOPYRIGHT%%qqARESTRRGHTHH qq*%*ˆTRANSPARENTNETWORKTERMINALDRIVER*‰DC.B†$40‘STARTUPVALUE)*§Thisvaluewilldetermine(lowtohigh)&*§theorderataskistobestartedby*§IOI‰DC.B†$FF‘BITNUMBER&*§Thisvalue,ifpresent,representsa$*§bitnumberthatmustbesetbefore$*§IOIwillattempttostartthenext'*§task.This,alongwithSTARTUPVALUE,(*§allowsthecoordinationofbringingup(*§systemtasksatboottimeinaorderly$*§process.TheoffsetSVTSTCFinthe%*§SystemValueTableiswherethebit*§mustbeset.*%*¦IFthesystemtaskdoesNOTrequire'*¦boottimecoordinationthebitnumber*¦mustbesetto$FF.*‰DC.L†TNTIDTNTTASKNAME‰DC.L†IOSESSŽSESSION*‰DC.B†AQSTQE+AQSTRE‡ASQSTATUS&‰DC.B†EVULEN+IOSNLN‡MAXMESSAGELENGTH ‰DC.L†EVULEN+IOSNLN‡QUEUELENGTH‰DC.L†\TNTASRADDRESSOFASR‰DC.W†0*$‰DC.L†0,0,0,0NODATASEGMENTNEEDED9 éééé /(C) 1985,1984,1983,1982,1981,1980 Motorola Inc. 5Copyright 1985,1984,1983,1982,1981,1980 Motorola Inc.ééééééé'NOTNT ASR AG22 qq9 **ˆNOTNT.ASR.AG*)ASR‡IDNTƒ11,11ŽASRADDRS.FORI/OMODULES*8*ASR-FILE OF ASR ADDRESSES OF I/O MODULES-NEEDED FOR IOI*ŠXDEFƒFMSASR,FHSASR,IOSASRFMSASR„EQU„\FMSASRFHSASR„EQU„\FHSASRIOSASR„EQU„\IOSASRŠENDééééééé* 'VME12X INITIO1 AG??4§qqSYSINIT LGqqMTYPE SIŠŠ qqB*‰INCLUDEBOARD.EQƒThiswilleitherbeincatalogVME120orVME128AŠINCLUDEBOARD.EQƒThiswilleitherbeincatalogVME120orVME128ŠIFEQ†BOARDTYPE-1286INITIO„IDNTƒ5,1RMS68KI/OinitializerfortheVME128.ŠENDCŠIFEQ†BOARDTYPE-1206INITIO„IDN: Tƒ5,1RMS68KI/OinitializerfortheVME120.ŠENDCO*v*****************************************************************************O*******************************************************************************O**********************************************************************************É***D***…ROUTINE:‚INITIO--RMS68KI/OINITIALIZERFORTHEVME120/128‡******É***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*…--------‚------‚-------------------------------------------------------8*†1/28/85ƒSJF„ChangedMMUinitializationtolookat\MMU*†2/1/84ƒMSL„Initialwriting.* * *‚XDEF's.*,ŠXDEFƒINITMMUŒRoutinetoinitializetheMMU.,ŠXDEFƒTIMERSTŒRoutinetostartupthetimer.3ŠXDEFƒINITIORoutinetosetupalltheotherboard-*§specifichardware. * *‚XREF's.* *…Routines:)ŠXREFƒKILLERRoutinetocrashthesystem. *…ParametersfromINITDAT:-ŠXREFƒTIMSLICŒ#oftimerticspertimeslice.+ŠXREFƒTIMERAAddroftimerchip(MC146818).ŠXREFƒTIMINTVAŠXREFƒCLOCKFRQ77IGQBYCaCi@q"  ‰RESTRICTEDRIGHTSLEGEND&Use, duplication, or disclosure by the%Government is subject to restrictions&as set forth in paragraph (b)(3)(B) of)the Rights in Technical Data and Computer"Software clause in DAR 7-104.9(a). %MOTOROLA SEMICONDUCTOR PRODUCTS, INC.P.O. Box 2953, Mail Drop Z327Phoenix, Arizona 85062éééééé: @  *…SYSPARvariables: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.3ŠXREF.STIMINTRŒUsecremainderforoddclockrates.7ŠXREF.STIMINTVŒTimeintervalbetweentimerinterrupts..ŠXREF.SPTMADDRŒAddroftimerchip(MC146818). *„Others:.ŠXREFƒCRASHSAV‹PlacetoSAVEinfoifweCRASH.   **‚Includedfiles:**‰&.UTILITY.MC*‰M68451.M68451.EQ*‰MK68901.MK68901.EQ*ŠNOLISTŠINCLUDE&.UTILITY.MCŠINCLUDEM68451.M68451.EQŠINCLUDEMK68901.MK68901.EQŠLISTŠPAGEO*v*****************************************************************************O**********************************************************************************É***6***…ROUTINE:‚INITMMU--INITIALIZETHEM68451MMU.•******É***I***…FUNCTION:‚IfwearesupposedtohaveanMMU,verifyitsexistence‚******‡andinitializeit.°******É******…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'resupposedtohaveanMMU, +ŠSAVEƒD0/A0ŽSaveregisterswe'llblowaway. 3ŠLEA„$F60000,A0‰A0<--addresswhereMMUshouldbe.%ŠMOVE.LA0,MMUHERE‰SaveitinSYSPAR. *%*‚SetuptheotherSYSPARparameters.*8‹MOVE.LA0,FRST451‰Ouronly68451isobviouslythefirst9‹MOVE.LA0,LAST451‰68451,thelast68451,andthecurrent‹MOVE.LA0,CURR451‰68451.7‹MOVE.L#1,CURRSDŠThecurrentsegmentdescriptoris#1. *@*‚Clearallsegmentdescriptorsexcepttheonewe'reusing(#0).*5‹PEA„KILLERŒSetupforustogotoKILLERifwegeta‹PUSHƒ#'BE'Žbuserror.<‹FOR„D0=#1TO#31DO…Forsegmentdescriptors1through31,*ŽMOVE.BD0,DP(A0)Š.‚Selectthedescriptor.7ŽMOVE.B#0,SSR(A0)‰.‚Initializeitsoitwon'tbeused.‹ENDF2‹ADD.L‚#6,SPŽGetthebuserrorjunkoffthestack. **‚Exit.*!ŠRESTORED0/A0Restoreregisters. ŠENDC ŠRTS—Return. ŠPAGEO*********************************************************************************ˆSTARTTIMER„(146818TIMER)* TIMERST:EŠMOVE.LTIMSLIC(PC),TIMESLIC#TIMERINTERRUPTSBEFORETASKINTERRUPT;ŠMOVE.LTIMERA(PC),A1†GETTIMERADDRESS(MFPBASEADDRESS).#ŠMOVE.LA1,PTMADDR‰SAVEITFOREXEC!ŠBEQ.L‚TIMERBEŒBRANCHIFNOTIMER)ŠPEA„TIMERBE(PC)ˆWHERETOGOONBUSERROR$ŠMOVE.W#'BE',-(A7)ˆSETBUSERRFLAG*ŠMOVE.L#0,DATEŒDate<--0./ŠMOVE.W#10,TIMINTVˆNumberofmsperclocktick*B*‚NowwemustinitializetheMulti-functionperipheral(MPF)chip.B*‚AlthoughwearenotintendingtouseallofthefunctionalityofC*‚theMFP(ex.serialport),wewillgoaheadandinitializeallof-*‚thefunctionsonthechip,justtobesafe.* *-*‚First,disableallinterruptsfromtheMFP.* 6ŠCLR.B‚MFP_IERA(A1)‡ClearinterruptenableregisterA.6ŠCLR.B‚MFP_IERB(A1)‡ClearinterruptenableregisterB. *C*‚Now,initializetheserialport,eventhoughwedonotanticipate *‚usingit.*B*‚(NOTE:‚WEWILLLEAVEITASITWASSOWECANUSETHEBUGFROM; THE*ŠONBOARDSERIALPORT.) 6*‰CLR.B‚MFP_SCR(A1)ˆClearthesynccharacterregister.5*‰CLR.B‚MFP_UCR(A1)ˆResettheUSARTcontrolregister. 7*‰CLR.B‚MFP_RSR(A1)ˆResetthereceiverstatusregister.6*‰TST.B‚MFP_RSR(A1)ˆReadthereceiverstatusregister. 7*‰CLR.B‚MFP_TSR(A1)ˆResetthetransmitstatusregister.6*‰TST.B‚MFP_TSR(A1)ˆReadthetransmitstatusregister. 2*‰CLR.B‚MFP_UDR(A1)ˆCleartheUSARTdataregister.   *$*‚Now,intiializetheparallelport.* 1ŠCLR.B‚MFP_GPIP(A1)‡CleartheGPIPdataregister.=ŠMOVE.B#$07,MFP_AER(A1)ƒInitializetheactiveedgeresister.=ŠCLR.B‚MFP_DDR(A1)ˆSetthedatadirectionregistertoinputs.   *I*‚Now,initializethefourtimersontheMFP.‚(WewillonlyusetimerA.)* 1ŠMOVE.B#$10,MFP_TACR(A1)‚ResetandstoptimerA.1ŠMOVE.B#$10,MFP_TBCR(A1)‚ResetandstoptimerB. **‰CLR.B‚MFP_TCDCR(A1)†StoptimersCandD.AŠANDI.B#$F0,MFP_TCDCR(A1)(StoptimerD.‚LeavetimerCasisfor *£theBUG.) *>>>>>><ŠMOVE.L#CLOCKFRQ,D0‡ClockfrequencyinHz(SUBedinsysgen)K* IF D0 = 0, 10,000,000, OR 12,500,000 (Hz) then read clock rate from board)*ƒelseuseclockratedefinedinCLOCKFRQŠBEQ.S‚TSTRATEŠCMP.L‚#10000000,D0ŠBEQ.S‚TSTRATEŠCMP.L‚#12500000,D0ŠBNE.S‚RATESET TSTRATEƒTEST_CLOCK_RATEŠIFTHEN.SŒMOVE.L#10000000,D0‚10MHzrateŠELSE.S!ŒMOVE.L#12500000,D0‚12.5MHzrateŠENDI 1RATESETƒLSR.L‚#2,D0ŽDivby4forclockinputfreq ŠMOVE.LD0,D1=* Compute desired count down value according to the following*ƒformula:‚CD=TI/(PS*TO)*‰CD…=Countdownvalue*‰TI…=Timerinputfrequency*‰PS…=Prescalarvalue)*‰TO…=Desiredtimeroutputtimeinterval<* For the VME12x operating at 12.5 MHz we have the following(*ƒTI=12.5MHz/4=3.125MHzor3125000 *ƒPS=200#*ƒTO=100Hz(Onetickevery10ms)B* With these variable values the calculated CD is 157 (rounded up)7* For 10MHz the computed count down value would be 10msŠDIVUƒ#200*100,D0ˆDivbyPS*TOŠIF.LƒD0#$0000FFFFTHEN.S"ADD.Wƒ#1,D0ŠRoundupifremainderŠENDI>ŠAND.L‚#$0000FFFF,D0†Maskoffremainder,onlyquotientremains;ŠMOVE.BD0,MFP_TADR(A1)„Countdownvalue(TimerAregister)5* Now calculate the actual timer output interval via:*ƒCO=(1000*PS*CD)/TID*ƒRemainderwillbethefractionofamillisecondoveranexact10ms *…intervalthatweactuallyhaveŠMULUƒ#200,D0ŒMultiplybyPSŠMULUƒ#1000,D0‹*1000 ŠWHILE.LD1#$0000FFFFDO.S.LSR.Lƒ#1,D0ŠScaledividendanddivisorso...+LSR.Lƒ#1,D1Š...divisoris16bitsorlessŠENDW ŠDIVUƒD1,D0*ŠCLR.W‚D0‘PreserveremainderinhighorderŠSWAPƒD0G* Now compute the number of usecs extra that we have in the actual time *ƒinterval.*ŠMULUƒ#1000,D0 ŠDIVUƒD1,D0!ŠMOVE.WD0,TIMINTR„Usecramainder*>>>>>>0ŠCLR.B‚MFP_TBDR(A1)‡ResettimerBdataregister.1*‰CLR.B‚MFP_TCDR(A1)‡ResettimerCdataregister.0ŠCLR.B‚MFP_TDDR(A1)‡ResettimerDdataregister. >ŠMOVE.B#$07,MFP_TACR(A1)‚TimerAcontrolreg<==delay_mode+*´divideby200prescaler.  *<*‚Nowinitializetheprogramableinterruptcontroller(PIC).* BŠMOVE.B#$68,MFP_VR(A1)„Setstartingvectornumberforblockof16-*£interruptvectorsto$60.Alsosetsoftware*£interruptmode(bit3). 7ŠCLR.B‚MFP_IPRA(A1)‡ClearinterruptpendingregisterA.7ŠCLR.B‚MFP_IPRB(A1)‡ClearinterrputpendingregisterB. 0ŠCLR.B‚MFP_ISRA(A1)‡ClearinserviceregisterA.0ŠCLR.B‚MFP_ISRB(A1)‡ClearinserviceregisterB. DŠMOVE.B#$A0,MFP_IMRA(A1)‚UnmaskinterruptsfromACFAILandtimerA.6ŠCLR.B‚MFP_IMRB(A1)‡MaskoffallinterruptsfromIMRB. DŠMOVE.B#$A0,MFP_IERA(A1)‚EnableinterruptsfromACFAILandtimerA.1ŠMOVE.B#$8E,MFP_IERB(A1)‚Enableinterruptsfrom:*¦1.)‚MMUIRQ*.*¦2.)‚PARBAD*. *¦3.)‚BBERR. *¦4.)‚XERR.'*£(Note:‚Ifweenableaninterrupt,but"*«maskitoff,weallowthePICto*«latchtheinterruptintothe!*«interruptpendingregister,but!*«nottointerruptthe; CPU.‚Ifwe!*«enableandunmaskaninterrupt,*«thenwelatchitintothe!*«interruptpendingregister,and*«alsointerrupttheCPU.   *.ŠADD.L‚#6,A7ŽREMOVE'BE'ANDBUSERRORADDRESSŠRTS—BACKTOINIT*ŠMOVE.L#CREG,CTRLREG†PutbaseaddressofctrlregsinSYSPAR. ŠINIT_CREG CŠMOVE.LCACHEF(PC),CFLUSH‚Moveaddressofcacheflushvariablefrom*£INITDATareatoSYSPARarea. ŠTST.B‚F_ALLŽFlushentirecache.  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*********************************************************************** ŠENDéé< é=/*=/*†VME12X.SYSINIT.LG=/*K=/* Link chain file run at sysgen time to link SYSINIT.LO with a PREINIT.RO=/*D=/* Sysgen parameter LINKLS = \LINKLS = file/device to which to send=/* the linker listing=/*?=/* Sysgen parameter PC = \PC = address at which to link driver=/* =LINK ,SYSINIT.LO,\LINKLS;HAMIXSSEG .INT:8 \PCINPUT PREINIT.ROINPUT ROGEN.ROINPUT &.INITDAT.ROINPUT &.SYSPAR.ROEND=/*=ENDééééééyB* VME12X.MTYPE.SI - Memory type assignments for VME120/128 systems**‚SystemmemoryMTYPE$SRO‚EQUMTYP1readonlyMTYPE$SRW‚EQUMTYP1read/write* *‚UsermemoryMTYPE$URO‚EQUMTYP1readonlyMTYPE$URW‚EQUMTYP1read/write**‚PartitiontypesMTYPE$P0ƒEQUMTYP0partition#0MTYPE$P1ƒEQUMTYP1partition#1éééé< éé‚ 'TNT Œ'MMULDR ™'FHSIOS ¦'IOS ³'NOMMULDRÀ'SIO Í'MACRO â' ,'VM02 Œ'TNT ASR AG˜˜qq* *ˆTNT.ASR.AG*)ASR‡IDNTƒ11,11ŽASRADDRS.FORI/OMODULES*8*ASR-FILE OF ASR ADDRESSES OF I/O MODULES-NEEDED FOR IOI*ŠXDEFƒFMSASR,FHSASR,IOSASR ŠIFNEƒ\NOTNT XDEFƒTNTASRŠENDCFMSASR„EQU„\FMSASRFHSASR„EQU„\FHSASRIOSASR„EQU„\IOSASR ŠIFNEƒ\NOTNTTNTASR‡EQU„\TNTASRŠENDCŠENDéééééé= 'MMULDR VERSADOSCI¥¥qq**ˆMMULDR.VERSADOS.CI*AMSG‰*************************************************************-MSG‰**ˆLDR--Loader(trap#4servertask)Ž**AMSG‰*************************************************************TASKˆ&.LDR.LO,&LDRSTATE…='READ'ATTRIB„='CRIT'ATTRIB„='SYST'PRIORITY‚=$C8 SESSIONƒ=4LDRSTR„=*ŒLDRloadaddr.SUBSˆMMU.LOADER.LGLINKˆMMU.LOADER.LG IFEQˆ\LINKLSWƒ=COPY‡\LINKLS,\WORKLS;AENDCEND‰LDR5* Build VERSAdos patch chain file .VERSAPT.CF!=COPY‡VERSAPT.LDR.CF,VERSAPT.CF;Aééééé'FHSIOS VERSADOSCI²²5qq= **ˆFHSIOS.VERSADOS.CI*AMSG‰*************************************************************=MSG‰**ƒFHS--FileHandlingServices(trap#3servertask)ƒ**AMSG‰*************************************************************TASKˆ&.FHS.LO,.FHSSTATE…='DORM'ATTRIB„='CRIT'ATTRIB„='RTIM'ATTRIB„='SYST' SESSIONƒ=1PRIORITY‚=$D1FHSSTR„=*ŒFHS‚loadaddr. FHSASR„=*+2ŠFHSASRentrypointSUBSˆFHS.IXR.AG"ASM‰FHS.IXR.AG,FHS.IXR.RO,\ASMLS;R IFEQˆ\ASMLSWƒ=COPY‡\ASMLS,\WORKLS;AENDC SUBSˆ&.FHS.LG LINKˆ&.FHS.LG IFEQˆ\LINKLSWƒ=COPY‡\LINKLS,\WORKLS;AENDCEND‰FHS#*BuildVERSAdos‚.OSLIST.AG=COPY‡OSLIST.FHS.SI,OSLIST.AG;A5* Build VERSAdos patch chain file .VERSAPT.CF!=COPY‡VERSAPT.FHS.CF,VERSAPT.CF;A MSG‰?MSG‰***********************************************************.OSLIST.AG=COPY‡OSLIST.IOS.SI,OSLIST.AG;A5* Build VERSAdos patch chain file .VERSAPT.CF!=COPY‡VERSAPT.IOS.CF,VERSAPT.CF;Aééª6'IOS VERSADOSCI¿¿qq**ˆIOS.VERSADOS.CI*?MSG‰***********************************************************.OSLIST.AG=COPY‡IOS.OSLIST.SI,OSLIST.AG;A5* Build VERSAdos patch chain file .VERSAPT.CF!=COPY‡IOS.VERSAPT.CF,VERSAPT.CF;Aééééé·'NOMMULDRVERSADOSCIÌÌqq**ˆNOMMULDR.VERSADOS.CI*AMSG‰*************************************************************-MSG‰**ˆLDR--Loader(trap#4servertask)Ž**AMSG‰*************************************************************TASKˆ&.LDR.LO,&LDRSTATE…='READ'ATTRIB„='CRIT'ATTRIB„='SYST'PRIORITY‚=$C8 SESSIONƒ=4LDRSTR„=*ŒLDRloadaddr.SUBSˆNOMMU.LOADER.LGLINKˆNOMMU.LOADER.LG IFEQˆ\LINKLSWƒ=COPY‡\LINKLS,\WORKLS;AENDCEND‰LDR5* Build VERSAdos patch chain file .VERSAPT.CF!=COPY‡VERSAPT.LDR.CF,VERSAPT.CF;Aé> ééééÄ'SIO ADDRESS CIÙÙ Lqq**ˆSIO.ADDRESS.CI*N******************************************************************************6*‚ShortI/OAddressSpaceOffsetsforStandardSYSGENsN*******************************************************************************H*‚NOTE:‚1.Theseaddressesarecodedintomanyofthefirmwaredebuggers9*Œsothebugcanaccessthedevice.‚REQUIREDFORBOOTING!***‚Symbolformatis:„Lnnn$mm*„where:„L=location:*Œnnn=VMEboardnumber/descriptionorVnnforVERSAmodule*Ž$=separator*mm=boardnumber01-99**I*------------------------------------------------------------------------.L050$01ƒ=\SIOBASE+$1000VME050bd.#1address*žL050$01‚=\L050$01I*------------------------------------------------------------------------5L300$01ƒ=\SIOBASE+$0400VME300bd.#1address‚(GPIB)*žL300$01‚=\L300$015L300$02ƒ=\SIOBASE+$0440VME300bd.#2address‚(GPIB)*žL300$02‚=\L300$02I*------------------------------------------------------------------------.L315$01ƒ=\SIOBASE+$0000VME315bd.#1address*žL315$01‚=\L315$01.L315$02ƒ=\SIOBASE+$0200VME315bd.#2address*žL315$02‚=\L315$02I*------------------------------------------------------------------------.L320$01ƒ=\SIOBASE+$B00DVME320bd.#1address*žL320$01‚=\L320$01.L320$02ƒ=\SIOBASE+$AC0DVME320bd.#2address*žL320$02‚=\L320$02I*------------------------------------------------------------------------.L331$01ƒ=\SIOBASE+$3000VME331bd.#1address*žL331$01‚=\L331$01.L331$02ƒ=\SIOBASE+$3100VME331bd.#2address*žL331$02‚=\L331$02.L331$03ƒ=\SIOBASE+$3200VME331bd.#3address*žL331$03‚=\L331$03.L331$04ƒ=\SIOBASE+$3300VME331bd.#4address*žL331$04‚=\L331$04.L331$05ƒ=\SIOBASE+$3400VME331bd.#5address*žL331$05‚=\L331$05.L331? $06ƒ=\SIOBASE+$3500VME331bd.#6address*žL331$06‚=\L331$06I*------------------------------------------------------------------------.L333$01ƒ=\SIOBASE+$3800VME333bd.#1address*žL333$01‚=\L333$01Ñ4Ú.L333$02ƒ=\SIOBASE+$3900VME333bd.#2address*žL333$02‚=\L333$02.L333$03ƒ=\SIOBASE+$3A00VME333bd.#3address*žL333$03‚=\L333$03.L333$04ƒ=\SIOBASE+$3B00VME333bd.#4address*žL333$04‚=\L333$04.L333$05ƒ=\SIOBASE+$3C00VME333bd.#5address*žL333$05‚=\L333$05.L333$06ƒ=\SIOBASE+$3D00VME333bd.#6address*žL333$06‚=\L333$06I*------------------------------------------------------------------------3LV30$01ƒ=\SIOBASE+$1000VM30ƒbd.#1address‚(MCCM)*žLV30$01‚=\LV30$013LV30$02ƒ=\SIOBASE+$1200VM30ƒbd.#2address‚(MCCM)*žLV30$02‚=\LV30$023LV30$03ƒ=\SIOBASE+$1400VM30ƒbd.#3address‚(MCCM)*žLV30$03‚=\LV30$033LV30$04ƒ=\SIOBASE+$1600VM30ƒbd.#4address‚(MCCM)*žLV30$04‚=\LV30$04I*------------------------------------------------------------------------ H*NOTE:‚VM20,VM21,andVM22aredefinedsequentiallybyoffsetsof$200C*ˆasneeded.‚TheymustnotbeassignedabsoluteoffsetsbecausetheB*ˆdebuggerBOcmdassumesabootfromcontroller0atoffset0and?*ˆwehaveharddisk(VM21)andfloppyonly(VM20)typesystems.ééé'MACRO DCB SIîî RqqDCBDISK SIÿÿqqDCBGPIB SI QqqDCBMTAPESI$qqDCBPRT SI""qqDCBTERM SI++qqŠPAGEO********************************************************************************2*‚MACRO.DCB.SI‚--DEFINESBASICDCBANDCDBMACROSF*†SeeMACRO.DCB*.SIforspecificDCBmacros,i.e.DISK,TERM,GPIB,etc.*C*‚SECTION0ƒDCB=DeviceControlBlock:‚containsinfoaboutdevice,/*”includingdefaultconfiguration;usedheavily*”byFMS,FHS,IOS.G*‚SECTION1ƒCDB=ChannelDataBlock:‚usedbyIOItoallocatechannels.*O********************************************************************? *********** G*‚DIPDCBmacrodefinesdevice-independentportionofaDCB.‚Usedbythe7*‚otherdevicedependentmacrosDSKDCB,CRTDCB,PRTDCB.* DIPDCB MACRO.DC.L„*+\1AddressofnextDCBinlinkedlist.+DC.L„\2’ASCIIidentificationforthisDCB.DC.L„0“AddressofDCQentry.)DC.L„\3’Name„oftaskmakingtherequest.,DC.L„\4’Sessionoftaskmakingtherequest.DC.L„0“AddressofLUT.;DC.L„\5’DeviceattributesassociatedwithDCB.BKM7/12/83!DC.W„0“Write/Readprotectcodes.DC.W„0“'Deviceinuse'flag.DC.L„0“Write/Readcounts.#DC.B„\6’Deviceflag(devicecode).%DC.B„\7’Deviceflag(devicestatus). DC.L„\8’Channelidentification.3DC.B„\9’Devicenumberassociatedwiththechannel.DC.B„0“Taskpriority.DC.L„0“Currentrecord#.7DS.B„IOSBLNŽStorageareafortheIOCBbeingprocessed.8DC.L„0“LogicaladdressofIOCBinuser'saddressspace.6DC.B„0“Config.coordinationflag(0-->atdefaults).DC.B„0“Breakcount.%DC.L„0“AddressofbreakserviceLUT.0DC.L„0“Breakserviceaddress.ƒ-----------------.DC.L„0“Eventclaimer--tasknameŒBKM7/12/833DC.L„0“Eventclaimer--sessionnumber‡BKM7/12/839DC.L„\A’AddressofsupervisorDCBorSession‚BKM7/12/830*œnumberifthisisasupervisorDCB„BKM7/12/839DC.L„0“Supervisor/subordinateDCBopencountBKM7/12/836DC.L„0,0,0,0Deviceindependent/dependentbufferzone  ENDM PAGE*,*‚MacrotodefineaChannelDataBlock(CDB)7*‚UsedbyIOItoallocatechannels;equatesareinLV5.*æ4ï/CDBLNEQU$2E„LengthoftheCDBdatastructure. CDB MACROSECTION1‡===CDBSECTION===*DC.L*+CDBLN„PointertonextCDBinlist.*DC.W\1‰OptionsfortheALLOCATEcommand.DC.L\2‰Channelmnemonic.DC.B\3‰Channeltype.4DC.B\4‰Maskedinterruptmaximuminstructioncount.$DC.L\5‰Physicaladdressofdriver.FDC.L\6‰Supervisorchannel'smnemonic(onlyifbit3ofoptionsset).?DC.L\7‰Physicaladdressofdeviceinmemory-mappedI/Ospace.?DC.W\8‰#ofbytesdeviceoccupiesinmemory-mappedI/Ospace.DC.B\9‰Vectornumber.DC.B\A‰Pollingpriority.DC.B\B‰Softwarepriority.2DC.B\C‰Segmentcount.(Numberofpollingentries)(DC.W\D‰Pollingbyteoffset.--[#1]--DC.B\E‰Pollingmask.DC.B\F‰Pollingtestvalue.7DC.W\G‰Offsetfromphysicaldeviceaddressforreset.DC.B\H‰Valueforreset.DC.B0ŠReserved.(DC.W\I‰Pollingbyteoffset.--[#2]--DC.B\J‰Pollingmask.DC.B\K‰Pollingtestvalue.7DC.W\L‰Offsetfromphysicaldeviceaddressforreset.DC.B\M‰Valueforreset.DC.B0ŠReserved.  ENDMééé‰PAGE*!*‚MacrotodefineDCBforaDisk.* DSKDCB MACROSECTION0‡===DCBSECTION===( DIPDCB DDCBLN,\1,\2,\3,\4,\5,\6,\7,\8,0&DC.B„0,0,0,0ƒSpaceforstatusfields.DC.W„\9†Attributesmask.DC.W„\A†Parametersmask.DC.W„\B†Attribute@ sword.DC.W„\C†#ofbytes/sector.-DC.L„\D†Total#ofsectors--returnedinfo.DC.L„\E†Writetimeout.DC.L„\F†Read‚timeout.DC.B„\G†#ofsectors/track.DC.B„\H†#ofheads.!DC.W„\I†#ofcylindersonmedia.DC.B„\J†Interleavefactor.$DC.B„\K†Spiraloffset(insectors).'DC.W„\L†Physicalsectorsizeofmedia.'DC.W„\M†Startingheadnumberondrive.&DC.W„\N†Numberofcylindersondrive.)DC.W„\O†Precompensationcylindernumber.-DC.B„\P†Physicalsectorspertrackondrive.DC.B„\Q†Steppingrate./DC.W„\R†Reducedwritecurrentcylindernumber.DC.W„\S†ECCdataburstlength.?DC.B„0,0‚2bytesreservedasoffsettoanotherparameterblock  ENDMéééé÷ PAGE*3*…MacrotodefineaGPIBDeviceControlBlock(DCB)* GPDVDCB‚MACROSECTION0‡===DCBSECTION=== NOLIST/GPDVTYP‚SETXDSGDEV‰AssumebussableDEVICEtype5USERLNƒSET(\I+1)/2ˆUserareamustbeeven#ofbytes4IFNCƒ'\0',''ŽIFP0=NULLTHENthisisaDEVICEDCB7GPDVTYP‚SETXDSGBUS‰ELSEitistheBUS(channel)itself4GPCCBNAMSET\KŽCCBnameforalldevicesonthisBUS.GPDVCNT‚SET\0+1ŒCurrent#devices+1forBUS.GPMAXCT‚SETGPDVCNT‰Max.#devicesonthisBUS)BUSDCBƒSET*LocationofDCBforthisBUS,IFGTGPDVCNT-15Toomanydevicesspecified?1GPDVCNT‚SET0Don'tgenanydevicesforthisBUS! LIST1 FAIL 400 TOO MANY DEVICES SPECIFIED FOR THIS BUS MEXIT ENDC1IFEQ„GPCCBNAMŒVerifyCCBnamehasbeenspecified GPDVCNT‚SET0 LIST, FAIL 401 NO CCB NAME SPECIFIED FOR GPIB BUS MEXIT ENDC ENDC LIST,IFGTGPDVCNTCheckforvalidDCBgenerationH DIPDCB USERLN+BDCILN,\1,IOSID,IOSESS,\2,\3,\4,GPCCBNAM,GPMAXCT-GPDVCNT,& BUSDCBDC.B„0“DEVICESTATUSDC.B„XTGBUSŽCHANNELTYPEDC.B„GPDVTYPDEVICETYPEDC.B„IODGPIBDRIVERCODEDC.W„\5’ATTRIBUTEMASKDC.W„\6’PARAMETERMASKDC.W„\7’ATTRIBUTEWORD DC.W„0“RECORDLENGTH(NOTUSED)DC.L„0“DEVICESIZE(NOTUSED)%DC.L„\8’WRITETIMEOUT(MILLISECONDS)$DC.L„\9’READTIMEOUT(MILLISECONDS)&DC.L„\A’ENDOFRECORDCHARACTERISTICS$DC.W„\B’EOSCHARACTERS(WRITE/READ)$DC.B„\C’PARALLELPOLLCONFIGURATIONDC.B„\D’DEVICEPRIMARYADDRESS.DC.L„\E’WRITELENGTHXFER(FMT/IMAGE#BYTES)-DC.L„\F’READLENGTHXFER(FMT/IMAGE#BYTES)$DC.L„\G’READSECONDARYADDRESSMASK%DC.L„\H’WRITESECONDARYADDRESSMASKDC.L„0,0‘RESERVED6DC.W„USERLNŽLENGTHOFUSERDEFINEDCONFIGURATIONAREA3DC.L„\J’USERDEFINEDI/OFORMATTERROUTINEADDRESS*DCB.BƒUSERLN,0ŒALLOCATEUSERDEFINEDAREA‚NOLIST;GPDVCNTSETGPDVCNT-1ˆDECREMENTDEVICECOUNTERFORTHISBUS‚LIST‚ENDC‚ENDM*4*…MacrotorecursivelycreatealldefaultGPIBDCB's*1*ˆP0=(FIRST)DEFAULTDEVICENAME(ASCIISTRING)*@ A  GPDFDCB MACROSECTION0‡===DCBSECTION=== NOLIST IFNCƒ'\0',''8GPDFNAM‚SET'\0'†DefineNAMEifthisisfirstinvocation ENDC LIST2IFGTGPDVCNTŠCheckifdevicecounterisexhaustedE GPDVDCB GPDFNAM,GPD$AT2,0,1,GPD$ATM,GPD$PAM,GPD$ATW,GPD$WTO,GPD$RTO,E& GPD$EOR,GPD$EOS,GPD$PPC,GPD$PRA,GPD$WLN,GPD$RLN,GPD$RSM,GPD$WSM,0,0 NOLIST7GPDFNAMSETGPDFNAM+1‚BumptheNAMEforthenextdevice LIST'GPDFDCBƒ\1‹Invokeselffornextdevice ENDC  ENDMéééééé PAGE*/*‚MacrotodefineDCBforamagnetictapedrive* MTADCB MACROSECTION0‡===DCBSECTION===( DIPDCB MDCBLN,\1,\2,\3,\4,\5,\6,\7,\8,0&DC.B„0,0,0,0ƒSpaceforstatusfields.DC.W„\9†Attributesmask.DC.W„\A†Parametersmask.DC.W„\B†Attributesword.5DC.W„0‡#ofbytes/Versadoslogicalsector(notused)7DC.L„0‡Total#ofVersadossectorsonmedia(notused)DC.L„\C†Writetimeout.DC.L„\D†Read‚timeout.4DC.B„\E†Requesteddensityforwritefromloadpoint.3DC.B„\F†Numberofreadtriesbeforeerrormessage..DC.B„\G†Numberofwritetriesbeforeerasing.1DC.B„\H†Numberoferasuresbeforeerrormessage.*=*ˆTheIOSWTOaboveisasystemtimeoutforthewritecommand.F*ˆTheIOSRTOaboveisasystemtimeoutforeverycommandexceptwrite.6*ˆThemagtapedriverneedsmorespecializedtimeouts.C*ˆThedriverusesthevalueinIOSWTOforeraseandwritefilemark.9*ˆThedriverusesthetimeoutslistedbelowfortheother *ˆcommands.C*ˆTheIOSRTOhastobelargerthanthelargesttimeoutthatweneed5*ˆforthecommandswemaygetinthemagtapedriver.*DC.L„\I†Timeoutforread4DC.L„\J†TimeoutforspaceforwardandspacereverseDC.L„\K†TimeoutforrewindCDC.L„\L†Timeoutforsearchforwardandsearchreverseforfilemark'DC.L„0,0…Bytesreservedforfutureuse.DC.W„0,0,0,0ƒ8bytesreservedforfutureuse.  ENDMéA é% PAGE*$*‚MacrotodefineDCBforaPrinter.* PRTDCB MACROSECTION0‡===DCBSECTION===( DIPDCB PDCBLN,\1,\2,\3,\4,\5,\6,\7,\8,0&DC.B„0,0,0,0ƒSpaceforstatusfields.DC.W„\9ˆAttributesmask.DC.W„\AˆParametersmask.DC.W„\BˆAttributesword.DC.W„\Cˆ#ofcharacters/line.DC.L„\Dˆ#oflines/page.DC.L„\EˆWritetimeout.DC.L„0‰Readtimeout.DC.W„\FˆLogicallinelengthDC.B„\GˆEnd-of-linecharacter.&DCB.Bƒ15,0†Reservedspace(15bytes).  ENDMéééééé PAGE*%*‚MacrotodefineDCBforaTerminal.* CRTDCB MACROSECTION0‡===DCBSECTION===( DIPDCB CDCBLN,\1,\2,\3,\4,\5,\6,\7,\8,0&DC.B„0,0,0,0ƒSpaceforstatusfields.DC.W„\9†Attributesmask.DC.W„\A†Parametersmask.DC.W„\B†Attributesword.DC.W„\C†#ofcharacters/line.DC.L„\D†#oflines/page.DC.L„\E†Writetimeout.DC.L„\F†Readtimeout.DC.B„\G†XOFFchar.DC.B„\H†XONchar.DC.B„\I†BREAKEQUIVALENTchar.DC.B„\J†DISCARDOUTPUTchar.DC.B„\K†REPRINTLINEchar.DC.B„\L†CANCEL‚LINEchar.DC.L„\M†Readterminators.DC.L„\N†End-of-linestring.DC.B„\O†BAUDratecode.DC.B„\P†NULpadding.DC.B„\Q†Terminatorclass.(DC.B„\R†Terminaltype(0=EXORterm155).:DC.B„0,0,0,0,0,0,0,0,0,0‚Internaluseonly--donotuse.DC.B„0,0,0,0,0,0Reserved.  ENDMéA ééé#' RMSGEN CF88>qqSYSPAR AGYY"lqqRMSEXM CI‚‚qqRMS CI‹‹qqI=/***********************************************************************=/*RMSGEN.CF»*'=/*SYSGENcommandfiletosysgenRMS£*I=/***********************************************************************=OPT N,O=/*==/*Insuretwoarguments.‚Secondargumentdefaultsto'#NULL'=/*=/RX=\0 =/IF RX = 0 ƒ=ARGNOARGƒ=/RX=\0=/ENDIF =/IF RX = 1ƒ=ARG\1,#NULLƒ=/RX=\0=/ENDIF=/*$=/* See if we have a valid mnemonic.2=/*ƒIfnotavalidmnemonic,putouthelpmessage.=/RX=0=/IFEQ "EXORMACS"\1ƒ=/RX=1=/ENDIF=/IFEQ "NETVM02"\1ƒ=/RX=1=/ENDIF=/IFEQ "VM01"\1ƒ=/RX=1=/ENDIF=/IFEQ "VM02"\1ƒ=/RX=1=/ENDIF=/IFEQ "VM03"\1ƒ=/RX=1=/ENDIF=/IFEQ "VM04"\1ƒ=/RX=1=/ENDIF=/IFEQ "VME101"\1ƒ=/RX=1=/ENDIF=/IFEQ "VME110"\1ƒ=/RX=1=/ENDIF=/IFEQ "VME115"\1ƒ=/RX=1=/ENDIF=/IFEQ "VME120"\1ƒ=/RX=1=/ENDIF=/IFEQ "VME122"\1ƒ=/RX=1=/ENDIF=/IFEQ "VME128"\1ƒ=/RX=1=/ENDIF=/IFEQ "VMES10"\1ƒ=/RX=1=/ENDIF =/IF RX=0 ƒ=OPT-NOƒ=/*’**HELPMESSAGE**ƒ=/*7ƒ=/*Noargumentoraninvalidargumentwasspecified-=ƒ=/*ƒThischainfilemustberestartedwithavalidargument.3ƒ=/*ƒAdescriptionofthecallingsequencefollows.Aƒ=/*ƒTypetocontinuehelpmessageafterreadingonescreen.ƒ=/*ƒ=/*Callingsequence:ƒ=/*ƒ=RMSGEN.CFarg1,arg2ƒ=/*ƒ=/*†arg1…=‚Mnemonicƒ=/*†arg2…=‚Outputfile/deviceƒ=/*Dƒ=/*ƒArg1isoptional.‚Ifnotspecified,ahelpmessagewillappear.Aƒ=/*ƒArg2willtypicallybe'#NULL'or'#PR'-defaultsto#NULL.ƒ=/*ƒ=/*ƒ=/&>ƒ=/*ƒRMSGEN.CFwillperformtheRMSsysgenassociatedwiththeƒ=/*…specifiedmnemonic.ƒ=/*1ƒ=/*ƒThemnemonic(arg1)isoneofthefollowing:ƒ=/*ƒ=/*ƒ"EXORMACS"ƒ=/*ƒ"NETVM02" ƒ=/*ƒ"VM01" ƒ=/*ƒ"VM02" ƒ=/*ƒ"VM03" ƒ=/*ƒ"VM04" ƒ=/*ƒ"VME101" ƒ=/*ƒ"VME110" ƒ=/*ƒ"VME115 ƒ=/*ƒ"VME120 ƒ=/*ƒ"VME122" ƒ=/*ƒ"VME128 ƒ=/*ƒ"VMES10"ƒ=/&ƒ=NOARGƒ=@END=/ENDIF =/IF RX=1ƒ=DEL&.S.LS/&.SYSASM.LS=/ENDIF=/RX=0B 0j9QASI1F=/*-------------------------------------------------------------------F=/*-------------------------------------------------------------------=/IFEQ "EXORMACS"\1 ƒ=OPT-NO ƒ=SYSGENEXORMACS.RMS.CD,,&.S.LSƒ=/RX=1ƒ=/IFRD<$C000†=/R?†=/*ErrorsinSYSGEN†=@ENDƒ=/ENDIFƒ=COPYEXORMACS.RMS.LL,&.S.LS;A$ƒ=/*CreatedfileisEXORMACS.RMS.LOƒ=/*ƒand&.S.LS=/ENDIF=OPT NOF=/*-------------------------------------------------------------------F=/*-------------------------------------------------------------------=/IFEQ "NETVM02"\1 ƒ=OPT-NOƒ=SYSGENNETVM02.RMS.CD,,&.S.LSƒ=/RX=1ƒ=/IFRD<$C000†=/R?†=/*ErrorsinSYSGEN†=@ENDƒ=/ENDIFƒ=COPYNETVM02.RMS.LL,&.S.LS;A#ƒ=/*CreatedfileisNETVM02.RMS.LOƒ=/*ƒand&.S.LS=/ENDIF=OPT NOF=/*-------------------------------------------------------------------F=/*-------------------------------------------------------------------=/IFEQ "VM01"\1 ƒ=OPT-NOƒ=SYSGENVM01.RMS.CD,,&.S.LSƒ=/RX=1ƒ=/IFRD<$C000†=/R?†=/*ErrorsinSYSGEN†=@ENDƒ=/ENDIFƒ=COPYVM01.RMS.LL,&.S.LS;A ƒ=/*CreatedfileisVM01.RMS.LOƒ=/*ƒand&.S.LS=/ENDIF=OPT NOF=/*-------------------------------------------------------------------F=/*-------------------------------------------------------------------=/IFEQ "VM02"\1 ƒ=OPT-NOƒ=SYSGENVM02.RMS.CD,,&.S.LSƒ=/RX=1ƒ=/IFRD<$C000†=/R?†=/*ErrorsinSYSGEN†=@ENDƒ=/ENDIFƒ=COPYVM02.RMS.LL,&.S.LS;A ƒ=/*CreatedfileisVM02.RMS.LOƒ=/*ƒand&.S.LS=/ENDIF=OPT NOF=/*-------------------------------------------------------------------F=/*-------------------------------------------------------------------=/IFEQ "VM03"\1 ƒ=OPT-NOƒ=SYSGENVM03.RMS.CD,,&.S.LSƒ=/RX=1ƒ=/IFRD<$C000†=/R?†=/*ErrorsinSYSGEN†=@ENDƒ=/ENDIFƒ=COPYVM03.RMS.LL,&.S.LS;A ƒ=/*CreatedfileisVM03.RMS.LOƒ=/*ƒand&.S.LS=/ENDIF=OPT NOF=/*-------------------------------------------------------------------F=/*-------------------------------------------------------------------=/IFEQ "VM04"\1 ƒ=OPT-NOƒ=SYSGENVM04.RMS.CD,,&.S.LSƒ=/RX=1ƒ=/IFRD<$C000†=/R?†=/*ErrorsinSYSGEN†=@ENDƒ=/ENDIFƒ=COPYVM04.RMS.LL,&.S.LS;A ƒ=/*CreatedfileisVM04.RMS.LOƒ=/*ƒand&.S.LS=/ENDIF=OPT NOF=/*-------------------------------------------------------------------F=/*-------------------------------------------------------------------=/IFEQ "VME101"\1 ƒ=OPT-NOƒ=SYSGENVME101.RMS.CD,,&.S.LSƒ=/RX=1ƒ=/IFRD<$C000†=/R?†=/*ErrorsinSYSGEN†=@ENDƒ=/ENDIFƒ=COPYVME101.RMS.LL,&.S.LS;A"ƒ=/*CreatedfileisVME101.RMS.LO ƒ=/*ƒ&.S.LS=/ENDIF=OPT NOF=/*-------------------------------------------------------------------F=/*-------------------------------------------------------------------=/IFEQ "VME110"\1 ƒ=OPT-NOƒ=SYSGENVME110.RMS.CD,,&.S.LSƒ=/RX=1ƒ=/IFRD<$C000†=/R?†=/*ErrorsinSYSGEN†=@ENDƒ=/ENDIFƒ=COPYVME110.RMS.LL,&.S.LS;A"ƒ=/*CreatedfileisVME110.RMS.LO ƒ=/*ƒ&.S.LS=/ENDIF=OPT NOF=/*-------------------------------------------------------------------F=/*-------------------------------------------------------------------=/IFEQ "VME115"\1 ƒ=OPT-NOƒ=SYSGENVME115.RMS.CD,,&.S.LSƒ=/RX=1ƒ=/IFRD<$C000†=/R?†=/*ErrorsinSYSGEN†=@ENDƒ=/ENDIFƒ=COPYVME115.RMS.LL,&.S.LS;A"ƒ=/*CreatedfileisVME115.RMS.LO ƒ=/*ƒ&.S.LS=/ENDIF=OPT NOF=/*-------------------------------------------------------------------F=/*-------------------------------------------------------------------=/IFEQ "VME120"\1 ƒ=OPT-NOƒ=SYSGENVME120.RMS.CD,,&.S.LSƒ=/RX=1ƒ=/IFRD<$C000†=/R?†=/*ErrorsinSYSGEN†=@ENDƒ=/ENDIFƒ=COPYVME120.RMS.LL,&.S.LS;A"ƒ=/*CreB atedfileisVME120.RMS.LO ƒ=/*ƒ&.S.LS=/ENDIF=OPT NOF=/*-------------------------------------------------------------------F=/*-------------------------------------------------------------------=/IFEQ "VME122"\1 ƒ=OPT-NOƒ=SYSGENVME122.RMS.CD,,&.S.LSƒ=/RX=1ƒ=/IFRD<$C000†=/R?†=/*ErrorsinSYSGEN†=@ENDƒ=/ENDIFƒ=COPYVME122.RMS.LL,&.S.LS;A"ƒ=/*CreatedfileisVME122.RMS.LO ƒ=/*ƒ&.S.LS=/ENDIF=OPT NOF=/*-------------------------------------------------------------------F=/*-------------------------------------------------------------------=/IFEQ "VME128"\1 ƒ=OPT-NOƒ=SYSGENVME128.RMS.CD,,&.S.LSƒ=/RX=1ƒ=/IFRD<$C000†=/R?†=/*ErrorsinSYSGEN†=@ENDƒ=/ENDIFƒ=COPYVME128.RMS.LL,&.S.LS;A"ƒ=/*CreatedfileisVME128.RMS.LO ƒ=/*ƒ&.S.LS=/ENDIF=OPT NOF=/*-------------------------------------------------------------------F=/*-------------------------------------------------------------------=/IFEQ "VMES10"\1 ƒ=OPT-NOƒ=SYSGENVMES10.RMS.CD,,&.S.LSƒ=/RX=1ƒ=/IFRD<$C000†=/R?†=/*ErrorsinSYSGEN†=@ENDƒ=/ENDIFƒ=COPYVMES10.RMS.LL,&.S.LS;A"ƒ=/*CreatedfileisVMES10.RMS.LOƒ=/*ƒand&.S.LS=/ENDIFF=/*-------------------------------------------------------------------F=/*-------------------------------------------------------------------=OPT -NO=COPY &.S.LS,\2;Y!=/* Output listing directed to \2=ENDéééFSYSPAR„IDNTƒ5,1…Systemparametersat\SYSPAR;Crashsaveat\CRASHSAV.O*v*****************************************************************************O*******************************************************************************O**********************************************************************************É***>***…ROUTINE:‚SYSPAR--SYSTEMPARAMETERSTABLEFORRMS68K.******É***J***…ENVIRONMENT:‚PartoftheRMS68KexecfortheMotorola68000family.***(***‡Copyright1983byMotorola,Inc.¢******É***H***…FUNCTION:‚ThistablegetsSUBSedandASMedduringanRMSGEN,andƒ***F***‡isthenlinkedinwithRMS68K.‚Thedatadefinedinthismoduleƒ***D***‡areprimarilythevariablesandparametersneededbyRMS68K.†******É***O*******************************************************************************O*******************************************************************************O*^***************************************************************************** *,*‚Revisionhistory(addnewchangestotop).*…Date†Author‚Changes@*…--------‚------‚----------------------------------------------(*…12/7/84‚SJF…AddedLAST_MMU_INT_LEVEL.*…10/4/83‚SJF…Formatrevision.*  **‚Includedfiles:**‰9995.&.TIOT.EQ*ŠNOLISTŠINCLUDE9995.&.TIOT.EQŠLISTŠPAGE ŠXDEFƒACOTBL ŠXDEFƒADEFTYP ŠXDEFƒASNTBLŠXDEFƒBKG_ACTIVEŠXDEFƒBKG_FLAGŠXDEFƒBKG_HEADŠXDEFƒBKG_TAIL ŠXDEFƒCCBHDŠXDEFƒCRASHSAV ŠXDEFƒCTRLREGŠXDEFƒCURR_ASN ŠXDEFƒCURR451 ŠXDEFƒCURRSD ŠXDEFƒDACTBL ŠXDEFƒDATE ŠXDEFƒDBUFSZ ŠXDEFƒDCOTBL ŠXDEFƒDPRVAO ŠXDEFƒENDSYSPŠXDEFƒEXCSTACK ŠXDEFƒFQBCNT ŠXDEFƒFQLWM ŠXDEFƒFREEQHD ŠXDEFƒFREEQND ŠXDEFƒFRST451 ŠXDEFƒGSTBEG ŠXDEFƒINPTBLŠXDEFƒIOVCTBGN ŠXDEFƒLAM ŠXDEFƒLAST451ŠXDEC FƒLAST_MMU_INT_LEVEL ŠXDEFƒLCTBEG ŠXDEFƒMACSTRC ŠXDEFƒMAPBEG ŠXDEFƒMEMOFFŠXDEFƒMIDNIGHT ŠXDEFƒMMUHERE ŠXDEFƒMMULOAD ŠXDEFƒNATBEG ŠXDEFƒNNTBEG ŠXDEFƒNOTLAM ŠXDEFƒNSE ŠXDEFƒNWDQHD ŠXDEFƒNWPSEGŠXDEFƒNWSTATUS ŠXDEFƒNWTSEG ŠXDEFƒPANELQSZ]bUjSr ŠXDEFƒPATBEGŠXDEFƒPERTURB_FLAGŠXDEFƒPREEMPT_FLAG ŠXDEFƒPTMADDR ŠXDEFƒRAD1TBL ŠXDEFƒREADYHD ŠXDEFƒRIOTBL ŠXDEFƒRUNNER ŠXDEFƒSDEFTYP ŠXDEFƒSDLCPCB ŠXDEFƒSEMCCB ŠXDEFƒSEMEND ŠXDEFƒSEMGST ŠXDEFƒSEMLIST ŠXDEFƒSEMTCB ŠXDEFƒSEMTIOT ŠXDEFƒSEMUSTŠXDEFƒSLFTSTA7 ŠXDEFƒSPURCNTŠXDEFƒSPURTIME ŠXDEFƒSYSPAR ŠXDEFƒSYSPOFF ŠXDEFƒTCBHD ŠXDEFƒTDEFTYP ŠXDEFƒTIATŠXDEFƒTIME_LEFT ŠXDEFƒTIMEOUTŠXDEFƒTIMESLIC ŠXDEFƒTIMINTVŠXDEFƒTIMINTV4 ŠXDEFƒTIMINTRŠXDEFƒTINTFLAG ŠXDEFƒTIOTŠXDEFƒTRACEBEGŠXDEFƒTRACFLAG ŠXDEFƒUDEFTYP ŠXDEFƒUDRBEG ŠXDEFƒUSERQHD ŠXDEFƒUSERQND ŠXDEFƒUSTBEG ŠXDEFƒV2RQHD ŠXDEFƒVCTUBGNŠPAGE*E*‚Firstdefinethelocationofthe'crashsavearea,'theplacewhereD*‚theKILLERmodulewillsavetheprocessor'sregisters,etc.inthe*‚eventofasystemcrash.*CRASHSAV‚EQU„\CRASHSAV  *E*‚Nowdefinethestructureofthe'systemparametersarea'toalltheD*‚variousRMS68Kmodules.‚NotethatwearenotactuallydefininganyE*‚storagehere--thisisjustabigoffsetblockwhichwilldefinetheB*‚locationsoftheparameters.‚Initializationoftheparametersis1*‚handledbytheRMS68Kinitializeratboottime.*ŠOFFSET\SYSPAR SYSPAR„EQU„* "MAPBEG„DS.Lƒ1’POINTSTOMEMORYMAP PERTURB_FLAG…DS.Wƒ1BKG_FLAG‰EQU„PERTURB_FLAGPREEMPT_FLAG…EQU„PERTURB_FLAG+1 ŠDS.Wƒ1 %EXCSTACK‚DS.Lƒ1’ADDRESSOFEXECSTACK $RUNNER„DS.Lƒ1’ADDRESSOFRUNNINGTCB 0TCBHD…DS.Lƒ1’POINTSTOFIRSTTCBINALL-TCBLIST 0READYHDƒDS.Lƒ1’POINTSTOFIRSTTCBINREADYLIST 2CCBHD…DS.Lƒ1’POINTSTOFIRSTCHANNELCONTROLBLOCK :MMUHEREƒDS.Lƒ1’HOLDSADDRESSOFMMUHARDWAREINMEMORYMAP +GSTBEG„DS.Lƒ1’STARTOFGLOBALSEGMENTTABLE +USTBEG„DS.Lƒ1’STARTOFUSERSEMAPHORETABLE 5UDRBEG„DS.Lƒ1’PointertoUserDefinedDirectiveTable 0PATBEG„DS.Lƒ1’STARTOFPERIODICACTIVATIONTABLE +TRACEBEG‚DS.Lƒ1’STARTOFSYSTEMTRACETABLE "TRACFLAG‚DS.Wƒ1’SYSTEMTRACEFLAGS ,MACSTRCƒDS.Lƒ1’MACSBUGTRACEROUTINEADDRESS PANEL…DS.Lƒ1’FRONTPANELADDRESS**„TIMERPARAMETERS** DATE†DS.Lƒ1’ORDINALDATE 8PTMADDRƒDS.Lƒ1’ADDRESSUSEDTOACCESSPROGRAMMABLETIMER &TIMEOUTƒDS.Wƒ1’TIMERINTERRUPTCOUNTER BTIMESLIC‚DS.Wƒ1‹NUMBEROFTIMERINTERRUPTSBEFORETASKINTERRUPTED -NSE‡DS.Lƒ1’msvalueofnextsignificantevent 6TIME_LEFTDS.Lƒ1’msvalueuntilnextsignificantevent -MIDNIGHT‚DS.Lƒ1’msvalueofpreviousmidnight 3TIMINTVƒDS.Wƒ1’#MILLISECSBETWEENTIMERINTERRUPTS TIMINTV4‚DS.Wƒ1’TIMINTV*4-1 7TIMINTRƒDS.Wƒ1’Holdsusecremainderforoddclockrates $TINTFLAG‚DS.Bƒ1’TIMERINTERRUPTFLAG 7TMSGFLAG‚DS.Bƒ1’FLAG-MESSAGESENTDURINGI/OHANDLING +SPURCNTƒDS.Wƒ1’COUNTOFSPURIOUSINTERRUPTS 9SPURTIME‚DS.Lƒ1’TIMETHAT1STSPURIOUSINTERRUPTOCCURRED +MMULOADƒDS.Lƒ1’MMULOADEDFROMTHISADDRESS (VCTUBGNƒDS.Lƒ1’STARTOFVECTORUSETABLE 0IOVCTBGN‚DS.Lƒ1’STARTOFVECTORASSIGNMENTTABLE ,ADEFTYPƒDS.Bƒ1’DEFAULTMEMORYTYPEFORASQ'S ,TDEFTYPƒDS.Bƒ1’DEFAULTMEMORYTYPEFORTCB'S >SDEFTYPƒDS.Bƒ2ŽDEFAULTMEMORYTYPEFORSYSTEMTASKS(ROANDRW) ,5*‚Therearetwospecialvaluesfor:,*‰0=COMINT(thecommoninterrupthandler).(*‰1=don'ttakeoverthevectoratall.E*‚Entriesinthevectortablemustbeassignedinorder--thatis,theB*‚vector#'sintheVECTORinvocationsmustbeinascendingorder.H*‚InthecasewheretwocontiguousVECTORinvocationsleaveagapintheE 5™<¡2K*‚vector#'s,thosevector#'sinthegapwillbeassignedthesamehandler9*‚asthatofthelowervector#ofthepair.‚Forexample,+*‰VECTOR$23,0ŽPoints$23to$27toCOMINT.-*‰VECTOR$28,1ŽLeaves$28to$2Fastheyare.-*‰VECTOR$30,ROUTINE1‡Points$30toROUTINE1.G*‚Ifthegaptobefilledhasasecondparameterotherthan0or1,theJ*‚addressassignedtothevectorwillbeincrementedby2foreachvector:7*‰VECTOR$23,XŽPoints$23toX,$24toX+2,$25toX+4.$*‰VECTOR$26,0ŽPoints$26toCOMINT.'*‚Theendofthelistissignifiedbya*‰DC.Lƒ0F*‚andthesecondparameterofthelastpriorVECTORinvocationwillbeK*‚appliedtoallfurthervectors,upto$FF.‚Again,ifthesecondparameterK*‚wasnota0or1,theaddressassignedtothevectorswillbeincremented#*‚by2foreachvectorinsequence.* VECTOR„MACROŒIFLEƒ\1-VECT_NUM0ŽFAILƒ499ŒVector#'smustbeinascendingorder!ŽMEXITŒENDCŒIFNCƒ'\2','0'ŽIFNCƒ'\2','1'XREFƒ\2ŽENDCŒENDCVECT_NUM„SET„\1ŒDC.Lƒ\1<<24+\2ŠENDM  * *‚Firstsetupthetableheader.*ŠSECTIONLEVEL00  0ŠDC.Lƒ'!VCT'Dumpeyecatcherfor'VeCtorTable.'2ŠDC.LƒCOMINTPuttheaddressofCOMINTheresothe"*§execinitializercanfindit;he#*§isn'tlinkedwiththeexec,sohe*§wouldn'tknowotherwise.ŠPAGE*)*‚Herearetheactualvectorassignments.I*‚NoticethatwhetherornottheillegalinstructionvectoristakenoverE*‚byRMS68Kiscontrolledbyansysgenparameter.‚DuringRMSGEN,this$*‚parameterissubstitutedsuchthatA*„0=theexecshouldleavetheillegalinstructionvectoralone.?*„1=theexecshouldtakeovertheillegalinstructionvector.J*‚YoumightwanttheexectoleavetheillegalinstructionvectoraloneifI*‚youwanttousetheROMdebugger,sinceitusesillegalinstructionsas*‚breakpoints.* 8VECT_NUM‚SET„1’Initializethevectornumberto1sothat&*§thelowestvectornumberthatcanbe*§setafterwardsis2. ŠVECTOR$02,PROGINT2‡Buserror.#ŠVECTOR$03,PROGINT3‡Addresserror.$*§Ifwe'renotsupposedtotakeover/ŠIFEQƒ\ILLINSTRŠtheillegalinstructionvector,9ŠVECTOR$04,1Žleavetheillegalinstructionvectoralone.ŠENDC–*!*§Ifwearesupposedtotakeover/ŠIFNEƒ\ILLINSTRŠtheillegalinstructionvector,>ŠVECTOR$04,PROGINT4‡takeovertheillegalinstructionvector.ŠENDC–*#ŠVECTOR$05,PROGINT5‡Divisionby0.+*‚insequence„$06,PROGINT6ŠCHKinstruction.-*‚insequence„$07,PROGINT7ŠTRAPVinstruction./*‚insequence„$08,PROGINT8ŠPrivilegeviolation.'ŠVECTOR$09,PROGINT9‡Instructiontrace.8ŠVECTOR$0A,PROGINTA‡Reservedinstructionopcodes$AXXX.>*‚insequence„$0B,PROGINTBŠReservedinstructionopcodes$FXXX.'ŠVECTOR$0C,0Ž($0C-$0EgotoCOMINT.)+ŠVECTOR$0F,KILLER‰UninitializedInterrupt.'ŠVECTOR$10,0Ž($10-$17gotoCOMINT.)'ŠVECTOR$18,SPURINTˆSpuriousinterrupt.'ŠVECTOR$19,0Ž($19-$1BgotoCOMINT.)*ŠVECTOR$1C,TIMEINTˆM6840timerinterrupt.'ŠVECTOR$1D,0Ž($1D-$1EgotoCOMINT.)8ŠVECTOR$1F,1ŽSoftwareabort(leaveitpointingtobug).ŠVECTOR$20,TRAP0ŠTRAP#0.ŠVECTOR$21,TRAP1ŠTRAP#1.#ŠVECTOR$22,TRPVCT2ˆTRAP#2to#15.'ŠVECTOR$30,0Ž($30-$8CgotoCOMINT.)/ŠVECTOR$8D,POWRFAIL‡ACFAIL*fromtheVERSAbus.9ŠVECTOR$8E,KILLER‰ThisvectoriswhatyouassigntoVM02$*§interruptsourcesyoudon'texpect#*§togooff;ittakesustoKILLER.)ŠVECTOR$8F,0ŽI/OchannelIRQ1*(COMINT).)ŠVECTOR$90,0ŽI/OchannelIRQ2*(COMINT).)ŠVECTOR$91,0ŽI/OchannelIRQ3*(COMINT).)ŠVECTOR$92,0ŽI/OchannelIRQ4*(COMINT).<ŠVECTOR$93,KILLER‰BusClearinterruptfromVERSAbusI/F.‚We%*§shouldn'tbegettingthis,sincewe'*§useblocktransfermodeonlyifthere%*§arenootherpotentialbusmasters.0ŠVECTOR$94,CMRSFAIL‡SYSFAIL*fromtheVERSAbus.E  'ŠVECTOR$95,0Ž($95-$FFgotoCOMINT.)  !ŠDC.Lƒ0’(Endoftableindicator.)   ŠEND**ˆVM02.RMS.CI*B******************************************************************0*RMSsysgenincludefileforVERSAdossysgen.“*B*******************************************************************7* This file is created at RMSgen time to be included in*ƒtheVERSAdossysgen.* PCˆ=$E00 STACK…=$C00STARTRMS‚=$E00+$100ROMSADDR‚=$E00MMU‡=$0éééééé©#***********************************#* Sysgen command file VM02.RMS.CD *#***********************************SYSTEM„="VM02"*MMU‡=0ŒNoMMUispossibleonthissystem.*%* Assemble SYSPAR (System Parameters)*INCLUDE…C8OC.SYSPAR.CI*:*DefineRMS'sstartingaddress.‚Passstartingaddressand;* stack address to VERSAdos sysgen through file VM02.RMS.CI*'RMS‡=$E00‰AddresswhereRMS68Kstarts. SUBS†&.RMS.CI=COPY…&.XRMS.CI,VM02.RMS.CI;Y*C*‚NowindicatewhetherornottheexecshouldtakeovertheillegalC*‚instructionvector.‚IfyouaregoingtobeusingtheROMdebuggerE*‚tosetbreakpoints,thenyou'llwanttheillegalinstructionvectorB*‚leftasthedebuggerhasitset.‚InanenvironmentwheretheROMB*‚debuggerwillnotbeused,youwillwantRMS68Ktofieldillegal*‚instructionsasexceptions.*-ILLINSTR‚=1ŒIllegalinstructionvectorflag:"*¨0=RMSshouldnottakeitover.*¨1=RMSshould…takeitover.**'*‚NowcreateaVECTTBLforthissystem.*SUBSˆVM02.VECTTBL.AG8ASM‰VM02.VECTTBL.AG,VM02.VECTTBL.RO,VM02.VECTTBL.TF;Z=50*)* Now we generate the RMS68K load module.* Now link it all together.* RMS0LO„=\RMSRMS0HI„=\RMS+$FFRMS2LO„=\RMS+$100*SUBSˆVM02.RMS.LGLINKˆVM02.RMS.LG*=DELˆ&.SYSPAR.RO*!* Create one concatenated listing*#=COPY‡VM02.VECTTBL.TF,VM02.RMS.LL;A"=COPY‡C8OC.SYSPAR.TF,VM02.RMS.LL;A** Cleanup junk files* =DELˆ*.*.TF;Y*0* The following files are created by this RMSgen**ˆC8OCF .SYSPAR.RO$*ˆ&.SYSPAR.RO‰copyofC8OC.SYSPAR.RO *ˆVM02.RMS.LO *ˆVM02.RMS.LL *ˆVM02.RMS.CI**ˆ&.XSYSPAR.AG *ˆ&.XRMS.CI*ˆVM02.XVECTTBL.AG*ˆVM02.VECTTBL.RO*ˆVM02.XRMS.LG*END‰é²F=/*=/*†VM02.RMS.LG=/* =/* RMS link chain file for VM02=/*.=LINK ,VM02.RMS.LO,VM02.RMS.LL;H,M,I,X,-U,Z=40SEGRMS0:0\RMS0LO,\RMS0HISEGRMS2:2,3,4,5,6,7,15‚\RMS2LOINPUTˆ&.SYSPAR.ROINPUTƒM68XXX.RMS.ROINPUT…VM02.VECTTBL.ROIN†M68XXX.AKRQST.ROIN†M68XXX.ASQALOC.ROIN†M68XXX.ASQEVENT.ROIN†M68XXX.ASQFREE.ROIN†M68XXX.ASQGET.ROIN†M68XXX.ASQREAD.ROIN†M68XXX.ASQSTATS.ROIN†M68XXX.ASRINT.ROIN†M68XXX.ATSEM.ROIN†M68XXX.BKG.ROIN…NOCACHE.CACHE.ROIN†M68XXX.CDIR.ROIN†M68XXX.CISR.ROIN†M68XXX.CKDELAY.ROIN†M68XXX.CKEXPAT.ROIN†M68XXX.CMR.ROIN†M68000.COMINT.ROIN†M68XXX.DCLSHAR.ROIN†M68XXX.DELAY.ROIN†M68XXX.DEMON.ROIN†M68XXX.DERQST.ROIN†M68XXX.DESEM.ROIN†M68000.DISPATCH.ROIN†M68XXX.DSEGX.ROIN†M68XXX.DSERVE.ROIN†M68XXX.DSEMX.ROIN†M68XXX.DSRVX.ROIN†M68XXX.EQDQ.ROIN†M68XXX.EXABRT.ROIN†M68000.EXCEPT.ROIN†M68000.EXIT.ROIN†M68XXX.EXMMSK.ROIN†M68XXX.EXMON.ROIN†M68XXX.EXMONVR.ROIN†M68XXX.EXQEVENT.ROIN†M68XXX.EXRQPA.ROIN†M68XXX.FNDGSEG.ROIN†M68XXX.FNDTSEG.ROIN†M68XXX.FNDUSEM.ROIN†M68XXX.GETTCB.ROIN†M68XXX.GTDTIM.ROIN†M68XXX.GTTASKID.ROIN†M68XXX.GTTNAME.ROIN†M68XXX.KILLER.ROIN‡NOMMU.LOADMMU.ROIN†M68XXX.LOGPHY.ROIN†M68XXX.PAGEALOC.ROIN†M68XXX.PAGEFREE.ROIN†M68XXX.PAUSE.ROIN†M68XXX.POWRFAIL.ROIN†M68XXX.PSTATE.ROIN†M68000.PVSEM.ROIN†M68XXX.RCVSA.ROIN‡M6840.RDTIMER.ROIN†M68XXX.READY.ROIN†M68XXX.RELINQ.ROIN†M68XXX.RESUME.ROIN†M68XXX.REXMON.ROIN†M68XXX.RQSTPA.ROIN†M68XXX.RSTATE.ROIN†M68XXX.RTEVENT.ROIN†M68XXX.SEGALOC.ROIN†M68XXX.SEGDEAL.ROIN†M68XXX.SEGSHAR.ROIN†M68XXX.SELFTEST.ROIN†M68XXX.SERVE.ROIN†M68XXX.SETPRI.ROIN†M68XXX.SGSEM.ROIN†M68000.SINT.ROIN†M68XXX.SNAPTRAC.ROIN†M68XXX.SPURINT.ROIN†M68XXX.STDTIM.ROIN†M68000.SUPER.ROIN†M68XXX.SUSPEND.ROIN†M68XXX.TERM.ROIN†M68XXX.TFRSEG.ROIN‡M6840.TIMEINT.ROIN†M68XXX.TRACER.ROIN†M68000.TRAP0.ROIN†M68000.TRAP1.ROIN†M68XXX.TSKATTR.ROIN†M68XXX.TSKBORN.ROIN†M68XXX.TSKINFO.RO»^Ä IN†M68XXX.TSKMOVE.ROIN†M68XXX.TSKSTART.ROIN†M68XXX.TSKWAIT.ROIN†M68XXX.USERVECT.ROIN†M68XXX.WAKEUP.ROIN†M68XXX.WTEVENT.ROINPUTƒM68XXX.RMSPATCH.ROEND=/*=ENDéééF ééééM1VECTTBL ASREL'VM02 XVECTTBLAGGY…RMS68K vector table for the VM02.«2pPOWRFAIL pPROGINT2 pPROGINT3 pPROGINT4 pPROGINT5 pPROGINT9 pPROGINTA pTIMEINT pSPURINT pTRAP0 pTRAP1 pKILLER pCOMINT pTRPVCT2 pCMRSFAIL "x~3?’C˜!VCT(,,,,, , ,,,, ,!,"0,,Ž$3‘’,“,”•4ééééééÌRMS ÿÿÿÿÿ€RMS0€RMS2Nÿÿÿÿ\ÿÿaxa:t`,N¹dDUMY"x ,|$iµüfa 8`J#R|øÿB’Bª%|ÿÿÿBª GúÿÊ%KBj%|ÿÿÿþ5|øÿ|&i “gGÓ`ô&Š|øÿNs!VCTÖ¼¾À Ò Ê d€² f!ü"P0´Žd‘’“d”Zä•/ @ç|G JèfB"x "ˆ!È Pø Fß"_NuJøfDHçÿþAø@ç| g$"@ ‘f!È |øÿ$iQéN’Aø| fÜQøQø FßLßÿNuPøNQøJ8 f¤NuNuNu@ç*j-,g|$©#JF×`tª>*g4gRjÇ fX g­,fí-`­ ,g` B­X­,AÕa f|$©#JF×`$* |a ¢F×FßNuHçAp@ç|a –$8 >&68 @FßHC(HD4<  g 4<8***HB g2Hçz,* m6a"`NqLß8`Lßp&*HC6‚€4*AÕaðNqLß‚R`ÿX?5|$* *g |a þ` |$©#J"*0<@ÂÄjFÂ&jNÓ8 4gaLî`*_a ¶ _N`Lßÿ\|Jx fNsj?_f aþJ8 fNs?_'fö/,x Hî?ÿL× NiHî8`ö@ç8 4gaäî HçÿþNi/ /9 d oF,hHV/(@À@ÿ?"h 0P*n6` & fÿr\,_( „!TCBga ÎJ@gÿJ @f AÖa?`ÿ: @fÿ2Jf&HC4<HBAÖa°Nq`ÿHBHA(&64< ‚HB4`àâˆ&T(,_" !TCBga jCð=C^AÖa>¨J®@gþÖ$< ÿÿHCHD6`¤-@L× NiHî8AÖa È.x |øÿMø |"N ) gì,@.,fð#n ®-!Î /.D/.@Qø 1ø H FpàÀ.-fh|øÿ*n6a  n<€™AÖa®Ü‡(F9n@ÿú)nBÿü-'fLîÿHìÿÿ¾Lî0Hìÿî -/@-@B`ÿ*n6a n, ,"0<2 gB@2g<,*.,(>,°H@0,²H@"@J²f -@g4&@4+HC6+HCAòa*J²gHç@(AÕa Â`Lß ra¶,sf`žLß,sò Rrì ,NuÇ1G*è)!|EXEC°!| ´<(,Æ1F.½Èg$F-ÿ† g†1F,|ð& fa¾Nu1F,X`5Fa aaaaaaaaaa a aaaaNq?/_'g/ g*8 ]…šNh,œ… n6aV`Nq`"(F CN`&8 UC _8ß¿Ãfú/?,ÿú/<<`B† m n _-_¸-_¼/.)g".èg a nbJf\ nCø ˜ 1pfÊaü8`rJFf:AÖaý6 HzýŽŸ`ú P` €ž`ú ~$.èffffNLî?ÿ,_` z,.ð n6az`Nq`&~ F&(.ô·„f È®ìg-Cô`"R‡È®ìgg°Rnø .ø°nøb ~aN`˜./,x ½üg0/ f(.)g .è8gîè,_"¯Pø Ns,_"/8 6Nua‚$< 4.&.(.8áL<Aîàa¢`®)Lîÿt®-@&Nuî ,X`ùJ .`p|Jx f Lî?þ,_Nsjùaö J8 gè`ùB®L× NiHî8`ùp`Np`Jp`Fp`Bp`>p`:p`6p`2p `.p `*p `&p `"p `p`p`p`=@=|çG` H@0<.H@ x QˆYˆ.H|`ÿV@çHç0x "x ,JAkj fah|&)fFïT¯`Ø`J$C#RFïBª€%@ %H%BBjgêáIAøÿ5A$|aœFï`Œa`†Hç8Eé&J|$S ªf"´ªf&’(R(,Ù¸ NÙ¸ J¸ JFï0`:&J&g2$C ªf ´ªf&’(R¸üg(*Ù¬Fï0` `&J&`Ì`$©#JLßNuLß FßNu&i"’¸ Nl! NÓ¸ J¸ JD'A$‹#J`&(S’¬m &L(S’¬`ô%lÓªD)A$“&ŠNu/)µßfa`a&Nu#R$©#J$i *Ѹ NѸ J¸ JNu&’$©#J *$SѪNu#R&i +Ѹ NѸ J¸ JNuHøÿÿ@ø!×Ni!ÉH!øL"x :3|•3|µ3| 3|°|`ÞNuNsNu|ð%ax`ö„Høÿÿ1×!ï|LøÿÿNs@ç|JÐkü0ãHâ@S@0€kFßNua:U.raFßAÖa`ö6î ,B® (f!NNu*@ - fø+N NuHç .&|ð&î-HîÿtNl-L< 8 Kï €Pn@rIî™ÀäHd8Ý`(ÝQÈÿüLß0Nuaþì@ç|JÐkü0ãHâ@R@o0€FßNu/ "h!i €0€B© © ,"_FßNu/ x BB@ç| 0àIDAÒx XäIÒ¸ J’¸ N’¸ RFß _NupðÀ($@&`h$&@ç|è-f6Hç@ Eø (&"* g ʰ*&còÊ!A %H $x °*&cPø LßFßNuJ¸ vf|Hçÿþ!Ï vFï<.x v|9÷0 À÷0.x vLßÿÿB¸ vNsRx ^ xd ^k$/ "x :3|3|53|.3|>"_Bx ^NsHçÀÀ x :| x B(( B28 V“¸ Nn"x ,AéCú1º& |ùØùØ@ @@ (@ (@ ²@ :ÈùØùØùØùØ@'^ ðDÀxùØùØùØ@ ‚)f2ŒÀ @ÚùØÀ!èÀèÀ !ÌÀ %¢À "ÜÀ #hùØùØ@–@(Ì@"¼à8 4gašÿ.)g".èg~a÷öå@kN @,bDGúþž$3g2*HE…ÿ, n6a¬`Nq`øT(FgAÔaò``øD*HNó `ø2$x ($ gôä@D@°jnêS@Àü EòJªgÚ4*‚f"²®fÈ-W8BnH?Hz @ç$jNÒ0.Hfø20g÷ž @fAÖaûš`÷¶"( Pa^` T—Nu !TCBfô*H(m@ gê ᘀÿgÞ@ç|2,$0{Nû€0000>>>>00008Š8Ê8ª8ö8T8ZFßT¯NuFßaù€af``ê¬%FßaNu l` l 9A$Fßaà"HA faúAÕaúÈNua``ž9A$Fßa€aÐNuaú``ÿ~9A$Fßa^a°Nu9A$Fß l aV"HA faŒa„Nu9A$Fß l a*"HA fa`aXNug"2HA)A`6‚g "2HA)A`)l`‚gY@‚4&(*,. "JåHNûú`|NqNqNq ‚`~NqNq ‚/`hNqHÐ `lNqHÐ /`VHÐ`\NqHÐ/`FHÐ<`LNqHÐKøIøB§$I"x fFJQk$¶1@f&i OJg·Øg`öHSAëa÷ºa”Cé QÿÿfÎB„J—g| g4´¬o  g($,aœ‚)aØ®- K gT¯Lß88Nu g@î-|ð&Aí-H”@ç|0ãHâ@S@lü0€a÷pFßAÖaø^a‚`íR„R„`œ g*$@ g**º‚m´¬nº¬m` º¬o(J*K fÖNu•¬Õ¬ *,áGôXf*, $T ,g"@Û© "Šg%INu*ŠgúBªNua÷ nw&Nu"_ g @Aèa÷H`ðNÑ g®JQk iµèlž`µél”µém˜fÿ@JQk’*iHUAíaöT gþâáŠ&J×ÂàŠ(@°ŠnþÒ ,áˆÐŒ°Šn fè`þ¾°‹gþzn gþ®Šàˆ$`þf&”g"T#K(‹'L'l B¬ ‹àˆ'@‘¬`þHç $nLß0T—Nu$H"x ÿÿg *iµílµémÜJQkÞá‰Òв­bÎ` Cé QÿÿfÐ`ÀCøAíaõv&g C±Ál"H&fô g )áˆÐ‰µÀm¬%B f -àˆ%@ $ƒ%If*Š`$"Š ‰àˆ©#@ f *Ñ©#j "’$IJƒg$"C#JJª f )Ѫ%i $‘g"R#J- ð"x ²f(i,g Aìaõn`îCé QÿÿfÜAíaõZLß0NuT—`îHçÀ@ç&x 0|*S»ëfKëIí&ŒFß+@+H+N (o:”T¯;o+o Uïÿb+o aõ8+A2<ù’àHF@@ÀüúÒ@;ALß8NuBƒB€"x gbEé0)gP—ËJj f ·üf$&J` ±êf´’gB* g f4 f& ÕüS@fÄJƒf"0) K·üf J°i m‘ÈR€T—Nu JNu CNuB€*g B…:(0P$f `¾°P g Q… E læ*T—NuB‚BƒB"x $( gd4)´i gRB(pJq fJƒf:& „g04)`*±üg±ñf$lµñf$lµñg"Jq k"€SDf²T—JƒfB€B‚Nu Nu qNu gJg` N".Nu gô"(g.(f".°®f²®gÖ x ±üg°¨f²¨g* h`æJf @Hz?)gB,,Jm g.¼•f*­ Jm f0-@ fB2- m aù&`aî|ÛüSGfÂNu>, fz,, n6aüx`Nq`ìH$F,g z,, m6aüX` ` JEgJ0Ðf`ì ., m6aúÖ``ìB€00P, f:ÐpPáˆ%@B€$°P 5pP$ª00Páˆ%@B€00Páˆÿ%@ `ë^áˆ-@ `ëT»Îg-,f `ë¤`ëŒ`ëŒ., m6aú\`îJ…gæ0, 2,A'ÿg f  gÁÁÁ B‡,,g  gB† ff-)f ¸ fÁ.8xΆެÞ¸xθ|à"FffAø rfRˆ-(fTˆHG>G‡ÿ?HG Gaõ&`(TS€g`êº`êº2f"AÓa÷f`aì¼`ê¬&H.*ág, "F m6aú¾`Ê`ÈJ0PfÂ!¬ P 0, @Oÿ gÀ1€P$1¼Pg1¼PH  àˆ1€PЇS€1€P ‰àˆ1€PP&ðP$R(-K gá-G$½Íf *n6aì^*NT`éª., 8,(M¹Îg ,,f `éðNh)H<*l6AÕaø¬``éÎJ¬@g ,<àˆ°uPe °uPb`éºa`éX05P$@0g@$,25P$ uP a÷ì`aë¨<(SFÜuP;†PSh B†<(  g†1F JFf.05P$@ f$B€05PÐuPáˆB25P’uPR @aõú`aëPBuPaëˆBµP BµP$BµPBuPS-Nu*Na*n6aëb`è²»Îgéa`è¦$-2, l a÷D``èä`èØ`èì`èÔ&H$m6.+AÒa÷ `êJ…gÞB…:+á, gº¬d`èÌ*,…ÿB$,,B, g,+ AÒaø¾` `žJ…faê’J0Pf%«P B2P' àŽ5†PàŠÜBSF5†PD€Ð« àˆ5€P5¼P+g5¼P5«P$òP$R*Rk -k  NuB‚,"x hJ1 oè"Bƒ,g Co`çüá‹à Hz@çåŠ B/?8 5gaõ¸îNs8 5gaõ¨Ý`çj&M*n6., AÕaö†``ç¨J®@gNh àˆ°uPe°uPcç–·Îgçx"E$L.* k6aöP`J…f`çf`çf* ,**fB†<5P* gÜuPáŽB€05PuP$R@*áa÷n` `J…faéB`ç2J0Pfö"( à‰ÔA1P1‚P’u@DAÒu@1P!µ@ P 1µ@&P&65@$*gƒ* gÃÃ1ƒP$1¼Pg1¼PBu@ÉEaéËDBµ@ Bµ@$Bµ@Bu@S-R(20PÒpPá‰-A  g$$.´«g pP "(KaôÈ`aè„&L$+ ‚`æ,,`&"-6g*,,, Aaö‚`` J…gJ0Pf`æD..)g , g @ !TCBg` Aì aõ¤``æ N.(f ((g`åø"(6g*,,, Aaö`` J…gJ0Pf`åâHzÿ”?,--gGÿg­-g- ,gSs­-f­ ,Ss3g³ gAóaègl A g+l  g+l  g- ,fAÕaè\`äV g í,`äF gØí ,`ä6J­@fä~B‚,gfäŽB‡, g*,, m6aô`Nq`ä`fädB†&, $‚0¶‚l&ƒÿà‹HC8 pHC Caîz``ä ¼!ASQ!l!F Gè,!K!K!K 1G(áŠÔˆX‡”‡!BBƒ,481B&;01B$Bh*+H@`ãh $L(m@ gb.)g@"j B€ cPr fY fP@R@€°l(b0@ç|4,$6{ (Nû°$z,* n6aó`Nq`ã`"F`ª`ã8`ãd0000<<<<00006‚6¨6Æ6ê6\6bFß`ã&Fßaå aÈa`Fß`âì¬%FßaÖ`â l` l B9B$FßaàAÕaæp`âja‚a¼``¸9B$Fßa€ar`âD9B$Fß l a†aT`â&a>az``ÿv9B$Fßa`aã”Nu*N(n@ g@ç|4,$4{ Nû `áJ<6ª6<rª˜6666666600000000Fßaã &\e&\R€HÔ`ÖÂ&L- ,g×zJaÿœ(FCí0<"ÜQÈÿü+mt+m ”+\B0-è+\è-èø-è@A--gÖj+lÿîô;lÿúø+lÿöú`ÖTAÖaÚD`Ör­ ,gÖ AÕaÚB`Ö6&L- ,gÖŠzaÿ(F--f­@`­ø+lð+lô+l ì+løBmø-è8-èJgF--fí@`íø.-èg&z,-ð m6aæ>`Nq`Ö†(Ff+Tô­ ,0-,@ÿfAÕaÙ‚`Õ|@ç$, 6,|B„g (,nFß`ÕÔB… g *,fÆaÙCÀg*B†6, gƒg´lJ„gÔ„`ô‚&\`6,$Ô„"x ,Eé|&J$S gλêfð*fèJ†kºªfÞ&’ R±éf (Ѹ NѸ J¸ J` *ѨF×J†f2%M„%D %lBj%EÃ5C”|aÖBF×`‚RFCf* g0êªêB‚Hç~|aÖ FïLß~J†kÿF`@|$©#JF×J†kÿ0`*J†f| )g $@#RF×`ÿ`Fß`ÔXSFnFß`ÔVFß`Óü&Lz`aüà(FCí0<(ÙQÈÿü(íB8í@ -è€ÿÿÿ(À(í,0-è@ø8À(íð(íô(íì(íø--gÓ¨)môÿØ9møÿä)múÿà`Ó’*N"(n@ g<,'f8Nj~,'f‡<.)f&*, n6aãè`Nq><€™AÖaÏF`ÓŽ`Ó–&F`&J ‡oLÛ}Hî}LÛ|Hî| .‰0@ÿ/gÀ?@/[ÔÇNb@ç|4,$4{ Nû <d”d<|”|0606060600000000FßaÕ(Fß`Ò¬FßgÒ¢)l"lJ)j)iaô¸`Ò¶g B9B$Fß`Òlg B9B$Fß`ÒTFßgÒJ l aò aôn`Òl>,.(f‡J”gz, n6aâ°`Nq`Ò€J®@gÒX,‚Eø ˜J2 fÒJ¼ Eø ¨Äü%Ž %® 5¼ B² %” Br 5‡ 2` ò `Ѽ.(f -(fÒ,°-%cB® m%#`Ñò@$@&`цBG`><&,"x $0àH°i lF(¸±0f>Jq0 g8 10f ¾10g.‡0Jq0 j&10JGg Añ0aÔ`Ñ2Añ0aÔ°`Ñ&`Ñv`Ñz,*H"x 0 g i‘É*$ n6aá`Nq`Ñ`$F&äŠS‚$ÙQÊÿü$F(M"x 0&Q—ÉÙË$ÌÛÃ$Í`ÐÒ.(f`Ñ"@ç2<€tÿaÑhNqLÜ.<&\¾„b˜‡Rƒ`ö|!à >&8 J–¸ N–¸ R–„׸ R¸ RaFß`Ð|"8 R’¸ JÒ¸ N&\"ABtÿAúaÑ`aÒÂNu@ç|R¸ >¸&\ RaÀFßNs . €Kª{ûfÐfJnpg x :(fÐR x Uˆ, z n6aà”`Nq`Ð8*FLîÿN•,x *n6aÒ’`Ïâî ,`ÐJ”f@",g.(f".*y »üg(²­f-(f ½Ígí-g:*m`ØAÔaßz`B® `ÏÈ*H½Íg-(g .(f`ÏÆí-fϰ0,gÀí);@*;m,.-m +n°+n´­ ,­-­ ,g2 m”@ç|JÐküCèÿâJ© g»é g"i `î#m RPFßm-ÿ,|ð&­ ,gí-@ç|­-g <  @ ( g °fô!m AÕaÒ°Fß`΢î)=H*fî*.(g. (gL× NiHî8aÐà.-g`$.)fÎ=H*=n,.î--n°-n´(N"x ,Eé&J@ç| g$@¹êfaÐ*`&J `êFß,)gaàb ,Tg @B¨!x<!È<&,(,ì)"x )-f2¸©f¬),)g) ,g¶©àf¸©äf ><@AÑaɤ"i f¾,)gaòòNqaõŽ,)gaõh~Cø ˜Eø ¨"Âü 1pf2g/aÈ.., ,gaÐR‡ ‡oÄaëæaà²J¬gH4<HB4,&,8,HD8,°*,²<,¶HF<<.,*>,,)g<<$LAìaÕfNq(JCø )g¹Àg"@`ò#laÏ‚B¸ rAÔaÙÚ`L× NiHî8aÏ$`ÌÜ-mp =m("--gÌš`ÌöIëÿþ6<€a&NuT—Nu&LLìpHF>,6.(Ba ``Ìø`ÌfAÓaÜL``pT—NuB€8 qH@0< @aÖø`pT—Nu*H4<B˜QÊÿü+S +fgJ€f `<.p .;Fp+@aÚ€fDÿ;D(+El+EB;|„FHD0àHgfJg¸.%c.%D%°c@$@&*¼!TCB|€,;|:;|0$MÕü`+J6$¼!TST|5|$5|D x  -"-±üg"°¨f²¨g h`ærAÕaØ^NqpT—NuaÍî`pT—Nu+x !Í Nufg2 .".` ", , g.(g Jg` .".+@+ANu.(gË<*<,, n6aÛ^`Nq`Ë.,gË0&Fp&ÝQÈÿü`Ê®@ç, gzR` ,gz,. n6aÛ`NqFß`ÊÀJ”f6".*y »üg,²­f-(f-,g-.fB*m`ÔAÔaÚ,` B® Fß`Êx*H½Íg-(g.(fFß`Êt-,f Fß`ÊZ-m -.fX>,aI þÌ+mlB<-(F€g@z,-B m6aÚf`NqFß`Ê4+FB:(0P$g00PÑpPÑpPBpPQ… E làBm., gGìLÛÿHíÿLÛHí |­,0-,@ßfF×AÕaÍfFß`É^@çJ”f8".*x »üg0²­f-(f½Íg--fí,gJ*m`ÐAÔaÙ` B® Fß`ÉR*H--fì½Íg-(g.(fFß`ÉFí,gFß`É,;m,.-m |­-gCø  I"h ³üg ³Ífî!i Fß`È¢|®-fî,|øÿ`Ȱ|øÿAÖaÌ€0.^gÈvBn^`Èü-n Hî)`È^-n Lî)`ÈN Ma`ÈF@ç|¨,f è-FßNu (Xg"Hçp$@"x ,GéµÓg&S`øaÊB¨XLßFß0(^g1|1@|ABh^aËèNu*N(n@ g(,'f$@ç|.-f 4,$4{ Nû Fß`Dz`Çö`ÇþN6z6N6z60606060600000000FßaÉäî , 9B$Fß`Ç„9B$Fß)l"lJ)j)iaé^`ÇX9B$Fß l aæÜaé@`Ç:..)f,fz n6a׆`Nq`Ç. F$H"*f`ÇDAø ŒAø ŒaɰGø "SJ“g²©gØGé`ì f¾.)f, n6B…*çEa×&`Nq` B€* e c @dpËa„r Âj A fp ar"x hJ1gj´*fª *ÿg Jª fpÇaH *b *dpÌa4GêB…*g0 opÎaS…ç2*²sPdpÏa ²sPd pÏa``\Q…lâp Àjf" * @fRˆHyT6? *(SJ“fp a¦Gì°¬fì*,Ig°,(gp a† ¬g(l`ð"SJ“gGé`ô j p(R@ @Hç€8aÏö` LßpaÿJLß"HíˆB˜S€nú*g)I&‰"¼!CCB*giHLê?Hé?))àáˆ3@B@3@@GêIép)+g(Û(ÛS`öB€*åˆ#@D&j ×Ó#K )ÿf#|Yæ*géI*géH`R*fbB€*&x hJ3g:(iD &TGëÿ¶*` &lJ¬g +*²n(K`ê¹Àg #K)I`#K&iD3|N¹J#|ZšLIéJ&ŒB€* x h¼ÿ iÑè*I/N,_`‚`jp aøp aôpað gFo opÁaÜ n6B€S&@B… f )e: )c )€e* )b".)f;°g,aÔ ` Nq`š×ËGû°ÖÓNÓÿþ Ê Øî *aºf² © ©HfV")D(A&TGëÿ¶ `&lJ¬faŤ°‹g(K`ê¹Áf$J«g&(k9|N¹J)|ZšLIìJ&kD&Œ` )k`B)(&iDHzºÐ&Ÿ&x hB3Iø  &TJ”faÅD°‹gIë`ì(«Aø ŒaÆD IraÏÊ`@aÅpaz&Iaø"Kfpal)Hgp‚a`)IgpƒaT)Ig .(gþ€)Igp a6 )c )c )€e )c*g< * d pÆa¢`žj :#j `Á< )AîDJg"P°©gAé `îF€NuXBAø ŒaÄ `Á Aø ŒaÃú`Àp,m4B€-9f NpN@`F|q|ptAíp!­< g ­€pX‚€ ­8 T‚´-:cm:pLí<pažNuHç`CípB€ m"-+g|00J)fFÄ)fCéS`â0))gJ0`(©0-&ЈfS€ˆ$J0U@løB0 UBlø@À@FÀ-Hg Hç:aÿ Lß\øLß|NuLß|ÿþNuHç m4pN@`Lßx`LßxNu8 4g @ça͆îFßHç€Ä*oKíÿ°"m/ N‘*_e -g*@`êLß#X|Jx fNs`· 8 5gaÍ>îHç€Ä 8 g*@ m ( g / @çN°Fß*_ -`àLß#|Jx fNs`¶Ö DMotorolaM68000LinkageEditorVersion‚1.80‚03/01/85‚00:40:00‡Page1    Command Line: -LINK ,VM02.RMS.LO,VM02.RMS.LL;H,M,I,X,-U,Z=40  8OptionsinEffect:‚A,-B,-D,H,I,-L,M,O,P,-Q,-R,-S,-U,-W,X  User Commands: SEGRMS0:0$E00,$EFFSEGRMS2:2,3,4,5,6,7,15‚$F00INPUTˆ&.SYSPAR.ROINPUTƒM68XXX.RMS.ROINPUT…VM02.VECTTBL.ROIN†M68XXX.AKRQST.ROIN†M68XXX.ASQALOC.ROIN†M68XXX.ASQEVENT.ROIN†M68XXX.ASQFREE.ROIN†M68XXX.ASQGET.ROIN†M68XXX.ASQREAD.ROIN†M68XXX.ASQSTATS.ROIN†M68XXX.ASRINT.ROIN†M68XXX.ATSEM.ROIN†M68XXX.BKG.ROIN…NOCACHE.CACHE.ROIN†M68XXX.CDIR.ROIN†M68XXX.CISR.ROIN†M68XXX.CKDELAY.ROIN†M68XXX.CKEXPAT.ROIN†M68XXX.CMR.ROIN†M68000.COMINT.ROIN†M68XXX.DCLSHAR.ROIN†M68XXX.I DELAY.ROIN†M68XXX.DEMON.ROIN†M68XXX.DERQST.ROIN†M68XXX.DESEM.ROIN†M68000.DISPATCH.ROIN†M68XXX.DSEGX.ROIN†M68XXX.DSERVE.ROIN†M68XXX.DSEMX.ROIN†M68XXX.DSRVX.ROIN†M68XXX.EQDQ.ROIN†M68XXX.EXABRT.ROIN†M68000.EXCEPT.RO ¢ %3 */ .( 2 6 : > B F J N R V Z ^ b f j n r v z ~ ‚ † Š Ž ’ – šIN†M68000.EXIT.ROIN†M68XXX.EXMMSK.ROIN†M68XXX.EXMON.ROIN†M68XXX.EXMONVR.ROIN†M68XXX.EXQEVENT.ROIN†M68XXX.EXRQPA.ROIN†M68XXX.FNDGSEG.ROIN†M68XXX.FNDTSEG.ROIN†M68XXX.FNDUSEM.RO  DMotorolaM68000LinkageEditorVersion‚1.80‚03/01/85‚00:40:00‡Page2  IN†M68XXX.GETTCB.ROIN†M68XXX.GTDTIM.ROIN†M68XXX.GTTASKID.ROIN†M68XXX.GTTNAME.ROIN†M68XXX.KILLER.ROIN‡NOMMU.LOADMMU.ROIN†M68XXX.LOGPHY.ROIN†M68XXX.PAGEALOC.ROIN†M68XXX.PAGEFREE.ROIN†M68XXX.PAUSE.ROIN†M68XXX.POWRFAIL.ROIN†M68XXX.PSTATE.ROIN†M68000.PVSEM.ROIN†M68XXX.RCVSA.ROIN‡M6840.RDTIMER.ROIN†M68XXX.READY.ROIN†M68XXX.RELINQ.ROIN†M68XXX.RESUME.ROIN†M68XXX.REXMON.ROIN†M68XXX.RQSTPA.ROIN†M68XXX.RSTATE.ROIN†M68XXX.RTEVENT.ROIN†M68XXX.SEGALOC.ROIN†M68XXX.SEGDEAL.ROIN†M68XXX.SEGSHAR.ROIN†M68XXX.SELFTEST.ROIN†M68XXX.SERVE.ROIN†M68XXX.SETPRI.ROIN†M68XXX.SGSEM.ROIN†M68000.SINT.ROIN†M68XXX.SNAPTRAC.ROIN†M68XXX.SPURINT.ROIN†M68XXX.STDTIM.ROIN†M68000.SUPER.ROIN†M68XXX.SUSPEND.ROIN†M68XXX.TERM.ROIN†M68XXX.TFRSEG.ROIN‡M6840.TIMEINT.ROIN†M68XXX.TRACER.ROIN†M68000.TRAP0.ROIN†M68000.TRAP1.ROIN†M68XXX.TSKATTR.ROIN†M68XXX.TSKBORN.ROIN†M68XXX.TSKINFO.ROIN†M68XXX.TSKMOVE.ROIN†M68XXX.TSKSTART.ROIN†M68XXX.TSKWAIT.ROIN†M68XXX.USERVECT.ROIN†M68XXX.WAKEUP.ROIN†M68XXX.WTEVENT.ROINPUTƒM68XXX.RMSPATCH.ROEND  DMotorolaM68000LinkageEditorVersion‚1.80‚03/01/85‚00:40:00‡Page3    !Object Module Header Information: 4Module…VerRevLanguageDate…Time…CreationFileName ;SYSPAR‡5ƒ1Assembly03/01/8500:38:48SREL:9999..XSYSPAR.AG/‹Systemparametersat$C00;Crashsaveat$800. :RMSŠ5ƒ1Assembly02/28/8523:10:17SREL:9999.M68XXX.RMS.SA‹68xxxRMSINITIALENTRYPOINT AVECTTBL†5ƒ1Assembly03/01/8500:39:22SREL:9999.VM02.XVECTTBL.AG"‹RMS68KvectortablefortheVM02. @AKRQST‡5ƒ1Assembly02/28/8522:16:40SREL:9999.M68XXX.AKRQST.SA-‹68xxxDIRECTIVE--ACKNOWLEDGESERVICEREQUEST BASQALOC†6ƒ0Assembly02/28/8522:17:58SREL:9999.M68XXX.ASQALOC.SA'‹68xxxDIRECTIVE--ALLOCATEASQ“07/13/84 DASQEVENT…6ƒ0Assembly02/28/8522:19:25SREL:9999.M68XXX.ASQEVENT.SA&‹68xxxDIRECTIVE--QUEUEEVENT’07/13/84 BASQFREE†5ƒ2Assembly02/28/8522:21:41SREL:9999.M68XXX.ASQFREE.SA ‹68xxxDIRECTIVE--DEALLOCATEASQ AGTEVENT†6ƒ0Assembly02/28/8522:22:36SREL:9999.M68XXX.ASQGET.SA$‹68xxxDIRECTIVE--GETEVENT07/13/84 BASQREAD†6ƒ0Assembly02/28/8522:24:23SREL:9999.M68XXX.ASQREAD.SA%‹68xxxDIRECTIVE--READEVENT07/13/84 DASQSTATS…5ƒ1Assembly02/28/8522:25:53SREL:9999.M68XXX.ASQSTATS.SA ‹68xxxDIRECTIVE--SETASQSTATUS @ASRINT‡6ƒ0Assembly02/28/8522:27:18SREL:9999.M68XXX.ASRINT.SA/‹68xxxTRAP0--PROVIDEEVENTINTERRUPTŽ07/13/84 >ATSEMˆ5ƒ1Assembly02/28/8522:28:04SREL:9999.M68XXX.ATSEM.SA1‹68xxxDIRECTIVES--CREATEANDATTACHTOSEMAPHORE :BKGŠ5ƒ1Assembly02/28/8522:29:44SREL:9999.M68XXX.BKG.SA,‹M68xxx--Backgroundandguardedprocessing ?CACHEˆ5ƒ1Assembly02/28/8523:42:57SREL:9999.NOCACHE.CACHE.SA&‹Cachecodeforsystemswithnocache. DELAYˆ5ƒ1Assembly02/28/8522:39:45SREL:9999.M68XXX.DELAY.SA‹68xxxDIRECTIVE--DELAY >DEMONˆ5ƒ1Assembly02/28/8522:41:01SREL:9999.M68XXX.DEMON.SA*‹68xxxDIRECTIVE--DETACHEXCEPTIONMONITOR @DERQST‡5ƒ1Assembly02/28/8522:41:58SREL:9999.M68XXX.DERQST.SA0‹68xxxDIRECTIVE--SETUSER/SERVERREQUESTSTATUS >DESEMˆ5ƒ1Assembly02/28/8522:42:59SREL:9999.M68XXX.DESEM.SA'‹68xxxDIRECTIVE--DETACHFROMSEMAPHORE DDISPATCH…5ƒ1Assembly02/28/8521:46:56SREL:9999.M68XXX.DISPATCH.SA‹68000DISPATCHER >DSEGXˆ5ƒ1Assembly02/28/8522:44:13SREL:9999.M68XXX.DSEGX.SA&‹68xxxTRAP0--DEALLOCATEALLSEGMENTS @DSERVE‡5ƒ1Assembly02/28/8522:45:31SREL:9999.M68XXX.DSERVE.SA,‹68xxxDIRECTIVE--DEALLOCATESERVERFUNCTION >DSEMXˆ5ƒ1Assembly02/28/8522:44:56SREL:9999.M68XXX.DSEMX.SA)‹68xxxTRAP0--DETACHFROMALLSEMAPHORES >DSRVXˆ5ƒ1Assembly02/28/8522:46:31SREL:9999.M68XXX.DSRVX.SA)‹68xxxTRAP0--DEALLOCATESERVERFUNCTION