Numeric Data Structures
Storage, Retrieval & Conversion
  Table of Contents  v-24.01.01 - nbrmix01.htm 
  Introduction
  Abbreviations & Notations
  Overview of Tasks or Jobs
  File Formats
  Line Sequential Files
  Record Sequential Files
  Record Content and Structure
  Plain Text Data, ASCII or EBCDIC
  Numeric Values, Physical Formats
  Binary Data, Bit Sensitive
  Field Format, Fixed or Variable
  Processing Numeric Data
  Record & Field Definitions
  Records with Text & Numeric Fields
  Records with All Text Fields
  Create LSEQ-ASC-CSV-TXT
  Bash Script, do File Create & Hex-Dump
  LSEQ-ASC-CSV-TXT, Record Structure
  Review Hex-Dump
  Import RSEQ-ASC-FFL-NBR from LCSV
  Bash Script, do File Convert & Hex-Dump
  RSEQ-ASC-FFL-NBR, Record Structure
  Review Hex-Dump
  Import RSEQ-EBC-FFL-TXT from LCSV
  Convert RSEQ-EBC-FFL-NBR to ASC
  Convert RSEQ-ASC-FFL-NBR to EBC
  Export RSEQ-ASC-FFL-NBR to LCSV
  Totals for RSEQ-ASC-FFL-NBR
  Job Scripts, Bash
  Create the First Test File
  Logical Hex-Dump, First Test File
  Physical Hex-Dump, First Test File
  Convert LCSV to RSEQ-ASC-FFL-NBR
  Convert RSEQ-ASC-FFL-NBR to LCSV
  Compare Two LSEQ Files
  Compare Results Equal
  Compare Results NOT Equal
  Hex-Dump, Second and Final File
  Logical Hex-Dump, Second File
  Logical Hex-Dump, Final File
  Physical Hex-Dump, Second File
  Physical Hex-Dump, Final File
  Program Preparation
  Data Convert Programs
  RSEQ-ASC-FFL-NBR to LSEQ-ASC-CSV
  Generate the Program
  Compile the Program
  LSEQ-ASC-CSV to RSEQ-ASC-FFL-NBR
  Generate the Program
  Compile the Program
  LSEQ-ASC-CSV to RSEQ-ASC-FFL-TXT
  Generate the Program
  Compile the Program
  File Compare Programs
  File Compare for LSEQ-ASC-FFL
  Generate the Program
  Compile the Program
  Validate Numeric Values
  Totals for RSEQ-ASC-FFL-NBR
  Generate the Program
  Compile the Program
  Totals for RSEQ-ASC-FFL-TXT
  Generate the Program
  Compile the Program
  Review Results with Hex-Dump
  Hex Dump by Logical Record
  Hex-Dump, Second File
  Hex-Dump, Final File
  Hex Dump by Physical File
  Ancillary Functions & Files
  Batch Jobs, Windows
  Set the Base Environment
  Display & Log Messages
  Batch Jobs, Linux
  Set the Base Environment
  Display & Log Messages
  Summary
  Software Agreement and Disclaimer
  Downloads and Links
  Current Server or Internet Access
  Internet Access Required
  Glossary of Terms
  Contact or Feedback
  Company Overview
The SimoTime Home Page 

Table of Contents Previous Section Next Section Introduction

This document will describe and demonstrate how to access non-relational data structures (Sequential Files or VSAM Data Sets) and process records that contain text strings and numeric values. The processing techniques will create files, convert file formats, convert record structures, convert record content and view record content in a Hex Dump format. The numeric formats include Zoned Decimal (USAGE IS DISPLAY), Packed Decimal (USAGE IS COMP-3) and Binary (USAGE IS COMP). These numeric formats are commonly used on IBM Mainframe Systems or application programs that were created using the COBOL programming language.

Batch jobs are used to describe the details of the conversion process. The COBOL programs that do the numeric processing and conversion are generated using SIMOTIME Technology running on a Windows System with Micro Focus COBOL or a Linux (Ubuntu) System with GnuCOBOL.

1. Obtain an EBCDIC-encoded Test File.
1.1. Transfer a test file from a Mainframe System.
1.1.1. Transfer a Record Sequential file that is EBCDIC-encoded with fixed-length records and multiple numeric formats.
1.1.2. Use File Transfer Protocol (FTP) with BINARY Mode to transfer the file.
1.2. Create a test file on a Local Server, Desktop or Laptop (Linux, UNIX or Windows).
1.2.1. Create a Spreadsheet of Text Strings and Numeric Values.
1.2.1.1. This spreadsheet may be managed as an Excel (XLS) or Open Document (ODS) Format.
1.2.1.2. A copy of the spreadsheet in CSV (Comma-Separated-Values) format will be required.
1.2.1.3. Convert the CSV File to an EBCDIC-encoded Record Sequential file that contains numeric values stored in a Packed-Decimal or Binary format.
1.2.2. Convert CSV File to an EBCDIC-encoded, Record Sequential File with Fixed-Length records.
2. Create an RSEQ-ASC File with Multiple Numeric Formats
2.1. This Test File is an ASCII-encoded Record Sequential File with fixed-record and fixed-field lengths.
2.2. This file contains numeric fields that use Packed-Decimal, Binary and Zoned-Decimal formats.
3. Create an RSEQ-ASC File with a Single Numeric Format
3.1. This Test File is an ASCII-encoded Record Sequential File with fixed-record and fixed-field lengths.
3.2. This file contains numeric fields that use a single numeric format of Zoned-Decimal with a Sign Leading Separate specification.
4. Convert the First File into a Second Test file
4.1. The Second file is a Line Sequential file with variable length records.
4.2. This process will read the first test file and create a second test file.
4.2.1. This process will do a file format conversion from Record Sequential to Line Sequential.
4.2.2. This process will do a record content conversion from Fixed-Field to CSV format.
4.2.3. This process will do a numeric field conversion from Packed and Binary to Plain Text numeric values.
4.3. The first test file is not changed.
5. Convert the Second Test File into a Final Test File.
5.1. The Final file is an ASCII-encoded Record Sequential File with fixed-record and fixed-field lengths.
6. Compare the First and Final Test Files
7. Hex-Dump of the Second and Final Test Files
7.1. Logical Hex-Dump of an ASCII/Text file with variable length records.
7.1.1. Intended for Application Programmers
7.1.2. Provides a Hex-Dump of the logical records within a file.
7.2. Logical Hex-Dump of a Record Sequential file with variable length records.
7.2.1. Intended for Application Programmers
7.2.2. Provides a Hex-Dump of the logical records within a file.
7.3. Physical Hex-Dump of a a file. This type of Hex-Dump uses byte-stream I/O to access a file.
7.3.1. Intended for System Programmers
7.3.2. Provides a Hex-Dump of the embedded physical file structural properties along with the logical records within a file.

 


We have made a significant effort to ensure the documents and software technologies are correct and accurate. We reserve the right to make changes without notice at any time. The function delivered in this version is based upon the enhancement requests from a specific group of users. The intent is to provide changes as the need arises and in a timeframe that is dependent upon the availability of resources.

Copyright © 1987-2024
SimoTime Technologies and Services
All Rights Reserved

Table of Contents Previous Section Next Section Abbreviations & Notations

References to files may use the following naming convention.

1. LSEQ-ASC-CSV-TXT
1.1. LSEQ defines a Line Sequential File.
1.2. ASC defines an ASCII encoding schema for the record content.
1.3. CSV defines a Record Structure as a Comma-Separated-Values format.
1.4. TXT defines a Text-oriented content for the fields within a record. Numeric values will use a Zoned-Decimal format with a separate sign character.
2. RSEQ-EBC-FFL-NBR
2.1. RSEQ defines a Record Sequential File.
2.2. EBC defines an EBCDIC encoding schema for the record content.
2.3. FFL defines a Fixed-Field-Length for the field structures within a record.
2.4. NBR defines the possible use of Zoned-Decimal, Packed-Decimal or Binary formats for Numeric Values. Non-Numeric data will use a Text or Character format.

 

The following provides a list of terms or abbreviations used when referring to the various file types and record structures.

File Type Description
LSEQ Line Sequential File or ASCII/Text File.
LCSV Line Sequential File or ASCII/Text File with a record structure that uses a Comma-Separated-Values (CSV) format.
RSEQ Record Sequential File
KSDS Key Sequenced Data Set or Indexed File.
Encoding
Schema
Description
ASC ASCII-encoding is used for the Fields defined as text or "USAGE IS DISPLAY".
EBC EBCDIC-encoding is used for the Fields defined as text or "USAGE IS DISPLAY".
Field
Structure
Description
CSV Comma Separated Values is a record structure containing variable length fields of text characters. Each field is separated by a delimiter character that is typically a comma.
FFL Fixed Field Length is a record structure that contains fixed length fields. Each field may contain text or binary data.
Numeric
Field
Description
NBR The numeric structures (or fields) may be formatted as Zoned-Decimal, Packed-Decimal or Binary.
TXT The numeric structures (or fields) are formatted as text or "USAGE IS DISPLAY" with a Sign-Leading-Separate format.
  Abbreviations and Notations for File, Record and Field Structures

Table of Contents Previous Section Next Section Overview of Tasks or Jobs

The following provides an overview of the various tasks that will be performed in this test case. The tasks may be executed on a Linux, UNIX or Windows System.

1. Create LSEQ-ASC-CSV-TXT, Text & Numeric Data.
1.1. The output file will be an ASCII/Text File with a record structure that uses a Comma-Separated-Values (CSV) format.
1.2. The CSV file may be created using a batch job script.
1.2.1. On a Windows System a command (.CMD) file is used as a batch job script.
1.2.2. On a Linux or UNIX System a Bash Script (.sh) file is used as a batch job script.
1.3. The CSV file may be created using Spreadsheet software that contains columns of Text Strings and Numeric Values.
1.3.1. On a Windows System this spreadsheet may be managed by Microsoft Exec or LibreOffice Calc.
1.3.2. On a Linux or UNX System this spreadsheet may be managed by LibreOffice Calc.
1.3.3. A copy of the spreadsheet in CSV (Comma-Separated-Values) format will be required.
2. Convert LSEQ-CSV File to RSEQ-ASC File.
2.1. The output file will be an ASCII encoded Record Sequential File with fixed-record and fixed-field lengths.
2.2. The output file contains numeric fields that use Packed-Decimal, Binary and Zoned-Decimal formats.
3. Convert RSEQ-ASC File to RSEQ-EBC File.
3.1. The output file will be an EBCDIC encoded Record Sequential File with fixed-record and fixed-field lengths.
3.2. The input and output files contain numeric fields that use Packed-Decimal, Binary and Zoned-Decimal formats.
3.3. The output file should be identical to a record sequential file that was transferred from an IBM Mainframe System using the File Transfer Protocol (FTP) with MODE BINARY.
4. Convert RSEQ-EBC File to RSEQ-ASC File.
5. Compare RSEQ-ASC File with RSEQ-ASC File.
5.1. Compare the file that was created using the CSV formatted data to the file that was created using the mainframe formatted data.
6. Validate Numeric Integrity using Summary Totals and Record Counts
7. Create and Review Hex-Dump of Files
7.1. Logical Hex-Dump of an ASCII/Text file with variable length records.
7.1.1. Intended for Application Programmers
7.1.2. Provides a Hex-Dump of the logical records within a file.
7.2. Logical Hex-Dump of a Record Sequential file with variable length records.
7.2.1. Intended for Application Programmers
7.2.2. Provides a Hex-Dump of the logical records within a file.
7.3. Physical Hex-Dump of a a file. This type of Hex-Dump uses byte-stream I/O to access a file.
7.3.1. Intended for System Programmers
7.3.2. Provides a Hex-Dump of the embedded physical file structural properties along with the logical records within a file.

 

The physical structure of numeric values that are stored in non-relational data structures (Sequential Files and VSAM Data Sets) will vary across Operating Systems and COBOL Technologies. This document will describe processing techniques that will adjust to these variances.

Table of Contents Previous Section Next Section File Formats

This suite of batch jobs and conversion programs will create and access ASCII/Text files and Record Sequential (RSEQ) files. ASCII/Text files may be referred to as Line Sequential (LSEQ) files.

Table of Contents Previous Section Next Section Line Sequential Files

Line Sequential files are ASCII/Text files. Depending on how the file is created it may have fixed or variable length records. The separation of the individual records is maintained by the use of separator byte(s) between the records. For Windows this is usually a two byte value consisting of a Carriage-Return and Line-Feed (or CRLF), the hexadecimal notation is x'0D' and x'0A'. For Linux and UNIX systems this is usually a one byte value consisting of a Line-Feed (or LF), the hexadecimal notation is x'0A'.

The record content for Line Sequential files should be display or print text using the ASCII encoding format. Hence the name ASCII/Text files. These files should not contain packed or binary data strings.

A Line Sequential file may be viewed with a text editor of choice on the operating system of choice.

Table of Contents Previous Section Next Section Record Sequential Files

A Record Sequential file may contain fixed-length records or variable-length records. The record sequential files with fixed-length records are a series of concatenated records or data strings of a predefined length without record separator values between each record. The first byte of the first record starts at the first byte of the file.

A record sequential file with variable-length records is a series of concatenated records or data strings of varying lengths without record separator values between each record. Each record is preceded by a record descriptor word (RDW) that defines the length of the record that follows. A Micro Focus header record is placed at the start of the file when the file is created. The physical file structure (or format) of a record sequential file with variable length records will vary depending on the system platform.

The record content for Record Sequential files may contain text strings that are ASCII or EBCDIC-encoded and numeric values that use a packed-decimal, zoned-decimal or binary format.

Table of Contents Previous Section Next Section Record Content and Structure

When Data Files are created and accessed on a single system an awareness of the record content and record structure is helpful. When Data Files are shared across multiple systems an understanding of the record content and record structure becomes a requirement.

Table of Contents Previous Section Next Section Plain Text Data, ASCII or EBCDIC

Plain Text Data may be described as characters that can be viewed by a human being or used without requiring modification, conversion or decryption. Also, Plain Text Data may include characters that control simple arrangement of text, such as line breaks or tabulation characters.

ASCII or EBCDIC encoding for text data

Table of Contents Previous Section Next Section Numeric Values, Physical Formats

Business applications that are executed on an IBM Mainframe System or application programs that were created using the COBOL programming language use a variety of formats to define and process numeric values. The following is a list of some of the commonly used numeric formats.

Link to Internet   Link to Server   Explore The Binary or COMP format for numeric data strings. This numeric structure is supported by COBOL and may be explicitly defined with the "USAGE IS COMP" or "USAGE IS BINARY" clause.

Link to Internet   Link to Server   Explore The Edited for Display format for numeric data strings. This numeric structure is supported by COBOL and may be used with an edit-mask to prepare the presentation for readability by human beings.

Link to Internet   Link to Server   Explore The Packed-Decimal or COMP-3 format for numeric data strings. This numeric structure is supported by COBOL and may be explicitly defined with the "USAGE IS COMP-3" clause.

Link to Internet   Link to Server   Explore The Zoned-Decimal format for numeric data strings. This numeric structure is the default numeric for COBOL and may be explicitly defined with the "USAGE IS DISPLAY" clause.

Table of Contents Previous Section Next Section Binary Data, Bit Sensitive

Binary Data, Bit Sensitive

TAG

Table of Contents Previous Section Next Section Field Format, Fixed or Variable

Field Format, Fixed or Variable

TAG

Table of Contents Previous Section Next Section Processing Numeric Data

This suite of batch jobs and conversion programs will create and access Line Sequential (LSEQ or ASCII/Text) files and Record Sequential (RSEQ) files. The record content and structure within the LSEQ files are ASC encoded and use a Comma-Separated-Values (CSV) format. The record content and structure within the RSEQ files may be ASC encoded or EBC encoded and use a Fixed-Field-Length (FFL) format. The numeric values may be stored in Zoned-Decimal, Packed-Decimal or Binary.

Table of Contents Previous Section Next Section Record & Field Definitions

This suite of batch jobs will process a number of files with different file and record structures. This section describes the layout of the records within the files and the definitions of the fields within the records.

Table of Contents Previous Section Next Section Records with Text & Numeric Fields

The following describes a file with fixed-record and fixed-field lengths. The records contain text data (may be ASC or EBC-encoded) and numeric values that are stored in Zoned-Decimal, Packed-Decimal and Binary formats.

Link to Internet   Link to Server   Explore a Record Structure containing Numeric Values stored in a Zoned-Decimal, Packed-Decimal and Binary format. This information is presented in a generated HTML document based on a User-Defined COBOL copyfile.

Table of Contents Previous Section Next Section Records with All Text Fields

The following describes a file with fixed-record and fixed-field lengths. The records contain text data (may be ASC or EBC-encoded) and numeric values that are stored in a Text format with a separate, leading sign character.

Link to Internet   Link to Server   Explore a Record Structure containing Numeric Values where the Packed and Binary formats have been converted into a Text format. This information is presented in a generated HTML document based on a User-Defined COBOL copyfile.

Table of Contents Previous Section Next Section Create LSEQ-ASC-CSV-TXT

This batch job will create a Line Sequential (LSEQ or ASCII/Text) file. The record content should be ASC encoded, text data. This file may be viewed with a text editor of choice.

As a secondary task the batch job will produce a physical Hex-Dump of the file it just created. The Hex-Dump will show the logical records and the control bytes within the file. For example, since this is an LSEQ file the Hex-Dump will show the separator byte(s) between the records.

Table of Contents Previous Section Next Section Bash Script, do File Create & Hex-Dump

The following is a listing of the Bash Script member (nbrmixs1.sh) that is used to create a Line Sequential File and produce a Hex-Dump view of a physical file that is stored on a Linux System.

#!/bin/bash
   JOBNAME=nbrmixs1
