e _vߋtEMULEX is not a system disk  { ඾~K EMULEX SYSTEM DECFILE11B  000000.DIR BACKUP.SYS BADBLK.SYS BADLOG.SYS  BITMAP.SYS CONTIN.SYS CORIMG.SYS INDEXF.SYS SYSUPD.DIR  VOLSET.SYSM\?!7! UMAx CONVERSTATIONAL/DEBUG BOOT COMMAND FILE - UMAXDT?! BOOT FROM UMAx AND STOP IN SYSBOOT TO ALTER PARAMETER VALUES.,! THEN BREAKPOINT DURING VMS INITIALIZATION.!>! THE UNIT NUMBER IS SPECIFIED BY DEPOSITING THE DESIRED VALUE*! IN R3 BEFORE INVOKING THIS COMMAND FILE.!D/G 0 AC0002 ! UM DISK'D/G 1 FFE000 ! BASE OF UNIBUS I/O PAGE!D/G 2 3FDC0 ! CSR ADDRESS OFFSET#D/G 4 0 ! BOOT BLOCK LBN (UNUSED);D/G 5 7 ! SOFTWARE BOOT FLAGS (CONVERSATIONAL/DEBUG BOOT).D/G E 200 ! ADD ! Boot from UMA0 deviceI D/G 0 AC0002D/G 1 3 D/G 2 3FDC0D/G 3 0D/G 4 0D/G 5 0E SPL/P/S:@ VMB.EXES@ Boot from UMA0 deviceI D/G 0 AC0002D/G 1 3 D/G 2 3FDC0D/G 3 0D/G 4 0D/G 5 0E SPL/P/S:@ VMB.EX+! Conversational boot from UMA0 deviceI D/G 0 AC0002D/G 1 3 D/G 2 3FDC0D/G 3 0D/G 4 0D/G 5 1E SPL/P/S:@ VMB.EXES@ional boot from UMA0 deviceI D/G 0 AC0002D/G 1 3 D/G 2 3FDC0D/G 3 0D/G 4 0D/G 5 1E SPL/ { ඾~K EMULEX SYSTEM DECFILE11B ͒&AjU INDEXF.SYS;1 ඾~K඾~K@@@@ @@S@@3S&ABITMAP.SYS;1 ඾~K඾~K@?&ABADBLK.SYS;1 ඾~K඾~K:&A 000000.DIR;1 ඾~K඾~K@q&ACORIMG.SYS;1 ඾~K඾~KN&A@@VOLSET.SYS;1 ඾~K඾~K &ACONTIN.SYS;1 ඾~K඾~KJ &A@@BACKUP.SYS;1 ඾~K඾~K&A BADLOG.SYS;1 ඾~K඾~Ki&A  SYSUPD.DIR;1  ?ƮKaK@,L&A   730UM0BOO.CMD;1 ws@V` @V@j&A + 730UM0GEN.;1 3W@QW@X&A ' 730UM0XDT.;1  V !/V@&A  730UM1BOO.CMD;1 ƀV`RV@~&A  730UM2BOO.CMD;1 oVV@=&A  730UM3BOO.CMD;1  VV@uU&AjU INDEXF.SYS;1 ඾~K඾~K@@@@ @@S@@3S'! Boot from UMA0 device with XDELTAI D/G 0 AC0002D/G 1 3 D/G 2 3FDC0D/G 3 0D/G 4 0D/G 5 7E SPL/P/S:@ VMB.EXES@rom UMA0 device with XDELTAI D/G 0 AC0002D/G 1 3 D/G 2 3FDC0D/G 3 0D/G 4 0D/G 5 7E SPL/P/S: ! Boot from UMA1 deviceI D/G 0 AC0002D/G 1 3 D/G 2 3FDC0D/G 3 1D/G 4 0D/G 5 0E SPL/P/S:@ VMB.EXES@ Boot from UMA1 deviceI D/G 0 AC0002D/G 1 3 D/G 2 3FDC0D/G 3 1D/G 4 0D/G 5 0E SPL/P/S:@ VMB.EX ! Boot from UMA2 deviceI D/G 0 AC0002D/G 1 3 D/G 2 3FDC0D/G 3 2D/G 4 0D/G 5 0E SPL/P/S:@ VMB.EXES@ Boot from UMA2 deviceI D/G 0 AC0002D/G 1 3 D/G 2 3FDC0D/G 3 2D/G 4 0D/G 5 0E SPL/P/S:@ VMB.EX ! Boot from UMA3 deviceI D/G 0 AC0002D/G 1 3 D/G 2 3FDC0D/G 3 3D/G 4 0D/G 5 0E SPL/P/S:@ VMB.EXES@ Boot from UMA3 deviceI D/G 0 AC0002D/G 1 3 D/G 2 3FDC0D/G 3 3D/G 4 0D/G 5 0E SPL/P/S:@ VMB.EX&A< 730UMABOO.CMD;1 `I S +S@4+&A< 730UMAGEN.;1  UU@5*C&A< 730UMAXDT.;1  1U &1U@6,&A/ 750UM0BOO.CMD;1 ` @@7=&A> 750UM0GEN.;1 WCT@8*&A/ 750UM1BOO.CMD;1 !HcW@9\>&A> 750UM1GEN.;1  )`9@:&A/ 750UM2BOO.CMD;1  ϧMާ@;2&A> 750UM2GEN.;1 &7G@<O&A/ 750UM3BOO.CMD;1 O @_@=3/&A> 750UM3GEN.;1 @>( &A> 750UMABOO.CMD;1 =`N@?g&A8. 750UMAGEN.;1 `H @1@@&A?v 750UMAXDT.;1  &w&@@D`&A> 750UMBBOO.CMD;1  @E:&A 8. 750UMBGEN.;1 `@q@F\&A!?v 750UMBXDT.;1 py3 3@H<&A"2z 780UM0BOO.CMD;1 9+`+@J&A#D 780UM0BOO.ILV;1  UNy_y@LK~&A$> 780UM0GEN.;1 ܬMܬ@Ofq&A%= 780UM0XDT.;1 L' '@QI{&! Boot from UMAu device<! (deposit unit number into R3 before invoking command file)I D/G 0 AC0002D/G 1 3 D/G 2 3FDC0D/G 4 0D/G 5 0E SPL/P/S:@ VMB.EXES@ into R3 before invoking command file)I D/G 0 AC0002D/G 1 0! Conversational boot from UMAu device<! (deposit unit number into R3 before invoking command file)I D/G 0 AC0002D/G 1 3 D/G 2 3FDC0D/G 4 0D/G 5 1E SPL/P/S:@ VMB.EXES@ into R3 before invoking command file)I D/G 0 AC00-! Boot from UMAu device with XDELTA<! (deposit unit number into R3 before invoking command file)I D/G 0 AC0002D/G 1 3 D/G 2 3FDC0D/G 4 0D/G 5 7E SPL/P/S:@ VMB.EXES@ into R3 before invoking command file)I D/G 0 AC0002!$! UM0 BOOT COMMAND FILE - UM0BOO.CMD!D/G 0 AC0002 ! UM DISK'D/G 1 FFE000 ! BASE OF UNIBUS I/O PAGE!D/G 2 3FDC0 ! CSR ADDRESS OFFSETD/G 3 0 ! CONTROLLER UNIT = 0#D/G 4 0 ! BOOT BLOCK LBN (UNUSED)D/G 5 0 ! SOFTWARE BOOT FLAGS.D/G E 200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP$START 200 ! START PRIMARY BOOTSTRAP200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP$START 200 ! START PRIMARY B!/! UM0 CONVERSATIONAL BOOT COMMAND FILE - UM0GEN>! BOOT FROM UM0 AND STOP IN SYSBOOT TO ALTER PARAMETER VALUES.!D/G 0 AC0002 ! UM DISK'D/G 1 FFE000 ! BASE OF UNIBUS I/O PAGE!D/G 2 3FDC0 ! CSR ADDRESS OFFSETD/G 3 0 ! CONTROLLER UNIT = 0#D/G 4 0 ! BOOT BLOCK LBN (UNUSED)5D/G 5 1 ! SOFTWARE BOOT FLAGS (CONVERSATIONAL BOOT).D/G E 200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP$START 200 ! START PRIMARY BOOTSTRAP200 ! ADDRESS OF WORK!$! UM1 BOOT COMMAND FILE - UM1BOO.CMD!D/G 0 AC0002 ! UM DISK'D/G 1 FFE000 ! BASE OF UNIBUS I/O PAGE!D/G 2 3FDC0 ! CSR ADDRESS OFFSETD/G 3 1 ! CONTROLLER UNIT = 1#D/G 4 0 ! BOOT BLOCK LBN (UNUSED)D/G 5 0 ! SOFTWARE BOOT FLAGS.D/G E 200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP$START 200 ! START PRIMARY BOOTSTRAP200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP$START 200 ! START PRIMARY B!/! UM1 CONVERSATIONAL BOOT COMMAND FILE - UM1GEN>! BOOT FROM UM1 AND STOP IN SYSBOOT TO ALTER PARAMETER VALUES.!D/G 0 AC0002 ! UM DISK'D/G 1 FFE000 ! BASE OF UNIBUS I/O PAGE!D/G 2 3FDC0 ! CSR ADDRESS OFFSETD/G 3 1 ! CONTROLLER UNIT = 1#D/G 4 0 ! BOOT BLOCK LBN (UNUSED)5D/G 5 1 ! SOFTWARE BOOT FLAGS (CONVERSATIONAL BOOT).D/G E 200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP$START 200 ! START PRIMARY BOOTSTRAP200 ! ADDRESS OF WORK!$! UM2 BOOT COMMAND FILE - UM2BOO.CMD!D/G 0 AC0002 ! UM DISK'D/G 1 FFE000 ! BASE OF UNIBUS I/O PAGE!D/G 2 3FDC0 ! CSR ADDRESS OFFSETD/G 3 2 ! CONTROLLER UNIT = 2#D/G 4 0 ! BOOT BLOCK LBN (UNUSED)D/G 5 0 ! SOFTWARE BOOT FLAGS.D/G E 200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP$START 200 ! START PRIMARY BOOTSTRAP200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP$START 200 ! START PRIMARY B!/! UM2 CONVERSATIONAL BOOT COMMAND FILE - UM2GEN>! BOOT FROM UM2 AND STOP IN SYSBOOT TO ALTER PARAMETER VALUES.!D/G 0 AC0002 ! UM DISK'D/G 1 FFE000 ! BASE OF UNIBUS I/O PAGE!D/G 2 3FDC0 ! CSR ADDRESS OFFSETD/G 3 2 ! CONTROLLER UNIT = 2#D/G 4 0 ! BOOT BLOCK LBN (UNUSED)5D/G 5 1 ! SOFTWARE BOOT FLAGS (CONVERSATIONAL BOOT).D/G E 200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP$START 200 ! START PRIMARY BOOTSTRAP200 ! ADDRESS OF WORK!$! UM3 BOOT COMMAND FILE - UM3BOO.CMD!D/G 0 AC0002 ! UM DISK'D/G 1 FFE000 ! BASE OF UNIBUS I/O PAGE!D/G 2 3FDC0 ! CSR ADDRESS OFFSETD/G 3 3 ! CONTROLLER UNIT = 3#D/G 4 0 ! BOOT BLOCK LBN (UNUSED)D/G 5 0 ! SOFTWARE BOOT FLAGS.D/G E 200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP$START 200 ! START PRIMARY BOOTSTRAP200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP$START 200 ! START PRIMARY B!/! UM3 CONVERSATIONAL BOOT COMMAND FILE - UM3GEN>! BOOT FROM UM3 AND STOP IN SYSBOOT TO ALTER PARAMETER VALUES.!D/G 0 AC0002 ! UM DISK'D/G 1 FFE000 ! BASE OF UNIBUS I/O PAGE!D/G 2 3FDC0 ! CSR ADDRESS OFFSETD/G 3 3 ! CONTROLLER UNIT = 3#D/G 4 0 ! BOOT BLOCK LBN (UNUSED)5D/G 5 1 ! SOFTWARE BOOT FLAGS (CONVERSATIONAL BOOT).D/G E 200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP$START 200 ! START PRIMARY BOOTSTRAP200 ! ADDRESS OF WORK!%! UMAx BOOT COMMAND FILE - UMABOO.CMD! BOOT FROM UMAx !>! THE UNIT NUMBER IS SPECIFIED BY DEPOSITING THE DESIRED VALUE*! IN R3 BEFORE INVOKING THIS COMMAND FILE.!D/G 0 AC0002 ! UM DISK'D/G 1 FFE000 ! BASE OF UNIBUS I/O PAGE!D/G 2 3FDC0 ! CSR ADDRESS OFFSET#D/G 4 0 ! BOOT BLOCK LBN (UNUSED)D/G 5 0 ! SOFTWARE BOOT FLAGS.D/G E 200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP$START 200 ! START PRIMARY BOOTSTRAP200 ! ADDRESS OF WO0! UMAx CONVERSATIONAL BOOT COMMAND FILE - UMAGEN8! BOOT FROM UMAx AND STOP IN SYSBOOT TO ALTER PARAMETERS!8! THE UNIT NUMBER IS SPECIFIED BY DEPOSITING THE DESIRED0! VALUE IN R3 BEFORE INVOKING THIS COMMAND FILE.!D/G 0 AC0002 ! UM DISK'D/G 1 FFE000 ! BASE OF UNIBUS I/O PAGE!D/G 2 3FDC0 ! CSR ADDRESS OFFSET#D/G 4 0 ! BOOT BLOCK LBN (UNUSED)5D/G 5 1 ! SOFTWARE BOOT FLAGS (CONVERSATIONAL BOOT).D/G E 200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP$START 200 ! START PRIMARY BOOTSTRAP200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOI$ !---------------------------------------------------------------------!A$ ! Patch the DEC RP04/05/06 disk driver (DBDRIVER) to autosize !A$ ! the massbus controller to determine the configuration. This !B$ ! command file will call multiple PATCH command files, one for !B$ ! each unique version of the driver. Each of the individual !B$ ! command files checks the driver ECO patch level to insure !<$ ! only the appropriate version of the patch is applied. !I$ !---------------------------------------------------------------------!$ @DBPATCH.V30$ @DBPATCH.V32$ EXIT applied. !I$ !----------------------------- 750UMBBOO.CMD 750UMBGEN.  750UMBXDT.! 780UM0BOO.CMD" 780UM0BOO.ILV# 780UM0GEN.$ 780UM0XDT.% 780UM1BOO.CMD& 780UM1GEN.' 780UM2BOO.CMD( 780UM2GEN.) 780UM3BOO.CMD* 780UM3GEN.+ 780UMAXDT.,RESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP$START 200 ! START PRIMARY BOOTSTRAP200 ! ADD!%! UMBx BOOT COMMAND FILE - UMBBOO.CMD! BOOT FROM UMBx !>! THE UNIT NUMBER IS SPECIFIED BY DEPOSITING THE DESIRED VALUE*! IN R3 BEFORE INVOKING THIS COMMAND FILE.!D/G 0 AC0002 ! UM DISK'D/G 1 FBE000 ! BASE OF UNIBUS I/O PAGE!D/G 2 3FDC0 ! CSR ADDRESS OFFSET#D/G 4 0 ! BOOT BLOCK LBN (UNUSED)D/G 5 0 ! SOFTWARE BOOT FLAGS.D/G E 200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP$START 200 ! START PRIMARY BOOTSTRAP200 ! ADDRESS OF WO0! UMBx CONVERSATIONAL BOOT COMMAND FILE - UMBGEN8! BOOT FROM UMBx AND STOP IN SYSBOOT TO ALTER PARAMETERS!8! THE UNIT NUMBER IS SPECIFIED BY DEPOSITING THE DESIRED0! VALUE IN R3 BEFORE INVOKING THIS COMMAND FILE.!D/G 0 AC0002 ! UM DISK'D/G 1 FBE000 ! BASE OF UNIBUS I/O PAGE!D/G 2 3FDC0 ! CSR ADDRESS OFFSET#D/G 4 0 ! BOOT BLOCK LBN (UNUSED)5D/G 5 1 ! SOFTWARE BOOT FLAGS (CONVERSATIONAL BOOT).D/G E 200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP$START 200 ! START PRIMARY BOOTSTRAP200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BO!7! UMBx CONVERSTATIONAL/DEBUG BOOT COMMAND FILE - UMBXDT?! BOOT FROM UMBx AND STOP IN SYSBOOT TO ALTER PARAMETER VALUES.,! THEN BREAKPOINT DURING VMS INITIALIZATION.!>! THE UNIT NUMBER IS SPECIFIED BY DEPOSITING THE DESIRED VALUE*! IN R3 BEFORE INVOKING THIS COMMAND FILE.!D/G 0 AC0002 ! UM DISK'D/G 1 FBE000 ! BASE OF UNIBUS I/O PAGE!D/G 2 3FDC0 ! CSR ADDRESS OFFSET#D/G 4 0 ! BOOT BLOCK LBN (UNUSED);D/G 5 7 ! SOFTWARE BOOT FLAGS (CONVERSATIONAL/DEBUG BOOT).D/G E 200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP$START 200 ! START PRIMARY BOOTSTRAP200 ! ADD!$! UM0 BOOT COMMAND FILE - UM0BOO.CMD!HALT ! HALT PROCESSORUNJAM ! UNJAM SBIINIT ! INIT PROCESSOR#DEPOSIT/I 11 20003800 ! SET UP SCBBDEPOSIT R0 AC0002 ! UM DISKDEPOSIT R1 3 ! UBA TR=3-DEPOSIT R2 3FDC0 ! CSR ADDRESS OFFSET = 3FDC0#DEPOSIT R3 0 ! CONTROLLER UNIT = 0'DEPOSIT R4 0 ! BOOT BLOCK LBN (UNUSED)#DEPOSIT R5 0 ! SOFTWARE BOOT FLAGS-DEPOSIT FP 0 ! SET NO MACHINE CHECK EXPECTED#START 20003000 ! START ROM PROGRAM WAIT DONE ! WAIT FOR COMPLETION ! 2EXAMINE SP ! SHOW ADDRESS OF WORKING MEMORY+^X200-LOAD VMB.EXE/START:@ ! LOAD PRIMARY BOOTSTRAPSTART @ ! AND START IT 2EX!=! UM0 BOOT COMMAND FILE FOR INTERLEAVED MEMORIES - UM0BOO.ILV;! THIS IS A TEMPLATE COMMAND FILE FOR BOOTING FROM UM DISKSA! IN SYSTEMS WITH TWO INTERLEAVED MEMORY CONTROLLERS. THE MEMORY6! CONTROLLERS ARE ASSUMED TO BE AT TR NUMBERS 0 AND 1.!B! THIS COMMAND FILE SHOULD BE EDITED TO CHANGE THE UNIT NUMBER IF ?! NECCESSARY AND USED TO REPLACE THE DEFAULT BOOT COMMAND FILE.!HALT ! HALT PROCESSORUNJAM ! UNJAM SBIINIT ! INIT PROCESSOR#DEPOSIT/I 11 20003800 ! SET UP SCBBDEPOSIT R0 AC0002 ! UM DISKDEPOSIT R1 3 ! UBA TR=3-DEPOSIT R2 3FDC0 ! CSR ADDRESS OFFSET = 3FDC0#DEPOSIT R3 0 ! CONTROLLER UNIT = 0'DEPOSIT R4 0 ! BOOT BLOCK LBN (UNUSED)#DEPOSIT R5 0 ! SOFTWARE BOOT FLAGS-DEPOSIT FP 0 ! SET NO MACHINE CHECK EXPECTEDDDEPOSIT 20002000 101 ! ENABLE INTERLEAVE FOR TR #1 MEMORY CONTROLLER0DEPOSIT 20002004 4000 ! FORCE 0 STARTING ADDRESSDDEPOSIT 20004000 101 ! ENABLE INTERLEAVE FOR TR #2 MEMORY CONTROLLER0DEPOSIT 20004004 4000 ! FORCE 0 STARTING ADDRESS#START 20003000 ! START ROM PROGRAM WAIT DONE ! WAIT FOR COMPLETION ! 2EXAMINE SP ! SHOW ADDRESS OF WORKING MEMORY+^X200-LOAD VMB.EXE/START:@ ! LOAD PRIMARY BOOTSTRAPSTART @ ! AND START IT 2EXAMINE SP ! SHOW ADDRESS OF WORKING MEMORY+^X200-!0! UM0 CONVERSATIONAL BOOT COMMAND FILE - UM0GEN.>! BOOT FROM UM0 AND STOP IN SYSBOOT TO ALTER PARAMETER VALUES.!HALT ! HALT PROCESSORUNJAM ! UNJAM SBIINIT ! INIT PROCESSOR#DEPOSIT/I 11 20003800 ! SET UP SCBBDEPOSIT R0 AC0002 ! UM DISK DEPOSIT R1 3 ! UBA TR=3-DEPOSIT R2 3FDC0 ! CSR ADDRESS OFFSET = 3FDC0#DEPOSIT R3 0 ! CONTROLLER UNIT = 0'DEPOSIT R4 0 ! BOOT BLOCK LBN (UNUSED)9DEPOSIT R5 1 ! SOFTWARE BOOT FLAGS (CONVERSATIONAL BOOT)-DEPOSIT FP 0 ! SET NO MACHINE CHECK EXPECTED#START 20003000 ! START ROM PROGRAM WAIT DONE ! WAIT FOR COMPLETION ! 2EXAMINE SP ! SHOW ADDRESS OF WORKING MEMORY+^X200-LOAD VMB.EXE/START:@ ! LOAD PRIMARY BOOTSTRAPSTART @ ! AND START IT 2EXAMINE SP ! SHOW ADDRESS OF WO!6! UM0 CONVERSATIONAL/DEBUG BOOT COMMAND FILE - UM0XDT.=! BOOT FROM UM0 AND STOP IN SYSBOOT TO ALTER PARAMETER VALUES*! THEN STOP AT INITIAL BREAKPOINT IN EXEC.!HALT ! HALT PROCESSORUNJAM ! UNJAM SBIINIT ! INIT PROCESSOR#DEPOSIT/I 11 20003800 ! SET UP SCBBDEPOSIT R0 AC0002 ! UM DISK DEPOSIT R1 3 ! UBA TR=3-DEPOSIT R2 3FDC0 ! CSR ADDRESS OFFSET = 3FDC0#DEPOSIT R3 0 ! CONTROLLER UNIT = 0'DEPOSIT R4 0 ! BOOT BLOCK LBN (UNUSED)9DEPOSIT R5 7 ! SOFTWARE BOOT FLAGS (CONVERSATIONAL BOOT)-DEPOSIT FP 0 ! SET NO MACHINE CHECK EXPECTED#START 20003000 ! START ROM PROGRAM WAIT DONE ! WAIT FOR COMPLETION ! 2EXAMINE SP ! SHOW ADDRESS OF WORKING MEMORY+^X200-LOAD VMB.EXE/START:@ ! LOAD PRIMARY BOOTSTRAPSTART @ ! AND START IT 2EXAMINE SP ! SHOW ADDRESS OF WORKING MEMORY+^X200-LOAD VMB.EXE/START:@ ! LOAD PRIMARY BOOTSTRAPSTART @ &A&2z 780UM1BOO.CMD;1 @iFw@h$&A'> 780UM1GEN.;1 ޳@ ó@j?&A(2z 780UM2BOO.CMD;1 @k@l!&A)> 780UM2GEN.;1 /8 >8@nѴ&A*2z 780UM3BOO.CMD;1  780UM3GEN.;1 垮`@rt&A,>` 780UMAXDT.;1 `F@t&A-IR DBPATCH.COM;1 4Ƌ@P_Ƌ@B&A.L DBPATCH.V30;1 @rMЋ ڂЋ@y&A/L DBPATCH.V32;1 `:еЋPЋ@p&A0Ib DRPATCH.COM;1  zQ/P>@i&A1E DRPATCH.V30;1 @P@|cP>@V-&A2E DRPATCH.V32;1 4P P>@f&A3E DRPATCH.V35;1 QLP>@Z&A4IF DRZAPVMB.COM;1 III@h&A5IH DRZAPVMB.V30;1 ̓Ax Ax@D&A6I DRZAPVMB.V32;1 Eded@=&A7QP EMULEX.COM;1  ܋9܋@&A8]| EMULEXDR.COM;1 *c ܋ d ܋@H&A9W EMULEXUH.COM;1  ܋R ܋@F&A:Y"" EMULEXUM.COM;1 BP4Q>!@I!$! UM1 BOOT COMMAND FILE - UM1BOO.CMD!HALT ! HALT PROCESSORUNJAM ! UNJAM SBIINIT ! INIT PROCESSOR#DEPOSIT/I 11 20003800 ! SET UP SCBBDEPOSIT R0 AC0002 ! UM DISK DEPOSIT R1 3 ! UBA TR=3-DEPOSIT R2 3FDC0 ! CSR ADDRESS OFFSET = 3FDC0#DEPOSIT R3 1 ! CONTROLLER UNIT = 1'DEPOSIT R4 0 ! BOOT BLOCK LBN (UNUSED)#DEPOSIT R5 0 ! SOFTWARE BOOT FLAGS-DEPOSIT FP 0 ! SET NO MACHINE CHECK EXPECTED#START 20003000 ! START ROM PROGRAM WAIT DONE ! WAIT FOR COMPLETION ! 2EXAMINE SP ! SHOW ADDRESS OF WORKING MEMORY+^X200-LOAD VMB.EXE/START:@ ! LOAD PRIMARY BOOTSTRAPSTART @ ! AND START IT 2EX!0! UM1 CONVERSATIONAL BOOT COMMAND FILE - UM1GEN.>! BOOT FROM UM1 AND STOP IN SYSBOOT TO ALTER PARAMETER VALUES.!HALT ! HALT PROCESSORUNJAM ! UNJAM SBIINIT ! INIT PROCESSOR#DEPOSIT/I 11 20003800 ! SET UP SCBBDEPOSIT R0 AC0002 ! UM DISK DEPOSIT R1 3 ! UBA TR=3-DEPOSIT R2 3FDC0 ! CSR ADDRESS OFFSET = 3FDC0#DEPOSIT R3 1 ! CONTROLLER UNIT = 1'DEPOSIT R4 0 ! BOOT BLOCK LBN (UNUSED)9DEPOSIT R5 1 ! SOFTWARE BOOT FLAGS (CONVERSATIONAL BOOT)-DEPOSIT FP 0 ! SET NO MACHINE CHECK EXPECTED#START 20003000 ! START ROM PROGRAM WAIT DONE ! WAIT FOR COMPLETION ! 2EXAMINE SP ! SHOW ADDRESS OF WORKING MEMORY+^X200-LOAD VMB.EXE/START:@ ! LOAD PRIMARY BOOTSTRAPSTART @ ! AND START IT 2EXAMINE SP ! SHOW ADDRESS OF WO!$! UM2 BOOT COMMAND FILE - UM2BOO.CMD!HALT ! HALT PROCESSORUNJAM ! UNJAM SBIINIT ! INIT PROCESSOR#DEPOSIT/I 11 20003800 ! SET UP SCBBDEPOSIT R0 AC0002 ! UM DISK DEPOSIT R1 3 ! UBA TR=3-DEPOSIT R2 3FDC0 ! CSR ADDRESS OFFSET = 3FDC0#DEPOSIT R3 2 ! CONTROLLER UNIT = 2'DEPOSIT R4 0 ! BOOT BLOCK LBN (UNUSED)#DEPOSIT R5 0 ! SOFTWARE BOOT FLAGS-DEPOSIT FP 0 ! SET NO MACHINE CHECK EXPECTED#START 20003000 ! START ROM PROGRAM WAIT DONE ! WAIT FOR COMPLETION ! 2EXAMINE SP ! SHOW ADDRESS OF WORKING MEMORY+^X200-LOAD VMB.EXE/START:@ ! LOAD PRIMARY BOOTSTRAPSTART @ ! AND START IT 2EX!0! UM2 CONVERSATIONAL BOOT COMMAND FILE - UM2GEN.>! BOOT FROM UM2 AND STOP IN SYSBOOT TO ALTER PARAMETER VALUES.!HALT ! HALT PROCESSORUNJAM ! UNJAM SBIINIT ! INIT PROCESSOR#DEPOSIT/I 11 20003800 ! SET UP SCBBDEPOSIT R0 AC0002 ! UM DISK DEPOSIT R1 3 ! UBA TR=3-DEPOSIT R2 3FDC0 ! CSR ADDRESS OFFSET = 3FDC0#DEPOSIT R3 2 ! CONTROLLER UNIT = 2'DEPOSIT R4 0 ! BOOT BLOCK LBN (UNUSED)9DEPOSIT R5 1 ! SOFTWARE BOOT FLAGS (CONVERSATIONAL BOOT)-DEPOSIT FP 0 ! SET NO MACHINE CHECK EXPECTED#START 20003000 ! START ROM PROGRAM WAIT DONE ! WAIT FOR COMPLETION ! 2EXAMINE SP ! SHOW ADDRESS OF WORKING MEMORY+^X200-LOAD VMB.EXE/START:@ ! LOAD PRIMARY BOOTSTRAPSTART @ ! AND START IT 2EXAMINE SP ! SHOW ADDRESS OF WO!$! UM3 BOOT COMMAND FILE - UM3BOO.CMD!HALT ! HALT PROCESSORUNJAM ! UNJAM SBIINIT ! INIT PROCESSOR#DEPOSIT/I 11 20003800 ! SET UP SCBBDEPOSIT R0 AC0002 ! UM DISK DEPOSIT R1 3 ! UBA TR=3-DEPOSIT R2 3FDC0 ! CSR ADDRESS OFFSET = 3FDC0#DEPOSIT R3 3 ! CONTROLLER UNIT = 3'DEPOSIT R4 0 ! BOOT BLOCK LBN (UNUSED)#DEPOSIT R5 0 ! SOFTWARE BOOT FLAGS-DEPOSIT FP 0 ! SET NO MACHINE CHECK EXPECTED#START 20003000 ! START ROM PROGRAM WAIT DONE ! WAIT FOR COMPLETION ! 2EXAMINE SP ! SHOW ADDRESS OF WORKING MEMORY+^X200-LOAD VMB.EXE/START:@ ! LOAD PRIMARY BOOTSTRAPSTART @ ! AND START IT 2EX!0! UM3 CONVERSATIONAL BOOT COMMAND FILE - UM3GEN.>! BOOT FROM UM3 AND STOP IN SYSBOOT TO ALTER PARAMETER VALUES.!HALT ! HALT PROCESSORUNJAM ! UNJAM SBIINIT ! INIT PROCESSOR#DEPOSIT/I 11 20003800 ! SET UP SCBBDEPOSIT R0 AC0002 ! UM DISK DEPOSIT R1 3 ! UBA TR=3-DEPOSIT R2 3FDC0 ! CSR ADDRESS OFFSET = 3FDC0#DEPOSIT R3 3 ! CONTROLLER UNIT = 3'DEPOSIT R4 0 ! BOOT BLOCK LBN (UNUSED)9DEPOSIT R5 1 ! SOFTWARE BOOT FLAGS (CONVERSATIONAL BOOT)-DEPOSIT FP 0 ! SET NO MACHINE CHECK EXPECTED#START 20003000 ! START ROM PROGRAM WAIT DONE ! WAIT FOR COMPLETION ! 2EXAMINE SP ! SHOW ADDRESS OF WORKING MEMORY+^X200-LOAD VMB.EXE/START:@ ! LOAD PRIMARY BOOTSTRAPSTART @ ! AND START IT 2EXAMINE SP ! SHOW ADDRESS OF WO!6! UMx CONVERSATIONAL/DEBUG BOOT COMMAND FILE - UMAXDT.=! BOOT FROM UMx AND STOP IN SYSBOOT TO ALTER PARAMETER VALUES1! AND THEN STOP AT THE INITIAL SYSTEM BREAKPOINT.!>! THE UNIT NUMBER IS SPECIFIED BY DEPOSITING THE DESIRED VALUE*! IN R3 BEFORE INVOKING THIS COMMAND FILE.!HALT ! HALT PROCESSORUNJAM ! UNJAM SBIINIT ! INIT PROCESSOR#DEPOSIT/I 11 20003800 ! SET UP SCBBDEPOSIT R0 AC0002 ! UM DISK DEPOSIT R1 3 ! UBA TR=3-DEPOSIT R2 3FDC0 ! CSR ADDRESS OFFSET = 3FDC0'DEPOSIT R4 0 ! BOOT BLOCK LBN (UNUSED):DEPOSIT R5 7 ! SOFTWARE BOOT FLAGS (CONVERSATIONAL/DEBUG)-DEPOSIT FP 0 ! SET NO MACHINE CHECK EXPECTED#START 20003000 ! START ROM PROGRAM WAIT DONE ! WAIT FOR COMPLETION ! 2EXAMINE SP ! SHOW ADDRESS OF WORKING MEMORY+^X200-LOAD VMB.EXE/START:@ ! LOAD PRIMARY BOOTSTRAPSTART @ ! AND START IT 2EXAMINE SP ! SHOW ADDRESS O$ SET NOVERIFYO$ !---------------------------------------------------------------------------!O$ ! This command file will Link the Emulex provided CS11/CS21 UHDRIVER. The !O$ ! user may modify the value of the symbol 'UNIT_DMA_SIZE' to vary the size !B$ ! of the DMA buffer permenently allocated to each line. !O$ !---------------------------------------------------------------------------!L$LINK/USERLIB=PROC/NOSYSSHR/NOTRACE/NODEBUG/SHARE=UHDRIVER/CONTIGUOUS/NOMAP-7 UHDRIVER,'LIB_TYPE':SYS.STB/SELECTIVE,SYS$INPUT/OPTIONBASE=0SYMBOL=UNIT_DMA_SIZE,64BUG/SHARE=UHDRIVER/CONTIGUOUS/NOMAP-7 UHDRIVER,'LIB_TYPE' 750UMBBOO.CMD 750UMBGEN.  750UMBXDT.! 780UM0BOO.CMD" 780UM0BOO.ILV# 780UM0GEN.$ 780UM0XDT.% 780UM1BOO.CMD& 780UM1GEN.' 780UM2BOO.CMD($ SET NOVERIFYI$ !---------------------------------------------------------------------!I$ ! This command file will Link the Emulex provided SC21/SC31 UMDRIVER. !I$ !---------------------------------------------------------------------!L$LINK/USERLIB=PROC/NOSYSSHR/NOTRACE/NODEBUG/SHARE=UMDRIVER/CONTIGUOUS/NOMAP-7 UMDRIVER,'LIB_TYPE':SYS.STB/SELECTIVE,SYS$INPUT/OPTIONBASE=0PROC/NOSYSSHR/NOTRACE/NODEBUG/SHARE=UMDRIVER/CONTIGUOUS/NOMAP-7 UMDRIVER,'LIB_TYPE':SYS.STB/SELECTIVE,SYS$INPUT/OPTIONBAL$ !------------------------------------------------------------------------!F$ ! DBPATCH.V30 - command file to patch the DBDRIVER to auto-size !3$ ! Emulex SC750 and SC780 controllers !$ ! !9$ ! for VMS version V3.0 & V3.1 patch version V2.2 !L$ !------------------------------------------------------------------------!$ ASSIGN/USER NL: SYS$OUTPUT:$ PATCH DBDRIVER.EXECHECK NOT ECO 1 ! 6REPLACE/WORD ^X8 = ^X828 ! INCREASE DRIVER END IN DPT ^X8A4 ! NEW DRIVER END EXIT3DEFINE DR$DDT = ^X6C ! SET BASE ADDRESS OF DRIVEREREPLACE/INSTRUCTION DR$DDT+^X698 ! LINK TO EXTENDED "DR_TYPE" ROUTINE' 'TSTL (SP)+' ! (DELETED INSTRUCTION)! 'RSB' ! (DELETED INSTRUCTION) EXIT* 'BRW ^X82C' ! INSERT JUMP TO PATCH AREA EXITBDEPOSIT/INSTRUCTION ^X82C ! ADD "DR_TYPE" EXTENSION TO PATCH AREA 'PUSHR #3' ! SAVE R0,R15 'MOVZWL #^X9,(R3)' ! inhibit unsolicited interrupts7 'MOVZWL #^X1000,B^24(R3)' ! insure only FORMAT bit set( 'CLRL B^2C(R3)' ! execute NOP function. 'MOVZWL #^X8000,B^2C(R3)' ! request CS1 value' 'MOVL B^2C(R3),R0' ! obtain CS1 value/ 'CMPW #^X800,R0' ! match if Emulex controller0 'BNEQ LBL3' ! branch if not Emulex controller= 'MOVZWL #^X8017,B^2C(R3)' ! REQUEST MAXIMUM CYLINDER ADDRESS4 'MOVL B^2C(R3),R0' ! READ MAXIMUM CYLINDER ADDRESS4 'MOVZWL R0,R0' ! ISOLATE MAXIMUM CYLINDER ADDRESS. 'BBSS #4,B^58(R5),LBL1' ! IF KNOWN DRIVE TYPE? 'MOVB #^X06,B^39(R5)' ! SET UNKNOWN TYPES TO RM03 DEVICE TYPE) 'LBL1: INCL R0' ! NUMBER OF CYLINDERS. 'CMPW B^8(SP),#^X16' ! CHECK FOR RM80 DEVICE 'BNEQ LBL2' ! IF NOT RM800 'SUBW2 #2,R0' ! DECREMENT CYLINDER COUNT BY 2; 'LBL2: MOVW R0,B^3E(R5)' ! STORE CYLINDER COUNT INTO UCB: 'MOVZWL #^X8018,B^2C(R3)' ! REQUEST MAXIMUM TRACK ADDRESS1 'MOVL B^2C(R3),R1' ! READ MAXIMUM TRACK ADDRESS1 'MOVZWL R1,R1' ! ISOLATE MAXIMUM TRACK ADDRESS 'INCL R1' ! NUMBER OF TRACKS1 'MOVB R1,B^3D(R5)' ! STORE TRACK COUNT INTO UCB$ 'MULL2 R0,R1' ! CYLINDERS * HEADS; 'MOVZWL #^X8019,B^2C(R3)' ! REQUEST MAXIMUM SECTOR ADDRESS2 'MOVL B^2C(R3),R0' ! READ MAXIMUM SECTOR ADDRESS2 'MOVZWL R0,R0' ! ISOLATE MAXIMUM SECTOR ADDRESS 'INCL R0' ! NUMBER OF SECTORS2 'MOVB R0,B^3C(R5)' ! STORE SECTOR COUNT INTO UCB9 'MULL3 R0,R1,W^0094(R5)' ! STORE MAXIMUM BLOCKS INTO UCB# 'LBL3: POPR #3' ! RESTORE R0,R1 'TSTL (SP)+' ! CLEAN UP STACK 'RSB' ! RETURN EXIT!+B! Change from a 4-sector to a 8-sector look ahead for the DBdriver! /REPLACE/INST 531 ! Make sure it's the correct 'SUBB2 #4,R1' ! patch loc EXIT7 'SUBB2 #8,R1' ! Change from 4 to 8-sector look ahead EXIT!-UPDATEEXITect 'SUBB2 #4,R1' ! patch loc EXIT7 'SUBB2 #8,R1' ! Change from 4 to 8-sector look ahead EXITL$ !------------------------------------------------------------------------!F$ ! DBPATCH.V32 - command file to patch the DBDRIVER to auto-size !3$ ! Emulex SC750 and SC780 controllers !$ ! !9$ ! for VMS version V3.2 & V3.3 patch version V2.2 !L$ !------------------------------------------------------------------------!$ ASSIGN/USER NL: SYS$OUTPUT:$ PATCH DBDRIVER.EXE2CHECK ECO 1 ! CHECK IF CORRECT ECO LEV TO PATCH6REPLACE/WORD ^X8 = ^X844 ! INCREASE DRIVER END IN DPT ^X8C0 ! NEW DRIVER END EXIT3DEFINE DR$DDT = ^X6C ! SET BASE ADDRESS OF DRIVEREREPLACE/INSTRUCTION DR$DDT+^X698 ! LINK TO EXTENDED "DR_TYPE" ROUTINE' 'TSTL (SP)+' ! (DELETED INSTRUCTION)! 'RSB' ! (DELETED INSTRUCTION) EXIT* 'BRW ^X848' ! INSERT JUMP TO PATCH AREA EXITBDEPOSIT/INSTRUCTION ^X848 ! ADD "DR_TYPE" EXTENSION TO PATCH AREA 'PUSHR #3' ! SAVE R0,R15 'MOVZWL #^X9,(R3)' ! inhibit unsolicited interrupts7 'MOVZWL #^X1000,B^24(R3)' ! insure only FORMAT bit set( 'CLRL B^2C(R3)' ! execute NOP function. 'MOVZWL #^X8000,B^2C(R3)' ! request CS1 value' 'MOVL B^2C(R3),R0' ! obtain CS1 value/ 'CMPW #^X800,R0' ! match if Emulex controller0 'BNEQ LBL3' ! branch if not Emulex controller= 'MOVZWL #^X8017,B^2C(R3)' ! REQUEST MAXIMUM CYLINDER ADDRESS4 'MOVL B^2C(R3),R0' ! READ MAXIMUM CYLINDER ADDRESS4 'MOVZWL R0,R0' ! ISOLATE MAXIMUM CYLINDER ADDRESS. 'BBSS #4,B^58(R5),LBL1' ! IF KNOWN DRIVE TYPE? 'MOVB #^X06,B^39(R5)' ! SET UNKNOWN TYPES TO RM03 DEVICE TYPE) 'LBL1: INCL R0' ! NUMBER OF CYLINDERS. 'CMPW B^8(SP),#^X16' ! CHECK FOR RM80 DEVICE 'BNEQ LBL2' ! IF NOT RM800 'SUBW2 #2,R0' ! DECREMENT CYLINDER COUNT BY 2; 'LBL2: MOVW R0,B^3E(R5)' ! STORE CYLINDER COUNT INTO UCB: 'MOVZWL #^X8018,B^2C(R3)' ! REQUEST MAXIMUM TRACK ADDRESS1 'MOVL B^2C(R3),R1' ! READ MAXIMUM TRACK ADDRESS1 'MOVZWL R1,R1' ! ISOLATE MAXIMUM TRACK ADDRESS 'INCL R1' ! NUMBER OF TRACKS1 'MOVB R1,B^3D(R5)' ! STORE TRACK COUNT INTO UCB$ 'MULL2 R0,R1' ! CYLINDERS * HEADS; 'MOVZWL #^X8019,B^2C(R3)' ! REQUEST MAXIMUM SECTOR ADDRESS2 'MOVL B^2C(R3),R0' ! READ MAXIMUM SECTOR ADDRESS2 'MOVZWL R0,R0' ! ISOLATE MAXIMUM SECTOR ADDRESS 'INCL R0' ! NUMBER OF SECTORS2 'MOVB R0,B^3C(R5)' ! STORE SECTOR COUNT INTO UCB9 'MULL3 R0,R1,W^0094(R5)' ! STORE MAXIMUM BLOCKS INTO UCB# 'LBL3: POPR #3' ! RESTORE R0,R1 'TSTL (SP)+' ! CLEAN UP STACK 'RSB' ! RETURN EXIT!+B! Change from a 4-sector to a 8-sector look ahead for the DBdriver! /REPLACE/INST 531 ! Make sure it's the correct 'SUBB2 #4,R1' ! patch loc EXIT7 'SUBB2 #8,R1' ! Change from 4 to 8-sector look ahead EXIT!-UPDATEEXITect 'SUBB2 #4,R1' ! patch loc EXIT7 'SUBB2 #8,R1' ! Change from 4 to I$ !---------------------------------------------------------------------!A$ ! Patch the DEC RM03/05/80 disk driver (DRDRIVER) to autosize !A$ ! the massbus controller to determine the configuration. This !B$ ! command file will call multiple PATCH command files, one for !B$ ! each unique version of the driver. Each of the individual !B$ ! command files checks the driver ECO patch level to insure !<$ ! only the appropriate version of the patch is applied. !I$ !---------------------------------------------------------------------!$ @DRPATCH.V30$ @DRPATCH.V32$ @DRPATCH.V35$ EXIT!-----------------------------A$ !-------------------------------------------------------------!0$ ! for VMS V3.0 & V3.1 execute the following !A$ !-------------------------------------------------------------!$ ASSIGN/USER NL: SYS$OUTPUT:$ PATCH DRDRIVER.EXECHECK NOT ECO 1,36REPLACE/WORD ^X8 = ^X971 ! increase driver end in DPT ^X9E9 ! new driver end EXIT3DEFINE DR$DDT = ^X6C ! set base address of driverEREPLACE/INSTRUCTION DR$DDT+^X902 ! link to extended "DR_TYPE" routine' 'TSTL (SP)+' ! (deleted instruction)! 'RSB' ! (deleted instruction) EXIT* 'BRW ^X974' ! insert jump to patch area EXITBDEPOSIT/INSTRUCTION ^X974 ! add "DR_TYPE" extension to patch area 'PUSHR #^X3' ! save R0 and R15 'MOVZBL #^X9,(R3)' ! inhibit unsolicited interrupts7 'MOVZWL #^X1000,B^24(R3)' ! insure only FORMAT bit set. 'MOVZWL #^X8000,B^2C(R3)' ! request CS1 value. 'MOVL B^2C(R3),R0' ! read CS1 register value/ 'CMPW #^X808,R0' ! match if Emulex controller) 'BNEQ LBL3' ! branch if DEC controller= 'MOVZWL #^X8017,B^2C(R3)' ! request maximum cylinder address4 'MOVL B^2C(R3),R0' ! read maximum cylinder address4 'MOVZWL R0,R0' ! isolate maximum cylinder address. 'BBSS #4,B^58(R5),LBL1' ! if known drive type? 'MOVB #^X06,B^39(R5)' ! set unknown types to RM03 device type) 'LBL1: INCL R0' ! number of cylinders. 'CMPW B^8(SP),#^X16' ! check for RM80 device 'BNEQ LBL2' ! if not RM800 'SUBW2 #2,R0' ! decrement cylinder count by 2; 'LBL2: MOVW R0,B^3E(R5)' ! store cylinder count into UCB: 'MOVZWL #^X8018,B^2C(R3)' ! request maximum track address1 'MOVL B^2C(R3),R1' ! read maximum track address1 'MOVZWL R1,R1' ! isolate maximum track address 'INCL R1' ! number of tracks1 'MOVB R1,B^3D(R5)' ! store track count into UCB$ 'MULL2 R0,R1' ! cylinders * heads; 'MOVZWL #^X8019,B^2C(R3)' ! request maximum sector address2 'MOVL B^2C(R3),R0' ! read maximum sector address2 'MOVZWL R0,R0' ! isolate maximum sector address 'INCL R0' ! number of sectors2 'MOVB R0,B^3C(R5)' ! store sector count into UCB9 'MULL3 R0,R1,W^0094(R5)' ! store maximum blocks into UCB) 'LBL3: POPR #^X3' ! restore R0 and R1 'TSTL (SP)+' ! clean up stack 'RSB' ! return EXIT!+B! Change from a 4-sector to a 8-sector look ahead for the DRdriver! /REPLACE/INST 5B5 ! Make sure it's the correct 'SUBB2 #4,R1' ! patch loc EXIT7 'SUBB2 #8,R1' ! Change from 4 to 8-sector look ahead EXIT!-UPDATEEXITect 'SUBB2 #4,R1' ! patch loc EXIT7 'SUBB2 #8,R1' A$ !-------------------------------------------------------------!*$ ! for VMS V3.2 execute the following !A$ !-------------------------------------------------------------!$ ASSIGN/USER NL: SYS$OUTPUT:$ PATCH DRDRIVER.EXE CHECK ECO 1CHECK NOT ECO 36REPLACE/WORD ^X8 = ^X98F ! increase driver end in DPT ^X9FC ! new driver end EXIT3DEFINE DR$DDT = ^X6C ! set base address of driverEREPLACE/INSTRUCTION DR$DDT+^X902 ! link to extended "DR_TYPE" routine' 'TSTL (SP)+' ! (deleted instruction)! 'RSB' ! (deleted instruction) EXIT* 'BRW ^X98F' ! insert jump to patch area EXITBDEPOSIT/INSTRUCTION ^X98F ! add "DR_TYPE" extension to patch area( 'PUSHR #^XF' ! save R0, R1, R2 and R35 'MOVZBL #^X9,(R3)' ! inhibit unsolicited interrupts7 'MOVZWL #^X1000,B^24(R3)' ! insure only FORMAT bit set3 'ADDL2 #^X2C,R3' ! point to holding register RMHR+ 'MOVZWL #^X8000,(R3)' ! request CS1 value* 'MOVL (R3),R0' ! read CS1 register value/ 'CMPW #^X808,R0' ! match if Emulex controller0 'BNEQ LBL3' ! branch if NOT Emulex controller: 'MOVZWL #^X8017,(R3)' ! request maximum cylinder address3 'ADDL3 #1,(R3),R0' ! get maximum cylinder address4 'MOVZWL R0,R0' ! isolate maximum cylinder address. 'BBSS #4,B^58(R5),LBL1' ! if known drive type? 'MOVB #^X06,B^39(R5)' ! set unknown types to RM03 device type6 'LBL1: CMPW B^10(SP),#^X16' ! check for RM80 device 'BNEQ LBL2' ! if not RM800 'SUBW2 #2,R0' ! decrement cylinder count by 2; 'LBL2: MOVW R0,B^3E(R5)' ! store cylinder count into UCB7 'MOVZWL #^X8018,(R3)' ! request maximum track address0 'ADDL3 #1,(R3),R1' ! get maximum track address1 'MOVZWL R1,R1' ! isolate maximum track address1 'MOVB R1,B^3D(R5)' ! store track count into UCB$ 'MULL2 R0,R1' ! cylinders * heads8 'MOVZWL #^X8019,(R3)' ! request maximum sector address1 'ADDL3 #1,(R3),R0' ! get maximum sector address2 'MOVZWL R0,R0' ! isolate maximum sector address2 'MOVB R0,B^3C(R5)' ! store sector count into UCB9 'MULL3 R0,R1,W^0094(R5)' ! store maximum blocks into UCB1 'LBL3: POPR #^XF' ! restore R0, R1, R2 and R3 'TSTL (SP)+' ! clean up stack 'RSB' ! return EXIT!+C! Change from a 4-sector to a 8-sector look ahead for the DRdriver !/REPLACE/INST 5B5 ! Check if it's the correct 'SUBB2 #4,R1' ! patch locEXIT8'SUBB2 #8,R1' ! change from 4 to 8-sector look aheadEXIT!-UPDATEEXITorrect 'SUBB2 #4,R1' ! patch locEXIT8'SUBB2 #8,R1' ! change from 4 to 8-sector look aheadA$ !-------------------------------------------------------------!*$ ! for VMS V3.5 execute the following !A$ !-------------------------------------------------------------!$ ASSIGN/USER NL: SYS$OUTPUT:$ RUN SYS$SYSTEM:ZAPDRDRIVER.EXE/AB262/6X$ ASSIGN/USER NL: SYS$OUTPUT:$ PATCH DRDRIVER.EXE CHECK ECO 1,36REPLACE/WORD ^X8 = ^X9BD ! increase driver end in DPT ^XA2D ! new driver end EXIT3DEFINE DR$DDT = ^X6C ! set base address of driverEREPLACE/INSTRUCTION DR$DDT+^X902 ! link to extended "DR_TYPE" routine' 'TSTL (SP)+' ! (deleted instruction)! 'RSB' ! (deleted instruction) EXIT* 'BRW ^X9C0' ! insert jump to patch area EXITBDEPOSIT/INSTRUCTION ^X9C0 ! add "DR_TYPE" extension to patch area( 'PUSHR #^XF' ! save R0, R1, R2 and R35 'MOVZBL #^X9,(R3)' ! inhibit unsolicited interrupts7 'MOVZWL #^X1000,B^24(R3)' ! insure only FORMAT bit set3 'ADDL2 #^X2C,R3' ! point to holding register RMHR+ 'MOVZWL #^X8000,(R3)' ! request CS1 value* 'MOVL (R3),R0' ! read CS1 register value/ 'CMPW #^X808,R0' ! match if Emulex controller0 'BNEQ LBL3' ! branch if NOT Emulex controller: 'MOVZWL #^X8017,(R3)' ! request maximum cylinder address3 'ADDL3 #1,(R3),R0' ! get maximum cylinder address4 'MOVZWL R0,R0' ! isolate maximum cylinder address. 'BBSS #4,B^58(R5),LBL1' ! if known drive type? 'MOVB #^X06,B^39(R5)' ! set unknown types to RM03 device type6 'LBL1: CMPW B^10(SP),#^X16' ! check for RM80 device 'BNEQ LBL2' ! if not RM800 'SUBW2 #2,R0' ! decrement cylinder count by 2; 'LBL2: MOVW R0,B^3E(R5)' ! store cylinder count into UCB7 'MOVZWL #^X8018,(R3)' ! request maximum track address0 'ADDL3 #1,(R3),R1' ! get maximum track address1 'MOVZWL R1,R1' ! isolate maximum track address1 'MOVB R1,B^3D(R5)' ! store track count into UCB$ 'MULL2 R0,R1' ! cylinders * heads8 'MOVZWL #^X8019,(R3)' ! request maximum sector address1 'ADDL3 #1,(R3),R0' ! get maximum sector address2 'MOVZWL R0,R0' ! isolate maximum sector address2 'MOVB R0,B^3C(R5)' ! store sector count into UCB9 'MULL3 R0,R1,W^0094(R5)' ! store maximum blocks into UCB1 'LBL3: POPR #^XF' ! restore R0, R1, R2 and R3 'TSTL (SP)+' ! clean up stack 'RSB' ! returnEXITDEPOSIT/BYTE ^XA2D0EXIT!+C! Change from a 4-sector to a 8-sector look ahead for the DRdriver !/REPLACE/INST 5B5 ! Check if it's the correct 'SUBB2 #4,R1' ! patch locEXIT8'SUBB2 #8,R1' ! change from 4 to 8-sector look aheadEXIT!-UPDATEEXITorrectI$ !---------------------------------------------------------------------!:$ ! Patch VMB.EXE for using Emulex DR expanded devices. !B$ ! This command file calls multiple ZAP command files, one for !A$ ! each version of VMS that has a unique VMB. Each individual !A$ ! ZAP command file will do an open with verify to insure only !7$ ! the appropriate version of the patch is applied. !I$ !---------------------------------------------------------------------!$ ASSIGN/USER NL: SYS$OUTPUT:$ @DRZAPVMB.V30$ ASSIGN/USER NL: SYS$OUTPUT:$ @DRZAPVMB.V32$ EXIT------------------!$ ASSIGN/USER NL: SYS$OUTPUT:$ @DI$ !---------------------------------------------------------------------!=$ ! Patch VMB.EXE for using DR devices with extended sizes ! $ ! !/$ ! for version 3.0 and 3.1 release of VMB !I$ !---------------------------------------------------------------------!$ RUN SYS$SYSTEM:ZAP VMB.EXE/AB770/1624V16242331\61374452355\7420112074217000202474432412625330\2737750325730317370331506625724317613333002177000031127412727761343331617513242475032024750120742173020024754320247541202333266120742173120024754301124754126304126120220126257172362571412161251376236317633761216121637615551/363X236257141216125137623I$ !---------------------------------------------------------------------!@$ ! patch VMB.EXE to handle DR devices with non-standard sizes !$ ! version V3.2 of VMS !I$ !---------------------------------------------------------------------!$ RUN SYS$SYSTEM:ZAP VMB.EXE/AB1000/1624V16242341\0611040462365\07420112007421700002024704432412625450\27307705000325703031726033105006625702431735133230021707000000000031127400127207706123333106107500132424705032024705012007421703020024705432024705412002303326612007421703120024705430100124705412630412612022012625701723625701412106125137623631706337612106121637615611/363XO$ !---------------------------------------------------------------------------!K$ ! EMULEX.COM - Command file to initiate the installation of Emulex !6$ ! support software on VAX/VMS systems !O$ !---------------------------------------------------------------------------!$ TYPE SYS$INPUT, Emulex Software for VAX/VMS V3.0 and aboveGThis volume contains Emulex software and installation procedures forGsupporting Emulex controllers and multiplexers on the VAX/VMS operatingGsystem. The following software products can be installed from thisvolume:$10:$ TYPE SYS$INPUT/ UM - VAX/VMS support software for the Emulex# SC21 or SC31 Disk Controller./ UT - VAX/VMS support software for the Emulex TC11 Tape Controller./ UH - VAX/VMS support software for the Emulex/ CS11 or CS21 Communications Multiplexer./ DR - VAX/VMS support software for expanded DR/ or DB disk devices on the Emulex SC750 or SC780.$ LIB_TYPE = "SYS$SYSTEM"9$ IF F$GETDVI(SYSDISK,"MAXBLOCK") .GE. 25000 THEN GOTO 20$ LIB_TYPE = "LIB$SYSTEM"$20:E$ INQUIRE R "Enter name of the product to be installed (UM/UT/UH/DR)"Q$ IF (R.NES."UM").AND.(R.NES."UT").AND.(R.NES."UH").AND.(R.NES."DR") THEN GOTO 20$ TYPE SYS$INPUT%$ COPY CSA1:[SYSUPD]EMULEX'R'.COM *.* $ @EMULEX'R'$ DELETE EMULEX'R'.COM;*$ TYPE SYS$INPUT$30:K$ INQUIRE R "Do you want to install another Emulex software product? (Y/N)"1$ IF "''F$EXTRACT(0,1,R)'" .EQS. "Y" THEN GOTO 10A$ IF ("''F$EXTRACT(0,1,R)'".NES."N") .AND (R.NES."") THEN GOTO 30 (Y/N)"1$ IF "''F$EXTRACT(0,1,R)'" .EQS. "Y" TO$ !---------------------------------------------------------------------------!K$ ! EMULEXDR.COM - Command file to install software on VMS to support !C$ ! DR/DB devices with expanded sizes on the Emulex !6$ ! SC750 and SC780 Disk Controllers. !O$ !---------------------------------------------------------------------------!$ ON ERROR THEN GOTO EXIT_ERR!$ ON CONTROL_Y THEN GOTO EXIT_ERR$ TYPE SYS$INPUT Emulex Expanded DR/DB Support$ Version 2.7 (for VMS 3.0 and above)FThis procedure installs the required software patches to VAX/VMS forFsupporting expanded DR devices (RM03/RM05/RM80) or expanded DB devicesF(RP05/RP06) on the Emulex SC750 and SC780 Disk Controllers. TheseFpatches are not required if you are using the DEC standard disk sizes.FThe expanded DR/DB device can be used as a data storage device and/orFas a system boot device on the VAX-11/780 or the VAX-11/750. On a 750Fsystem, you will also need to install the Emulex supplied boot ROM ifFusing the expanded device as a system boot device. This procedureFpatches DRDRIVER.EXE, DBDRIVER.EXE, and VMB.EXE. These patches andFthe Emulex supplied boot ROM will not affect the use of existing DEC3controllers in conjunction with Emulex controllers.3The following steps are included in this procedure:4 1. Patch DR/DB drivers on the current system device< 2. Build stand-alone BACKUP kit to support expanded devices8 3. Patch DR/DB drivers and VMB.EXE on new system device; 4. Update Local Console volume to support expanded devicesFExecute steps 1 and 2 to install the expanded DR/DB support for a dataFdevice. Include steps 3 and 4 to install the expanded DR/DB supporton a new system boot device.AAll questions will be repeated until a valid response is entered.FIf an expanded DR/DB device is being installed as a system boot deviceFyou will need a copy of the Local Console medium. This copy willFbe modified to support the expanded DR/DB system device. Use the DECFprovided procedure CONSCOPY.COM to generate this copy before procedingwith this installation.$100:.$ INQUIRE R "Are you ready to continue? (Y/N)"3$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO EXIT2$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 100O$ !---------------------------------------------------------------------------!A$ ! Step 1: Patch DR/DB drivers on current system device !O$ !---------------------------------------------------------------------------!$200:$ TYPE SYS$INPUT$210:W$ INQUIRE R "Step 1: Do you want to patch DRDRIVER.EXE on current system device? (Y/N)"2$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO 2502$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 210$ TYPE SYS$INPUT (Patching DRDRIVER.EXE))$ COPY CSA1:[SYSUPD]DRPATCH.* SYS$UPDATE:*$ COPY SYS$SYSTEM:DRDRIVER.EXE SYS$UPDATE: $ @DRPATCH5$ COPY SYS$UPDATE:DRDRIVER.EXE SYS$SYSTEM:/CONTIGUOUS$ DELETE SYS$UPDATE:DRPATCH.*;*"$ DELETE SYS$UPDATE:DRDRIVER.EXE;*"$ DELETE SYS$UPDATE:DRDRIVER.JNL;*$250:$ TYPE SYS$INPUT$260:O$ INQUIRE R "Do you want to patch DBDRIVER.EXE on current system device? (Y/N)"2$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO 3002$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 260$ TYPE SYS$INPUT (Patching DBDRIVER.EXE))$ COPY CSA1:[SYSUPD]DBPATCH.* SYS$UPDATE:*$ COPY SYS$SYSTEM:DBDRIVER.EXE SYS$UPDATE: $ @DBPATCH5$ COPY SYS$UPDATE:DBDRIVER.EXE SYS$SYSTEM:/CONTIGUOUS$ DELETE SYS$UPDATE:DBPATCH.*;*"$ DELETE SYS$UPDATE:DBDRIVER.EXE;*"$ DELETE SYS$UPDATE:DBDRIVER.JNL;*O$ !---------------------------------------------------------------------------!K$ ! Step 2: Build stand-alone BACKUP kit to support expanded devices !O$ !---------------------------------------------------------------------------!$300:$ TYPE SYS$INPUT$310:[$ INQUIRE R "Step 2: Do you want to build stand-alone BACKUP kit for expanded DR/DB? (Y/N)"2$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO 4002$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 310,$ COPY CSA1:[SYSUPD]XXSABKUP.COM SYS$UPDATE:$ @SYS$UPDATE:XXSABKUP"$ DELETE SYS$UPDATE:XXSABKUP.COM;*O$ !---------------------------------------------------------------------------!6$ ! Start of system boot device installation !O$ !---------------------------------------------------------------------------!$400:$ TYPE SYS$INPUT7This concludes the procedure for expanded DR/DB supportfor non-system devices.$410:Z$ INQUIRE R "Do you want to install expanded DR/DB support on a system boot device? (Y/N)"3$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO EXIT2$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 410$ TYPE SYS$INPUTFBefore starting this procedure, you must reboot the system, format theFnew disk, and copy VMS to the new system device. You can restart thisFsection of the installation procedure by answering N to the previoussteps of the procedure.$420:;$ INQUIRE R "Are you ready to continue at this time? (Y/N)"3$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO EXIT2$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 420$ TYPE SYS$INPUT$450:]$ INQUIRE DEVNAME "Enter device name of expanded DR/DB system device (ddcu, default is DRA0)"($ IF DEVNAME .EQS. "" THEN DEVNAME:=DRA0#$ DEVNAME:='F$EXTRACT(0,4,DEVNAME)'$ DC:='F$EXTRACT(0,2,DEVNAME)'2$ IF (DC.NES."DR").AND.(DC.NES."DB") THEN GOTO 450$ TYPE SYS$INPUT$460:Y$ INQUIRE ROOT "Enter name of root directory on expanded device (SYSn, default is SYS0)" "$ IF ROOT .EQS. "" THEN ROOT:=SYS07$ IF "''F$EXTRACT(0,3,ROOT)'" .NES. "SYS" THEN GOTO 460$ !J$ ! bypass the mount function if the destination device is already mounted$ !<$ IF "''F$GETDVI(DEVNAME,"MNT")'" .EQS. "TRUE" THEN GOTO 500$ MOUNT 'DEVNAME':/OV=IDO$ !---------------------------------------------------------------------------!K$ ! Step 3: Patch DR/DB drivers and VMB.EXE on the new system device !O$ !---------------------------------------------------------------------------!$500:$ TYPE SYS$INPUT$510:M$ INQUIRE R "Step 3: Do you want to patch "'DC'"DRIVER on "'DEVNAME'"? (Y/N)"2$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO 5502$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 510$ TYPE SYS$INPUT1$ WRITE SYS$OUTPUT " (Patching ",DC,"DRIVER.EXE)"$ TYPE SYS$INPUT+$ COPY CSA1:[SYSUPD]'DC'PATCH.* SYS$UPDATE::$ COPY 'DEVNAME':['ROOT'.SYSEXE]'DC'DRIVER.EXE SYS$UPDATE: $ @'DC'PATCHE$ COPY SYS$UPDATE:'DC'DRIVER.EXE 'DEVNAME':['ROOT'.SYSEXE]/CONTIGUOUS!$ DELETE SYS$UPDATE:'DC'PATCH.*;*$$ DELETE SYS$UPDATE:'DC'DRIVER.EXE;*$$ DELETE SYS$UPDATE:'DC'DRIVER.JNL;*$ TYPE SYS$INPUT$550:$ TYPE SYS$INPUT$560:@$ INQUIRE R "Do you want to patch VMB.EXE on "'DEVNAME'"? (Y/N)"2$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO 7002$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 560$ TYPE SYS$INPUT& (Patching VMB.EXE on new system disk)*$ COPY CSA1:[SYSUPD]DRZAPVMB.* SYS$UPDATE:3$ COPY 'DEVNAME':['ROOT'.SYSEXE]VMB.EXE SYS$UPDATE: $ @DRZAPVMB;$ COPY SYS$UPDATE:VMB.EXE 'DEVNAME':['ROOT'.SYSEXE]/OVERLAY $ DELETE SYS$UPDATE:DRZAPVMB.*;*$ DELETE SYS$UPDATE:VMB.EXE;*O$ !---------------------------------------------------------------------------!K$ ! Step 4: Update local console volume to support expanded DR/DB devices !O$ !---------------------------------------------------------------------------!$700:$ TYPE SYS$INPUT$710:W$ INQUIRE R "Step 4: Do you want to update the local console for expanded DR/DB? (Y/N)"2$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO 8002$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 710$ TYPE SYS$INPUTFThis procedure will take a copy of VMB.EXE from SYS$SYSTEM, patch itFto support expanded DR/DB devices, and copy it to the local consoleFmedium. It is recommended that you save the original volume and useFa copy for this procedure. A copy can be made by using the DECCONSCOPY.COM procedure.$720:;$ INQUIRE R "Are you ready to continue at this time? (Y/N)"3$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO EXIT2$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 720*$ COPY CSA1:[SYSUPD]DRZAPVMB.* SYS$UPDATE:$ DISMOUNT CSA1:$ TYPE SYS$INPUTEPlease place the console medium (to be modified) in the console driveG$ INQUIRE R "(enable RECORD tab if cassette) Type when ready"$ MOUNT/FOREIGN CSA1:$ TYPE SYS$INPUT (Updating Local Console medium)%$ COPY SYS$SYSTEM:VMB.EXE SYS$UPDATE: $ @DRZAPVMB$ MCR FLX CS1:/RT/IM=VMB.EXE/RS $ DELETE SYS$UPDATE:DRZAPVMB.*;*$ DELETE SYS$UPDATE:VMB.EXE;*$ DISMOUNT CSA1:$ TYPE SYS$INPUTBLocal Console update is complete, remove volume from console driveG$ INQUIRE R "and reinsert the EMULEX volume. Type when ready"$ MOUNT CSA1:/OV=IDO$ !---------------------------------------------------------------------------!=$ ! All done - Boot ROM / BOOT DEVICE switch message !O$ !---------------------------------------------------------------------------!$800:$ TYPE SYS$INPUTFThe expanded DR/DB device is now ready to be used as a system bootFdevice. For VAX-11/750 systems, take the system down and insert theFEmulex boot ROM into the memory controller board. Use boot ROMBlocation 3 (E84) and set the BOOT DEVICE switch to the D position.O$ !---------------------------------------------------------------------------!($ ! Normal exit / Error exit !O$ !---------------------------------------------------------------------------! $EXIT_NORM:$ TYPE SYS$INPUT-This concludes the DR installation procedure. $ GOTO EXIT$ ! $EXIT_ERR:$ TYPE SYS$INPUT0DR installation procedure terminated abnormally.$ !$EXIT:ceduO$ !---------------------------------------------------------------------------!K$ ! EMULEXUH.COM - Command file to install software on VMS to support !D$ ! the Emulex CS11 and CS21 Communications Multiplexer !O$ !---------------------------------------------------------------------------!$ ON ERROR THEN GOTO EXIT_ERR!$ ON CONTROL_Y THEN GOTO EXIT_ERR$ TYPE SYS$INPUT Emulex VAX/UH Software( Version 2.3 (for VMS 3.0 and above)@This procedure installs the software to support the Emulex CS11 @or CS21 Communications Multiplexer Controller on the VAX/VMS @operating system. The Emulex I/O driver for the CS11 or CS21 @on the VAX/VMS system is known as the UHDRIVER. The UHDRIVER @is a port driver that interfaces to the standard DEC terminal @class driver and thus supports the same QIO functions and @features. The DEC terminal class driver handles modem control @on units 0 through 7 only. Step 2 of this procedure will patch @the class driver (TTDRIVER.EXE) to support modem control on all @16 units of the Emulex controller. This patch is optional and @is not required if all of your modem lines are on units 0 @through 7. The patch will not affect the operation of other 'DZ11s or DMF32s using the class driver.3The following steps are included in this procedure:% 1. Install I/O driver (UHDRIVER.EXE); 2. Patch class driver to support modem control on 16 units, 3. Build procedure to connect all terminalsAAll questions will be repeated until a valid response is entered.$100:.$ INQUIRE R "Are you ready to continue? (Y/N)"3$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO EXIT2$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 100O$ !---------------------------------------------------------------------------!D$ ! Step 1: Install I/O driver on current system disk !O$ !---------------------------------------------------------------------------!$200:$ TYPE SYS$INPUT$210:B$ INQUIRE R "Step 1: Do you want to install the I/O driver? (Y/N)"2$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO 2502$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 210$ TYPE SYS$INPUT4 (Generating and copying UHDRIVER.EXE to SYS$SYSTEM)$$ COPY CSA1:[SYSUPD]UHDRIVER.OBJ *.*"$ COPY CSA1:[SYSUPD]LINKUH.COM *.* $ @LINKUH.COM)$ COPY SYS$UPDATE:UHDRIVER.EXE SYS$SYSTEM>$ DELETE SYS$UPDATE:LINKUH.COM;*,UHDRIVER.EXE;*,UHDRIVER.OBJ;*$220:G$ INQUIRE R "Do you want previous versions of the driver purged? (Y/N)"2$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO 2502$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 220$ PURGE SYS$SYSTEM:UHDRIVER.EXEO$ !---------------------------------------------------------------------------!J$ ! Step 2: Patch terminal class driver for 16 unit modem control. !O$ !---------------------------------------------------------------------------!$250:$ TYPE SYS$INPUT$260:S$ INQUIRE R "Step 2: Do you want to install patch for 16 unit modem control? (Y/N)"2$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO 3002$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 260$ TYPE SYS$INPUT (Patching TTDRIVER.EXE)!$ COPY CSA1:[SYSUPD]TTPATCH.* *.*)$ COPY SYS$SYSTEM:TTDRIVER.EXE SYS$UPDATE$ @TTPATCH.COM%$ COPY TTDRIVER.EXE SYS$SYSTEM/CONTIG2$ DELETE TTDRIVER.EXE;*,TTDRIVER.JNL;*,TTPATCH.*;*O$ !---------------------------------------------------------------------------!=$ ! Step 3: Build procedure to connect all terminals !O$ !---------------------------------------------------------------------------!$300:$ TYPE SYS$INPUT$310:V$ INQUIRE R "Step 3: Do you want to build a procedure to connect all terminals? (Y/N)"8$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO EXIT_NORM2$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 310$ !0$ ! Initialize command file for connecting units$ ! $ OPEN/WRITE SGCMD CONNECTUH.COM'$ WRITE SGCMD "$ RUN SYS$SYSTEM:SYSGEN"$ !($ ! Prompt for device configuration data$ !$320:$ TYPE SYS$INPUT$330:J$ INQUIRE CTRL "Enter controller designator for device name (A/B/C/.../P)"E$ IF (CTRL.EQS."A").OR.(CTRL.EQS."B").OR.(CTRL.EQS."C") THEN GOTO 340E$ IF (CTRL.EQS."D").OR.(CTRL.EQS."E").OR.(CTRL.EQS."F") THEN GOTO 340E$ IF (CTRL.EQS."G").OR.(CTRL.EQS."H").OR.(CTRL.EQS."I") THEN GOTO 340E$ IF (CTRL.EQS."J").OR.(CTRL.EQS."K").OR.(CTRL.EQS."L") THEN GOTO 340E$ IF (CTRL.EQS."M").OR.(CTRL.EQS."N").OR.(CTRL.EQS."O") THEN GOTO 340!$ IF (CTRL.EQS."P") THEN GOTO 340$ TYPE SYS$INPUT2 *** Controller designator must be A through P *** $ GOTO 330$340:$ TYPE SYS$INPUT$350:W$ INQUIRE ADANUM "Enter nexus number of adapter (3/4/5/6 on 780, 8/9 on 750, 3 on 730)"$ N=99 $ N=ADANUM7$ IF (N.LT.3) .OR. (N.GT.9) .OR. (N.EQ.7) THEN GOTO 350$ TYPE SYS$INPUT$360:O$ INQUIRE CSR "Enter the CSR address for the device (760020/760040/.../760700)";$ IF (CSR.EQS."760020").OR.(CSR.EQS."760040") THEN GOTO 370;$ IF (CSR.EQS."760060").OR.(CSR.EQS."760100") THEN GOTO 370;$ IF (CSR.EQS."760120").OR.(CSR.EQS."760140") THEN GOTO 370;$ IF (CSR.EQS."760160").OR.(CSR.EQS."760200") THEN GOTO 370;$ IF (CSR.EQS."760220").OR.(CSR.EQS."760240") THEN GOTO 370;$ IF (CSR.EQS."760260").OR.(CSR.EQS."760300") THEN GOTO 370;$ IF (CSR.EQS."760320").OR.(CSR.EQS."760340") THEN GOTO 370;$ IF (CSR.EQS."760360").OR.(CSR.EQS."760400") THEN GOTO 370;$ IF (CSR.EQS."760420").OR.(CSR.EQS."760440") THEN GOTO 370;$ IF (CSR.EQS."760460").OR.(CSR.EQS."760500") THEN GOTO 370;$ IF (CSR.EQS."760520").OR.(CSR.EQS."760540") THEN GOTO 370;$ IF (CSR.EQS."760560").OR.(CSR.EQS."760600") THEN GOTO 370;$ IF (CSR.EQS."760620").OR.(CSR.EQS."760640") THEN GOTO 370;$ IF (CSR.EQS."760660").OR.(CSR.EQS."760700") THEN GOTO 370$ TYPE SYS$INPUT* *** Entered CSR address not supported *** $ GOTO 360$370:$ TYPE SYS$INPUT$380:I$ INQUIRE VEC "Enter the vector address for the device (300/310/.../660)"5$ IF (VEC.EQS."300").OR.(VEC.EQS."310") THEN GOTO 3905$ IF (VEC.EQS."320").OR.(VEC.EQS."330") THEN GOTO 3905$ IF (VEC.EQS."340").OR.(VEC.EQS."350") THEN GOTO 3905$ IF (VEC.EQS."360").OR.(VEC.EQS."370") THEN GOTO 3905$ IF (VEC.EQS."400").OR.(VEC.EQS."410") THEN GOTO 3905$ IF (VEC.EQS."420").OR.(VEC.EQS."430") THEN GOTO 3905$ IF (VEC.EQS."440").OR.(VEC.EQS."450") THEN GOTO 3905$ IF (VEC.EQS."460").OR.(VEC.EQS."470") THEN GOTO 3905$ IF (VEC.EQS."500").OR.(VEC.EQS."510") THEN GOTO 3905$ IF (VEC.EQS."520").OR.(VEC.EQS."530") THEN GOTO 3905$ IF (VEC.EQS."540").OR.(VEC.EQS."550") THEN GOTO 3905$ IF (VEC.EQS."560").OR.(VEC.EQS."570") THEN GOTO 3905$ IF (VEC.EQS."600").OR.(VEC.EQS."610") THEN GOTO 3905$ IF (VEC.EQS."620").OR.(VEC.EQS."630") THEN GOTO 3905$ IF (VEC.EQS."640").OR.(VEC.EQS."650") THEN GOTO 390"$ IF (VEC.EQS."660") THEN GOTO 390$ TYPE SYS$INPUT- *** Entered vector address not supported *** $ GOTO 380$390:?$ WRITE SYS$OUTPUT "Device name=TT",CTRL,"u Adapter=",ADANUM,-. " CSR address=",CSR," Vector address=",VEC$ TYPE SYS$INPUT$400:5$ INQUIRE R "Is the above information correct? (Y/N)"2$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO 3202$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 400$ TYPE SYS$INPUT$410:H$ INQUIRE NUMUNIT "How many units do you want connected? (1/2/3/.../16)"$ N=99 $ N=NUMUNIT*$ IF (N.LT.1) .OR. (N.GT.16) THEN GOTO 410$ UNIT=0$420:C$ WRITE SGCMD "CONNECT TT",CTRL,UNIT,"/ADA=",ADANUM,"/CSR=%O",CSR,-/ "/VEC=%O",VEC,"/NUMVEC=3/DRIVERNAME=UHDRIVER" $ UNIT=UNIT+1$ IF UNIT .LT. N THEN GOTO 420$ TYPE SYS$INPUT$430:>$ INQUIRE R "Do you want to connect another controller? (Y/N)"2$ IF "''F$EXTRACT(0,1,R)'" .EQS. "Y" THEN GOTO 3202$ IF "''F$EXTRACT(0,1,R)'" .NES. "N" THEN GOTO 430 $ CLOSE SGCMD$$ COPY CONNECTUH.COM SYS$MANAGER:*.*$ DELETE CONNECTUH.COM;*$ TYPE SYS$INPUTDThe command procedure to connect all terminals has been stored underDthe SYS$MANAGER directory with a name of CONNECTUH.COM. Insert theDfollowing command to execute this procedure into your SYSTARTUP.COM procedure: $ @SYS$MANAGER:CONNECTUHDYou will also need to add SET TERMINAL commands for establishing the7default terminal characteristics for your installation.$440:F$ INQUIRE R "Do you want to connect the terminals at this time? (Y/N)"8$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO EXIT_NORM2$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 440$ TYPE SYS$INPUT (Connecting all terminals)$ @SYS$MANAGER:CONNECTUH$ GOTO EXIT_NORMO$ !---------------------------------------------------------------------------!($ ! Normal exit / Error exit !O$ !---------------------------------------------------------------------------! $EXIT_NORM:$ TYPE SYS$INPUT. This concludes the UH installation procedure. $ GOTO EXIT$ ! $EXIT_ERR:$ TYPE SYS$INPUT1 UH installation procedure terminated abnormally.$ !$EXIT:edure. $ GOTO EXIT$ ! $EXIT_ERR:$ TYPE SYS$INPUT1 UH installation procedure terminated O$ !---------------------------------------------------------------------------!K$ ! EMULEXUM.COM - Command file to install software on VMS to support !9$ ! the Emulex SC21/31 Disk Controller. !O$ !---------------------------------------------------------------------------!$ ON ERROR THEN GOTO EXIT_ERR!$ ON CONTROL_Y THEN GOTO EXIT_ERR$ TYPE SYS$INPUT Emulex VAX/UM Software$ Version 2.3 (for VMS 3.0 and above)AThis procedure installs the software to support the Emulex SC21 Aor SC31 Disk Controller on the VAX/VMS operating system. This ADisk Controller installed on the VAX/VMS system is known as a UM Adevice. The UM device may be used as a data storage device or as Aa system boot device on all VAX-11 systems. On the VAX-11/750 Bsystem, you will also need to install the Emulex supplied boot 3ROM if using the UM device as a system boot device.3The following steps are included in this procedure:% 1. Install I/O driver (UMDRIVER.EXE)0 2. Build procedure to connect all UM disk units6 3. Build stand-alone BACKUP kit to support UM devices8 4. Install driver and patch VMB.EXE on UM system device< 5. Update Local Console volume for UM system device support@Execute steps 1, 2, and 3 to install a data device. Include.steps 4 and 5 to install a system boot device.AAll questions will be repeated until a valid response is entered.@If a UM device is being installed as a system boot device, you@will need a copy of the Local Console medium. This copy will be@modified to support the UM system device. Use the DEC provided@procedure (CONSCOPY.COM) to generate this copy before procedingwith this installation.$100:.$ INQUIRE R "Are you ready to continue? (Y/N)"3$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO EXIT2$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 100O$ !---------------------------------------------------------------------------!>$ ! Step 1: Install I/O driver on current system disk !O$ !---------------------------------------------------------------------------!$200:$ TYPE SYS$INPUT$210:B$ INQUIRE R "Step 1: Do you want to install the I/O driver? (Y/N)"2$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO 3002$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 210$ TYPE SYS$INPUT4 (Generating and copying UMDRIVER.EXE to SYS$SYSTEM)"$ COPY CSA1:[SYSUPD]LINKUM.COM *.*$$ COPY CSA1:[SYSUPD]UMDRIVER.OBJ *.* $ @LINKUM$ COPY UMDRIVER.EXE SYS$SYSTEM$ DELE UMDRIVER.*;*$ DELE LINKUM.COM;*$220:C$ INQUIRE R "Do you want previous versions of driver purged? (Y/N)"2$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO 3002$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 220$ PURGE SYS$SYSTEM:UMDRIVER.EXEO$ !---------------------------------------------------------------------------!:$ ! Step 2: Build procedure to connect all units !O$ !---------------------------------------------------------------------------!$300:$ TYPE SYS$INPUT$310:S$ INQUIRE R "Step 2: Do you want to build a procedure to connect UM devices? (Y/N)"2$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO 4002$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 310$ !7$ ! Initialize sample command file for connecting units$ ! $ OPEN/WRITE SGCMD CONNECTUM.COM'$ WRITE SGCMD "$ RUN SYS$SYSTEM:SYSGEN"$ !($ ! Prompt for device configuration data$ !$ TYPE SYS$INPUT?It is recommended that UM devices be connected with a device?code of UM. This is a requirement for UM system devices. The$controller designator can be A or B.$315:$ TYPE SYS$INPUT$320:E$ INQUIRE DEVNAME "Enter desired device name (ddcu, default is UMA0)"($ IF DEVNAME .EQS. "" THEN DEVNAME:=UMA0#$ DEVNAME:='F$EXTRACT(0,4,DEVNAME)' $ CTRL:='F$EXTRACT(2,1,DEVNAME)'5$ IF (CTRL.EQS."A") .OR. (CTRL.EQS."B") THEN GOTO 325$ TYPE SYS$INPUT- *** Controller designator must be A or B *** $ GOTO 315$325:$ N=99$ N='F$EXTRACT(3,1,DEVNAME)'$ IF N .LT. 8 THEN GOTO 330$ TYPE SYS$INPUT6 *** Unit number must be 0, 1, 2, 3, 4, 5, 6, or 7 *** $ GOTO 315$330:$ TYPE SYS$INPUT$335:W$ INQUIRE ADANUM "Enter nexus number of adapter (3/4/5/6 on 780, 8/9 on 750, 3 on 730)"$ N=99 $ N=ADANUM7$ IF (N.LT.3) .OR. (N.GT.9) .OR. (N.EQ.7) THEN GOTO 335$340:$ TYPE SYS$INPUT9The supported CSR addresses are (1) 776700 and (2) 776300@$ INQUIRE R "Enter the number of the selected CSR address (1/2)"0$ IF (R.NES."1") .AND. (R.NES."2") THEN GOTO 340 $ IF R .EQS "1" THEN CSR:=776700 $ IF R .EQS."2" THEN CSR:=776300$345:$ TYPE SYS$INPUT6The supported vector addresses are (1) 254 and (2) 150C$ INQUIRE R "Enter the number of the selected vector address (1/2)"0$ IF (R.NES."1") .AND. (R.NES."2") THEN GOTO 345$ IF R .EQS "1" THEN VEC:=254$ IF R .EQS."2" THEN VEC:=150$ TYPE SYS$INPUT?$ WRITE SYS$OUTPUT "Device name=",DEVNAME," Adapter=",ADANUM,-. " CSR address=",CSR," Vector address=",VEC$ TYPE SYS$INPUT$350:5$ INQUIRE R "Is the above information correct? (Y/N)"2$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO 3152$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 350C$ WRITE SGCMD "CONNECT ",DEVNAME,"/ADAPTER=",ADANUM,"/CSR=%O",CSR,-) "/VECTOR=%O",VEC,"/DRIVERNAME=UMDRIVER"$ TYPE SYS$INPUT$380:=$ INQUIRE R "Do you want to connect another UM device? (Y/N)"2$ IF "''F$EXTRACT(0,1,R)'" .EQS. "Y" THEN GOTO 3152$ IF "''F$EXTRACT(0,1,R)'" .NES. "N" THEN GOTO 380 $ CLOSE SGCMD$$ COPY CONNECTUM.COM SYS$MANAGER:*.*$ DELETE CONNECTUM.COM;*$ TYPE SYS$INPUT@The command procedure to connect all units has been stored under@the SYS$MANAGER directory with a name of CONNECTUM.COM. Insert@the following command to execute this procedure into yourSYSTARTUP.COM procedure: $ @SYS$MANAGER:CONNECTUM$390:G$ INQUIRE R "Do you want to connect the UM devices at this time? (Y/N)"2$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO 4002$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 390$ TYPE SYS$INPUT (connecting all units)$ @SYS$MANAGER:CONNECTUMO$ !---------------------------------------------------------------------------!F$ ! Step 3: Build stand-alone BACKUP kit to support UM devices !O$ !---------------------------------------------------------------------------!$400:$ TYPE SYS$INPUT$410:W$ INQUIRE R "Step 3: Do you want to build stand-alone BACKUP kit for UM devices? (Y/N)"2$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO 5002$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 410$ TYPE SYS$INPUT@The following procedure will build a new stand-alone BACKUP kit@to support UM devices. However, support for all DL devices@(RL211) and the MSD device (TS11,controller D) will be disabled.+$ COPY CSA1:[SYSUPD]XXSABKUP.COM SYS$UPDATE$ @SYS$UPDATE:XXSABKUP"$ DELETE SYS$UPDATE:XXSABKUP.COM;*O$ !---------------------------------------------------------------------------!6$ ! Start of system boot device installation !O$ !---------------------------------------------------------------------------!$500:$ TYPE SYS$INPUT@This concludes the UM installation procedure for non-system@devices. Use the Emulex disk formatting routine (EDSKF) to@format the new UM devices and locate the bad blocks. After the@disk is formatted, you are ready to INITIALIZE, MOUNT, and usethe new UM devices.$510:Q$ INQUIRE R "Do you want to install the UM device as a system boot device? (Y/N)"3$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO EXIT2$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 510$ TYPE SYS$INPUT@This procedure assumes the system device name is UMAn and thatAthe adapter number is 3 if a 780 or 730 or 8 if a 750. The CSR Aaddress must be 776700 and the vector address must be set to A254. Before starting this procedure, you must have formatted, Ainitialized, and copied the VMS system files to the new UM Asystem device. You can restart this procedure by answering N 'to the previous steps of the procedure.$520:P$ INQUIRE DEVNAME "Enter UM device name for system disk (ddcu, default is UMA0)"($ IF DEVNAME .EQS. "" THEN DEVNAME:=UMA0#$ DEVNAME:='F$EXTRACT(0,4,DEVNAME)' $ CTRL:='F$EXTRACT(2,1,DEVNAME)'4$ IF (CTRL.EQS."A").OR. (CTRL.EQS."B") THEN GOTO 522$ TYPE SYS$INPUT- *** Controller designator must be A or B *** $ GOTO 520$522:$ N=99$ N='F$EXTRACT(3,1,DEVNAME)'$ IF N .LT. 8 THEN GOTO 524$ TYPE SYS$INPUT6 *** Unit number must be 0, 1, 2, 3, 4, 5, 6, or 7 *** $ GOTO 520$524:$ TYPE SYS$INPUT $ SYSTYP = F$GETSYI("CPU")1$ IF (SYSTYP.EQ.1).OR.(SYSTYP.EQ.3) THEN GOTO 530 $ ADANUM = 8 $ GOTO 531$530: $ ADANUM = 3$ TYPE SYS$INPUT$531:?$ WRITE SYS$OUTPUT "Device name=",DEVNAME," Adapter=",ADANUM,-+ " CSR address=776700 Vector address=254"$ TYPE SYS$INPUT$532:5$ INQUIRE R "Is the above information correct? (Y/N)"2$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO 5202$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 532 $ OPEN/WRITE SGCMD CONNECTUM.COM'$ WRITE SGCMD "$ RUN SYS$SYSTEM:SYSGEN"5$ WRITE SGCMD "CONNECT ",DEVNAME,"/ADAPTER=",ADANUM,-2 "/CSR=%O776700/VECTOR=%O254/DRIVERNAME=UMDRIVER" $ CLOSE SGCMD$533:$ TYPE SYS$INPUT;$ INQUIRE R "Are you ready to continue at this time? (Y/N)"3$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO EXIT2$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 533$ TYPE SYS$INPUT#$ ! Make sure ZAP.EXE is available($ FILE = F$SEARCH("''LIB_TYPE':ZAP.EXE") $ IF FILE .EQS. "" THEN GOTO 534.$ IF LIB_TYPE .EQS. "SYS$SYSTEM" THEN GOTO 540%$ COPY LIB$SYSTEM:ZAP.EXE SYS$SYSTEM: $ GOTO 540$534:$ TYPE SYS$INPUT3 SYS$SYSTEM:ZAP.EXE is required for this procedure.5 Install the missing file and restart this procedure.$ GOTO EXIT_ERR$540:$ @CONNECTUM.COM$ DELETE CONNECTUM.COM;*$570:Y$ INQUIRE ROOT "Enter name of system root directory on UM device (SYSn, default is SYS0)"!$ IF ROOT .EQS "" THEN ROOT:=SYS07$ IF "''F$EXTRACT(0,3,ROOT)'" .NES. "SYS" THEN GOTO 570$ !J$ ! bypass the mount function if the destination device is already mounted$ !<$ IF "''F$GETDVI(DEVNAME,"MNT")'" .EQS. "TRUE" THEN GOTO 580$ MOUNT 'DEVNAME':/OV=IDO$ !---------------------------------------------------------------------------!E$ ! Step 4: Copy UM driver to system device and patch VMB.EXE !O$ !---------------------------------------------------------------------------!$ TYPE SYS$INPUT$580:V$ INQUIRE R "Step 4: Do you want to install driver and patch VMB on UM device ? (Y/N)"2$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO 6002$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 580$ TYPE SYS$INPUT3 (Generating and copying UMDRIVER.EXE to UM device)"$ COPY CSA1:[SYSUPD]LINKUM.COM *.*$$ COPY CSA1:[SYSUPD]UMDRIVER.OBJ *.* $ @LINKUM8$ COPY UMDRIVER.EXE 'DEVNAME':['ROOT'.SYSEXE]/CONTIGUOUS$ DELE UMDRIVER.*;*$ DELE LINKUM.COM;*$ TYPE SYS$INPUT (Patching VMB.EXE on UM device)*$ COPY CSA1:[SYSUPD]UMZAPVMB.* SYS$UPDATE:3$ COPY 'DEVNAME':['ROOT'.SYSEXE]VMB.EXE SYS$UPDATE: $ @UMZAPVMB;$ COPY SYS$UPDATE:VMB.EXE 'DEVNAME':['ROOT'.SYSEXE]/OVERLAY$ DELETE SYS$UPDATE:VMB.EXE;* $ DELETE SYS$UPDATE:UMZAPVMB.*;*O$ !---------------------------------------------------------------------------!@$ ! Step 5: Update local console medium for UM support !O$ !---------------------------------------------------------------------------!$600:$ TYPE SYS$INPUT$610:V$ INQUIRE R "Step 5: Do you want to update local console to support UM devices? (Y/N)"2$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO 7002$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 610$ TYPE SYS$INPUTCThe following procedure updates the Local Console medium to supportCthe UM system device. However, support for a DL system device willCbe disabled. It is recommended that you save the original mediumCand use a copy of the cassette or floppy for this procedure. A copy0can be made by using the CONSCOPY.COM procedure.$620:;$ INQUIRE R "Are you ready to continue at this time? (Y/N)"3$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO EXIT2$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 620#$ ! Make sure FLX.EXE is available'$ FILE = F$SEARCH("SYS$SYSTEM:FLX.EXE") $ IF FILE .NES. "" THEN GOTO 623:$ IF F$GETDVI(SYSDISK,"MAXBLOCK") .GE. 25000 THEN GOTO 622'$ FILE = F$SEARCH("LIB$SYSTEM:FLX.EXE") $ IF FILE .EQS. "" THEN GOTO 622%$ COPY LIB$SYSTEM:FLX.EXE SYS$SYSTEM: $ GOTO 623$622:$ TYPE SYS$INPUT3 SYS$SYSTEM:FLX.EXE is required for this procedure.5 Install the missing file and restart this procedure.$ GOTO EXIT_ERR$623:$ TYPE SYS$INPUT0 (Reading UM boot procedures from Emulex medium)*$ COPY CSA1:[SYSUPD]UMZAPVMB.* SYS$UPDATE: $ IF SYSTYP .NE. 3 THEN GOTO 625,$ COPY CSA1:[SYSUPD]730UM0BOO.CMD UM0BOO.CMD,$ COPY CSA1:[SYSUPD]730UM1BOO.CMD UM1BOO.CMD,$ COPY CSA1:[SYSUPD]730UM2BOO.CMD UM2BOO.CMD,$ COPY CSA1:[SYSUPD]730UM3BOO.CMD UM3BOO.CMD,$ COPY CSA1:[SYSUPD]730UMABOO.CMD UMABOO.CMD&$ COPY CSA1:[SYSUPD]730UM0GEN. UM0GEN.&$ COPY CSA1:[SYSUPD]730UMAGEN. UMAGEN.&$ COPY CSA1:[SYSUPD]730UMAXDT. UMAXDT.&$ COPY CSA1:[SYSUPD]730UM0XDT. UM0XDT. $ GOTO 640$625: $ IF SYSTYP .NE. 2 THEN GOTO 630,$ COPY CSA1:[SYSUPD]750UM0BOO.CMD UM0BOO.CMD,$ COPY CSA1:[SYSUPD]750UM1BOO.CMD UM1BOO.CMD,$ COPY CSA1:[SYSUPD]750UM2BOO.CMD UM2BOO.CMD,$ COPY CSA1:[SYSUPD]750UM3BOO.CMD UM3BOO.CMD,$ COPY CSA1:[SYSUPD]750UMABOO.CMD UMABOO.CMD,$ COPY CSA1:[SYSUPD]750UMBBOO.CMD UMBBOO.CMD&$ COPY CSA1:[SYSUPD]750UM0GEN. UM0GEN.&$ COPY CSA1:[SYSUPD]750UM1GEN. UM1GEN.&$ COPY CSA1:[SYSUPD]750UM2GEN. UM2GEN.&$ COPY CSA1:[SYSUPD]750UM3GEN. UM3GEN.&$ COPY CSA1:[SYSUPD]750UMAGEN. UMAGEN.&$ COPY CSA1:[SYSUPD]750UMBGEN. UMBGEN.&$ COPY CSA1:[SYSUPD]750UMAXDT. UMAXDT.&$ COPY CSA1:[SYSUPD]750UMBXDT. UMBXDT. $ GOTO 640$630:,$ COPY CSA1:[SYSUPD]780UM0BOO.CMD UM0BOO.CMD,$ COPY CSA1:[SYSUPD]780UM1BOO.CMD UM1BOO.CMD,$ COPY CSA1:[SYSUPD]780UM2BOO.CMD UM2BOO.CMD,$ COPY CSA1:[SYSUPD]780UM3BOO.CMD UM3BOO.CMD,$ COPY CSA1:[SYSUPD]780UM0BOO.ILV UM0BOO.ILV&$ COPY CSA1:[SYSUPD]780UM0GEN. UM0GEN.&$ COPY CSA1:[SYSUPD]780UM1GEN. UM1GEN.&$ COPY CSA1:[SYSUPD]780UM2GEN. UM2GEN.&$ COPY CSA1:[SYSUPD]780UM3GEN. UM3GEN.&$ COPY CSA1:[SYSUPD]780UMAXDT. UMAXDT.&$ COPY CSA1:[SYSUPD]780UM0XDT. UM0XDT.$640:%$ COPY SYS$SYSTEM:VMB.EXE SYS$UPDATE: $ @UMZAPVMB $ DELETE SYS$UPDATE:UMZAPVMB.*;*$ DISMOUNT CSA1:$ TYPE SYS$INPUTEPlease place the console medium (to be modified) in the console driveG$ INQUIRE R "(enable RECORD tab if cassette) Type when ready"$ MOUNT/FOREIGN CSA1:$ TYPE SYS$INPUT (Updating Local Console medium)$ MCR FLX CS1:/RT/IM=VMB.EXE/RS $ IF SYSTYP .NE. 3 THEN GOTO 645$ MCR FLX CS1:/RT=UM0BOO.CMD/RS$ MCR FLX CS1:/RT=UM1BOO.CMD/RS$ MCR FLX CS1:/RT=UM2BOO.CMD/RS$ MCR FLX CS1:/RT=UM3BOO.CMD/RS$ MCR FLX CS1:/RT=UMABOO.CMD/RS$ MCR FLX CS1:/RT=UM0GEN./RS$ MCR FLX CS1:/RT=UMAGEN./RS$ MCR FLX CS1:/RT=UMAXDT./RS$ MCR FLX CS1:/RT=UM0XDT./RS $ GOTO 660$645: $ IF SYSTYP .NE. 2 THEN GOTO 650$ MCR FLX CS1:/RT=UM0BOO.CMD/RS$ MCR FLX CS1:/RT=UM1BOO.CMD/RS$ MCR FLX CS1:/RT=UM2BOO.CMD/RS$ MCR FLX CS1:/RT=UM3BOO.CMD/RS$ MCR FLX CS1:/RT=UMABOO.CMD/RS$ MCR FLX CS1:/RT=UMBBOO.CMD/RS$ MCR FLX CS1:/RT=UM0GEN./RS$ MCR FLX CS1:/RT=UM1GEN./RS$ MCR FLX CS1:/RT=UM2GEN./RS$ MCR FLX CS1:/RT=UM3GEN./RS$ MCR FLX CS1:/RT=UMAGEN./RS$ MCR FLX CS1:/RT=UMBGEN./RS$ MCR FLX CS1:/RT=UMAXDT./RS$ MCR FLX CS1:/RT=UMBXDT./RS $ GOTO 660$650:$ MCR FLX CS1:/RT=UM0BOO.CMD/RS$ MCR FLX CS1:/RT=UM1BOO.CMD/RS$ MCR FLX CS1:/RT=UM2BOO.CMD/RS$ MCR FLX CS1:/RT=UM3BOO.CMD/RS$ MCR FLX CS1:/RT=UM0BOO.ILV/RS$ MCR FLX CS1:/RT=UM0GEN./RS$ MCR FLX CS1:/RT=UM1GEN./RS$ MCR FLX CS1:/RT=UM2GEN./RS$ MCR FLX CS1:/RT=UM3GEN./RS$ MCR FLX CS1:/RT=UMAXDT./RS$ MCR FLX CS1:/RT=UM0XDT./RS$660:$ DISMOUNT CSA1:'$ DELETE UM*BOO.*;*,UM*GEN.;*,UM*XDT.;*$ DELETE SYS$UPDATE:VMB.EXE;*$ TYPE SYS$INPUTBLocal Console update is complete, remove volume from console driveG$ INQUIRE R "and reinsert the EMULEX volume. Type when ready"$ MOUNT CSA1:/OV=IDO$ !---------------------------------------------------------------------------!-=$ ! All done - Boot ROM / BOOT DEVICE switch message ! O$ !---------------------------------------------------------------------------! $700:h$ TYPE SYS$INPUT>The UM device is now ready to be used as a system boot device.1$ IF (SYSTYP.EQ.1).OR.(SYSTYP.EQ.3) THEN GOTO 710R$ TYPE SYS$INPUT?Take the system down and insert the UM boot ROM into the memorym?controller board. Use boot ROM location 2 (E83) or 3 (E84) ands?set the BOOT DEVICE switch to the C or D position respectively.r$710:i$ TYPE SYS$INPUTO$ !---------------------------------------------------------------------------!s($ ! Normal exit / Error exit !O$ !---------------------------------------------------------------------------!X $EXIT_NORM: $ TYPE SYS$INPUT-This concludes the UM installation procedure.m $ GOTO EXITo$ ! $EXIT_ERR:$ TYPE SYS$INPUT0UM installation procedure terminated abnormally.$ !i$EXIT:cedure.m $ GOTO EXITo$ ! $EXIT_ERR:$ TYPE SYS$INPUT&A;W EMULEXUT.COM;1  6 ܋@$7 ܋ @ln&A<OF LINKUH.COM;1 l݋fl݋@v&A=L LINKUM.COM;1 @%l݋Jl݋@x&A>L~ LINKUT.COM;1 @l݋ 6l݋@X&A?It TTPATCH.COM;1 `ڏ 4ڏ@@&A@Ap TTPATCH.V30;1  6R_Q>@s&AAAf TTPATCH.V32;1 2^^Q>@sm&AB  UHDRIVER.OBJ;1  c@T(@3&AC/ UM0BOO.CMD;1 K쵞zڋ@!&AD> UM0GEN.;1 K쵞Dzڋ@"&&AE/ UM1BOO.CMD;1 K쵞`zڋ@#]&AF> UM1GEN.;1 K쵞zڋ@$&AG/ UM2BOO.CMD;1 K쵞`-zڋ@%&AH> UM2GEN.;1 K쵞 zڋ@&-&AI/ UM3BOO.CMD;1 K쵞INzڋ@'m&AJ> UM3GEN.;1 K쵞@ݝzڋ@(N&AK> UMABOO.CMD;1 K쵞Zzڋ@)^&AL8. UMAGEN.;1 K쵞`H͞zڋ@*3&AM?v UMAXDT.;1 K쵞6zڋ@ l&AN> UMBBOO.CMD;1 K쵞{zڋ@բ&AO8. UMBGEN.;1 K쵞1 zڋ@@2^O$ !---------------------------------------------------------------------------!K$ ! EMULEXUT.COM - Command file to install software on VMS to support !6$ ! the Emulex TC11 Tape Controller. !O$ !---------------------------------------------------------------------------!$ ON ERROR THEN GOTO EXIT_ERR!$ ON CONTROL_Y THEN GOTO EXIT_ERR$ TYPE SYS$INPUT Emulex VAX/UT Software$ Version 2.2 (for VMS 3.0 and above)@This procedure installs the software to support the Emulex TC11 @Tape Controller on the VAX/VMS operating system. The TC11 Tape @Controller installed on the VAX/VMS system is known as a UT 4device, and the I/O driver is known as the UTDRIVER.3The following steps are included in this procedure:% 1. Install I/O driver (UTDRIVER.EXE)- 2. Build procedure to connect all tape units6 3. Build stand-alone BACKUP kit to support UT devicesAAll questions will be repeated until a valid response is entered.$100:.$ INQUIRE R "Are you ready to continue? (Y/N)"3$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO EXIT2$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 100O$ !---------------------------------------------------------------------------!>$ ! Step 1: Install I/O driver on current system disk !O$ !---------------------------------------------------------------------------!$200:$ TYPE SYS$INPUT$210:B$ INQUIRE R "Step 1: Do you want to install the I/O driver? (Y/N)"2$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO 3002$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 210$ TYPE SYS$INPUT4 (Generating and copying UTDRIVER.EXE to SYS$SYSTEM)$$ COPY CSA1:[SYSUPD]UTDRIVER.OBJ *.*"$ COPY CSA1:[SYSUPD]LINKUT.COM *.* $ @LINKUT)$ COPY SYS$UPDATE:UTDRIVER.EXE SYS$SYSTEM"$ DELETE SYS$UPDATE:UTDRIVER.OBJ;* $ DELETE SYS$UPDATE:LINKUT.COM;*$220:C$ INQUIRE R "Do you want previous versions of driver purged? (Y/N)"2$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO 3002$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 220$ PURGE SYS$SYSTEM:UTDRIVER.EXEO$ !---------------------------------------------------------------------------!;$ ! Step 2: Build procedure to connect tape units !O$ !---------------------------------------------------------------------------!$300:$ TYPE SYS$INPUT$310:S$ INQUIRE R "Step 2: Do you want to build a procedure to connect UT devices? (Y/N)"2$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO 4002$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 310$ !0$ ! Initialize command file for connecting units$ ! $ OPEN/WRITE SGCMD CONNECTUT.COM'$ WRITE SGCMD "$ RUN SYS$SYSTEM:SYSGEN"$ !($ ! Prompt for device configuration data$ !$ TYPE SYS$INPUTASome VMS utilities do not recognize the UT device as being a tapeAdevice. Therefore it is recommended that the UT devices be called,MT, MS, or MM devices when connected on VMS.$320:$ TYPE SYS$INPUTE$ INQUIRE DEVNAME "Enter desired device name (ddcu, default is MTA0)"($ IF DEVNAME .EQS. "" THEN DEVNAME:=MTA0$$ DEVNAME:='F$EXTRACT(0,4,DEVNAME)' $ DC:='F$EXTRACT(0,2,DEVNAME)' S$ IF (DC.EQS."UT").OR.(DC.EQS."MT").OR.(DC.EQS."MS").OR.(DC.EQS."MM") THEN GOTO 325$ TYPE SYS$INPUT/ *** Use a device code of MT, MS, MM, or UT *** $ GOTO 320$325: $ CTRL:='F$EXTRACT(2,1,DEVNAME)'E$ IF (CTRL.EQS."A").OR.(CTRL.EQS."B").OR.(CTRL.EQS."C") THEN GOTO 330E$ IF (CTRL.EQS."D").OR.(CTRL.EQS."E").OR.(CTRL.EQS."F") THEN GOTO 330E$ IF (CTRL.EQS."G").OR.(CTRL.EQS."H").OR.(CTRL.EQS."I") THEN GOTO 330E$ IF (CTRL.EQS."J").OR.(CTRL.EQS."K").OR.(CTRL.EQS."L") THEN GOTO 330E$ IF (CTRL.EQS."M").OR.(CTRL.EQS."N").OR.(CTRL.EQS."O") THEN GOTO 330!$ IF (CTRL.EQS."P") THEN GOTO 330$ TYPE SYS$INPUT2 *** Controller designator must be A through P *** $ GOTO 320$330:$ N=99$ N='F$EXTRACT(3,1,DEVNAME)'$ IF N .LT. 8 THEN GOTO 335$ TYPE SYS$INPUT( *** Unit number must be 0 through 7 *** $ GOTO 320$335:$ TYPE SYS$INPUT$340:W$ INQUIRE ADANUM "Enter nexus number of adapter (3/4/5/6 on 780, 8/9 on 750, 3 on 730)"$ N=99 $ N=ADANUM7$ IF (N.LT.3) .OR. (N.GT.9) .OR. (N.EQ.7) THEN GOTO 340?$ WRITE SYS$OUTPUT "Device name=",DEVNAME," Adapter=",ADANUM,-*" CSR address=772520 Vector address=224"$350:5$ INQUIRE R "Is the above information correct? (Y/N)"2$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO 3202$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 350$360:E$ WRITE SGCMD "CONNECT ",DEVNAME,"/ADAPTER=",ADANUM,"/CSR=%O772520",-% "/VECTOR=%O224/DRIVERNAME=UTDRIVER"$ TYPE SYS$INPUT$370:J$ INQUIRE R "Do you want to connect another unit on the controller? (Y/N)"2$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO 3902$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 370$380:$ TYPE SYS$INPUT2$ INQUIRE U "Enter next unit number (0/1/2/.../7)"$ N=99$ N=U$ IF N .LT. 8 THEN GOTO 385$ TYPE SYS$INPUT( *** Unit number must be 0 through 7 *** $ GOTO 380$385:$ DEVNAME:='DC''CTRL''U' $ GOTO 360$390: $ CLOSE SGCMD$$ COPY CONNECTUT.COM SYS$MANAGER:*.*$ DELETE CONNECTUT.COM;*$ TYPE SYS$INPUTAThe command procedure to connect all units has been stored under Athe SYS$MANAGER directory with a name of CONNECTUT.COM. Insert Athe following command to execute this procedure into your SYSTARTUP.COM procedure: $ @SYS$MANAGER:CONNECTUT@Prior to connecting a UT device, you must disable autoconfigureAon MS devices. The following procedure will fail with a SYSGEN Aerror (vector in use) if the MS devices have been autoconfigured.$397:G$ INQUIRE R "Do you want to connect the UT devices at this time? (Y/N)"2$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO 4002$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 397$ TYPE SYS$INPUT (connecting all units)$ @SYS$MANAGER:CONNECTUTO$ !---------------------------------------------------------------------------!F$ ! Step 3: Build stand-alone BACKUP kit to support UT devices !O$ !---------------------------------------------------------------------------!$400:$ TYPE SYS$INPUT$410:W$ INQUIRE R "Step 3: Do you want to build stand-alone BACKUP kit for UT devices? (Y/N)"8$ IF "''F$EXTRACT(0,1,R)'" .EQS. "N" THEN GOTO EXIT_NORM2$ IF "''F$EXTRACT(0,1,R)'" .NES. "Y" THEN GOTO 410+$ COPY CSA1:[SYSUPD]XXSABKUP.COM SYS$UPDATE$ @SYS$UPDATE:XXSABKUP"$ DELETE SYS$UPDATE:XXSABKUP.COM;*$ GOTO EXIT_NORMO$ !---------------------------------------------------------------------------!($ ! Normal exit / Error exit !O$ !---------------------------------------------------------------------------! $EXIT_NORM:$ TYPE SYS$INPUT. This concludes the UT installation procedure. $ GOTO EXIT$ ! $EXIT_ERR:$ TYPE SYS$INPUT1 UT installation procedure terminated abnormally.$ !$EXIT:edure. $ GOTO EXIT$ ! $EXIT_ERR:$ TYPE SYS$INPUT!7! UMAx CONVERSTATIONAL/DEBUG BOOT COMMAND FILE - UMAXDTO?! BOOT FROM UMAx AND STOP IN SYSBOOT TO ALTER PARAMETER VALUES.M,! THEN BREAKPOINT DURING VMS INITIALIZATION.!U>! THE UNIT NUMBER IS SPECIFIED BY DEPOSITING THE DESIRED VALUE*! IN R3 BEFORE INVOKING THIS COMMAND FILE.!GD/G 0 AC0002 ! UM DISKD'D/G 1 FFE000 ! BASE OF UNIBUS I/O PAGE(!D/G 2 3FDC0 ! CSR ADDRESS OFFSET #D/G 4 0 ! BOOT BLOCK LBN (UNUSED)0;D/G 5 7 ! SOFTWARE BOOT FLAGS (CONVERSATIONAL/DEBUG BOOT)0.D/G E 200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP*$START 200 ! START PRIMARY BOOTSTRAP200 ! ADD 750UMBBOO.CMD 750UMBGEN.  750UMBXDT.! 780UM0BOO.CMD" 780UM0BOO.ILV# 780UM0GEN.$ 780UM0XDT.% 780UM1BOO.CMD& 780UM1GEN.' 780UM2BOO.CMD(!%! UMBx BOOT COMMAND FILE - UMBBOO.CMDM! BOOT FROM UMBx !O>! THE UNIT NUMBER IS SPECIFIED BY DEPOSITING THE DESIRED VALUE*! IN R3 BEFORE INVOKING THIS COMMAND FILE.!D/G 0 AC0002 ! UM DISKI'D/G 1 FBE000 ! BASE OF UNIBUS I/O PAGEN!D/G 2 3FDC0 ! CSR ADDRESS OFFSETL#D/G 4 0 ! BOOT BLOCK LBN (UNUSED) D/G 5 0 ! SOFTWARE BOOT FLAGSG.D/G E 200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAPE$START 200 ! START PRIMARY BOOTSTRAP200 ! ADDRESS OF WO0! UMBx CONVERSATIONAL BOOT COMMAND FILE - UMBGEN8! BOOT FROM UMBx AND STOP IN SYSBOOT TO ALTER PARAMETERS!I8! THE UNIT NUMBER IS SPECIFIED BY DEPOSITING THE DESIRED0! VALUE IN R3 BEFORE INVOKING THIS COMMAND FILE.! D/G 0 AC0002 ! UM DISK'D/G 1 FBE000 ! BASE OF UNIBUS I/O PAGE !D/G 2 3FDC0 ! CSR ADDRESS OFFSET #D/G 4 0 ! BOOT BLOCK LBN (UNUSED)05D/G 5 1 ! SOFTWARE BOOT FLAGS (CONVERSATIONAL BOOT)A.D/G E 200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BO$ SET NOVERIFYI$ !---------------------------------------------------------------------!D$ ! This command file will Link the Emulex provided TC11 UTDRIVER. !I$ !---------------------------------------------------------------------!L$LINK/USERLIB=PROC/NOSYSSHR/NOTRACE/NODEBUG/SHARE=UTDRIVER/CONTIGUOUS/NOMAP-7 UTDRIVER,'LIB_TYPE':SYS.STB/SELECTIVE,SYS$INPUT/OPTIONBASE=0PRI$ !---------------------------------------------------------------------!A$ ! Patch the DEC terminal class driver (TTDRIVER) to handle 16 !?$ ! lines of modem control instead of the standard 8 all DEC !&$ ! controllers are limitted to. !C$ ! This command file calls multiple PATCH command files, one for !A$ ! each unique version of the driver. Each individual command !C$ ! file will check the driver ECO patch level to insure only the !4$ ! appropriate version of the patch is applied. !I$ !---------------------------------------------------------------------!$ @TTPATCH.V30$ @TTPATCH.V32$ EXITapplied. !A$ !-------------------------------------------------------------!'$ ! for version V3.0 & V3.1 of VMS !A$ !-------------------------------------------------------------!$ ASSIGN/USER NL: SYS$OUTPUT:$ PATCH TTDRIVER.EXECHECK NOT ECO 1DEPOSIT/BYTE 202E=0B0DEPOSIT/BYTE 2030=044DEPOSIT/BYTE 2032=0A8DEPOSIT/BYTE 2036=044DEPOSIT/BYTE 2037=0B3DEPOSIT/BYTE 20A8=0B0DEPOSIT/BYTE 20AA=044DEPOSIT/BYTE 20AC=0AADEPOSIT/BYTE 20B0=044DEPOSIT/BYTE 20B1=0B3DEPOSIT/BYTE 20FF=0B0DEPOSIT/BYTE 2101=044DEPOSIT/BYTE 2105=010DEPOSIT/BYTE 212F=0AADEPOSIT/BYTE 2133=044UPDATEEXITSIT/BYTE 20FF=0BA$ !-------------------------------------------------------------!!$ ! for version V3.2 of VMS !A$ !-------------------------------------------------------------!$ ASSIGN/USER NL: SYS$OUTPUT:$ PATCH TTDRIVER.EXE CHECK ECO 1DEPOSIT/BYTE 2036=0B0DEPOSIT/BYTE 2038=044DEPOSIT/BYTE 203A=0A8DEPOSIT/BYTE 203E=044DEPOSIT/BYTE 203F=0B3DEPOSIT/BYTE 20B0=0B0DEPOSIT/BYTE 20B2=044DEPOSIT/BYTE 20B4=0AADEPOSIT/BYTE 20B8=044DEPOSIT/BYTE 20B9=0B3DEPOSIT/BYTE 2107=0B0DEPOSIT/BYTE 2109=044DEPOSIT/BYTE 210D=010DEPOSIT/BYTE 2137=0AADEPOSIT/BYTE 213B=044UPDATEEXITSIT/BYTE 2107=0B0DEPOSI5UHDRIVERV2.424-AUG-1983 15:41 VAX-11 Macro V03-00//LIS UHDRIVER.MAR+SYS$LIBRARY:LIB.MLB/LIBRARY*port driver for the Emulex CS11 and CS21 DEV$M_AVL DEV$M_CCL DEV$M_IDV DEV$M_ODV DEV$M_REC DEV$M_TRMEXE$ALONONPAGED EXE$GL_ABSTIMIOC$ALOUBAMAPNIOC$LOADUBAMAPA IOC$MNTVER IOC$RETURNMMG$GL_SPTBASE  PATCH_AREA  PATCH_DESC PATCH_SIZE PRV$V_PHY_IOTTY$GB_DEFSPEED TTY$GB_PARITY TTY$GB_RSPEEDTTY$GL_DEFCHARTTY$GL_DEFCHAR2 TTY$GL_DPT TTY$GL_OWNUIC TTY$GW_DEFBUF TTY$GW_PROT UH$DDT ~ UH$DISCONNECT UH$DPT c UH$INITIAL v UH$INITLINE  UH$INTINP  UH$INTOUT  UH$STARTIO UNIT_DMA_SIZE VA$S_BYTEVA$S_VPN VA$V_BYTEVA$V_VPN . ABS . . BLANK .P$ABS$MPPPPPPPPPPPPPPPPPPP$$$105_PROLOGUEPPPQ4&84&4&&4&UHDRIVERQQQ 4 DEV$M_REC DEV$M_AVL8 DEV$M_IDV8 DEV$M_ODV8 DEV$M_TRM8 DEV$M_CCL88B TTY$GW_DEFBUFTTY$GL_DEFCHARTTY$GL_DEFCHAR2TTY$GB_DEFSPEED TTY$GB_RSPEED TTY$GB_PARITY TTY$GB_PARITY9: TTY$GW_DEFBUF<TTY$GL_DEFCHARTTY$GL_DEFCHAR2TTY$GB_DEFSPEED TTY$GB_RSPEEDR TTY$GW_PROT TTY$GL_OWNUIC 4&(4&L4&p4&0c4&<v4&P $$$115_DRIVERP IOC$RETURN IOC$RETURN IOC$RETURN IOC$RETURN IOC$RETURN IOC$RETURN IOC$RETURN IOC$MNTVER2&&P4~4:444{444#4^4^4^44 TTY$GL_DPTQ<PPQP`QQޯP`Qd 0PPPUޥPЀUШhP UNIT_DMA_SIZEQEXE$ALONONPAGEDP&Rh4& UNIT_DMA_SIZESSxSSSIOC$ALOUBAMAPNPu4ШhPVA$V_VPNVA$S_VPN%PRMMG$GL_SPTBASEQBah UNIT_DMA_SIZERRn VA$V_BYTE VA$S_BYTE%PRRlIOC$LOADUBAMAPAƴfd@0d`0 ިSQQRbS bRacSaЎU TTY$GL_DPTQ<PPQQϙaСХ$PС СxХ S4XxHPPpXnPiʏ@ŸQ! BOOT FROM UM0 AND STOP IN SYSBOOT TO ALTER PARAMETER VALUES.! D/G 0 AC0002 ! UM DISKE'D/G 1 FFE000 ! BASE OF UNIBUS I/O PAGE !D/G 2 3FDC0 ! CSR ADDRESS OFFSET/D/G 3 0 ! CONTROLLER UNIT = 0/#D/G 4 0 ! BOOT BLOCK LBN (UNUSED)+5D/G 5 1 ! SOFTWARE BOOT FLAGS (CONVERSATIONAL BOOT):.D/G E 200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP$START 200 ! START PRIMARY BOOTSTRAP200 ! ADDRESS OF WORK!$! UM1 BOOT COMMAND FILE - UM1BOO.CMD!-D/G 0 AC0002 ! UM DISK 'D/G 1 FFE000 ! BASE OF UNIBUS I/O PAGEL!D/G 2 3FDC0 ! CSR ADDRESS OFFSETD/G 3 1 ! CONTROLLER UNIT = 1O#D/G 4 0 ! BOOT BLOCK LBN (UNUSED)FD/G 5 0 ! SOFTWARE BOOT FLAGS .D/G E 200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP:$START 200 ! START PRIMARY BOOTSTRAP200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP:$START 200 ! START PRIMARY B!/! UM1 CONVERSATIONAL BOOT COMMAND FILE - UM1GEN >! BOOT FROM UM1 AND STOP IN SYSBOOT TO ALTER PARAMETER VALUES.! D/G 0 AC0002 ! UM DISKE'D/G 1 FFE000 ! BASE OF UNIBUS I/O PAGE !D/G 2 3FDC0 ! CSR ADDRESS OFFSET/D/G 3 1 ! CONTROLLER UNIT = 1/#D/G 4 0 ! BOOT BLOCK LBN (UNUSED)+5D/G 5 1 ! SOFTWARE BOOT FLAGS (CONVERSATIONAL BOOT):.D/G E 200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP$START 200 ! START PRIMARY BOOTSTRAP200 ! ADDRESS OF WORK!$! UM2 BOOT COMMAND FILE - UM2BOO.CMD!-D/G 0 AC0002 ! UM DISK 'D/G 1 FFE000 ! BASE OF UNIBUS I/O PAGEL!D/G 2 3FDC0 ! CSR ADDRESS OFFSETD/G 3 2 ! CONTROLLER UNIT = 2O#D/G 4 0 ! BOOT BLOCK LBN (UNUSED)FD/G 5 0 ! SOFTWARE BOOT FLAGS .D/G E 200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP:$START 200 ! START PRIMARY BOOTSTRAP200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP:$START 200 ! START PRIMARY B!/! UM2 CONVERSATIONAL BOOT COMMAND FILE - UM2GEN >! BOOT FROM UM2 AND STOP IN SYSBOOT TO ALTER PARAMETER VALUES.! D/G 0 AC0002 ! UM DISKE'D/G 1 FFE000 ! BASE OF UNIBUS I/O PAGE !D/G 2 3FDC0 ! CSR ADDRESS OFFSET/D/G 3 2 ! CONTROLLER UNIT = 2/#D/G 4 0 ! BOOT BLOCK LBN (UNUSED)+5D/G 5 1 ! SOFTWARE BOOT FLAGS (CONVERSATIONAL BOOT):.D/G E 200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP$START 200 ! START PRIMARY BOOTSTRAP200 ! ADDRESS OF WORK!$! UM3 BOOT COMMAND FILE - UM3BOO.CMD!-D/G 0 AC0002 ! UM DISK 'D/G 1 FFE000 ! BASE OF UNIBUS I/O PAGEL!D/G 2 3FDC0 ! CSR ADDRESS OFFSETD/G 3 3 ! CONTROLLER UNIT = 3O#D/G 4 0 ! BOOT BLOCK LBN (UNUSED)FD/G 5 0 ! SOFTWARE BOOT FLAGS .D/G E 200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP:$START 200 ! START PRIMARY BOOTSTRAP200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP:$START 200 ! START PRIMARY B!/! UM3 CONVERSATIONAL BOOT COMMAND FILE - UM3GEN >! BOOT FROM UM3 AND STOP IN SYSBOOT TO ALTER PARAMETER VALUES.! D/G 0 AC0002 ! UM DISKE'D/G 1 FFE000 ! BASE OF UNIBUS I/O PAGE !D/G 2 3FDC0 ! CSR ADDRESS OFFSET/D/G 3 3 ! CONTROLLER UNIT = 3/#D/G 4 0 ! BOOT BLOCK LBN (UNUSED)+5D/G 5 1 ! SOFTWARE BOOT FLAGS (CONVERSATIONAL BOOT):.D/G E 200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP$START 200 ! START PRIMARY BOOTSTRAP200 ! ADDRESS OF WORK!%! UMAx BOOT COMMAND FILE - UMABOO.CMDE! BOOT FROM UMAx F! >! THE UNIT NUMBER IS SPECIFIED BY DEPOSITING THE DESIRED VALUE*! IN R3 BEFORE INVOKING THIS COMMAND FILE.!SD/G 0 AC0002 ! UM DISK!'D/G 1 FFE000 ! BASE OF UNIBUS I/O PAGEL!D/G 2 3FDC0 ! CSR ADDRESS OFFSETK#D/G 4 0 ! BOOT BLOCK LBN (UNUSED)BD/G 5 0 ! SOFTWARE BOOT FLAGS.D/G E 200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP$START 200 ! START PRIMARY BOOTSTRAP200 ! ADDRESS OF WO0! UMAx CONVERSATIONAL BOOT COMMAND FILE - UMAGEN8! BOOT FROM UMAx AND STOP IN SYSBOOT TO ALTER PARAMETERS!I8! THE UNIT NUMBER IS SPECIFIED BY DEPOSITING THE DESIRED0! VALUE IN R3 BEFORE INVOKING THIS COMMAND FILE.! D/G 0 AC0002 ! UM DISK'D/G 1 FFE000 ! BASE OF UNIBUS I/O PAGE !D/G 2 3FDC0 ! CSR ADDRESS OFFSET #D/G 4 0 ! BOOT BLOCK LBN (UNUSED)05D/G 5 1 ! SOFTWARE BOOT FLAGS (CONVERSATIONAL BOOT)A.D/G E 200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP$START 200 ! START PRIMARY BOOTSTRAP200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BO 730UM0BOO.CMD  730UM0GEN.  730UM0XDT.  730UM1BOO.CMD 730UM2BOO.CMD 730UM3BOO.CMD 730UMABOO.CMD 730UMAGEN. 730UMAXDT. 750UM0BOO.CMD 750UM0GEN. 750UM1BOO.CMD 750UM1GEN. 750UM2BOO.CMD 750UM2GEN. 750UM3BOO.CMD 750UM3GEN. 750UMABOO.CMD 750UMAGEN. 750UMAXDT. 750UMBBOO.CMD 750UMBGEN.  750UMBXDT.! 780UM0BOO.CMD" 780UM0BOO.ILV# 780UM0GEN.$ 780UM0XDT.% 780UM1BOO.CMD& 780UM1GEN.' 780UM2BOO.CMD( 780UM2GEN.) 780UM3BOO.CMD* 780UM3GEN.+ 780UMAXDT., DBPATCH.COM- DBPATCH.V30. DBPATCH.V32/ DRPATCH.COM0 DRPATCH.V301 DRPATCH.V322 DRPATCH.V353 DRZAPVMB.COM4 DRZAPVMB.V305 DRZAPVMB.V326 EMULEX.COM7 EMULEXDR.COM8 EMULEXUH.COM9 EMULEXUM.COM: EMULEXUT.COM; LINKUH.COM< LINKUM.COM= LINKUT.COM> TTPATCH.COM? TTPATCH.V30@ TTPATCH.V32A UHDRIVER.OBJB UM0BOO.CMDCUM0GEN.D UM1BOO.CMDEUM1GEN.F UM2BOO.CMDGUM2GEN.H UM3BOO.CMDIUM3GEN.J UMABOO.CMDKUMAGEN.LUMAXDT.M UMBBOO.CMDNUMBGEN.O UMBTRM.OBJP UMBTVM.OBJQUMBXDT.R UMDRIVER.OBJS UMPATCHES.COMT UMZAPVMB.COMU UMZAPVMB.V30V UMZAPVMB.V32W UTDRIVER.OBJX UTPATCHES.COMY XXSABKUP.COMZOTSTRAP $START 200 ! START PRIMARY BOOTSTRAP200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BO&AP UMBTRM.OBJ;1 @= zڋ@IIo&AQ4: UMBTVM.OBJ;1 4Fiizڋ@JƊ&AR?v UMBXDT.;1 K쵞٪zڋ@LT$&AS  UMDRIVER.OBJ;1 "eҙe @Nz:&ATd UMPATCHES.COM;1  @.^@[&AUI UMZAPVMB.COM;1 `z8"x9"x@]#;&AVA UMZAPVMB.V30;1 `)0y`0y@_%&AWA UMZAPVMB.V32;1  )[y [y@cf&AX  UTDRIVER.OBJ;1 7`KR> @gb&AY< UTPATCHES.COM;1 !;!@t&AZT&&h XXSABKUP.COM;1 @Uc9S>%@u@BP@QQ6~Q^RBRR~BP`Q~CPa`ѬP<ϼϠϘXP`U<QxQQ<WQWϮ24 ύPSUhVRjReRPUBWFBSBBP@SS4У0T6Rb è PPh x RP@VR|VЬS<PxPP c7RNP c*c#ЬQaP   ccP  c cPPPRЬQPRPPRaPRa~H~qPR(ݬRRPϞP ݬP3}RT>DcXԢ4:PTP>@cPXP 00V4 }VX0Ч $&Ч<8@<2>$h5@P` ``4Ц4`5PIfPЬRP>@bX0ЬPԠ,4W,TЬRS>CbX:PSP>@bPXP0iVTTP.0'Xh]P7\NP<~ݠPPQPA1Ь P<@fP(^`VRVbgV ViφMg?V;iPРTРSRԠA:PViPTSRgVgujqVmjPaPRR^hD^hRVwPVRV^XhPRRjj~ϲPVV^hgϖgVʏ gV VV1iP<~Xի3V~JVP,nn V~|~|~~xiP(Ti0@kϡVVVЫPx`("kϽ(0ϴρϭ1<P|PаXPPjTuStP``RР PbQcPcPFcP "cP dQ dP cP `RcןD dP P<ЬP2Р SԠ S'У TcR bR ԣ cUSωjTSPϏRв,Qf|~`~ePV(D,nHݬVVP ςSЬQfcPI^OcPI2`QQP&aQ aRQ#fcPIIcQIЬP`aRcPЬVѬ (u,nfffSЬ UЬTЬQRWQUP.PUP0P9jPAPZ^Pa Pz PMP.P;:W&S*R LP;TU.fSRWS*R+$P%RP**SΐPɿæQUd*fRfU d-RUT TU,P Ѧ  R  aA0zZ9W70< R <R<R|P|SS@CUSU+2U-T)QUAUAQ&AUURzRPUPQSTPPP PP^ЬW~Ь ZЬVЬYЬ[~[PZ@Р@ZHQ@RR@RR *I%C g?; î PPƮPA`A` Ѯ R֮ ǮZPA`ZZ  VYԮ[3Z 1V ZPϼPJ,ϛPVV/SHOW=MEB/LIS:UMBTVM.LIS UMBTVM.MAR+DMA0:[SYSLIB]LIB.MLB/LIB- SC21/V BOOT DRIVER . ABS .e . BLANK .ePR$ABS$ EPPPPPPPPPPPPPPPPF BOOTDRIVR_4i(P44 BOOTDRIVR_2B4P9QѬ 1Q! THE UNIT NUMBER IS SPECIFIED BY DEPOSITING THE DESIRED VALUE*! IN R3 BEFORE INVOKING THIS COMMAND FILE.!D/G 0 AC0002 ! UM DISK'D/G 1 FBE000 ! BASE OF UNIBUS I/O PAGE!D/G 2 3FDC0 ! CSR ADDRESS OFFSETV#D/G 4 0 ! BOOT BLOCK LBN (UNUSED);D/G 5 7 ! SOFTWARE BOOT FLAGS (CONVERSATIONAL/DEBUG BOOT)U.D/G E 200 ! ADDRESS OF WORKING MEMORY + ^X200/LOAD VMB.EXE/START:200 ! LOAD PRIMARY BOOTSTRAP$START 200 ! START PRIMARY BOOTSTRAP200 ! ADD6UMDRIVERV 2.324-AUG-1983 10:13 VAX-11 Macro V03-00//LIS UMDRIVER.MAR+SYS$LIBRARY:LIB.MLB/LIBRARY- SC21/31 UNIBUS DISK DRIVER ACP$ACCESS ACP$DEACCESS ACP$MODIFY ACP$MOUNT ACP$READBLK ACP$WRITEBLKAT$_UBADC$_DISK DEV$M_AVL DEV$M_DIR DEV$M_ELG DEV$M_FOD DEV$M_IDV DEV$M_ODV DEV$M_RND DEV$M_SHRDT$_RM03DT$_RM05DT$_RM80DT$_RP06 DYN$C_CRB DYN$C_DDB DYN$C_DPT DYN$C_UCB ERL$DEVICERR ERL$DEVICTMO EXE$ABORTIO EXE$ALLOCBUFEXE$BUFFRQUOTA EXE$FINISHIOC EXE$IOFORK EXE$ONEPARM EXE$PWRTIMCHK EXE$QIODRVPKT EXE$READCHK EXE$SENSEMODE EXE$SETCHAR EXE$ZEROPARM IOC$APPLYECCIOC$DIAGBUFILLIOC$LOADUBAMAP IOC$MNTVER IOC$PURGDATAP IOC$RELCHAN IOC$RELDATAP IOC$RELMAPREG IOC$REQCOM IOC$REQDATAP IOC$REQMAPREG IOC$REQPCHANL IOC$RETURNIOC$UPDATRANSP IOC$WFIKPCH IOC$WFIRLCH PCB$L_JIB SS$_CTRLERR SS$_DATACHECK SS$_DRVERR SS$_FORMAT SS$_IVADDR SS$_IVBUFLEN SS$_MEDOFL SS$_NONEXDRV SS$_NORMAL SS$_OPINCOMPL SS$_PARITY SS$_TIMEOUT SS$_UNSAFE SS$_VOLINV SS$_WASECC SS$_WRITLCK UM$DDT  UM$INT . ABS . . BLANK .P$ABS$MPPPPPPPPPPPPPPPPPPPx$$$105_PROLOGUEPQ 4& DYN$C_DPT%AT$_UBA%84&c4&UMDRIVERQQQ DYN$C_DDB%F11 DYN$C_DDB% DYN$C_UCB%  DYN$C_UCB%4 DEV$M_FOD DEV$M_DIR8 DEV$M_AVL8 DEV$M_ELG8 DEV$M_SHR8 DEV$M_IDV8 DEV$M_ODV8 DEV$M_RND8 DYN$C_UCB%8DC$_DISK% DYN$C_UCB%: DYN$C_UCB%R DYN$C_UCB%p DYN$C_UCB%q DYN$C_CRB%( 4& DYN$C_CRB%0 4& DYN$C_CRB%<m 4& DYN$C_DDB%  4&P $$$115_DRIVERPq4 4<4 IOC$RETURN4 IOC$RETURN IOC$RETURN IOC$MNTVER2&AAEGIKMOSYiqys{kQY/.||T43P ACP$READBLK2, ACP$WRITEBLK2 ACP$ACCESS2 ACP$DEACCESS2` ACP$MODIFY2 ACP$MOUNT2 EXE$ZEROPARM2D EXE$ONEPARM2 EXE$SENSEMODE2 EXE$SETCHAR2 43լ < SS$_IVBUFLEN&P EXE$ABORTIO SS$_NORMAL&P EXE$FINISHIOClPЬQ EXE$READCHK QEXE$BUFFRQUOTA SS$_NORMALPK EXE$ALLOCBUF SS$_NORMALP< R,Q0(4&E(4&J(4&E(4&J(4&>(4&0;7441|1@Ŏś ŎS0oņS0z_44ŎQ< SS$_WASECC&PZLśťŤХLR},hТ8Ŝ* Ŏśņ 4644&4& S0,44S0#44< SS$_NORMAL&P1 R1 Ň2 Ň+R$ ŪDT$_RP06%9  S1Ŏ1<ŦPnPPQ?SPPXŶ@S" ŚQ IOC$APPLYECCЎPIOC$UPDATRANSPn11PIOC$UPDATRANSPŤťŤI Ś/@Sśť"ŤŤP@ϙŚƐť śśŚ11<ŴP<ŪQpSS0441 P< SS$_MEDOFL&P P< SS$_VOLINV&Pp< SS$_TIMEOUT&PXf< SS$_UNSAFE&PS]< SS$_OPINCOMPL&P ST< SS$_FORMAT&PSK< SS$_WRITLCK&P SB< SS$_IVADDR&PS6< SS$_DRVERR&P'S*< SS$_PARITY&PȁS0Q< SS$_DATACHECK&PR< SS$_NONEXDRV&P Q< SS$_CTRLERR&PPIOC$DIAGBUFILLڑ ņņ ХLSŦ2S0.44QЎP IOC$REQCOMХ Tд,TХLQС,QaQQ<<<<Ų<<<Š<Ţ<Ё  >RR  464  4&  4&  4&  4& dCRS<RRR=RS<RRRŵ dŵIOC$LOADUBAMAPȚŠŰdP>ŔQŖ2 ŔŵŖŖ@ŔŔŖоScTQdPУUQZX ХSХT 0U`RоSBUOZJcTxRSS S<PPPdQQSQ1Q-ZX ХSХT ŵBR^}P}R}TϹUes  T}EXE$GQ_SYSTIMEPPQR EXE$INSTIMQЎRxRQQAQQŴŤmU~ePP @@ڎŔQRR when ready"&$ IF KTYPE .EQS. "disk" THEN GOTO 1160$ HEADERS = 18)$ IF KTYPE .EQS. "TU58" THEN HEADERS = 20 $ DENS = ""3$ IF DEV_TYPE .EQ. 11 THEN DENS = "/DENSITY=SINGLE"G$ INITIALIZE'DENS/HEADERS='HEADERS/INDEX=BEGINNING 'DEVNAME' STABACKUPA$1160:$ MOUNT_FLAG = 0$ MOUNT/OVER=ID 'DEVNAME' $ GOTO 1180$1170:$ MOUNT_FLAG = 1$1180:&$ CREATE/DIRECTORY/LOG 'DEVNAME'['P1']$ !$$ ! Build volume A of the backup kit$ !%$ COPY SYS$SYSTEM:SYS.EXE SYS$UPDATE:2$ DEFINE/USER SYS$SYSTEM 'F$LOGICAL("SYS$UPDATE")' $ RUN SYS$SYSROOT:[SYSEXE]SYSGEN USE DEFAULTSET PFCDEFAULT 1SET GBLSECTIONS 20SET GBLPAGES 512SET MAXPROCESSCNT 12SET BALSETCNT 4SET IRPCOUNT 100SET WSMAX 1500SET NPAGEDYN 80000SET VIRTUALPAGECNT 2048SET SPTREQ 512SET SYSPAGING 0SET MPW_LOLIMIT 0SET MPW_WAITLIM 5000SET MPW_HILIM 5000SET PQL_DASTLM 12SET PQL_DDIOLM 12SET PQL_DWSDEFAULT 1500SET PQL_DWSQUOTA 1500SET PQL_DWSEXTENT 1500 SET PFRATH 20 SET PFRATL 0SET AWSMIN 5000 WRITE CURRENT$ IF KTYPE .EQS. "disk" THEN -8 COPY/CONTIGUOUS/ALLOC=4 NL: 'DEVNAME'['P1']SYSDUMP.DMP+$ COPYCT SYS$UPDATE:SYS.EXE 'DEVNAME'['P1'].$ COPYCT SYS$SYSTEM:INILOA.EXE 'DEVNAME'['P1'].$ COPYCT SYS$SYSTEM:SCSLOA.EXE 'DEVNAME'['P1']-$ FILE = F$SEARCH("SYS$SYSTEM:STASYSGEN.EXE")!$ IF FILE .NES. "" THEN GOTO 11906$ COPY LIB$SYSTEM:STASYSGEN.EXE SYS$UPDATE:SYSINIT.EXE $ GOTO 1195$1190:6$ COPY SYS$SYSTEM:STASYSGEN.EXE SYS$UPDATE:SYSINIT.EXE$1195:$ IF .NOT. UM THEN GOTO 1200$ TYPE SYS$INPUT( (patching STASYSGEN.EXE for UM support)$ ASSIGN/USER NL: SYS$OUTPUT:$ PATCH @UMPATCHES.V30$ ASSIGN/USER NL: SYS$OUTPUT:$ PATCH @UMPATCHES.V33$1200:$ IF .NOT. UT THEN GOTO 1210$ TYPE SYS$INPUT( (patching STASYSGEN.EXE for UT support)$ ASSIGN/USER NL: SYS$OUTPUT:$ PATCH @UTPATCHES.V30$ ASSIGN/USER NL: SYS$OUTPUT:$ PATCH @UTPATCHES.V33$1210:/$ COPYCT SYS$UPDATE:SYSINIT.EXE 'DEVNAME'['P1']$ !!$ ! use $COPY to move SYSBOOT.EXE$ !>$ COPY/CONTIG/TRUNC/LOG SYS$SYSTEM:SYSBOOT.EXE 'DEVNAME'['P1']$ IF KTYPE .NES. "TU58" THEN -1 COPYCT SYS$SYSTEM:SYSLOA780.EXE 'DEVNAME'['P1'] $ IF KTYPE .NES. "floppy" THEN -1 COPYCT SYS$SYSTEM:SYSLOA730.EXE 'DEVNAME'['P1'] $ IF KTYPE .NES. "floppy" THEN -1 COPYCT SYS$SYSTEM:SYSLOA750.EXE 'DEVNAME'['P1']($ IF KTYPE .EQS. "floppy" THEN GOTO 1240$ !$ ! use $COPY to move VMB.EXE$ !6$ COPY/CONTIG/TRUNC/LOG SYS$SYSTEM:VMB.EXE SYS$UPDATE:&$ IF KTYPE .NES. "disk" THEN GOTO 1230$ IF .NOT. UM THEN GOTO 1220$ TYPE SYS$INPUT" (patching VMB.EXE for UM support) $ @UMZAPVMB$1220:/$ IF (.NOT. DR) .AND. (.NOT. DB) THEN GOTO 1230$ TYPE SYS$INPUT. (patching VMB.EXE for expanded DR/DB support) $ @DRZAPVMB$1230::$ COPY/CONTIG/TRUNC/LOG SYS$UPDATE:VMB.EXE 'DEVNAME'['P1']$1240:$ IF KTYPE .EQS. "TU58" THEN -0 COPYCT SYS$SYSTEM:DDDRIVER.EXE 'DEVNAME'['P1'] $ IF KTYPE .EQS. "floppy" THEN -0 COPYCT SYS$SYSTEM:DXDRIVER.EXE 'DEVNAME'['P1']0$ COPYCT SYS$SYSTEM:TTDRIVER.EXE 'DEVNAME'['P1']($ IF KTYPE .EQS. "floppy" THEN GOTO 1280)$ DEFINE CSVMB$ 'DEVNAME'"[''P1']VMB.EXE"$ MCR WRITEBOOTCSVMB$1200$1280:&$ IF KTYPE .EQS. "disk" THEN GOTO 1300$ DISMOUNT 'DEVNAME'$ !4$ ! Initialize and mount the target device, volume B$ !J$ WRITE SYS$OUTPUT "Volume A of the new standalone backup kit is complete"N$ WRITE SYS$OUTPUT "Please place the second volume to build in drive ",DEVNAME$ TYPE SYS$INPUT?$ INQUIRE TEMP "(Enable write mode) Type when ready"$ HEADERS = 22)$ IF KTYPE .EQS. "TU58" THEN HEADERS = 23 $ DENS = ""3$ IF DEV_TYPE .EQ. 11 THEN DENS = "/DENSITY=SINGLE"G$ INITIALIZE'DENS/HEADERS='HEADERS/INDEX=BEGINNING 'DEVNAME' STABACKUPB$ MOUNT/OVER=ID 'DEVNAME'&$ CREATE/DIRECTORY/LOG 'DEVNAME'['P1']$ !$$ ! Build volume B of the backup kit$ !$1300:-$ FILE = F$SEARCH("SYS$SYSTEM:STABACKUP.EXE")!$ IF FILE .NES. "" THEN GOTO 13051$ COPYCT LIB$SYSTEM:STABACKUP.EXE 'DEVNAME'['P1'] $ GOTO 1306$1305:1$ COPYCT SYS$SYSTEM:STABACKUP.EXE 'DEVNAME'['P1']$1306:$ IF KTYPE .NES. "disk" THEN -. COPYCT SYS$SYSTEM:SCSLOA.EXE 'DEVNAME'['P1']*$ COPY SYS$SYSTEM:DBDRIVER.EXE SYS$UPDATE:$ IF .NOT. DB THEN GOTO 1310$ TYPE SYS$INPUT0 (patching DBDRIVER.EXE for expanded DB support) $ @DBPATCH$1310:0$ COPYCT SYS$UPDATE:DBDRIVER.EXE 'DEVNAME'['P1']$ IF KTYPE .EQS. "disk" THEN -0 COPYCT SYS$SYSTEM:DDDRIVER.EXE 'DEVNAME'['P1']$ IF .NOT. UM THEN -0 COPYCT SYS$SYSTEM:DLDRIVER.EXE 'DEVNAME'['P1']0$ COPYCT SYS$SYSTEM:DMDRIVER.EXE 'DEVNAME'['P1'] $ IF KTYPE .NES. "floppy" THEN -0 COPYCT SYS$SYSTEM:DQDRIVER.EXE 'DEVNAME'['P1']*$ COPY SYS$SYSTEM:DRDRIVER.EXE SYS$UPDATE:$ IF .NOT. DR THEN GOTO 1320$ TYPE SYS$INPUT0 (patching DRDRIVER.EXE for expanded DR support) $ @DRPATCH$1320:0$ COPYCT SYS$UPDATE:DRDRIVER.EXE 'DEVNAME'['P1']0$ COPYCT SYS$SYSTEM:DUDRIVER.EXE 'DEVNAME'['P1']0$ COPYCT SYS$SYSTEM:PUDRIVER.EXE 'DEVNAME'['P1']$ IF KTYPE .EQS. "disk" THEN -0 COPYCT SYS$SYSTEM:DXDRIVER.EXE 'DEVNAME'['P1']$ IF KTYPE .EQS. "disk" THEN -0 COPYCT SYS$SYSTEM:DYDRIVER.EXE 'DEVNAME'['P1']0$ COPYCT SYS$SYSTEM:TFDRIVER.EXE 'DEVNAME'['P1']0$ COPYCT SYS$SYSTEM:TMDRIVER.EXE 'DEVNAME'['P1']$ IF .NOT. UT THEN -0 COPYCT SYS$SYSTEM:TSDRIVER.EXE 'DEVNAME'['P1']0$ COPYCT SYS$SYSTEM:LCDRIVER.EXE 'DEVNAME'['P1']0$ COPYCT SYS$SYSTEM:LPDRIVER.EXE 'DEVNAME'['P1']$ IF UM THEN -0 COPYCT SYS$UPDATE:UMDRIVER.EXE 'DEVNAME'['P1']$ IF UT THEN -0 COPYCT SYS$UPDATE:UTDRIVER.EXE 'DEVNAME'['P1']%$ IF MOUNT_FLAG .EQ. 1 THEN GOTO 1340 $ DISMOUNT 'DEVNAME'$ 1340:F&$ IF KTYPE .EQS. "disk" THEN GOTO 1350$ TYPE SYS$INPUT6 Volume B of the new standalone backup kit is complete $ GOTO 1360P$1350:$ TYPE SYS$INPUT* The new standalone backup kit is complete$1360:$ GOTO CLEAN_UPr$ !n,$ ! Error exit, display message and clean up$ !7 $ERR_EXIT:$ TYPE SYS$INPUT Error exit - kit is incomplete$ ! ,$ ! Clean up files and remount Emulex volume$ ! $CLEAN_UP:$ TYPE SYS$INPUT( (clean up files, ignore error messages)$ ON ERROR THEN CONTINUE$ ON CONTROL_Y THEN CONTINUE,$ IF UM THEN DELETE SYS$UPDATE:UMPATCHES.*;*+$ IF UM THEN DELETE SYS$UPDATE:UMDRIVER.*;*3+$ IF UM THEN DELETE SYS$UPDATE:UMZAPVMB.*;*1+$ IF UM THEN DELETE SYS$UPDATE:LINKUM.COM;*A,$ IF UT THEN DELETE SYS$UPDATE:UTPATCHES.*;*+$ IF UT THEN DELETE SYS$UPDATE:UTDRIVER.*;*=+$ IF UT THEN DELETE SYS$UPDATE:LINKUT.COM;*N4$ IF UM .OR. UT THEN DELETE SYS$UPDATE:SYSINIT.JNL;*$ DELETE SYS$UPDATE:SYS.EXE;*!$ DELETE SYS$UPDATE:SYSINIT.EXE;*ND$ IF DR THEN DELETE SYS$UPDATE:DRPATCH.*;*,SYS$UPDATE:DRDRIVER.JNL;*D$ IF DB THEN DELETE SYS$UPDATE:DBPATCH.*;*,SYS$UPDATE:DBDRIVER.JNL;*3$ IF DR .OR. DB THEN DELETE SYS$UPDATE:DRZAPVMB.*;*E $ DELETE SYS$UPDATE:DBDRIVER.*;* $ DELETE SYS$UPDATE:DRDRIVER.*;*:$ IF KTYPE .NES. "floppy" THEN DELETE SYS$UPDATE:VMB.EXE;*$ TYPE SYS$INPUT8 Please reinsert the Emulex volume in the console drive.)$ INQUIRE TEMP "Type when ready"E$ MOUNT CSA1:/OV=IDE8 Please reinsert the