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
  Table of Contents Version 10.03.20 
  Introduction
  Requirements, Installation and Verification
  Quick Start
  Basic Functionality
 
  Basic Function, Assembler Data Definition
  Basic Function, Required Environment Variables
  Basic Function, Running the ASMOGENR Program
 
  Basic Function, Command File for Program Compilation
  Basic Function, Assembler Listing from Compile
  Ancillary Functionality
 
  Ancillary Function, Sample Command File for Environment
  Ancillary Function, Logging Information
  Ancillary Function, Producing a Hex-Dump of a .MOD File
  Possibilities and Considerations
 
  Building non-executable Members coded in Assembler
  Summary
 
  Software Agreement and Disclaimer
  Acquiring Software and Links to Similar Pages
  Comments or Suggestions
  About SimoTime

Introduction
(Next) (Previous) (Table-of-Contents)

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.

Requirements, Installation and Verification
(Next) (Previous) (Table-of-Contents)

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).
  C:\> md SimoLIBR
  C:\> cd SimoLIBR
  C:\SimoLIBR> md HTML
  C:\SimoLIBR> md LOGS
  C:\SimoLIBR> md 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
  C:\> cd SimoLIBR
  C:\SimoLIBR>
7. You are ready to run the Installation Verification Program (IVP) for ASMOGENR
  C:\SimoLIBR> ASMOivp1  TABLE001
8. The following should be displayed
  * ASMOset1 is returning to caller *******************************************************
ASMOivp1 Starting CmdName ASMOivp1, V09.03.25, User is UserName
StepInfo Delete previously created files StepInfo Create the non-executable member
ASMOMAKE is c:\SimoLIBR\DataWrk1\table001.MOD
Micro Focus Net Express V5.102.0118 RUN TIME ENVIRONMENT Copyright (C) 1984-2008 Micro Focus (IP) Limited.
URN AXCGG/AA0/00000
* SIMOBSIO Byte-Stream I/O Routine v08.11.20 http://www.simotime.com
* SIMOBSIO Copyright 1987-2010 SimoTime Enterprises, LLC All Rights Reserved
DataTake c:\SimoLIBR\table001.MLC
DataMake c:\SimoLIBR\DataWrk1\table001.MOD
DataLIST c:\SimoLIBR\DataWrk1\table001.LST
Finished CmdName ASMOivp1, Job Status is 0000
Press any key to continue . . .

You should now be ready to use the ASMOGENR Technology.

Quick Start
(Next) (Previous) (Table-of-Contents)

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

Basic Functionality
(Next) (Previous) (Table-of-Contents)

This section provides additional detail about the structure, function and use of the ASMOGENR program.

Basic Function, Assembler Data Definition
(Next) (Previous) (Table-of-Contents)

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.

Basic Function, Required Environment Variables
(Next) (Previous) (Table-of-Contents)

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

Basic Function, Running the ASMOGENR Program
(Next) (Previous) (Table-of-Contents)

To help automate the generation process of the non-executable load members a suite of Windows Command files (or scripts) is provided.

Basic Function, Command File for Program Compilation
(Next) (Previous) (Table-of-Contents)

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

Basic Function, Assembler Listing from Compile
(Next) (Previous) (Table-of-Contents)

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

Ancillary Functionality
(Next) (Previous) (Table-of-Contents)

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.

Ancillary Function, Sample Command File for Environment
(Next) (Previous) (Table-of-Contents)

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%"

Ancillary Function, Logging Information
(Next) (Previous) (Table-of-Contents)

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

Ancillary Function, Producing a Hex-Dump of a .MOD File
(Next) (Previous) (Table-of-Contents)

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...

Possibilities and Considerations
(Next) (Previous) (Table-of-Contents)

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).

Building non-executable Members coded in Assembler
(Next) (Previous) (Table-of-Contents)

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".

Summary
(Next) (Previous) (Table-of-Contents)

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.

Software Agreement and Disclaimer
(Next) (Previous) (Table-of-Contents)

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.

Acquiring Software and Links to Similar Pages
(Next) (Previous) (Table-of-Contents)

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 .

Comments or Suggestions
(Next) (Previous) (Table-of-Contents)

If you have any questions, suggestions or comments please call or send an e-mail to: helpdesk@simotime.com.

About SimoTime Enterprises
(Next) (Previous) (Table-of-Contents)

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