#  *********************************************************************
#  *       Bash Script File - provided by SimoTime Technologies        *
#  *           (C) Copyright 1987-2018 All Rights Reserved             *
#  *             Web Site URL:   http://www.simotime.com               *
#  *                   e-mail:   helpdesk@simotime.com                 *
#  *********************************************************************
#  *
#  * Text   - Create an LCSV File using the Bash ECHO Command.
#  * Author - SimoTime Technologies
#  * Date   - January 24, 1996
#  *
#  * This Batch Job (Bash Script) will run on an Ubuntu System.
#  *
#  * The input data is included within an ECHO statement. The input
#  * data is written to an output file using the pipe function.
#  *
#  * The output file is a Line Sequential File with variable length
#  * records that contain variable length fields (or sub-strings) that
#  * are separated by a delimiter character.
#  *
#  * This job will produce a Hex-Dump of the output file that includes
#  * the logical record content and the embedded format control
#  * characters.
#  *
#  *   ************
#  *   * nbrmixs1 *
#  *   *********sh*
#  *        *
#  *        *
#  *        *
#  *   ************
#  *   *  Step 1  *****************************
#  *   ************                           *
#  *        *           ************     ************     ************
#  *        *           * ENV4SYS1 ******* for-loop *******  export  *
#  *        *           *******lseq*     *********so*     ************
#  *        *
#  *        *
#  *   ************
#  *   *  Step 2  *****************************
#  *   ************                           *
#  *        *           ************     ************     ************
#  *        *           * instream *******   echo   *******  SYSUT2  *
#  *        *           ************     *******bash*     *******lcsv*
#  *        *
#  *        *
#  *   ************                      ************
#  *   *  Step 3  ************************ cobcrun  *
#  *   ************                      ************
#  *        *                                 *
#  *        *           ************     ************     ************
#  *        *           *  SYSUT1  ******* SIMOZAPS *******  SYSUT2  *
#  *        *           *******lcsv*     *********so*     *******lseq*
#  *        *
#  *        *
#  *        *
#  *   ************                      ************
#  *   *  Step 4  ************************   EOJ    *
#  *   ************                      ************
#  *
#  *
#  *   Job Step and Description
#  *   ------  ----------------------------------------------------------
#  *   Step 1, Prepare the System Environment.
#  *   Step 2, Create a new ASC-encoded LSEQ, CSV File
#  *   Step 3, Create a Physical Hex-Dump of the LSEQ, CSV File.
#  *   Step 4, End of Job.
#  *
#  * ********************************************************************
#  * Step 1 of 4, Prepare the System Environment.
#  *
   JOBSTATUS=0
   for textstring in $(cat ENV4SYS1.cfg);
   do
