Variable-headered text-out program

IPOUT reads file, reads its FIP header for the DF field which holds the format
to use. If there is no DF, the default format is used. This describes the
pre-header, header and trailer to apply to the file.

The DP header field is then checked for the destination device.  The device
file pertaining to that destination is then opened to find which Spider/TTY or
Fipnet address to send it via.

For Fipnet transmissions over ethernet, a second controller may also be
specified. The Internet address will be checked to find the correct port to

Normally the Fipnet port at the destination is fixed at 9001+h4 where h4 is the
last number of the Internet number of this Unix box. However where you have
more than one IPOUTs on the same Unix box sending to the same Atex, the port
number can be forced to a particular number.

The device file is ignored if the '-a' switch is used, This is the name of a
valid Atex J11 in the /etc/hosts file. In this case RCVFIP must be running on
the remote J11 against the Ethernet port.

The syntax for the device file is :
    ; comment - any comments MUST be at the end of the file
        any host lines after the comments are ignored.
    (DPhost)    (hostname)
or  (DPhost)    (SpiderPortNo)
where   DPhost is the contents of the DP field (or the alternative Field in -R)
    hostname is the name of a valid host in /etc/hosts
    SpiderPortNo is the port number of a Terminal Server port

If you are using a terminal server port, then the port number (actually the
SECOND digit of the port number) and the environment variable
is used to determine the hostname to send to.
If FIP_SPIDER_OUT is set to 'fipts' and the port is 5413, then the host is
fipts4 port 5413.

Input Options :
    -f : default format file if file either has no DF hdr field
        or the parameter specified does not exist.
                    default: tables/out/FORMAT
    -q : queue to scan in ~/spool/. default: 2atex
    -l : log all items through  default: no logging of files
    -L : log to the screen too  default: no logging of files
    -t : sleep time in secs between scans of the queue
                    default: 1 sec
    -x : atex quad flag : force to ignore (ie NLs are sent as is)
    -X : atex quad flag : force to convert (ie NL -> QL)
        default: the quad flag follows env FIP_IPOUT_J11
            if Atex J11 and NOT a binary file NL-> QL.
    -b : no of bits for assured traffic default: 7
    -h : FIPNET : hostname for the 2nd ethernet port
    -p : FIPNET : force the port at the other end to be this number
        default: 9001 plus the last digit of the Internet no
        of this Unixbox.
    -n : atex quad flag for 012 default: none
        This is the OCTAL number of a character that will be a 012
        on the J11 system and is used where NL is converted to QL.
    -a : atexhost name to force delivery to this host (using Ethernet only)
                    default: none.
    -A : atexhost name to force delivery to this pseudohost
        ie always look in the tables/device file for this host
        if '-A edsys4', file tables/device/EDSYS will be looked at
        for entry line :    edsys4  (output device)
                    default: none.
    -R : 2 letter FipHdr field holding the device   default: 'DP'
        This is for systems where the DP is localhost and the
        name of the other device is in another field
        eg perhaps the line in the USERS file has a 'QP:edone1
                -R QP
    -1 : filename : send a single file and stop default: spool queue
        The input file is NOT deleted in this case.
    -D : FIPNET : show the filename as returned by the remote system
    -v : version no and exit

Format parameter files are held in tables/out. The syntax of a Format file is :

        setup defaults (both sizes and text defaults)with %DU etc
        pre:    preheader
        hdr:    header
        tlr:    trailer

    If any comments are needed, place at the end of the file.

    IPOUT uses FipSeq which means that strings defining the above can be:
        ascii text (but not NL, CR or FF as they end the string)
        unix/c escape chrs : \r, \n, \s, \b, \t etc
        octal numbers : \001, \377
        internal header fields : \SN, \DQ
            (for Source Header (SH) fields use \X? ie \XP)
    or  system variables :
            \$D : day of month in 99 format
            \$M : month in xxx format
            \$I : month in 99 format
            \$Y : year in 99 format
            \$H : hour (99)
            \$N : mins (99)
            \$B : secs (99)
            \$J : julian date (3digits, Jan1 is 001)
            \$S : 3 figure seqno (sysgen from ~/fix/IPOUT_queue)
            \$Z : 4 figure seqno (sysgen from ~/fix/IPOUT_queue)
            \$A : atex orig field (SOURCE;06/06,14:35)
            \$C : number of chrs in file
            \$W : number of words in file (IP_WORD_LEN)
            \$T : 1st 64 chrs of text
            \$R : Random letter

    partials may be defined as %QT\SN,3,6,u
        ie  create QT from existing FipHdr field SN
            .. starting at the 3rd chr
            .. for 6 (or less) chrs
            .. and force uppercase
    combies may be defined as %QW|ep|na,(000000)a
        ie  create QW from existing FipHdr field EP
            .. or if there is no EP, FipHdr NA
            .. or if there is no NA, the default is (000000)a
    fixeds may be defined as %QZ:abcdef
        ie  create QZ as abcdef

IPOUT uses a number of enviroment variables to tune :
    FIP_IPOUT_J11   - This converts all NL to Atex QL outbound
            Turn off with -X
    FIP_USA_DATE    - yes or no for date in mm/dd/yy format or dd/mm/yy
    FIP_NET_J11TIME - increase the timeout period for the J11 to reply for
            Ethernet only. This defaults to 8 for 2 seconds.
    FIP_TTY_SPEED   - Set the TTY port speed for connections via the TTY
            port. Defaults to 1200

(copyright) 2024 and previous years FingerPost Ltd.