From: SMTP%"chris@ccastat.demon.co.uk" 24-JUL-1996 14:20:28.65 To: everhart@star.zko.dec.com, ARNE@ko.hhs.dk, canellis@apache.brooks.af.mil, SCANDORA@cmt.anl.gov CC: Subj: SDLIFDL.1-OF-4 $! ------------------ CUT HERE ----------------------- $ v='f$verify(f$trnlnm("SHARE_UNPACK_VERIFY"))' $! $! This archive created: $! Name : SDLIFDL $! By : chris@ccastat.demon.co.uk $! Date : 24-JUL-1996 15:34:03.60 $! Using: VMS_SHARE 8.4, (C) 1993 Andy Harper, Kings College London UK $! $! Credit is due to these people for their original ideas: $! James Gray, Michael Bednarek $! $!+ THIS PACKAGE DISTRIBUTED IN 4 PARTS, TO KEEP EACH PART $! BELOW 30 BLOCKS $! $! TO UNPACK THIS SHARE FILE, CONCATENATE ALL PARTS IN ORDER $! AND EXECUTE AS A COMMAND PROCEDURE ( @name ) $! $! THE FOLLOWING FILE(S) WILL BE CREATED AFTER UNPACKING: $! 1. ALPHA_SDLIFDL.OPT;2 $! 2. BUILD_SDLIFDL.COM;5 $! 3. SDLIFDL.OBJ;10 $! 4. SDLIFDL.PAS;7 $! $ set="set" $ set symbol/scope=(nolocal,noglobal) $ f=f$parse("SHARE_UNPACK_TEMP","SYS$SCRATCH:."+f$getjpi("","PID")) $ 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=filename, P2=checksum, P3=attributes,P4=size $ 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(b);DELETE(m);EXITIF INDEX(ERASE_LINE, "-+-+-+-+-+-+-+-+")=1;ENDLOOP;ENDPROCEDURE;PROCEDURE ProcessLine LOCAL c,s,l,b, n,p;c := ERASE_CHARACTER(1);s := ERASE_LINE;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 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");b:= CREATE_BUFFER(f,f);Decode;WRITE_FILE(b,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 &P1 $dl: delete 'f'* $ checksum 'P1' $ if checksum$checksum .nes. P2 then $ - e "-E-CHKSMFAIL, Checksum of ''P1' failed." $ exit $ endsubroutine $start: $! $ create 'f' Xsdlifdl Xsdlmsg`09!`20message`20object`20(use`20message`20to`20compile`20sdlmsg.msg) Xuniversal=sdl$output $ call unpack ALPHA_SDLIFDL.OPT;2 138025365 "" 1 1 4 $! $ create 'f' X$`20type/page`20sys$input X XThis`20SDL`20DECforms`20IFDL`20backend`20has`20been`20compiled`20on`20VAX,`20V VMS`206.1,`20and`20should Xwork`20with`20SDL`20from`20the`20Freeware`20V2.0`20disk. X XIt`20generates`20a`20'main'`20file,`20of`20the`20same`20name`20as`20the`20inpu Vt,`20and`20subsidiary`20files Xcalled`20-.ifdl,`20provided`20the`20output`20file`20name`20i Vs`20not`20specified Xon`20the`20command`20line`20(if`20it`20is,`20you'll`20get`20lots`20of`20files V`20of`20the`20same`20name). X XThe`20somewhat`20non-standard`20behaviour`20of`20creating`20lots`20of`20output V`20files`20makes`20it Xmore`20usable`20for`20us,`20since`20DECforms`20needs`20to`20be`20able`20to`20i Vnclude`20structures Xseparately. X XIt`20only`20translates`20item`20`26`20structure`20declarations`20-`20the`20res Vt`20are`20left`20as Xcomments. X XIt's`20quite`20new,`20so`20I'd`20appreciate`20any`20feedback`20on`20bugs`20and V`20enhancements. X X23-MAY-1996`20V1.00-01 X`09assist`20with`20back-translation; X`09standardise`20build`20to`20work`20elsewhere; X`09insert`20group`20to`20avoid`20occurs`20on`20a`20data`20item X X`204-JUN-1996`20V1.01 X`09change`20leading`20'_'`20to`20X`20to`20satisfy`20Forms X X24-JUL-1996`20V1.01-01 X`09use`20nod$v_unsigned`20to`20correctly`20identify`20signed`20numbers X`09Make`20signed`20quadword`20ADT X`09Handle`20unnamed`20variant`20introducer X`09Truncate`20illegally`20long`20filenames X XChris`20Sharman,`20CCA`20Stationery,`20Eastway,`20Fulwood,`20Preston,`20PR2`20 V9WS,`20ENGLAND. Xchris@ccagroup.co.uk X$`20ver`20=`20f$verify(1) X$! X$`20def/nolog`20source`20`5B`5D,disk$freewarev20:`5Bsdl.src`5D X$`20message`20source:sdlmsg X$`20sdl/language=pascal`20source:sdlnodef,sdltypdef,sdlshr X$`20pascal/environment/noobject`20source:sdlnodef,sdltypdef,sdlshr X$`20pascal`20sdlifdl X$`20link/share`20alpha_sdlifdl/opt X$`20deassign`20source X$!`20'f$verify(ver)' $ call unpack BUILD_SDLIFDL.COM;5 1634456464 "" 3 2 4 $! $ create 'f' X`00`00`00`00`02`07SDLIFDL`08V1.01-0124-Jul-1996`2015:3124-Jul-1996`2015:31 X`00`01DEC`20Pascal`20V5.4-41 X`05`F1`0E`BC`00`06`00`00`00`07SDLIFDL X`02`04`00`00P`EF`00`00`00`00A`00`00`00`01`00`00`00`04OUTFQ`03`00`00`00`EE`00 V`00`00`00A`00`00`00`01`00`00`00`05OUTF1Q`02`00`00`00`FA`04`00rootQ`04`00`00`00 V`F7`07`00commentQ`01`00`00`00`F9`05`00constQ`03`00`00`00`F9`05`00entryQ`03`00 V`00`00`FA`04`00itemQ`04`00`00`00`F8`06`00moduleQ`02`00`00`00`FA`04`00parmQ`04 V`00`00`00`F9`05`00dummyQ`03`00`00`00`FB`03`00objQ`05`00`00`00`FA`04`00headQ`04 V`00`00`00`FA`04`00typeQ`04`00`00`00`FB`03`00endQ`05`00`00`00`FA`04`00condQ`04 V`00`00`00`F7`07`00literalQ`01`00`00`00`FA`04`00symbQ`06`00`00`00`F7`20Created V`20Q`03`00`00`00`E3`20by`20OpenVMS`20SDL`20IFDL`20V1.01-01Q`03`00`00`00`F7`20S Vource:`20Q`03`00`00`00`FB.IFDLQ`03`00`00`00`E7`7B###Module/0/SDL_Include:Q`03 V`00`00`00`CA###`7D*Unk(`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00 V`00`00`00`00`00`00`00`00`00`00`00`00`00`20(*unknown*)`20(Q`02`00`00`00`F2`20Va Vrying`20`7B`20`7D`20`7DQ`02`00`00`00`F3`20Occurs`20*Var*Q`03`00`00`00`F2`20Occ Vurs`20`20Base`20Q`02`00`00`00`E1`20Occurs`20*UnkIFDLdeclaredforwardQ`01`00`00 V`00`F9see`20`7B## X`02`E6#End_Module/0/SDL_Include:Q`03`00`00`00`BA###`7D`04@`00`00`00`00`00`00 V`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00FD`00 V`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00 V`00`00`00`7B`20Q`02`00`00`00`FA`20node`20Q`02`00`00`00`CE`7B`20*Unsupported* V`20`20node`20`20(`20`7D`7B`20Group`20`7B`20End`20Group`20`7B`20`20`7DQ`02`00 V`00`00`F2`7B`20Union`20Group`20Q`02`00`00`00`F7subfield`20Q`03`00`00`00`E5End V`20Group`20`7B`20`20`7D`01`01`FC`07`9E`CE`C8`FE`5E`D4`AD`F8`9E`00`0BPAS$HANDLE VR`1C`80m`D0`AC`0CP`B1`60`8F`FF`00`1B`00`00`09`B0`60`CD`C8`FE(`60`A0`02`CD`CA V`FE`D1l`04`1F`00`7D`BC`10`AD`F0<`AD`F0P`C0`02P`C2P`5E`D0`AD`F4P`D0`5EQ`B0`60a( V`81`A0`02a`D0`5E`AD`F4`D1l`05`1F`00`7D`BC`14`AD`E8<`AD`E8P`C0`02P`C2P`5E`D0`AD V`ECP`D0`5EQ`B0`60a(`81`A0`02a`D0`5E`AD`EC`D1l`06`1F`00`90`BC`18V`D0`5EW`DD`00 V`DD`00`D0`8F`11`00`0E`01`AD`E0`F4`9E`AD`CC`AD`E4`9F`AD`E0`DD`00`FB`04`00`0ASYS V$ASCTIM`1C`D9`D1l`06`1F`00`D1`06l`1B`00`00`0F`E9V`00`D0`AC`04R`D1`04l`1B`00`00 V`0F`D0`AD`F4P`9F`A0`02`DD`60`DDR`FB`03`00`10PAS$WRITE_STRING`1C`FC`DDR`FB`01 V`00`0CPAS$WRITELN2`1C`ED`D1`04l`1B`00`00`0F`B1`00`AD`F0`1B`00`00`09`D0`AD`F4P V X`02`80`B4`60(`80n`60`B4`CD`C8`FE(`00n`CD`CA`FE`11`00`01`D1l`05`1F`00`D1`05l`1B V`00`00`0F`D0`AD`ECP-`60`A0`02`20`00n`13`00`D1`05l`1B`00`00`0F`D0`AD`ECX Subject: SDLIFDL.1-OF-4