~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SOFTWARE DISTRIBUTION DISCLAIMER (April 5, 1989) This software was developed at The Grass Valley Group, Nevada City, CA 95959. All software is delivered "as is" without any warranty of merchantibility or fitness for a particular purpose. The Grass Valley Group does not take responsibility for any loss of data due to execution of any of this delivered software. USE AT YOUR OWN RISK! Likewise, The Grass Valley Group does not support this software for use by anyone other than Grass Valley Group employees working at the Grass Valley Group. We will, however, entertain questions and comments regarding this distributed software. Tony Ivanov MS-4B The Grass Valley Group, Inc. 13024 Bitney Springs Rd. Nevada City, CA 95959 (916) 478-3238 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [VAXSIG89S] This is the base directory for the Grass Valley Group software contributions to the VAX SIG 1989 (spring) symposium. Included here is UN*X compatible MAKE for VMS, System V "termio" (partial implementation) for VMS (otherwise known as VAXCIO), Object lib- rary for BSD 4.2 Curses for VMS. $$$DISCLAIMER. - Company disclaimer. READ IT! $$$README. - Description of what's in this directory. $$$README.ALL - Copy of all the $$$README. files from each of the sub- directories. CURSES.DIR - Directory of stuff dealing with BSD 4.2 Curses. LIBRARY.DIR - Copy of what is currently in *my* SYS$LIBRARY: directory. MAKE.DIR - Diretory of stuff dealing with PD MAKE. MISC.DIR - BIN2ASC, ASC2BIN and source of same, sample option file to link in shareable C RTL (don't use this with curses or vaxcio!). VAXCIO.DIR - Directory of stuff dealing with VAXCIO (System V "termio" for VMS). Source code is included here. [.CURSES] This is the compiled source code (object files) and object library for BSD 4.2 "curses". The header file curses.h is the Berkeley curses header modified for VMS. This is necessary since part of the functionality provided in "curses" is useful for non-curses applications (raw, cbreak, echo, etc.). For this reason, the func- tions are provided in the VAXCIO package and defined in their header files. VMSCURSES.H should reside in SYS$LIBRARY:. VMS$CURSES.OLB_ASC is the asciized version of the object library. This asciized version can be reversed to produce a true object library with the use of [-.MISC]ASC2BIN.EXE. See documentation in the [-.MISC] directory for further explanation of ASC2BIN. You can rebuild VMS$CURSES.OLB with the following command: $ LIB/CREATE VMS$CURSES.OLB *.OLB [.LIBRARY] This directory hold the pre-compiled VMS$CURSES object library and the modified VAXCRTL object library. The contents of this directory may be copied to SYS$LIBRARY: or at least can be used as a basis of what should go into SYS$LIBRARY:. NOTE: This version was compiled with the VAX C V2.2-015 compiler. The VAXCRTL is that of VMS V4.7. TERMIO.H - This is a copy of the System V termio header file. Note it comes from Intergraph Corp. VMS$CURSES.OLB - This is the BSD 4.2 Curses object library compiled for VMS. You must link in VMS$VAXCRTL (in this directory) for the BSD Curses to operate correctly. VMS$CURSES.OLB_ASC This is the asciized version of the object library. Use [-.MISC]ASC2BIN to convert it from ascii to binary. VMS$VAXCRTL.OLB - This is the modified VAX C RTL. This has the standard I/O routines ((f)read, (f)write, (f)print, ...) entry pointes renamed and the VAXCIO compiled object code entered for use either standalone or with VMS$CURSES. VMS$VAXCRTL.OLB_ASC - This is the asciized version of the object library. Use [-.MISC]ASC2BIN to convert if from ascii to binary. VMSCURSES.H - This is the header file for VMS's BSD 4.2 Curses. Include this *instead of* SYS$LIBRARY:CURSES.H when linking to VMS$CURSES. VMSTERMIO.H - Header file to implement VAXCIO (includes raw(), cbreak(), echo(), ...) on VMS. VAXCIO is basically System V termio for VMS. Some standard "termio" features are currently unavailable for VMS. Read the header for further information. [.MAKE] This directory holds the source, object, and executeable files for the public domain version of MAKE. The credits belong to: The original version of MAKE was done by Stuart Feldman in 1978. This multi-operating-system version is based on a public-domain posting of 3-Dec-86 to the Usenet bulletin board mod.sources, its author known only by an EMAIL address: Caret@FAIRLIGHT.OZ. It contained support for Unix, OS9, and EON operating systems. The TOPS-20, VMS, and MS-DOS support was added by Nelson H.F. Beebe (BEEBE@UTAH-SCIENCE). VMS command line comma and plus token separators, and the "-t" (touch) options was added by me, Tony Ivanov (tony@gvgpvd.GVG.TEK.COM). The compiler used was VAX C V2.2-015. The operating system was VMS V4.7. $$README. - A readme file that get sent out with the SHAR packages that is created with "make shar". CHECK.C, H.H, INPUT.C, MACRO.C, MAIN.C, MAKE.C, READER.C, RULES.C, VAXVMS.C - This is the source to the PD version of MAKE. ECHO.C - This program takes arguments on the command line and echos them to the screen. It translates \(octal) sequences to the appropriate ascii character. To use it, after compilation and linking, set up a global symbol of the form: $ ECHO :== $:[dir]ECHO.EXE ECHO.EXE - This is the pre-compiled/pre-linked "echo" program. INITIAL.MAKE - This is a command procedure used to compile and link MAKE for the first time. After that, MAKE can be used to make itself via MAKEFILE. Use it as follows: $ @INITIAL.MAKE MAKE.EXE - The pre-compiled/pre-linked version of MAKE. MAKE.HLP - A help guide for VMS MAKE. You should already be familiar with or have a copy of the UN*X make facility. MAKEFILE. - A makefile used to re-make MAKE. MAKEFILE.GLOBAL - A global makefile that on our system has a logical name, MAKEINIT, pointing to it. This gets read prior to any makefile specified with the "-f" option or any makefile in the current directory. This is nice for providing system-wide default rules. OBJ.DIR - The pre-compiled object code for MAKE. This can be used to simply re-link MAKE for a different version of the VMS operating system (necessary if MAKE.EXE won't run on your system due to RTL incompatibility). Re-link with the same commands found in INITIAL.MAKE. Also has the pre-compiled object code for TOUCH and ECHO. TOUCH.C - This program provides a UN*X touch function for VMS. It changes the file's modification time to the current time. Multiple arguments are accepted along with full wild- carding. Default rules apply as far as VMS command-line syntax is concerned. See the documentation at the beginning of the code for further details. To use it, after compi- lation and linking, set up a global symbol of the form: $ TOUCH :== $:[dir]TOUCH.EXE TOUCH.EXE - The pre-compiled/pre-linked "touch" program. TYPES.H - A header file that contains widely used type declarations. VAXC_SHARE.OPT - An option file for linking in the shareable C RTL. Use it as follows: (an example) $ LINK TOUCH.OBJ,VAXC_SHARE/OPT VMS_RULES.DOC - A list of the default built-in rules for VMS MAKE. [.MAKE.OBJ] This directory holds the pre-compiled object code for the PD MAKE program. This code was compiled with V2.2-015 VAX C compiler on VMS V4.7. 'MAKE' can be made with these by simply re-linking. See [-] for information on linking the objects. [.MISC] This directory hold miscellaneous routines necessary for MAKE, VAXCIO, and CURSES. The compiler used was VAX C V2.2-015. The operating system was VMS 4.7. ASC2BIN.C - This is the source code to the program that takes an asciized file and converts it to binary. It does this in a very simple fasion; first by opening a 512 byte fixed block file, then by reading input from the first file, two bytes at a time, strip- ping of the high order nibble of both and creat a single byte that is written to the output file. This is a very crude implementation, but it works (!) and solves other stick issues of compression, expansion, file-attribute problems, etc. ASC2BIN.EXE - This is the pre-compiled/pre-linked ASCII to BINARY program. Use it by setting up a global symbol such as: $ ASC2BIN :== $:[dir]ASC2BIN.EXE Then use it as follows: $ ASC2BIN input-file output-file Either input-file or output-file can be a dash "-" and standard input or standard output will be assumed (as applies). ASC2BIN.OBJ - This is the pre-compiled ASC2BIN program. BIN2ASC.C - This program converts an binary file to an ascii file. I call this process asciized. The process is simple and is the reverse of what is described in ASC2BIN.C. BIN2ASC.EXE - This is the pre-compiled/pre-linked BINARY to ASCII program. Use it by setting up a global symbol such as: $ BIN2ASC :== $:[dir]BIN2ASC.EXE Then use it as follows: $ BIN2ASC input-file output-file Either input-file or output-file can be a dash "-" and standard input or standard output will be assumed (as applies). BIN2ASC.OBJ - This is the pre-compiled BIN2ASC program. VAXC_SHARE.OPT - An option file for linking in the shareable C RTL. Use it as follows: (an example) $ LINK ASC2BIN.OBJ,VAXC_SHARE/OPT [.VAXCIO] This is the root directory for the VAXCIO package. This package is basically a partial implementation of the System V "termio" package. The kernel in this package is "ioctl" for VMS. $$README. - This file contains a description of what to do to unpack the SHAR package of VAXCIO, modify the entry point names of the (non-shareable) VAX C RTL, compile and link the VAXCIO package. YOU SHOULD READ IT TOO! $OBJDEF.FTN - This is the modified library extraction of OBJDEF from STARLET.MLB. This is necessary since the FORTRAN product does not supply object file format definitions in the include "text library". C$VAXCIO.OBJ - This is the object file that was extracted from the standard (delivered) VAX C RTL (SYS$LIBRARY:VAXCRTL.OLB). This copy already has the entry points for the necessary functions renamed. DOIT.C - A test program (for testings aspects of "vmstermio"). DOIT1.C - A test program (for testings aspects of "vmstermio"). MOD_ENTRY_NAME.EXE - The pre-compiled/pre-linked program that changes the entry point names in an object file. See $$README. for informa- tion on running it. MOD_ENTRY_NAME.FOR - The source code to the above program. MOD_ENTRY_NAME.OBJ - The pre-compiled program. OBJ.DIR - A directory that holds the pre-compiled object code of the source that resides in this and [.SRC] directories. SRC.DIR - The source code to VAXCIO! TEST.C - Another test program. TEST1.C - And another test program. TEST2.C - YATP. VAXCRTL.OLB - The VAX C RTL that has the modified entry names in it AND the VAXCIO package routines in it! [.VAXCIO.OBJ] This directory holds the pre-compiled object code for the PD VAXCIO package. This code was compiled with V2.2-015 VAX C compiler on VMS V4.7. The VAX C RTL can be re-built with: $ LIB [-]VAXCRTL *.OBJ NOTE: Only re-build if you have already change the entry-point names. This process is outlined in [-]$$README. (Yes just two dollar signs). [.VAXCIO.SRC] This directory hold the source code to the VAXCIO product. See the $$$README. file in the previous directory or look at the source or look at $$README. for further information. DOIT.C - A test program. GET.C - The module that holds code for the entry points: getchar, gets, fgetc, getw, and fgets. GVG$IOCTL.C - A dummy file so that the name in the object module will be GVG$IOCTL instead of just the name of the file that is first in the compilation list. GVG$IOCTL.LIS - The formatted listing of the source that is in the module GVG$IOCTL in the VAX C RTL. Files included in this module are: IOCTL.C GVG$MACRO_SUPPORT.LIS - The formatted listing of the source that is in the module GVG$IOCTL in the VAX C RTL. GVG$MACRO_SUPPORT.MAR - A file that holds MACRO routines necessary to make VAXCIO work. Fortunately only one, va_call(), was necessary. GVG$SUPPORT.C - A dummy file so that the name in the object module will be GVG$SUPPORT instead of just the name of the file that is first in the compilation list. GVG$SUPPORT.LIS - The formatted listing of the source that is in the module GVG$IOCTL in the VAX C RTL. Files included in this module are: SUPPORT.C GVG$TT_CHAR.C - A dummy file so that the name in the object module will be GVG$TT_CHAR instead of just the name of the file that is first in the compilation list. GVG$TT_CHAR.LIS - The formatted listing of the source that is in the module GVG$IOCTL in the VAX C RTL. Files included in this module are: VMS_TT_CHAR.C GVG$VAXCIO.C - A dummy file so that the name in the object module will be GVG$VAXCIO instead of just the name of the file that is first in the compilation list. GVG$VAXCIO.LIS - The formatted listing of the source that is in the module GVG$IOCTL in the VAX C RTL. Files included in this module are: GET.C, PUT.C, READ.C, WRITE.C, PRINT.C, MISC.C IOCTL.C - This file holds the code for VMS ioctl(). Please read the source for description of implementation; it is an incom- plete implementation of System V ioctl(). MAKEFILE. - This is the makefile necessary to build VAXCIO. You must use the make that is distributed with this software unless your version of make handles modules in libraries in the same fashion as this one. MISC.C - This file holds code for miscellaneous routines that don't belong any other place. The entry point names in here are: close, fclose, dup, and dup2. PRINT.C - This file holds code for the "print" routines: printf and fprintf. PUT.C - This file holds code for the "put" routines: putchar, puts, fputc, putw, and fputs. READ.C - This file holds code for the "read" routines: read and fread. SUPPORT.C - This file holds code for support routines necessary to per- form the VAX specific I/O function that "really makes things work". These entry points are: gvg$special_read, gvg$special_fread, gvg$special_write, gvg$special_fwrite, gvg$do_flush_read, gvg$do_flush_write, gvg$do_qio_read1, gvg$do_qio_readn, gvg$do_qio_write, gvg$do_post. SYS$LIBRARY_TERMIO.H - This is the header file that should be copied into the system directory. Use the following command: $ COPY SYS$LIBRARY_TERMIO.H SYS$LIBRARY:TERMIO.H SYS$LIBRARY_VMSTERMIO.H - This is another header file that should be copied into the system directory. Use the following command: $ COPY SYS$LIBRARY_VMSTERMIO.H SYS$LIBRARY:VMSTERMIO.H SYS_STRUCT.H - A header file that sets up some structures used in calling system services. TEST.C - A test program. TEST1.C - Another test program. TEST2.C - YATP. VMSTERMIO.H - This is header file that is *ONLY* (notice the extra, extra emphasis on "only") used for compiling the VAXCIO code. VMS_TT_CHAR.C - This file holds code for VMS specific terminal character- istic settings (wrap, etc.). Entry points are: vms_has_tt_char, vms_set_tt_char, and vms_reset_tt_char. WRITE.C - This file hold code for the "write" routines: write and fwrite.