Assembler to MOD File
Create a Non-Executable Load Member
  Table of Contents  v-16.01.01 - asmogenr.htm 
  Introduction
  Requirements, Install & Verify
  Quick Start
  TABLE001, Basic Function
  Input, Data Table Definitions
  Listing, Assembler Listing
  Output, Non-Executable Load Member
  TABLE002, Extended Function
  Input, Data or Table Definitions
  Listing, Assembler Listing
  Output, Non-Executable Load Member
  TABLE003, Esoteric Function
  Input, Data or Table Definitions
  Listing, Assembler Listing
  Output - Non-Executable Load Member
  Ancillary Functions
  Non-Executable Load Members
  Generate Multiple Load Members
  Generate a Single Load Member
  Set Environment Variables
  CMD File, Common Environment Variables
  Environment Variables, Map File Names
  Log and Display Information
  Produce a Hex-Dump
  Multiple Non-Executable Load Members
  Single Non-Executable Load Member
  Possibilities and Considerations
  Build non-executable Members
  Guidelines, Assembler Source Member
  Summary
  Software Agreement and Disclaimer
  Downloads and Links
  Current Server or Internet Access
  Internet Access Required
  Glossary of Terms
  Comments or Feedback
  Company Overview
The SimoTime Home Page 

Table of Contents Previous Section Next Section Introduction

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 running in an ASCII-encoded environment.

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. For table items that are defined as "character" the ASMOGENR program has the ability to produce a load member for an EBCDIC or ASCII encoded environment.

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.


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-2017
SimoTime Technologies and Services
All Rights Reserved

Table of Contents Previous Section Next Section Requirements, Install & Verify

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

Open a Command Prompt Window and enter the following commands.

C:> md SIMOLIBR
C:> cd SIMOLIBR
C:\SIMOLIBR> md DATAWRK1
C:\SIMOLIBR> md HTML
C:\SIMOLIBR> md LOGS

Unzip the content of the ASMOGENR.ZIP file into the SIMOLIBR directory. Add the SIMOLIBR directory to your system path. You should now be ready to use the ASMOGENR Technology.

Note: ASMOGENR leverages functions that are available in other SimoTime technologies. It is recommended that ASMOGENR be installed as part of the SimoTime Enterprise Package that is available for mainframe application migrations.

