.ENABLE SUBSTITUTION, GLOBAL .DISABLE QUIET .;+ .; LB:[1,2]VMCONTROL.CMD .; Virtual Memory Driver system startup command file .; .; COPYRIGHT (c) 1983, 1986 BY EEC SYSTEMS INCORPORATED .; ALL RIGHTS RESERVED .; .; This command file creates the VMDRVR partition and .; loads the VM driver into the high end of partition .; GEN. .; .; Inputs: @LB:[1,2]VMCONTROL P1 P2 P3 .; .; P1 = LOAD/UNLOAD flag .; (L[OAD]=Install the VM: driver) .; (U[NLOAD]=Remove the VM: driver) .; .; P2 and P3 only apply if (P1 = LOAD) .; .; P2 = # K words of memory to use (Decimal) .; P3 = Y/N flag .; (Y[ES]=Initialize and mount VM: as a files-11 disk) .; (N[O]=Leave the VM device uninitialized and dismounted) .; .; Remember that 1 KWORD of memory yields 4 DISK BLOCKS of space. .; .; Outputs: .; .; Exit status = 1 ;Device VM: setup and online (Not initialized) .; Exit Status = 4 ;Error occured, error message printed .;- .; Determine if this is Micro/RSX .SETF $MICRO .TESTFILE LB:[1,2]SYSPARAM.DAT .IF = 1 .SETT $MICRO .; .; Install needed utilities .; .SETS TNAM "" .IFNINS ...INI .SETS TASK "INI" .IFNINS ...INI .GOSUB INSTAL .IFNINS ...MOU .SETS TASK "MOU" .IFNINS ...MOU .GOSUB INSTAL .IFNINS ...LOA .SETS TASK "LOA" .IFNINS ...LOA .GOSUB INSTAL .IFNINS ...UNL .SETS TASK "UNL" .IFNINS ...UNL .GOSUB INSTAL .SETS TNAM "BAD" .IFT $MICRO .IF = "DCL" .SETS TNAM "BA" .IFNINS ...'TNAM' .SETS TASK "BAD" .IFNINS ...'TNAM' .GOSUB INSTAL .SETS TNAM "DMO" .IFT $MICRO .IF = "DCL" .SETS TNAM "DM" .IFNINS ...'TNAM' .SETS TASK "DMO" .IFNINS ...'TNAM' .GOSUB INSTAL .SETS TNAM "" .IFINS ...VMM REMOVE ...VMM .IFNINS ...VMM INSTALL $VMMGR .IFINS ...VMM .GOTO GOTVMM ; ; ?VMCONTROL-F-Unable to install VMMGR task ; .GOTO EECHLP .GOTVMM: .TESTDEVICE VM: .TEST "NSD" .IF <> 0 .GOTO NOLOG .PARSE "," DEV REST .IF DEV <> "VM0:" .GOTO ERRLOG .NOLOG: .; .; Obtain P1 if not given .; .IF P1 <> "" .GOTO GOTP1 .ASKS [4:6:"LOAD"] P1 Would you like to LOAD or UNLOAD VM: .GOTP1: .; .; If UNLOAD, go to the correct code .; .SETS P11 P1[1:1] .IF P11 <> "L" .GOTO UNLOAD .DOLOAD: .; .; Obtain all options if not present .; .IF P2 <> "" .GOTO GOTP2 .ASKN [32.:2000.:128.] N How many Kwords would you like to allocate to VM: .SETS P2 "'N'" .GOTP2: .IF P3 <> "" .GOTO GOTP3 .ASKS [1:1:"Y"] P3 Would you like to initialize VM: FILES-11 .GOTP3: .; .; Invoke VMMGR to create the VMDRVR partition .; VMM 'P2' .IF = 1 .GOTO 1 ; ; ?VMCONTROL-F-Unable to create VMDRVR partition of size = 'P2'KW ; .GOTO EECHLP .1: .; .; Load the driver .; LOAD VM:/HIGH/PAR=GEN .IF = 1 .GOTO 2 ; ; ?VMCONTROL-F-Unable to load VM: driver ; .GOTO EECHLP .2: .; .; Set the driver online using CON .; .IFNINS ...CON .SETS TASK "CON" .IFNINS ...CON .GOSUB INSTAL CON ONLINE VMA .IF <> 1 .GOTO 3 CON ONLINE VM: .IF = 1 .GOTO 4 .3: ; ; ?VMCONTROL-F-Unable to set driver VM: online using CON ; .GOTO EECHLP .4: .SETS P33 P3[1:1] .IF P33 <> "Y" .GOTO EXIT MOUNT/FOREIGN/NOSHARE/WRITE VM: .IF <> 1 .GOTO INIERR .IF = "MCR" BAD VM:/LI .IF <> "MCR" ANALYZE/MEDIA/SHOW VM: .IF <> 1 .GOTO INIERR .IF = "MCR" INI VM:FASTDISK/INDX=BEG/MXF=50./INF=20. .IF <> "MCR" INITIALIZE VM:FASTDISK/INDEX=BEG/MAXIMUM=50./HEADER=20. .IF <> 1 .GOTO INIERR .IF = "MCR" DMO VM: .IF <> "MCR" DISMOUNT VM: .IF <> 1 .GOTO INIERR .IF = 1 MOUNT/SYSTEM/WRITE VM:FASTDISK .IF <> 1 MOUNT/SYSTEM/WRITE/PROC=UNIQUE VM:FASTDISK .IF <> 1 .GOTO INIERR .GOTO EXIT .; .; UNLOAD .; This routine handles the UNLOAD function of LB:[1,2]VMCONTROL.CMD .; .UNLOAD: .TESTDEVICE VM: .TEST ",MTD" .IF = 0 .GOTO NOTMOU .IF = "MCR" DMO VM:/DEV .IF <> "MCR" DISMOUNT/SYSTEM VM: .NOTMOU: .; .; Set the driver offline using CON .; .IFNINS ...CON .SETS TASK "CON" .IFNINS ...CON .GOSUB INSTAL .IFLOA VM: CON OFFLINE VM: .IFLOA VM: CON OFFLINE VMA .; .; Unload the driver and deallocate the VMDRVR partition .; .IFLOA VM: UNLOAD VM: VMM 0 .EXIT: .IFINS ...VMM REMOVE ...VMM .EXIT 1 .ERRLOG: ; ; ?VMCONTROL-F-Logical VM: (assigned to 'DEV') must be deassigned! ; ; The logical definition of VM: must be deassigned before ; the VMCONTROL command file can be run. ; .GOTO EECHLP .INIERR: ; ; ?VMCONTROL-F-Error initializing the VM: device. ; .EECHLP: .IFINS ...VMM REMOVE ...VMM ; ; %VMCONTROL-I-If you are unable to correct the problem ; please call EEC Systems Inc. for help. ; (617) 443-5106 ; .EXIT 4 .; .; INSTALL .; This routine attempts to install the TASK name .; passed to it by using any one of the possible .; three forms of tasks. No library, user-mode .; library, and supervisor mode library. .; .INSTAL:.SETS TEMP "'TNAM'" .IF TEMP = "" .SETS TEMP "'TASK'" .IFINS ...'TEMP' .RETURN .SETS INSLOC "LB:"+"''" .SETS INSLO2 "LB:"+"''" .IF <> 6 .GOTO NOTMPL .SETS INSLOC "LB:"+"''" .NOTMPL: .TESTPARTITION FCSFSL .TEST "NSP" .IF <> 0 .GOTO TRYRES .TESTFILE 'INSLOC''TASK'FSL.TSK .IF = 1 INSTALL 'INSLOC''TASK'FSL/TASK=...'TEMP' .IFINS ...'TEMP' .RETURN .IF <> 6 .GOTO TRYRES .TESTFILE 'INSLO2''TASK'FSL.TSK .IF = 1 INSTALL 'INSLO2''TASK'FSL/TASK=...'TEMP' .IFINS ...'TEMP' .RETURN .TRYRES: .TESTPARTITION FCSRES .TEST "NSP" .IF <> 0 .GOTO TRYNOR .TESTFILE 'INSLOC''TASK'RES.TSK .IF = 1 INSTALL 'INSLOC''TASK'RES/TASK=...'TEMP' .IFINS ...'TEMP' .RETURN .IF <> 6 .GOTO TRYNOR .TESTFILE 'INSLO2''TASK'RES.TSK .IF = 1 INSTALL 'INSLO2''TASK'RES/TASK=...'TEMP' .IFINS ...'TEMP' .RETURN .TRYNOR: .TESTFILE 'INSLOC''TASK'.TSK .IF = 1 INSTALL 'INSLOC''TASK'/TASK=...'TEMP' .IFINS ...'TEMP' .RETURN .IF <> 6 .GOTO NOTASK .TESTFILE 'INSLO2''TASK'.TSK .IF = 1 INSTALL 'INSLO2''TASK'/TASK=...'TEMP' .IFINS ...'TEMP' .RETURN .NOTASK: ; ; ?VMCONTROL-F-Unable to find the system utility "'TASK'". Please ; install it and re-run the installation procedure. ; .GOTO EECHLP