From: SMTP%"DSJ@WKUVX1.WKU.EDU" 7-FEB-1995 12:27:51.51 To: EVERHART CC: Subj: OCTOBER94.DEBUG X-FileServer: Digital Systems Journal File Server Date: Tue, 07 Feb 1995 11:24:48 CST Sender: DSJ-Mgr@WKUVX1.WKU.EDU Errors-To: DSJ-Mgr@WKUVX1.WKU.EDU Warnings-To: <> From: DSJ-Mgr@WKUVX1.WKU.EDU Reply-To: DSJ@WKUVX1.WKU.EDU Subject: OCTOBER94.DEBUG To: EVERHART@arisia.gce.com $! ------------------ CUT HERE ----------------------- $ v='f$verify(f$trnlnm("SHARE_UNPACK_VERIFY"))' $! $! This archive created: $! Name : DEBUG $! By : Hunter Goatley $! Date : 7-NOV-1994 09:58:25.65 $! Using: VMS_SHARE 8.5-1, (C) 1993 Andy Harper, Kings College London UK $! $! Credit is due to these people for their original ideas: $! James Gray, Michael Bednarek $! $! To unpack this archive: $! Minimum of VMS 4.4 (VAX) / OpenVMS 1.0 (Alpha) is required. $! Remove the headers of the first part, up to `cut here' line. $! Execute file as a command procedure. $! $! The following file(s) will be created after unpacking: $! 1. DEBUG.DSJ;1 $! $ set="set" $ set symbol/scope=(nolocal,noglobal) $ f="SYS$SCRATCH:."+f$getjpi("","PID")+";" $ if f$trnlnm("SHARE_UNPACK") .nes. "" then $ - f=f$parse("SHARE_UNPACK_TEMP",f) $ e="write sys$error ""%UNPACK"", " $ w="write sys$output ""%UNPACK"", " $ if .not. f$trnlnm("SHARE_UNPACK_LOG") then $ w = "!" $ if f$getsyi("CPU") .gt. 127 then $ goto start $ ve=f$getsyi("version") $ if ve-f$extract(0,1,ve) .ges. "4.4" then $ goto start $ e "-E-OLDVER, Must run at least VMS 4.4" $ v=f$verify(v) $ exit 44 $unpack:subroutine!P1=file,P2=chksum,P3=attrib,P4=size,P5=fileno,P6=filetotal $ if f$parse(P1) .nes. "" then $ goto dirok $ dn=f$parse(P1,,,"DIRECTORY") $ w "-I-CREDIR, Creating directory ''dn'" $ create/dir 'dn' $ if $status then $ goto dirok $ e "-E-CREDIRFAIL, Unable to create ''dn' File skipped" $ delete 'f'* $ exit $dirok: $ x=f$search(P1) $ if x .eqs. "" then $ goto file_absent $ e "-W-EXISTS, File ''P1' exists. Skipped" $ delete 'f'* $ exit $file_absent: $ w "-I-UNPACK, Unpacking ", P5, " of ", P6, " - ", P1, " - ", P4, " Blocks" $ n=P1 $ if P3 .nes. "" then $ n=f $ if .not. f$verify() then $ define/user sys$output nl: $ EDIT/TPU/NOSEC/NODIS/COM=SYS$INPUT/NOJOURNAL 'f'/OUT='n' PROCEDURE GetHex(s,p)LOCAL x1,x2;x1:=INDEX(t,SUBSTR(s,p,1))-1;x2:=INDEX(t, SUBSTR(s,p+1,1))-1;RETURN 16*x1+x2;ENDPROCEDURE;PROCEDURE SkipPartsep LOCAL m; LOOP m:=MARK(NONE);EXITIF m=END_OF(CURRENT_BUFFER);DELETE(m);EXITIF INDEX( ERASE_LINE,"-+-+-+-+-+-+-+-+")=1;ENDLOOP;ENDPROCEDURE; PROCEDURE ProcessLine LOCAL c,s,l,b,n,p;s := ERASE_LINE;c := SUBSTR(s,1,1);s := s-c;IF c = "X" THEN SPLIT_LINE; ENDIF;MOVE_HORIZONTAL(-1);l := LENGTH(s);p := 1;LOOP EXITIF p > l;c := SUBSTR(s,p,1);p := p+1;CASE c FROM ' ' TO '`' ['`'] : COPY_TEXT(ASCII(GetHex(s,p))); p:=p+2;[' ']: p:=p+1;[INRANGE,OUTRANGE] : COPY_TEXT(c);ENDCASE;ENDLOOP;ENDPROCEDURE;PROCEDURE Decode(b)LOCAL m; POSITION(BEGINNING_OF(b));LOOP m:=MARK(NONE);EXITIF m=END_OF(b);DELETE(m); IF INDEX(CURRENT_LINE,"+-+-+-+-+-+-+-+-")=1 THEN SkipPartSep;ELSE ProcessLine; MOVE_HORIZONTAL(1);ENDIF;ENDLOOP;ENDPROCEDURE;SET(FACILITY_NAME,"UNPACK");SET( SUCCESS,OFF);SET(INFORMATIONAL,OFF);t:="0123456789ABCDEF";f:=GET_INFO( COMMAND_LINE,"file_name");o:=CREATE_BUFFER(f,f);Decode(o);WRITE_FILE(o, GET_INFO(COMMAND_LINE,"output_file"));QUIT; $ if p3 .eqs. "" then $ goto dl $ open/write fdl &f $ write fdl "RECORD" $ write fdl P3 $ close fdl $ w "-I-CONVRFM, Converting record format to ", P3 $ convert/fdl='f' 'f'-1 'f' $ fa=f$getdvi(f$parse(f),"ALLDEVNAM") $ Pa=f$getdvi(f$parse(P1),"ALLDEVNAM") $ if fa .eqs. Pa then $ rename &f 'f$parse(P1)' $ if fa .nes. Pa then $ copy &f 'f$parse(P1)' $dl: delete 'f'* $ checksum 'P1' $ if checksum$checksum .nes. P2 then $ - e "-E-CHKSMFAIL, Checksum of ''P1' failed." $ exit $ endsubroutine $start: $! $ create 'f' X#define`20module_name`20LOAD_XDELTA X#define`20module_ident`20"V1.0" X/* X`20* X`20*`20`20Program:`09LOAD_XDELTA.C X`20* X`20*`20`20Author:`09Hunter`20Goatley,`20goathunter@WKUVX1.WKU.EDU X`20* X`20*`20`20Date:`09June`2022,`201994 X`20* X`20*`20`20Abstract:`09Load`20XDELTA`20on`20a`20running`20VAX`20system. X`20* X`20*`20`20Modified`20by: X`20* X`20*`0901-000`09`09Hunter`20Goatley`09`0922-JUN-1994`2011:20 X`20* X`20*/ X#module`20module_name`20module_ident X X#include`20 X#include`20 X#include`20 X X/*`20External`20Routines`20*/ X Xextern`20LDR$LOAD_IMAGE(); Xextern`20INI$BRK(); X X/*`20Forward`20Routines`20*/ Xint`20init_ini_brk`20(void); X Xstatic`20char`20xdelta_image`5B`5D`20=`20"SYS$LOADABLE_IMAGES:SYSTEM_DEBUG.EXE V"; X X`0C Xlong`20int`20main`20(void) X`7B X X`20`20struct`20dsc$descriptor_s`20xdelta; X X`20`20struct`20image_info_array`20`7B`09`09/*`20The`20image`20information`20ar Vray`09*/ X`20`20`20`20char`20*image_address;`09`09/*`20returned`20by`20LDR$LOAD_IMAGE() V`09*/ X`20`20`20`20long`20int`20long1; X`20`20`20`20long`20int`20long2; X`20`20`7D`20image_info; X X`20`20struct`20`7B`09`09`09`09/*`20The`20LDR$LOAD_IMAGE`20argument`20list`20*/ V X`20`20`20`20long`20`20int`20`20argno; X`20`20`20`20struct`20dsc$descriptor_s`20*filename; X`20`20`20`20long`20int`20flags; X`20`20`20`20struct`20image_info_array`20*image_info_ptr; X`20`20`7D`20arglist; X X`20`20register`20unsigned`20long`20int`20status; X X`20`20/*`20`20Build`20the`20descriptor`20for`20the`20image`20name`20*/ X`20`20xdelta.dsc$w_length`20=`20sizeof(xdelta_image)-1; X`20`20xdelta.dsc$b_dtype`20=`20DSC$K_DTYPE_T; X`20`20xdelta.dsc$b_class`20=`20DSC$K_CLASS_S; X`20`20xdelta.dsc$a_pointer`20=`20xdelta_image; X X`20`20/*`20`20Set`20up`20the`20argument`20list`20*/ X`20`20arglist.argno`09`09=`203; X`20`20arglist.filename`09=`20`26xdelta; X`20`20arglist.flags`09`09=`201; X`20`20arglist.image_info_ptr`20=`20`26image_info; X`20`20`20`20 X`20`20/*`20`20Load`20the`20image`20in`20memory`20*/ X`20`20status`20=`20sys$cmexec`20(LDR$LOAD_IMAGE,`20`26arglist); X X X`20`20/*`20`20Put`20a`20BPT`20instruction`20at`20INI$BRK`20`20*/ X`20`20arglist.argno`20=`200; X`20`20if`20(status`20`26`201) X`20`20`20`20`20status`20=`20sys$cmkrnl`20(init_ini_brk,`20`26arglist); X X`20`20return(status); X X`7D X X= X Xint`20init_ini_brk`20(void) X`7B X`20`20`20`20unsigned`20char`20*ptr; X X`20`20`20`20ptr`20=`20(unsigned`20char`20*)`20INI$BRK;`09`09/*`20Point`20to`20 VINI$BRK`20*/ X`20`20`20`20(*ptr)`20=`20OP$_BPT;`09`09`09`09/*`20Make`20it`20a`20BPT`20instru Vction`20*/ X X`20`20`20`20return(SS$_NORMAL); X`7D X X= X X X#define`20module_name`20SETBREAK X#define`20module_ident`20"V1.0" X/* X`20* X`20*`20`20Program:`09SETBREAK.C X`20* X`20*`20`20Author:`09Hunter`20Goatley,`20goathunter@WKUVX1.BITNET X`20* X`20*`20`20Date:`09July`2011,`201992 X`20* X`20*`20`20Abstract:`09Toggle`20value`20of`20EXE$GL_SITESPEC`20on`20a`20running V`20system. X`20* X`20*`20`20Modified`20by: X`20* X`20*`0901-000`09`09Hunter`20Goatley`09`0911-JUL-1992`2014:00 X`20* X`20*/ X#if`20defined(__DECC)`20`7C`7C`20defined(__DECCXX) X#pragma`20module`20module_name`20module_ident X#else X#module`20module_name`20module_ident X#endif X X#include`20 X#include`20 X#include`20 X X#if`20defined(__DECC)`20`7C`7C`20defined(__DECCXX) X#pragma`20extern_model`20strict_refdef`09`09/*`20This`20is`20how`20you`20do`20 V*/ Xextern`20EXE$GL_SITESPEC;`09`09`09`09/*`20globalref`20in`20DEC`20C`20*/ X#else Xglobalref`20EXE$GL_SITESPEC; X#endif X Xint`20kernel_toggle`20(void); X X= X Xlong`20int`20main`20(void) X`7B X`20`20return`20(sys$cmkrnl`20(kernel_toggle,`200));`09/*`20Goto`20kernel`20mod Ve`20to`20toggle`20*/ X`7D X Xint`20kernel_toggle`20(void) X`7B X`20`20`20`20EXE$GL_SITESPEC`20=`20(EXE$GL_SITESPEC`20==`200`20?`201`20:`200); V`09/*`20Toggle`20it!`20*/ X`20`20`20`20return`20(SS$_NORMAL); X`7D X $ call unpack DEBUG.DSJ;1 1143090333 "" 7 1 1 $ v=f$verify(v) $ exit