#      # * The following statement will replace all occurences
#      # * of USD_BASESYS1 with the value of the BASESYS1
#      # * environment variable.
       textstring=${textstring//USD_BASESYS1/$BASESYS1}
#      # * The following statement will replace all occurences
#      # * of /USD_JOBNAME with the value of the JOBNAME
#      # * environment variable.
       textstring=${textstring/USD_JOBNAME/$JOBNAME}
       export $textstring
       rc=$?
       if [ $rc != 0 ]
       then
          simonote.sh "#  $textstring - Return Code is $rc"
          JOBSTATUS=$rc
       fi
   done
#  *
   simonote.sh "# **************************************************************$JOBNAME"
   echo "# BASESYS1........... $BASESYS1"
   echo "# COB_LIBS........... $COB_LIBS"
   echo "# COB_LIBRARY_PATH... $COB_LIBRARY_PATH"
   echo "# SIMONOTE........... $SIMONOTE"
   simonote.sh "# JOBNAME............ $JOBNAME"
#  *
#  * *******************************************************************
#  * Step 2 of 4, Create a new ASC-encoded LSEQ, CSV File...
#  *
#  * SYSUT2 The File format is ASCII/Text (Line Sequential or LSEQ).
#  *        The record/field structure uses a Comma-Separated-Value or
#  *        CSV format.
#  *
   simonote.sh "# StepInfo Create and populate a new LSEQ, CSV File"
   export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/XLSS/SIMOTIME.DATA.NBRMIXX1.csv
   echo "ZDU_5_0,123,ZDS_5_0,123,PKU_5_0 ,123,PKS_5_0 ,123,BNU_5_0 ,123,BNS_5_0 ,123,FILLER ">$SYSUT2
   echo "ZDU_5_0,123,ZDS_5_0,-122,PKU_5_0 ,123,PKS_5_0 ,-122,BNU_5_0 ,128,BNS_5_0 ,-122,FILLER ">>$SYSUT2
#  *
#  * ********************************************************************
#  * Step 3 of 4, Create a Physical Hex-Dump of the LSEQ, CSV File.
#  *              Prepare the environment, map the file names...
   simonote.sh "# StepInfo Create a Physical Hex-Dump of the LSEQ, CSV File"
   export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/XLSS/SIMOTIME.DATA.NBRMIXX1.csv
   export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME_HEXXDUMP_NBRMIXX1.txt
   simonote.sh "# DATATAKE is $SYSUT1"
   simonote.sh "# DATADUMP is $SYSUT2"
#  *
   if [ -f "$SYSUT2" ]
   then
      rm $SYSUT2
   fi
#  *
#  * SIMOZAPS is a Utility Program that is included in the SIMOTIME
#  * Enterprise Library.
#  *
   cobcrun SIMOZAPS HEXCESS $SYSUT1 VIEW=1 STOP=9999999 | tee $SYSUT2
   rc=$?
   if [ $rc != 0 ]
   then
      simonote.sh "# ABENDING $name - Return Code is $rc"
      JOBSTATUS=$rc
   else
      ((AOK_Count++))
   fi
#  *
#  * *******************************************************************
#  * Step 4 of 4, End of Job Processing...
#  *
   if [ "$JOBSTATUS" = "0" ]
   then
      simonote.sh "# Finished Job Name $JOBNAME"
   else
      simonote.sh "# ABENDING Job Name $JOBNAME"
   fi


Table of Contents Previous Section Next Section LSEQ-ASC-CSV-TXT, Record Structure

A record within a Line Sequential File may be processed as a single string of text data or as multiple strings (or fields) of text data separated by a field delimiter character. For this file the record structure contains multiple strings that are delimited by a comma character.

Table of Contents Previous Section Next Section Review Hex-Dump

The following is a listing of the physical hex-dump file that is produced by executing the physical hex-dump program.

* HEXCESS2 by SimoTime   Date: 2017-10-04  Time: 16:48:15:52
* HEXCESS2 Starting at   000000000001
* HEXCESS2 Stopping at   000009999999
* HEXCESS2 File size     000000000171
 Position Hex..... ........ ........ ........ ebcdic.......... ascii...........
000000001 5A44555F 355F302C 3132332C 5A44535F !...........!... ZDU_5_0,123,ZDS_
000000017 355F302C 3132332C 504B555F 355F3020 ........&....... 5_0,123,PKU_5_0
000000033 2C313233 2C504B53 5F355F30 202C3132 .....&.......... ,123,PKS_5_0 ,12
000000049 332C424E 555F355F 30202C31 32332C42 ...+............ 3,BNU_5_0 ,123,B
000000065 4E535F35 5F30202C 3132332C 46494C4C +.............<< NS_5_0 ,123,FILL
000000081 4552200A 5A44555F 355F302C 3132332C ....!........... ER .ZDU_5_0,123,
000000097 5A44535F 355F302C 2D313232 2C504B55 !............&.. ZDS_5_0,-122,PKU
000000113 5F355F30 202C3132 332C504B 535F355F ..........&..... _5_0 ,123,PKS_5_
000000129 30202C2D 3132322C 424E555F 355F3020 .........+...... 0 ,-122,BNU_5_0
000000145 2C313238 2C424E53 5F355F30 202C2D31 ......+......... ,128,BNS_5_0 ,-1
000000161 32372C46 494C4C45 52200Axx xxxxxxxx .....<<......... 27,FILLER ......
* HEXCESS2 by SimoTime, Program-is-ENDING...

In the preceding Hex-Dump notice positions 84 and 171. The positions contain the hexadecimal notation of x'0A' that may be referred to as a Line Feed (LF) control character. This is a record separator byte that was defined when the file was created.

Note: Since the record separator byte is a single byte it indicates this file was created on a Linux or UNIX System. For a Windows System the record separator would be a two byte value of x'0D0A' or a Carriage-Return and Line-Feed (or CRLF)

Table of Contents Previous Section Next Section Import RSEQ-ASC-FFL-NBR from LCSV

The "Import" function is a specialized "File Format and Record Content" conversion process. The file format conversion is from ASCII/Text (Line Sequential or LSEQ) to Record Sequential (RSEQ). The record content conversion is from Comma-Separated-Values (CSV) of text strings to a Fixed-Field-Length (FFL) with numeric structures (or fields) that are formatted as Zoned-Decimal, Packed-Decimal or Binary.

As a secondary task the batch job will produce a logical Hex-Dump of the file it just created. The Hex-Dump will show the logical records within the file. Since the records in this file contain numeric structures (or fields) that are formatted as Zoned-Decimal, Packed-Decimal or Binary the Hex-Dump will show the physical content of these fields.

Table of Contents Previous Section Next Section Bash Script, do File Convert & Hex-Dump

The following is a listing of the Bash Script member (nbrmixs2.sh) that is used to create the Record Sequential File and produce a Hex-Dump view of records within a Record Sequential file containing fixed-length records and fixed-length fields.

#!/bin/bash
   JOBNAME=nbrmixs2
#  *********************************************************************
#  *       Bash Script File - provided by SimoTime Technologies        *
#  *           (C) Copyright 1987-2018 All Rights Reserved             *
#  *             Web Site URL:   http://www.simotime.com               *
#  *                   e-mail:   helpdesk@simotime.com                 *
#  *********************************************************************
#  *
#  * Text   - Import from LCSV to RSEQ-ASC-FFL-NBR.
#  * Author - SimoTime Technologies
#  * Date   - January 24, 1996
#  *
#  * This Job will run on an Ubuntu System. The COBOL source code for
#  * the conversion programs was generated using SIMOTIME Technologies.
#  * For this job the programs were compiled using GnuCOBOL.
#  *
#  * The conversion programs will read a CSV-formatted, ASCII/Text File
#  * and write to a Record Sequential, ASC-encoded, File with
#  * Fixed-Length Records and Fixed-Field-Lengths.
#  * The output records will contain fields with numeric values stored
#  * in the following formats.
#  *    Zoned-Decimal (USAGE IS DISPLAY)
#  *    Packed-Decimal (USAGE IS COMP-3)
#  *    Binary (USAGE IS COMP)
#  *
#  * This job will produce a Hex-Dump of the output file that includes
#  * the logical record content.
#  *
#  *   ************
#  *   * nbrmixs2 *
#  *   *********sh*
#  *        *
#  *        *
#  *   ************
#  *   *  Step 1  *****************************
#  *   ************                           *
#  *        *           ************     ************     ************
#  *        *           * ENV4SYS1 ******* for-loop *******  export  *
#  *        *           *******lseq*     *********so*     ************
#  *        *
#  *        *
#  *   ************                      ************
#  *   *  Step 2  ************************ cobcrun  *
#  *   ************                      ************
#  *        *                                 *
#  *        *           ************     ************     ************
#  *        *           *  SYSUT1  ******* NBRMIXC8 *******  SYSUT2  *
#  *        *           *******lcsv*     * NBRMIXR8 *  *  *******rseq*
#  *        *                            *********so*  *
#  *        *                                          *  ************
#  *        *                                          ****  SYSOUT  *
#  *        *                                             *******lseq*
#  *        *
#  *   ************                      ************
#  *   *  Step 3  ************************ cobcrun  *
#  *   ************                      ************
#  *        *                                 *
#  *        *           ************     ************     ************
#  *        *           *  SYSUT1  ******* HXRS1KC3 *******  SYSUT2  *
#  *        *           *******rseq*     *********so*     *******lseq*
#  *        *
#  *        *
#  *   ************                      ************
#  *   *  Step 4  ************************   EOJ    *
#  *   ************                      ************
#  *
#  * ********************************************************************
#  * Step 1 of 4, Prepare the System Environment.
#  *
   JOBSTATUS=0
   for textstring in $(cat ENV4SYS1.cfg);
   do
#      # * The following statement will replace all occurences
#      # * of USD_BASESYS1 with the value of the BASESYS1
#      # * environment variable.
       textstring=${textstring//USD_BASESYS1/$BASESYS1}
#      # * The following statement will replace all occurences
#      # * of /USD_JOBNAME with the value of the JOBNAME
#      # * environment variable.
       textstring=${textstring/USD_JOBNAME/$JOBNAME}
       export $textstring
       rc=$?
       if [ $rc != 0 ]
       then
          simonote.sh "#  $textstring - Return Code is $rc"
          JOBSTATUS=$rc
       fi
   done
#  *
   simonote.sh "# **************************************************************$JOBNAME"
   echo "# BASESYS1........... $BASESYS1"
   echo "# COB_LIBS........... $COB_LIBS"
   echo "# COB_LIBRARY_PATH... $COB_LIBRARY_PATH"
   echo "# SIMONOTE........... $SIMONOTE"
   simonote.sh "# JOBNAME............ $JOBNAME"
#  *
#  * *******************************************************************
#  * Step 2 of 4, Create a new ASC-encoded Record Sequential file...
#  *
#  * SYSUT1 is an ASCII/Text (Line Sequential) File. The record/field
#  *        structure uses a Comma-Separated-Value or CSV format.
#  * SYSUT2 is an ASCII-encoded, Record Sequential File. The record
#  *        structure and field structure are fixed-length. The
#  *        numeric field formats include Binary, Packed-Decimal and
#  *        Zoned-Decimal.
#  *
   simonote.sh "# StepInfo Create an ASC-encoded Record Sequential file that contains"
   simonote.sh "# StepInfo Zoned-Decimal, Packed-Decimal and Binary Numeric values"
   export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/XLSS/SIMOTIME.DATA.NBRMIXX1.csv
   export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/ASC1/SIMOTIME.DATA.NBRMIXD1.dat
#  *
   if [ -f "$SYSUT2" ]
   then
      rm $SYSUT2
   fi
#  *
#  * Create and populate a new Record Sequential file"
#  * Note: the tee command will write to both the standard output
#  *       device and a file.
#  *
   cobcrun NBRMIXC8 | tee $BASESYS1/SIMOSAM1/DEVL/LOGS/SYSOUT_USERPROG_NBRMIXC8.txt
   if [ -f "$SYSUT2" ]
   then
     simonote.sh "# SYSUT1 is $SYSUT1"
     simonote.sh "# SYSUT2 is $SYSUT2"
   else
     simonote.sh "# ABENDING File not created, $SYSUT2"
     exit 9001
   fi
#  *
#  * *******************************************************************
#  * Step 3 of 4, Prepare the Job Step environment, map the file names,
#  *              create a Control File and produce a Hex-Dump the file.
   simonote.sh "# StepInfo Create a Logical Hex-Dump of the ASC-encoded, RSEQ, FFL File"
   export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/ASC1/SIMOTIME.DATA.NBRMIXD1.dat
   export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/ASC1/SIMOTIME_HEX4DUMP_NBRMIXD1.txt
   export SYSUT3=$BASESYS1/SIMOSAM1/DEVL/DATA/ASC1/SIMOTIME.CNTL.HXRSEQ01.txt
   simonote.sh "# DATATAKE is $SYSUT1"
   simonote.sh "# DATADUMP is $SYSUT2"
   simonote.sh "# DATACNTL is $SYSUT3"
   echo "/RANGE   1 9999999">$SYSUT3
   echo "/DUMPASC Y">>$SYSUT3
   echo "/DUMPHEX Y">>$SYSUT3
   echo "/DUMPEBC N">>$SYSUT3
   echo "/DUMPCTR Y">>$SYSUT3
   echo "/DUMPRPI Y">>$SYSUT3
   echo "/END      ">>$SYSUT3
#  *
#  * Run the program to produce a Logical Hex-Dump.
#  *
   if [ -f "$SYSUT2" ]
   then
      rm $SYSUT2
   fi
   cobcrun HXRS1KC3 | tee $SYSOUT
   rc=$?
   if [ $rc != 0 ]
   then
      simonote.sh "# ABENDING $name - Return Code is $rc"
      JOBSTATUS=$rc
   else
      ((AOK_Count++))
   fi
#  *
#  * *******************************************************************
#  * Step 4 of 4, End of Job Processing...
#  *
   if [ "$JOBSTATUS" = "0" ]
   then
      simonote.sh "# Finished Job Name $JOBNAME"
   else
      simonote.sh "# ABENDING Job Name $JOBNAME"
   fi


Table of Contents Previous Section Next Section RSEQ-ASC-FFL-NBR, Record Structure

This file contains numeric values that are stored in Zoned-Decimal, Packed-Decimal and Binary formats.

The record structure and COBOL copy file are described in the Records with Text & Numeric sub-Strings section of this document.

Table of Contents Previous Section Next Section Review Hex-Dump

The following is a listing of the logical hex-dump file that is produced by executing the logical hex-dump program.

****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
* HXRS1KC3 Batch, HEX-Dump of RSEQ LRECL=1024 v16.01.01   helpdesk@simotime.com
* HXRS1KC3 This Data File HexDump Member was generated by SimoTime Technologies
****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
Starting, Batch, HEX-Dump of RSEQ LRECL=1024 http://www.SimoTime.com
....:...10....:...20....:...30....:...40....:...50....:...60....:...70....:...80....:...90....:..100....:..110....:..120....:..130....:..140....:..150....:..160....:..170....:..180....:..190....:..200....:..210....:..220....:..230....:..240....:..250....:..260....:..270....:..280....:..290....:..300....:..310....:..320....:..330....:..340....:..350....:..360....:..370....:..380....:..390....:..400....:..410....:..420....:..430....:..440....:..450....:..460....:..470....:..480....:..490....:..500....:..510....:..520....:..530....:..540....:..550....:..560....:..570....:..580....:..590....:..600....:..610....:..620....:..630....:..640....:..650....:..660....:..670....:..680....:..690....:..700....:..710....:..720....:..730....:..740....:..750....:..760....:..770....:..780....:..790....:..800....:..810....:..820....:..830....:..840....:..850....:..860....:..870....:..880....:..890....:..900....:..910....:..920....:..930....:..940....:..950....:..960....:..970....:..980....:..990....:.1000....:.1010....:.1020....
5455353233333545535323333354553532013545535320134455353200074455353200074444452222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
A45F5F0000123A43F5F00001230B5F5F0002F0B3F5F0002C2E5F5F00000B2E3F5F00000B69CC520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
ZDU_5_0 00123ZDS_5_0 00123PKU_5_0 ..?PKS_5_0 ..

Table of Contents Previous Section Next Section Import RSEQ-EBC-FFL-TXT from LCSV

TAG

Table of Contents Previous Section Next Section Convert RSEQ-EBC-FFL-NBR to ASC

TAG

Table of Contents Previous Section Next Section Convert RSEQ-ASC-FFL-NBR to EBC

TAG

Table of Contents Previous Section Next Section Export RSEQ-ASC-FFL-NBR to LCSV

TAG

Table of Contents Previous Section Next Section Totals for RSEQ-ASC-FFL-NBR

TAG

Table of Contents Previous Section Next Section Job Scripts, Bash

A job script may be defined as a text file containing job setup information followed by job steps that identify programs to be executed along with parameters unique to the job step. A job script may be created using a text editor. The naming of a job script is determined by the Operating System. A simple job script may contain a single job step that performs a single function. A typical job script will contain multiple job steps executed in a predefined sequence. The status of each job step may be tested at the end of each job step.

Table of Contents Previous Section Next Section Create the First Test File

The First Test File is an ASCII-encoded, Record Sequential File with fixed-record and fixed-field lengths.

The following is a listing of the Bash Script member (nbrmixs8.sh) that is used to create the First Test file. This Job Script will create a Record Sequential (RSEQ) file with fixed length records.

#!/bin/bash
   JOBNAME=nbrmixs8
#  *********************************************************************
#  *       Bash Script File - provided by SimoTime Technologies        *
#  *           (C) Copyright 1987-2018 All Rights Reserved             *
#  *             Web Site URL:   http://www.simotime.com               *
#  *                   e-mail:   helpdesk@simotime.com                 *
#  *********************************************************************
#  *
#  * Text   - Import from CSV to Record Sequential File.
#  * Author - SimoTime Technologies
#  * Date   - January 24, 1996
#  *
#  * This Job will run on an Ubuntu System. The COBOL source code for
#  * the conversion programs was generated using SIMOTIME Technologies.
#  * For this job the programs were compiled using GnuCOBOL.
#  * The conversion programs will read a CSV-formatted, ASCII/Text File
#  * and create a Record Sequential File with Fixed-Record and
#  * Fixed-Field lengths. The output records will contain fields with
#  * numeric values stored in Zoned-Decimal (USAGE IS DISPLAY),
#  * Packed-Decimal (USAGE IS COMP-3) & Binary (USAGE IS COMP) formats.
#  *
#  *   ************
#  *   * nbrmixs8 *
#  *   *********sh*
#  *        *
#  *        *
#  *   ************
#  *   *  Step 1  *****************************
#  *   ************                           *
#  *        *           ************     ************     ************
#  *        *           * ENV4SYS1 ******* for-loop *******  export  *
#  *        *           *******lseq*     *********so*     *******stmt*
#  *        *
#  *        *
#  *   ************
#  *   *  Step 2  *****************************
#  *   ************                           *
#  *        *           ************     ************     ************
#  *        *           * instream *******   echo   *******  SYSUT2  *
#  *        *           ************     *******bash*     *******lcsv*
#  *        *
#  *        *
#  *   ************                      ************
#  *   *  Step 3  ************************ cobcrun  *
#  *   ************                      ************
#  *        *                                 *
#  *        *           ************     ************     ************
#  *        *           *  SYSUT1  ******* SIMOZAPS *******  SYSUT2  *
#  *        *           *******lcsv*     *********so*     *******lseq*
#  *        *
#  *        *
#  *   ************                      ************
#  *   *  Step 4  ************************ cobcrun  *
#  *   ************                      ************
#  *        *                                 *
#  *        *           ************     ************     ************
#  *        *           *  SYSUT1  ******* NBRMIXC8 *******  SYSUT2  *
#  *        *           *******lcsv*     * NBRMIXR8 *  *  *******rseq*
#  *        *                            *********so*  *
#  *        *                                          *  ************
#  *        *                                          ****  SYSOUT  *
#  *        *                                             *******lseq*
#  *        *
#  *   ************                      ************
#  *   *  Step 5  ************************ cobcrun  *
#  *   ************                      ************
#  *        *                                 *
#  *        *           ************     ************     ************
#  *        *           *  SYSUT1  ******* HXRS1KC3 *******  SYSOUT  *
#  *        *           *******rseq*     *********so*     *******lseq*
#  *        *
#  *        *
#  *   ************                      ************
#  *   *  Step 6  ************************ cobcrun  *
#  *   ************                      ************
#  *        *                                 *
#  *        *           ************     ************     ************
#  *        *           *  SYSUT1  ******* NBRMIXU8 *******  SYSUT2  *
#  *        *           *******lcsv*     * NBRMIXR8 *  *  *******rseq*
#  *        *                            * NBRMIXR1 *  *
#  *        *                            *********so*  *  ************
#  *        *                                          ****  SYSOUT  *
#  *        *                                             *******lseq*
#  *        *
#  *   ************                      ************
#  *   *  Step 7  ************************ cobcrun  *
#  *   ************                      ************
#  *        *                                 *
#  *        *           ************     ************     ************
#  *        *           *  SYSUT1  ******* HXRS1KC3 *******  SYSOUT  *
#  *        *           *******rseq*     *********so*     *******lseq*
#  *        *
#  *        *
#  *        *
#  *        *
#  *   ************                      ************
#  *   *  Step 8  ************************   EOJ    *
#  *   ************                      ************
#  *
#  *
#  *   Job Step and Description
#  *   ------  ----------------------------------------------------------
#  *   Step 1, Prepare the System Environment.
#  *   Step 2, Create a new ASC-encoded LSEQ, CSV File
#  *   Step 3, Create a Physical Hex-Dump of the LSEQ, CSV File.
#  *   Step 4, Create an ASC-encoded Record Sequential file that contains
#  *           Zoned-Decimal, Packed-Decimal and Binary Numeric values.
#  *   Step 5, Create a Logical Hex-Dump of the ASC-encoded, RSEQ, FFL File
#  *   Step 6, Create an EBC-encoded Record Sequential file that contains
#  *           Zoned-Decimal, Packed-Decimal and Binary Numeric values.
#  *   Step 7, Create a Logical Hex-Dump of the EBC-encoded, RSEQ, FFL File
#  *   Step 8, End of Job.
#  *
#  * ********************************************************************
#  * Step 1 of 8, Prepare the System Environment.
#  *
   JOBSTATUS=0
   for textstring in $(cat ENV4SYS1.cfg);
   do
#      # * The following statement will replace all occurences
#      # * of USD_BASESYS1 with the value of the BASESYS1
#      # * environment variable.
       textstring=${textstring//USD_BASESYS1/$BASESYS1}
#      # * The following statement will replace all occurences
#      # * of /USD_JOBNAME with the value of the JOBNAME
#      # * environment variable.
       textstring=${textstring/USD_JOBNAME/$JOBNAME}
       export $textstring
       rc=$?
       if [ $rc != 0 ]
       then
          simonote.sh "#  $textstring - Return Code is $rc"
          JOBSTATUS=$rc
       fi
   done
#  *
   simonote.sh "# **************************************************************$JOBNAME"
   echo "# BASESYS1........... $BASESYS1"
   echo "# COB_LIBS........... $COB_LIBS"
   echo "# COB_LIBRARY_PATH... $COB_LIBRARY_PATH"
   echo "# SIMONOTE........... $SIMONOTE"
   simonote.sh "# JOBNAME............ $JOBNAME"
   simonote.sh "# JS01of08 - Finalize System and Job Prepapration "
#  *
#  * *******************************************************************
#  * Step 2 of 8, Create a new ASC-encoded LSEQ, CSV File...
#  *
#  * SYSUT2 The File format is ASCII/Text (Line Sequential or LSEQ).
#  *        The record/field structure uses a Comma-Separated-Value or
#  *        CSV format.
#  *
   simonote.sh "# JS02of08 - Create and populate a new LSEQ, CSV File"
   export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/XLSS/SIMOTIME.DATA.NBRMIXX1.csv
   echo "ZDU_5_0,123,ZDS_5_0,123,PKU_5_0 ,123,PKS_5_0 ,123,BNU_5_0 ,123,BNS_5_0 ,123,FILLER ">$SYSUT2
   echo "ZDU_5_0,123,ZDS_5_0,-122,PKU_5_0 ,123,PKS_5_0 ,-122,BNU_5_0 ,128,BNS_5_0 ,-127,FILLER ">>$SYSUT2
#  *
#  * ********************************************************************
#  * Step 3 of 8, Create a Physical Hex-Dump of the LSEQ, CSV File.
#  *              Prepare the environment, map the file names...
   simonote.sh "# JS03of08 - Create a Physical Hex-Dump of the LSEQ, CSV File"
   export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/XLSS/SIMOTIME.DATA.NBRMIXX1.csv
   export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME_HEXXDUMP_NBRMIXX1.txt
   simonote.sh "# DATATAKE is $SYSUT1"
   simonote.sh "# DATADUMP is $SYSUT2"
#  *
   if [ -f "$SYSUT2" ]
   then
      rm $SYSUT2
   fi
#  *
   cobcrun SIMOZAPS HEXCESS $SYSUT1 VIEW=1 STOP=9999999 | tee $SYSUT2
   rc=$?
   if [ $rc != 0 ]
   then
      simonote.sh "# ABENDING $name - Return Code is $rc"
      JOBSTATUS=$rc
   else
      ((AOK_Count++))
   fi
#  *
#  * *******************************************************************
#  * Step 4 of 8, Create a new ASC-encoded Record Sequential file...
#  *
#  * SYSUT1 is an ASCII/Text (Line Sequential) File. The record/field
#  *        structure uses a Comma-Separated-Value or CSV format.
#  * SYSUT2 is an ASCII-encoded, Record Sequential File. The record
#  *        structure and field structure are fixed-length. The
#  *        numeric field formats include Binary, Packed-Decimal and
#  *        Zoned-Decimal.
#  *
   simonote.sh "# JS04of08 - Create an ASC-encoded Record Sequential file that contains"
   simonote.sh "# JS04of08 - Zoned-Decimal, Packed-Decimal and Binary Numeric values"
   export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/XLSS/SIMOTIME.DATA.NBRMIXX1.csv
   export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/ASC1/SIMOTIME.DATA.NBRMIXD1.dat
#  *
   if [ -f "$SYSUT2" ]
   then
      rm $SYSUT2
   fi
#  *
#  * Create and populate a new Record Sequential file"
#  * Note: the tee command will write to both the standard output
#  *       device and a file.
#  *
   cobcrun NBRMIXC8 | tee $BASESYS1/SIMOSAM1/DEVL/LOGS/SYSOUT_USERPROG_NBRMIXC8.txt
   if [ -f "$SYSUT2" ]
   then
     simonote.sh "# SYSUT1 is $SYSUT1"
     simonote.sh "# SYSUT2 is $SYSUT2"
   else
     simonote.sh "# ABENDING File not created, $SYSUT2"
     exit 9001
   fi
#  *
#  * *******************************************************************
#  * Step 5 of 8, Prepare the Job Step environment, map the file names,
#  *              create a Control File and produce a Hex-Dump the file.
   simonote.sh "# JS05of08 - Create a Logical Hex-Dump of the ASC-encoded, RSEQ, FFL File"
   export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/ASC1/SIMOTIME.DATA.NBRMIXD1.dat
   export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/ASC1/SIMOTIME_HEX4DUMP_NBRMIXD1.txt
   export SYSUT3=$BASESYS1/SIMOSAM1/DEVL/DATA/ASC1/SIMOTIME.CNTL.HXRSEQ01.txt
   simonote.sh "# DATATAKE is $SYSUT1"
   simonote.sh "# DATADUMP is $SYSUT2"
   simonote.sh "# DATACNTL is $SYSUT3"
   echo "/RANGE   1 9999999">$SYSUT3
   echo "/DUMPASC Y">>$SYSUT3
   echo "/DUMPHEX Y">>$SYSUT3
   echo "/DUMPEBC N">>$SYSUT3
   echo "/DUMPCTR Y">>$SYSUT3
   echo "/DUMPRPI Y">>$SYSUT3
   echo "/END      ">>$SYSUT3
#  *
#  * Run the program to produce a Logical Hex-Dump.
#  *
   if [ -f "$SYSUT2" ]
   then
      rm $SYSUT2
   fi
   cobcrun HXRS1KC3 | tee $SYSOUT
   rc=$?
   if [ $rc != 0 ]
   then
      simonote.sh "# ABENDING $name - Return Code is $rc"
      JOBSTATUS=$rc
   else
      ((AOK_Count++))
   fi
#  *
#  * *******************************************************************
#  * Step 6 of 8, Create a new EBC-encoded Record Sequential file...
#  *
#  * SYSUT1 is an ASCII/Text (Line Sequential) File. The record/field
#  *        structure uses a Comma-Separated-Value or CSV format.
#  * SYSUT2 is an EBCDIC-encoded, Record Sequential File. The record
#  *        structure and field structure are fixed-length. The
#  *        numeric field formats include Binary, Packed-Decimal and
#  *        Zoned-Decimal.
#  *
   simonote.sh "# JS06of08 - Create an EBC-encoded Record Sequential file that contains"
   simonote.sh "# JS06of08 - Zoned-Decimal, Packed-Decimal and Binary Numeric values"
#  * Map File Names, Delete previously created files
   export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/XLSS/SIMOTIME.DATA.NBRMIXX1.csv
   export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/EBC1/SIMOTIME.DATA.NBRMIXD1.dat
#  *
   if [ -f "$SYSUT2" ]
   then
      rm $SYSUT2
   fi
#  *
#  * Create and populate a new EBC-encoded, Record Sequential file"
#  * Note: the tee command will write to both the standard output
#  *       device and a file.
#  *
   cobcrun NBRMIXU8 | tee $BASESYS1/SIMOSAM1/DEVL/LOGS/SYSOUT_USERPROG_NBRMIXU8.txt
   if [ -f "$SYSUT2" ]
   then
     simonote.sh "# SYSUT1 is $SYSUT1"
     simonote.sh "# SYSUT2 is $SYSUT2"
   else
     simonote.sh "# ABENDING File not created, $SYSUT2"
     exit 9001
   fi
#  *
#  * *******************************************************************
#  * Step 7 of 8, Prepare the Job Step environment, map the file names,
#  *              create a Control File and produce a Hex-Dump the file.
   simonote.sh "# JS07of08 - Create a Logical Hex-Dump of the EBC-encoded, RSEQ, FFL File"
   export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/EBC1/SIMOTIME.DATA.NBRMIXD1.dat
   export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/EBC1/SIMOTIME_HEX4DUMP_NBRMIXD1.txt
   export SYSUT3=$BASESYS1/SIMOSAM1/DEVL/DATA/EBC1/SIMOTIME.CNTL.HXRSEQ01.txt
   simonote.sh "# DATATAKE is $SYSUT1"
   simonote.sh "# DATADUMP is $SYSUT2"
   simonote.sh "# DATACNTL is $SYSUT3"
   echo "/RANGE   1 9999999">$SYSUT3
   echo "/DUMPASC N">>$SYSUT3
   echo "/DUMPHEX Y">>$SYSUT3
   echo "/DUMPEBC Y">>$SYSUT3
   echo "/DUMPCTR Y">>$SYSUT3
   echo "/DUMPRPI Y">>$SYSUT3
   echo "/END      ">>$SYSUT3
#  *
#  * Run the program to produce a Logical Hex-Dump.
#  *
   if [ -f "$SYSUT2" ]
   then
      rm $SYSUT2
   fi
   cobcrun HXRS1KC3 | tee $SYSOUT
   rc=$?
   if [ $rc != 0 ]
   then
      simonote.sh "# ABENDING $name - Return Code is $rc"
      JOBSTATUS=$rc
   else
      ((AOK_Count++))
   fi
#  *
#  * *******************************************************************
#  * Step 8 of 8, End of Job Processing...
#  *
   simonote.sh "# JS08of08 End of Job Processing"
   if [ "$JOBSTATUS" = "0" ]
   then
      simonote.sh "# Finished Job Name $JOBNAME"
   else
      simonote.sh "# ABENDING Job Name $JOBNAME"
   fi


Table of Contents Previous Section Next Section Logical Hex-Dump, First Test File

The following is a listing of the Bash Script member (nbrmixf1.sh) that is used to produce a Hex-Dump view of records within a Record Sequential file containing fixed-length records and fixed-length fields.

#!/bin/bash
   JOBNAME=nbrmixf1
#  * *******************************************************************
#  *       Bash Script File - provided by SimoTime Technologies        *
#  *           (C) Copyright 1987-2018 All Rights Reserved             *
#  *             Web Site URL:   http://www.simotime.com               *
#  *                   e-mail:   helpdesk@simotime.com                 *
#  * *******************************************************************
#  *
#  * Text    - Physical Hex Dump of Record Sequential File
#  * Author  - SimoTime Technologies
#  * Date    - November 11, 2003
#  * Version - 06.07.16
#  *
#  * Prepare the environment by mapping the file names.
#  * Execute the Hex Dump program.
#  *
#  * ********************************************************************
#  * Step 1 of 3, Prepare the System Environment.
#  *
   JOBSTATUS=0
   for textstring in $(cat ENV4SYS1.cfg);
   do
#      # * The following statement will replace all occurences
#      # * of USD_BASESYS1 with the value of the BASESYS1
#      # * environment variable.
       textstring=${textstring//USD_BASESYS1/$BASESYS1}
#      # * The following statement will replace all occurences
#      # * of USD_JOBNAME with the value of the JOBNAME
#      # * environment variable.
       textstring=${textstring/USD_JOBNAME/$JOBNAME}
       export $textstring
       rc=$?
       if [ $rc != 0 ]
       then
          simonote.sh "# $textstring - Return Code is $rc"
          JOBSTATUS=$rc
       fi
   done
#  *
   simonote.sh "# **************************************************************$JOBNAME"
   simonote.sh "# Starting Job Name $JOBNAME"
   simonote.sh "# BASESYS1........... $BASESYS1"
   simonote.sh "# COB_LIBS........... $COB_LIBS"
   simonote.sh "# COB_LIBRARY_PATH... $COB_LIBRARY_PATH"
   simonote.sh "# SIMONOTE........... $SIMONOTE"
#  *
#  * Prepare the environment, map the file names...
   export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/APPL/SIMOTIME.DATA.NBRMIXD1.dat
   export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME_HEX4DUMP_NBRMIXD1.txt
   export SYSUT3=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME.CNTL.HXRSEQ01.txt
   simonote.sh "# DATATAKE is $SYSUT1"
   simonote.sh "# DATADUMP is $SYSUT2"
   simonote.sh "# DATACNTL is $SYSUT3"
#  *
#  * ********************************************************************
#  * Step 2 of 3, Run the program.
#  *
   if [ -f "$SYSUT2" ]
   then
      rm $SYSUT2
   fi
   cobcrun HXRS1KC3 | tee $SYSOUT
   rc=$?
   if [ $rc != 0 ]
   then
      simonote.sh "# ABENDING $name - Return Code is $rc"
      JOBSTATUS=$rc
   else
      ((AOK_Count++))
   fi
#  *
#  * ********************************************************************
#  * Step 3 of 3, End of Job Processing.
#  *
   if [ "$JOBSTATUS" = "0" ]
   then
      simonote.sh "# Finished Job Name $JOBNAME"
   else
      simonote.sh "# ABENDING Job Name $JOBNAME"
   fi


The following is a listing of the logical hex-dump file that is produced by executing the logical hex-dump program.

****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
* HXRS1KC3 Batch, HEX-Dump of RSEQ LRECL=1024 v16.01.01   helpdesk@simotime.com
* HXRS1KC3 This Data File HexDump Member was generated by SimoTime Technologies
****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
Starting, Batch, HEX-Dump of RSEQ LRECL=1024 http://www.SimoTime.com
....:...10....:...20....:...30....:...40....:...50....:...60....:...70....:...80....:...90....:..100....:..110....:..120....:..130....:..140....:..150....:..160....:..170....:..180....:..190....:..200....:..210....:..220....:..230....:..240....:..250....:..260....:..270....:..280....:..290....:..300....:..310....:..320....:..330....:..340....:..350....:..360....:..370....:..380....:..390....:..400....:..410....:..420....:..430....:..440....:..450....:..460....:..470....:..480....:..490....:..500....:..510....:..520....:..530....:..540....:..550....:..560....:..570....:..580....:..590....:..600....:..610....:..620....:..630....:..640....:..650....:..660....:..670....:..680....:..690....:..700....:..710....:..720....:..730....:..740....:..750....:..760....:..770....:..780....:..790....:..800....:..810....:..820....:..830....:..840....:..850....:..860....:..870....:..880....:..890....:..900....:..910....:..920....:..930....:..940....:..950....:..960....:..970....:..980....:..990....:.1000....:.1010....:.1020....
5455353233333545535323333354553532013545535320134455353200074455353200074444452222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
A45F5F0000123A43F5F00001230B5F5F0002F0B3F5F0002C2E5F5F00000B2E3F5F00000B69CC520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
ZDU_5_0 00123ZDS_5_0 00123PKU_5_0 ..?PKS_5_0 ..

Table of Contents Previous Section Next Section Physical Hex-Dump, First Test File

The following is a listing of the Bash Script member (nbrmixx1.sh) used in this example.

#!/bin/bash
   JOBNAME=nbrmixx1
#  * *******************************************************************
#  *       Bash Script File - provided by SimoTime Technologies        *
#  *           (C) Copyright 1987-2018 All Rights Reserved             *
#  *             Web Site URL:   http://www.simotime.com               *
#  *                   e-mail:   helpdesk@simotime.com                 *
#  * *******************************************************************
#  *
#  * Text    - Physical Hex Dump of Record Sequential File
#  * Author  - SimoTime Technologies
#  * Date    - November 11, 2003
#  * Version - 06.07.16
#  *
#  * Prepare the environment by mapping the file names.
#  * Execute the Hex Dump program.
#  *
#  * ********************************************************************
#  * Step 1 of 3, Prepare the System Environment.
#  *
   JOBSTATUS=0
   for textstring in $(cat ENV4SYS1.cfg);
   do
#      # * The following statement will replace all occurences
#      # * of USD_BASESYS1 with the value of the BASESYS1
#      # * environment variable.
       textstring=${textstring//USD_BASESYS1/$BASESYS1}
#      # * The following statement will replace all occurences
#      # * of USD_JOBNAME with the value of the JOBNAME
#      # * environment variable.
       textstring=${textstring/USD_JOBNAME/$JOBNAME}
       export $textstring
       rc=$?
       if [ $rc != 0 ]
       then
          simonote.sh "# $textstring - Return Code is $rc"
          JOBSTATUS=$rc
       fi
   done
#  *
   simonote.sh "# **************************************************************$JOBNAME"
   simonote.sh "# Starting Job Name $JOBNAME"
   simonote.sh "# BASESYS1........... $BASESYS1"
   simonote.sh "# COB_LIBS........... $COB_LIBS"
   simonote.sh "# COB_LIBRARY_PATH... $COB_LIBRARY_PATH"
   simonote.sh "# SIMONOTE........... $SIMONOTE"
#  *
#  * Prepare the environment, map the file names...
   export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/APPL/SIMOTIME.DATA.NBRMIXD1.dat
   export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME_HEXDUMP_NBRMIXD1.txt
   simonote.sh "# DATATAKE is $SYSUT1"
   simonote.sh "# DATADUMP is $SYSUT2"
#  *
#  * ********************************************************************
#  * Step 2 of 3, Run the program.
#  *
   if [ -f "$SYSUT2" ]
   then
      rm $SYSUT2
   fi
   cobcrun SIMOZAPS HEXCESS $SYSUT1 VIEW=1 STOP=9999999 | tee $SYSUT2
   rc=$?
   if [ $rc != 0 ]
   then
      simonote.sh "# ABENDING $name - Return Code is $rc"
      JOBSTATUS=$rc
   else
      ((AOK_Count++))
   fi
#  *
#  * ********************************************************************
#  * Step 3 of 3, End of Job Processing.
#  *
   if [ "$JOBSTATUS" = "0" ]
   then
      simonote.sh "# Finished Job Name $JOBNAME"
   else
      simonote.sh "# ABENDING Job Name $JOBNAME"
   fi


The following is a listing of the physical hex-dump file that is produced by executing the physical hex-dump program.

* HEXCESS2 by SimoTime   Date: 2017-10-04  Time: 16:48:15:52
* HEXCESS2 Starting at   000000000001
* HEXCESS2 Stopping at   000009999999
* HEXCESS2 File size     000000000171
 Position Hex..... ........ ........ ........ ebcdic.......... ascii...........
000000001 5A44555F 355F302C 3132332C 5A44535F !...........!... ZDU_5_0,123,ZDS_
000000017 355F302C 3132332C 504B555F 355F3020 ........&....... 5_0,123,PKU_5_0
000000033 2C313233 2C504B53 5F355F30 202C3132 .....&.......... ,123,PKS_5_0 ,12
000000049 332C424E 555F355F 30202C31 32332C42 ...+............ 3,BNU_5_0 ,123,B
000000065 4E535F35 5F30202C 3132332C 46494C4C +.............<< NS_5_0 ,123,FILL
000000081 4552200A 5A44555F 355F302C 3132332C ....!........... ER .ZDU_5_0,123,
000000097 5A44535F 355F302C 2D313232 2C504B55 !............&.. ZDS_5_0,-122,PKU
000000113 5F355F30 202C3132 332C504B 535F355F ..........&..... _5_0 ,123,PKS_5_
000000129 30202C2D 3132322C 424E555F 355F3020 .........+...... 0 ,-122,BNU_5_0
000000145 2C313238 2C424E53 5F355F30 202C2D31 ......+......... ,128,BNS_5_0 ,-1
000000161 32372C46 494C4C45 52200Axx xxxxxxxx .....<<......... 27,FILLER ......
* HEXCESS2 by SimoTime, Program-is-ENDING...

Table of Contents Previous Section Next Section Convert LCSV to RSEQ-ASC-FFL-NBR

The following is a listing of the Bash Script member (nbrmixs1.sh) that is used to create the Second Test File. This Job Script will execute a conversion program that reads an ASCII-encoded, Record Sequential file with fixed-length records and fixed-length fields (the Numeric fields may use a Binary, Packed-Decimal or Zoned-Decimal format). The output file will be a new ASCII/Text file with a record structure that uses a CSV (Comma-Separated-Values) format.

#!/bin/bash
   JOBNAME=nbrmixs1
#  *********************************************************************
#  *       Bash Script File - provided by SimoTime Technologies        *
#  *           (C) Copyright 1987-2018 All Rights Reserved             *
#  *             Web Site URL:   http://www.simotime.com               *
#  *                   e-mail:   helpdesk@simotime.com                 *
#  *********************************************************************
#  *
#  * Text   - Create an LCSV File using the Bash ECHO Command.
#  * Author - SimoTime Technologies
#  * Date   - January 24, 1996
#  *
#  * This Batch Job (Bash Script) will run on an Ubuntu System.
#  *
#  * The input data is included within an ECHO statement. The input
#  * data is written to an output file using the pipe function.
#  *
#  * The output file is a Line Sequential File with variable length
#  * records that contain variable length fields (or sub-strings) that
#  * are separated by a delimiter character.
#  *
#  * This job will produce a Hex-Dump of the output file that includes
#  * the logical record content and the embedded format control
#  * characters.
#  *
#  *   ************
#  *   * nbrmixs1 *
#  *   *********sh*
#  *        *
#  *        *
#  *        *
#  *   ************
#  *   *  Step 1  *****************************
#  *   ************                           *
#  *        *           ************     ************     ************
#  *        *           * ENV4SYS1 ******* for-loop *******  export  *
#  *        *           *******lseq*     *********so*     ************
#  *        *
#  *        *
#  *   ************
#  *   *  Step 2  *****************************
#  *   ************                           *
#  *        *           ************     ************     ************
#  *        *           * instream *******   echo   *******  SYSUT2  *
#  *        *           ************     *******bash*     *******lcsv*
#  *        *
#  *        *
#  *   ************                      ************
#  *   *  Step 3  ************************ cobcrun  *
#  *   ************                      ************
#  *        *                                 *
#  *        *           ************     ************     ************
#  *        *           *  SYSUT1  ******* SIMOZAPS *******  SYSUT2  *
#  *        *           *******lcsv*     *********so*     *******lseq*
#  *        *
#  *        *
#  *        *
#  *   ************                      ************
#  *   *  Step 4  ************************   EOJ    *
#  *   ************                      ************
#  *
#  *
#  *   Job Step and Description
#  *   ------  ----------------------------------------------------------
#  *   Step 1, Prepare the System Environment.
#  *   Step 2, Create a new ASC-encoded LSEQ, CSV File
#  *   Step 3, Create a Physical Hex-Dump of the LSEQ, CSV File.
#  *   Step 4, End of Job.
#  *
#  * ********************************************************************
#  * Step 1 of 4, Prepare the System Environment.
#  *
   JOBSTATUS=0
   for textstring in $(cat ENV4SYS1.cfg);
   do
#      # * The following statement will replace all occurences
#      # * of USD_BASESYS1 with the value of the BASESYS1
#      # * environment variable.
       textstring=${textstring//USD_BASESYS1/$BASESYS1}
#      # * The following statement will replace all occurences
#      # * of /USD_JOBNAME with the value of the JOBNAME
#      # * environment variable.
       textstring=${textstring/USD_JOBNAME/$JOBNAME}
       export $textstring
       rc=$?
       if [ $rc != 0 ]
       then
          simonote.sh "#  $textstring - Return Code is $rc"
          JOBSTATUS=$rc
       fi
   done
#  *
   simonote.sh "# **************************************************************$JOBNAME"
   echo "# BASESYS1........... $BASESYS1"
   echo "# COB_LIBS........... $COB_LIBS"
   echo "# COB_LIBRARY_PATH... $COB_LIBRARY_PATH"
   echo "# SIMONOTE........... $SIMONOTE"
   simonote.sh "# JOBNAME............ $JOBNAME"
#  *
#  * *******************************************************************
#  * Step 2 of 4, Create a new ASC-encoded LSEQ, CSV File...
#  *
#  * SYSUT2 The File format is ASCII/Text (Line Sequential or LSEQ).
#  *        The record/field structure uses a Comma-Separated-Value or
#  *        CSV format.
#  *
   simonote.sh "# StepInfo Create and populate a new LSEQ, CSV File"
   export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/XLSS/SIMOTIME.DATA.NBRMIXX1.csv
   echo "ZDU_5_0,123,ZDS_5_0,123,PKU_5_0 ,123,PKS_5_0 ,123,BNU_5_0 ,123,BNS_5_0 ,123,FILLER ">$SYSUT2
   echo "ZDU_5_0,123,ZDS_5_0,-122,PKU_5_0 ,123,PKS_5_0 ,-122,BNU_5_0 ,128,BNS_5_0 ,-122,FILLER ">>$SYSUT2
#  *
#  * ********************************************************************
#  * Step 3 of 4, Create a Physical Hex-Dump of the LSEQ, CSV File.
#  *              Prepare the environment, map the file names...
   simonote.sh "# StepInfo Create a Physical Hex-Dump of the LSEQ, CSV File"
   export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/XLSS/SIMOTIME.DATA.NBRMIXX1.csv
   export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME_HEXXDUMP_NBRMIXX1.txt
   simonote.sh "# DATATAKE is $SYSUT1"
   simonote.sh "# DATADUMP is $SYSUT2"
#  *
   if [ -f "$SYSUT2" ]
   then
      rm $SYSUT2
   fi
#  *
#  * SIMOZAPS is a Utility Program that is included in the SIMOTIME
#  * Enterprise Library.
#  *
   cobcrun SIMOZAPS HEXCESS $SYSUT1 VIEW=1 STOP=9999999 | tee $SYSUT2
   rc=$?
   if [ $rc != 0 ]
   then
      simonote.sh "# ABENDING $name - Return Code is $rc"
      JOBSTATUS=$rc
   else
      ((AOK_Count++))
   fi
#  *
#  * *******************************************************************
#  * Step 4 of 4, End of Job Processing...
#  *
   if [ "$JOBSTATUS" = "0" ]
   then
      simonote.sh "# Finished Job Name $JOBNAME"
   else
      simonote.sh "# ABENDING Job Name $JOBNAME"
   fi


Table of Contents Previous Section Next Section Convert RSEQ-ASC-FFL-NBR to LCSV

The following is a listing of the Bash Script member (nbrmixs2.sh) that is used to create the Final Test File. This Job Script will create an ASCII/Text file with variable length records.

#!/bin/bash
   JOBNAME=nbrmixs2
#  *********************************************************************
#  *       Bash Script File - provided by SimoTime Technologies        *
#  *           (C) Copyright 1987-2018 All Rights Reserved             *
#  *             Web Site URL:   http://www.simotime.com               *
#  *                   e-mail:   helpdesk@simotime.com                 *
#  *********************************************************************
#  *
#  * Text   - Import from LCSV to RSEQ-ASC-FFL-NBR.
#  * Author - SimoTime Technologies
#  * Date   - January 24, 1996
#  *
#  * This Job will run on an Ubuntu System. The COBOL source code for
#  * the conversion programs was generated using SIMOTIME Technologies.
#  * For this job the programs were compiled using GnuCOBOL.
#  *
#  * The conversion programs will read a CSV-formatted, ASCII/Text File
#  * and write to a Record Sequential, ASC-encoded, File with
#  * Fixed-Length Records and Fixed-Field-Lengths.
#  * The output records will contain fields with numeric values stored
#  * in the following formats.
#  *    Zoned-Decimal (USAGE IS DISPLAY)
#  *    Packed-Decimal (USAGE IS COMP-3)
#  *    Binary (USAGE IS COMP)
#  *
#  * This job will produce a Hex-Dump of the output file that includes
#  * the logical record content.
#  *
#  *   ************
#  *   * nbrmixs2 *
#  *   *********sh*
#  *        *
#  *        *
#  *   ************
#  *   *  Step 1  *****************************
#  *   ************                           *
#  *        *           ************     ************     ************
#  *        *           * ENV4SYS1 ******* for-loop *******  export  *
#  *        *           *******lseq*     *********so*     ************
#  *        *
#  *        *
#  *   ************                      ************
#  *   *  Step 2  ************************ cobcrun  *
#  *   ************                      ************
#  *        *                                 *
#  *        *           ************     ************     ************
#  *        *           *  SYSUT1  ******* NBRMIXC8 *******  SYSUT2  *
#  *        *           *******lcsv*     * NBRMIXR8 *  *  *******rseq*
#  *        *                            *********so*  *
#  *        *                                          *  ************
#  *        *                                          ****  SYSOUT  *
#  *        *                                             *******lseq*
#  *        *
#  *   ************                      ************
#  *   *  Step 3  ************************ cobcrun  *
#  *   ************                      ************
#  *        *                                 *
#  *        *           ************     ************     ************
#  *        *           *  SYSUT1  ******* HXRS1KC3 *******  SYSUT2  *
#  *        *           *******rseq*     *********so*     *******lseq*
#  *        *
#  *        *
#  *   ************                      ************
#  *   *  Step 4  ************************   EOJ    *
#  *   ************                      ************
#  *
#  * ********************************************************************
#  * Step 1 of 4, Prepare the System Environment.
#  *
   JOBSTATUS=0
   for textstring in $(cat ENV4SYS1.cfg);
   do
#      # * The following statement will replace all occurences
#      # * of USD_BASESYS1 with the value of the BASESYS1
#      # * environment variable.
       textstring=${textstring//USD_BASESYS1/$BASESYS1}
#      # * The following statement will replace all occurences
#      # * of /USD_JOBNAME with the value of the JOBNAME
#      # * environment variable.
       textstring=${textstring/USD_JOBNAME/$JOBNAME}
       export $textstring
       rc=$?
       if [ $rc != 0 ]
       then
          simonote.sh "#  $textstring - Return Code is $rc"
          JOBSTATUS=$rc
       fi
   done
#  *
   simonote.sh "# **************************************************************$JOBNAME"
   echo "# BASESYS1........... $BASESYS1"
   echo "# COB_LIBS........... $COB_LIBS"
   echo "# COB_LIBRARY_PATH... $COB_LIBRARY_PATH"
   echo "# SIMONOTE........... $SIMONOTE"
   simonote.sh "# JOBNAME............ $JOBNAME"
#  *
#  * *******************************************************************
#  * Step 2 of 4, Create a new ASC-encoded Record Sequential file...
#  *
#  * SYSUT1 is an ASCII/Text (Line Sequential) File. The record/field
#  *        structure uses a Comma-Separated-Value or CSV format.
#  * SYSUT2 is an ASCII-encoded, Record Sequential File. The record
#  *        structure and field structure are fixed-length. The
#  *        numeric field formats include Binary, Packed-Decimal and
#  *        Zoned-Decimal.
#  *
   simonote.sh "# StepInfo Create an ASC-encoded Record Sequential file that contains"
   simonote.sh "# StepInfo Zoned-Decimal, Packed-Decimal and Binary Numeric values"
   export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/XLSS/SIMOTIME.DATA.NBRMIXX1.csv
   export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/ASC1/SIMOTIME.DATA.NBRMIXD1.dat
#  *
   if [ -f "$SYSUT2" ]
   then
      rm $SYSUT2
   fi
#  *
#  * Create and populate a new Record Sequential file"
#  * Note: the tee command will write to both the standard output
#  *       device and a file.
#  *
   cobcrun NBRMIXC8 | tee $BASESYS1/SIMOSAM1/DEVL/LOGS/SYSOUT_USERPROG_NBRMIXC8.txt
   if [ -f "$SYSUT2" ]
   then
     simonote.sh "# SYSUT1 is $SYSUT1"
     simonote.sh "# SYSUT2 is $SYSUT2"
   else
     simonote.sh "# ABENDING File not created, $SYSUT2"
     exit 9001
   fi
#  *
#  * *******************************************************************
#  * Step 3 of 4, Prepare the Job Step environment, map the file names,
#  *              create a Control File and produce a Hex-Dump the file.
   simonote.sh "# StepInfo Create a Logical Hex-Dump of the ASC-encoded, RSEQ, FFL File"
   export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/ASC1/SIMOTIME.DATA.NBRMIXD1.dat
   export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/ASC1/SIMOTIME_HEX4DUMP_NBRMIXD1.txt
   export SYSUT3=$BASESYS1/SIMOSAM1/DEVL/DATA/ASC1/SIMOTIME.CNTL.HXRSEQ01.txt
   simonote.sh "# DATATAKE is $SYSUT1"
   simonote.sh "# DATADUMP is $SYSUT2"
   simonote.sh "# DATACNTL is $SYSUT3"
   echo "/RANGE   1 9999999">$SYSUT3
   echo "/DUMPASC Y">>$SYSUT3
   echo "/DUMPHEX Y">>$SYSUT3
   echo "/DUMPEBC N">>$SYSUT3
   echo "/DUMPCTR Y">>$SYSUT3
   echo "/DUMPRPI Y">>$SYSUT3
   echo "/END      ">>$SYSUT3
#  *
#  * Run the program to produce a Logical Hex-Dump.
#  *
   if [ -f "$SYSUT2" ]
   then
      rm $SYSUT2
   fi
   cobcrun HXRS1KC3 | tee $SYSOUT
   rc=$?
   if [ $rc != 0 ]
   then
      simonote.sh "# ABENDING $name - Return Code is $rc"
      JOBSTATUS=$rc
   else
      ((AOK_Count++))
   fi
#  *
#  * *******************************************************************
#  * Step 4 of 4, End of Job Processing...
#  *
   if [ "$JOBSTATUS" = "0" ]
   then
      simonote.sh "# Finished Job Name $JOBNAME"
   else
      simonote.sh "# ABENDING Job Name $JOBNAME"
   fi


Table of Contents Previous Section Next Section Compare Two LSEQ Files

The following is a listing of the Bash Script member (cpls1ks3.sh) used in this example.

#!/bin/bash
   JOBNAME=cpls1ks3
#  * *******************************************************************
#  *       Bash Script File - provided by SimoTime Technologies        *
#  *           (C) Copyright 1987-2018 All Rights Reserved             *
#  *             Web Site URL:   http://www.simotime.com               *
#  *                   e-mail:   helpdesk@simotime.com                 *
#  * *******************************************************************
#  *
#  * Text    - Execute program, Compare two Line Sequential Files
#  * Author  - SimoTime Technologies
#  * Date    - November 11, 2003
#  * Version - 06.07.16
#  *
#  * Prepare the environment by mapping the file names.
#  * Execute the compare program.
#  *
#  * ********************************************************************
#  * Step 1 of 3, Prepare the System Environment.
#  *
   JOBSTATUS=0
   for textstring in $(cat ENV4SYS1.cfg);
   do
#      # * The following statement will replace all occurences
#      # * of USD_BASESYS1 with the value of the BASESYS1
#      # * environment variable.
       textstring=${textstring//USD_BASESYS1/$BASESYS1}
#      # * The following statement will replace all occurences
#      # * of USD_JOBNAME with the value of the JOBNAME
#      # * environment variable.
       textstring=${textstring/USD_JOBNAME/$JOBNAME}
       export $textstring
       rc=$?
       if [ $rc != 0 ]
       then
          simonote.sh "#  $textstring - Return Code is $rc"
          JOBSTATUS=$rc
       fi
   done
#  *
   simonote.sh "# **************************************************************$JOBNAME"
   simonote.sh "# Starting Job Name $JOBNAME"
   simonote.sh "# BASESYS1........... $BASESYS1"
   simonote.sh "# COB_LIBS........... $COB_LIBS"
   simonote.sh "# COB_LIBRARY_PATH... $COB_LIBRARY_PATH"
   simonote.sh "# SIMONOTE........... $SIMONOTE"
#  *
#  * Prepare the environment, map the file names...
   export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME.DATA.TXVRECT1.txt
   export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME.DATA.TXVRECT2.txt
   export SYSUT3=$BASESYS1/SIMOSAM1/DEVL/PARMLIB/CPLS1KT3.ctl
   export SYSLUSER=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME.HEXDUMP.SYSLUSER.txt
   simonote.sh "# SYSUT1 .... $SYSUT1"
   simonote.sh "# SYSUT2 .... $SYSUT2"
   simonote.sh "# SYSUT3 .... $SYSUT3"
   simonote.sh "# SYSLUSER .. $SYSLUSER"
#  *
#  * ********************************************************************
#  * Step 2 of 3, Run the program.
#  *              Note: the tee command will write to both the standard
#  *                    output device and a file.
#  *
   cobcrun CPLS1KC3 | tee $BASESYS1/SIMOSAM1/DEVL/LOGS/SYSOUT_$JOBNAME_CPLS1KC3.txt
   rc=$?
   if [ $rc != 0 ]
   then
      simonote.sh "# ABENDING $name - Return Code is $rc"
      JOBSTATUS=$rc
   else
      ((AOK_Count++))
   fi
#  *
#  * ********************************************************************
#  * Step 3 of 3, End of Job Processing.
#  *
   if [ "$JOBSTATUS" = "0" ]
   then
      simonote.sh "# Finished Job Name $JOBNAME"
   else
      simonote.sh "# ABENDING Job Name $JOBNAME"
   fi


Table of Contents Previous Section Next Section Compare Results Equal

The following shows the information that is posted to the user screen and the Log File (SYSLUSER) when the compare processing produces an EQUAL result.

*******************************************************************************
* CPLS1KC3 Compare LSEQ, max=1024 with SYSUT3 v16.01.01   helpdesk@simotime.com
* CPLS1KC3 This Data File Compare Member was generated by SimoTime Technologies
*******************************************************************************
Starting  - Compare LSEQ, max=1024 with SYSUT3          http://www.SimoTime.com
Conclude  - Compare LSEQ, max=1024 with SYSUT3
000000106 - Record count for SYSUT1
000000106 - Record count for SYSUT2
000000000 - NOT Equal count for compare of existing records
000000106 - Number of matching record pairs for Compare Task
Finished  - Compare LSEQ, max=1024 with SYSUT3          http://www.SimoTime.com

Table of Contents Previous Section Next Section Compare Results NOT Equal

The following shows the information that is posted to the user screen and the Log File (SYSLUSER) when the compare processing produces a NOT EQUAL result.

*******************************************************************************
* CPLS1KC3 Compare LSEQ, max=1024 with SYSUT3 v16.01.01   helpdesk@simotime.com
* CPLS1KC3 This Data File Compare Member was generated by SimoTime Technologies
*******************************************************************************
Starting  - Compare LSEQ, max=1024 with SYSUT3          http://www.SimoTime.com
*
....:...10....:...20....:...30....:...40.........
SYSUT1....000000027(00001:00080) SYSUT3      SYSUT3
000000000027 ABCDEFGHIJKLMNOPQRSTUVWZXZ0123456789
3333333333332444444444444444555555555553333333333
0000000000270123456789ABCDEF01234567A8A0123456789
=======================================#=========
SYSUT2....000000027(00001:00080) SYSUT3      SYSUT3
000000000027 ABCDEFGHIJKLMNOPQRSTUVWZXZ#123456789
3333333333332444444444444444555555555552333333333
0000000000270123456789ABCDEF01234567A8A3123456789
=======================================#=========

*******************************************************************************
Conclude  - Compare LSEQ, max=1024 with SYSUT3
000000106 - Record count for SYSUT1
000000106 - Record count for SYSUT2
000000001 - NOT Equal count for compare of existing records
000000105 - Number of matching record pairs for Compare Task
ABENDING  - Compare LSEQ, max=1024 with SYSUT3          http://www.SimoTime.com

Table of Contents Previous Section Next Section Hex-Dump, Second and Final File

SIMOTIME provides a logical and physical methodology for creating a Hexadecimal view (HEX-Dump) of non-relational data structures (or data files). The logical hex-dump is intended for application programmers and simply presents the individual records within a file. The physical hex-dump is intended for system programmers and presents the individual records within a file along with the embedded structural information about the file.

Table of Contents Previous Section Next Section Logical Hex-Dump, Second File

The following is a listing of the Bash Script member (hxv32ks5.sh) that is used to produce a Hex-Dump view of records within a Record Sequential file containing variable length records.

#!/bin/bash
   JOBNAME=hxv32ks5
#  * *******************************************************************
#  *       Bash Script File - provided by SimoTime Technologies        *
#  *           (C) Copyright 1987-2018 All Rights Reserved             *
#  *             Web Site URL:   http://www.simotime.com               *
#  *                   e-mail:   helpdesk@simotime.com                 *
#  * *******************************************************************
#  *
#  * Text    - Execute program, Hex Dump of a Record Sequential file
#  * Author  - SimoTime Technologies
#  * Date    - November 11, 2003
#  * Version - 06.07.16
#  *
#  * Prepare the environment by mapping the file names.
#  * Execute the Hex Dump program.
#  *
#  * ********************************************************************
#  * Step 1 of 3, Prepare the System Environment.
#  *
   JOBSTATUS=0
   for textstring in $(cat ENV4SYS1.cfg);
   do
#      # * The following statement will replace all occurences
#      # * of USD_BASESYS1 with the value of the BASESYS1
#      # * environment variable.
       textstring=${textstring//USD_BASESYS1/$BASESYS1}
#      # * The following statement will replace all occurences
#      # * of USD_JOBNAME with the value of the JOBNAME
#      # * environment variable.
       textstring=${textstring/USD_JOBNAME/$JOBNAME}
       export $textstring
       rc=$?
       if [ $rc != 0 ]
       then
          simonote.sh "# $textstring - Return Code is $rc"
          JOBSTATUS=$rc
       fi
   done
#  *
   simonote.sh "# **************************************************************$JOBNAME"
   simonote.sh "# Starting Job Name $JOBNAME"
   simonote.sh "# BASESYS1........... $BASESYS1"
   simonote.sh "# COB_LIBS........... $COB_LIBS"
   simonote.sh "# COB_LIBRARY_PATH... $COB_LIBRARY_PATH"
   simonote.sh "# SIMONOTE........... $SIMONOTE"
#  *
#  * Prepare the environment, map the file names...
   export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/EBC1/SIMOTIME.DATA.SQVRECD1.dat
   export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME.HEXDUMP.SQVRECD5.txt
   export SYSUT3=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME_CNTL_F5249105.txt
   simonote.sh "# DATATAKE is $SYSUT1"
   simonote.sh "# DATADUMP is $SYSUT2"
#  *
#  * ********************************************************************
#  * Step 2 of 3, Run the program.
#  *
   if [ -f "$SYSUT2" ]
   then
      rm $SYSUT2
   fi
   cobcrun HXV32KC5 | tee $SYSUT2
   rc=$?
   if [ $rc != 0 ]
   then
      simonote.sh "# ABENDING $name - Return Code is $rc"
      JOBSTATUS=$rc
   else
      ((AOK_Count++))
   fi
#  *
#  * ********************************************************************
#  * Step 3 of 3, End of Job Processing.
#  *
   if [ "$JOBSTATUS" = "0" ]
   then
      simonote.sh "# Finished Job Name $JOBNAME"
   else
      simonote.sh "# ABENDING Job Name $JOBNAME"
   fi


Table of Contents Previous Section Next Section Logical Hex-Dump, Final File

The following is a listing of the Bash Script member (hxls1ks1.sh) that is used to produce a Hex-Dump view of records within an ASCII/Text file containing variable length records.

#!/bin/bash
   JOBNAME=hxls1ks1
#  * *******************************************************************
#  *       Bash Script File - provided by SimoTime Technologies        *
#  *           (C) Copyright 1987-2017 All Rights Reserved             *
#  *             Web Site URL:   http://www.simotime.com               *
#  *                   e-mail:   helpdesk@simotime.com                 *
#  * *******************************************************************
#  *
#  * Text    - Execute program, Hex Dump of an ASCII/Text file
#  * Author  - SimoTime Technologies
#  * Date    - November 11, 2003
#  * Version - 06.07.16
#  *
#  * Prepare the environment by mapping the file names.
#  * Execute the Hex Dump program.
#  *
#  * ********************************************************************
#  * Step 1 of 3, Prepare the System Environment.
#  *
   JOBSTATUS=0
   for textstring in $(cat ENV4SYS1.cfg);
   do
#      # * The following statement will replace all occurences
#      # * of USD_BASESYS1 with the value of the BASESYS1
#      # * environment variable.
       textstring=${textstring//USD_BASESYS1/$BASESYS1}
#      # * The following statement will replace all occurences
#      # * of USD_JOBNAME with the value of the JOBNAME
#      # * environment variable.
       textstring=${textstring/USD_JOBNAME/$JOBNAME}
       export $textstring
       rc=$?
       if [ $rc != 0 ]
       then
          simonote.sh "# $textstring - Return Code is $rc"
          JOBSTATUS=$rc
       fi
   done
#  *
   simonote.sh "# **************************************************************$JOBNAME"
   simonote.sh "# Starting Job Name $JOBNAME"
   simonote.sh "# BASESYS1........... $BASESYS1"
   simonote.sh "# COB_LIBS........... $COB_LIBS"
   simonote.sh "# COB_LIBRARY_PATH... $COB_LIBRARY_PATH"
   simonote.sh "# SIMONOTE........... $SIMONOTE"
#  *
#  * Prepare the environment, map the file names...
   export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME.DATA.TXVRECT2.txt
   export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME_HEXDUMP_TXVRECT2.txt
   simonote.sh "# DATATAKE is $SYSUT1"
   simonote.sh "# DATADUMP is $SYSUT2"
#  *
#  * ********************************************************************
#  * Step 2 of 3, Run the program.
#  *
   if [ -f "$SYSUT2" ]
   then
      rm $SYSUT2
   fi
   cobcrun SIMOZAPS HEXCESS $SYSUT1 VIEW=1 STOP=9999999 | tee $SYSUT2
   rc=$?
   if [ $rc != 0 ]
   then
      simonote.sh "# ABENDING $name - Return Code is $rc"
      JOBSTATUS=$rc
   else
      ((AOK_Count++))
   fi
#  *
#  * ********************************************************************
#  * Step 3 of 3, End of Job Processing.
#  *
   if [ "$JOBSTATUS" = "0" ]
   then
      simonote.sh "# Finished Job Name $JOBNAME"
   else
      simonote.sh "# ABENDING Job Name $JOBNAME"
   fi


Table of Contents Previous Section Next Section Physical Hex-Dump, Second File

The following is a listing of the Bash Script member (hxls1ks1.sh) used in this example.

#!/bin/bash
   JOBNAME=hxls1ks1
#  * *******************************************************************
#  *       Bash Script File - provided by SimoTime Technologies        *
#  *           (C) Copyright 1987-2017 All Rights Reserved             *
#  *             Web Site URL:   http://www.simotime.com               *
#  *                   e-mail:   helpdesk@simotime.com                 *
#  * *******************************************************************
#  *
#  * Text    - Execute program, Hex Dump of an ASCII/Text file
#  * Author  - SimoTime Technologies
#  * Date    - November 11, 2003
#  * Version - 06.07.16
#  *
#  * Prepare the environment by mapping the file names.
#  * Execute the Hex Dump program.
#  *
#  * ********************************************************************
#  * Step 1 of 3, Prepare the System Environment.
#  *
   JOBSTATUS=0
   for textstring in $(cat ENV4SYS1.cfg);
   do
#      # * The following statement will replace all occurences
#      # * of USD_BASESYS1 with the value of the BASESYS1
#      # * environment variable.
       textstring=${textstring//USD_BASESYS1/$BASESYS1}
#      # * The following statement will replace all occurences
#      # * of USD_JOBNAME with the value of the JOBNAME
#      # * environment variable.
       textstring=${textstring/USD_JOBNAME/$JOBNAME}
       export $textstring
       rc=$?
       if [ $rc != 0 ]
       then
          simonote.sh "# $textstring - Return Code is $rc"
          JOBSTATUS=$rc
       fi
   done
#  *
   simonote.sh "# **************************************************************$JOBNAME"
   simonote.sh "# Starting Job Name $JOBNAME"
   simonote.sh "# BASESYS1........... $BASESYS1"
   simonote.sh "# COB_LIBS........... $COB_LIBS"
   simonote.sh "# COB_LIBRARY_PATH... $COB_LIBRARY_PATH"
   simonote.sh "# SIMONOTE........... $SIMONOTE"
#  *
#  * Prepare the environment, map the file names...
   export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME.DATA.TXVRECT2.txt
   export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME_HEXDUMP_TXVRECT2.txt
   simonote.sh "# DATATAKE is $SYSUT1"
   simonote.sh "# DATADUMP is $SYSUT2"
#  *
#  * ********************************************************************
#  * Step 2 of 3, Run the program.
#  *
   if [ -f "$SYSUT2" ]
   then
      rm $SYSUT2
   fi
   cobcrun SIMOZAPS HEXCESS $SYSUT1 VIEW=1 STOP=9999999 | tee $SYSUT2
   rc=$?
   if [ $rc != 0 ]
   then
      simonote.sh "# ABENDING $name - Return Code is $rc"
      JOBSTATUS=$rc
   else
      ((AOK_Count++))
   fi
#  *
#  * ********************************************************************
#  * Step 3 of 3, End of Job Processing.
#  *
   if [ "$JOBSTATUS" = "0" ]
   then
      simonote.sh "# Finished Job Name $JOBNAME"
   else
      simonote.sh "# ABENDING Job Name $JOBNAME"
   fi


Table of Contents Previous Section Next Section Physical Hex-Dump, Final File

The following is a listing of the Bash Script member (hxls1ks1.sh) used in this example.

#!/bin/bash
   JOBNAME=hxls1ks1
#  * *******************************************************************
#  *       Bash Script File - provided by SimoTime Technologies        *
#  *           (C) Copyright 1987-2017 All Rights Reserved             *
#  *             Web Site URL:   http://www.simotime.com               *
#  *                   e-mail:   helpdesk@simotime.com                 *
#  * *******************************************************************
#  *
#  * Text    - Execute program, Hex Dump of an ASCII/Text file
#  * Author  - SimoTime Technologies
#  * Date    - November 11, 2003
#  * Version - 06.07.16
#  *
#  * Prepare the environment by mapping the file names.
#  * Execute the Hex Dump program.
#  *
#  * ********************************************************************
#  * Step 1 of 3, Prepare the System Environment.
#  *
   JOBSTATUS=0
   for textstring in $(cat ENV4SYS1.cfg);
   do
#      # * The following statement will replace all occurences
#      # * of USD_BASESYS1 with the value of the BASESYS1
#      # * environment variable.
       textstring=${textstring//USD_BASESYS1/$BASESYS1}
#      # * The following statement will replace all occurences
#      # * of USD_JOBNAME with the value of the JOBNAME
#      # * environment variable.
       textstring=${textstring/USD_JOBNAME/$JOBNAME}
       export $textstring
       rc=$?
       if [ $rc != 0 ]
       then
          simonote.sh "# $textstring - Return Code is $rc"
          JOBSTATUS=$rc
       fi
   done
#  *
   simonote.sh "# **************************************************************$JOBNAME"
   simonote.sh "# Starting Job Name $JOBNAME"
   simonote.sh "# BASESYS1........... $BASESYS1"
   simonote.sh "# COB_LIBS........... $COB_LIBS"
   simonote.sh "# COB_LIBRARY_PATH... $COB_LIBRARY_PATH"
   simonote.sh "# SIMONOTE........... $SIMONOTE"
#  *
#  * Prepare the environment, map the file names...
   export SYSUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME.DATA.TXVRECT2.txt
   export SYSUT2=$BASESYS1/SIMOSAM1/DEVL/DATA/TXT1/SIMOTIME_HEXDUMP_TXVRECT2.txt
   simonote.sh "# DATATAKE is $SYSUT1"
   simonote.sh "# DATADUMP is $SYSUT2"
#  *
#  * ********************************************************************
#  * Step 2 of 3, Run the program.
#  *
   if [ -f "$SYSUT2" ]
   then
      rm $SYSUT2
   fi
   cobcrun SIMOZAPS HEXCESS $SYSUT1 VIEW=1 STOP=9999999 | tee $SYSUT2
   rc=$?
   if [ $rc != 0 ]
   then
      simonote.sh "# ABENDING $name - Return Code is $rc"
      JOBSTATUS=$rc
   else
      ((AOK_Count++))
   fi
#  *
#  * ********************************************************************
#  * Step 3 of 3, End of Job Processing.
#  *
   if [ "$JOBSTATUS" = "0" ]
   then
      simonote.sh "# Finished Job Name $JOBNAME"
   else
      simonote.sh "# ABENDING Job Name $JOBNAME"
   fi


Table of Contents Previous Section Next Section Program Preparation

The COBOL programs used in the batch jobs are generated using SIMOTIME Technologies.

Name or Type Program Description
Convert Data Convert Programs
NBRMIXC6
NBRMIXR6
Convert (or Extract) the fields from within an ASCII-encoded, Record Sequential file with fixed-length records and fixed-length fields into a Line Sequential file with CSV Formatted records. The output file will contain text-oriented data strings and may be viewed with a text editor of choice.
NBRMIXC8
NBRMIXR8
Convert (or Import) the fields from within a Line Sequential file with CSV Formatted records into an ASCII-encoded, Record Sequential file with fixed-length fields and fixed-length records. The output file will contain Packed-Decimal, Zoned-Decimal and Binary numeric values.
This conversion process uses two (2) programs The Main program (NBRMIXC8.cbl) performs the File Format conversion and transfers control to a Called program (NBRMIXR8.cbl) to do the Record Content conversion.
NBRMIXC9
NBRMIXR9
Convert (or Import) the fields from within a Line Sequential file with CSV Formatted records into an ASCII-encoded, Record Sequential file with a record structure of fixed-length records and fixed-length fields (a row/column format). The numeric values are formatted as Zoned-Decimal (or Text-oriented).
This conversion process uses two (2) programs The Main program (NBRMIXC9.cbl) performs the File Format conversion and transfers control to a Called program (NBRMIXR9.cbl) to do the Record Content conversion.
Compare File Compare Programs
NBRMIXP3 Compare two (2) Line Sequential files with a record structure of fixed-length records and fixed-length fields (a row/column format). The numeric values are formatted as Zoned-Decimal (or Text-oriented).
Validate Validate Numeric Values
NBRMIXT1
NBRMIXN1
Accumulate Summary Totals for an ASCII-encoded, Record Sequential file with fixed-length fields and fixed-length records. The input records contain Packed-Decimal, Zoned-Decimal and Binary numeric values. The output is displayed on the screen and written to a Line Sequential file. Since the output file is all ASCII/Text it may be viewed with a text editor of choice.
NBRMIXT2
NBRMIXN2
Accumulate Summary Totals for an ASCII-encoded, Record Sequential file with fixed-length records and fixed-length fields (a row/column format). The input records contain numeric values that are stored in a Zoned-Decimal (or Text-oriented) format. The output is displayed on the screen and written to a Line Sequential file. Since the output file is all ASCII/Text it may be viewed with a text editor of choice.
Hex-Dump Review Results with Hex-Dump Programs
  A List of Programs that Process Numeric Data

Table of Contents Previous Section Next Section Data Convert Programs

The SIMOTIME Technologies have the ability to generate programs that will do File Format conversion and Record Content conversion. Depending on the conversion requirements the generation process may generate the COBOL Source Code for a single program or a set of programs consisting of a Main program and a Called program.

If the records in the file contain all Text-oriented data the Record Content conversion can be done at the record level. For this requirement the generation process can generate a single program to do both the File Format and Record Content conversion.

If the records in the file contain numeric values that are stored in Packed-Decimal or Binary format the Record Content conversion will need to be done at the field level. For this requirement the generation process will generate two (2) programs. The Main program will perform the file I/O, do the File Format conversion and transfer control to the Called program to do the Record Content conversion.

Table of Contents Previous Section Next Section RSEQ-ASC-FFL-NBR to LSEQ-ASC-CSV

The input for this generated COBOL program is an ASCII-encoded, Record Sequential file with fixed-length fields and fixed-length records. The output file is a Line Sequential (LSEQ or ASCII/Text) file.

This file format is supported by Micro Focus and GnuCOBOL.

Table of Contents Previous Section Next Section Generate the Program

The following is a listing of the Process Control File (NBRMIX06.pcf) used to generate the COBOL Source member.

* PCFNAME=NBRMIX06
***********************************************************************
*                       A Process Control File                        *
*               Generate a Data File Conversion Program               *
*                        SimoTime Technologies                        *
*            (C) Copyright 1987-2019 All Rights Reserved              *
*               Web Site URL:   http://www.simotime.com               *
*                     e-mail:   helpdesk@simotime.com                 *
***********************************************************************
* SYSUT1 - a Record Sequential file, 1024-byte FFL formatted records.
* SYSUT2 - an ASCII/Text file, 1024-byte CSV formatted records.
***********************************************************************
* This set of specification will generate a set of programs to read a
* file with 1024-byte FFL formatted records and write to a file of
* 1024-byte CSV formatted records file .
*
* The following group of statements will define the high level
* functions and processes to be performed.
*
&SIMOPREP  call ..\..\ENV1BASE
&USERPREP  call USERCONV
&CONFORM   IBM
&COPYFILE  NBRMIXB1.cpy
&HTMLFILE  nbrmixb1.htm
*USRMODEL  SYSMASK3.txt
*
* The following group of statements will define the behavioral
* characteristics and environment variable for the file I/O Program
* to be generated.
*
*HEAD34    ....:....1....:....2....:....3....
&HEAD34    Extract Fixed-Field to CSV Format
&PROGID    NBRMIXC6
&SYSUT1    org=Sequential recfm=FIXED    rlen=1024
&SYSUT2    org=ASCII/Text recfm=FIXED    rlen=1024
*
* The following two statements are used when the records in the data
* file (input or output) are a Comma-Separated-Values (or CSV) format.
*
&DELIMITER ,
&FRAME     "
*
* The following group of statements will define the behavioral
* characteristics and environment variables for the record content
* conversion program to be generated.
* This is for CSV Formatted output records.
*
&EXTCALL   NBRMIXR6
&EXTREC    NBRMIX-RECORD
&EXTLREC   1024
&EXTFMT    CSV ,
&EXTINIT   SPACES
&EXTHDR    YES
*
* The following group of statements will define the fields to be
* extracted from the input file and written to the output file.
* conversion program to be generated.
* This is for CSV Formatted output records.
*
&EXTRACT   NBRMIX-FLD-TXT-ZDU-5-0
&EXTRACT   NBRMIX-FLD-ZDU-5-0
&EXTRACT   NBRMIX-FLD-TXT-ZDS-5-0
&EXTRACT   NBRMIX-FLD-ZDS-5-0
&EXTRACT   NBRMIX-FLD-TXT-PKU-5-0
&EXTRACT   NBRMIX-FLD-PKU-5-0
&EXTRACT   NBRMIX-FLD-TXT-PKS-5-0
&EXTRACT   NBRMIX-FLD-PKS-5-0
&EXTRACT   NBRMIX-FLD-TXT-BNU-5-0
&EXTRACT   NBRMIX-FLD-BNU-5-0
&EXTRACT   NBRMIX-FLD-TXT-BNS-5-0
&EXTRACT   NBRMIX-FLD-BNS-5-0
&EXTRACT   NBRMIX-FLD-TEXT
*
&END

Table of Contents Previous Section Next Section Compile the Program

The following shows the format of the cobc command that is used to compile the program.

cobc -fixed -std=ibm progname.cbl -o progname.so -I SIMOSAM1/DEVL/COBCPY1

Table of Contents Previous Section Next Section LSEQ-ASC-CSV to RSEQ-ASC-FFL-NBR

The input for this generated COBOL program is a Line Sequential (LSEQ or ASCII/Text) file. The output file is an ASCII-encoded, Record Sequential file with fixed-length fields and fixed-length records.

This file format is supported by Micro Focus and GnuCOBOL.

Table of Contents Previous Section Next Section Generate the Program

The following is a listing of the Process Control File (NBRMIX08.pcf) used to generate the COBOL Source member.

* PCFNAME=NBRMIX08
***********************************************************************
*                       A Process Control File                        *
*               Generate a Data File Conversion Program               *
*                        SimoTime Technologies                        *
*            (C) Copyright 1987-2019 All Rights Reserved              *
*               Web Site URL:   http://www.simotime.com               *
*                     e-mail:   helpdesk@simotime.com                 *
***********************************************************************
* SYSUT1 - an ASCII/Text file with 80-byte CSV formatted records.
* SYSUT2 - a Record Sequential file with 80-byte FFL formatted records.
***********************************************************************
* This set of specification will generate a set of programs to read a
* file of 80-byte CSV formatted records  and write to a file with
* 80-byte FFL formatted records.
*
* The following group of statements will define the high level
* functions and processes to be performed.
*
&SIMOPREP  call ..\..\ENV1BASE
&USERPREP  call USERCONV
&CONFORM   IBM
&COPYFILE  NBRMIXB1.cpy
&HTMLFILE  nbrmixb1.htm
*USRMODEL  SYSMASK3.txt
*
* The following group of statements will define the behavioral
* characteristics and environment variable for the file I/O Program
* to be generated.
*
*HEAD34    ....:....1....:....2....:....3....
&HEAD34    Import CSV to Fixed-Field Format
&PROGID    NBRMIXC8
&SYSUT1    org=ASCII/Text recfm=FIXED    rlen=1024
&SYSUT2    org=Sequential recfm=FIXED    rlen=1024
*
* The following two statements are used when the records in the data
* file (input or output) are a Comma-Separated-Values (or CSV) format.
*
&DELIMITER ,
&FRAME     "
*
* The following group of statements will define the behavioral
* characteristics and environment variables for the record content
* conversion program to be generated.
* This is for CSV Formatted input records.
*
&IMPCALL   NBRMIXR8
&IMPREC    NBRMIX-RECORD
&IMPLREC   80
&IMPFMT    CSV ,
&IMPINIT   SPACES
&IMPHDR    YES
*
* The following group of statements will define the fields to be
* imported from the input file and written to the output file.
* conversion program to be generated.
* This is for CSV Formatted input records.
*
&IMPORT    NBRMIX-FLD-TXT-ZDU-5-0
&IMPORT    NBRMIX-FLD-ZDU-5-0
&IMPORT    NBRMIX-FLD-TXT-ZDS-5-0
&IMPORT    NBRMIX-FLD-ZDS-5-0
&IMPORT    NBRMIX-FLD-TXT-PKU-5-0
&IMPORT    NBRMIX-FLD-PKU-5-0
&IMPORT    NBRMIX-FLD-TXT-PKS-5-0
&IMPORT    NBRMIX-FLD-PKS-5-0
&IMPORT    NBRMIX-FLD-TXT-BNU-5-0
&IMPORT    NBRMIX-FLD-BNU-5-0
&IMPORT    NBRMIX-FLD-TXT-BNS-5-0
&IMPORT    NBRMIX-FLD-BNS-5-0
&IMPORT    NBRMIX-FLD-TEXT
*
&END

Table of Contents Previous Section Next Section Compile the Program

The following shows the format of the cobc command that is used to compile the program.

cobc -fixed -std=ibm progname.cbl -o progname.so -I SIMOSAM1/DEVL/COBCPY1

Table of Contents Previous Section Next Section LSEQ-ASC-CSV to RSEQ-ASC-FFL-TXT

The input for this generated COBOL program is a Line Sequential (LSEQ or ASCII/Text) file. The output file is an ASCII-encoded, Record Sequential file with fixed-length fields and fixed-length records.

This file format is supported by Micro Focus and GnuCOBOL.

Table of Contents Previous Section Next Section Generate the Program

The following is a listing of the Process Control File (NBRMIX09.pcf) used to generate the COBOL Source member.

* PCFNAME=NBRMIX09
***********************************************************************
*                       A Process Control File                        *
*               Generate a Data File Conversion Program               *
*                        SimoTime Technologies                        *
*            (C) Copyright 1987-2019 All Rights Reserved              *
*               Web Site URL:   http://www.simotime.com               *
*                     e-mail:   helpdesk@simotime.com                 *
***********************************************************************
* SYSUT1 - an ASCII/Text file with 80-byte CSV formatted records.
* SYSUT2 - a Record Sequential file with 80-byte FFL formatted records.
***********************************************************************
* This set of specification will generate a set of programs to read a
* file of 80-byte CSV formatted records  and write to a file with
* 80-byte FFL formatted records.
*
* The following group of statements will define the high level
* functions and processes to be performed.
*
&SIMOPREP  call ..\..\ENV1BASE
&USERPREP  call USERCONV
&CONFORM   IBM
&COPYFILE  NBRMIXB2.cpy
&HTMLFILE  nbrmixb2.htm
*USRMODEL  SYSMASK3.txt
*
* The following group of statements will define the behavioral
* characteristics and environment variable for the file I/O Program
* to be generated.
*
*HEAD34    ....:....1....:....2....:....3....
&HEAD34    Import CSV to Fixed-Field Format
&PROGID    NBRMIXC9
&SYSUT1    org=ASCII/Text recfm=FIXED    rlen=1024
&SYSUT2    org=Sequential recfm=FIXED    rlen=1024
*
* The following two statements are used when the records in the data
* file (input or output) are a Comma-Separated-Values (or CSV) format.
*
&DELIMITER ,
&FRAME     "
*
* The following group of statements will define the behavioral
* characteristics and environment variables for the record content
* conversion program to be generated.
* This is for CSV Formatted input records.
*
&IMPCALL   NBRMIXR9
&IMPREC    NBRMIX-RECORD-2
&IMPLREC   80
&IMPFMT    CSV ,
&IMPINIT   SPACES
&IMPHDR    YES
*
* The following group of statements will define the fields to be
* imported from the input file and written to the output file.
* conversion program to be generated.
* This is for CSV Formatted input records.
*
&IMPORT    NBRMIX-FLD-TXT-ZDU-5-0
&IMPORT    NBRMIX-FLD-ZDU-5-0
&IMPORT    NBRMIX-FLD-TXT-ZDS-5-0
&IMPORT    NBRMIX-FLD-ZDS-5-0
&IMPORT    NBRMIX-FLD-TXT-PKU-5-0
&IMPORT    NBRMIX-FLD-PKU-5-0
&IMPORT    NBRMIX-FLD-TXT-PKS-5-0
&IMPORT    NBRMIX-FLD-PKS-5-0
&IMPORT    NBRMIX-FLD-TXT-BNU-5-0
&IMPORT    NBRMIX-FLD-BNU-5-0
&IMPORT    NBRMIX-FLD-TXT-BNS-5-0
&IMPORT    NBRMIX-FLD-BNS-5-0
&IMPORT    NBRMIX-FLD-TEXT-6
*
&END

Table of Contents Previous Section Next Section Compile the Program

The following shows the format of the cobc command that is used to compile the program.

cobc -fixed -std=ibm progname.cbl -o progname.so -I SIMOSAM1/DEVL/COBCPY1

Table of Contents Previous Section Next Section File Compare Programs

The SIMOTIME Technologies have the ability to generate programs that will do File Compare processing on a record by record basis. Depending on the comparison requirements the generation process may generate the COBOL Source Code for a single program that will do a full compare of the record or a partial compare of a user-defined string of data within a record.

Table of Contents Previous Section Next Section File Compare for LSEQ-ASC-FFL

The input for this generated COBOL program is two (2) Line Sequential (LSEQ or ASCII/Text) files. The record structure for the input files is a fixed-field length. The output file is a Line Sequential files that shows the results of the compare of the two (2) input files.

The compare process will do a partial record compare. The compare will start at position 12 of each record and compare 103 bytes of data.

Table of Contents Previous Section Next Section Generate the Program

The following is a listing of the Process Control File (NBRMIXP3.pcf) used to generate the COBOL Source member.

* PCFNAME=NBRMIXP3
***********************************************************************
*                       A Process Control File                        *
*               Generate a Data File Comparison Program               *
*                        SimoTime Technologies                        *
*            (C) Copyright 1987-2019 All Rights Reserved              *
*              Web Site URL:   http://www.simotime.com                *
*                    e-mail:   helpdesk@simotime.com                  *
***********************************************************************
*
* The following group of statements will define the high level
* functions and processes to be performed.
*
&SIMOPREP  call ..\..\ENV1BASE
&USERPREP  call USERCOMP
&FUNCTION  COMPARE
&CONFORM   IBM
&USRMODEL  SYSCOMP6.txt
*
* The following group of statements will define the behavioral
* characteristics and environment variable for the file I/O
* functions within the Program to be generated.
*
*HEAD34    ....:....1....:....2....:....3....
&HEAD34    Compare LSEQ, max=1024 with SYSUT3
&PROGID    NBRMIXP3
&SYSUT1    org=ASCII/Text recfm=VARIABLE rmin=1 rmax=1024 RECMODE RECVARY
&SYSUT2    org=ASCII/Text recfm=VARIABLE rmin=1 rmax=1024 RECMODE RECVARY
&SYSUT3    org=ASCII/Text recfm=FIXED rlen=80
*
* The following group of statements will define the behavioral
* characteristics and environment variable for the compare functions
* within the Program to be generated.
*
* ..:....1....:....2....:....3....:....4....:....5....:....6....
*KEYFIELD  SYSUT1 pos  1 len 12 SYSUT2 pos  1 len  12
&DELTAMAX  10 EOF
&IFNECODE  0016
*
* The following group of statements will define the presentation
* characteristics for the Hex-Dump Format and Output Devices.
*
&DFORMAT   ASC HEX NOEBC NEDETAIL RPI
&DISPLAY   SYSOUT
&SYSLOG    ENABLED
*
&END

Table of Contents Previous Section Next Section Compile the Program

The following shows the format of the cobc command that is used to compile the program.

cobc -fixed -std=ibm progname.cbl -o progname.so -I SIMOSAM1/DEVL/COBCPY1

TAG

Table of Contents Previous Section Next Section Validate Numeric Values

Table of Contents Previous Section Next Section Totals for RSEQ-ASC-FFL-NBR

The input for this generated COBOL program is an ASCII-encoded, Record Sequential file with fixed-length fields and fixed-length records.

This file format is supported by Micro Focus and GnuCOBOL.

Table of Contents Previous Section Next Section Generate the Program

The following is a listing of the Process Control File (NBRMIXT1.pcf) used to generate the COBOL Source member.

***********************************************************************
*                NBRMIXT1.pcf - a Process Control File                *
*        Accumulate Record Counts and Totals for Numeric Fields       *
*             (C) Copyright 1987-2019 All Rights Reserved             *
*               Web Site URL:   http://www.simotime.com               *
*                     e-mail:   helpdesk@simotime.com                 *
***********************************************************************
* SYSUT1 is the Sequential File with 80-byte records.
***********************************************************************
* This Process Control File will be used to generate a set of COBOL
* programs that will accumulate totals for user-defined numeric fields
* and provide a record count.
*
* Refer to http://www.simotime.com/utcomp01.htm for additional detail
* about the PCF statements for Data Validate, Dump and Compare.
*
* The following group of statements will define the high level
* functions and processes to be performed.
*
&SIMOPREP  call ..\Env1BASE
&USERPREP  call UserCOGI
&CONFORM   IBM
&COPYFILE  NBRMIXB1.cpy
&HTMLFILE  nbrmixb1.htm
&USRMODEL  SYSNTOT1.txt
*
* The following group of statements will define the behavioral
* characteristics and environment variable for the file I/O Program
* to be generated.
*
*HEAD34    ....:....1....:....2....:....3....
&HEAD34    Accumulate Totals, Numeric Fields
&PROGID    NBRMIXT1
&SYSUT1    org=Sequential recfm=FIXED    rmax=1024
*
* The following two statements are used when the records in the data
* file (input or output) are a Comma-Separated-Values (or CSV) format.
*
&DELIMITER ,
&FRAME     "
*
* The following group of statements will define the behavioral
* characteristics and environment variables for the record content
* conversion program to be generated.
* The following defines the name of the callable routine for special
* numeric processing.
*
&NUMCALL   NBRMIXN1
&NUMREC    NBRMIX-RECORD
*
* The following group of statements will define the type of processing
* and the name of the numeric fields.
*
&UT1TOTAL  NBRMIX-FLD-ZDU-5-0
&UT1TOTAL  NBRMIX-FLD-ZDS-5-0
&UT1TOTAL  NBRMIX-FLD-PKU-5-0
&UT1TOTAL  NBRMIX-FLD-PKS-5-0
&UT1TOTAL  NBRMIX-FLD-BNU-5-0
&UT1TOTAL  NBRMIX-FLD-BNS-5-0
*
&END

Table of Contents Previous Section Next Section Compile the Program

The following shows the format of the cobc command that is used to compile the program.

cobc -fixed -std=ibm progname.cbl -o progname.so -I SIMOSAM1/DEVL/COBCPY1

TAG

Table of Contents Previous Section Next Section Totals for RSEQ-ASC-FFL-TXT

The input for this generated COBOL program is an ASCII-encoded, Record Sequential file with fixed-length fields and fixed-length records.

This file format is supported by Micro Focus and GnuCOBOL.

Table of Contents Previous Section Next Section Generate the Program

The following is a listing of the Process Control File (NBRMIXT2.pcf) used to generate the COBOL Source member.

***********************************************************************
*                NBRMIXT2.pcf - a Process Control File                *
*        Accumulate Record Counts and Totals for Numeric Fields       *
*             (C) Copyright 1987-2017 All Rights Reserved             *
*               Web Site URL:   http://www.simotime.com               *
*                     e-mail:   helpdesk@simotime.com                 *
***********************************************************************
* SYSUT1 is the Sequential File with 1024-byte records.
***********************************************************************
* This Process Control File will be used to generate a set of COBOL
* programs that will accumulate totals for user-defined numeric fields
* and provide a record count.
*
* Refer to http://www.simotime.com/utcomp01.htm for additional detail
* about the PCF statements for Data Validate, Dump and Compare.
*
* The following group of statements will define the high level
* functions and processes to be performed.
*
&SIMOPREP  call ..\Env1BASE
&USERPREP  call UserCOGI
&CONFORM   IBM
&COPYFILE  NBRMIXB2.cpy
&HTMLFILE  nbrmixb2.htm
&USRMODEL  SYSNTOT1.txt
*
* The following group of statements will define the behavioral
* characteristics and environment variable for the file I/O Program
* to be generated.
*
*HEAD34    ....:....1....:....2....:....3....
&HEAD34    Accumulate Totals, Numeric Fields
&PROGID    NBRMIXT2
&SYSUT1    org=Sequential recfm=FIXED    rmax=1024
*
* The following two statements are used when the records in the data
* file (input or output) are a Comma-Separated-Values (or CSV) format.
*
&DELIMITER ,
&FRAME     "
*
* The following group of statements will define the behavioral
* characteristics and environment variables for the record content
* conversion program to be generated.
* The following defines the name of the callable routine for special
* numeric processing.
*
&NUMCALL   NBRMIXN2
&NUMREC    NBRMIX-RECORD-2
*
* The following group of statements will define the type of processing
* and the name of the numeric fields.
*
&UT1TOTAL  NBRMIX-FLD-ZDU-5-0
&UT1TOTAL  NBRMIX-FLD-ZDS-5-0
&UT1TOTAL  NBRMIX-FLD-PKU-5-0
&UT1TOTAL  NBRMIX-FLD-PKS-5-0
&UT1TOTAL  NBRMIX-FLD-BNU-5-0
&UT1TOTAL  NBRMIX-FLD-BNS-5-0
*
&END

Table of Contents Previous Section Next Section Compile the Program

The following shows the format of the cobc command that is used to compile the program.

cobc -fixed -std=ibm progname.cbl -o progname.so -I SIMOSAM1/DEVL/COBCPY1

TAG

Table of Contents Previous Section Next Section Review Results with Hex-Dump

TAG

The logical hex-dump is intended for application programmers and simply presents the individual records within a file.

The physical hex-dump is intended for system programmers and presents the individual records within a file along with the embedded structural information about the file. The SIMOZAPS Utility program (a part of the SIMOTIME suite of Utility programs) is used on a Linux, UNIX or Windows System to produce a Physical Hex-Dump of a data file.

Table of Contents Previous Section Next Section Hex Dump by Logical Record

The logical hex-dump is intended for application programmers and simply presents the individual records within a file.

Table of Contents Previous Section Next Section Hex-Dump, Second File

The following is a listing of the Process Control File (HXV32K05.pcf) used to generate a HEX-Dump program.

***********************************************************************
*                HXV32K05.pcf - a Process Control File                *
*    Hex-Dump for a Sequential File with Variable-Length records      *
*             (C) Copyright 1987-2019 All Rights Reserved             *
*               Web Site URL:   http://www.simotime.com               *
*                     e-mail:   helpdesk@simotime.com                 *
***********************************************************************
* SYSUT1 - Record Sequential file, 4-32760 variable-length records.   *
* SYSUT2 - Line Sequential file, 080-byte maximum length records.     *
* SYSUT3 - Line Sequential file, 32760-byte maximum length records.   *
***********************************************************************
* This Process Control File will be used to generate a COBOL program
* that will do a hexadecimal dump of the user-defined records
* contained in a record sequential file.
*
* The following group of statements will define the high level
* functions and processes to be performed.
*
&SIMOPREP  call ..\ENV1BASE
&USERPREP  call USERCOGI
&CONFORM   IBM
&USRMODEL  Y4X32RS1.txt
&USRXFILE  AE0437B1
*
* The following group of statements will define the behavioral
* characteristics and environment variable for the file I/O Program
* to be generated.
*
*HEAD34    ....:....1....:....2....:....3....
&HEAD34    Batch, HEX-Dump RSEQ LRECL=4x32760
&PROGID    HXV32KC5
&UT1READ   SEQUENTIAL
&SYSUT1    name=SYSUT1 org=Sequential recfm=variable rmin=4 rmax=32760 RECMODE RECVARY
&SYSUT2    name=SYSUT2 org=ASCII/Text recfm=variable rmin=4 rmax=32760 TRUNC=SYSUT1
&SYSUT3    name=SYSUT3 org=ASCII/Text recfm=FIXED rlen=080
*
* WIP...
*
*HEXOPEN   OUTPUT or EXTEND
&TRANSVREC ENABLE trunc move conv
&HEXDUMP   SYSUT1 pos 0001 len 0256

*HEXFIRST
*HEXFINAL
*HEXLIMIT
*
&END

Table of Contents Previous Section Next Section Hex-Dump, Final File

The following is a listing of the Bash Script member (HXLS1K05.pcf) used to generate a HEX-Dump program..

***********************************************************************
*                HXLS1K05.pcf - a Process Control File                *
*    Hex-Dump for a Sequential File with Variable-Length records      *
*             (C) Copyright 1987-2019 All Rights Reserved             *
*               Web Site URL:   http://www.simotime.com               *
*                     e-mail:   helpdesk@simotime.com                 *
***********************************************************************
* SYSUT1 - Record Sequential file, 4-32760 variable-length records.   *
* SYSUT2 - Line Sequential file, 080-byte maximum length records.     *
* SYSUT3 - Line Sequential file, 32760-byte maximum length records.   *
***********************************************************************
* This Process Control File will be used to generate a COBOL program
* that will do a hexadecimal dump of the user-defined records
* contained in a record sequential file.
*
* The following group of statements will define the high level
* functions and processes to be performed.
*
&SIMOPREP  call ..\ENV1BASE
&USERPREP  call USERCOGI
&CONFORM   IBM
&USRMODEL  Y4X32RS1.txt
&USRXFILE  AE0437B1
*
* The following group of statements will define the behavioral
* characteristics and environment variable for the file I/O Program
* to be generated.
*
*HEAD34    ....:....1....:....2....:....3....
&HEAD34    Batch, HEX-Dump LSEQ LRECL=1024
&PROGID    HXLS1KC5
&UT1READ   SEQUENTIAL
&SYSUT1    name=SYSUT1 org=ASCII/Text recfm=variable rmin=4 rmax=1024 RECMODE RECVARY
&SYSUT2    name=SYSUT2 org=ASCII/Text recfm=variable rlen=1024 TRUNC=SYSUT1
&SYSUT3    name=SYSUT3 org=ASCII/Text recfm=FIXED rlen=080
*
* WIP...
*
*HEXOPEN   OUTPUT or EXTEND
&TRANSVREC ENABLE trunc move conv
&HEXDUMP   SYSUT1 pos 0001 len 0256

*HEXFIRST
*HEXFINAL
*HEXLIMIT
*
&END

Table of Contents Previous Section Next Section Hex Dump by Physical File

The physical hex-dump is intended for system programmers and presents the individual records within a file along with the embedded structural information about the file. The SIMOZAPS Utility program (a part of the SIMOTIME suite of Utility programs) is used on a Linux, UNIX or Windows System to produce a Physical Hex-Dump of a data file.

Table of Contents Previous Section Next Section Ancillary Functions & Files

This section provides information about program members that are used by this suite of programs and shared with other tasks or applications. These ancillary program members are available as a separate package or as part of the SIMOTIME Enterprise package.

This link provides detailed information for the  Common or Shared  program members.

Table of Contents Previous Section Next Section Batch Jobs, Windows

The following members are for the Windows Environment. The Job Scripts use Command Files.

Table of Contents Previous Section Next Section Set the Base Environment

The following (ENV1BASE.cmd) is a Windows Command file that will set the commonly used environment variables. This member is used to provide a single point for managing the commonly used environment variables.

@echo OFF
rem  * *******************************************************************
rem  *               ENV1BASE.cmd - a Windows Command File               *
rem  *        This program is provided by SimoTime Technologies          *
rem  *           (C) Copyright 1987-2021 All Rights Reserved             *
rem  *             Web Site URL:   http://www.simotime.com               *
rem  *                   e-mail:   helpdesk@simotime.com                 *
rem  * *******************************************************************
rem  *
rem  * Text   - Provide a single point to set common environment variables.
rem  * Author - SimoTime Technologies
rem  * Date   - January 24, 1996
rem  *
rem  * Set the commonly used environment variables. This is used to provide
rem  * a single point for managing the commonly used environment variables.
rem  *
     set SimoLIBR=c:\SimoLIBR
     set BASELIB1=c:\SIMOSAM1\DEVL
     set BASELIB8=c:\SimoSAM8
     set BaseWIP1=c:\SimoSAM1\WIP1
     set DATAZERO=c:\SIMODATA\DEVL\DATA\ZERO
     set BASEAPP=%BaseLib1%
     set BASESYS=%BaseLib1%\SYS1
     set BASECAT=%BaseLib1%\DATA
     set UMAPALIB=%BASECAT%\ASC1
     set UMAPELIB=%BASECAT%\EBC1
     set SYSLOG=%BASESYS%\LOGS\SYSLOG_USER.DAT
     set SYSOUT=%BASEAPP%\LOGS\SYSOUT_SIMSAM01.txt
     set SLZMSG=%BASEAPP%\LOGS\SLZMSG_USER.TXT
     set PostNOTE=%BASEAPP%\LOGS\JOBLOG_SIMONOTE.TXT
     set SIMONOTE=%BASEAPP%\LOGS\JOBLOG_SIMONOTE.txt
     set USERPOST=%BASEAPP%\LOGS\ASSIGNED_USER_POST_FILE.txt
     if [%1]==[] goto NO_POST
     set SYSOUT=%BaseLib1%\LOGS\SYSOUT_%1.txt
     call SIMONOTE "+ ENV1BASE *"
     call SIMONOTE "+ ENV1BASE ********************************************************************%1"
     call SIMONOTE "+ ENV1BASE is preparing the System Environment..."
     call SIMONOTE "+ SIMOLIBR is %SIMOLIBR%"
     call SIMONOTE "+ MIFOSYS1 is %MIFOSYS1%"
     call SIMONOTE "+ BASELIB1 is %BASELIB1%"
:NO_POST
     call SIMONOTE "+ SIMONOTE Job Log File is %SIMONOTE% "
rem  *
     set MQBASE=C:\Program Files\IBM\WebSphere MQ
rem  *
rem  * Set the location for the Apache-Tomcat Server...
     set CATALINA_HOME=C:\APACHETC\apache-tomcat-7.0.52
rem     set CATALINA_HOME=C:\Program Files (x86)\Java\jdk1.8.0_112
rem  *
rem  * Set the Environment for the Java Environment...
rem     set JAVABASE=C:\APACHETC\apache-tomcat-7.0.52
     set JAVABASE=C:\Program Files (x86)\Java\jdk1.8.0_112
     set JAVASDK="%JAVABASE%\bin"
     set JAVA_HOME=%JAVABASE%
     set JRE_HOME=%JAVABASE%
     set SIMOTCAT=%CATALINA_HOME%\webapps\simotcat
     set SIMPACKS=%CATALINA_HOME%\webapps\simotcat\WEB-INF\classes\simpacks
rem  *
rem  * Set the environment for the Micro Focus technology...
     set MIFOEDEV=C:\Program Files (x86)\Micro Focus\Enterprise Developer
     set MIFOVCBL=C:\Program Files (x86)\Micro Focus\Visual COBOL Build Tools
     set MIFOESTU=C:\Program Files (x86)\Micro Focus\Studio Enterprise Edition 6.0
     set MIFOEMFE="C:\Program Files (x86)\Micro Focus\Mainframe Express"
rem  *
rem  * Large file support, performance tuning and record locking of the File Handler
     set EXTFH=%BASESYS%\CONFIG\EXTFHBIG.CFG
rem  *
rem  * For IMS Support
     set ES_IMSLIB=%BASEAPP%\IMSLIB
     set ES_ACBLIB=%BASEAPP%\IMSLIB
rem  *
rem  * EZASOKETS Check EZASOKETS Enabled box or set ES_EZASOKET_SUPPORT=YES
     set EZACONFG=BASESYS1\CONFIG\EZACONFG.dat
rem  *
rem  * Resource Allocation and Performance for SORT and non-Relational Data
rem  set MFJSENGINE=SYNCSORT
     set SORTSCHEME=1
     set SORTSPACE=750000000
     set TMP=C:\SORTWORK
rem  *
     set ES_ALLOC_OVERRIDE=%BASESYS%\CONFIG\CATMAPA1.cfg
rem  * For CORE_ON_ERROR function, ABEND Dump
rem  *     set COBCONFIG_=%BASESYS%\CONFIG\diagnose.cfg
rem  *
rem  * Consolidated Trace Facility (CTF)
rem  *     set MFTRACE_CONFIG=%BASESYS%\CONFIG\ctf.cfg
rem  *     set MFTRACE_LOGS=c:\ctflogs
rem  *
rem  * For Job Restart, ABEND Recovery
     set MF_UCC11=Y
     set ES_JES_RESTART=Y
rem  *
rem  * Set environment for MFBSI (Micro Focus Batch Scheduling Interface)
     set ES_EMP_EXIT_1=mfbsiemx
     set MFBSI_DIR=%BASESYS%\LOGS\%JESSERVERNAME%
     set MFBSIEOP_CMD=ENABLE
     set MFBSIEOP_CSV=ENABLE
     set MFBSIEOP_HTM=ENABLE
     set MFBSIEOP_XML=ENABLE
rem  *
rem  * Set Behavior and Trace Flags for GETJOBDD
rem  *   Position=12345678/12345678
     set JDDFLAGS=nnnWnnnn/YYnnnnnn
rem  *
rem  * If not already set then set the PATH for Micro Focus Directories
     if "%SIMOPATH%" == "Y" goto JUMPPATH
     if "%MIFOSYS1%" == "EDEV" goto JUMPEDEV
     if "%MIFOSYS1%" == "VCBL" goto JUMPVCBL
     if "%MIFOSYS1%" == "ESTU" goto JUMPESTU
     if "%MIFOSYS1%" == "EMFE" goto JUMPEMFE
:JUMPEDEV
     set path=%BASESYS%\LOADLIB;%MIFOEDEV%\bin;%JAVASDK%;%BASEAPP%\JAVA;%PATH%;
     set CobCpy=%BASEAPP%\CobCpy1;%BASEAPP%\CobCpy2;%BASEAPP%\CobCpy6;%SimoLIBR%;%MIFOEDEV%\CPYLIB
     set MIFOBASE=%MIFOEDEV%
     goto JUMPPATH
:JUMPVCBL
     set path=%MIFOVCBL%\bin;%MIFOVCBL%;%JAVASDK%;%BASEAPP%\JAVA;%PATH%;
     set MIFOBASE=%MIFOVCBL%
     goto JUMPPATH
:JUMPESTU
     set MIFOBASE=%MIFOESTU%\Base
     set MIFOBIN=%MIFOBASE%\bin
     set path=%BASESYS%\LOADLIB;%MIFOBASE%;%MIFOBIN%;%JAVASDK%;%BASEAPP%\JAVA;%PATH%;
     set CobCpy=%BASEAPP%\CobCpy1;%BASEAPP%\CobCpy2;%BASEAPP%\CobCpy6;%SimoLIBR%;%MIFOBASE%\SOURCE
     goto JUMPPATH
:JUMPEMFE
     set MIFOBASE=%MIFOEMFE%\Base
     set MIFOBIN=%MIFOBASE%\bin
     set path=%BASESYS%\LOADLIB;%MIFOBASE%;%MIFOBIN%;%JAVASDK%;%BASEAPP%\JAVA;%PATH%;
     set CobCpy=%BASEAPP%\CobCpy1;%BASEAPP%\CobCpy2;%BASEAPP%\CobCpy6;%SimoLIBR%;%MIFOBASE%\SOURCE
     goto JUMPPATH
rem  *
:JUMPPATH
     set SIMOPATH=Y
rem  *
     set MAINFRAME_FLOATING_POINT=true
     set COBIDY=%BASEAPP%\COBIDY
     set COBPATH=.;%BASEAPP%\LOADLIB;%BASEAPP%\LOADLIB\GNTS;%BASESYS%\LOADLIB;%SimoLIBR%
     set LIBPATH=.;%BASEAPP%\LOADLIB;%BASEAPP%\LOADLIB\GNTS;%BASESYS%\LOADLIB;%SimoLIBR%
     set TXDIR=%BASESYS%\LOADLIB;%MIFOBASE%
     set CobCpy=%BASEAPP%\CobCpy1;%BASEAPP%\CobCpy2;%BASEAPP%\CobCpy6;%SimoLIBR%
rem  *
     set USERCLASS=%BASELIB1%\LOADLIB
     set CLASSPATH=.
     set CLASSPATH=%CLASSPATH%;%JAVABASE%
     set CLASSPATH=%CLASSPATH%;%JAVABASE%\lib
     set CLASSPATH=%CLASSPATH%;\%USERCLASS%\simpacks
     set CLASSPATH=%CLASSPATH%;C:\APACHETC\apache-tomcat-7.0.52\webapps\simotcat\WEB-INF\classes
     set CLASSPATH=%CLASSPATH%;C:\APACHETC\apache-tomcat-7.0.52\webapps\simotcat\WEB-INF\classes\simpacks
rem  *
     if "%MIFOSYS1%" == "ESTU" set CLASSPATH=%CLASSPATH%;%MIFOBIN%
     if "%MIFOSYS1%" == "EDEV" set CLASSPATH=%CLASSPATH%;%MIFOEDEV%
     if "%MIFOSYS1%" == "VCBL" set CLASSPATH=%CLASSPATH%;%MIFOVCBL%
     if "%MIFOSYS1%" == "VCBL" set CLASSPATH=%CLASSPATH%;%MIFOVCBL%\bin\mfcobol.jar
rem  *
     set JobStatus=0000
     call SIMONOTE "+ ENV1BASE is returning to caller"


Table of Contents Previous Section Next Section Display & Log Messages

The following (SIMONOTE.cmd) is a Windows Command file that may be called from other scripts and expects a single parameter enclosed in double quotes. The double quotes will be removed. The text message will be displayed to the screen. Before writing to the log file a date and time stamp will be inserted in front of the message text.

@echo OFF
rem  * *******************************************************************
rem  *               SIMONOTE.cmd - a Windows Command File               *
rem  *         This program is provided by SimoTime Technologies         *
rem  *            (C) Copyright 1987-2019 All Rights Reserved            *
rem  *              Web Site URL:   http://www.simotime.com              *
rem  *                    e-mail:   helpdesk@simotime.com                *
rem  * *******************************************************************
rem  *
rem  * Text    - Display message on screen and write to a log file.
rem  * Author  - SimoTime Technologies
rem  *
rem  * This script may be called from other scripts and expects a single
rem  * parameter enclosed in double quotes. The double quotes will be
rem  * removed. Before writing to the log file a date and time stamp
rem  * will be inserted in front of the message text.
rem  *
rem  * Note: The tilde (~) removes leading/trailing double-quotes.
rem  *
if "%SimoNOTE%" == "" set SimoNOTE=c:\SimoLIBR\LOGS\SimoTime.LOG
echo %date% %time% %~1>> %SimoNOTE%
echo %~1

Table of Contents Previous Section Next Section Batch Jobs, Linux

The following members are for the Linux Environment. The Batch Job Scripts use Bash Script Files.

Table of Contents Previous Section Next Section Set the Base Environment

The following shows the snippet of code that is used at the start of a batch job. This snippet of code will access a configuration file (ENV4SYS1.cfg) and set the base system environment for batch job execution.

#!/bin/bash
   JOBNAME=jobname
   for textstring in $(cat ENV4SYS1.cfg);
   do
#      # * The following statement will replace all occurences
#      # * of USD_BASESYS1 with the value of the BASESYS1
#      # * environment variable.
       textstring=${textstring//USD_BASESYS1/$BASESYS1}
#      # * The following statement will replace all occurences
#      # * of USD_JOBNAME with the value of the JOBNAME
#      # * environment variable.
       textstring=${textstring/USD_JOBNAME/$JOBNAME}
       export $textstring
       rc=$?
       if [ $rc != 0 ]
       then
          simonote.sh "#  $textstring - Return Code is $rc"
          JOBSTATUS=$rc
       fi
   done

The following shows the content of the configuration file (ENV4SYS1.cfg) that is used to set the base environment. This member is used to provide a single point for managing the commonly used system environment variables.

BASESYS1=/home/larry/SIMOSY76
COB_LIBS=USD_BASESYS1/SIMOSAM1/DEVL/LOADLIB:USD_BASESYS1/SIMOLIBR
COB_LIBRARY_PATH=USD_BASESYS1/SIMOSAM1/DEVL/LOADLIB:USD_BASESYS1/SIMOLIBR
SIMONOTE=USD_BASESYS1/SIMOSAM1/DEVL/LOGS/JOBLOG_SIMONOTE_USD_JOBNAME.txt

When the configuration file is processed by a batch job script the "USD_" text string will be replaced by a the "$" symbol.

Table of Contents Previous Section Next Section Display & Log Messages

The following (simonote.sh) is a Linux Bash script file that may be called from other scripts and expects a single parameter enclosed in double quotes. The double quotes will be removed. The text message will be displayed to the screen. Before writing to the log file a date and time stamp will be inserted in front of the message text.

#!/bin/bash
#  * *******************************************************************
#  *                 simonote.sh - a Bash Script File                  *
#  *         This program is provided by SimoTime Technologies         *
#  *            (C) Copyright 1987-2018 All Rights Reserved            *
#  *              Web Site URL:   http://www.simotime.com              *
#  *                    e-mail:   helpdesk@simotime.com                *
#  * *******************************************************************
#  *
#  * Text    - Display message on screen and write to a log file.
#  * Author  - SimoTime Technologies
#  *
#  * This script may be called from other scripts and expects a single
#  * parameter enclosed in double quotes. The double quotes will be
#  * removed. Before writing to the log file a date and time stamp
#  * will be inserted in front of the message text.
#  *
#  * Note: The tilde (~) removes leading/trailing double-quotes.
#  *
#  * "$simonote" == "" export SimoNOTE=/SIMOLIBR/LOGS/JESLOG_BASHUSER.txt
     if [ "$SIMONOTE" = "" ]
     then
       export SIMONOTE=SIMONOTE_JOBLOG_BASHUSER.txt
     fi
     echo $(date +'%Y/%m/%d') - $(date +'%r') $1>> $SIMONOTE
     echo $1

Table of Contents Previous Section Next Section Summary

This document will describe and demonstrate how to process data strings containing numeric values. The processing techniques include the creation, conversion and viewing in a Hex Dump format. The numeric formats include Zoned Decimal (USAGE IS DISPLAY), Packed Decimal (USAGE IS COMP-3) and Binary (USAGE IS COMP). This document may be used as a tutorial for new programmers or as a quick reference for experienced programmers.

In the world of programming there are many ways to solve a problem. This documentation and software were developed and tested on systems that are configured for a SIMOTIME environment based on the hardware, operating systems, user requirements and security requirements. Therefore, adjustments may be needed to execute the jobs and programs when transferred to a system of a different architecture or configuration.

SIMOTIME Services has experience in moving or sharing data or application processing across a variety of systems. For additional information about SIMOTIME Services or Technologies please contact us using the information in the  Contact or Feedback  section of this document.

Table of Contents Previous Section Next Section Software Agreement and Disclaimer

Permission to use, copy, modify and distribute this software, documentation or training material for any purpose requires a fee to be paid to SimoTime Technologies. Once the fee is received by SimoTime the latest version of the software, documentation or training material will be delivered and a license will be granted for use within an enterprise, provided the SimoTime copyright notice appear on all copies of the software. The SimoTime name or Logo may not be used in any advertising or publicity pertaining to the use of the software without the written permission of SimoTime Technologies.

SimoTime Technologies makes no warranty or representations about the suitability of the software, documentation or learning material for any purpose. It is provided "AS IS" without any expressed or implied warranty, including the implied warranties of merchantability, fitness for a particular purpose and non-infringement. SimoTime Technologies shall not be liable for any direct, indirect, special or consequential damages resulting from the loss of use, data or projects, whether in an action of contract or tort, arising out of or in connection with the use or performance of this software, documentation or training material.

Table of Contents Previous Section Next Section Downloads and Links

This section includes links to documents with additional information that are beyond the scope and purpose of this document. The first group of documents may be available from a local system or via an Internet connection, the second group of documents will require an Internet connection.

Note: A SIMOTIME License is required for the items to be made available on a local system or server.

Table of Contents Previous Section Next Section Current Server or Internet Access

The following links may be to the current server or to the Internet.

Note: The latest versions of the SimoTime Documents and Program Suites are available on the Internet and may be accessed using the Link to Internet icon. If a user has a SimoTime Enterprise License the Documents and Program Suites may be available on a local server and accessed using the Link to Server icon.

Link to Internet   Link to Server   Explore the Numbers Connection for additional information about the structure and processing of numeric data items (or numeric fields).

Link to Internet   Link to Server   Explore The ASCII and EBCDIC Translation Tables. These tables are provided for individuals that need to better understand the bit structures and differences of the encoding formats.

Link to Internet   Link to Server   Explore The File Status Return Codes that are used to interpret the results of accessing VSAM data sets and/or QSAM files.

Table of Contents Previous Section Next Section Internet Access Required

The following links will require an internet connect.

This suite of programs and documentation is available to download for review and evaluation purposes. Other uses will require a SIMOTIME Software License. Link to an Evaluation zPAK Option that includes the program members, documentation and control files.

A good place to start is The SimoTime Home Page for access to white papers, program examples and product information. This link requires an Internet Connection

Explore The Micro Focus Web Site for more information about products (including Micro Focus COBOL) and services available from Micro Focus. This link requires an Internet Connection.

Explore the GnuCOBOL Technologies available from SourceForge. SourceForge is an Open Source community resource dedicated to helping open source projects be as successful as possible. GnuCOBOL (formerly OpenCOBOL) is a COBOL compiler with run time support. The compiler (cobc) translates COBOL source to executable using intermediate C, designated C compiler and linker. This link will require an Internet Connection.

Table of Contents Previous Section Next Section Glossary of Terms

Link to Internet   Link to Server   Explore the Glossary of Terms for a list of terms and definitions used in this suite of documents and white papers.

Table of Contents Previous Section Next Section Contact or Feedback

This document was created and is maintained by SimoTime Technologies. If you have any questions, suggestions, comments or feedback please use the following contact information.

1. Send an e-mail to our helpdesk.
1.1. helpdesk@simotime.com.
2. Our telephone numbers are as follows.
2.1. 1 415 763-9430 office-helpdesk
2.2. 1 415 827-7045 mobile

 

We appreciate hearing from you.

Table of Contents Previous Section Next Section Company Overview

SimoTime Technologies was founded in 1987 and is a privately owned company. We specialize in the creation and deployment of business applications using new or existing technologies and services. We have a team of individuals that understand the broad range of technologies being used in today's environments. Our customers include small businesses using Internet technologies to corporations using very large mainframe systems.

Quite often, to reach larger markets or provide a higher level of service to existing customers it requires the newer Internet technologies to work in a complementary manner with existing corporate mainframe systems. We specialize in preparing applications and the associated data that are currently residing on a single platform to be distributed across a variety of platforms.

Preparing the application programs will require the transfer of source members that will be compiled and deployed on the target platform. The data will need to be transferred between the systems and may need to be converted and validated at various stages within the process. SimoTime has the technology, services and experience to assist in the application and data management tasks involved with doing business in a multi-system environment.

Whether you want to use the Internet to expand into new market segments or as a delivery vehicle for existing business functions simply give us a call or check the web site at http://www.simotime.com


Return-to-Top
Numeric Data Structures, Packed, Binary and Zoned Decimal
Copyright © 1987-2024
SimoTime Technologies and Services
All Rights Reserved
When technology complements business
http://www.simotime.com