From: SMTP%"henkes@venus.RZ-Berlin.MPG.DE" 18-MAR-1991 11:14:57.22 To: tihor@acf3.NYU.EDU CC: Subj: Re: VAXstation 3100 remote boot Received: from acf3.NYU.EDU by ACF1.NYU.EDU with SMTP; Mon, 18 Mar 1991 11:14:50 EST Received: from venus.RZ-Berlin.MPG.DE by acf3.NYU.EDU (5.61/1.34) id AA22806; Mon, 18 Mar 91 11:14:40 -0500 Date: Mon, 18 Mar 1991 17:14:58 +0100 From: henkes@venus.RZ-Berlin.MPG.DE (Donald Henkes) To: tihor@acf3.NYU.EDU Cc: henkes@venus.RZ-Berlin.MPG.DE Message-Id: <00945ccd.358162a0.4606@venus.RZ-Berlin.MPG.DE> Subject: Re: VAXstation 3100 remote boot Hi, You asked for it :-) Sorry for the delay. These are not utilities with bells and whizzles, more some kind of where-to-PEEK-and-POKE instructions. Use at your own risk.... CHECKPVAX.COM - SETBOOT and SHOWBOOT will probably crash everything, which is not a PAVX. CHECKPVAX will tell you so. SHOWBOOT.MAR - display current boot device SETBOOT.MAR - set boot device. MC somewhere:SETBOOT ESA0 to be linked with SYS$SYSTEM:SYS.STB Have fun. Donald Henkes ---- CHECKPVAX.COM --------------------------------------------------- $ PVAX == "FALSE" $ pr$_sid_typ420 = 10 $ pr$_xsid_cv_420 = 4 $ if f$getsyi("CPU") .ne. pr$_sid_typ420 then goto NoPVAX $ if f$getsyi("XCPU") .ne. pr$_xsid_cv_420 then goto NoPVAX $ PVAX == "TRUE" $ exit $NoPVAX: $ write sys$output "This is not a PVAX." $ exit ----------------------------------------------------------------------- ---- SHOWBOOT.MAR ----------------------------------------------------- .LIBRARY /SYS$LIBRARY:LIB/ $KA420DEF $SSDEF BootDevice: .BLKB 16 ; ASCIC ControlString: .ASCID /Current Boot Device : "!AC"/ BufferDescr: .WORD 40,0 .ADDRESS Buffer OutDescr: .BLKW .WORD 0 .ADDRESS Buffer Buffer: .BLKB 40 .ENTRY ShowBoot,^M $CMKRNL_S ROUTIN=ReadBoot BLBC R0,Return $FAO_S CTRSTR=ControlString, - OUTLEN=OutDescr, - OUTBUF=BufferDescr, - P1 = #BootDevice BLBC R0,Return PUSHAW OutDescr CALLS #1,G^LIB$PUT_OUTPUT Return: RET .ENTRY ReadBoot,^M MOVL EXE$GL_CPUNODSP,R2 CLRL R0 10$: MOVL KA420$B_BOODEV_LEN(R2)[R0],R1 EXTZV #2,#8,R1,R1 MOVB R1,BootDevice[R0] AOBLEQ #15,R0,10$ MOVL #SS$_NORMAL,R0 RET .END ShowBoot ----------------------------------------------------------------------- ---- SETBOOT.MAR ------------------------------------------------------ .LIBRARY /SYS$LIBRARY:LIB/ $KA420DEF $SSDEF .MACRO DynString .WORD 0 .BYTE 0 .BYTE DSC$K_CLASS_D .ADDRESS 0 .ENDM CLI_Parameter: DynString .ENTRY SetBoot,^M PUSHAL CLI_Parameter CALLS #1,G^LIB$GET_FOREIGN BLBC R0,Return TSTW CLI_Parameter BEQLU Return $CMKRNL_S ROUTIN=WriteBoot Return: RET .ENTRY WriteBoot,^M MOVL EXE$GL_CPUNODSP,R2 CLRL R0 CLRL R1 MOVAB @CLI_Parameter+4,R3 INSV CLI_Parameter,#2,#4,R1 MOVL R1,KA420$B_BOODEV_LEN(R2) 10$: INSV (R3),#2,#8,R1 INCB R3 MOVL R1,KA420$B_BOODEV(R2)[R0] AOBLEQ #14,R0,10$ MOVL #SS$_NORMAL,R0 RET .END SetBoot -----------------------------------------------------------------------