The following flow chart shows the processing flow for the ASMOGENR program and the Installation Verification Programs (IVP's).

               
ASMOIVPS
cmd
Start the processing to compare a Sequentail Faile and a VSAM, KSDS
   
ASMOTAKE
lseq
   
   
 
 
ASMOGENR
cbl
 
 
ASMOLIST
lseq
Main Program, read source code, write to list file
   
   
ASMOFORM
see Note-1
   
   
   
   
   
   
   
   
SIMOPARS
see Note-2
Identify strings within a data buffer, see Note-2
   
   
   
SIMOBSIO
see Note-3
 
 
ASMOMAKE
lseq
Write to non-executable load member, see Note-3
   
   
   
   
EOJ
End-Of-Job
 
Note-1: The ASMOFORM is an environment variable that determines the FORMat (i.e. the encoding schema for ASCII or EBCDIC) for the Non-Executable Load Member
Note-2: The SIMOPARS program is part of the SIMOMODS package that is available from SimoTime
Note-3: The SIMOBSIO program is part of the SIMOMODS package that is available from SimoTime
Generate a Non-Executable Load Member from Assembler Source Code

Table of Contents Previous Section Next Section Quick Start

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
  Quick Start for Creating ASCII or EBCDIC Encoded Non-Executable Load Members

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

Table of Contents Previous Section Next Section TABLE001, Basic Function

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

Table of Contents Previous Section Next Section Input, Data Table Definitions

The following (TABLE001.mlc) is a sample assembler source member that defines a table with ten (10) elements.

***********************************************************************
*             TABLE001.MLC - Test Table for ASMOGENR                  *
*                 Provided by SimoTime Technologies                   *
*           (C) Copyright 1987-2017 All Rights Reserved               *
*             Web Site URL:   http://www.simotime.com                 *
*                   e-mail:   helpdesk@simotime.com                   *
***********************************************************************
*
* ..:....1....:....2....:....3....:....4....:....5....:....6....:...
*
TABLE001 CSECT
         DC    CL16'00001One        '
         DC    CL16'00002Two        '
         DC    CL16'00003Three      '
         DC    CL16'00004Four       '
         DC    CL16'00005Five       '
         DC    CL16'00006Six        '
         DC    CL16'00007Seven      '
         DC    CL16'00008Eight      '
         DC    CL16'00009Nine       '
         DC    CL16'00010Ten        '
         END

Table of Contents Previous Section Next Section Listing, Assembler Listing

The following (TABLE001.lst) is a sample assembler listing for TABLE001. This listing is produced by the generation process.

*                                    *******************************************************************************
*                                    * ASMOGENR Create .MOD from Assembler Source  v14.11.26    A Controlled Release
*                                    * ASMOGENR Copyright 1987-2015    SimoTime Technologies     All Rights Reserved
*                                    * ASMOGENR Compilation Date: 2014/12/02           Compilation Time: 09:51:33:30
*                                    *******************************************************************************
*  Line  Location  Data              Label    OpCode Operands
0000001                              ***********************************************************************
0000002                              *             TABLE001.MLC - Test Table for ASMOGENR                  *
0000003                              *               Provided by SimoTime Technologies                     *
0000004                              *           (C) Copyright 1987-2015 All Rights Reserved               *
0000005                              *             Web Site URL:   http://www.simotime.com                 *
0000006                              *                   e-mail:   helpdesk@simotime.com                   *
0000007                              ***********************************************************************
0000008                              *
0000009                              * ..:....1....:....2....:....3....:....4....:....5....:....6....:...
0000010                              *
0000011  00000000                    TABLE001 CSECT
0000012  00000000  30303030314F6E65           DC    CL16'00001One        '
0000013  00000010  303030303254776F           DC    CL16'00002Two        '
0000014  00000020  3030303033546872           DC    CL16'00003Three      '
0000015  00000030  3030303034466F75           DC    CL16'00004Four       '
0000016  00000040  3030303035466976           DC    CL16'00005Five       '
0000017  00000050  3030303036536978           DC    CL16'00006Six        '
0000018  00000060  3030303037536576           DC    CL16'00007Seven      '
0000019  00000070  3030303038456967           DC    CL16'00008Eight      '
0000020  00000080  30303030394E696E           DC    CL16'00009Nine       '
0000021  00000090  303030313054656E           DC    CL16'00010Ten        '
0000022  000000A0                             END
*                                    *******************************************************************************
*
* Labels used by the Data Definition Member.
* Statement Location Name      Type     Status      Hexadecimal  Decimal
*   0000011 00000000 TABLE001  CST      Assigned

Table of Contents Previous Section Next Section Output, Non-Executable Load Member

The following (TABLE001.dmp) is a hexadecimal dump of the non-executable load member for TABLE001. To produce the dump of the non-executable member the SIMOZAPS utility program is used. This utility program is part of the enterprise package provided by SimoTime Enterprises.

* Hexcess2 c:\DevoTek1\UTIL\DEVL\DATA\Wrk1\TABLE001.MOD start=1 stop=9999999
* Hexcess2 by SimoTime   Date: 2014-12-02  Time: 09:51:33:36
* Hexcess2 Starting at   000000000001
* Hexcess2 Stopping at   000009999999
* Hexcess2 File size     000000000160
 Position Hex..... ........ ........ ........ ebcdic.......... ascii...........
000000001 30303030 314F6E65 20202020 20202020 .....|>......... 00001One
000000017 30303030 3254776F 20202020 20202020 .......?........ 00002Two
000000033 30303030 33546872 65652020 20202020 ................ 00003Three
000000049 30303030 34466F75 72202020 20202020 ......?......... 00004Four
000000065 30303030 35466976 65202020 20202020 ................ 00005Five
000000081 30303030 36536978 20202020 20202020 ................ 00006Six
000000097 30303030 37536576 656E2020 20202020 .........>...... 00007Seven
000000113 30303030 38456967 68742020 20202020 ................ 00008Eight
000000129 30303030 394E696E 65202020 20202020 .....+.>........ 00009Nine
000000145 30303031 3054656E 20202020 20202020 .......>........ 00010Ten
* Hexcess2 by SimoTime, Program-is-ENDING...

Table of Contents Previous Section Next Section TABLE002, Extended Function

This section provides additional or extended information about the structure, function and use of the ASMOGENR program.

Table of Contents Previous Section Next Section Input, Data or Table Definitions

The following (TABLE002.mlc) is a sample assembler source member that represents a typical coding technique.

***********************************************************************
*             TABLE002.MLC - Test Table for ASMOGENR                  *
*                 Provided by SimoTime Technologies                   *
*           (C) Copyright 1987-2017 All Rights Reserved               *
*             Web Site URL:   http://www.simotime.com                 *
*                   e-mail:   helpdesk@simotime.com                   *
***********************************************************************
*
* ..:....1....:....2....:....3....:....4....:....5....:....6....:...
*
TABLE002 CSECT 0
PARM003  DC    S(ESIZE)
PARM011  DC    S(ECOUNT)
         DC    CL1' '
ARRAY003 DS    0H
         DC    CL3'060'
TAG001   EQU   *
ESIZE003 EQU   3
ESIZE    EQU   *-ARRAY003
         DC    CL3'010'
         DC    CL3'011'
         DC    CL3'01A'
         DC    CL3'020'
         DC    CL3'021'
         DC    CL3'02A'
         DC    CL3'02B'
         DC    CL3'900'
         DC    CL3'999'
         DC    CL3'99A'
ECOUNT11 EQU   11
ECOUNT   EQU   (*-ARRAY003)/ESIZE
TEST0003 DC    S(ESIZE)
TEST0011 DC    S(ECOUNT)
         END

Table of Contents Previous Section Next Section Listing, Assembler Listing

The following (TABLE002.lst) is a sample assembler listing for TABLE002. This listing is produced by the generation process.

*                                    *******************************************************************************
*                                    * ASMOGENR Create .MOD from Assembler Source  v14.11.26    A Controlled Release
*                                    * ASMOGENR Copyright 1987-2015    SimoTime Technologies     All Rights Reserved
*                                    * ASMOGENR Compilation Date: 2014/12/02           Compilation Time: 09:51:33:50
*                                    *******************************************************************************
*  Line  Location  Data              Label    OpCode Operands
0000001                              ***********************************************************************
0000002                              *             TABLE002.MLC - Test Table for ASMOGENR                  *
0000003                              *               Provided by SimoTime Technologies                     *
0000004                              *           (C) Copyright 1987-2015 All Rights Reserved               *
0000005                              *             Web Site URL:   http://www.simotime.com                 *
0000006                              *                   e-mail:   helpdesk@simotime.com                   *
0000007                              ***********************************************************************
0000008                              *
0000009                              * ..:....1....:....2....:....3....:....4....:....5....:....6....:...
0000010                              *
0000011  00000000                    TABLE002 CSECT 0
0000012  00000000  0003              PARM003  DC    S(ESIZE)
0000013  00000002  000B              PARM011  DC    S(ECOUNT)
0000014  00000004  20                         DC    CL1' '
0000015  00000005
0000015  00000006                    ARRAY003 DS    0H
0000016  00000006  303630                     DC    CL3'060'
0000017  00000009                    TAG001   EQU   *
0000018  00000009                    ESIZE003 EQU   3
0000019  00000009                    ESIZE    EQU   *-ARRAY003
0000020  00000009  303130                     DC    CL3'010'
0000021  0000000C  303131                     DC    CL3'011'
0000022  0000000F  303141                     DC    CL3'01A'
0000023  00000012  303230                     DC    CL3'020'
0000024  00000015  303231                     DC    CL3'021'
0000025  00000018  303241                     DC    CL3'02A'
0000026  0000001B  303242                     DC    CL3'02B'
0000027  0000001E  393030                     DC    CL3'900'
0000028  00000021  393939                     DC    CL3'999'
0000029  00000024  393941                     DC    CL3'99A'
0000030  00000027                    ECOUNT11 EQU   11
0000031  00000027                    ECOUNT   EQU   (*-ARRAY003)/ESIZE
0000032  00000027
0000032  00000028  0003              TEST0003 DC    S(ESIZE)
0000033  0000002A  000B              TEST0011 DC    S(ECOUNT)
0000034  0000002C                             END
*                                    *******************************************************************************
*
* Labels used by the Data Definition Member.
* Statement Location Name      Type     Status      Hexadecimal  Decimal
*   0000011 00000000 TABLE002  CST      Assigned
*   0000012 00000000 PARM003   REL      Assigned
*   0000013 00000002 PARM011   REL      Assigned
*   0000015 00000006 ARRAY003  REL      Assigned
*   0000017 00000009 TAG001    ABS      Assigned                       9
*   0000018 00000009 ESIZE003  ABS      Assigned                       3
*   0000019 00000009 ESIZE     ABS      Assigned                       3
*   0000030 00000027 ECOUNT11  ABS      Assigned                      11
*   0000031 00000027 ECOUNT    ABS      Assigned                      11
*   0000032 00000028 TEST0003  REL      Assigned
*   0000033 0000002A TEST0011  REL      Assigned

Table of Contents Previous Section Next Section Output, Non-Executable Load Member

The following (TABLE002.dmp) is a hexadecimal dump of the non-executable load member for TABLE002. To produce the dump of the non-executable member the SIMOZAPS utility program is used. This utility program is part of the enterprise package provided by SimoTime Enterprises.

* Hexcess2 c:\DevoTek1\UTIL\DEVL\DATA\Wrk1\TABLE002.MOD start=1 stop=9999999
* Hexcess2 by SimoTime   Date: 2014-12-02  Time: 09:51:33:55
* Hexcess2 Starting at   000000000001
* Hexcess2 Stopping at   000009999999
* Hexcess2 File size     000000000044
 Position Hex..... ........ ........ ........ ebcdic.......... ascii...........
000000001 0003000B 20003036 30303130 30313130 ................ .... .0600100110
000000017 31413032 30303231 30324130 32423930 ................ 1A02002102A02B90
000000033 30393939 39394100 0003000B xxxxxxxx ................ 099999A.........
* Hexcess2 by SimoTime, Program-is-ENDING...

Table of Contents Previous Section Next Section TABLE003, Esoteric Function

This section provides advanced information about the structure, function and esoteric use of the ASMOGENR program.

Table of Contents Previous Section Next Section Input, Data or Table Definitions

The following (TABLE003.mlc) is the assembler source member that will create a 256 byte table of one byte entries from x'00' to x'FF'. This is rather clever with a minimum amount of code. However, it is not intuitive and does require a closer look to understand how it really works.

***********************************************************************
*             TABLE003.MLC - Test Table for ASMOGENR                  *
*                 Provided by SimoTime Technologies                   *
*           (C) Copyright 1987-2017 All Rights Reserved               *
*             Web Site URL:   http://www.simotime.com                 *
*                   e-mail:   helpdesk@simotime.com                   *
***********************************************************************
*
*   Create a 256 byte table of one byte entries from x'00' to x'FF'.
*   This is rather clever with a minimum amount of code. However, it
*   is not intuitive and does require a closer look to understand
*   how it really works.
*
* ..:....1....:....2....:....3....:....4....:....5....:....6....:...
*
TABLE003 CSECT
BINTAB01 DC    256AL1(*-BINTAB01)
BINEND   EQU   *
         END

Table of Contents Previous Section Next Section Listing, Assembler Listing

The following (TABLE003.lst) is a assembler listing for TABLE003. This listing is produced by the generation process.

*                                    *******************************************************************************
*                                    * ASMOGENR Create .MOD from Assembler Source  v14.11.26    A Controlled Release
*                                    * ASMOGENR Copyright 1987-2015    SimoTime Technologies     All Rights Reserved
*                                    * ASMOGENR Compilation Date: 2014/12/02           Compilation Time: 09:51:33:69
*                                    *******************************************************************************
*  Line  Location  Data              Label    OpCode Operands
0000001                              ***********************************************************************
0000002                              *             TABLE003.MLC - Test Table for ASMOGENR                  *
0000003                              *               Provided by SimoTime Technologies                     *
0000004                              *           (C) Copyright 1987-2015 All Rights Reserved               *
0000005                              *             Web Site URL:   http://www.simotime.com                 *
0000006                              *                   e-mail:   helpdesk@simotime.com                   *
0000007                              ***********************************************************************
0000008                              *
0000009                              *   Create a 256 byte table of one byte entries from x'00' to x'FF'.
0000010                              *   This is rather clever with a minimum amount of code. However, it
0000011                              *   is not intuitive and does require a closer look to understand
0000012                              *   how it really works.
0000013                              *
0000014                              * ..:....1....:....2....:....3....:....4....:....5....:....6....:...
0000015                              *
0000016  00000000                    TABLE003 CSECT
0000017  00000000  00                BINTAB01 DC    256AL1(*-BINTAB01)
0000018  00000100                    BINEND   EQU   *
0000019  00000100                             END
*                                    *******************************************************************************
*
* Labels used by the Data Definition Member.
* Statement Location Name      Type     Status      Hexadecimal  Decimal
*   0000016 00000000 TABLE003  CST      Assigned
*   0000017 00000000 BINTAB01  REL      Assigned
*   0000018 00000100 BINEND    ABS      Assigned                     256

Table of Contents Previous Section Next Section Output - Non-Executable Load Member

The following (TABLE003.dmp) is a hexadecimal dump of the non-executable load member for TABLE003. To produce the dump of the non-executable member the SIMOZAPS utility program is used. This utility program is part of the enterprise package provided by SimoTime Enterprises.

* Hexcess2 c:\DevoTek1\UTIL\DEVL\DATA\Wrk1\TABLE003.MOD start=1 stop=9999999
* Hexcess2 by SimoTime   Date: 2014-12-02  Time: 09:51:33:73
* Hexcess2 Starting at   000000000001
* Hexcess2 Stopping at   000009999999
* Hexcess2 File size     000000000256
 Position Hex..... ........ ........ ........ ebcdic.......... ascii...........
000000001 00010203 04050607 08090A0B 0C0D0E0F ................ ................
000000017 10111213 14151617 18191A1B 1C1D1E1F ................ ................
000000033 20212223 24252627 28292A2B 2C2D2E2F ................  !"#$%&.()*+,-./
000000049 30313233 34353637 38393A3B 3C3D3E3F ................ 0123456789:;<=>?
000000065 40414243 44454647 48494A4B 4C4D4E4F  ...........<(+| @ABCDEFGHIJKLMNO
000000081 50515253 54555657 58595A5B 5C5D5E5F &.........!$*);. PQRSTUVWXYZ[\]^_
000000097 60616263 64656667 68696A6B 6C6D6E6F -/........|.%_>? `abcdefghijklmno
000000113 70717273 74757677 78797A7B 7C7D7E7F .........`:#@.=" pqrstuvwxyz{.}~.
000000129 80818283 84858687 88898A8B 8C8D8E8F .abcdefghi.{...+ ................
000000145 90919293 94959697 98999A9B 9C9D9E9F .jklmnopqr.}.... ................
000000161 A0A1A2A3 A4A5A6A7 A8A9AAAB ACADAEAF ..stuvwxyz...... ................
000000177 B0B1B2B3 B4B5B6B7 B8B9BABB BCBDBEBF ..........[].... ................
000000193 C0C1C2C3 C4C5C6C7 C8C9CACB CCCDCECF {ABCDEFGHI...... ................
000000209 D0D1D2D3 D4D5D6D7 D8D9DADB DCDDDEDF }JKLMNOPQR...... ................
000000225 E0E1E2E3 E4E5E6E7 E8E9EAEB ECEDEEEF ..STUVWXYZ...... ................
000000241 F0F1F2F3 F4F5F6F7 F8F9FAFB FCFDFEFF 0123456789...... ................
* Hexcess2 by SimoTime, Program-is-ENDING...

Table of Contents Previous Section Next Section Ancillary Functions

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.

Table of Contents Previous Section Next Section Non-Executable Load Members

The following sections describe how to generate and review the non-executable load members.

Table of Contents Previous Section Next Section Generate Multiple Load Members

The following CMD file (ASMOTEST.cmd) provides a method for generating multiple non-executable load members.

@echo OFF
rem  * ************************************************************************
rem  *                 ASMOTEST.cmd - a Windows Command File                  *
rem  *             This job is provided by SimoTime Technologies              *
rem  *              (C) Copyright 1987-2017 All Rights Reserved               *
rem  *                Web Site URL:   http://www.simotime.com                 *
rem  *                      e-mail:   helpdesk@simotime.com                   *
rem  * ************************************************************************
rem  *
rem  * Text   - Execute the three (3) Installation Verification Programs
rem  * Author - SimoTime Technologies
rem  * Date   - January 24, 1996
rem  *
     call SimoNOTE "*******************************************************ASMOTEST"
     call SimoNOTE "Starting CmdName ASMOTEST, V11.11.02, User is %USERNAME%"
     call SimoNOTE "Generate a non-Executable Load Member for TABLE001"
     call ASMOIVPS TABLE001 nopause
     call SimoNOTE "Generate a non-Executable Load Member for TABLE002"
     call ASMOIVPS TABLE002 nopause
     call SimoNOTE "Generate a non-Executable Load Member for TABLE003"
     call ASMOIVPS TABLE003 nopause
     call SimoNOTE "Finished CmdName ASMOTEST, V11.11.02, User is %USERNAME%"
     pause

Note: This CMD file will call the ASMOIVPS.cmd file to generate the individual members.

Table of Contents Previous Section Next Section Generate a Single Load Member

The following callable CMD file (ASMOIVPS.cmd) provides a method for generating a single non-executable load member.

@echo OFF
rem  * ************************************************************************
rem  *                 ASMOIVPS.cmd - a Windows Command File                  *
rem  *             This job is provided by SimoTime Technologies              *
rem  *              (C) Copyright 1987-2017 All Rights Reserved               *
rem  *                Web Site URL:   http://www.simotime.com                 *
rem  *                      e-mail:   helpdesk@simotime.com                   *
rem  * ************************************************************************
rem  *
rem  * Text   - An Installation Verification Program (IVP) for ASMOGENR
rem  * Author - SimoTime Technologies
rem  * Date   - January 24, 1996
rem  *
rem  * This job describes the basic functionality of ASMOGENR. It creates a
rem  * non-executable load member using an assembler member containing DC
rem  * statements. The input member is passed via the first Parameter.
rem  *
rem  * The job will read one (1) file and create two (2) Files.
rem  * 1. The 1st file that will be read is a line sequential (LSEQ)
rem  *    file containing mainframe assembler source code that defines
rem  *    table or data structures using the Define Constant (or DC)
rem  *    opcode of the assembler language.
rem  * 2. The 2nd file will be created using Byte-Stream I/O. This file
rem  *    will be a non-executable member that may be loaded in the
rem  *    online environment using an EXEC CICS LOAD.
rem  * 3. The 3rd file is a listing file produced as a result of the
rem  *    generation process.
rem  *
rem  * This suite of programs will execute on a Personal Computer with
rem  * Windows and Micro Focus Net Express 5.0 or later.
rem  *
rem  *                     ************
rem  *                     * ASMOIVPS *
rem  *                     ********cmd*
rem  *                          *
rem  *                     ************
rem  *                     * ASMOSET1 *
rem  *                     ********cmd*
rem  *                          *
rem  *    ************     ************     ************
rem  *    * ASMOTAKE *-----* ASMOGENR *-----*  SYSOUT  *
rem  *    *******lseq*     ************  *  ************
rem  *                          *        *
rem  *                          *        *  ************
rem  *                          *        *--* ASMOMAKE *
rem  *                          *        *  *******bsio*
rem  *                          *        *
rem  *                          *        *  ************
rem  *                          *        *--* ASMOLIST *
rem  *                          *           *******lseq*
rem  *                          *
rem  *                     ************
rem  *                     *   EOJ    *
rem  *                     ********cbl*
rem  *
rem  * *******************************************************************
rem  * Step 1, Delete any previously created file...
rem  *
     set CmdName=ASMOIVPS
     set JobStatus=0000
     call ASMOSET1 %CmdName%
     if "%SYSLOG%" == "" set syslog=c:\SimoLIBR\LOGS\SimoTime.LOG
rem  *
     call SimoNOTE "*******************************************************%CmdName%"
     call SimoNOTE "Starting CmdName %CmdName%, V09.03.25, User is %USERNAME%"
     if "%1" == "" set JobStatus=0010
     if not %JobStatus% == 0000 goto :EojNok
     call SimoNOTE "StepInfo Delete previously created files"
     set MemName=%1
     set ASMOFORM=ASC
     set ASMOLIST=%BaseLib1%\DataWrk1\%MemName%.LST
     set ASMOMAKE=%BaseLib1%\DataWrk1\%MemName%.MOD
     set ASMOTAKE=%BaseLib1%\%MemName%.MLC
     if exist %ASMOMAKE% del %ASMOMAKE%
rem  *
rem  * *******************************************************************
rem  * Step 2, Read Assembler Source Member, create a new .MOD file...
rem  *
     call SimoNOTE "StepInfo Create the non-executable member"
     call SimoNOTE "ASMOMAKE is %ASMOMAKE%"
     run ASMOGENR
rem  *     goto Jump01
     if not ERRORLEVEL = 0 set JobStatus=0020
     if not %JobStatus% == 0000 goto :EojNok
rem  *
     if exist %ASMOMAKE% goto :Jump01
     set JobStatus=0030
     goto :EojNok
:Jump01
     call SimoNOTE "DataTake %ASMOTAKE%"
     call SimoNOTE "DataMake %ASMOMAKE%"
     call SimoNOTE "DataLIST %ASMOLIST%"
:EojAok
     call SimoNOTE "Finished CmdName %CmdName%, Job Status is %JobStatus% "
     goto :End
:EojNok
     if %JobStatus% == 0010 call SimoNOTE "Parameter 1 must be a source member name"
     call SimoNOTE "ABENDING CmdName %CmdName%, Job Status is %JobStatus% "
:End
     if not "%2" == "nopause" pause

Note: This CMD file will be called by the ASMOTEST.cmd file to generate the individual members.

Table of Contents Previous Section Next Section Set Environment Variables

The environment variables are divided into two groups or categories. The first group is a set of environment variables used to set system or global variables used by a number of applications or processing tasks. The second group is a set of environment variables used by a specific job or task. The following two sub-sections describe these two groups of environment variables.

Table of Contents Previous Section Next Section CMD File, Common Environment Variables

A following command file (ENV1BASE.cmd) is called from other command files to set commonly used environment variables. This provides a single point of definition.

@echo OFF
rem  * *******************************************************************
rem  *               ENV1BASE.cmd - a Windows Command File               *
rem  *        This program is provided by SimoTime Technologies          *
rem  *           (C) Copyright 1987-2017 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 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
     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  *
rem  * Set the Environment for the Java Environment...
     set JAVABASE=C:\Program Files (x86)\Java\jdk1.8.0_112
     set JAVASDK="%JAVABASE%\bin"
     set JAVA_HOME=%JAVABASE%
     set JRE_HOME=%JAVABASE%
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
     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  *
     set MAINFRAME_FLOATING_POINT=true
     set COBIDY=%BASEAPP%\COBIDY
     set COBPATH=.;%BASEAPP%\LOADLIB;%BASESYS%\LOADLIB;%SimoLIBR%
     set LIBPATH=.;%BASEAPP%\LOADLIB;%BASESYS%\LOADLIB;%SimoLIBR%
     set TXDIR=%BASESYS%\LOADLIB;%MIFOBASE%
     set CobCpy=%BASEAPP%\CobCpy1;%BASEAPP%\CobCpy2;%BASEAPP%\CobCpy6;%SimoLIBR%
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;%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 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
     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%\mfcobol.jar
rem  *
     set JobStatus=0000
     call SimoNOTE "* Settings CmdName ENV1BASE.cmd, Version 14.03.28, %MIFOSYS1%"
     call SimoNOTE "* BaseAPP ..... %BASEAPP%"
rem *      call SimoNOTE "* MFBSIDIR .... %MFBSI_DIR% "
     call SimoNOTE "* MIFOSYS1 is %MIFOSYS1% "
     call SimoNOTE "* MIFOBASE is %MIFOBASE% "
     call SimoNOTE "* SIMOLIBR is %SIMOLIBR% "

Table of Contents Previous Section Next Section Environment Variables, Map File Names

The ASMOGENR program uses five (5) environment variables to identify the encoding schema (i.e. ASCII or EBCDIC) and map the ASMOGENR program file names to physical PC file names.

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 an 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
ASMOVARY SET ASMOVARY=NNNNNNNN/NNNNNNNN
The first eight bytes are behavior flags that are used to enable or disable pre-defined program functions. The ninth byte must be a slash character. The remaining eight bytes are used to set trace functions or other diagnostic capabilities.
SYSOUT Name of the file to contain SYSOUT information
  Environment Variables supported by ASMOGENR

 

Note:  The ASMOVARY Behavior and diagnostic flags are reserved for use by SimoTime Enterprises.

Table of Contents Previous Section Next Section Log and Display Information

The following callable CMD file (SIMONOTE.cmd) provides a consistent method to display job information to the console and write the information to a log file with a date and time stamp.

@echo OFF
rem  * *******************************************************************
rem  *               SIMONOTE.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    - 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 Produce a Hex-Dump

To produce the dump of the non-executable member the SIMOZAPS utility program is used. This utility program is part of the enterprise package provided by SimoTime Enterprises. The following two (2) CMD files describe how to used the SIMOZAPS utility program.

Table of Contents Previous Section Next Section Multiple Non-Executable Load Members

The following callable CMD file (ASMOPEEK.cmd) provides a method for dumping the contents of multiple non-executable load members to multiple text files in hexadecimal format.

@echo OFF
rem  * ************************************************************************
rem  *                 ASMOPEEK.cmd - a Windows Command File                  *
rem  *             This job is provided by SimoTime Technologies              *
rem  *              (C) Copyright 1987-2017 All Rights Reserved               *
rem  *                Web Site URL:   http://www.simotime.com                 *
rem  *                      e-mail:   helpdesk@simotime.com                   *
rem  * ************************************************************************
rem  *
rem  * Text   - Dump the contents of the three (3) Non-Executable Load members.
rem  * Author - SimoTime Technologies
rem  * Date   - January 24, 1996
rem  *
     call SimoNOTE "*******************************************************ASMOTEST"
     call SimoNOTE "Starting CmdName ASMOPEEK, V11.11.02, User is %USERNAME%"
     call SimoNOTE "Generate Hexadecimal DUMP of TABLE001.MOD"
     call ASMODUMP TABLE001 nopause
     call SimoNOTE "Generate Hexadecimal DUMP of TABLE002.MOD"
     call ASMODUMP TABLE002 nopause
     call SimoNOTE "Generate Hexadecimal DUMP of TABLE003.MOD"
     call ASMODUMP TABLE003 nopause
     pause

Note: This CMD file will call the ASMODUMP.cmd file to dump the individual members.

Table of Contents Previous Section Next Section Single Non-Executable Load Member

The following callable CMD file (ASMODUMP.cmd) provides a method for dumping the contents of a single non-executable load member to a single text file in hexadecimal format.

@echo OFF
rem  * ************************************************************************
rem  *                 ASMODUMP.cmd - a Windows Command File                  *
rem  *             This job is provided by SimoTime Technologies              *
rem  *              (C) Copyright 1987-2017 All Rights Reserved               *
rem  *                Web Site URL:   http://www.simotime.com                 *
rem  *                      e-mail:   helpdesk@simotime.com                   *
rem  * ************************************************************************
rem  *
rem  * Text   - Read a .MOD File and create a Hexadecimal Dump File
rem  * Author - SimoTime Technologies
rem  * Date   - January 24, 1996
rem  *
rem  * The job will read one (1) file and create two (2) Files.
rem  * 1. The 1st file that will be read is a line sequential (LSEQ)
rem  *    file containing mainframe assembler source code that defines
rem  *    table or data structures using the Define Constant (or DC)
rem  *    opcode of the assembler language.
rem  * 2. The 2nd file will be created using Byte-Stream I/) (BSIO)
rem  *    will be a non-executable member that may be loaded in the
rem  *    online environment using an EXEC CICS LOAD.
rem  * 3. The 3rd file is a listing file produced as a result of the
rem  *    generation process.
rem  *
rem  * This suite of programs will execute on a Personal Computer with
rem  * Windows and Micro Focus Net Express 5.1 or later.
rem  *
rem  *                     ************
rem  *                     * ASMODUMP *
rem  *                     ********cmd*
rem  *                          *
rem  *                          *
rem  *    ************     ************     ************
rem  *    * MODSFILE *-----* ASMOGENR *-----*  SYSOUT  *
rem  *    *******bsio*     ************  *  ************
rem  *                          *        *
rem  *                          *        *  ************
rem  *                          *        *--* DUMPFILE *
rem  *                          *           *******lseq*
rem  *                          *
rem  *                     ************
rem  *                     *   EOJ    *
rem  *                     ********cbl*
rem  *
rem  * Note: The DUMPFILE is the SYSLOG file.
rem  *
rem  * *******************************************************************
rem  * Step 1, Delete any previously created file...
rem  *
     set TskName=ASMODUMP
     set JobStatus=0000
     call ASMOSET1 %TskName%
     if "%SYSLOG%" == "" set syslog=c:\SimoLIBR\LOGS\SimoTime.LOG
