Installation Guide for Windows/SFU - CONTENTS

A1. Overview, Copyright notice, Warranty,& Support
A2.  Vancouver Utility versions, CD archives & Install Methods
A3. Sub-Directories in uvadm after tar extract or unzip.
B1. Downloading & Installing Windows SFU (3.5 as of June 2004)
B2.  Setup users for Windows SFU (Services for Unix)
B3.  Customizing screens via properties of desktop shortcut to SFU/ksh
C1. Installing Vancouver Utilities (initial installation).
C2.  Checking & changing owner & permissions on directories & files
D1. Installing an UPDATE version of Vancouver Utilities
D2.  Reverting to the earlier version if problems
E1. Compiling all 'uv' programs with script 'ccuvall'
- compile options for machine-type & Indexed file type
E2.  C program & uvcopy job to test 64 bit integers
E3.  see install.doc (unix/linux) for other installation & compile items
F1. .profile for Vancouver Utilities on Windows SFU
G1. Testing the Vancouver Utility programs
- Please see a separate section TestDemo.htm.
- Ensure your outputs match the illustrated outputs expected.
- Also a great way to investigate & understand these utilities
H1. Documentation Overview
H2.  HTML Documentation now on UV distribution CD
 as well as on the web site (
I1. Printing extra copies of the documentation
I2.  Printing selected documents with the uvlist program
I3.  Script to print files in Duplex at 12 cpi
- with margins for 3 hole punched paper

Goto:   Begin this document End this document UVSI Home-Page

A1. Vancouver Utilities INSTALLATION GUIDE for Windows SFU

Windows SFU Overview

SFU is Services For Unix running under Windows 2000, XP, or Server 2003. SFU allows you to run a unix/linux shell (ksh, bash, csh, sh, etc). If you are intending to run the Vancouver Utilities for JCL, COBOL, or Data conversions, UV Software recommends the Korn shell (ksh).

copyright notice

COPYRIGHT 1993-2008 UV Software Inc. All rights reserved - Worldwide. Please see the license agreement in the price list section. The Vancouver Utility programs are encoded with a unique registration# to aid in the prevention and detection of unauthorized copying.


A generous amount of free telephone support is included in the purchase price (see more details in uvprices.htm). User comments are encouraged and any suggestions may be incorporated into future updates.

 Owen Townsend, UV Software, 4667 Hoskins Rd., North Vancouver BC, V7K2R3
         Tel:   604-980-5434          Fax: 604-980-5404
         Email:    Web:
 Copyright(C) 1993-2006, UV Software Inc, All rights reserved

Goto:   Begin this document End this document UVSI Home-Page

A2. Installation Overview & Recommendations

3 market versions of Vancouver Utilities

Class A
  • complete package including mainframe conversion tools
  • includes source code for compile on unix/linux/windows
  • distribution CD has precompiled binaries for Linux & Windows
Class B
  • Vancouver Utilities without mainframe conversion tools
  • includes source code for compile on unix/linux/windows
  • distribution CD has precompiled binaries for Linux & Windows
Class C
  • Vancouver Utilities without mainframe conversion tools
    and without source code
  • executables only, intended for windows

2 Distribution Files on CD

  • tar archive for Unix/Linux or Windows SFU (or Cygwin, Uwin)
  • zip archive for Windows (same contents as uvadm.tar)

These are alternative formats, but the contents are the same. You use whichever 1 is appropriate for your system. Both may hold 3 sets of binaries as follows:

subdirs of pre-compiled binaries

  • binaries compiled on Red Hat Linux (always provided)
  • '.exe's compiled by lcc-win32 on Windows (always provided)
  • binaries compiled on Windows SFU by gcc (on request)
  • binaries compiled under Cygwin on Windows (on request)
  • binaries compiled under Uwin on Windows (on request)

4 Installation Guides

install.htm - Installation on Unix/Linux systems
- source code is provided for compiling on unix/linux
- But binaries are included for the Linux standard
WindowsSFU.htm (this doc) - Installation on Windows under SFU
- SFU is available at
- provides the Korn shell & most unix utilities on Windows
 'CygwinUwin'     - Installation on Windows under Cygwin or Uwin
                  - unix/linux emulators, similar to SFU
                  - UV Software has tested 3 emulators & recommends SFU
WindowsDOS.htm - Installation on native Windows without SFU
- intended to run in a command window
- 'executables only '.exe' binaries supplied in 'binDOS'
- compiled by lcc-win32

Goto:   Begin this document End this document UVSI Home-Page

A3. Vancouver Utilities - Media Contents

The media includes directories for source, documentation, installation scripts, test files, library archives, etc. After the tar extract or unzip, the home directory should contain the following sub-directories:

sub-directories in uvadm after restore

 :-----batDOS          <-- BAT files for VU on native Windows
 :-----binDOS          <-- binaries for VU on native Windows (cc by lcc-win32)
 :-----bin             <-- binaries for Linux (uvcopy,uvsort,uvhd,etc)
 :-----binSFU          <-- binaries for SFU (unix on Windows with ksh)
 :-----ctl               - control files for various purposes
 :-----dat1              - test data files
 :-----doc               - Vancouver Utilities documentation (text)
 :-----dochtml           - VU doc in HTML (same as on
 :-----env               - profiles for unix,LINUX,SFU,UWIN,& CYGWIN
 :-----hdr               - hdr files for C compiles
 :-----htmlcode          - merged into dochtml when text converted to HTML
 :-----lib               - libraries for C compiles (subfunctions,DISAM,etc)
 :-----mvstest         <-- test/demos for MVS JCL/COBOL mainframe conversions
 :     :-----cbl0
 :     :-----...         - many subdirs omitted, see MVSJCL.htm
 :     :-----xref
 :-----pf              <-- Parameter Files for uvcopy & uvqrpg
 :     :-----adm         - administrative jobs
 :     :-----demo        - demo jobs
 :     :-----IBM         - IBM mainframe conversion jobs
 :     :-----util        - utility jobs
 :-----sf              <-- Script Files
 :     :-----adm         - administrative scripts
 :     :-----demo        - demo scripts
 :     :-----IBM         - IBM mainframe conversion scripts
 :     :-----util        - utility scripts
 :-----sfun            <-- ksh functions (used in converted JCL/scripts)
 :-----src             <-- Vancouver Utilities C source code
 :-----srcf              - C source for various sub-functions
 :-----tbls              - miscellaneous tables
 :-----tf                - test files for various examples in doc
 :-----tmp               - tmp subdir (test/demo outputs)

Goto:   Begin this document End this document UVSI Home-Page

B1. Installing Windows Services For Unix

Install Windows SFU 3.5

First setup directories for downloading & installing SFU. Setup at the drive level to keep paths short & use a partition separate from the operating system (if you have a partitioned or separate disc). I will illustrate using the MSDOS commands (for text presentation), but you can use the windows explorer GUI methods.

 #1a. mkdir D:\SFUdl    <-- create directory for downloading SFU
      ==============      - might later remove if you never change options
                          - will require about 700 MB

 #1b. mkdir D:\SFU      <-- create directory for SFU setup/install
      ============        - will require about 300 MB
                          - be sure there is plenty of room for /home dirs

 #2. Download SFU from into --> SFUdl

 #3. Unzip downloaded archive (SFU35SEL_EN.exe) into --> D:\SFUdl

 #4. Print & study install.htm & readme.htm

 #5. Run the SFU setup.exe (double click)
     Specify target directory as --> D:\SFU

The Options screen is illustrated below. Assuming that you are installing SFU to compile Vancouver Utilities on the local machine, you can take the defaults, except for 2 components. You must select 'Interix GNU SDK' & 'Interix SDK'. Click on the '+' of 'Interix GNU Components' to see the 'Interix GNU SDK' selection.

SFU Installation Options

 + --- * utilities
 - --- * Interix Gnu Components
       --- * Interix GNU Utilties
       --- X Interix GNU SDK             <-- select (change X to *)
 + --- * NFS
   --- X Password Synchronization
 + --- * Remote Connectivity
 + --- * Authentication tools for NFS
   --- X Interix SDK                     <-- select (change X to *)
   --- X Actve state Perl

Goto:   Begin this document End this document UVSI Home-Page

B2. Setup users for Windows SFU

Setup users for Windows SFU

We will assume that SFU has been installed at D:\SFU, which is now the root '/' directory. We will setup 2 users (uvadm & mvstest) for the Vancouver Utilities & JCL test/demo conversions. We will use MSDOS commands for some steps, but you can use the Windows Explorer GUI equivalents. The windows selections assume Windows XP (modify for Windows 2000).

 #1. Setup home-directories for SFU users

 #1a. mkdir D:\SFU\home          <-- make home superdir for users

 #1b. mkdir D:\SFU\home\uvadm    <-- for Vancouver Utilities

 #1c. mkdir D:\SFU\home\mvstest  <-- for MVS JCL conversion test/demos

 #2. Setup users on Windows OS. The following assumes Windows XP professional.

    start --> programs --> control panel --> user accounts --> create new account

Create new accounts for 'uvadm' & 'mvstest'

 #3. Logoff Administrator & logon to 1st user to be setup (uvadm).

 #4. Specify home dir for users (uvadm for example).

    start --> programs --> control panel --> classic view --> Admin Tools

    --> Computer Mngmt --> local users & groups --> users --> 'uvadm'

    --> profile --> Home folder --> local path --> D:\SFU\home\uvadm

 #5. Setup desktop shortcuts to startup SFU for the users

    start --> programs --> Windows Services for Unix --> Korn shell

    --> right click on user 'Korn shell' & drag to the desktop

Goto:   Begin this document End this document UVSI Home-Page

B3. Setup users for Windows SFU

 #6. Customize the screen by modifying properties of user shortcut

    --> right click on user 'uvadm' & select properties

Note tabs: General, Shortcut, Options, Font, Layout, Color, Compatibility

 #6a. General - I suggest changing the Icon name to 'uvadm ksh'

 #6b. Shortcut - change 'start in' to --> D:\SFU\home\uvadm

 #6c. Shortcut - change 'RUN Normal Window' to 'RUN Maximized'

 #6d. Layout - for 17" screens (& 15" screens)
             - change screen buffer width to 128 (100 for 15" screen)
             - change window size width to  128 (100 for 15" screen)
             - change window size height to   60 ( 45 for 15" screen)

 #6e. Color - set screen background color to dark BLUE

 #7. Logoff uvadm, logon as mvstest & repeat above steps 4,5,6 for 'mvstest'.

PROBLEM - Permissions, Owner,& Group

If you setup the D:\SFU\home\uvadm directory under Windows or a DOS command window, the permissions, owner,& group are probably wrong.

This would cause failure when you login to windows as uvadm & then attempt to login to SFU/ksh by double clicking on the Korn shell Icon. Since the intended destination fails, you will probably end up in the SFU default home directory C:\Documents and Setttings\uvadm.

Set Permissions, Owner,& Group

 #1. cd /dev/fs/D/SFU       <-- change above the home directory

 #2. chmod -R 775 home               <-- set PERMISSIONS for home & all subdirs
     =================                   (uvadm,mvstest,vsetest)

 #3. chgrp -R +Administrators home   <-- set GROUP for home & all subdirs

 #4a. chown -R uvadm home/uvadm      <-- set OWNER for uvadm
 #4b. chown -R mvstest home/mvstest  <-- set OWNER for mvstest

 #5. exit                        <-- exit from SFU
 #6. logout                      <-- logout from Windows
 #7. login                       <-- log back on to Windows
 #8. double click SFU/ksh Icon   <-- log back into SFU/ksh
                                 --> should now goto /dev/fs/D/home/uvadm

Goto:   Begin this document End this document UVSI Home-Page

C1. Installing the Vancouver Utilities

First time Setup/Install (from CD)

If you already have an old version of uvadm, please skip to page 'D1' --->

 #1. logon to Windows as 'uvadm' & start SFU by clicking the Korn shell icon
     setup on the previous pages. This should take you to the uvadm home dir.

--> /home/uvadm (or D:\SFU\home\uvadm)

 #2. Load the Vancouver Utilities CD. Under SFU the CD drive is /dev/fs/G
     on my system.

 #3. ls -l /dev/fs/G                <-- check contents of CD

 #4. tar xvf /dev/fs/G/uvadm.tar    <-- restore from CDROM

 #5. ls -l                      - contents should be as listed on page 'A3'.

 #6. Setup .profile for Windows SFU (in the uvadm home dir).
    After media restore, several profiles are available in /home/uvadm/env/
    (profile_LINUX, profile_SFU, profile_UWIN, etc). Copy & rename profile_SFU
    as follows:

 #6a. cp env/profile_SFU .profile

 #7. Modify the .profile as required.  See the recommended .profile for
    Windows SFU listed on page 'F1'

 #7a. vi .profile            - edit .profile
 #7b. ...                    - modify UVLPDEST for your printer
 #7c. ...                    - modify COBDIR for your MF COBOL installation
 #7d. ...                    - any other changes desired ???
 #7e. :wq

 #8. Logoff & back on to activate new .profile
 Now compile the utility programs as shown on page 'E1' ahead ------>

Goto:   Begin this document End this document UVSI Home-Page

C2. Installing Vancouver Utilities

Notes re owner, group,& permissions

You should be uvadm when you copy the media (on the previous page) in order that the new files will be owned by uvadm & have desired permissions & group. You could correct as follows:

 #1.  Logon as uvadm (which should have Adminstrator privileges)

 #2.  cd /home/uvadm              - change to uvadm home dir

 #3.  chmod -R 775 *              - set PERMISSIONS for all files & subdirs

 #3.  chown -R uvadm *            - change OWNER of all dirs & files in uvadm

 #4.  chgrp -R +Administrators *  - change GROUP of all dirs & files in uvadm

This sets permissions as 775 for all files & directories which will work But ideally the execute bits would only be on directories scripts & bins and other files would be 664.

If you wish to correct the normal files, proceed as follows:

 #5a. chmod 664 ctl/* dat1/* doc/* dochtml/* env/* hdr/* htmlcode/* lib/*

 #5b. chmod 664 pf/*/*

 #5c. chmod 664 src/* srcf/* tf/*

Goto:   Begin this document End this document UVSI Home-Page

D1. UPGRADING to New Versions of the Vancouver Utilities

Installing Update Version (from CD)

If there is any doubt about the usefulness of the old uv version, the following procedures will allow for retrieving user modified files from the old uvadm directories into the new. It will be easier to upgrade to the next version of this package if you do not make changes in the 'uvadm' directory or add your own stuff into the uvadm directories.

 #1. logon to Windows as 'uvadm' & start SFU by clicking the Korn shell icon
     setup on the previous pages. This should take you to the uvadm home dir.

--> /home/uvadm (or D:\SFU\home\uvadm)

 #2. cd /home                 - change to the /home dir (above the uvadm dir)

 #3. rm -r uvadm.old          - remove any existing uvadm.old (grandfather)

 #4. mv uvadm uvadm.old       - change name of your current version to uvadm.old

 #5a. mkdir uvadm              - make new dir to receive new tape contents

 #6. cp uvadm.old/.profile uvadm  - copy .profile from uvadm.old to new uvadm
     ===========================    '-p' option preserves uvadm owner & perms
                                    (else use root to restore)

 #7. Load the Vancouver Utilities CD.
    Under SFU the CD drive is /dev/fs/G on my system.

 #7a. ls -l /dev/fs/G               <-- check contents of CD

 #8. tar xvf /dev/fs/G/uvadm.tar    <-- restore from CDROM

 #8a. ls -l                    - contents should be as listed on page 'A3'.

Step #4 above allows you to retrieve any modified/customized pf/sf files at any time from uvadm.old into the new uvadm directory. This also allows you to quickly revert to your former versions if you encounter a problem.

Goto:   Begin this document End this document UVSI Home-Page

D2. Reverting to old version if problems occur

Reverting to old version if problems occur

Since we have saved the old '/home/uvadm' (as /home/uvadm.old), we can quickly revert to the previous version if you encounter a problem. UV Software will help you resolve the problem as soon as possible, but you may need to run your production jobs with no waiting.

 #1. logon as Administrator (uvadm usually setup with Admin privileges)

 #2. mv /home/uvadm /home/   <-- rename just installed version

 #3. mv /home/uvadm.old /home/uvadm   <-- rename old version as current

 #4. call UV Software to resolve problem

Goto:   Begin this document End this document UVSI Home-Page

E1. Compiling ALL Programs

The following script will compile all 'uv' programs assuming you have restored the distribution media to your 'uvadm' directory & set your path to include the 'sf' directory of scripts.

You can modify the 'C' compiler called by the compile scripts by exporting an alternate value for 'UVCC' as shown below. Might be used on machines that do not have the ANSI C 'cc' compiler, but do have 'gcc'.

 cd /home/uvadm       <----- you must be in the uvadm directory
 export UVCC=gcc        - causes compile scripts to use 'gcc' vs 'cc'

 ccuvall OStype I32/I64 disamLIB LF64/NOLF [compiler-options]  <-- format

Compile 'C' programs if not Linux

As of October 2003, the Vancouver Utilities are distributed with the 'C' utility programs already compiled (into /home/uvadm/bin) using Red Hat Enterprise 3.0. If you are running any Linux, you should not have to recompile.

Note re I32/I64 32bit/64bit

You do not need 64 bit hardware. On 64 bit hardware 'long' integers & 'pointers' are 64 bits vs 32 bits. Your machine may or may not provide 64 bit handling via software. Integer type 'long long' provides 64 bit acums, function 'strtoll' converts numeric strings to 64 bits integers,& function sprintf '%lld' converts 64 bit integers to numeric strings.

On the Vancouver Utility compile scripts, 64 bit accumulators are requested by using compile option "I64". I64 causes some critical accumulators in uvcopy & uvqrpg to be defined as 'long long' 64 bits (vs int 32 bits). You can also specify '-DLF64' for Large Files (over 2 gig). Option '-DLF64' causes file opens & seeks to be changed to open64 & seek64.

Compiling all programs under Windows SFU

 ccuvall SFU I32 disamNULL NOLF - compile on Windows under SFU
 ==============================   with 32 bit accumulators
                                - No D-ISAM or LargeFile support

 ccuvall SFU I64 disamSFU LF64  - compile on Windows under SFU with 64 bit acums
 =============================  - with D-ISAM & LargeFiles support
  • As of June 2004, 64 bit mode works & is recommended
  • binaries in /home/uvadm/binSFU have been compiled with I64
  • if problems with compile above, simply copy binSFU as follows:

 cp -f binSFU/* bin    <-- copy supplied SFU binaries if compiles fail

Goto:   Begin this document End this document UVSI Home-Page

E2. TESTING the Vancouver Utility programs

C program to test 64 bit integers

A C program & a uvcopy job are supplied to test 64 bit integers. Please see program listings, operating instructions, & expected outputs on pages Q1 to Q4 of TestDemo.htm#Q1. Here are the operating instructions & expected output for the C program.

 cc src/testll4.c -obin/testll4   <-- compile testll4.c program

 bin/testll4                      <-- execute
 ===========                        - expected results below

00. 0000000000004096 * 04 = 0000000000016384 = 00 40 00 00 00 00 00 00 01. 0000000000016384 * 04 = 0000000000065536 = 00 00 01 00 00 00 00 00 02. 0000000000065536 * 04 = 0000000000262144 = 00 00 04 00 00 00 00 00 03. 0000000000262144 * 04 = 0000000001048576 = 00 00 10 00 00 00 00 00 04. 0000000001048576 * 04 = 0000000004194304 = 00 00 40 00 00 00 00 00 05. 0000000004194304 * 04 = 0000000016777216 = 00 00 00 01 00 00 00 00 06. 0000000016777216 * 04 = 0000000067108864 = 00 00 00 04 00 00 00 00 07. 0000000067108864 * 04 = 0000000268435456 = 00 00 00 10 00 00 00 00 08. 0000000268435456 * 04 = 0000001073741824 = 00 00 00 40 00 00 00 00 09. 0000001073741824 * 04 = 0000004294967296 = 00 00 00 00 01 00 00 00 10. 0000004294967296 * 04 = 0000017179869184 = 00 00 00 00 04 00 00 00 11. 0000017179869184 * 04 = 0000068719476736 = 00 00 00 00 10 00 00 00 12. 0000068719476736 * 04 = 0000274877906944 = 00 00 00 00 40 00 00 00 13. 0000274877906944 * 04 = 0001099511627776 = 00 00 00 00 00 01 00 00 14. 0001099511627776 * 04 = 0004398046511104 = 00 00 00 00 00 04 00 00 15. 0004398046511104 * 04 = 0017592186044416 = 00 00 00 00 00 10 00 00

  • the 32 bit limit is at #09 above 1,073,741,824 is OK in 32 bits
  • following entries zeros or garbage if 64 bit software not working

uvcopy job to test 64 bit integers

'testint2' is uvcopy job to test uvcopy processing of 32 & 64 bit integers. This processing depends on how you compiled uvcopy. '#1' below compiles on an Intel LINUX system in 64 bit mode. You should change 'LNX' to the proper code for your system (SUN,HP,AIX,SFU,etc).

 #1. ccc uvcopy LNX I64 disamLNX LF64 - compile on Linux in 64 bit mode
     ================================   (with D-ISAM & LargeFile support)

 #2. uvcopy testint2          - execute uvcopy job 'testint2'
     ===============          - displays output via 'more'

Please see the expected outputs for both 32 & 64 bits listed on pages Q1 & Q2 of TestDemo.htm#Q1.

Goto:   Begin this document End this document UVSI Home-Page

E3. other Installation & compile items

Please see install.htm for other installation & compile items such as:

Goto:   Begin this document End this document UVSI Home-Page

F1. .profile for the Vancouver Utilities

.profile for the Vancouver Utilities

 # profile_SFU - .profile for Vancouver Utilities under Windows SFU 3.5
 #             - this file stored in /home/uvadm/env/profile_SFU
 # 1. cd /home/uvadm              - change to uvadm homedir (D:\SFU\home\uvadm)
 # 2. cp env/profile_SFU .profile - copy & change name of profile_SFU
 # 3. vi .profile                 - modify as desired (for COBOL, etc)
 # see SFU notes in WindowsSFU.doc in volume 1 of UVdoc or on UVSI web site
 # 1. setup user 'uvadm' on windows
 # 2. specify homedir for user uvadm on windows
 #    start --> programs --> AdminTools --> control panel --> ComputerMngnmt
 #    --> local users&groups --> users --> 'uvadm' --> profile -->
 #    --> Home folder --> local path --> D:\SFU\home\uvadm
 # 3. setup shortcut on desktop to login
 #    start --> programs --> WindowsSFU --> Korn shell
 #    --> right-click on Korn shell & drag to the desktop
 # 4. Customize screen by modifying properties of uvadm korn shell desktop Icon
 #    rtclick ksh icon --> properties --> set maximized, screen size,& BG color
 #    (see details in WindowsSFU.doc guide for installing VU on Windows SFU)
 # setup critical environmental variables for Vancouver Utilities & appsadm
 export UV=/home/uvadm               # <-- UV homedir symbol used below
 export APPSADM=/home/appsadm        # <-- site applications administrator
 # setup critical environmental variables for mainframe conversions
 export RUNLIBS=$HOME             # <-- demo uses /home/mvstest for testlibs
 export RUNDATA=$HOME/testdata    # <-- apps superdir of data subdirs
 # above RUNLIBS & RUNDATA used for MVS JCL conversion test/demo
 # production should use separate filesystems for RUNLIBS & RUNDATA for example:
 # export RUNLIBS=/u1/apps/prodlibs/apay <-- sample Acts PAYable system
 # export RUNDATA=/u2/apps/proddata      <-- RUNDATA subdirs apay,arecv,etc
 # Setup 'PATH' for programs, scripts,& JCLs
 export PATH=$PATH:$UV/bin               #<-- append UV progs,scripts,RUNLIBS jcls
 export PATH=$PATH:$UV/sf/adm:$UV/sf/demo:$UV/sf/util:$UV/sf/IBM
 # Setup $PFPATH for uvcopy & uvqrpg interpreter to find Parameter Files (jobs)
 # - use symbol $UV (defined above) to shorten PFPATH definition
 export PFPATH=$UV/pf/adm,$UV/pf/demo,$UV/pf/util,$UV/pf/IBM
 export PFPATH=$RUNLIBS/pf,$APPSADM/pf,$HOME/pf,$PFPATH  #<-- UV pfs last
 #     - UV/pf/... follows RUNLIBS,APPSADM,HOME to allow user duplicate names
 #note - uvcopy accepts ',' comma delimiters so no conflict with ':' colons
 #     - in case you wanted to use D:/ vs /d/
 # Setup 'FPATH' for Korn shell functions (used by mainframe JCL/scripts)
 export FPATH=$RUNLIBS/sfun  # functions for ksh (Korn shell)
 # printer destinations, modified for Windows SFU
 export LPDEST="LPT1"        # default dest if lp -d unspcfd
 export UVLPDEST="-dLPT1"    # default dest for uvlp(uvlist) scripts
 export UVLPOPTN=""          # "-onobanner" for unix/linux (SFU does not allow)
 export UVHDPRINT=uvlp12     # script for uvhd 'i' immediate print command
 export UVHDPWIDE=uvlp12L    # script for uvhd 'iprint' Landscape 100 chars/line
 # export PT=":"             # inhibit jcl printing for programmer testing
 # export LPSDIR=/home/ezadm                # activate for EasySpooler
 # export LPOPTION="-dlp01 -onob -odata=a"  # options for EasySpooler
 # set TERM type depending on unix/linux system ??
 export TERM=interix           # <-- modify TERM as required
 trm=$(tty)                    # capture terminal device for echo below
 echo "terminal device tty=$trm and terminal type TERM=$TERM"
 # Misc Recommended items
 umask 002                     # permissions 775 dirs, 664 files
 # stty intr '^C'              # interrupt ^C, (probably already default ?)
 set -o ignoreeof              # disallow logoff via ctl D (use exit)
 HOST1=$(uname -n)             # add to PS1 prompt if desired
 trmv=${trm#/dev/}             # remove prefix /dev/
 export PS1='<@$LOGNAME:$PWD> '
 export EDITOR=vi              # for Korn shell history
 export VISUAL=vi              # for Korn shell history
 export HISTSIZE=1000;         # Korn shell history file size
 export COBMAPDIR=$RUNLIBS/maps   # for uvhdcob (display data with fieldnames)
 export DISAMEXT=""               # no 'dat' for MF COBOL Fixed length Indexed
 # alias commands to prompt for overwrite (highly recommended)
 # - use \rm, \mv, \cp, (or option '-f') when you have many files
 # - '\' tells Unix/Linux to ignore the alias & use native unix/linux command
 alias rm='rm -i'              # confirm removes
 alias mv='mv -i'              # confirm renames
 alias cp='cp -i'              # confirm copy overwrites
 alias cdd='cd $RUNDATA'       # quick access to data dir
 alias cdl='cd $RUNLIBS'       # quick access to libs (same as cd)
 alias l='ls -l'               # not required for UnixWare
 # for Micro Focus COBOL Net Express for Windows O/S
 # - see compile scripts mfnxcbl1 & mfnxcblA in /home/uvadm/sf/IBM
 export LD_LIBRARY_PATH=/dev/fs/D/MF/NetExpress/Base/lib
 export COBDIR=D:\\MF\\NetExpress\\Base
 # export PATH=$PATH:/dev/fs/D/MF/NetExpress/Base/BIN  #<-- note 'BIN' (not bin)
 #June2004 - problem with PATH length on SFU, try prepending to PATH
 export PATH=/dev/fs/D/MF/NetExpress/Base/BIN:$PATH
 #Jun2004(testing on SFU)
 export COBCPY=$(unixpath2win $RUNLIBS/cpys) # for compile script mfnxcbl1
 export COBDIR=$(unixpath2win $RUNLIBS/cblx)\;$COBDIR
 # - cblx added to COBDIR so 'runw' can find .int/.idy without path
 # MicroFocus also required to compile 'ux' programs (uxcp,uxsort,uxcopy,uxqrpg)
 # - with cobccuv script to support ISAM Variable length (IDXFORMAT3 files)
 # activate for Morada RPG compiler
 # export RPGCDIR=/home/rpgadm            # if you use Morada RPG compiler
 # export PATH=$PATH:$RPGCDIR/bin         # append RPG bin to PATH
 # export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/rpgadm/lib  # for Morada RPG
 # export SIGN_OVERRIDES=UN-7             # x'70' neg zone signs for RPG programs
 # export DISAMEXT=dat                  # RPG could use .dat ext on DISAM files
 # Capture console log files (see details in ADMjobs.doc in vol3 of UVdoc)
 export LOGDIR=$APPSADM     # ADMjobs.doc recommends LOGDIR in /home/appsadm
 # LOGDIR must contain subdirs log1,log2,log3 (current file,cur month,lastmonth)
 # - each of log1,log2,log3 must have subdirs matching $LOGNAME
 ## uncomment next 4 lines in .profiles of users who require logging
 # login1 || exit 2          # exit here if 2nd login
 # logfixA                   # process log1 file to log2 (to allow read/print)
 # echo 'console logging requires --> . aliases <-- setup aliases at logon'
 # exec script $LOGDIR/log1/$LOGNAME/$(date +%y%m%d_%H%M%S)
 #Note - the 'exec script' must be the last non-comment line in the .profile
 #     - ':' changed to '_' (in %y%m%d_%H%M%S) works for both windows & linux

Goto:   Begin this document End this document UVSI Home-Page

G1. TESTING the Vancouver Utility programs

Please see the separate section TestDemo.htm. I strongly recommend you run these tests & ensure your outputs match the expected outputs which are illustrated following each test/demo. Please call/email UV Software if you find any discrepancies or need any help running these tests.

Running these 'test/demo's is also a great way to investigate the Vancouver Utilities & find out which utilities will be the most useful to you.

Contents of 'TestDemo.doc'

  • binary file investigation & display in vertical hexadecimal
  • file copy with record selection & reformatting
  • file sort utility with record selection & much more
  • list text files, inserting laser printer control codes
  • the most powerful Vancouver Utility (data manipulation, etc)
  • Quick Report Generator
  • pre-programmed table analysis of any field by any argument
  • pre-programmed job to create record layouts from COBOL copybooks
  • test uvcp/uvsort processing Indexed Sequential Fixed length records
  • compatible with Micro Focus COBOL IDXFORMAT1 files
  • scan all files in a directory for matches to qualified patterns
  • copy files replacing patterns, qualified by other patterns
  • uvcopy equivalent of the rep2 pre-programmed job above
  • test conversion of decimal to integer & back (32/64 bit tests)
  • Be sure to run this test if you have compiled with the 64 bit option.
  • see page 'E2' or even better TestDemo.htm#Q1
  • test uxcp processing Indexed Sequential Variable length records
  • compatible with Micro Focus COBOL IDXFORMAT3 files
  • converting tabs to blanks
  • Many more pre-programmed jobs for various useful file conversions
  • UPPER/lower case, EBCDIC/ASCII, Fixed/Variable, etc

Goto:   Begin this document End this document UVSI Home-Page


The following are some of the documentation files are included on the distribution media in subdirectory 'doc'. See more complete descriptions in the contents.doc section.

  • installation guide for UNIX/Linux systems
  • installation guide for SFU under Windows XP or 2000
  • installation guide for native windows executables
  • Testing & Demonstrating the Vancouver Utilties
  • a great way to get started using these utilities
  • see summary on the previous page
  • training guide for the Vancouver Utilities
  • tips for users new to the UNIX operating system
  • over 200 UNIX scripts to perform useful tasks on UNIX
  • documentation listing utility
  • hexdump utility for any file
  • a mini-version of uvcopy that allows all parameters
    on the command line (replaces mainframe DATA utility)
  • parameter driven sort for UNIX systems
    compatible with the uvcp utility (replaces SORT & SORT3)
  • documentation for the uvcopy program
    (uvcopy1.doc, uvcopy2.doc, etc thru uvcopy5.doc)
  • uvcopy is a powerful data manipulation program
    that is the basis for many applications in the pkg
  • Converting EBCDIC to ASCII with or without copybooks
  • Converting Mainframe JCL to ksh for Unix/Linux/Windows
  • Converting IBM Mainframe COBOL to Micro Focus COBOL
  • for Unix/Linux/Windows
  • convert mainframe data files to '|' delimited text files
    for loading databases (SQL Server or Oracle)
  • COBOL programming aids, such as 'cobmap' which generates
    record layouts from COBOL copybooks
  • Pre-Programmed jobs for the uvcopy interpreter
    TABLEjobs, HTMLjobs, SCANjobs, REPjobs, INSERTjobs, LABELjobs,
    LISTjobs, COPYjobs, FIXjobs, DROPjobs, UVjobs1, UVjobs2,
    MFcnvrt, SQLjobs, REFORMjobs, CMPjobs, COBaids, COBscans,
    ADMjobs, AIDjobs, VTOCjobs, XREFjobs, TAPEjobs,

Goto:   Begin this document End this document UVSI Home-Page

H2. Documentation in HTML available on distribution CD & on web si te

Vancouver Utilities Documentation on the WEB site     <-- UV doc on the web site

Documentation Also on Distribution CD for install

The Vancouver Utilities distribution CD now contains subdir 'dochtml'. If you install as directed in install.doc, you can point your web browser to the dochtml subdir as follows: (replace 'httpd://' with 'file:/')


Vancouver Utilities Doc HTML Home-Page

  • Description of the Vancouver Utilties
  • Detailed Description, Customer References,

 Mainframe Conversion Library

 Vancouver Utility Program User Guides
 - uvhd, uvhdcob, uvlist, uvsort, uvcopy, uvqrpg
  • Installation on Unix/Linux systems
  • Installation on Windows under SFU
  • Installation on Windows under Cygwin or Uwin
  • Installation on native Windows without SFU
  • Training Guide: uvhd, uvlist, uvcp, uvsort, uvcopy
Photo Gallery
  • Vancouver Map and City, Owen Townsend, etc

 Pre-Programmed jobs (for the uvcopy interpreter)
 - HTMLjobs, TABLEjobs, SCANjobs, REPjobs, COBOLaids

Unix/Linux shell scripts - 200+ scripts for conversions and everyday use

  • price lists and license agreements

Goto:   Begin this document End this document UVSI Home-Page

H3. Documentation in HTML available on distribution CD & on web si te

Converting Text Documentation to HTML

Over 99.8% of the HTML you see here on the UV Software web site was generated automatically. Only a few small files such as index.htm were coded manually. The voluminous documentation (99.8%) continues to be maintained via the UNIX 'vi' editor. When website updates are made (monthly or whatever) the 99.8% is reconverted & merged with the few small hand coded files. The result is 'tar'd, compressed,& FTP'd to the webserver.

This may be of interest to other sites with legacy documentation. If your legacy documentation has a clear set of rules for page headings & section/chapter references, then you (or UV Software) could write a uvcopy job to automatically convert your legacy documentation to HTML.

Goto:   Begin this document End this document UVSI Home-Page

I1. Printing the Documentation

Customers receive 1 pre-printed (duplex) copy of the most relevant documentation mounted in a standard 3 ring 8 1/2 x 11 binder with tabs for each section. The documentation is also on the distribution media & you may print additional copies as follows:

These scripts presume an HP PCL5 compatible laser printer.

export UVLPDEST=-dlaser?? <-- specify your laser printer (if nor default)

Use the following options. Note the 2 option groups separated by a space.

         p60               - specifies the lines per page
              c12          - 12 characters per inch
                 m300      - offsets the left margin 300/720 inch (decipoints)
                             to the right for 3 hole punching
                     d1    - duplex option (append to m300)
 UVdocU  p60  c12m300      - print Installation & Utilities volume (Simplex)
 UVdocU  p60  c12m300d1      or for DUPLEX (if you have a DUPLEX laser)
                           - Installation, Test/Demos,& Program references
 UVdocC  p60  c12m300      - print Conversions Volume (Simplex)
 UVdocC  p60  c12m300d1      or for DUPLEX (if you have a DUPLEX laser)
                           - Mainframe Conversions
                             MVSJCL, VSEJCL, DATAcnv1, MVSCOBOL, SQLjobs,
                             ADMjobs, LISTjobs, TABLEjobs

Goto:   Begin this document End this document UVSI Home-Page

I2. Printing Documentation - Selectively by File

You may list individual files or all files as described below:

The documentation uses embedded '*eject' codes to signal new pages. You should use the 'uvlist' utility or any of the many 'uvlp' scripts that call the 'uvlist' program (uvlp12, uvlp12D, etc).

Uvlist allows a 2nd set of options for HP PCL5 compatible laser printers If you do not have a laser printer - specify option 'i1' to disable sending HP PCL5 escape sequences to the printer.

Here are examples of using 'uvlist' to print the documentation for itself:

uvlist doc/uvlist.doc | lp -dlp01 - print documentation for uvlist

 uvlist doc/uvlist.doc p60 m300 | lp  - print documentation for uvlist
                                        with option 'p60' for 60 lines/page
                                        & option m300 to offset left margin
                                        300/720 decipoints 3/10" to the right
                                        (to leave room for 3 hole punching)
                                      - p60 is the default for 1st options,
                                        but you have to specify something
                                        here if you want to specify the m300

There are several scripts that make it easier to use uvlist, since they embed preferred options & automatically pipe to a desired printer. Your .profile would include an export for your preferred printer, for example:

export UVLPDEST=-dlp01 - identify laser printer for uvlp__ scripts

 uvlp12 doc/uvlist.doc    - print at 12 cpi, 60 lines per page, Simplex (1 side)
                            leaving 300/720" margin for 3 hole punching

 uvlp12D doc/uvlist.doc   - same as above, but Duplex (2 sided vs Simplex)
 ======================   - use this if you have a DUPLEX Laser printer

See uvadm/doc/uvlist.doc for complete details on the Laser printer options and the various scripts available.

Goto:   Begin this document End this document UVSI Home-Page

I3. script to print 1 documentation file

 # uvlp12D - Korn shell script from UVSI stored in: /home/uvadm/sf/util/
 # uvlp12D - print a file at 12 cpi (90 chars on 8 1/2 x 11)
 #        - DUPLEX mode (new option April 98)
 #        - pg hdngs with: filename, mod-date, today-date, page#s
 #        - for HP laserjet 4 printers & compatibles
 #usage: uvlp12D filename [group1] [group2]  <-- may override default options
 #       ==================================
 # - 1 of several: uvlp12,uvlp14,uvlp16,uvlp12L,uvlp14L,uvlp12D,uvlp14LD,etc
 # - these scripts invokes uvlist & pipe to the spooler
 # - see uvlist.doc for many group1(file) & group2(laser printer) options
 # - these scripts convert group2 options into HP PCL5 escape sequences
 # - scriptnames reflect commonly used uvlist options, for example:
 #   group1:  p60  = 60 lines per page
 #            b50e60 = Begin print at page 50 & End print at page 60
 #   group2:  d1   = duplex mode
 #            c12  = 12 cpi = 90 chars across on 8 1/2 " paper
 #            m280 = default margin offset by 280/720 inch (for 3 hole punches)
 # .profile should specify environmental variables for 'lp', for example:
 # export UVLPDEST="-dlp0"       #<-- destination 'lp0' ("-dLPT1" for SFU)
 # export UVLPDEST=""            #<-- null to use lpadmin default
 # export UVLPOPTN="-onobanner"  #<-- 'nobanner' option for lp
 # export UVLPOPTN=""            #<-- null disable for Windows SFU
 if [ -f $1 ]; then :
    else echo "ERROR - $1 is not a file"; exit 1; fi
 uvlist $1 p60$2 t1d1c12n-220$3 | lp $UVLPOPTN $UVLPDEST
 uvln=$(basename $0)
 linesf=$(wc -l $1); lines=${linesf%% *}
 echo "$uvln printing $1 on $dest, lines=$lines"
 exit 0

See uvadm/doc/uvlist.doc for complete details on the Laser printer options and the various scripts available.

Goto:   Begin this document End this document UVSI Home-Page

Visitor Counters for ThisYear and LastYear