HDTenEightyP/NetNews huggingface dataset:
From: bill@bill.ab.umd.edu (Bill Bame)
Newsgroups: comp.os.vms
Subject: Re: VAX FORTRAN
Keywords: FORTRAN PRINT QUEUE
Date: 27 Jan 93 19:39:35 GMT
Reply-To: bill@office.ab.umd.edu
Followup-To: comp.os.vms
Organization: M.I.E.M.S.S.

In article <27JAN199309324042@rdth2.rdth.luc.edu>, pbricker@rdth2.rdth.luc.edu (Preston Bricker) writes:
>How do I send a file to a print queue from within a FORTRAN program?
>There should be a hook equivalent to DCL PRINT.
>If you post the answer, please also e-mail it.

If you want to send it to the default print queue (SYS$PRINT) you
can do this...

	CLOSE(LUN,DISPOSE='PRINT')

Otherwise, you can use this (or a simillar) subroutine...

!----------------------------------------------------------------------!
!	Purpose: Send a file to a print queue (bare bones!)            !
!	Author : William P. Bame                                       !
!	History: WPB - 6/86 - Version 1.0 Created                      !
!-----------------------------------------------------------------------
	integer*4 function send_file_to_print_queue(file,queue)
	implicit none
	include '($SJCDEF)'

	structure /itmlst/
	  union
	    map
	      integer buflen*2,itmcod*2,bufadr*4,retadr*4
	    end map
	    map
	      integer*4 end_list
	    end map
	  end union
	end structure
	record /itmlst/ job(3)

	structure /iosb/
	  integer*4 status,zeroed
	end structure
	record /iosb/ iosb

	character queue*(*),file*(*),temp*252
	integer*4 sys$sndjbcw,status

	job(1).buflen=len(queue)
	job(1).itmcod=sjc$_queue
	job(1).bufadr=%loc(queue)

	temp=file
	job(2).buflen=len(file)
	job(2).itmcod=sjc$_file_specification
	job(2).bufadr=%loc(temp)

	job(3).end_list=0

	send_to_printer=sys$sndjbcw(,%val(sjc$_enter_file),,job,iosb,,)
	if (send_to_printer) send_to_printer=iosb.status
	  
	end


>Preston Bricker			pbricker@rdth2.rdth.luc.edu
>Radiotherapy
>Loyola Univ Med Ctr
>

--
--------------------------------------------------------------------------------
William P. Bame                    | sneakernet: William P. Bame
internet: bill@office.ab.umd.edu   |             M.I.E.M.S.S.
          bbame@achi1.ab.umd.edu   |             22 South Greene Street
AT&T    : [Work] (410) 328-3062    |             Baltimore, MD 21201
CIS     : 71620,425                |             Room: T1R55
--------------------------------------------------------------------------------
From: carl@SOL1.GPS.CALTECH.EDU (Carl J Lydick)
Newsgroups: comp.os.vms
Subject: Re: VAXC divide problems (V3.2)
Date: 22 Jan 1993 13:29:05 GMT
Organization: HST Wide Field/Planetary Camera
Distribution: world
Reply-To: carl@SOL1.GPS.CALTECH.EDU
NNTP-Posting-Host: sol1.gps.caltech.edu

In article <1993Jan22.060311.5226@cs.rit.edu>, whd0675@cs.rit.edu (Walter H Dick, III) writes:
>A statement in VAXC such as:
>
>   i = (x + 511) / 512;
>
>generates ten or so instructions.  Is there anyway to get it to generate:
>
>   ADDL3  #511,x,R0
>   DIVL3  R0,#512,i

Yet another unanswerable question!  What version of VAX C are you using?  How
do your results differ from:


TEST                                                            22-JAN-1993 05:23:49    VAX C      V3.2-044                 Page 1
V1.0                                                            22-JAN-1993 05:22:42    $1$DIA0:[CARL]TEST.C;49 (1)



    1        	main()
    2        	{	int x=3, i;
                                          0000	main:
                                    0000  0000		.entry	main,^m<>
                              5E 0C C2    0002		subl2	#12,sp
                       00000000* EF 16    0005		jsb	C$MAIN
                           F8 AD 03 D0    000B		movl	#3,-8(fp)

    3    1   	
    4    1   		i = (x + 511) / 512;
               5C 000001FF 8F F8 AD C1    000F		addl3	-8(fp),#511,ap
                     5C 00000200 8F C6    0018		divl2	#512,ap
                           F4 AD 5C D0    001F		movl	ap,-12(fp)

    5    1   	}
                              50 01 D0    0023		movl	#1,r0
                                    04    0026		ret	
                                    04    0027		ret	

 
 