rem  *
     call SimoNOTE "*******************************************************%TskName%"
     call SimoNOTE "Starting TskName %TskName%, V09.03.25, User is %USERNAME%"
     if "%1" == "" set JobStatus=0010
     if not %JobStatus% == 0000 goto :EojNok
     call SimoNOTE "StepInfo Delete previously created files"
     set MemName=%1
     set MODSFILE=%BaseLib1%\Data\Wrk1\%MemName%.MOD
rem  *
rem  * *******************************************************************
rem  * Step 1, Read .MOD File, write Line Sequential Hex-Dump File.
rem  *
     call SimoNOTE "StepInfo Create Hex Dump File of .MOD file"
     set SYSLOG=%BaseLib1%\Data\Wrk1\%MemName%.DMP
     if exist %SYSLOG% del %SYSLOG%
     run SimoZAPS Hexcess %MODSFILE% start=1 stop=9999999
     if not ERRORLEVEL = 0 set JobStatus=0040
     if not %JobStatus% == 0000 goto :EojNok
     call SimoNOTE "MODSFILE %MODSFILE%"
     call SimoNOTE "DUMPFILE %SYSLOG%"
:EojAok
     call SimoNOTE "Finished JobName %TskName%, Job Status is %JobStatus% "
     goto :End
:EojNok
     if %JobStatus% == 0010 call SimoNOTE "Parameter 1 must be a source member name"
     call SimoNOTE "ABENDING JobName %TskName%, Job Status is %JobStatus% "
