Monday, December 25, 2006

z390 Supports new Decimal Floating Point (DFP) instructions

The latest PTF update v1.2.00f for the z390 portable mainframe assembler now includes support for 57 new Decimal Floating Point (DFP) instructions. The z390 macro assembler now supports 3 new data types: ED for 7 digits, DD for 16 digits, and LD for 34 digits. These new instructions and data formats plus the z390 extended macros (CTD and CFD) for conversion to and from decimal scientific notation, enable assembler programs to perform decimal arithmetic with the same precision and ease as Excel without those annoying rounding errors that creep in when using hex HFP or binary BFP floating point. For example, the addition of 1.1 + 2.2 equals exactly 3.3 when using the new DFP instructions where as the result is 3.30......03 when using HFP or BFP due to the inexact conversion between base 10 and base 2. The PTF open source for z390 includes the emulator code for these new instructions plus new regression test TESTDFP1.MLC with examples of each instruction.

Friday, November 17, 2006

z390 v1.2 now running on Linux as well as Windows

With the release of z390 v1.2 there is now support for running z390 GUI and command line interfaces on Linux as well as Windows XP or 2000. Visit for more details.

z390 version 1.2 also has new macro pseudo code generator for 300% improvment in macro intensive macro assembly processing. The macro pseudo code support also includes new
detail TRACEP option which shows value of every macro variable used in AIF, SETA, SETB, and SETC statements executed.

Don Higgins

Saturday, July 08, 2006

z390 Release 1.1.01 increases MIPS demo speed by 50%

On July 7, 2006 the site published version 1.1.01 which has a significant performace improvement for the open source z390 J2SE Java runtime emulator which increased the speed of the MIPS calculation demo by over 50%. The speed increase was achieved by tuning the pz390 emulator code to use 4 smaller table switches to index opcodes instead of one 256 entry switch table for the primary opcode. A new version of the z390 instruction speed caculation contributed by Melvyn Maltz was also published so you can see individual z processor instruction speeds for z390 along with comparison to earlier base line speeds:

Monday, July 03, 2006 now has 3 demos in HLASM, HLA, C++, COBOL, and Java

The site now has 3 demos in HLASM, HLA, C++, COBOL, and Java which you can download, compile, and execute using free compilers and runtimes available for Windows 2000 and XP in InstallShield format. The demos currently include:

1. HELLO - Display "Hello World"

All 5 source versions only require 4-5 lines of souce code.

2. POWERS - Display powers of 2 from 0 to 31

All 5 demos use structured programming support to perform a loop which calculates and displays each power. The souce code sizes range from 9 lines for C++ to 23 lines for z390 mainframe assembler which does its own packed decimal text formatting for WTO.

3. MIPS - Calculate MIPS rating for simple loop decrementing 32 bit integer until 0

All 5 demos use structured programming support to perform a loop which decrements 32 bit integer until 0 and uses the difference in starting time versus ending time to calculate approximate millions of instructions per second. The lines of source code range from 28 for C++ to 70 for COBOL which required time and date record layouts. The initial results using a Dell 3.05 GHZ Pentium 4 processor running Windows XP are quite revealing:

1. z390 - 0.9 MIPS (This is the slowest due to overhead of mainframe instruction emulation written in Java which compiles to portable virtual machine code.)

2. HLA - 5840 MIPS (I'm amazed that HLA generated ASM code optimized to take maximum advantage of the Pentium 4 hardward pipelining can perform up to 2 instructions per clock cycle. HLA is definitely the language to use for optimizing code speed on Intel hardware.)

3. C++ - 776 MIPS (The ASM code generated by the Visual C++ Express compiler performs 6 instructions with 3 memory fetches resulting in the slower but still impressive MIP rating).

4. COBOL - 68 MIPS (The ASM code generated by the COBOL compiler performs 22 instructions per loop to convert BigIndian integer field in memory to Little Indian format in memory work area to perform decrement and then converts again to store and fetch for compare to zero resulting in the slower speed.)

5. Java - 1430 MIPS (The J2SE Java compiler generated a 4 instruction Java Virtual Macine loop and the J2SE runtime optimized its execution to out perform C++ by almost 2 to 1 which is very impressive).

Now I'm highly motivated to do further research on how to improve the z390 emulation performance and hope to include some initial improvements in the next z390 v1.1.01 release. However even 0.9 MIPS for mainframe execution on your Windows desktop is not bad. Some may remember that PC/370 started at 25,000 instructions per second on a 4 MHZ z80 chip and that was fast enough of a lot of I/O bound applications.

Wednesday, June 07, 2006 mainframe assembler, MASM, C++, COBOL, and Java comparisons

Mainframe assembler developers as well as other developers may find and its discussion group useful as it has a growing collection of coding examples in z390 mainframe assembler, MASM Intel assembler, C++, COBOL, and Java. The first example is a Hello World program in each language along with help information to download and install free software to run each example on Windows 2000 or XP.

Don Higgins

Thursday, April 20, 2006

z390 Enhancments - STIMER, Shared Routines

Now that PTF v1.0.14a is published, I'm back working on the next set of enhancement requests including expanding STIMER support.

Another enhancement I would like to start working on is a shared subroutine library and a shared link library with common executable utilities. A few planned entries include common conversions such as floating point to scientific notation for printing, time of day displays, etc. Suggestions for additions to both are welcome.

Don Higgins
z390 Assembler and Emulator

Saturday, April 15, 2006

Can I port a mainframe assembler application to Windows?

Yes you can provided the application does not require functions not yet available using z390. With each new release of z390, larger and larger applications are being assembled and tested. An application written for TSO using TGET, TPUT full screen TN3270 plus QSAM, BSAM, or BDAM file IO should port with few or no changes. For a sample application see regression test program DEMOGUI6.MLC included with z390.

Assembler programs that are part of larger applications requiring other subsystems such as CICS or DB2 can be assembled and unit tested using test versions of interface macros.

If you have a small test case you would like to see converted and tested contact me.

Don Higgins

z390 Assembler and Emulator

Friday, April 14, 2006

z390 Assembler and Emulator

Welcome to the z390 Assembler and Emulator Blog. z390 v1.0.14 was published Thursday April 13, 2006 for free download and install on Windows XP or 2000 using Installshield. Be sure you also have version 1.5.0 update 6 of the Sun Microsystems J2SE Java Runtime installed. You can post questions and comments on this blog. You can also join z390 User Group or post fix and enhancements via the support form on the website.

Don Higgins
z390 Assembler and Emulator