Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

SYMBOLS, part 03/04

4 views
Skip to first unread message

Ferry Bolhar-Nordenkampf

unread,
Jan 28, 1997, 3:00:00 AM1/28/97
to

Submitted-by: Ferry Bolhar-Nordenkampf <b...@adv.magwien.gv.at>
Posting-number: Volume 8, Issue 6
Archive-name: symbols/part03

-+-+-+-+-+-+-+-+ START OF PART 3 -+-+-+-+-+-+-+-+
X`20`20`20`20`20`20`20`20if`20(lib)`20defobj.dsc$a_pointer`20=`20".OLB";
X`20`20`20`20`20`20`20`20/*`20Files`20durchgehen`20*/
X`20`20`20`20`20`20`20`20for(;;)`20`7B`20/*`20Schleife`20mit`20lib$find_file`20
V*/
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20fulnam.dsc$w_length`20=`20size
Vof`20(fulnambuf);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20status`20=`20lib$find_file`20(
V`26filnam,`20`26fulnam,`20`26contex,`20
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20
V`20`20`20`20`20`20`20`20`20`20`20`20`20`20filedefaults,`200,`20`26stv,`200);
X`20`20`20`20`20`20`20`20J`20`20`20`20`20`20`20if`20(status`20==`20RMS$_NMF)`20
Vbreak;
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20pos`20=`20strchr`20(fulnambuf,
V`20'`20');
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20if`20(pos`20!=`20NULL)`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20*pos
V`20=`20'`5C0';
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20fulnam
V.dsc$w_length`20=`20pos`20-`20fulnambuf;
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20if`20(status`20!=`20RMS$_NORMA
VL)`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20putmsg
V`20(5,`20SYMBOLS$_OPENINFAIL,1,`20`26fulnam,`20status,`20stv);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20badfil
Ves++;
X`20`20`20`20`20`20`20`20J`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20continue
V;
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20if`20(first_file`5B0`5D`20==
V`20'`5C0')`20`7B`20`20/*`20String`20ist`20leer`20*/
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20m
Verke`20mir`20ersten`20Filenamen`20*/
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20strncp
Vy`20(first_file,`20fulnambuf,`20255);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D`20else`20if`20(strncmp`20(
Vfirst_file,`20fulnambuf,`20255)`20==`200)`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20d
Vas`20File`20war`20schon,`20breche`20ab`20*/
X`20`20`20`20`20`20`20`20J`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20break;
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20if`20(datei`20(img,`20lib))`20
V`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20total_
Vmodule.cnt`20+=`20file_module.cnt;
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20total_
Vmodule.matched`20+=`20file_module.matched;
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20total_
Vsym.cnt`20+=`20file_sym.cnt;
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20total_
Vsym.matched`20+=`20file_sym.matched;
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20filecount++;
X`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20lib$find_file_end`20(`26contex);
X`20`20`20`20`20`20`20`20synopsis`20(lib,`20filecount,`20total_module,`20total_
Vsym);
X`7D
X#undef`20MYNAME
X
$ call unpack DIG.C;1 4160782356 "" 93 2 21
$!
$ create 'f'
X/*
X`20*`20FIFO.C
X`20*`20======
X`20*`20`20`20`20`20`20
X`20*`20-----------------------------------------------------------------
X`20*
X`20*`20PLEASE`20NOTE:
X`20*`20------------
X`20*
X`20*`20V1.0`20(P)`201989`20by`20Ferry`20Bolh`E1r`20(b...@adv.magwien.gv.at)
X`20*`20V2.0`20(P)`201993`20by`20Peter`20Gallasch`20(g...@adv.magwien.gv.at)
X`20*
X`20*`20Use`20this`20software`20at`20your`20own`20risk`20and`20"as-is".`20Provi
Vde`20it`20as`20you`20want,
X`20*`20but`20for`20non-commercial`20use`20only.`20No`20warranty`20is`20express
Ved`20or`20implied`20and
X`20*`20no`20liability`20can`20be`20accepted`20for`20any`20actions`20or`20circu
Vmstances`20incurred
X`20*`20from`20the`20use`20of`20this`20software`20or`20from`20the`20information
V`20contained`20herein.
X`20*`20The`20authors`20make`20no`20claim`20as`20to`20the`20suitability`20of`20
Vthis`20software`20for`20a
X`20*`20particual`20purpose.
X`20*
X`20*`20This`20software`20may`20be`20copied`20and`20distributed`20only`20with
V`20the`20inclusion`20of
X`20*`20this`20copyright`20notice.
X`20*
X`20*`20Any`20suggestions`20are`20very`20appreciated,`20please`20mail`20to`20th
Ve`20above`20addresses.
X`20*
X`20*`20-----------------------------------------------------------------
X`20*
X`20*`20Stapelroutinen.
X`20*
X`20*/
X#include`20"fifo.h"
X
Xstatic`20EL_TYPE`20`20fifo`5BMAX_ELS`5D;
Xstatic`20int`20`20`20`20`20`20first;
Xstatic`20int`20`20`20`20`20`20last;
X
Xvoid`20to_fifo`20(EL_TYPE`20el)
X`7B
X`20fifo`5Blast++`5D`20=`20el;
X`7D
X
XEL_TYPE`20from_fifo`20(void)
X`7B
X`20return`20fifo`5Bfirst++`5D;
X`7D
X
Xvoid`20clean_fifo`20(void)
X`7B
X`20first`20=`20last`20=`200;
X`7D
$ call unpack FIFO.C;1 534582786 "" 3 3 21
$!
$ create 'f'
X/*
X`20*`20FIFO.H
X`20*`20======
X`20*`20`20`20`20`20`20
X`20*/
X#define`20EL_TYPE`20void`20*
X#define`20MAX_ELS`2015
X
Xvoid`20to_fifo`20(EL_TYPE);
XEL_TYPE`20from_fifo`20(void);
Xvoid`20clean_fifo`20(void);
$ call unpack FIFO.H;1 1098659815 "" 1 4 21
$!
$ create 'f'
X$`20!
X$`20!`20INSTALL`20File`20for`20SYMBOLS
X$`20!`20========================
X$`20!
X$`20!`20(P)`201989`20by`20ADVBOL
X$`20!
X$`20priv`20=`20"CMKRNL,SYSNAM,SYSPRV"
X$`20x`20=`20f$setp`20(priv)
X$`20if`20.not.`20f$priv`20(priv)`20then`20exit`2036
X$`20!
X$`20put`20:=`20writ`20sys$output
X$`20if`20f$gets`20("HW_MODEL")`20.lt.`201024
X$`20then`20
X$`20!
X$`20put`20""
X$`20put`20"Building`20SYMBOLS`20V2.0`20on`20OpenVMS`20VAX:"
X$`20put`20""
X$`20!
X$`20put`20"`20o`20-`20Compiling..."
X$`20cc/decc/nodebu/opti`20dig
X$`20cc/decc/nodebu/opti`20fifo
X$`20cc/decc/nodebu/opti`20library_module
X$`20cc/decc/nodebu/opti`20msg
X$`20cc/decc/nodebu/opti`20simple_module
X$`20cc/decc/nodebu/opti`20uio_rms
X$`20mess/notext/symb/obje=symbols_poimsg`20symbols/file=symbols$msg
X$`20mess/text/nosymb/obje=symbols_msg`20symbols
X$`20!
X$`20put`20"`20o`20-`20Linking..."
X$`20link/notrac/exec=sys$common:`5Bsysexe`5Dsymbols`20sys$input/opti
Xdig
Xfifo
Xsimple_module
Xuio_rms
Xlibrary_module
Xmsg
Xsymbols_poimsg
Xidentification`20=`20"SYMBOLS`20V2.0-04"
Xname`20=`20"SYMBOLS/BOL-93"
Xstack`20=`2016
X$`20!
X$`20link/notrac/shar=sys$common:`5Bsysmsg`5Dsymbols$msg`20sys$input/opti
Xsymbols_msg
Xidentification`20`20=`20"SYMBOLS`20V2.0-04"
Xname`20=`20"SYMBOLS_MSG/BOL-93"
X$`20!
X$`20put`20"`20o`20-`20Updating`20DCLTABLES..."
X$`20set`20comm`20symbols_vax`20-
X`20`20/tabl=sys$share:dcltables`20-
X`20`20/outp=sys$common:`5Bsyslib`5Ddcltables
X$`20inst`20repl`20sys$share:dcltables
X$`20set`20comm/tabl=sys$share:dcltables
X$`20!
X$`20put`20"`20o`20-`20Updating`20HELPLIB..."
X$`20libr/help`20sys$help:helplib`20symbols
X$`20!
X$`20put`20"`20o`20-`20Providing`20files..."
X$`20copy`20symbols$startup.com`20sys$common:`5Bsys$startup`5D
X$`20copy`20symbols$ivp.com`20sys$common:`5Bsystest`5D
X$`20mcr`20sysman`20start`20add`20file`20symbols$startup.com/phas=lpmain/mode=d
Virect
X$`20dele/nolog`20*.obj.
X$`20!
X$`20put`20"`20o`20-`20Starting`20up..."
X$`20@sys$startup:symbols$startup
X$`20put`20"INSTALL:`20all`20done!"
X$`20put`20""
X$`20!
X$`20!`20=============================================================
X$`20!
X$`20else
X$`20!
X$`20put`20""
X$`20put`20"Building`20SYMBOLS`20V2.0`20on`20OpenVMS`20Alpha:"
X$`20!
X$`20put`20"`20o`20-`20Compiling..."
X$`20cc/nodebu/opti/nomemb`20dig+sys$share:sys$lib_c/libr
X$`20cc/nodebu/opti/nomemb`20fifo+sys$share:sys$lib_c/libr
X$`20cc/nodebu/opti/nomemb`20library_module+sys$share:sys$lib_c/libr
X$`20cc/nodebu/opti/nomemb`20msg+sys$share:sys$lib_c/libr
X$`20cc/nodebu/opti/nomemb`20simple_module+sys$share:sys$lib_c/libr
X$`20cc/nodebu/opti/nomemb`20uio_rms+sys$share:sys$lib_c/libr
X$`20mess/notext/symb/obje=symbols_poimsg`20symbols/file=symbols$msg
X$`20mess/text/nosymb/obje=symbols_msg`20symbols
X$`20!
X$`20put`20"`20o`20-`20Linking..."
X$`20link/notrac/exec=sys$common:`5Bsysexe`5Dsymbols`20sys$input/opti
Xdig
Xfifo
Xsimple_module
Xuio_rms
Xlibrary_module
Xmsg
Xsymbols_poimsg
Xidentification`20=`20"SYMBOLS`20V2.0-04"
Xname`20=`20"SYMBOLS/BOL-93"
Xstack`20=`2016
X$`20!
X$`20link/notrac/shar=sys$common:`5Bsysmsg`5Dsymbols$msg`20sys$input/opti
Xsymbols_msg
Xidentification`20`20=`20"SYMBOLS`20V2.0-04"
Xname`20=`20"SYMBOLS_MSG/BOL-93"
X$`20!
X$`20put`20"`20o`20-`20Updating`20DCLTABLES..."
X$`20set`20comm`20symbols_axp`20-
X`20`20/tabl=sys$share:dcltables`20-
X`20`20/outp=sys$common:`5Bsyslib`5Ddcltables
X$`20inst`20repl`20sys$share:dcltables
X$`20set`20comm/tabl=sys$share:dcltables
X$`20!
X$`20put`20"`20o`20-`20Updating`20online`20help..."
X$`20libr/help`20sys$help:helplib`20symbols
X$`20!
X$`20put`20"`20o`20-`20Providing`20files..."
X$`20copy`20symbols$startup.com`20sys$common:`5Bsys$startup`5D
X$`20copy`20symbols$ivp.com`20sys$common:`5Bsystest`5D
X$`20mcr`20sysman`20start`20add`20file`20symbols$startup.com/phas=lpmain/mode=d
Virect
X$`20dele/nolog`20*.obj.
X$`20!
X$`20put`20"`20o`20-`20Starting`20up..."
X$`20put`20""
X$`20@sys$startup:symbols$startup
X$`20put`20"INSTALL:`20all`20done!"
X$`20put`20""
X$`20endi
$ call unpack INSTALL.COM;1 1010118379 "" 7 5 21
$!
$ create 'f'
X/*
X`20*
X`20*`20LBR$PROTO.H
X`20*`20===========
X`20*`20`20`20`20`20`20
X`20*/
X
Xunsigned`20int`20LBR$CLOSE(unsigned`20int`20*);
X
Xunsigned`20int`20LBR$FIND(unsigned`20int`20*,unsigned`20int`20(*)`5B`5D);
X
Xunsigned`20int`20LBR$GET_HEADER(unsigned`20int`20*,`20struct`20lhidef`20*);
X
Xunsigned`20int`20LBR$GET_INDEX(unsigned`20int`20*,`20int`20*,int(),int);
X
Xunsigned`20int`20LBR$GET_RECORD(unsigned`20int`20*,struct`20dsc$descriptor_s
V`20*,
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20struct`20dsc$descriptor_s`20*)
V;
X
Xunsigned`20int`20LBR$INI_CONTROL`20(unsigned`20int`20*,`20int`20*,int,int);
X
Xunsigned`20int`20LBR$OPEN(unsigned`20int`20*,`20struct`20dsc$descriptor_s`20*,
V`20
X`20`20`20`20`20`20`20`20int,int,int,int,int);
X
Xunsigned`20int`20LBR$RET_RMSSTV`20(void);
$ call unpack LBR$PROTO.H;1 392438530 "" 2 6 21
$!
$ create 'f'
X/*
X`20*`20LIBRARY_MODULE.C
X`20*`20================
X`20*`20`20`20`20`20`20
X`20*`20-----------------------------------------------------------------
X`20*
X`20*`20PLEASE`20NOTE:
X`20*`20------------
X`20*
X`20*`20V1.0`20(P)`201989`20by`20Ferry`20Bolh`E1r`20(b...@adv.magwien.gv.at)
X`20*`20V2.0`20(P)`201993`20by`20Peter`20Gallasch`20(g...@adv.magwien.gv.at)
X`20*
X`20*`20Use`20this`20software`20at`20your`20own`20risk`20and`20"as-is".`20Provi
Vde`20it`20as`20you`20want,
X`20*`20but`20for`20non-commercial`20use`20only.`20No`20warranty`20is`20express
Ved`20or`20implied`20and
X`20*`20no`20liability`20can`20be`20accepted`20for`20any`20actions`20or`20circu
Vmstances`20incurred
X`20*`20from`20the`20use`20of`20this`20software`20or`20from`20the`20information
V`20contained`20herein.
X`20*`20The`20authors`20make`20no`20claim`20as`20to`20the`20suitability`20of`20
Vthis`20software`20for`20a
X`20*`20particual`20purpose.
X`20*
X`20*`20This`20software`20may`20be`20copied`20and`20distributed`20only`20with
V`20the`20inclusion`20of
X`20*`20this`20copyright`20notice.
X`20*
X`20*`20Any`20suggestions`20are`20very`20appreciated,`20please`20mail`20to`20th
Ve`20above`20addresses.
X`20*
X`20*`20-----------------------------------------------------------------
X`20*
X`20*`20Zugriffsfunktionen`20auf`20Libraries
X`20*
X`20*/
X#include`20<descrip.h>
X#include`20<lbrdef.h>
X#include`20<lhidef.h>
X#include`20<stdio.h>
X#include`20<stdlib.h>
X#include`20<strdef.h>
X#include`20<string.h>
X#include`20<str$routines.h>
X
X#include`20"library_module.h"
X#include`20"lbr$proto.h"
X#include`20"msg.h"
X#include`20"zaehler.h"
X
X#define`20J`20`20`20`20`20`20`20/*`20zeigt`20Sprungbefehl`20an`20*/
X#define`20EVEN(n)`20`20(!((n)`261))
X#define`20MIN(a,b)`20(a)<(b)`20?`20(a)`20:`20(b)
X
Xstatic`20int`20get_keys`20(`20struct`20dsc$descriptor_s`20*,`20void`20*);
X
X/*`20Errorcodes`20*/
X#pragma`20extern_model`20save
X#pragma`20extern_model`20globalvalue
Xextern`20SYMBOLS$_IOIN;
Xextern`20SYMBOLS$_NOOBJLIB;
Xextern`20SYMBOLS$_OPENINFAIL;
X#pragma`20extern_model`20restore
X
X#define`20MODNAM_LEN`2031
Xtypedef`20struct`20`20key_t
X`7B
X`20`20`20`20`20`20`20`20char`20`20`20`20`20`20`20`20`20`20`20`20name`5BMODNAM_
VLEN+1`5D;`20`20/*`20ein`20char`20f`FCr`20'`5C0'`20*/
X`20`20`20`20`20`20`20`20unsigned`20int`20`20`20`20rfa`5B2`5D;
X`7D`20keys_t`5B`5D;
Xstatic`20keys_t`20`20`20*keys;`20`20`20`20`20`20`20`20`20`20/*`20enth`E4lt`20k
Veys`20der`20ausgew`E4hlten`20object-modules`20*/
Xstatic`20unsigned`20int`20`20`20`20`20aktuell;`20`20`20`20`20`20`20`20/*`20Ind
Vex`20des`20aktuellen`20keys`20*/
Xstatic`20unsigned`20int`20`20`20`20`20library;
Xstatic`20char`20module`5B33`5D`20=`20"*";`20`20`20/*`20Name`20des`20zu`20extra
Vhierenden`20Modules`20*/
Xstatic`20struct`20dsc$descriptor_s`20*module_des_a;
Xchar`20`20`20`20modnam`5BMODNAM_LEN+1`5D;`20`20/*`20ein`20char`20f`FCr`20'`5C0
V'`20*/
Xextern`20struct`20dsc$descriptor_s`20`20fulnam;
Xextern`20int`20`20`20`20`20`20badfiles;
Xextern`20zaehler`20`20file_module;`20`20`20`20/*`20Z`E4hler`20f`FCr`20Module
V`20*/
Xextern`20int`20print_record;`20`20`20`20`20`20`20`20/*`20Recorddaten`20ausgebe
Vn?`20*/
Xextern`20FILE`20`20`20`20`20*outfile;
X
X/*`20`20`20`20`20`20Lesen`20eines`20Records`20im`20aktuellen`20Modul
X`20*/
Xint`20library_lesen`20(int`20size,`20char`20*buffer)
X`7B
X`20`20`20`20`20`20`20`20int`20status;
X`20`20`20`20`20`20`20`20struct`20dsc$descriptor_s`20inbufdes`20=`20
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7B0,`20DSC$K_DTYPE_T,`20DSC$K
V_CLASS_S`7D;
X`20`20`20`20`20`20`20`20struct`20dsc$descriptor_s`20outbufdes;
X`20`20`20`20`20`20`20`20inbufdes.dsc$w_length`20=`20size;
X`20`20`20`20`20`20`20`20inbufdes.dsc$a_pointer`20=`20buffer;
X
X`20`20`20`20`20`20`20`20status`20=`20LBR$GET_RECORD(`26library,`26inbufdes,`26
Voutbufdes);
X`20`20`20`20`20`20`20`20if`20(EVEN(status))`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20if`20(status`20`26`200x0FFF000
V0)`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20putmsg
V`20(5,`20SYMBOLS$_IOIN,`201,`20`26fulnam,`20status,`200);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D`20else`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20putmsg
V`20(5,`20SYMBOLS$_IOIN,`201,`20`26fulnam,`20status,
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20
V`20`20`20`20`20`20LBR$RET_RMSSTV());
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20return`20-1;
X`20`20`20`20`20`20`20`20`7D`20`20`20`20`20`20`20`20`20`20`20`20
X`20`20`20`20`20`20`20`20return`20outbufdes.dsc$w_length;
X`7D
X
X/*`20`20`20`20`20`20build`20the`20module`20index`20for`20the`20current`20libra
Vry
X`20*/
Xstatic`20int`20get_keys`20(`20struct`20dsc$descriptor_s`20*pname,`20void`20*pr
Vfa`20)
X`7B`20
X`20`20`20int`20status;
X`20`20`20unsigned`20short`20length;
X
X`20`20`20status`20=`20str$match_wild`20(pname,`20module_des_a);
X`20`20`20switch`20(status)`20`7B
X`20`20`20`20`20`20case`20STR$_MATCH`20`20`20:`20break;
X`20`20`20`20`20`20case`20STR$_NOMATCH`20:`20return`201;
X`20`20`20`20`20`20default`20`20`20`20`20`20`20`20`20`20`20:`20return`20status;
V
X`20`20`20`7D
X`20`20`20length`20=`20pname->dsc$w_length;
X`20`20`20if`20(length`20>`20MODNAM_LEN)`20length`20=`20MODNAM_LEN;
X`20`20`20memcpy`20((*keys)`5Bfile_module.matched`5D.name,`20pname->dsc$a_point
Ver,`20length);
X`20`20`20(*keys)`5Bfile_module.matched`5D.name`5Blength`5D`20=`20'`5C0';
X`20`20`20memcpy`20(`26(*keys)`5Bfile_module.matched`5D.rfa,`20prfa,`208);
X`20`20`20file_module.matched++;
X`20`20`20return`201;
X`7D
X
X/*`20`20`20`20`20`20`D6ffnen`20der`20Library`20zum`20Lesen
X`20*/
Xint`20library_oeffnen`20(int`20axp)
X`7B
X`20`20`20`20`20`20`20`20int`20`20`20`20`20`20`20`20`20`20`20`20`20status;
X`20`20`20`20`20`20`20`20struct`20lhidef`20`20`20header;
X
X`20`20`20`20`20`20`20`20status`20=`20LBR$INI_CONTROL`20(`26library,`20`26LBR$C
V_READ,`200,`200);
X`20`20`20`20`20`20`20`20if`20(EVEN(status))`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20putmsg`20(4,`20SYMBOLS$_OPENIN
VFAIL,`201,`20`26library,`20status);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20badfiles++;
X/*RET*/`20`20`20`20`20`20`20`20`20return`200;
X`20`20`20`20`20`20`20`20`7D`20`20`20`20`20`20`20`20`20`20`20`20
X`20`20`20`20`20`20`20`20status`20=`20LBR$OPEN`20(`26library,`20`26fulnam,`200,
V0,0,0,0);
X`20`20`20`20`20`20`20`20if`20(EVEN(status))`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20putmsg`20(4,`20SYMBOLS$_OPENIN
VFAIL,`201,`20`26library,`20status);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20badfiles++;
X/*RET*/`20`20`20`20`20`20`20`20`20return`200;
X`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20status`20=`20LBR$GET_HEADER(`26library,`26header);
X`20`20`20`20`20`20`20`20if`20(EVEN(status))`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20putmsg`20(4,`20SYMBOLS$_OPENIN
VFAIL,`201,`20`26library,`20status);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20badfiles++;
XJ`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20goto`20schliessen;
X`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20if`20(header.lhi$l_type`20!=`20(axp?`20LBR$C_TYP_EOBJ
V`20:`20LBR$C_TYP_OBJ))`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20$DESCRIPTOR`20(type_des,`20"")
V;
X
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20type_des.dsc$a_pointer`20=`20a
Vxp`20?`20"AXP"`20:`20"VAX";
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20type_des.dsc$w_length`20=`20si
Vzeof`20("axp");
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20putmsg`20(4,`20SYMBOLS$_NOOBJL
VIB,`202,`20`26fulnam,`20`26type_des);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20badfiles++;
XJ`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20goto`20schliessen;
X`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20file_module.cnt`20=`20header.lhi$l_modcnt;
X`20`20`20`20`20`20`20`20keys`20=`20malloc`20(file_module.cnt`20*`20sizeof(stru
Vct`20key_t));
X`20`20`20`20`20`20`20`20file_module.matched`20=`200;
X`20`20`20`20`20`20`20`20status`20=`20LBR$GET_INDEX(`26library,`261,get_keys,0)
V;
X`20`20`20`20`20`20`20`20/*`20bug,`20when`20specifying`20match`20argument;`20so
V`20get_keys`20must`20do`20*
X`20`20`20`20`20`20`20`20`20*`20LBR$GET_INDEX's`20work`20`20`20`20`20`20`20`20
V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20
V`20`20`20*
X`20`20`20`20`20`20`20`20`20*`20e.g.`20LIBRTL`20matches`20both`20LIBRTL`20and
V`20LIBRTL2`20`20`20`20`20`20`20`20`20`20`20`20`20`20*/
X`20`20`20`20`20`20`20`20if`20(EVEN(status))`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20putmsg`20(4,`20SYMBOLS$_OPENIN
VFAIL,`201,`20`26library,`20status);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20badfiles++;
XJ`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20goto`20schliessen;
X`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20if`20(file_module.matched`20!=`200)`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20aktuell`20=`200;
X/*RET*/`20`20`20`20`20`20`20`20`20return`20file_module.matched;
X`20`20`20`20`20`20`20`20`7D`20
Xschliessen:
X`20`20`20`20`20`20`20`20status`20=`20LBR$CLOSE(`26library);
X`20`20`20`20`20`20`20`20if`20(EVEN(status))`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20if`20(status`20`26`200x0FFF000
V0)`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20putmsg
V`20(5,`20SYMBOLS$_IOIN,`201,`20`26fulnam,`20status,`200);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D`20else`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20putmsg
V`20(5,`20SYMBOLS$_IOIN,`201,`20`26fulnam,`20status,
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20
V`20`20`20`20`20`20LBR$RET_RMSSTV());
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`7D
X/*RET*/`20return`200;
X`7D
X
Xint`20library_next_module`20(void)
X`7B
X`20`20`20`20`20`20`20`20int`20status;
X
X`20`20`20`20`20`20`20`20if`20(aktuell`20==`20file_module.matched)`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20clean_up`20*/
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20free`20(keys);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20status`20=`20LBR$CLOSE(`26libr
Vary);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20if`20(EVEN(status))`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20if`20(
Vstatus`20`26`200x0FFF0000)`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20
V`20`20`20`20`20`20putmsg`20(5,`20SYMBOLS$_IOIN,`201,`20`26fulnam,`20status,`20
V
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20
V`20`20`20`20`20`20`20`20`20`20`20`20`20`200);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D`20
Velse`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20
V`20`20`20`20`20`20putmsg`20(5,`20SYMBOLS$_IOIN,`201,`20`26fulnam,`20status,
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20
V`20`20`20`20`20`20`20`20`20`20`20`20`20`20LBR$RET_RMSSTV());
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20badfil
Ves++;
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20return`200;
X`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20status`20=`20LBR$FIND(`26library,`26(*keys)`5Baktuell
V`5D.rfa);
X`20`20`20`20`20`20`20`20if`20(EVEN(status))`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20if`20(status`20`26`200x0FFF000
V0)`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20putmsg
V`20(5,`20SYMBOLS$_IOIN,`201,`20`26fulnam,`20status,`200);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D`20else`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20putmsg
V`20(5,`20SYMBOLS$_IOIN,`201,`20`26fulnam,`20status,
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20
V`20`20`20`20`20`20LBR$RET_RMSSTV());
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20badfiles++;
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20return`200;
X`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20if`20(print_record)`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20fprintf`20(outfile,`20"`5CnMOD
VULE`20%s`5Cn`5Cn",`20(*keys)`5Baktuell`5D.name);
X`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20else`20strcpy`20(modnam,`20(*keys)`5Baktuell`5D.name);
V
X`20`20`20`20`20`20`20`20aktuell++;
X`20`20`20`20`20`20`20`20return`201;
X`7D
X
Xvoid`20set_module`20(struct`20dsc$descriptor_s`20*name_des)
X`7B
X`20`20`20`20`20`20`20`20str$upcase`20(name_des,`20name_des);
X`20`20`20`20`20`20`20`20module_des_a`20=`20name_des;
X`7D
$ call unpack LIBRARY_MODULE.C;1 281736444 "" 16 7 21
$!
$ create 'f'
X/*
X`20*
X`20*`20LIBRARY_MODULE.H
X`20*`20================
X`20*`20`20`20`20`20`20
X`20*/
Xint`20library_lesen`20(int,`20char`20*);
Xint`20library_oeffnen`20(int);
Xint`20library_next_module`20(void);
Xvoid`20set_module`20(struct`20dsc$descriptor_s`20*);
$ call unpack LIBRARY_MODULE.H;1 1918779073 "" 1 8 21
$!
$ create 'f'
X/*
X`20*`20MSG.C
X`20*`20=====
X`20*
X`20*`20-----------------------------------------------------------------
X`20*
X`20*`20PLEASE`20NOTE:
X`20*`20------------
X`20*
X`20*`20V1.0`20(P)`201989`20by`20Ferry`20Bolh`E1r`20(b...@adv.magwien.gv.at)
X`20*`20V2.0`20(P)`201993`20by`20Peter`20Gallasch`20(g...@adv.magwien.gv.at)
X`20*
X`20*`20Use`20this`20software`20at`20your`20own`20risk`20and`20"as-is".`20Provi
Vde`20it`20as`20you`20want,
X`20*`20but`20for`20non-commercial`20use`20only.`20No`20warranty`20is`20express
Ved`20or`20implied`20and
X`20*`20no`20liability`20can`20be`20accepted`20for`20any`20actions`20or`20circu
Vmstances`20incurred
X`20*`20from`20the`20use`20of`20this`20software`20or`20from`20the`20information
V`20contained`20herein.
X`20*`20The`20authors`20make`20no`20claim`20as`20to`20the`20suitability`20of`20
Vthis`20software`20for`20a
X`20*`20particual`20purpose.
X`20*
X`20*`20This`20software`20may`20be`20copied`20and`20distributed`20only`20with
V`20the`20inclusion`20of
X`20*`20this`20copyright`20notice.
X`20*
X`20*`20Any`20suggestions`20are`20very`20appreciated,`20please`20mail`20to`20th
Ve`20above`20addresses.
X`20*
X`20*`20-----------------------------------------------------------------
X`20*
X`20*`20Routine`20f`FCr`20Ausgabe`20von`20Messages`20via`20SYS$PUTMSG.
X`20*
X`20*/
X#include`20<ssdef.h>
X#include`20<stdarg.h>
X#include`20<starlet.h>
X
Xvoid`20putmsg`20(int`20par_count,`20...)
X`7B
X`20`20`20int`20msgvec`5B10`5D;
X`20`20`20va_list`20ap;
X
X`20`20`20va_start`20(ap,`20par_count);
X`20`20`20msgvec`5B0`5D`20=`20par_count;
X`20`20`20if`20(`20msgvec`5B0`5D`20>`20(10-1)`20)`20`7B
X`20`20`20`20`20`20sys$exit`20(SS$_INSFARG);
X`20`20`20`7D`20else`20`7B
X`20`20`20`20`20`20int`20i;
X`20`20`20`20`20`20for`20(i=1;`20i<=msgvec`5B0`5D;`20++i)`20msgvec`5Bi`5D`20=
V`20va_arg(ap,int);
X`20`20`20`7D
X`20`20`20va_end`20(ap);
X`20`20`20sys$putmsg`20(msgvec,`200,`200,`200);
X`7D
$ call unpack MSG.C;1 2024021658 "" 3 9 21
$!
$ create 'f'
X/*
X`20*
X`20*`20MSG.H
X`20*`20=====
X`20*
X`20*/
X
Xvoid`20putmsg`20(int`20par_count,`20...);
$ call unpack MSG.H;1 1326069751 "" 1 10 21
$!
$ create 'f'
X/*
X`20*`20SIMPLE_MODULE.C
X`20*`20===============
X`20*`20`20`20`20`20`20
X`20*`20-----------------------------------------------------------------
X`20*
X`20*`20PLEASE`20NOTE:
X`20*`20------------
X`20*
X`20*`20V1.0`20(P)`201989`20by`20Ferry`20Bolh`E1r`20(b...@adv.magwien.gv.at)
X`20*`20V2.0`20(P)`201993`20by`20Peter`20Gallasch`20(g...@adv.magwien.gv.at)
X`20*
X`20*`20Use`20this`20software`20at`20your`20own`20risk`20and`20"as-is".`20Provi
Vde`20it`20as`20you`20want,
X`20*`20but`20for`20non-commercial`20use`20only.`20No`20warranty`20is`20express
Ved`20or`20implied`20and
X`20*`20no`20liability`20can`20be`20accepted`20for`20any`20actions`20or`20circu
Vmstances`20incurred
X`20*`20from`20the`20use`20of`20this`20software`20or`20from`20the`20information
V`20contained`20herein.
X`20*`20The`20authors`20make`20no`20claim`20as`20to`20the`20suitability`20of`20
Vthis`20software`20for`20a
X`20*`20particual`20purpose.
X`20*
X`20*`20This`20software`20may`20be`20copied`20and`20distributed`20only`20with
V`20the`20inclusion`20of
X`20*`20this`20copyright`20notice.
X`20*
X`20*`20Any`20suggestions`20are`20very`20appreciated,`20please`20mail`20to`20th
Ve`20above`20addresses.
X`20*
X`20*`20-----------------------------------------------------------------
X`20*
X`20*`20Zugriffsfunktionen`20auf`20object`20files,`20symbol`20tables`20und`20sh
Vareable`20images
X`20*
X`20*/
X#include`20<descrip.h>
X#include`20<ihddef.h>
X#include`20<ihsdef.h>
X#include`20<stdio.h>
X#include`20<stdlib.h>
X#include`20<string.h>
X
X#ifdef`20__alpha
X#include`20<eihddef.h>
X#include`20<eihsdef.h>
X#endif
X
X#include`20"msg.h"
X#include`20"simple_module.h"
X#include`20"uio_rms.h"
X
X#define`20MIN(a,b)`20(a)<(b)`20?`20(a)`20:`20(b)
X#define`20EVEN(n)`20`20(!((n)`261))
X
X/*`20Errorcodes`20*/
X#pragma`20extern_model`20save
X#pragma`20extern_model`20globalvalue
Xextern`20SYMBOLS$_IOIN;
Xextern`20SYMBOLS$_OPENINFAIL;
X#pragma`20extern_model`20restore
X
Xextern`20int`20`20`20`20`20`20badfiles;
Xextern`20struct`20dsc$descriptor_s`20`20fulnam;
X
X/*`20`20`20`20`20`20Lesen`20eines`20Records`20mittels`20uread
X`20*/
Xint`20simple_lesen`20(int`20size,`20char`20*buffer)
X`7B
X`20`20`20`20`20`20`20`20int`20status,`20stv;
X`20`20`20`20`20`20`20`20unsigned`20short`20length,`20blocksize;
X
X`20`20`20`20`20`20`20`20status`20=`20uread`20((char`20*)`26blocksize,`20sizeof
V(blocksize),`20`26length,`20`26stv);
X`20`20`20`20`20`20`20`20if`20(`20EVEN(status)`20`7C`7C`20(length`20!=`20sizeof
V(blocksize))`20)`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20putmsg`20(5,`20SYMBOLS$_IOIN,
V`201,`20`26fulnam,`20status,`20stv);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20return`20-1;
X`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20blocksize`20+=`20blocksize%2;`20`20`20`20`20`20`20/*
V`20word`20alignment`20*/
X`20`20`20`20`20`20`20`20status`20=`20uread`20(buffer,`20blocksize,`20`26length
V,`20`26stv);
X`20`20`20`20`20`20`20`20if`20(EVEN(status)`20`7C`7C`20(length`20!=`20blocksize
V))`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20putmsg`20(5,`20SYMBOLS$_IOIN,
V`201,`20`26fulnam,`20status,`20stv);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20return`20-1;
X`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20return`20blocksize;
X`7D
X
X
X#ifdef`20__alpha
X/*`20`20`20`20`20`20AXP:
X`20*`20`20`20`20`20`20Die`20Anfangsinformation`20im`20Imagefile`20wird`20geles
Ven`20und`20auf`20Korrektheit
X`20*`20`20`20`20`20`20`FCberpr`FCft.
X`20*/
Xint`20axp_image_head(void)
X`7B
X`20`20`20`20`20`20`20`20char`20`20`20`20buffer`5B512`5D;
X`20`20`20`20`20`20`20`20struct`20_eihd`20`20`20`20*ihd;
X`20`20`20`20`20`20`20`20struct`20_eihs`20`20`20`20*ihs;
X`20`20`20`20`20`20`20`20unsigned`20short`20`20length;
X`20`20`20`20`20`20`20`20int`20`20`20`20`20status,`20stv;
X`20`20`20`20`20`20`20`20long`20`20`20`20eintrag;
X`20`20`20`20`20`20`20`20int`20`20`20`20`20block;
X`20`20`20`20`20`20`20`20int`20`20`20`20`20count;
X
X`20`20`20`20`20`20`20`20status`20=`20uread`20(buffer,`20512,`20`26length,`20
V`26stv);`20`20
X`20`20`20`20`20`20`20`20if`20(EVEN(status))
X`20`20`20`20`20`20`20`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20putmsg`20(5,`20SYMBOLS$_IOIN,
V`201,`20`26fulnam,`20status,`20stv);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20return`200;
X`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20if`20(length`20<`20512)`20return`200;
X`20`20`20`20`20`20`20`20ihd`20=`20(struct`20_eihd`20*)buffer;
X`20`20`20`20`20`20`20`20eintrag`20=`20ihd->eihd$l_size;
X`20`20`20`20`20`20`20`20if`20(eintrag`20<`2064`20/*`7C`7C`20eintrag`20>`20512*
V/)`20return`200;
X`20`20`20`20`20`20`20`20eintrag`20=`20ihd->eihd$l_hdrblkcnt;
X`20`20`20`20`20`20`20`20if`20(eintrag`20<`201`20/*`7C`7C`20eintrag`20>`203*/)
V`20return`200;
X`20`20`20`20`20`20`20`20eintrag`20=`20ihd->eihd$l_imgtype;
X`20`20`20`20`20`20`20`20if`20(eintrag`20!=`20EIHD$K_EXE`20`26`26`20eintrag`20!
V=`20EIHD$K_LIM)`20return`200;
X`20`20`20`20`20`20`20`20ihs`20=`20(struct`20_eihs`20*)(buffer`20+`20ihd->eihd$
Vl_symdbgoff);
X`20`20`20`20`20`20`20`20block`20=`20ihs->eihs$l_gstvbn;
X`20`20`20`20`20`20`20`20if`20(!block)`20return`200;
X`20`20`20`20`20`20`20`20count`20=`20ihs->eihs$l_gstsize;
X`20`20`20`20`20`20`20`20if`20(!count)`20return`200;
X`20`20`20`20`20`20`20`20while`20(block`20>`202)
X`20`20`20`20`20`20`20`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20status`20=`20uread`20(buffer,
V`20512,`20`26length,`20`26stv);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20if`20(EVEN(status))
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20putmsg
V`20(5,`20SYMBOLS$_IOIN,`201,`20`26fulnam,`20status,`20stv);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20return
V`200;
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20if`20(length`20<`20512)`20retu
Vrn`200;
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20block`20--;
X`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20return`201;
X`7D
X#endif
X
X/*`20`20`20`20`20`20VAX:
X`20*`20`20`20`20`20`20Die`20Anfangsinformation`20im`20Imagefile`20wird`20geles
Ven`20und`20auf`20Korrektheit
X`20*`20`20`20`20`20`20`FCberpr`FCft.
X`20*/
Xint`20vax_image_head(void)
X`7B
X`20`20`20`20`20`20`20`20char`20`20`20`20buffer`5B512`5D;
X`20`20`20`20`20`20`20`20struct`20_ihd`20`20`20`20`20*ihd;
X`20`20`20`20`20`20`20`20struct`20_ihs`20`20`20`20`20*ihs;
X`20`20`20`20`20`20`20`20unsigned`20short`20`20length;
X`20`20`20`20`20`20`20`20int`20`20`20`20`20status,`20stv;
X`20`20`20`20`20`20`20`20long`20`20`20`20eintrag;
X`20`20`20`20`20`20`20`20int`20`20`20`20`20block;
X`20`20`20`20`20`20`20`20int`20`20`20`20`20count;
X
X`20`20`20`20`20`20`20`20status`20=`20uread`20(buffer,`20512,`20`26length,`20
V`26stv);`20`20
X`20`20`20`20`20`20`20`20if`20(EVEN(status))
X`20`20`20`20`20`20`20`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20putmsg`20(5,`20SYMBOLS$_IOIN,
V`201,`20`26fulnam,`20status,`20stv);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20return`200;
X`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20if`20(length`20<`20512)`20return`200;
X`20`20`20`20`20`20`20`20ihd`20=`20(struct`20_ihd`20*)buffer;
X`20`20`20`20`20`20`20`20eintrag`20=`20ihd->ihd$w_size;
X`20`20`20`20`20`20`20`20if`20(eintrag`20<`2064`20`7C`7C`20eintrag`20>`20512)
V`20return`200;
X`20`20`20`20`20`20`20`20eintrag`20=`20ihd->ihd$b_hdrblkcnt;
X`20`20`20`20`20`20`20`20if`20(eintrag`20<`201`20`7C`7C`20eintrag`20>`203)`20re
Vturn`200;
X`20`20`20`20`20`20`20`20eintrag`20=`20ihd->ihd$b_imgtype;
X`20`20`20`20`20`20`20`20if`20(eintrag`20!=`20IHD$K_EXE`20`26`26`20eintrag`20!=
V`20IHD$K_LIM)`20return`200;
X`20`20`20`20`20`20`20`20ihs`20=`20(struct`20_ihs`20*)(buffer`20+`20ihd->ihd$w_
Vsymdbgoff);
X`20`20`20`20`20`20`20`20block`20=`20ihs->ihs$l_gstvbn;
X`20`20`20`20`20`20`20`20if`20(!block)`20return`200;
X`20`20`20`20`20`20`20`20count`20=`20ihs->ihs$l_gstrecs;
X`20`20`20`20`20`20`20`20if`20(!count)`20return`200;
X`20`20`20`20`20`20`20`20while`20(block`20>`202)
X`20`20`20`20`20`20`20`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20status`20=`20uread`20(buffer,
V`20512,`20`26length,`20`26stv);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20if`20(EVEN(status))
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20putmsg
V`20(5,`20SYMBOLS$_IOIN,`201,`20`26fulnam,`20status,`20stv);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20return
V`200;
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20if`20(length`20<`20512)`20retu
Vrn`200;
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20block`20--;
X`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20return`201;
X`7D
X
X/*`20`20`20`20`20`20`D6ffnen`20des`20Files`20zum`20Lesen
X`20*/
Xint`20simple_oeffnen`20(void)
X`7B
X`20`20`20`20`20`20`20`20int`20status,`20stv;
X`20`20`20`20`20`20`20`20char`20efndummy`5B2`5D;
X
X`20`20`20`20`20`20`20`20status`20=`20uopen`20(fulnam.dsc$a_pointer,`20"",`20ef
Vndummy,`201,`20`26stv);
X`20`20`20`20`20`20`20`20if`20(!`20(status`261))`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20putmsg`20(4,`20SYMBOLS$_OPENIN
VFAIL,`201,`20`26fulnam,`20status);
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20badfiles++;
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20return`200;
X`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20return`201;
X`7D
X
X/*`20`20`20`20`20`20Schlie`DFen`20des`20Files
X`20*/
Xint`20simple_schliessen`20(void)
X`7B
X`20`20`20`20`20`20`20`20int`20status,`20stv;
X
X`20`20`20`20`20`20`20`20status`20=`20uclose`20(`26stv);
X`20`20`20`20`20`20`20`20if`20(!`20(status`261))`20`7B
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20putmsg`20(5,`20SYMBOLS$_IOIN,
V`201,`20`26fulnam,`20status,`20stv);
X`20`20`20`20`20`20`20`20`7D
X`20`20`20`20`20`20`20`20return`200;`20`20`20`20`20`20`20/*`20es`20gibt`20kein
V`20weiteres`20object`20module`20*/
X`7D
$ call unpack SIMPLE_MODULE.C;1 1359550695 "" 13 11 21
$!
$ create 'f'
X/*
X`20*`20SIMPLE_MODULE.H
X`20*`20===============
X`20*`20`20`20`20`20`20
X`20*/
Xint`20simple_lesen`20(int,`20char`20*);
Xint`20simple_oeffnen`20(void);
Xint`20simple_schliessen`20(void);
Xint`20axp_image_head`20(void);
Xint`20vax_image_head`20(void);
$ call unpack SIMPLE_MODULE.H;1 117451543 "" 1 12 21
$!
$ create 'f'
X$`20!
X$`20!`20SYMBOLS$IVP.COM
X$`20!`20===============
X$`20!`20
X$`20!`20This`20installation`20procedure`20checks`20the`20proper`20installation
V`20of`20the`20SYMBOLS
X$`20!`20utility`20by`20executing`20some`20commands`20and`20checking`20their`20
Vproper`20return`20states.
X$`20!
X$`20!`20-----------------------------------------------------------------
X$`20!
X$`20!`20PLEASE`20NOTE:
X$`20!`20------------
X$`20!
X$`20!`20V1.0`20(P)`201989`20by`20Ferry`20Bolh`E1r`20(b...@adv.magwien.gv.at)
X$`20!`20V2.0`20(P)`201993`20by`20Peter`20Gallasch`20(g...@adv.magwien.gv.at)
X$`20!
X$`20!`20Use`20this`20software`20at`20your`20own`20risk`20and`20"as-is".`20Prov
Vide`20it`20as`20you`20want,
X$`20!`20but`20for`20non-commercial`20use`20only.`20No`20warranty`20is`20expres
Vsed`20or`20implied`20and
X$`20!`20no`20liability`20can`20be`20accepted`20for`20any`20actions`20or`20circ
Vumstances`20incurred
X$`20!`20from`20the`20use`20of`20this`20software`20or`20from`20the`20informatio
Vn`20contained`20herein.
X$`20!`20The`20authors`20make`20no`20claim`20as`20to`20the`20suitability`20of
V`20this`20software`20for`20a
X$`20!`20particual`20purpose.
X$`20!
X$`20!`20This`20software`20may`20be`20copied`20and`20distributed`20only`20with
V`20the`20inclusion`20of
X$`20!`20this`20copyright`20notice.
X$`20!
X$`20!`20Any`20suggestions`20are`20very`20appreciated,`20please`20mail`20to`20t
Vhe`20above`20addresses.
X$`20!
X$`20!`20-----------------------------------------------------------------
X$`20!
X$`20set`20noon
X$`20fail`20=`20%x10000004
X$`20put`20:=`20writ`20sys$output
X$`20!
X$`20put`20""
X$`20put`20"`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20SYMBOLS`20Installat
Vion`20verification`20procedure`20V2.0"
X$`20put`20""
X$`20put`20""
X$`20put`20"Checking`20for`20files..."
X$`20put`20""
X$`20!
X$`20!`20Check`20file(s),`20logical(s)`20and`20installed`20image(s)
X$`20!
X$`20file`20=`20"SYS$COMMON:`5BSYS$STARTUP`5DSYMBOLS$STARTUP.COM"
X$`20gosu`20CHECK_FILE
X$`20file`20=`20"SYS$COMMON:`5BSYSEXE`5DSYMBOLS.EXE"
X$`20gosu`20CHECK_FILE
X$`20file`20=`20"SYS$COMMON:`5BSYSMSG`5DSYMBOLS$MSG.EXE"
X$`20gosu`20CHECK_FILE
X$`20if`20f$trnl`20("SYMBOLS$VERSION")`20.eqs.`20""`20then`20goto`20START
X$`20if`20.not.`20f$file`20("SYS$SYSTEM:SYMBOLS.EXE",`20"KNOWN")`20then`20goto
V`20START
X$`20if`20.not.`20f$file`20("SYS$MESSAGE:SYMBOLS$MSG.EXE",`20"KNOWN")`20then`20
Vgoto`20START
X$`20!
X$`20!`20Check`20the`20SYMBOLS`20command
X$`20!
X$`20put`20"Executing`20some`20SYMBOL`20commands..."
X$`20put`20""
X$`20put`20"Executing:`20SYMBOLS`20LIBRTL/IMAGE`20LIB$PUT_OUTPUT
X$`20symb`20librtl/imag`20lib$put_output
X$`20if`20.not.`20$severity`20then`20goto`20ERR_EXEC
X$`20put`20""
X$`20put`20"Executing:`20SYMBOLS/SUMMARY`20LIBRTL/IMAGE
X$`20symb/summ`20librtl/imag
X$`20if`20.not.`20$severity`20then`20goto`20ERR_EXEC
X$`20put`20""
X$`20put`20"Executing:`20SYMBOLS`20SYS$MESSAGE:SYMBOLS$MSG.EXE/IMAGE
X$`20symb`20sys$message:symbols$msg.exe/imag
X$`20if`20.not.`20$severity`20then`20goto`20ERR_EXEC
X$`20put`20""
X$`20put`20"Executing:`20SYMBOLS/SUMMARY`20SYS$SYSTEM:*`20SYS*
X$`20symb/summary`20sys$system:*`20sys*
X$`20if`20.not.`20$severity`20then`20goto`20ERR_EXEC
X$`20put`20""
X$`20put`20"Executing:`20SYMBOLS/SUMMARY=LIBRARY`20SYS$SHARE:STARLET/INCLUDE
X$`20symb/summ=libr`20sys$share:starlet/incl
X$`20if`20.not.`20$severity`20then`20goto`20ERR_EXEC
X$`20put`20""
X$`20put`20"Installation`20verification`20complete,`20termination`20status:`20s
Vuccess"
X$`20put`20""
X$`20exit`201
X$`20!
X$`20!`20Check_file`20error`20routine
X$`20!
X$`20CHECK_FILE:
X$`20if`20f$sear`20(file)`20.nes.`20""`20then`20retu
X$`20put`20""
X$`20put`20"`20`20The`20file`20''file'"
X$`20put`20"`20`20could`20`20not`20`20be`20found`20`20on`20the`20`20expected`20
Vdirectory.`20`20This`20file`20is
X$`20put`20"`20`20created`20during`20the`20installation`20`20and`20is`20require
Vd`20for`20the`20SYMBOL
X$`20put`20"`20`20command.
X$`20put`20""
X$`20put`20"`20`20You`20should`20re-run`20the`20installation`20procedure`20and
V`20check`20for`20some
X$`20put`20"`20`20error`20messages`20displayed.
X$`20put`20""
X$`20put`20"`20`20Installation`20verification`20incomplete,`20termination`20sta
Vtus:`20error"
X$`20put`20""
X$`20exit`20fail
X$`20!
X$`20!`20Failure`20on`20execution`20of`20SYMBOLS`20command
X$`20!
X$`20ERR_EXEC:
X$`20type`20sys$input
X
X`20`20There`20was`20an`20error`20during`20the`20execution`20`20of`20the`20SYMB
VOLS`20command.`20`20You
X`20`20should`20re-run`20the`20installation`20procedure`20and`20`20check`20for
V`20some`20error`20or
X`20`20warning`20messages`20during`20the`20installation.
X
X`20`20Installation`20verification`20incomplete,`20termination`20status:`20erro
Vr
X
X$`20exit`20fail
X$`20!
X$`20!`20User`20should`20execute`20the`20startup`20procedure
X$`20!
X$`20START:
X$`20type`20sys$input
X
X`20`20All`20required`20files`20were`20found,`20but`20the`20startup`20environme
Vnt`20was`20not`20set.
X`20`20Please`20execute`20the`20SYMBOLS`20startup`20procedure`20by`20typing
X
X`20`20$`20@SYS$STARTUP:SYMBOLS$STARTUP
X
X`20`20After`20execution`20of`20the`20startup`20procedure,`20re-run`20this`20pr
Vocedure.
X
X`20`20The`20SYMBOLS`20startup`20file`20should`20be`20already`20included`20in
V`20your`20system
X`20`20startup`20database.`20`20See`20the`20system`20manager`20utility`20(SYSMA
VN)`20command
X`20`20reference`20for`20more`20information`20about`20examing`20and`20including
V`20startup
X`20`20files`20`20in`20the`20system`20startup`20database.
X
X`20`20Installation`20verification`20incomplete,`20termination`20status:`20warn
Ving
X
X$`20exit`20fail
$ call unpack SYMBOLS$IVP.COM;1 3678297887 "" 9 13 21
$!
$ create 'f'
X$`20!
X$`20!`20SYMBOLS$STARTUP.COM
X$`20!`20===================
X$`20!
X$`20!`20Startup`20file`20for`20the`20SYMBOLS`20utility.
X$`20!
X$`20!`20-----------------------------------------------------------------
X$`20!
X$`20!`20PLEASE`20NOTE:
X$`20!`20------------
X$`20!
X$`20!`20V1.0`20(P)`201989`20by`20Ferry`20Bolh`E1r`20(b...@adv.magwien.gv.at)
X$`20!`20V2.0`20(P)`201993`20by`20Peter`20Gallasch`20(g...@adv.magwien.gv.at)
X$`20!
X$`20!`20Use`20this`20software`20at`20your`20own`20risk`20and`20"as-is".`20Prov
Vide`20it`20as`20you`20want,
X$`20!`20but`20for`20non-commercial`20use`20only.`20No`20warranty`20is`20expres
Vsed`20or`20implied`20and
X$`20!`20no`20liability`20can`20be`20accepted`20for`20any`20actions`20or`20circ
Vumstances`20incurred
X$`20!`20from`20the`20use`20of`20this`20software`20or`20from`20the`20informatio
Vn`20contained`20herein.
X$`20!`20The`20authors`20make`20no`20claim`20as`20to`20the`20suitability`20of
V`20this`20software`20for`20a
X$`20!`20particual`20purpose.
X$`20!
X$`20!`20This`20software`20may`20be`20copied`20and`20distributed`20only`20with
V`20the`20inclusion`20of
X$`20!`20this`20copyright`20notice.
X$`20!
X$`20!`20Any`20suggestions`20are`20very`20appreciated,`20please`20mail`20to`20t
Vhe`20above`20addresses.
X$`20!
X$`20!`20-----------------------------------------------------------------
X$`20!
X$`20version`20=`20"020"
X$`20!
X$`20prvpr`20=`20f$setp`20("SYSPRV,SYSNAM,CMKRNL")
X$`20if`20.not.`20f$priv`20("SYSPRV,SYSNAM,CMKRNL")`20then`20goto`20NO_PRIV
X$`20!
X$`20file`20=`20"SYS$SYSTEM:SYMBOLS.EXE"
X$`20if`20f$sear`20(file)`20.eqs.`20""`20then`20goto`20NO_FILE
X$`20if`20f$file`20(file,`20"KNOWN")`20then`20inst`20remo`20'file'
X$`20inst`20add`20'file'/open/head/shar
X$`20!
X$`20file`20=`20"SYS$MESSAGE:SYMBOLS$MSG.EXE"
X$`20if`20f$sear`20(file)`20.eqs.`20""`20then`20goto`20NO_FILE
X$`20if`20f$file`20(file,`20"KNOWN")`20then`20inst`20remo`20'file'
X$`20inst`20add`20'file'/open/head/shar
X$`20!
X$`20defi/syst/exec/nolog`20SYMBOLS$VERSION`20"''version'"
X$`20x`20=`20f$setp`20(prvpr)
X$`20exit
X$`20!
X$`20NO_FILE:
X$`20writ`20sys$output`20"%SYMBOLS-F-INSFAIL,`20failed`20to`20install`20''file'
V"
X$`20exit`20%x00018292
X$`20!
X$`20NO_PRIV:
X$`20writ`20sys$output`20"%SYMBOLS-F-NOSTART,`20cannot`20perform`20startup`20pr
Vocedure"
X$`20exit`20%x00000684
$ call unpack SYMBOLS$STARTUP.COM;1 2421295081 "" 4 14 21
$!
$ create 'f'
X1`20SYMBOLS
X
X`20`20`20SYMBOLS`20is`20a`20tool`20which`20allows`20programmers`20to`20extract
V`20symbol`20definitions
X`20`20`20from`20object`20files,`20object`20libraries,`20shareable`20images`20o
Vr`20symbol`20tables.
X`20`20`20It`20performs`20operations`20similar`20`20to`20ANALYZE/OBJECT`20or`20
V/IMAGE,`20however,
X`20`20`20SYMBOLS's`20output`20is`20in`20a`20more`20compressed`20form.`20`20Als
Vo,`20in`20contrast`20to
X`20`20`20ANALYZE,`20you`20may`20specify`20a`20symbol`20name`20and`20some`20cha
Vracteristics`20to
X`20`20`20restrict`20the`20search`20to`20certain`20symbol`20types`20and`20class
Ves.
X
X`20`20`20Syntax:
X
X`20`20`20`20`20`20`20`20$`20SYMBOLS`20`20Input_file`20`5BSymbol_name`5D
X
X2`20Parameters
X
XInput_file
X
X`20`20`20Specifies`20the`20input`20file`20containing`20symbol`20definitions.
V`20Wildcards
X`20`20`20are`20allowed`20in`20the`20file`20specification.
X
X`20`20`20The`20input`20file(s)`20can`20be`20any`20of`20the`20following:
X`20`20`20
X`20`20`20o`20an`20object`20file`20or`20a`20symbol`20table,`20containing`20reco
Vrds`20in`20either`20VAX
X`20`20`20`20`20or`20Alpha`20object`20language.`20Missing`20fields`20in`20the
V`20file`20specification
X`20`20`20`20`20of`20Input_file`20are`20taken`20from`20SYS$DISK:`5B`5D.STB.
X
X`20`20`20o`20an`20object`20library,`20containing`20object`20modules.`20Missing
V`20fields`20in
X`20`20`20`20`20the`20file`20specification`20of`20Input_file`20are`20taken`20fr
Vom`20SYS$DISK:`5B`5D.OLB.
X`20`20`20`20`20You`20must`20specify`20the`20/INCLUDE`20qualifier,`20so`20that
V`20SYMBOLS`20interprets
X`20`20`20`20`20Input_file`20as`20an`20object`20library.
X
X`20`20`20o`20a`20shareable`20image.`20The`20symbols`20are`20extracted`20from
V`20the`20image's
X`20`20`20`20`20Global`20Symbol`20Table`20(GST).`20Missing`20fields`20in`20the
V`20file`20specification
X`20`20`20`20`20of`20Input_file`20are`20taken`20from`20SYS$SHARE:.EXE.`20You`20
Vmust`20specify`20the
X`20`20`20`20`20/IMAGE`20`20qualifier,`20so`20that`20SYMBOLS`20interprets`20Inp
Vut_file`20as`20a
X`20`20`20`20`20shareable`20image.
X
X
XSymbol_name
X
X`20`20`20Specifies`20the`20name`20of`20a`20symbol`20for`20which`20you`20want
V`20to`20display`20informa-
+-+-+-+-+-+-+-+- END OF PART 3 +-+-+-+-+-+-+-+-

0 new messages