:End
     if not "%2" == "nopause" pause

Note: This CMD file is called by ASMOPEEK.cmd

Table of Contents Previous Section Next Section Possibilities and Considerations

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 Control Section, this should be a simply statement with a label in position 1.
EQU Equate, this should be a simple statement with an operand. It usually has a label in position 1.
DC 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 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.
  Statements and Operation Codes (or OPCODES) supported by ASMOGENR

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

Table of Contents Previous Section Next Section Build non-executable Members

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

Table of Contents Previous Section Next Section Guidelines, Assembler Source Member

For the ZOS environment a mainframe assembler (HLASM) 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.
  Format Guidelines for Assembler Source Statements

Table of Contents Previous Section Next Section Summary

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.

In the world of programming there are many ways to solve a problem. This document and the links to other documents are intended to provide a greater awareness of the Data Management and Application Processing alternatives.

The 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 send an e-mail to: helpdesk@simotime.com or call 415 883-6565. We appreciate hearing from you.

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 Assembler Alternatives for a COBOL-Oriented Application Migration with some assembler programs. The target platform may be Linux, UNIX or Windows with Micro Focus Enterprise Server.

Link to Internet   Link to Server   Explore the Assembler Connection for more examples of mainframe Assembler programming techniques and sample code.

Link to Internet   Link to Server   Explore the COBOL Connection for more examples of COBOL programming techniques and sample code.

Link to Internet   Link to Server   Explore an Extended List of Software Technologies that are available for review and evaluation. The software technologies (or Z-Packs) provide individual programming examples, documentation and test data files in a single package. The Z-Packs are usually in zip format to reduce the amount of time to download.

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

Additional information about acquiring this softare may be obtained from the  Product Availability and Pricing  document.

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 and services available from Micro Focus. This link requires 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 Comments or Feedback

This document was created and is copyrighted and maintained by SimoTime Technologies.

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

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 or need assistance with converting non-relational data structures simply give us a call at 415 883-6565 or check the web site at http://www.simotime.com


Return-to-Top
Assembler to MOD File, Non-Executable Load Member for Micro Focus
Copyright © 1987-2017
SimoTime Technologies and Services
All Rights Reserved
When technology complements business
http://www.simotime.com