Article 766 of vmsnet.sources:
Submitted-by: Ferry Bolhar-Nordenkampf <bol@adv.magwien.gv.at>
Posting-number: Volume 8, Issue 7
Archive-name: symbols/part04

-+-+-+-+-+-+-+-+ START OF PART 4 -+-+-+-+-+-+-+-+
X`20`20`20tion.`20If`20you`20omit`20this`20parameter,`20information`20for`20all
V`20symbols`20defined
X`20`20`20in`20the`20input`20file`20is`20displayed.
X
X`20`20`20Symbol_name`20may`20contain`20wildcards.
X
X
X2`20Qualifiers
X
X/ABSOLUTE
X`20`20/ABSOLUTE
X
X`20`20Requests`20that`20only`20symbols`20with`20absolute`20values`20are`20disp
Vlayed.`20By
X`20`20default,`20information`20for`20all`20symbols`20(absolute`20and`20relocat
Vable)`20is
X`20`20displayed.
X
X/DECIMAL
X`20`20/DECIMAL
X
X`20`20Requests`20the`20output`20in`20decimal`20format.`20The`20default`20is`20
Vhexadecimal.
X
X`20`20/DECIMAL`20and`20/OCTAL`20are`20mutually`20exclusive.
X`20
X
X/FORMAT
X`20`20/FORMAT`5B=Format_spec`5D
X
X`20`20Specifies`20the`20output`20format.`20By`20default,`20the`20information
V`20is`20displayed
X`20`20as`20"formatted"`20output`20with`20headlines`20and`20summary`20messages.
V
X
X`20`20Format_spec`20can`20take`20the`20following`20values:
X`20`20`20
X`20`20o`20/FORMAT=BRIEF
X
X`20`20Requests`20that`20only`20the`20symbol`20name`20and`20its`20value`20are
V`20displayed.
X`20`20`20
X`20`20o`20/FORMAT=RAW
X
X`20`20The`20output`20is`20displayed`20without`20headlines`20and`20graphics`20f
Vor`20further
X`20`20use`20with`20text`20filters.
X
X
X/GLOBAL
X`20`20/GLOBAL
X
X`20`20Requests`20that`20only`20symbols`20defined`20as`20global`20are`20display
Ved.`20By`20default,
X`20`20information`20for`20all`20symbols`20(global,`20local`20and`20universal)
V`20is`20displayed.
X
X`20`20The`20/GLOBAL`20and`20/LOCAL`20qualifiers`20are`20mutually`20exclusive.
V
X
X
X/IDENTIFICATION
X`20`20/IDENTIFICATION=Type
X`20`20`20
X`20`20`20Requests`20that`20only`20symbols`20with`20the`20specified`20id`20are
V`20displayed.
X`20`20`20Possible`20types`20are:`20ENV,`20EPM,`20EPMM,`20EPMV,`20EPMW,`20IDC,
V`20GPS,`20LEPM,
X`20`20`20LPRO,`20LSY,`20PRO,`20PROM,`20PROV,`20PROW,`20PSC,`20SGPS,`20SPSC,`20
VSYM,`20SYMG,`20SYMM,
X`20`20`20SYMV`20and`20SYMW.`20Not`20all`20types`20are`20implemented`20on`20bot
Vh`20platforms.
X
X`20`20`20Wildcards`20are`20allowed.
X
X
X/IMAGE
X`20`20/IMAGE
X
X`20`20Requests`20that`20input`20file`20is`20to`20be`20interpreted`20as`20VMS
V`20native`20image.
X`20`20This`20qualifier`20must`20appear`20immediately`20after`20the`20file`20sp
Vecification.
X`20`20Missing`20fields`20in`20the`20file`20specification`20are`20taken`20from
V`20SYS$SHARE:.EXE.
X
X`20`20`20The`20/IMAGE`20and`20/INCLUDE`20qualifiers`20are`20mutually`20exclusi
Vve.
X
X
X/INCLUDE
X`20`20/INCLUDE`5B=Module`5D
X
X`20`20Requests`20that`20input`20file`20is`20to`20be`20interpreted`20as`20a`20V
VMS`20object`20library.
X`20`20This`20qualifier`20must`20appear`20immediately`20after`20the`20file`20sp
Vecification.
X`20`20Missing`20fields`20in`20the`20file`20specification`20are`20taken`20from
V`20SYS$DISK:`5B`5D.OLB.
X`20`20`20
X`20`20'Module'`20specifies`20the`20name`20of`20the`20module`20from`20which`20s
Vymbols`20are`20to`20be
X`20`20extracted.`20It`20may`20contain`20wildcards`20and`20defaults`20to`20*,
V`20which`20means
X`20`20that`20all`20modules`20in`20the`20library`20are`20processed.
X
X`20`20The`20/INCLUDE`20and`20/IMAGE`20qualifiers`20are`20mutually`20exclusive.
V
X
X`20`20`20
X/LITERAL
X`20`20/LITERAL
X
X`20`20Requests`20that`20only`20symbols`20for`20literal`20definitions`20are`20d
Visplayed.
X`20`20By`20default,`20information`20for`20all`20symbols`20is`20displayed.
X
X
X/LOCAL
X`20`20/LOCAL
X
X`20`20Requests`20that`20only`20module-local`20symbols`20are`20displayed.`20By
V`20default,
X`20`20information`20for`20all`20symbols,`20global,`20local`20and`20universal,
V`20is`20displayed.
X
X`20`20Note:`20This`20type`20of`20symbols`20exists`20for`20VAX`20object`20modul
Ves`20only.
X
X`20`20The`20/GLOBAL`20and`20/LOCAL`20qualifiers`20are`20mutually`20exclusive.
V
X
X
X/OCTAL
X`20`20/OCTAL
X
X`20`20Requests`20the`20output`20in`20octal`20format.`20The`20default`20is`20he
Vxadecimal.
X
X`20`20/DECIMAL`20and`20/OCTAL`20are`20mutually`20exclusive.
X
X
X/OUTPUT
X`20`20/OUTPUT`5B=file_spec`5D
X`20`20/NOOUTPUT
X
X`20`20Controls`20where`20the`20output`20of`20the`20command`20is`20sent.`20By
V`20default,`20output
X`20`20is`20sent`20to`20the`20current`20SYS$OUTPUT`20device`20(usually`20the`20
Vterminal).`20To
X`20`20send`20the`20output`20to`20a`20file,`20use`20the`20/OUTPUT`20qualifier
V`20followed`20by`20a
X`20`20file`20specification.`20The`20file`20specification`20may`20not`20include
V`20wildcard
X`20`20characters.
X
X`20`20/NOOUTPUT`20supresses`20any`20output.
X
X
X/PROCEDURE
X`20`20/PROCEDURE
X
X`20`20Requests`20that`20only`20symbols`20for`20procedure`20entry`20definitions
V`20are`20dis-
X`20`20played.`20By`20default,`20information`20for`20all`20symbols`20is`20displ
Vayed.
X
X
X/RELOCATABLE
X`20`20/RELOCATABLE
X
X`20`20Requests`20that`20only`20symbols`20defined`20as`20relocatable`20are`20di
Vsplayed.
X`20`20By`20default,`20information`20for`20all`20symbols`20(absolute`20and`20re
Vlocatable)
X`20`20is`20displayed.
X
X
X/SET
X`20`20/SET`5B=dcl_symbol`5D
X`20`20`20
X`20`20Requests`20to`20define`20for`20each`20matched`20symbol`20in`20the`20inpu
Vt`20file`20a`20DCL`20local
X`20`20symbol.`20The`20DCL`20symbol`20is`20defined`20with`20the`20value`20of`20
Vthe`20symbol`20from`20the
X`20`20input`20file.`20The`20DCL`20symbol`20is`20named`20as`20the`20symbol`20fr
Vom`20the`20input`20file
X`20`20unless`20you`20specify`20a`20value`20for`20the`20/SET`20qualifier.
X`20`20`20
X`20`20If`20you`20specifiy`20a`20value`20for`20`20the`20/SET`20qualifier,`20the
V`20DCL`20symbol`20is`20named
X`20`20'dcl_symbol'.`20In`20this`20case`20you`20must`20also`20specify`20P2`20(S
Vymbol_name),`20and
X`20`20P2`20must`20not`20contain`20wildcards.
X
X
X/STATISTICS
X`20`20/STATISTICS
X
X`20`20Displays`20some`20accounting`20information`20(number`20of`20processed`20
Vfiles,`20symbols
X`20`20found,`20symbols`20displayed)`20about`20the`20search`20pass.
X
X
X/STRONG
X`20`20/STRONG
X
X`20`20Requests`20that`20only`20symbols`20defined`20as`20strong`20are`20display
Ved.`20By`20default,
X`20`20information`20for`20all`20symbols`20is`20displayed.
X
X
X/SUMMARY
X`20`20/SUMMARY`5B=option`5B,option`5D`5D
X
X`20`20Requests`20that`20only`20summary`20information`20is`20displayed.
X`20`20`20
X`20`20option`20can`20take`20the`20following`20values:
X`20`20`20
X`20`20o`20/SUMMARY=LIBRARY`20displays`20one`20summary`20line`20for`20the`20who
Vle`20library.`20The
X`20`20`20`20default`20is`20to`20display`20one`20summary`20line`20for`20each`20
Vmodule`20in`20the`20library.
X`20`20`20`20You`20can`20specify`20the`20LIBRARY`20keyword`20together`20with`20
V/INCLUDE`20only.
X
X`20`20o`20/SUMMARY=MATCH`20suppresses`20the`20summary`20line`20unless`20at`20l
Veast`20one`20matched
X`20`20`20`20symbol`20is`20found.`20The`20default`20is`20to`20display`20the`20s
Vummary`20line`20always,
X`20`20`20`20regardless`20of`20a`20matched`20symbol`20was`20found`20or`20not.
X
X`20`20If`20you`20specify`20both`20keywords,`20enclose`20them`20in`20parenthese
Vs.
X
X
X/UNIVERSAL
X`20`20/UNIVERSAL
X
X`20`20Requests`20that`20only`20symbols`20defined`20as`20universal`20are`20disp
Vlayed.`20By
X`20`20default,`20information`20for`20all`20symbols`20(global,`20local`20and`20
Vuniversal)
X`20`20is`20displayed.
X
X`20`20The`20/UNIVERSAL`20and`20/LOCAL`20qualifiers`20are`20mutually`20exclusiv
Ve.
X
X
X/VAX
X`20`20/VAX
X
X`20`20`20On`20Alpha`20systems,`20specifies`20that`20the`20analyzed`20file`20wa
Vs`20created`20on`20a
X`20`20`20VAX`20system,`20containing`20records`20in`20VAX`20object`20language.
V`20`20If`20you`20omit
X`20`20`20this`20qualifier,`20the`20input`20file`20must`20contain`20records`20i
Vn`20Alpha`20object
X`20`20`20language.
X
X`20`20`20Analyzing`20Alpha`20records`20on`20VAX`20systems`20is`20not`20current
Vly`20supported.
X
X
X/WEAK
X`20`20/WEAK
X
X`20`20Requests`20that`20only`20symbols`20defined`20as`20weak`20are`20displayed
V`20(the`20WEAK
X`20`20bit`20in`20the`20symbols's`20flags`20field`20is`20set).`20By`20default,
V`20information
X`20`20for`20all`20symbols`20is`20displayed.
X
X
X2`20Examples
X
X`20`201)`20$`20SYMBOLS`20SYS$SYSTEM:DFSSDEF`20COM$*/OUTPUT=COM.SYM
X
X`20`20This`20command`20displays`20all`20symbols`20defined`20in`20the`20system
V`20symbol`20table
X`20`20DFSSDEF.STB`20starting`20with`20"COM$".`20The`20output`20is`20written`20
Vto`20the`20file
X`20`20COM.SYM.
X
X
X`20`202)`20$`20SYMBOLS/FORMAT=BRIEF/OCTAL/STATISTICS`20LIBRTL/IMAGE`20LIB$SET*
V
X`20`20
X`20`20This`20command`20displays`20all`20symbols`20defined`20in`20the`20GST`20o
Vf`20shareable`20image
X`20`20SYS$SHARE:LIBRTL.EXE`20whose`20names`20start`20with`20"LIB$SET".`20Only
V`20the`20names
X`20`20and`20values`20(in`20octal`20form)`20are`20displayed.`20The`20display`20
Vincludes`20sta-
X`20`20tistical`20information.
X
X
X`20`203)`20$`20SYMBOLS/RELOCATABLE/PROCEDURE/LOCAL`20TEST.OBJ`20(on`20VAX)
X`20`20`20`20`20$`20SYMBOLS/VAX/RELOCATABLE/PROCEDURE/LOCAL`20TEST.OBJ`20(on`20
VAlpha)
X
X`20`20This`20command`20will`20extract`20all`20module-local`20symbols`20from`20
Vthe`20VAX`20object
X`20`20"TEST.OBJ"`20which`20are`20defined`20as`20relocatable`20and`20are`20used
V`20as`20procedure
X`20`20entry`20points.`20Note`20that`20this`20type`20of`20symbols`20exists`20in
V`20the`20VAX`20object
X`20`20language`20only.
X
X
X`20`204)`20$`20SYMBOLS/SUMMARY=LIBRARY`20SYS$SHARE:*/INCLUDE
X
X`20`20This`20command`20displays`20for`20each`20of`20the`20libraries`20on`20SYS
V$SHARE:*.OLB
X`20`20one`20summary`20line.
X
X
X`20`205)`20$`20SYMBOLS/SUMMARY=MATCH`20SYS$SHARE:*/INCLUDE`20LIB$GET_INPUT
X
X`20`20This`20command`20searches`20all`20modules`20in`20the`20libraries`20SYS$S
VHARE:*.OLB
X`20`20and`20displays`20a`20summary`20line`20for`20the`20module`20that`20define
Vs`20the`20symbol
X`20`20LIB$GET_INPUT.
$ call unpack SYMBOLS.HLP;1 1381986069 "" 18 15 21
$!
$ create 'f'
X.facility`09SYMBOLS,`202020/system
X
X.severity`09informational
X
XNOMOD`09`09"no`20matching`20modules`20found"
X
X
X.severity`09warning
X
XBADIMAGE`09"!AS`20is`20not`20a`20VMS`20native`20image"`20/fao=1
XBADOBJMOD`09"object`20module`20is`20not`20readable"
XBADREC`09`09"illegal`20GSD`20record`20skipped,`20record`20#!UL,`20ID`20#!UB"
V`20/fao=2
XMULDEF`09`09"symbol`20!AS`20multiply`20defined"`20/fao=1
XNOOBJLIB`09"!AS`20is`20no`20!AS`20object`20library"`20/fao=2
X
X
X.severity`09error
X
XIOIN`09`09"I/O`20error`20on`20input`20file`20!AS"`20/fao=1
XOPENINFAIL`09"open`20failure`20on`20input`20file`20!AS"`20/fao=1
XOPENOUTFAIL`09"open`20failure`20on`20output`20file`20!AS"`20/fao=1
$ call unpack SYMBOLS.MSG;1 877727467 "" 2 16 21
$!
$ create 'f'
Xdefine`20type`20format
X`20`20`20`20`20`20`20`20keyword`20BRIEF
X`20`20`20`20`20`20`20`20keyword`20RAW
X!
Xdefine`20type`20sumtype
X`20`20`20`20`20`20`20`20keyword`20LIBRARY
X`20`20`20`20`20`20`20`20keyword`20MATCH
X!
Xdefine`20verb`20SYMBOLS`20image`20SYMBOLS
X!
Xparameter`20p1,`20label=INFILE,`20prompt="File",`20value`20(required,`20type
V`20=`20$file)
Xparameter`20p2,`20label`20=`20SYMBOL,`20prompt`20=`20"Symbol",`20value`20!`20(
Vtype`20=`20$sym)
X!
Xqualifier`20ABSOLUTE,`20nonnegatable
Xqualifier`20DECIMAL,`20nonnegatable
Xqualifier`20FORMAT,`20nonnegatable,`20value`20(type`20=`20format)
Xqualifier`20GLOBAL,`20nonnegatable
Xqualifier`20IDENTIFICATION,`20nonnegatable,`20value`20(required)
Xqualifier`20IMAGE,`20nonnegatable,`20placement`20=`20local
Xqualifier`20INCLUDE,`20nonnegatable,`20placement`20=`20local`20value`20(`20def
Vault`20=`20"*"`20)
Xqualifier`20LITERAL,`20nonnegatable
Xqualifier`20LOCAL,`20nonnegatable
Xqualifier`20OCTAL,`20nonnegatable
Xqualifier`20OUTPUT,`20default,`20value`20(default`20=`20SYS$OUTPUT,`20type`20=
V`20$file)
Xqualifier`20PROCEDURE,`20nonnegatable
Xqualifier`20PSC,`20nonnegatable
Xqualifier`20RELOCATABLE,`20nonnegatable
Xqualifier`20SET,`20nonnegatable,`20value
Xqualifier`20STATISTICS,`20nonnegatable
Xqualifier`20STRONG,`20nonnegatable
Xqualifier`20SUMMARY,`20nonnegatable,`20value`20(type`20=`20sumtype,`20list)
Xqualifier`20UNIVERSAL,`20nonnegatable
Xqualifier`20VAX,`20nonnegatable
Xqualifier`20WEAK,`20nonnegatable
X!
Xdisallow`20not`20BRIEF`20and`20(DECIMAL`20or`20OCTAL)
Xdisallow`20DECIMAL`20and`20OCTAL
Xdisallow`20FORMAT`20and`20SET
Xdisallow`20PSC`20and`20(ABSOLUTE`20or`20GLOBAL`20or`20LITERAL`20or`20PROCEDURE
V`20or`20RELOCATABLE`20or
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20STRONG`20or`20UNIVERSAL`20or
V`20WEAK)
Xdisallow`20IMAGE`20and`20INCLUDE
Xdisallow`20not`20INCLUDE`20and`20SUMMARY.LIBRARY
Xdisallow`20LOCAL`20and`20(GLOBAL`20or`20UNIVERSAL`20or`20not`20VAX)
Xdisallow`20OUTPUT`20and`20SET
$ call unpack SYMBOLS_AXP.CLD;1 1681594945 "" 4 17 21
$!
$ create 'f'
Xdefine`20type`20format
X`20`20`20`20`20`20`20`20keyword`20BRIEF
X`20`20`20`20`20`20`20`20keyword`20RAW
X!
Xdefine`20type`20sumtype
X`20`20`20`20`20`20`20`20keyword`20LIBRARY
X`20`20`20`20`20`20`20`20keyword`20MATCH
X!
Xdefine`20verb`20SYMBOLS`20image`20SYMBOLS
X!
Xparameter`20p1,`20label=INFILE,`20prompt="File",`20value`20(required,`20type
V`20=`20$file)
Xparameter`20p2,`20label`20=`20SYMBOL,`20prompt`20=`20"Symbol",`20value`20!`20(
Vtype`20=`20$sym)
X!
Xqualifier`20ABSOLUTE,`20nonnegatable
Xqualifier`20DECIMAL,`20nonnegatable
Xqualifier`20FORMAT,`20nonnegatable,`20value`20(type`20=`20format)
Xqualifier`20GLOBAL,`20nonnegatable
Xqualifier`20IDENTIFICATION,`20nonnegatable,`20value`20(required)
Xqualifier`20IMAGE,`20nonnegatable,`20placement`20=`20local
Xqualifier`20INCLUDE,`20nonnegatable,`20placement`20=`20local`20value`20(`20def
Vault`20=`20"*"`20)
Xqualifier`20LITERAL,`20nonnegatable
Xqualifier`20LOCAL,`20nonnegatable
Xqualifier`20OCTAL,`20nonnegatable
Xqualifier`20OUTPUT,`20default,`20value`20(default`20=`20SYS$OUTPUT,`20type`20=
V`20$file)
Xqualifier`20PROCEDURE,`20nonnegatable
Xqualifier`20PSC,`20nonnegatable
Xqualifier`20RELOCATABLE,`20nonnegatable
Xqualifier`20SET,`20nonnegatable,`20value
Xqualifier`20STATISTICS,`20nonnegatable
Xqualifier`20STRONG,`20nonnegatable
Xqualifier`20SUMMARY,`20nonnegatable,`20value`20(type`20=`20sumtype,`20list)
Xqualifier`20UNIVERSAL,`20nonnegatable
Xqualifier`20WEAK,`20nonnegatable
X!
Xdisallow`20not`20BRIEF`20and`20(DECIMAL`20or`20OCTAL)
Xdisallow`20DECIMAL`20and`20OCTAL
Xdisallow`20FORMAT`20and`20SET
Xdisallow`20PSC`20and`20(ABSOLUTE`20or`20GLOBAL`20or`20LITERAL`20or`20PROCEDURE
V`20or`20RELOCATABLE`20or
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20STRONG`20or`20UNIVERSAL`20or
V`20WEAK)
Xdisallow`20IMAGE`20and`20INCLUDE
Xdisallow`20not`20INCLUDE`20and`20SUMMARY.LIBRARY
Xdisallow`20LOCAL`20and`20(GLOBAL`20or`20UNIVERSAL)
Xdisallow`20OUTPUT`20and`20SET
$ call unpack SYMBOLS_VAX.CLD;1 2002716976 "" 4 18 21
$!
$ create 'f'
X/*
X`20*
X`20*`20UIO_RMS.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(bol@adv.magwien.gv.at)
X`20*`20V2.0`20(P)`201993`20by`20Peter`20Gallasch`20(gal@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*`20Ein-`20und`20Ausabgeroutinen,`20Zugriffsroutinen`20auf`20Files.
X`20*
X`20*/
X#include`20<stdlib.h>
X#include`20<starlet.h>
X#include`20<string.h>
X#include`20<rms.h>
X#include`20<starlet.h>
X#include`20"uio_rms.h"
X
X/*`20int`20stv;`20`20`20`20`20`20`20`20`20`20`20`20`20`20RMS`20secondary`20sta
Vtus`20value`20*/
X
Xstatic`20struct`20sufile
X`7B
X`20`20`20struct`20FAB`20fab;
X`20`20`20struct`20NAM`20nam;
X`20`20`20struct`20RAB`20rab;
X`20`20`20char`20*iblock;`20`20`20`20`20`20`20`20`20/*`20next`20address`20to`20
Vread`20*/
X`20`20`20char`20*mblock;`20`20`20`20`20`20`20`20`20/*`20end`20of`20user`20data
V`20*/
X`20`20`20char`20block`5B16*512`5D;`20`20`20/*`20must`20be`20a`20multiple`20of
V`20512`20*/
X`7D`20ufile;
X
Xint`20uopen`20(`20char`20*fn,`20char`20*dfn,`20char`20*efn,`20short`20efnlen,
V`20int`20*stv_a)
X/*`20fn`20`20`20`20`20`20`20file`20to`20be`20opened`20`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*
X`20*`20dfn`20`20`20`20`20`20default`20filename`20`20`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*
X`20*`20efn`20`20`20`20`20`20expanded`20filename;`20returned`20`20`20`20`20`20
V`20`20`20`20`20`20`20`20`20`20*
X`20*`20efnlen`20`20`20uopen`20writes`20maximal`20efnlen`20bytes`20into`20efn
V`20*/
X`7B
X`20`20`20int`20status;
X
X`20`20`20*stv_a`20=`200;
X`20`20`20if`20(ufile.fab.fab$w_ifi)`20return`20RMS$_IFI;`20/*`20maximum`20one
V`20file`20can`20be`20uopen`20at`20any`20time`20*/
X
X`20`20`20ufile.fab`20=`20cc$rms_fab;
X`20`20`20ufile.fab.fab$l_fna`20=`20fn;
X`20`20`20ufile.fab.fab$b_fns`20=`20strlen(fn);
X`20`20`20ufile.fab.fab$l_dna`20=`20dfn;
X`20`20`20ufile.fab.fab$b_dns`20=`20strlen(dfn);
X`20`20`20ufile.fab.fab$b_fac`20=`20FAB$M_BIO`20`7C`20FAB$M_GET;
X`20`20`20ufile.fab.fab$b_shr`20=`20FAB$M_SHRGET;
X`20`20`20ufile.fab.fab$l_nam`20=`20`26ufile.nam;
X
X`20`20`20ufile.nam`20=`20cc$rms_nam;
X`20`20`20ufile.nam.nam$l_rsa`20=`20ufile.nam.nam$l_esa`20=`20efn;
X`20`20`20ufile.nam.nam$b_rss`20=`20ufile.nam.nam$b_ess`20=`20(efnlen-1);
X
X`20`20`20status`20=`20sys$open(`26ufile.fab,0,0);
X`20`20`20*(efn`20+`20(ufile.nam.nam$b_rsl`20?`20ufile.nam.nam$b_rsl`20:`20ufil
Ve.nam.nam$b_esl))`20=`200;
X`20`20`20*stv_a`20=`20ufile.fab.fab$l_stv;
X`20`20`20if`20(!(status`261))`20return`20status;
X
X`20`20`20ufile.rab`20=`20cc$rms_rab;
X`20`20`20ufile.rab.rab$l_fab`20=`20`26ufile.fab;
X`20`20`20ufile.rab.rab$l_ubf`20=`20ufile.block;
X`20`20`20ufile.rab.rab$w_usz`20=`20sizeof(ufile.block);
X
X`20`20`20status`20=`20sys$connect(`26ufile.rab,0,0);
X`20`20`20*stv_a`20=`20ufile.rab.rab$l_stv;
X`20`20`20if`20(!(status`261))`20return`20status;
X
X`20`20`20ufile.mblock`20`20`20`20=`200;
X`20`20`20ufile.iblock`20`20`20`20=`20ufile.block;
X`20`20`20return`20RMS$_NORMAL;
X`7D
X
Xint`20uread`20(`20char`20*abuf,`20unsigned`20short`20size,`20unsigned`20short
V`20*alen,`20int`20*stv_a)
X`7B
X`20`20`20int`20status;
X`20`20`20unsigned`20short`20rsize,len1;
X`20`20`20char`20*iblock1;
X
X`20`20`20*alen`20=`200;
X`20`20`20*stv_a`20=`200;
X`20`20`20if`20(!ufile.fab.fab$w_ifi)`20return`20RMS$_IFI;
X
X`20`20`20rsize`20=`20size;
X`20`20`20while`20(rsize`20>`200)
X`20`20`20`7B
X`20`20`20`20`20`20if`20(ufile.iblock`20>`20ufile.mblock)
X`20`20`20`20`20`20`7B
X`20`20`20`20`20`20`20`20`20ufile.rab.rab$l_bkt`20=`200;`20/*`20read`20accordin
Vg`20NBP`20*/
X`20`20`20`20`20`20`20`20`20status`20=`20sys$read(`26ufile.rab,0,0);
X`20`20`20`20`20`20`20`20`20*stv_a`20=`20ufile.rab.rab$l_stv;
X#ifdef`20DEBUG
Xprintf("status`20%d`20rsz`20%u`5Cn",status,ufile.rab.rab$w_rsz);
X#endif
X`20`20`20`20`20`20`20`20`20if`20(status`20==`20RMS$_EOF)`20return`20RMS$_NORMA
VL;
X`20`20`20`20`20`20`20`20`20if`20(!(status`261))`20return`20status;
X`20`20`20`20`20`20`20`20`20ufile.iblock`20=`20ufile.block;
X`20`20`20`20`20`20`20`20`20ufile.mblock`20=`20ufile.iblock`20+`20ufile.rab.rab
V$w_rsz`20-`201;
X`20`20`20`20`20`20`7D;
X`20`20`20`20`20`20iblock1`20=`20ufile.iblock`20+`20rsize`20-`201;
X`20`20`20`20`20`20if`20(iblock1`20>`20ufile.mblock)`20iblock1`20=`20ufile.mblo
Vck;
X`20`20`20`20`20`20len1`20=`20iblock1`20-`20ufile.iblock`20+`201;
X`20`20`20`20`20`20memcpy(abuf+(*alen),ufile.iblock,len1);
X`20`20`20`20`20`20*alen`20`20`20`20`20`20`20`20+=`20len1;
X`20`20`20`20`20`20ufile.iblock`20+=`20len1;
X`20`20`20`20`20`20rsize`20`20`20`20`20`20`20`20-=`20len1;
X`20`20`20`7D;
X`20`20`20return`20RMS$_NORMAL;
X`7D
X
Xint`20uclose`20(int`20*stv_a)
X`7B
X`20`20`20int`20status;
X`20`20`20*stv_a`20=`200;
X`20`20`20if`20(ufile.fab.fab$w_ifi)
X`20`20`20`7B
X`20`20`20`20`20`20status`20=`20sys$close(`26ufile.fab,0,0);
X`20`20`20`20`20`20*stv_a`20=`20ufile.fab.fab$l_stv;
X`20`20`20`20`20`20if`20(!(status`261))`20return`20status;
X`20`20`20`7D;
X`20`20`20return`20RMS$_NORMAL;
X`7D
$ call unpack UIO_RMS.C;1 850089412 "" 9 19 21
$!
$ create 'f'
Xint`20uopen`20(char`20*fn,`20char`20*dfn,`20char`20*efn,`20short`20efnlen,`20i
Vnt`20*stv_a);
Xint`20uread`20(char`20*abuf,`20unsigned`20short`20size,`20unsigned`20short`20*
Valen,`20int`20*stv_a);
Xint`20uclose`20(int`20*stv_a);
$ call unpack UIO_RMS.H;1 1501443213 "" 1 20 21
$!
$ create 'f'
X/*`20
X`20*
X`20*`20ZAEHLER.H
X`20*`20=========
X`20*
X`20*/
X
Xtypedef`20struct`20`7B
X`20`20`20`20`20`20`20`20unsigned`20cnt;
X`20`20`20`20`20`20`20`20unsigned`20matched;
X`7D`20zaehler;
$ call unpack ZAEHLER.H;1 1214131058 "" 1 21 21
$ v=f$verify(v)
$ exit