Command Line
------------
 
CC/LIST/MACH TEST/NOOPT


--------------------------------------------------------------------------------
Carl J Lydick | INTERnet: CARL@SOL1.GPS.CALTECH.EDU | NSI/HEPnet: SOL1::CARL

Disclaimer:  Hey, I understand VAXen and VMS.  That's what I get paid for.  My
understanding of astronomy is purely at the amateur level (or below).  So
unless what I'm saying is directly related to VAX/VMS, don't hold me or my
organization responsible for it.  If it IS related to VAX/VMS, you can try to
hold me responsible for it, but my organization had nothing to do with it.
From: TARKA10@SNYBUFVA.BITNET (Mark Tarka)
Newsgroups: comp.os.vms
Subject: V3 doc set
Date: 23 Jan 93 12:59:53 GMT
Distribution: world
Organization: from SUNY College at Buffalo, NY 14222

incomming:  COM%"INFO-VAX@SRI.COM" 21-JAN-1993 18:20:42.51

About Sabry, you said:

>I even have an old V3 doc set that I might be able to donate to him ...
>have to check on that.

Carl Lydick is looking for manuals to send, and has Sabry's address.

Mark

Mark Tarka  (Addresses valid until 1 April 93; then, bye bye)
tarka10@snybscva.bitnet  vax 6610  vms(5.5-1)  mail(5.0)
tarka10@snybufva.bitnet  vax 6520  vms(5.5-1)  mail(5.0)
From: gezelter@rlgsc.com
Newsgroups: comp.os.vms
Subject: Re: Operator "Grunt" duties
Date: 25 Jan 93 22:31:25 EST
Organization: Robert Gezelter Software Consultant, Flushing, NY

In article <1993Jan24.164210.103@gtewd.mtv.gsc.gte.com>, white@gtewd.mtv.gsc.gte.com writes:
> 	
> 	What qualifications do/should system managers look for in an 
> operator?  From reading the above posts about operators I get the
> impression that operators in general dont have to know anything about
> computers or operating systems.  Are you a qualified operator if you
> can press the up and down arrow keys to select menu items or should you
> be a trusted, knowledgeable memeber of the support team with full privs
> when you want them?
> 	How can an operator take his job seriously if he is locked inside
> some captive command procedure flopping around like a fish out of water?
> 	
> 
> 
> 
> 					Chris W.
> 					Computer Operator
> 
-- 
Chris,
 
It depends upon what the operator "grunt" will be doing. For 
hauling around cartons of paper and loading laser printers with 
more paper, I have seen some sites use very unskilled labor. 
 
For mounting magnetic tapes, and working with modems, and LAN 
equipment, a higher level of skill is generally required. The 
 
Unfortunately, the best answer to your question is often "Yes". 
The mix of skill levels depends on what you are expecting he 
operators to do and what is the skill level of the community in 
general.
 
- Bob
+--------------------------------------------------------------------------+
| Robert "Bob" Gezelter                       E-Mail:  gezelter@rlgsc.com  |
| Robert Gezelter Software Consultant         Voice:   +1 718 463 1079     |
| 35-20 167th Street, Suite 215               Fax:       (on Request)      |
| Flushing, New York  11358-1731                                           |
| United States of America                                                 |
+--------------------------------------------------------------------------+
Newsgroups: comp.os.vms
From: pyron@skndiv.dseg.ti.com (Dillon Pyron)
Subject: Mad Dog Carl
Reply-To: pyron@skndiv.dseg.ti.com
Organization: TI/DSEG VAX Support
Date: Fri, 22 Jan 1993 18:28:36 GMT


Over the years, I've had the pleasure (yes pleasure) of dealing with Carl, Ehud
and a number of others on both comp.os.vms and INFO-VAX before that.  Again,
well asked questions receive accurate help responses (or at least a very polite
"you're screwed").

Then I see questions like the perenial "NEW MAIL COUNT" question.  In a large
university environment, I would expect there to be at least one person with
enough history to answer most of those.  And pleading poverty doesn't work for
me.  Anyone who can't spend $1500 after buying a $30K machine doesn't need
system help, they need hospitalization.  And then, there are those who go along
merrily, believing the world to be their caretaker.  These people get nailed
for bad questions (format, not content), disbelief of answers and other flame
provoking actions.  Finally, a special flame to those of you using INFO-VAX who
send requests to INFO-VAX instead of INFO-VAX-REQUEST.

