VMS Utility Routines
This directory is my development directory for several small routines not
belonging to a specific package.
Not everything is written by myself though, just adapted to my needs.
Compile, build Library:
Use either MMS or MMK: "MMS target"
(using descrip.mms).
blank target compiles everything, builds []UTIL.OLB
target INSTALL builds and copies UTIL.OLB to SYS$COMMON:[SYSLIB]
some.OBJ just builds a single object from source .
Without MMS/MMK: @libcompile
builds UTIL.OLB .
Download:
All sources needed for Util.OLB and the applications in [.main] are available
in huber_util.zip
Copyright:
If not stated differently inside a source file, all software
here is issued under the GNU Public License (GPL), see
../pds/gpl.html , or the GNU Library Public
License (LGPL) LGPL.txt
More directories:
- include/
- main/
- special/
- tests/
Hypertext files
- init_cli.html (3KB): init_cli Routines
Text files
- lgpl.txt (26KB):
- util_olb.hlp (51KB):
Program Sources
- bigendian.c (1KB): ask if CPU is Big-endian
- bigendian.f (1KB): ask if CPU is Big-endian
- bincom.inc (1KB): bincom.inc
- bio.for (6KB): Collection of simple RMS-Block-I/O routines
- bio.inc (1KB): bio.inc
- Broadcast2Reqid.for (1KB): Convert BROADCAST class string to BRKTRHRU request ID
- bytes_to_char.for (1KB): copy a string of N bytes into a character string
- client_connect.c (2KB): TCPIP socket connection
- clispawn.for (1KB): spawns a DCL commandline and returns the commands completion code
- cli_c.c (1KB): cli_c.c
- convert_endianess.c (1KB): Integer endianess conversion
- cputim.for (1KB): CPUTIM returns the CPU time used since the process was invoked.
- crmpsc.for (5KB): create and map a global section file
- crtl_version.c (2KB): crtl_version.c
- csleep.for (1KB): Set timer and wait for SECSTR seconds.
- cvtnum.c (2KB): Convenience routine to convert a string to a number.
- date4.for (4KB): date4.for
- delay.for (1KB): Delay for a time specified as an absolute time string
- endianess.c (1KB): Returns 1 for little endian system, 0 for big endian
- dclexh.for (2KB): Declare standard exit-handler for image
- file_size.for (1KB): file_size returns the size of a file (blocks).
- fill_itmlst.for (2KB): Fill values in itemlist
- find_file.for (2KB): returns next file name in a sequence of (wildcard) file searches
- find_file_c.for (3KB): returns next file name in a sequence of file searches: C call
- fparse.for (6KB): Free format number conversion:
- fs.c (1KB): convert C-string to pointer to VMS string descriptor
- gbl_section_ufo.for (3KB): Opens a file to be used as a global section
- gcml$codes.inc (1KB): gcml$codes.inc
- getbits.c (1KB): get n bits from position p
- getcml.for (5KB): Returns foreign DCL commandlines
- getprn.for (2KB): get process name (and ID)
- getsyi_nodename.for (1KB): get VMS nodename
- get_asctime.c (1KB): get formatted time string from binary (Unix-32bit) time time.
- get_option_value.for (2KB): get next option and it's value from a command line
- get_token.for (1KB): get next token of a string
- get_vms_version.c (1KB): get_vms_version.c
- giver4.for (1KB): Copy argument to function value as real value
- hg$get_input.c (2KB): HG$GET_INPUT provide command recall when reading from SYS$INPUT
- hg$get_input.f90 (3KB): HG$GET_INPUT provide command recall when reading from SYS$INPUT
- hg$get_input.for (3KB): HG$GET_INPUT provide command recall when reading from SYS$INPUT
- hg$get_input_interface.f90 (1KB): hg$get_input_interface.f90
- i2bit.for (1KB): This subroutine gives bits I - K of IN
- i2toi4.for (1KB): Return short integer input argument as (long) integer,
- ignore_f_errors-alpha.for (3KB): A ignore all aritmetic trap condition handler
- ignore_f_errors-vax.for (3KB): A ignore all aritmetic trap condition handler
- init_cli.c (2KB): DCL parsing of foreign command-lines
- init_cli.h (1KB): init_cli.h
- init_cli_argv.c (3KB): initialize CLI table parsing for C argv array
- init_cli_argv.h (1KB): init_cli_argv.h
- init_cli_for.for (3KB): DCL parsing of foreign command-lines (Fortran call)
- iostat_to_status.for (2KB): Converts FORTRAN IOSTAT value to a VMS condition code
- ishell.for (1KB): SORTS N ELEMENTS OF A VECTOR X
- isleep.for (1KB): sleep seconds
- isort.for (1KB): SORTING ROUTINE: SORT AN ARRAY OF INTEGERS IN ASCENDING ORDER
- istrue.for (1KB): ISTRUE - cast an expression into a logical value
- itmlst_init.h (1KB): itmlst_init.h
- julian_day.for (1KB): Julian day number of today in current year
- lenstr.for (1KB): Position of last non-blank char in a string
- lenstr.fpp (1KB): Position of last non-blank char in a string
- lenstr0.for (1KB): length of zero terminated string
- limit.for (1KB): CLIP VALUE BETWEEN THE MINIMUM AND THE MAXIMUM
- logsysmessage.for (1KB): translates a system condition code into a readable text message
- make_dsc_str.c (1KB): make a descriptor for a fixed-length string
- move_data.c (2KB): moving data from source to destination.
- mtsense.inc (1KB): mtsense.inc
- mtutil.for (12KB): general tape I/O routines (logical block I/O)
- mvbits.fortran (2KB): mvbits.fortran
- myfree.c (1KB): myfree.c
- openff.for (1KB): Open a file for FORTRAN formatted I/O
- opmsg.for (1KB): Send message to OPCOM
- padd_zs.for (2KB): padds a NULL terminated character array with blanks,
- parse_os9_file.for (2KB): Parse an OS9-file-specification into path-name and pure file-name
- parse_os9_file_c.for (2KB): C-language interface to PARSE_OS9_FILE routine
- pdtoib.for (2KB): KONVERSION VON ASCII NACH EBCDIC UND viceversa
- permut.for (1KB): CALCULATES ALL PERMUTATIONS OF AN ARRAY (E1,.....EN)
- polar.for (1KB): CONVERTS RECTANGULAR COORDINATES (X,Y) TO POLAR (R,PHI)
- posix_test.c (1KB): posix_test.c
- prcpid.for (2KB): get processID for process given by name
- print_and_delete.for (5KB): print a file on queue , delete after printing
- process_scan.for (3KB): process_scan: sacn processes, return name,node,id,image
- putmsg.for (1KB): Put a formatted error message to sys$output
- rabadr.inc (1KB): rabadr.inc
- rectan.for (1KB): CONVERTS POLAR COORDINATES (R,PHI) TO RECTANGULAR (X,Y)
- remove_file_version.for (1KB): remove verion number (;...) from a VMS filename
- remove_file_version_c.c (2KB): remove verion number (;...) from a VMS filename
- replace_file_type.c (1KB): replace file-type of input filename
- resource_ctx.h (1KB): resource_ctx.h
- resource_ctx.inc (1KB): resource_ctx.inc
- resource_lock.for (2KB): Routines to establish a secure interlock
- resource_routines.inc (1KB): resource_routines.inc
- rot.for (1KB): ROTATE THE POINT (X,Y) BY THE ANGLE DRW
- rotvc.for (1KB): ROTATE COORDINATES (X(I),Y(I)) BY AN ANGLE DRW
- sbyte.c (1KB): swap bytes in 16bit array
- send_broadcast.for (3KB): broadcast a message to a user
- send_mail.for (6KB): sends a mail using callable mail - example
- send_mbx_message.for (2KB): General non-blocking write into a mailbox
- shell.for (1KB): SORTS N ELEMENTS OF A VECTOR X
- spawn_and_read.for (5KB): spawn a DCL command and return the output of the command
- spawn_nowait.c (2KB): C language interface to the VMS LIB$SPAWN run-time function
- strlen.for (1KB): strlen() in Fortran
- str$lower.for (1KB): convert (src_string) to all lowercase characters
- stream_f.c (8KB): C stream I/O package
- stream_f.h (2KB): stream_f.h
- stream_f.inc (2KB): stream_f.inc
- stream_ff.c (1KB): the fortran interface for stream_f functions
- swap_b.for (1KB): Invert in-situ the 2 bytes in each 16-bit word of array MV, N bytes
- swap_w.for (1KB): Invert in-situ the 2 words in each 32-bit word of array MV, N longwords
- swap_words_c.c (1KB): int swap_words_c(lw) swaps the 2 words of a longword
- swap_words_f.for (1KB): integer swap_words_f(lw) swaps the 2 words of a longword
- sword.c (1KB): swap words in an array of long words
- tapuse.for (1KB): calculates the tape length used for a block
- timer_init.for (1KB): To measure the time spent in a program section,
- time_to_tm.c (2KB): returns a given Unix binary time in an struct tm
- tm.inc (1KB): tm.inc
- ucopy.for (1KB): copy vector A into vector B, N storage units (4 bytes) long.
- unquote.for (1KB): remove quotes () around strings
- username.for (1KB): get my user name
- usropn.for (1KB): Example program how to use USEROPEN in Fortran to return the files channel
- uzero.for (1KB): Zero elements A(I1) to A(I2) of vector A
- vaxutil.h (1KB): vaxutil.h
- vms_arch.c (1KB): vms_arch.c
- vms_arch.h (1KB): vms_arch.h
- vms_getpid.for (2KB): get my process ID
- vms_vers.c (1KB): vms_vers.c
- vms_vers.h (1KB): vms_vers.h
- vxinvb.c (1KB): vxinvb.c
- vxinvb.for (1KB): VXINVB(array,N) inverts endianess of integer*4 array
- wcopy.for (1KB): copy array A into array B , N words (*16 bits)
- xtappmainloop.c (1KB): create local XtAppMainLoop and XtAppSetExitFlag
Command files,Scripts
- descrip.mms (7KB): descrip.mms
- libcompile.com (6KB): compile routines in library util.olb
- vms_pagesize.com (1KB): Create include file
Other files
- .message (1KB):
- decc_vms_config.notes (11KB):
- jamfile. (3KB):
- uvt100.par (1KB):
- vms_pagesize.axp (1KB):
- vms_pagesize.vax (1KB):
Eventually missing include files are in ../include
main Directory of main programs, applications testing
See also my PDS page .
A lot of program sources from usenet or Decus are in
/vmssig/src/
Joseph Huber , huber AT mppmu mpg de