> -----Original Message-----
> From: IBM Mainframe Discussion List 
> [mailto:[EMAIL PROTECTED] On Behalf Of Flint, Mike
> Sent: Thursday, May 31, 2007 7:38 AM
> To: [email protected]
> Subject: Cross-assembler : HLASM --> 8086
> 
> 
> Hi,
> 
> Does anyone know of a product that will take HLASM source and 
> produce object or executables for the wintel platform?
> 
> I'm aware of tachyon and dignus (even pc370!) which can take 
> HLASM, assemble/link, and emulate the execution on wintel, 
> but I want native '8086' (or whatever it's called) output (I 
> guess that source or object output would be okay).
> 
> The code is 'pure' HLASM (number-crunching, not accessing any 
> MVS services), so it shouldn't need to handle many 
> environment issues (other than passing parameters in, and 
> getting the response out).
> 
> Thanks in advance,
> Mike Flint,
> Systems Consultant,
> Experian.

I've never heard of such a thing. I can imagine it, but the performance
would likely be terrible due to the mismatch between the System z
architecture and the ia86 architecture (oh, and do you want 32 bit or 64
bit on the Intel side?). And, of course, there is definately going to be
emulation for some things which the ia86 architecture does not support,
such a HFP (legacy mode floating point) and packed decimal. 

The company I work for (previous management team) had decided to
eliminate the System z for an "all MS Windows" environment. Supposedly,
there is a company, UNICOM, which said that they could source convert
all our z/OS source, including assembler, to something executable under
Windows. We never got that far. You might want to ask them. They did
indicate that they would do the conversion, but the source would be
given to us to maintain.

http://www.unicomsi.com/

You probably realise this, but I will state it anyway. IMO, it would be
better to look at each assembler program, abstract what it does, what
its input and outputs are, then rewrite it in another language (ia86
assembler or maybe C).

Another possibility is to modify your source code so that each
instruction begins with a unique character, such as @. Then, create a
series of HLASM macros with those names. The HLASM macro simply uses
PUNCH to create the ia86 assembler output.

eg. instead of something like:

        L       R1,VALUE
        AHI     R1,1
        ST      R1,VALUE

changes to:

        @L      R1,VALUE
        @AHI    R1,1
        @ST     R1,VALUE

You then create the @L, @AHI, and @ST macros (not included) which will
PUNCH the appropriate ia86 instructions to do something similar. I hope
your code doesn't use truly weird instructions such as UPT. But, if it
does, you can get a good idea of what they actually do by reading the
Hercules/390 source code. I've actually looked at it to try to
understand some instructions that were unclear to me in the POPS.



--
John McKown
Senior Systems Programmer
HealthMarkets
Keeping the Promise of Affordable Coverage
Administrative Services Group
Information Technology

The information contained in this e-mail message may be privileged
and/or confidential.  It is for intended addressee(s) only.  If you are
not the intended recipient, you are hereby notified that any disclosure,
reproduction, distribution or other use of this communication is
strictly prohibited and could, in certain circumstances, be a criminal
offense.  If you have received this e-mail in error, please notify the
sender by reply and delete this message without copying or disclosing
it. 

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to