|
|
Assembler
to MOD File Data or Table Definitions for the Micro Focus Environment http://www.simotime.com |
| When technology complements business | Copyright © 1987-2010 SimoTime Enterprises All Rights Reserved |
In the CICS environment on the mainframe it was a common practice to use the EXEC CICS LOAD function to load a data table into memory. These data tables were typically created as mainframe assembler source members. The mainframe assembler source members were then compiled and linked as non-executable load members using the Mainframe Assembler Compiler (Assembler/H or HLASM). This example will describe how to create a non-executable load member for the Micro Focus Studio and Server environments by reading an Assembler source member and creating a .MOD file. The .MOD file (or non-executable load member) can be created with an EBCDIC or ASCII encoded format and will use the SimoTime Utility program called ASMOGENR.
The technique of using Mainframe Assembler (or HLASM, High-Level Assembler) to create a data table or non-executable load member would typically use a subset of the mainframe assembler operation codes (or OPCODES) that focused on the creation of data.
When moving a mainframe CICS application from the mainframe to a non-mainframe platform (such as Windows, UNIX or Linux) using Micro Focus technology this technique of creating and loading tables will require extra consideration.
Micro Focus Mainframe Express (MFE) includes mainframe assembler capability. The assembler source code for the tables may be transferred from the mainframe to the MFE environment without changes to the source code. The source code may then be compiled using the Mainframe Assembler Option of MFE. Once the members are compiled (as non-executable load members or filename.MOD) the tables may be loaded under control of the MFE CICS Option using the EXEC CICS LOAD function.
At this point it is important to emphasize the encoding format for the mainframe and MFE is EBCDIC. In addition, the Mainframe Assembler and the Assembler Option in MFE are EBCDIC-centric and may function at the bit level.
Therefore, we are faced with two (2) challenges if the target platform is Enterprise Server for Mainframe Migration running in an ASCII-encoded environment.
| Item | Description |
| 1. | Net Express and Enterprise Server do not include the mainframe assembler technology. We could be limited to running in an EBCDIC-encoded environment and using the .MOD files created by MFE. |
| 2. | How do we provide on-going support for Net Express and/or Enterprise Server for Mainframe Migration in either an EBCDIC or ASCII encoded environment? |
The good news is the table data that is maintained in the form of mainframe assembler source code typically uses a very small subset of the capabilities of mainframe assembler. A program (ASMOGENR) is available that provides the capability of processing an assembler source member that uses the mainframe assembler "Define Constant" (DC) or "Define Storage" DS statements to define the structure of the data in the table.
In the world of programming there are many ways to solve a problem. This suite of programs is provided as a programming example of one of the possible solutions to the problem of creating non-executable load members from mainframe assembler source members in a Micro Focus environment. This example may serve as a tutorial for new programmers and as a reference for experienced programmers. Additional information is provided in the Downloads and Links to Similar Pages section of this document.
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 program or system testing is done on a Windows/XP system using Micro Focus Studio, Enterprise Edition.
If you have installed other SimoTime Technologies then verify that c:\SimoLIBR exist and contains the load members and three sub-directories, HTML, LOGS and DataWrk1. If not then create the c:\SimoLIBR with the three sub-directories.
| Step | Description | ||||||||||
| 1. | Open a Net Express Command Line Window. | ||||||||||
| 2. | Verify or create the c:\SimoLIBR with the
three sub-directories (HTML, LOGS and DataWrk1).
|
||||||||||
| 3. | Add c:\SimoLIBR to your Windows System Path. | ||||||||||
| 4. | Unzip the contents of the ASMOGENR.ZIP file into c:\SimoLIBR. | ||||||||||
| 5. | Open a Net Express Command Line Window. | ||||||||||
| 6. | Make the current directory the
c:\SimoLIBR Directory
|
||||||||||
| 7. | You are ready to run the
Installation Verification Program (IVP) for ASMOGENR
|
||||||||||
| 8. | The following should be
displayed
|
You should now be ready to use the ASMOGENR Technology.
This section provides a minimum level of understanding to begin using the ASMOGENR program. Running the ASMOGENR program is a three step process.
| Step | Description |
| 1. | First, set the environment
variable that determines the encoding format of the output file (or
loadable, non-executable member). SET ASMOFORM=ASC or SET ASMOFORM=EBC |
| 2. | Second, set the environment
variables to map the logical file names (names used by program) to the
actual physical file names. SET ASMOTAKE=name of input file that contains the assembler source or specification SET ASMOMAKE=name of output file or loadable, non-executable member SET ASMOLIST=Name of the listing file SET SYSOUT=name of the file to contain SYSOUT information |
| 3. | Third, run the program. C:> run ASMOGENR Note: Net Express 5.1 or later is required to run ASMOGENR |
The file defined by the ASMOTAKE environment variable will be read. Informational and error messages will be written to the SYSOUT file and placed in the listing file. A source listing will be produced if a valid file name is provided by the ASMOLIST environment variable. If the source input is correct a loadable, non-executable member will be created based on the file name specified by the ASMOMAKE environment variable.
The ASMOFORM environment variable is used to determine the encoding scheme for the output member that is defined by the ASMOMAKE environment variable. The following show the setting for and ASCII-encoded or EBCDIC-encoded environment.
For an ASCII-encoded environment use the following.
SET ASMOFORM=ASC
For an EBCDIC-encoded environment use the following.
SET
ASMOFORM=EBC
This section provides additional detail about the structure, function and use of the ASMOGENR program.
For the ZOS environment a mainframe assembler (HLASM) a source member is a record sequential file of 80-byte, fixed-length records that are EBCDIC-encoded.
For the Micro Focus environment a mainframe assembler (HLASM) source member is a line sequential file of 80-byte, variable-length records that are ASCII-encoded.
Each record in a file containing assembler source code may be referred to as an assembler statement. The guideline for coding assembler statements is as follows.
| Position | Description |
| 1. | May be a label for the statement and is usually a maximum length of eight (8) bytes. If position 1 contains an asterisk the statement is treated as a comment. |
| 10. | This is the operations code or OpCode. |
| 16. | Operands followed by a space character. Items after the space character and before position 72 will be treated as comments. |
| 72. | Used for continuation to next statement. This is not currently supported by ASMOGENR. |
| 73. | Positions 73-80 may contain a Sequence Number, this is optional. |
The basic building block for defining data structures with HLASM is the DC (or Define Constant) operation code (or OPCODE). The following is a very simple HLASM source member that will create a five (5) byte non-executable member that may be loaded using the EXEC CICS LOAD function.
The "CSECT" statement identifies the start of the member. The label on the CSECT (Control Section) is typically the name of the member. The "DC" statement defines a five (5) byte text string. The "END" statement identifies the end of the source member.
TABLE001 CSECT
DC C'HELLO'
END
Let's build on the previous source member. The following member starts with three (3) comment statements. A second "DC" statement is added. If the following is compiled and linked as a non-executable load member it will be ten-bytes with the two text strings defined by the "DC" statements concatenated.
* *********************************************************************
* This is a comment statement and so is the next statement
* ..:....1....:....2....:....3....:....4....:....5....:....6....:....7.
TABLE002 CSECT
DC C'HELLO'
DC CL5'WORLD'
END
Let's take a closer look at the operands of the "DC" statements in the preceding example. The first "DC" statement is identified as a character string by the "C" at the start of the operands. The text string content is enclosed in apostrophes. The length of the string is not explicitly defined and is determined by the number of characters between the apostrophes.
The second "DC" statement is identified as a character string by the "C" at the start of the operands. The "L" identifies the following numeric value to be the explicit length of the character string that is defined within the apostrophes.
The specified length should be equal to the calculated length. If the specified length is greater than the calculated length the sting is padded to the right with spaces. If the specified length is less than the calculated length then the string is truncated to the size of the specified length.
The ASMOGENR uses five (5) environment variables.
| Environment Variable | Description |
| ASMOFORM | Determine the encoding scheme for the output member (or
loadable, non-executable member). that is defined by the ASMOMAKE
environment variable. The following show the setting for and ASCII-encoded or
EBCDIC-encoded environment. For an ASCII-encoded environment use the following. SET ASMOFORM=ASC For an EBCDIC-encoded environment use the following. SET ASMOFORM=EBC |
| ASMOTAKE | Name of input file that contains the assembler source or specification |
| ASMOMAKE | Name of output file or loadable, non-executable member |
| ASMOLIST | Name of the listing file |
| SYSOUT | Name of the file to contain SYSOUT information |
To help automate the generation process of the non-executable load members a suite of Windows Command files (or scripts) is provided.
The following shows the content of "GenerateMODascForSam1Online.CMD" that is the primary command fileWIP
@echo OFF
rem * ************************************************************************
rem * This procedure calls the following Windows Command Files.
rem * 1. Env1Base.CMD - this provides a single point for setting commonly
rem * used environment variables.
rem * 2. SimoNOTE.CMD - this provides a consistent process for displaying
rem * messages to the screen and writing to a journal or log file.
rem * 3. zModGeneration01.CMD - this will do the actual geberation of the
rem * specified member.
rem * ************************************************************************
setlocal
call ..\Env1Base
set CmdName=GenerateASMODascForSam1Online
rem *
call SimoNOTE "****************************************%CmdName%.CMD"
call SimoNOTE "Starting JobName %CmdName%.CMD"
set ASMOFORM=ASC
rem *
rem * Read the ListSam1AsModsLessExt.TXT file and pass the contents of each
rem * record to the command file that does the actual generation. Each
rem * record in the file contains an eight character member name.
for /F %%i in (ListSam1AsModsLessExt.TXT) do CALL zModGeneration01 %%i ASM StagLibA LIST
rem *
call SimoNOTE "Finished JobName %CmdName%.CMD"
if not "%SimoGENS%" == "BATCH" pause
endlocal
For the ZOS environment a mainframe assembler (HLASM) source member is a record sequential file with eighty (80) byte, fixed-length records. For the Micro Focus environment a source member is a Line Sequential (or ASCII/TEXT) file with a maximum record length of eighty (80) bytes.
The following shows a sample listing produced by the ASMOGENR program with the environment set for ASCII-encoding. This shows some of the functionality supported.
* ******************************************************************************* * * ASMOGENR Create .MOD from Assembler Source v09.08.20 A Controlled Release * * ASMOGENR Copyright 1987-2010 SimoTime Enterprises, LLC All Rights Reserved * * ASMOGENR Compilation Date: 2009/08/20 Compilation Time: 15:00:16:54 * ******************************************************************************* * Line Location Data Label OpCode Operands 0000001 * 0000002 * Show the processing of a subset of 370 Assembler DC statements. 0000003 * 0000004 * ..:....1....:....2....:....3....:....4....:....5....:....6....:... 0000005 * 0000006 00000000 TABLE002 CSECT * Control Section 0000007 00000000 NUMELEM EQU 25 * Equated value with label 0000008 00000000 LENELEM EQU 10 * Equated value with label 0000009 00000000 0000 DC 2AL2(0) * Addressing Constant 0000010 00000004 00000013 DC AL4(16+3) * Calculated value, add 0000011 00000008 0000001B DC AL4(9*3) * Calculated value, multiply 0000012 0000000C 2048454C4C4F20 DC CL7' HELLO ' * Character 0000013 00000013 61626320202020 DC CL7'abc' * Short definition, pad 0000014 0000001A 616263 DC CL3'abcdef' * Long definition, truncate 0000015 0000001D 616263646566 DC C'abcdef' * Implied or Calculated length 0000016 00000023 31323334 DC 10CL4'1234' * Use of Duplication Factor 0000017 0000004B 5A DC (79+13)C'Z' * Calculated duplication factor 0000018 000000A7 00 HEXTABLE DC 256AL1(*-HEXTABLE) * Very ingenious, not intuitive 0000019 000001A7 59 DC (NUMELEM+LENELEM)C'Y' * Use of label names 0000020 000001CA 000001CE DC AL4(*) 0000021 000001CE 000001DA DC 3AL4(*) 0000022 000001DA 454E442D4F462D54 DC C'END-OF-TABLE' * Calculated length 0000023 000001E6 END * ******************************************************************************* * * Labels used by the Data Definition Member. * Statement Location Name Type Status Hexadecimal Decimal * 0000006 00000000 TABLE002 CST Assigned * 0000007 00000000 NUMELEM ABS Assigned 25 * 0000008 00000000 LENELEM ABS Assigned 10 * 0000018 000000A7 HEXTABLE REL Assigned * Successful completion of final pass * Normal End of Job
This section describes functions that are common with other programs and performs standard administrative or utilitarian tasks. Some of these items may require the downloading of additional technology from the SimoTime Web Site.
A command file (Env1BASE.CMD located in the directory named SimoSam1) 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 * Set the commonly used environment variables. This is used to
rem * provide a single point for managing the commonly used environment
rem * variables.
rem *
set BaseLib1=c:\SimoSAM1
set SYSLOG=%BaseLib1%\LOGS\SYSLOG_USER.TXT
set SimoNOTE=%BaseLib1%\LOGS\SIMONOTE_USER.TXT
call SimoNOTE "*"
rem *
set SYSOUT=%BaseLib1%\LOGS\SYSOUT_USER.TXT
set LRSTOKEN=%BaseLib1%\DataLibA\Txt1\LRSTOKEN.TXT
set CobCpy=%BaseLib1%\CobCpy1;c:\SimoLIBR
rem *
rem * For large file support and record locking control of File Handler
set EXTFH=%BaseLib1%\SysLibA1\EXTFH4AE.CFG
rem * Set environment for MFBSI (Micro Focus Batch Scheduling Interface)
set ES_EMP_EXIT_1=mfbsiemx
set MFBSI_DIR=%BaseLib1%\BSIA\%ezServerName%
set MFBSIEOP_CMD=ENABLE
set MFBSIEOP_CSV=ENABLE
rem *
rem * The following is used to map the location of files that are to be
rem * allocated using JCL with ES/MTO.
set ES_ALLOC_OVERRIDE=%BaseLib1%\SysLibA1\CatMapA1.cfg
rem *
rem * The following may need to be adjusted based on individual systems
rem * and the various versions of the Operating System, Sub-Systems and
rem * other software.
if "%ENV1PROD%" == "Y" goto :NOPATH
set iexplore=C:\Program Files\Internet Explorer
set path="C:\Program Files\Micro Focus\Net Express 5.1\Base\";"C:\Program Files\Micro Focus\Net Express 5.1\Base\bin";%PATH%;
rem set path="C:\Program Files\Micro Focus\Server 5.0\Base\";"C:\Program Files\Micro Focus\Server 5.0\Base\bin";%PATH%;
:NOPATH
rem set cobpath=%BaseLib1%\ProdLibA;%BaseLib1%\ProdLibA\UTIL;c:\SimoLIBR
set JobStatus=0000
set StepStatus=0000
set ENV1PROD=Y
call SimoNOTE "BaseLib1 is %BaseLib1%"
The SimoNOTE.CMD file provides a single, consistent method for displaying informational messages to the console and writing time-stamped information to a log file.
@echo OFF 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 following is an example of the information provided in the log file.
Thu 10/04/2007 14:36:00.78 ****************************************GenrateMODascForSam1Online.CMD Thu 10/04/2007 14:36:00.79 Starting GenrateMODascForSam1Online.CMD Thu 10/04/2007 14:36:00.81 Starting zModGeneration01, Status is 0000, Program is TABLE001 Thu 10/04/2007 14:36:00.93 Finished zModGeneration01, Status is 0000, Program is TABLE001 Thu 10/04/2007 14:36:00.95 Starting zModGeneration01, Status is 0000, Program is TABLE002 Thu 10/04/2007 14:36:01.09 Finished zModGeneration01, Status is 0000, Program is TABLE002 Thu 10/04/2007 14:36:01.10 Finished GenrateMODascForSam1Online.CMD
The following is a hexademal dump of the .MOD file created from the source code that produced the preceding listing. The environment was set for ASCII-encoding. The member may be loaded using the EXEC CICS LOAD function provided by Micro Focus.
* Hexcess2 c:\SimoSAM1\DataLibA\Wrk1\TABLE002.MOD start=1 stop=9999999
* Hexcess2 by SimoTime Date: 2008-11-30 Time: 11:36:06:20
* Hexcess2 Starting at 000000000001
* Hexcess2 Stopping at 000009999999
* Hexcess2 File size 000000000488
Position Hex..... ........ ........ ........ ebcdic.......... ascii...........
000000001 00000000 00000013 0000001B 2048454C ...............< ............ HEL
000000017 4C4F2061 62632020 20206162 63616263 <|./....../../.. LO abc abcabc
000000033 64656631 32333431 32333431 32333431 ................ def1234123412341
000000049 32333431 32333431 32333431 32333431 ................ 2341234123412341
000000065 32333431 32333431 3233345A 5A5A5A5A ...........!!!!! 23412341234ZZZZZ
000000081 5A5A5A5A 5A5A5A5A 5A5A5A5A 5A5A5A5A !!!!!!!!!!!!!!!! ZZZZZZZZZZZZZZZZ
000000097 5A5A5A5A 5A5A5A5A 5A5A5A5A 5A5A5A5A !!!!!!!!!!!!!!!! ZZZZZZZZZZZZZZZZ
000000113 5A5A5A5A 5A5A5A5A 5A5A5A5A 5A5A5A5A !!!!!!!!!!!!!!!! ZZZZZZZZZZZZZZZZ
000000129 5A5A5A5A 5A5A5A5A 5A5A5A5A 5A5A5A5A !!!!!!!!!!!!!!!! ZZZZZZZZZZZZZZZZ
000000145 5A5A5A5A 5A5A5A5A 5A5A5A5A 5A5A5A5A !!!!!!!!!!!!!!!! ZZZZZZZZZZZZZZZZ
000000161 5A5A5A5A 5A5A5A00 01020304 05060708 !!!!!!!......... ZZZZZZZ.........
000000177 090A0B0C 0D0E0F10 11121314 15161718 ................ ................
000000193 191A1B1C 1D1E1F20 21222324 25262728 ................ ....... !"#$%&.(
000000209 292A2B2C 2D2E2F30 31323334 35363738 ................ )*+,-./012345678
000000225 393A3B3C 3D3E3F40 41424344 45464748 ....... ........ 9:;<=>?@ABCDEFGH
000000241 494A4B4C 4D4E4F50 51525354 55565758 ...<(+|&........ IJKLMNOPQRSTUVWX
000000257 595A5B5C 5D5E5F60 61626364 65666768 .!$*);.-/....... YZ[\]^_`abcdefgh
000000273 696A6B6C 6D6E6F70 71727374 75767778 .|.%_>?......... ijklmnopqrstuvwx
000000289 797A7B7C 7D7E7F80 81828384 85868788 `:#@.=".abcdefgh yz{.}~..........
000000305 898A8B8C 8D8E8F90 91929394 95969798 i.{...+.jklmnopq ................
000000321 999A9B9C 9D9E9FA0 A1A2A3A4 A5A6A7A8 r.}......stuvwxy ................
000000337 A9AAABAC ADAEAFB0 B1B2B3B4 B5B6B7B8 z............... ................
000000353 B9BABBBC BDBEBFC0 C1C2C3C4 C5C6C7C8 .[]....{ABCDEFGH ................
000000369 C9CACBCC CDCECFD0 D1D2D3D4 D5D6D7D8 I......}JKLMNOPQ ................
000000385 D9DADBDC DDDEDFE0 E1E2E3E4 E5E6E7E8 R........STUVWXY ................
000000401 E9EAEBEC EDEEEFF0 F1F2F3F4 F5F6F7F8 Z......012345678 ................
000000417 F9FAFBFC FDFEFF59 59595959 59595959 9............... .......YYYYYYYYY
000000433 59595959 59595959 59595959 59595959 ................ YYYYYYYYYYYYYYYY
000000449 59595959 59595959 59590000 01CA0000 ................ YYYYYYYYYY......
000000465 01CE0000 01D20000 01D6454E 442D4F46 .....K...O.+..|. ..........END-OF
000000481 2D544142 4C450000 xxxxxxxx xxxxxxxx ....<........... -TABLE..........
* Hexcess2 by SimoTime, Program-is-ENDING...
The ASMOGENR program provides a subset of functionality for processing Mainframe Assembler source members that contain the following statements and operation codes (or OPCODES) or Assembler Instructions.
| OPCODES | Description |
| CSECT | or Control Section, this should be a simply statement with a label in position 1. |
| EQU | or Equate, this should be a simple statement with an operand. It usually has a label in position 1. |
| DC | or Define Constant, may have a label in position 1. The basic operand functions of the DC statement are supported, duplication factor, field type, field length and data value or string. |
| DS | or Define Storage, may have a label in position 1. The basic operand functions of the DS statement are supported, such as duplication factor and field length. |
| ORG | The ORG instruction alters the setting of the location counter and thus controls the structure of the current control section. This redefines portions of a control section. |
| END | this is processed as an end of file indicator. Other parameters on the statement are ignored. |
The intent of the ASMOGENR program is to provide a capability of creating loadable, non-executable members from mainframe assembler source code that uses the preceding assembler operation codes to define data. The program is not intended to process other OPCODES or be a replacement for a full-function assembler compiler.
ASMOGENR does not support Relocatable Loader Definition (RLD's).
An online application may be heavily dependent on the loading of in-core tables. These tables are sometimes maintained using the data definitions capability of Mainframe Assembler. To change this approach is quite often a major change to the application.
Initially, the non-executable assembler source members were compiled using Micro Focus Mainframe Express (MFE) with the Mainframe Assembler Option. This worked quite well for the EBCDIC-encoded environment. It also required MFE for the ongoing maintenance of the tables.
The tougher challenge is how to create an ASCII-encoded, non-executable member that may be loaded as an in-core table in an ASCII-encoded environment without changing the application source code or recoding the assembler source code for the tables.
A program is available (ASMOGENR) that will read the existing source code and create a non-executable member (or filename.MOD file). The program will have an option to create an EBCDIC or ASCII encoded output member. The program will provide a subset of the functionality provided by the "Define Constant' (or DC statement) of mainframe assembler. This approach has been initially tested in the early stages of the proof-of-concept.
A Windows Command script was created to do the compilation or generation of the non-executable source members to create the ASCII-encoded loadable but not executable members (or in-core tables).
A Windows Command script was created to do the BMS Generations. The name of the script file is "GenerateMODascForSam1Online.CMD".
This program was initially developed to address the needs of a few mainframe applications that were being moved from a Mainframe System to a Windows System with Micro Focus. It has been enhanced as new requirements are defined and enhancements are requested. This program (ASMOGENR) provides a subset of capability for processing the DC statements used in mainframe assembler source members.
For the Micro Focus Mainframe Express environment the Mainframe Assembler Option should be used. This has the capability to read mainframe assembler source code and produce a loadable, non-executable member in an EBCDIC-encoded format.
The real value of the ASMOGENR program is its capability to produce a loadable, non-executable member in an ASCII-encoded format for the Net Express and Enterprise Server environments.
Permission to use, copy, modify and distribute this software, documentation or training material for any purpose requires a fee to be paid to Simotime Enterprises. 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 Enterprises.
SimoTime Enterprises 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 express or implied warranty, including the implied warranties of merchantability, fitness for a particular purpose and non-infringement. SimoTime Enterprises 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 technology is available as a controlled release. Please contact the helpdesk@simotime.com for more information or refer to the Product Availability and Pricing document.
Note: You must be attached to the Internet to download a Z-Pack or view the list.
Please view the complete list of SimoTime Z-Pack Examples at http://www.simotime.com/sim4dzip.htm .
Check out The Assembler Connection for more examples of mainframe Assembler coding techniques and sample code.
Check out The CICS Connection for more examples of mainframe CICS coding techniques and sample code.
Check out The COBOL Connection for more examples of mainframe COBOL coding techniques and sample code.
To review all the information available on this site start at The SimoTime Home Page .
If you have any questions, suggestions or comments please call or send an e-mail to: helpdesk@simotime.com.
Founded in 1987, SimoTime Enterprises 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. This includes the smallest thin client using the Internet and the very large mainframe systems. There is more to making the Internet work for your company's business than just having a nice looking WEB site. It is about combining the latest technologies and existing technologies with practical business experience. It's about the business of doing business and looking good in the process. 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. 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 |
| Copyright © 1987-2010 SimoTime Enterprises All Rights Reserved |
| When technology complements business |
| http://www.simotime.com |
| Version 06.11.08 |