As far a flame wars go, its not the first flamer who starts the war, it's the
second.  Instead of flaming me, sit back and think "Well fuck you, too!" and
feel superior because you didn't act like an asshole, just like me.
--
Dillon Pyron                      | The opinions expressed are those of the
TI/DSEG Lewisville VAX Support    | sender unless otherwise stated.
(214)462-3556 (when I'm here)     |
(214)492-4656 (when I'm home)     |"I wish I was dead" said Moxie.
pyron@skndiv.dseg.ti.com          |"May your every wish come true" replied Spam
PADI DM-54909                     |      _Bored of the Rings_
From: LABELLES@ZENO.MSCD.EDU (Stephen LaBelle - MSCD)
Newsgroups: comp.os.vms
Subject: Re: operator accounts
Date: 21 Jan 93 02:22:54 GMT
Distribution: world
Organization: The Internet

CXNHJP@MANADON-ENGINEERING-COLLEGE.AC.UK writes:

> Could anybody out there please tell me what the best way to set operator
> accounts up is, ie. should the different operators go though their own 
> accounts, or should there be a common account with full privs. Is it 
> possible to give privs only on request using com, exe programs without 
> having to give the setprv priv initially .... ???

> Any thoughts on this subject would be greatly appreciated.

There is not a best way to setup operator accounts! You must do what works
best for your site.

You can control priviledges and still allow your operators to do their work
by setting up one or more restricted accounts. Look at the restricted flag 
for UAF records. I personally like using the "RESTRICTED" flag, VMS takes care
of some of the security issues as far as breaking out to the dollar sign.
I challenged a couple of my operators to break it they could not.

Someone would then need to setup and design an operator envoronment, 
utilizing DCL or ???. Your operators login to their environment and are 
restricted to it. DCL has to be part of the environment as operator commands
are DCL commands. This could be done as a MENU type thing.

My description is very simplistic. Significant work is needed to do this!
Lots of programming and testing. I have seen this basic concept work at many
VMS sites.

WARNING!!! I would be very careful about creating fully priviledged
accounts unless there is a reason. The ramifications go without saying. 

							Steve

##############################################################################
# Stephen LaBelle                        # Internet : labelles@zeno.mscd.edu #
# Systems Programmer                     #            labelles@clem.mscd.edu #
# Metropolitan State College of Denver   #####################################
# Denver, Colorado  USA                  # Bitnet   : LABELLES@MSCD.BITNET   #
##############################################################################
# DISCLAIMER: The opinions expressed are mine and in no way, shape or form   #
# neccessarily reflect those of Metropolitan State College of Denver.        #
##############################################################################

Newsgroups: comp.os.vms
From: jweiss@casbah.acns.nwu.edu (Jerry Weiss)
Subject: Re: Editing a large file
Organization: Northwestern University, Evanston Illinois.
Date: Fri, 22 Jan 1993 06:07:45 GMT

In article <21JAN199314094029@ariel.lerc.nasa.gov> uugblum@ariel.lerc.nasa.gov (VMScluster Administrator) writes:
>Some of our Cray programs produce very large (~80,000 blocks) ASCII output
>files which are sent to the VAXcluster for review.  TPU and EDT don't work
>well with large files.  I think the editors read the entire file into memory
>so the performance is poor if it works at all.  One work-around could be to
>break the large file into several smaller files.  Does anyone know of a DECUS
>utility which can do this?  Does anyone else have another suggestion?
>

Real (old) programers use TECO.


-- 
Jerry S. Weiss	  "If you can't stand the heat, stay out of the antimatter!"
j-weiss@nwu.edu    Dept. Medicine, Northwestern Univ. Medical School
From: IANIGRO@ASTRBA.BA.CNR.IT (Il Conte Max)
Newsgroups: comp.os.vms
Subject: CPU time for a process
Date: 21 Jan 93 17:28:15 GMT
Distribution: world
Organization: The Internet

Dear Info-vaxers,

I'm a novice user and so I hope that "gurus" will be kind, as much as possible,
with me!

I would like to be helped on this subject:

I'm going to plan a procedure (DCL, C or something else...) that will be able
to detect those user process that are running from a certain time (i.e. 10
minutes of CPU) and then reduce their priority to 3, so they will not affect the
performances of the global system.

I work on a VAX 6300 with VMS 5-5.

Thanks in advance,

  Massimo Ianigro


 -----------------------------------------------------------------------------
|  Massimo Ianigro            "The Poor English Writer"                       |
|  CNR  -  IESI                     E-write at:   IANIGRO@ASTRBA.BA.CNR.IT    |
|  Via Amendola, 166/5              Speak at :    39 80 481969                |
|  70126  BARI   ITALY                                                        |
|                                                                             |
|  A reply in Italian language would be appreciated more than an English one! |
 ----------------------------------------------------------------------------
From: bruce@ais.com (Bruce C. Wright)
Newsgroups: comp.os.vms
Subject: Re: VAX FORTRAN
Date: 27 Jan 93 14:49:12 GMT
Organization: Applied Information Systems, Chapel Hill, NC

In article <27JAN199309324042@rdth2.rdth.luc.edu>, pbricker@rdth2.rdth.luc.edu (Preston Bricker) writes:
> How do I send a file to a print queue from within a FORTRAN program?
> There should be a hook equivalent to DCL PRINT.
> If you post the answer, please also e-mail it.

Look at SYS$SNDJBC (send to job controller).  It's syntax is a little
odd if you're not used to VMS itemlists, but it's not too bad.  Or
a simpler (for the programmer) but less efficient (for the system) way
is to use LIB$SPAWN to spawn a PRINT command.

Bruce C. Wright
Newsgroups: comp.os.vms
From: tpfarr@author.gsfc.nasa.gov (Thomas Pfarr CSC -(301) 497-2659)
Subject: DECserver 90L timeout prob.
News-Software: VAX/VMS VNEWS 1.4-b1  
Organization: CSC System Sciences Division
Date: Thu, 21 Jan 1993 21:24:00 GMT

I have an early DECserver 90L (which does not get its software from a server) 
which routinely disconnects from an host claiming LAT timeout.  None of my other
DECservers (200/MC or 300) or other LAT devices (PC's and X-terms) have a 
problem.  All the devices are on the same Ethernet segment.  Traffic is 
normally in the 50-200 packets a second range.  All the Vax hosts and working
DECservers are using default LAT settings.  Any Clues? 

                   Tom Pfarr, Computer Sciences Corporation
                 Hubble Space Telescope Support (PASS project)
                         tpfarr@author.gsfc.nasa.gov
From: coar@Nephi.Enet.DEC.Com (Rodent of Unusual Size)
Subject: Re: Problem in system recovery after fatal failure of VAX3800, help!
Summary: SYSBOOT settings aren't *always* saved
Keywords: SYSBOOT, STARTUP_P1, system hang, WRITESYSPARAMS
Organisation: Employed by (*NOT* speaker for) DEC, Boxborough, MA, U.S.A.
Organization: Digital Equipment Corp.
Distribution: comp
Date: Fri, 22 Jan 1993 22:23:43 GMT


In article <1hs1koINNnqs@gap.caltech.edu>, carl@SOL1.GPS.CALTECH.EDU (Carl J Lydick) writes...
> 
>Well, single-user mode is invoked anytime the SYSGEN parameter STARTUP_P1 is
>set to "MINI."  One of he first things VMS does in an interactive boot (i.e.,
>when you B/R5:1 or B/1) is to copy any SYSGEN parameters you modified in
>SYSBOOT to your disk.  That means that once you've:
>	SYSBOOT> SET STARTUP_P1 "MINI"
>you're going to have a minimum system boot until you do another interactive
>bood and:
>	SYSBOOT> SET STARTUP_P1 DEFAULT

    Well, actually, the startup process only writes the active parameters to
    the current if parameter WRITESYSPARAMS is set to 1.  This is the default
    condition; however, if you want all SYSBOOT changes to last for only the
    time they're used, and the next reboot to go back to normal, you can set
    this to 0 in MODPARAMS.DAT.

    This is one of a rare few parameters that aren't used in compiled code,
    but only in DCL; I don't think it's used ANYwhere except in startup
    procedure VMS$INITIAL-050_VMS.COM.  NOAUTOCONFIG is another, and there are
    a couple more.

>Carl J Lydick | INTERnet: CARL@SOL1.GPS.CALTECH.EDU | NSI/HEPnet: SOL1::CARL

    #ken    :-)}	Jeratol the Chaotic (KLC31)

Coar@Nephi.Enet.DEC.Com	 | All opinions herein contained, stated or implied,
Coar@DECUS.Org		 | are solely those of the author.  And he's fullovem.
Coar@Eisner.DECUS.Org	 | `... it was mine art, ... that made gape the pine 
Massachusetts, USA       | and let thee out.'  - Prospero (_The Tempest_)
Newsgroups: comp.os.vms
Subject: Re: MEMFUL on large arrays
From: tp@mccall.com (Terry Poot)
Date: Wed, 27 Jan 1993 17:14:23 CST
Reply-To: tp@mccall.com (Terry Poot)
Organization: The McCall Pattern Co., Manhattan, KS, USA
Nntp-Posting-User: tp


In article <1993Jan26.235037.1@slacvx.slac.stanford.edu>,
fairfield@slacvx.slac.stanford.edu writes:
>    However, something the Terry neglected to mention is that the user's

Oops. Thanks.

>    PGFLQUO (set via AUTHORIZE) must also be large enough to contain the
>    virtual address space of the image.  Thus to run your large, >200000
>    page image, you'll need VIRTUALPAGECNT  and PGFLQUO larger than, but
>    on  the  order of, 200000 pages, and you'll need  your  PAGEFILE.SYS
>    about the same size (in blocks :-).

Or hopefully larger, if the poor VAX is expected to be doing anything else at
the same time! And at least 25% larger to keep from fragmenting the thing to
death and getting the dreaded "Pagefile space critical" message. DEC actually
recommends a much larger safety margin than that, for good reason, but be aware
that you do need at least some margin. 
--
Terry Poot <tp@mccall.com>                   The McCall Pattern Company
(uucp: ...!rutgers!depot!mccall!tp)          615 McCall Road
(800)255-2762, in KS (913)776-4041           Manhattan, KS 66502, USA
Newsgroups: comp.os.vms
From: sabotkap@woods.ulowell.edu
Subject: Re: mailboxes with DCL?
Organization: University of Lowell
Date: Thu, 21 Jan 1993 07:18:20 GMT

ORAKEL@rzmain.rz.uni-ulm.de (Framstag) requests:
->  
->  Some (easy, of course :-) ) examples of DCL programs handling with
->  mailboxes with normal user privs (netmbx,tmpmbx).
->  

The following hack DCL procedure opens a channel to the mailbox created
during a SPAWN, and keeps it open after the subprocess terminates.  
Note that processes reading/writing this mailbox could very easily end up
hung waiting for the other processes' read/write, if the command procedures
you are using to do the communications are not synchronized.  Also, you 
will not be able to set the buffer size, protection mask, or other flags.
All attributes of the mailbox are initialized when it is created via a 
SPAWN.  
   
^-v-^-v-^-v-^-v-^-v-^-v-^-v-^-v-^-v-^-v-^-v-^-v-^-v-^-v-^-v-^-v-^-v-^-v^-v-^
Pete Sabotka, Meteorology Dept.                   sabotkap@woods.ulowell.edu
University of Massachusetts - Lowell      
"Days like this let you savor a bad mood."        - Calvin (Calvin & Hobbes)
^-v-^-v-^-v-^-v-^-v-^-v-^-v-^-v-^-v-^-v-^-v-^-v-^-v-^-v-^-v-^-v-^-v-^-v^-v-^
$!	CREMBX.COM
$!	Creates a mailbox for DCL use
$!
$!	parameters:  p1 - logical name to open for mailbox
$!	
$ if p1 .eqs. "SUB" then goto subprocess
$Mainprocess:
$ channel=p1
$ if channel .eqs. "" then read sys$command channel/end=done/prompt="_Log name: "
$ if channel .eqs. "" then goto Mainprocess
$ program=f$environment("procedure")
$ parent_pid=f$getjpi(0,"pid")
$ spawn/nolog/nowait @'program' SUB 'parent_pid'
$ set process/suspend/id=0
$ spawn_pid=f$trnlog("SPAWN_PID")
$ mbxnum=f$trnlog("MBXNUM")
$ mailbox="MBA''mbxnum':"
$ open/read/write 'channel' 'mailbox'
$ stop/id='spawn_pid'
$ deassign/job SPAWN_PID
$ deassign/job MBXNUM
$ w "Mailbox device ''mailbox' opened"
$Done:
$ exit
$Subprocess:
$ spawn_pid=f$getjpi(0,"pid")
$ if p2 .nes. "" then resume_pid=p2
$ mbxnum=f$getjpi(0,"TMBU")
$ define/job/nolog SPAWN_PID 'spawn_pid'
$ define/job/nolog MBXNUM 'mbxnum'
$ set process/resume/id='resume_pid'
$ set process/suspend/id=0
From: tanner@cerritos.edu
Newsgroups: comp.os.vms
Subject: Re: Where did INFO-VAX/COMP.OS.VMS go ??
Date: 22 Jan 93 18:12:32 PST
Organization: Cerritos College, Norwalk CA

In article <61050127@acf3.NYU.EDU>, tihor@acf3.NYU.EDU (Stephen Tihor) writes:
> the traditional fix for this is called a kill file.  the problem is that the 
> obvious kills to reduce the flamage also lose a chunk of technical content.

But when the offensive content exceeds the technical content, I consider it a
net gain.

-Bruce
-- 
Bruce Tanner        (310) 860-2451 x 596    Tanner@Cerritos.EDU
Cerritos College    Norwalk, CA 
Newsgroups: comp.os.vms
From: bcking@HQ.Ileaf.COM (Christine King)
Subject: Re: A random number
Organization: Interleaf, Inc.
Date: Thu, 21 Jan 1993 16:21:16 GMT

In article <1993Jan21.041813.20307@ccu1.aukuni.ac.nz> g.sands@aukuni.ac.nz writes:
>Is there an easy way to get a scaled random number into a DCL com file? 
>Say an integer between 0 and 1000 or something like that?

You could use F$TIME() to get a fairly random looking number.  How
about this:

	$ rno = f$element(1,".",f$time())   !..random 00-99

This gives you the hundredths part of "21-JAN-1993 11:04:20.66".  If
you want another digit, pick the lower digit out of the seconds.
Remember that the hours:minutes:seconds don't give you a full range of
decimal numbers.

Hope this helps.
-- 
 Christine King, bcking@ileaf.com
 Interleaf, Inc.      | My opinions are not  | "Time is like that,
 9 Hillside Avenue    | necessarily those of |  except for the cannon
 Waltham MA 02154 USA | Interleaf, Inc.      |  and the donut." -Dilbert
From: DICKHAUS@XAVIER.XU.EDU
Newsgroups: comp.os.vms
Subject: LAT PRINTER PAUSING
Date: 25 Jan 93 15:00:04 GMT
Distribution: world
Organization: The Internet

Original post asked about que on Datability server pausing under vms 5.5-2.

We operate several Datability servers under 5.4-2, soon to be 5.5-2,
and occasionally have the same problem. Maybe it is worse under 5.5-2;
I'll have to check with Datability for the minimum version of the chips
on the network card that is OK with 5.5-2.

Have found that doing a stop/reset on the que, then going into the server
and doing SHOW PORT nn STATUS reveals that output is Xoffed.
LOGOUT PORT nn clears this. Then restart the que.

Carl Dickhaus
XAVIER UNIV., CINCINNATI
BITNET: SYSTEM@XAVIER.BITNET
INTERNET: SYSTEM@XAVIER.XU.EDU
From: moeller@gwdgv1.dnet.gwdg.de ("GWDGV1::MOELLER")
Newsgroups: comp.os.vms
Subject: re: LIB$ROUTINES and Balanced Binary Trees
Date: 25 Jan 93 17:48:22 GMT
Distribution: world
Organization: The Internet

Wayne Pearson <WPEARSON@KEAN.UCS.MUN.CA> asks:
> I noticed that there were three routines to manipulate balanced binary trees
> in the LIB$ run time libraries. These routines were LIB$INSERT_TREE,
> LIB$LOOKUP_TREE, and LIB$TRAVERSE_TREE. Is the any reason that theres no
> corresponding LIB$ routine to delete a node from a balanced binary tree?

For the reasons:
(a) Textbooks tend to leave the "routine to delete a node" as an
	exercise for the reader :-)
(b) VMS utilities (for which the LIB$routines were written) can live without.
(c) The LIB$routines allow for duplicate keys. It isn't obvious how to
	define and solve the deletion problem in that case.

If your keys are unique, I might provide you (upon request)
with a "compatible" LIB_DELETE_TREE() written in VAX C.

Wolfgang J. Moeller, GWDG, D-3400 Goettingen, F.R.Germany | Disclaimer ...
PSI%(0262)45050352008::MOELLER      Phone: +49 551 201516 | No claim intended!
Internet: moeller@gwdgv1.dnet.gwdg.de   | This space intentionally left blank.