The SimoCARD Series Processing Files with 80-Byte Records |
The SimoTime Home Page |
On the mainframe it is a common practice to read a record sequential file of eighty (80) byte, fixed-length records to obtain information or specifications that will affect the behavior of program execution. The eighty (80) byte records are a carry-over from the days when eighty-column cards were used. Even today these files are referred to as card files. The technique for accessing these files varies and this suite of utility programs with examples will describe a few of the possible techniques.
In addition, when an application is moved between an EBCDIC-encoded Mainframe platform and a Linux, UNIX or Windows (LUW) platform with Micro Focus it may continue to run in an EBCDIC-encoded environment or be converted to run in an ASCII-encoded environment. Furthermore, the file format may continue to be eighty (80) byte, fixed record length, record sequential files (also referred to as RSEQ) or the files may be converted to ASCII/Text files (also referred to as Line Sequential or LSEQ). Adding to all this confusion the files may be stored as data files, members in a PDS or in stream data in a JCL or PROC member. This introduces a new set of challenges.
It is important to understand the details of what these individual programs do and how they work as singular entities. However, It is more important to understand the impact of the various files formats and their encoding schema of choice when integrated into the full application environment.
This suite of programs and documentation describes the techniques for simplifying this process by using utility programs, callable I/O modules and a callable conversion routine. The I/O modules provide for read and write access of both record and line sequential files The conversion routine will convert 80-byte text strings between EBCDIC-encoding and ASCII-encoding. This process is greatly simplified when using Micro Focus on the LUW platforms.
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
The suite of programs uses Micro Focus COBOL and Windows Command files. The programs are unit tested with Micro Focus Net Express, version 5.1. The COBOL source code is included with the software package and may be compiled and executed on other versions of Micro Focus COBOL running on LUW platforms. The full program or system testing is done on a Windows/XP system using Micro Focus Studio, Enterprise Edition. Many of the programs are deployed on various LUW platforms using Micro Focus Server, Enterprise Edition.
This section describes the Windows command files that are used to set the environment and execute the utility programs.
This section describes the Windows command files that are used to set the environment and execute the utility programs.
| ||||
A List of Utility Programs to Compare Files with Eighty (80) Byte Records |
This section describes the Windows command files that are used to set the environment and execute the utility programs.
| ||||||||||||||
A List of Utility Programs to Convert Files with Eighty (80) Byte Records |
This section describes the callable routines that are used to process files that contain records with eighty characters of information.
| ||||||||||||
A List of Callable Routines to Process Files with Eighty (80) Byte Records |
The following is a Windows Command file (CV80DOIT.cmd) that shows how to use some of the sample programs that convert file formats with 80-byte records.
@echo OFF set TaskName=CV80DOIT rem * ******************************************************************* rem * CV80DOIT - A Windows Command File * rem * This program is provided by SimoTime Technologies * rem * (C) Copyright 1987-2020 All Rights Reserved * rem * Web Site URL: http://www.simotime.com * rem * e-mail: helpdesk@simotime.com * rem * ******************************************************************* rem * rem * Text - Create a Sequential Data Set on disk using ECHO function. rem * Author - SimoTime Technologies rem * Date - January 24, 1996 rem * rem * The 1st step will delete any previously created file. rem * rem * The 2nd step will created a new TEXT file. This step will use the rem * Windows ECHO with instream data. rem * rem * The 3rd step will read the text file and convert to a Record rem * sequential file of ASCII-encoded, fixed-length, eighty-byte records. rem * A COBOL program is used to do the File Format conversion. rem * rem * The 4th step will read the text file and convert to a Record rem * sequential file of EBCDIC-encoded, fixed-length, eighty-byte records. rem * A COBOL program is used to do the File Format and File Content rem * conversion. rem * rem * This set of programs will run on a Personal Computer with rem * Windows and Micro Focus Net Express. rem * ******************************************************************** call ..\ENV1BASE if "%SYSLOG%" == "" set syslog=c:\SimoLIBR\LOGS\SimoTime.LOG rem * call SimoNOTE "*******************************************************************************%TaskName%" call SimoNOTE "Starting TaskName %TaskName%" call SimoNOTE "* Job_Step 01 of 05, Preparing the System and Job environments" Set JOB_STATUS=0 set ALPHALS1=%BASECAT%\WRK1\SIMOTIME.DATADOIT.LS80ASC.TXT if exist %ALPHALS1% del %ALPHALS1% rem * call SimoNOTE "* --------------------------------------------------------------------------- *" call SimoNOTE "* Job_Step 02 of 05, Create and populate a new TEXT file..." rem *...:....1....:....2....:....3....:....4....:....5....:....6....:....7....:....8 echo 000000000001 A>>%ALPHALS1% echo 000000000002 AB>>%ALPHALS1% echo 000000000003 ABC>>%ALPHALS1% echo 000000000004 ABCD>>%ALPHALS1% echo 000000000005 ABCDE>>%ALPHALS1% echo 000000000006 ABCDEF>>%ALPHALS1% echo 000000000007 ABCDEFG>>%ALPHALS1% echo 000000000008 ABCDEFGH>>%ALPHALS1% echo 000000000009 ABCDEFGHI>>%ALPHALS1% echo 000000000010 ABCDEFGHIJ>>%ALPHALS1% echo 000000000011 ABCDEFGHIJK>>%ALPHALS1% echo 000000000012 ABCDEFGHIJKL>>%ALPHALS1% echo 000000000013 ABCDEFGHIJKLM>>%ALPHALS1% echo 000000000014 ABCDEFGHIJKLMN>>%ALPHALS1% echo 000000000015 ABCDEFGHIJKLMNO>>%ALPHALS1% echo 000000000016 ABCDEFGHIJKLMNOP>>%ALPHALS1% echo 000000000017 ABCDEFGHIJKLMNOPR>>%ALPHALS1% echo 000000000018 ABCDEFGHIJKLMNOPQR>>%ALPHALS1% echo 000000000019 ABCDEFGHIJKLMNOPQRS>>%ALPHALS1% echo 000000000020 ABCDEFGHIJKLMNOPQRST>>%ALPHALS1% echo 000000000021 ABCDEFGHIJKLMNOPQRSTU>>%ALPHALS1% echo 000000000022 ABCDEFGHIJKLMNOPQRSTUV>>%ALPHALS1% echo 000000000023 ABCDEFGHIJKLMNOPQRSTUVW>>%ALPHALS1% echo 000000000024 ABCDEFGHIJKLMNOPQRSTUVWX>>%ALPHALS1% echo 000000000025 ABCDEFGHIJKLMNOPQRSTUVWXY>>%ALPHALS1% echo 000000000026 ABCDEFGHIJKLMNOPQRSTUVWXYZ>>%ALPHALS1% echo 000000000027 ABCDEFGHIJKLMNOPQRSTUVWZXZabcdefghijklmnopqrstuvwxtz1234567890>>%ALPHALS1% echo 000000000028 ABCDEFGHIJKLMNOPQRSTUVWXYZ>>%ALPHALS1% echo 000000000029 ABCDEFGHIJKLMNOPQRSTUVWXY>>%ALPHALS1% echo 000000000030 ABCDEFGHIJKLMNOPQRSTUVWX>>%ALPHALS1% echo 000000000031 ABCDEFGHIJKLMNOPQRSTUVW>>%ALPHALS1% echo 000000000032 ABCDEFGHIJKLMNOPQRSTUV>>%ALPHALS1% echo 000000000033 ABCDEFGHIJKLMNOPQRSTU>>%ALPHALS1% echo 000000000034 ABCDEFGHIJKLMNOPQRST>>%ALPHALS1% echo 000000000035 ABCDEFGHIJKLMNOPQRS>>%ALPHALS1% echo 000000000036 ABCDEFGHIJKLMNOPQR>>%ALPHALS1% echo 000000000037 ABCDEFGHIJKLMNOPQ>>%ALPHALS1% echo 000000000038 ABCDEFGHIJKLMNOR>>%ALPHALS1% echo 000000000039 ABCDEFGHIJKLMNO>>%ALPHALS1% echo 000000000040 ABCDEFGHIJKLMN>>%ALPHALS1% echo 000000000041 ABCDEFGHIJKLM>>%ALPHALS1% echo 000000000042 ABCDEFGHIJKL>>%ALPHALS1% echo 000000000043 ABCDEFGHIJK>>%ALPHALS1% echo 000000000044 ABCDEFGHIJ>>%ALPHALS1% echo 000000000045 ABCDEFGHI>>%ALPHALS1% echo 000000000046 ABCDEFGH>>%ALPHALS1% echo 000000000047 ABCDEFG>>%ALPHALS1% echo 000000000048 ABCDEF>>%ALPHALS1% echo 000000000049 ABCDE>>%ALPHALS1% echo 000000000050 ABCD>>%ALPHALS1% echo 000000000051 ABC>>%ALPHALS1% echo 000000000052 AB>>%ALPHALS1% echo 000000000053 A>>%ALPHALS1% echo 000000000054 a>>%ALPHALS1% echo 000000000055 ab>>%ALPHALS1% echo 000000000056 abc>>%ALPHALS1% echo 000000000057 abcd>>%ALPHALS1% echo 000000000058 abcde>>%ALPHALS1% echo 000000000059 abcdef>>%ALPHALS1% echo 000000000060 abcdefg>>%ALPHALS1% echo 000000000061 abcdefgh>>%ALPHALS1% echo 000000000062 abcdefghi>>%ALPHALS1% echo 000000000063 abcdefghij>>%ALPHALS1% echo 000000000064 abcdefghijk>>%ALPHALS1% echo 000000000065 abcdefghijkl>>%ALPHALS1% echo 000000000066 abcdefghijklm>>%ALPHALS1% echo 000000000067 abcdefghijklmn>>%ALPHALS1% echo 000000000068 abcdefghijklmno>>%ALPHALS1% echo 000000000069 abcdefghijklmnop>>%ALPHALS1% echo 000000000070 abcdefghijklmnopr>>%ALPHALS1% echo 000000000071 abcdefghijklmnopqr>>%ALPHALS1% echo 000000000072 abcdefghijklmnopqrs>>%ALPHALS1% echo 000000000073 abcdefghijklmnopqrst>>%ALPHALS1% echo 000000000074 abcdefghijklmnopqrstu>>%ALPHALS1% echo 000000000075 abcdefghijklmnopqrstuv>>%ALPHALS1% echo 000000000076 abcdefghijklmnopqrstuvw>>%ALPHALS1% echo 000000000077 abcdefghijklmnopqrstuvwx>>%ALPHALS1% echo 000000000078 abcdefghijklmnopqrstuvwxy>>%ALPHALS1% echo 000000000079 abcdefghijklmnopqrstuvwxyz>>%ALPHALS1% echo 000000000080 abcdefghijklmnopqrstuvwzxz0123456789>>%ALPHALS1% echo 000000000081 abcdefghijklmnopqrstuvwxyz>>%ALPHALS1% echo 000000000082 abcdefghijklmnopqrstuvwxy>>%ALPHALS1% echo 000000000083 abcdefghijklmnopqrstuvwx>>%ALPHALS1% echo 000000000084 abcdefghijklmnopqrstuvw>>%ALPHALS1% echo 000000000085 abcdefghijklmnopqrstuv>>%ALPHALS1% echo 000000000086 abcdefghijklmnopqrstu>>%ALPHALS1% echo 000000000087 abcdefghijklmnopqrst>>%ALPHALS1% echo 000000000088 abcdefghijklmnopqrs>>%ALPHALS1% echo 000000000089 abcdefghijklmnopqr>>%ALPHALS1% echo 000000000090 abcdefghijklmnopq>>%ALPHALS1% echo 000000000091 abcdefghijklmnor>>%ALPHALS1% echo 000000000092 abcdefghijklmno>>%ALPHALS1% echo 000000000093 abcdefghijklmn>>%ALPHALS1% echo 000000000094 abcdefghijklm>>%ALPHALS1% echo 000000000095 abcdefghijkl>>%ALPHALS1% echo 000000000096 abcdefghijk>>%ALPHALS1% echo 000000000097 abcdefghij>>%ALPHALS1% echo 000000000098 abcdefghi>>%ALPHALS1% echo 000000000099 abcdefgh>>%ALPHALS1% echo 000000000100 abcdefg>>%ALPHALS1% echo 000000000101 abcdef>>%ALPHALS1% echo 000000000102 abcde>>%ALPHALS1% echo 000000000103 abcd>>%ALPHALS1% echo 000000000104 abc>>%ALPHALS1% echo 000000000105 ab>>%ALPHALS1% echo 000000000106 a>>%ALPHALS1% if not exist %ALPHALS1% set JOB_STATUS=20 if not "%JOB_STATUS%" == "0" goto EOJTAG call SimoNOTE "DataMake ALPHALS1=%ALPHALS1%" rem * call SimoNOTE "* --------------------------------------------------------------------------- *" call SimoNOTE "* Job_Step 03 of 05, Convert LSEQ to RSEQ asc..." rem * Read the previously created Line Sequential File (LSEQ) and write a rem * Record Sequential File (RSEQ) with 80-byte, ASCII-encoded records. rem * set GETLS080=%ALPHALS1% set PUTRS080=%BASECAT%\Wrk1\SIMOTIME.DATADOIT.RS80ASC.DAT if exist %PUTRS080% del %PUTRS080% run CV80ALAR if not exist %PUTRS080% set JOB_STATUS=30 if not "%JOB_STATUS%" == "0" goto EOJTAG call SimoNOTE "DataTake GETLS080=%GETLS080%" call SimoNOTE "DataMake PUTRS080=%PUTRS080%" rem * call SimoNOTE "* --------------------------------------------------------------------------- *" call SimoNOTE "* Job_Step 04 of 05, Convert LSEQ to RSEQ ebc..." rem * rem * Read the previously created Line Sequential File (LSEQ) and write a rem * Record Sequential File (RSEQ) with 80-byte, EBCDIC-encoded records. rem * set GETLS080=%ALPHALS1% set PUTRS080=%BASECAT%\Wrk1\SIMOTIME.DATADOIT.RS80EBC.DAT if exist %PUTRS080% del %PUTRS080% run CV80ALER if not exist %PUTRS080% set JOB_STATUS=40 if not "%JOB_STATUS%" == "0" goto EOJTAG call SimoNOTE "DataTake GETLS080=%GETLS080%" call SimoNOTE "DataMake PUTRS080=%PUTRS080%" rem * :EOJTAG call SimoNOTE "* --------------------------------------------------------------------------- *" call SimoNOTE "* JOB_STEP 05 of 05, End of Job Processing" call SimoNOTE "* SIMONOTE Job Log is %SIMONOTE% " if "%JOB_STATUS%" == "0" goto EOJAOK :EOJNOK call SimoNOTE "* ABENDING JOB_STATUS=%JOB_STATUS% JobName %TaskName% " goto :EOJEND :EOJAOK call SimoNOTE "* Finished JOB_STATUS=%JOB_STATUS% JobName %TaskName% " goto :EOJEND :EOJEND call SimoNOTE "* Conclude SYSOUT is %SYSOUT% " if not "%SIMOGENS%" == "BATCH" pause exit /B %JOB_STATUS%
This section provides technical detail about the supporting scripts and programs used or called by the primary jobs.
A command file (ENV1BASE.cmd) is called from other command files to set commonly used environment variables. This provides a single point of definition. The following is a listing of the contents of the command file.
rem * ******************************************************************* rem * ENV1BASE.cmd - a Windows Command File * rem * This program is provided by SimoTime Technologies * rem * (C) Copyright 1987-2016 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 commonly used 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 BASETEK1=C:\DEVOTEK1 set BASELIB8=C:\SIMOSAM8 set BASEWEB1=C:\SIMOWEB1 set BaseLIBR=%BASETEK1%\UTIL set BaseLib1=%BaseLIBR%\DEVL set SIMOCORE=%BASETEK1%\CORE set BASEAPP=%BaseLib1% set BASESYS=%BaseLib1%\SYS1 set BasePRD1=%BaseLIBR%\PROD set SYSLOG=%BaseLib1%\LOGS\SYSLOG_USER.TXT set SYSOUT=%BaseLib1%\LOGS\SYSOUT_USER.TXT set SimoNOTE=%BaseLib1%\LOGS\SimoNOTE_USER.TXT set SimoLIBR=c:\SimoLIBR set MIFOEDEV="C:\Program Files (x86)\Micro Focus\Enterprise Developer\bin" set MIFOBASE="C:\Program Files (x86)\Micro Focus\Studio Enterprise Edition 6.0\Base" set MIFOBIN=%MIFOBASE%\bin call SimoNOTE "* Starting JobName ENV1BASE.cmd" rem * set COBPATH=.;c:\SimoLIBR set COBIDY=%BASELIB1%\COBIDY rem * if "%MIFOSYS1%" == "ESTU" set CobCpy=%BASEAPP%\CobCpy1;%SIMOCORE%\CBLCOPY;%MIFOBASE%\SOURCE if "%MIFOSYS1%" == "EDEV" set CobCpy=%BASEAPP%\CobCpy1;%SIMOCORE%\CBLCOPY;%MIFOEDEV%\CPYLIB rem * if "%SIMOPATH%" == "Y" goto JUMPPATH if "%MIFOSYS1%" == "ESTU" set path=%BASESYS%\LOADLIB;%MIFOBASE%;%MIFOBIN%;%PATH%; if "%MIFOSYS1%" == "EDEV" set path=%BASESYS%\LOADLIB;%MIFOEDEV%;%PATH%; :JUMPPATH set SIMOPATH=Y set JobStatus=0000 call SimoNOTE "* Settings CmdName ENV1BASE.cmd, Version 14.03.28, %MIFOSYS1%" call SimoNOTE "* MIFOSYS1 .... %MIFOSYS1%" call SimoNOTE "* BaseAPP ..... %BASEAPP%" call SimoNOTE "* Conclude MIFOSYS1 is %MIFOSYS1% JobName ENV1BASE.cmd" call SimoNOTE "* Finished JobName ENV1BASE.cmd"
The following (SIMONOTE.cmd) is a listing of the contents of the SimoNOTE.CMD command file.
@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
The purpose of this document is to provide information about the possible challenges of managing card image data when moving an application between a Mainframe System and a Linux, UNIX or Windows System running Micro Focus. 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, Comment or Feedback section of this document.
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.
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.
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 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 icon.
Explore a complete list of the SimoTime Callable Routines or Utility Programs. This includes the callable routines and utility programs for the Micro Focus environment.
Explore An Enterprise System Model that describes and demonstrates how Applications that were running on a Mainframe System and non-relational data that was located on the Mainframe System were copied and deployed in a Microsoft Windows environment with Micro Focus Enterprise 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.
Explore The File Status Return Codes that are used to interpret the results of accessing VSAM data sets and/or QSAM files.
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 Glossary of Terms for a list of terms and definitions used in this suite of documents and white papers.
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.
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 |
The SimoCARD Series - Record Content Conversion for Files with 80-Byte Records |
Copyright © 1987-2024 SimoTime Technologies and Services All Rights Reserved |
When technology complements business |
http://www.simotime.com |