Re: IBMs first tape drive turns 60 (makes you feel old!)
All It reminds me of when I saw my first tape sort running on what I think were IBM 729 drives at Florida Power around 1970. I knew I had to learn how that worked. And now there is an open source sort merge utility included with z390. It is written in structured mainframe macro assembler and runs on Windows, Linux, and Apple OSX using J2SE 6.0+ host. But it is just no fun to watch anymore as it uses hard drive work areas! Don Higgins d...@higgins.net www.z390.org -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN
Re: Macro Assembler Question
Here short example of how to use conditional macro assembler to handle an arbitary number of macro parameters of the form X=Y where X is the variable name without and Y is the character value. The technique is to omit the variable names from the explicit keyword parameters for the macro and then process all the positional parms to find the ones of the form X=Y. The technigue also uses created macro variables support of of the form (...) to create the macro variables from the positional parms. Here is z390 source assembler TESTPN.MLC assembled with command ASM TESTPN: MACRO TESTPN :I SETA 1 AWHILE (I LE N'SYSLIST) :PNV SETC 'SYSLIST(I)' :J SETA ('PNV' FIND '=') AIF (J GT 0) :PN SETC 'PNV'(1,J-1) :PV SETC 'PNV'(J+1,*) :(PN) SETC 'PV' AEND :I SETA I+1 AEND MNOTE 'P1=P1' MNOTE 'P10=P10' MNOTE 'P1000=P1000' MEND TESTPN P1=V1,P10=V10,P1000=V1000 END Here is the z390 TESTPN.PRN output assembler listing for the avove source code: 00(1/1)1 MACRO 00(1/2)2 TESTPN 00(1/3)3 I SETA 1 00(1/4)4 .AWH_1_T ANOP 00(1/4)5 AIF (NOT(I LE N'SYSLIST)).AWH_1_E 00(1/5)6 PNV SETC 'SYSLIST(I)' 00(1/6)7 J SETA ('PNV' FIND '=') 00(1/7)8 AIF (NOT(J GT 0)).AIF_1_1 00(1/8)9 PN SETC 'PNV'(1,J-1) 00 (1/9)10 PV SETC 'PNV'(J+1,*) 00 (1/10)11 (PN) SETC 'PV' 00 (1/11)12 .AIF_1_1 ANOP 00 (1/12)13 I SETA I+1 00 (1/13)14 AGO .AWH_1_T 00 (1/13)15 .AWH_1_E ANOP 00 (1/14)16 MNOTE 'P1=P1' 00 (1/15)17 MNOTE 'P10=P10' 00 (1/16)18 MNOTE 'P1000=P1000' 00 (1/17)19 MEND 00 (1/18)20 TESTPN P1=V1,P10=V10,P1000=V1000 00 (1/14)21+ MNOTE 'P1=V1' 00 (1/15)22+ MNOTE 'P10=V10' 00 (1/16)23+ MNOTE 'P1000=V1000' 00 (1/19)25 END Note the z390 structured conditional macro assembler code used to make the example more readable is expanded into standard HLASM macro assembler which is listed as inline macro in the output. Hope this helps. This discussion probably does belong on the ASM390 list. Don Higgins d...@higgins.net -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN
Re: Grace Hopper Stories!! (was RE: Pre-Friday fun: Halon dumps and POK Resets)
Your question brings back fond memories. I once was president of the Tampa Bay Florida Chapter of Association of Computing Machinery and my wife Charlotte and I picked up Grace Hopper at the Tampa airport and brought her to the dinner meeting to speak. She did talk about the nano-second wire but more importantly talked about the need for industry standard languages such as COBOL and standard communications protocols such as TCP/IP and HTML which evolved out of the DARPA military network. Hopper was a leader with vision: http://en.wikipedia.org/wiki/Grace_Hopper -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN
Re: Facebook for professional usage (was Re: Recent maintenance for z/XDC)
Martin, all I am pleased to hear that IBM is embracing social networks including Facebook, LinkedIn, and Twitter. Companies that want to connect with their customers and attract bright young college grads need to get onboard. College grads today assume everyone is on Facebook. When asked they will tell you that it is better than email because it supports multiple channels of communication with multi-media including not only text but also pictures, video, sound, etc. I joined Facebook in 2009 at the request of my daughters. It is a great way to get and stay in touch with family, friends, neighbors, work associates, customers, etc. All you need to give Facebook is an email to verify plus a password. You can change settings to turn off as much of the email notifications as you want. I get a lot more email scam posts per week than I do Facebook scam posts. You can choose how much you want to share and with whom you share it. I usally update my own status only once a week or so, I share events I think other friends and associates might be interested like a new www.z390.org release or Rotary or family event. I scan wall postings from friends once a day and make a few comments if appropriate, and that is part of the magic of Facebook where you get to know friends better. At least 600 million people think so. You can find me here: http://www.facebook.com/don.higgins This week I returned from Rotary International convention in New Orleans where one of the highlights was a speech by Bill Gates on the eradication of polio. Bill has made that the number one priority of his foundation and has contributed over $350 million dollars to it. Rotary has contribled over a billion dollars and we are now down to a few hundred remaining cases on only 4 countries in the world. Rotary and its 1.2 million business leaders have adopted social networks and a useful tool for building friendships and promoting service above self. You can find more on Bill Gates talk here: www.rotary.org/en/MediaAndNews/News/Pages/110524_IC11_plenthree.aspx And you can find over 120,000 fans of Rotary International here on Facebook: http://www.facebook.com/rotary Don Higgins d...@higgins.net -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Hercules, friend or foe?
All Another tool you might consider is the z390 Portable Mainframe Assembler which is open source and runs on Windows and Linux. It provides an HLASM compatible mainframe assembler, linker, and emulator including problem state support for 64 bit registers, HFP, BFP, DFP, BSAM, QSAM, and VSAM. It also includes a zCOBOL compiler that generates HLASM source code with data labels and paragraph labels and supports HFP, BFP, and DFP. It also includes zCICS transaction processor that runs on any TCP/IP network with local and remote TN3270 terminals. The entire package is written in J2SE Java which is open source and does not require any other software. Visit www.z390.org to learn more and download InstallShield executable for Windows for all of the above including GUI and command line interfaces. There is also file image download for Linux installs. Don Higgins d...@higgins.net -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Floating point assembler code
All Here is another alternative for coding and testing all 3 flavors of IBM mainframe floating point including HFP, BFP, and DFP. The free open source zcobol compiler written in structured z390 portable mainframe assembler supports all the floating point formats using the latest COBOL draft standard for defining each of the 9 different floating point types in the data division. In the procedure division you can code compute statements to perform any floating point calculations you like mixing and matching any of the floating point types along with traditional data types. You can use if statements to test results, and you can use display statements to display results of compute statements. The zcobol compiler generates HLASM compatible assembler source code with data labels and paragraph labels so the generated code can be run using z390 emulator on Windows or Linux or you can take the generated assembler source to mainframe and assemble and execute it using HLASM. The zcobol code generator supports the latest z9, z10, and z196 instructions and uses the very powerful PFPO for conversions between floating point data types as required. When you download and install z390 via www.z390.org, it includes zcobol plus a number of demo and regression test programs such as the following: 1. z390\zcobol\test\TESTHFP1.CBL - test hex HFP data type calculations 2. z390\zcobol\test\TESTBFP1.CBL - test binary BFP data type calculations 3. z390\zcobol\test\TESTDFP1.CBL - test decimal DFP data type caculations Once z390 is installed on Windows or Linux, you can run zcobol demos with the command ZCRT390.BAT from GUI or command line. You can also run all the zcobol regression tests including the above 3 with the command ZCRTTEST.BAT. Note z390 v1.5.03 has new z196 instructions added, but the next release v1.5.04 will add some missing extended opcodes which are documented in SHARE presentation but are not in the latest POP. Don Higgins d...@higgins.net -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Retired
All Best wishes on retirement! Old habits are hard to break, but their are so many new and exciting opportunities to learn new skills. At 66 I've retired from 25 years at Florida Power and 9 years at Micro Focus rolling IBM mainframe assembler solutions. Now I still have consulting company and still enjoy supporting open source free z390 Portable Mainframe Assembler and Emulator that you can install on Windows or Linux so you can continue to roll HLASM compatible mainframe assembler. You don't ever want to forget those 1200+ opcodes including new z196 opcodes. G But I find myself spending more time on new exciting opportunities like reading WSJ on my Kindle any time anywhere, keeping up with family and friends on Facebook, LinkedIn, and Twitter social networks, enjoying new Rotarians On Social Networks Fellowship (ROSNF www.rosnf.net). I am blessed with 2 daughters and 4 grandchildren which I say YES to all the time. This week my granddaughter Lily showed me how to use new app to make cupcakes on her mom's iPhone. And my daughter showed me new iPhone app to identify all the stars and constalations by just pointing iPhone at region of night sky. It's really exciting to think about what my grandchildren will be doing with technology by the time they get to college. My first college computer course was FORTRAN using punched cards on an IBM 1410. When I got back my first compile and execution listing, I knew I had to learn what it all meant. Don Higgins d...@higgins.net www.don-higgins.net -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: ASSIST assembler language
John At the request of NIU, I added the ASSIST extended instructions to the z390 portable mainframe assembler and emulator which runs on Windows and Linux. There is online documentation summary of the ASSIST instructions added here: http://www.z390.org/z390_ASSIST_Support.htm The z390 package is open source written in J2SE Java for portability. The mainframe assembler support is designed to be HLASM compatible. z390 can be downloaded and installed using InstallShield for Windows 7, Vista, or XP. There is also flat file zip download for installation on Linux systems. I am planning to present another update on z390, zCOBOL, and zCICS support at the SHARE conference in Orlando, August 7-12, 2011. Don Higgins d...@higgins.net -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: History of Hard-coded Offsets
I think the first stored program computer was programmed in binary with hard coded offsets, and programmers have continued doing it ever since. There was a book called Psychology of Computer Programming that talked about Magic numbers which almost all programs have where the reader or maintenance programmer must study the context to try and determine the intent of the original programmer and then determine the side affects of any changes. Popular magic numbers include 0, 1, 10, 16, 72, 80, 100, 256, etc. One interesting story in the book was about researching why a file maintenace COBOL program has code like IF RECORD(43:1) = 'C' THEN MOVE '1' TO RECORD(43:1). This statement immediately followed read of 80 byte record. Upon further research with older staff members, it turns out there was an IBM 026 keypunch in the data entry department that had a sticky key in column 43 causing 1 to end up as A character. Rather than repunch hundreds of cards, the programmer called in to help resolve the file maintenance edit errors, decided the quick and dirty solution was to add the above statment to the file maintenace program. Quick and dirty programming is a good thing when it gets a required job with a fixed deadline done ontime. The bad part comes later when the dirty code is not adequately documented or simply thrown away. I've seen a lot of quick and dirty code that would have been a lot cheaper to throw away and rewrite in proper form with adequate documentation than to try and maintain over the years. Don Higgins d...@higgins.net -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: A good Mainframe(ZOS) oriented JAVA discussion group
Kenneth I would also be interested in any other z/OS Java discussion groups. The one group I can refer you to is the z...@yahoogroups.com here: http://tech.groups.yahoo.com/group/z390/ This group has over 400 IBM mainframe system programmers on it following evolution of z390 Portable Mainframe Assembler and Emulator which is written entirely in J2SE Java. It has been tested on Windows and Linux and requires J2SE runtime 1.6+. I am currently running it on J2SE 1.6.0_20 on both Windows Vista and Ubuntu LTS Linux. Most of the discussion is about HLASM and z/OS emulation support of services such as VSAM, CICS, DB2 etc, but occasionally we jump into discussions about the Java code in pz390.java which emulates all the problem state instructions in the POP manual. The mz390.java and az390.java macro assembler supports all the instructions in the POP including supervisor state instructions plus a set of commonly used MVS/zOS system service macros which map to z390 svc calls to java svc routines such as TIME, GETMAIN, FREEMAIN, OPEN, CLOSE, READ, WRITE, GET, PUT, etc. Don Higgins d...@higgins.net -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: 360 programs on a z/10
All ISAM was used at Florida Power for the customer master file before VSAM before DB2. Assembler subroutines were called by COBOL to access the file either sequentially or randomly and with or without update. The initial reason for using assembler was lack of variable length in COBOL initially, but it was a useful choice as it isolated the applicaiton from both software and hardware changes such as moving from data cell to pizza ovens etc. Interestingly the DB2 version implemented in 1995 used assembler compression/decompression to reduce network traffic by 50% Anyway I remember studying the channel programs used by ISAM and although they were designed to maximize I/O speed, they were severely hampered by the lack of VSAM CA/CI indexing which resulted in exceedly long sequential chains of overflow records which could runs for hours if the file was not unloaded and reloaded to restore evenly distributed overflow track space. Don Higgins d...@higgins.net -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Antwort: How to access FIELDS in a RECORD using Java? (was:RE: How do __you__ read non-DB non-XML files in Java?)
I think the simplest answer to the question is that you can use the NIO random access file methods to read or write any file using 64 bit XRBA addressing with any length you want. Once you have read a block of data from a file such as an SMF record you can wrap the block in a buffer and then use methods to retrieve any particular field you want addressed by offset and field type such as byte, short, integer, long, BFP floating point, text string, etc. For lots of examples including emulation of QSAM, BSAM, BDAM, and VSAM file access you can check out open source z390 HLASM compatible assembler, linker, and emulator written entirely in J2SE Java on www.z390.org. All the VSAM java code is in vz390.java source module and all the other access method code is in sz390.java. You will find code that maps DCB's and ACB's and fetches byte flags, full word addresses, and text fields for DDNAME's etc. For more examples of heavy duty field manipulation on data fetched from load module file (executable z9/z10 mainframe instructions) and memory data fields see pz390.java which handles all the instructions including HFP, BFP, and DFP short, long, and extended among other things. Once you download and install z390 v1.5.01 using InstallShield for Windows or flat file zip for Linux, you will find all the java sources including the above in the z390\src directory. The executable class files are all included in z390.jar which can be invoked from GUI or command line. For example you can assemble, link, and execute simple WTO 'Hello World' demo with the command: asmlg demo\DEMO which reads demo\DEMO.MLC and generates and executes demo\DEMO.390 with display of the WTO message on console and on the log file demo.DEMO.LOG. There are also lots of file access regression tests included in the optional RT.ZIP download file. Another example is the z390 \linklib\REPRO.MLC utility to load and unload VSAM ESDS, RRDS, or KSDS files. Don Higgins d...@higgins.net -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: COBOL is an obvious cash cow to be milked to death was Re: Does Ent. COBOL 4.1 generate 64-bit binary arithmetic
Tom If you and your IBM management really believe COBOL is the language of the future, it seems to me that your development and support team, needs to find a way to allocate some finite portion of your available resources to constantly work on making your COBOL compiler more efficient using latest available technology. If you advertised at SHARE what you have done with those resrouces and that you are constantly working on performance improvement as well as functional improvement. Then I think you would get more feedback on what the performance improvement priorities are, and the cash cow perspective would deminish. It is easy to allow new function development to soak up 100% of the resouces and it may maximize current earnings, but over time I believe that approach will have negative long term effects. Don Higgins d...@higgins.net -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Does Ent. COBOL 4.1 generate 64-bit binary arithmetic instructions?
Here is example of what is possible as far as generating 64 z9/z10 instructions, extended HFP, BFP, and DFP floating point, and 31 digit packed and zoned decimal. With NOTRUNC, a 64 bit add for 1 byte literals can be done with single AGSI instruction as shown below. The use of 64 bit arithmetic instructions is a separate issue from 64 bit addressing. The example below was run in 31 bit address mode. The following COBOL program was compiled using open source zcobol compiler which generates HLASM source assembler with labels. Then the zcobol source execution trace was run to show both the instruction operand hex values and the corresponding source code: IDENTIFICATION DIVISION. PROGRAM-ID.TESTZC1. AUTHOR.DON HIGGINS. ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 77 INT64 PIC S9(18) COMP VALUE 123456789012345678 77 INT128 PIC S9(39) COMP VALUE 123456789012345678901234567890123456789. 77 HFP-EXT FLOAT-HEX-30 VALUE 123456789012345678901234567890. 77 BFP-EXT FLOAT-BINARY-34 VALUE 12345678901234567890123456789012301234. 77 DFP-EXT FLOAT-DECIMAL-34 VALUE 12345678901234567890123456789012301234. 77 PD31COMP-3 PIC S9(31) VALUE 1234567890123456789012345678901. 77 ZD31 PIC S9(31) VALUE 1234567890123456789012345678901. PROCEDURE DIVISION. ADD 1 TO INT64 ADD 1 TO INT128 ADD 1 TO HFP-EXT ADD 1 TO BFP-EXT ADD 1 TO DFP-EXT ADD 1 TO PD31 ADD 1 TO ZD31 STOP RUN. Here is the resulting ZPARTRS source execution trace: CBL=TESTZC1PROCEDURE DIVISION ; ADD 1,TO,INT64 800FFDAC 2 EB01D058007A AGSI S2(000FFF28)=01B69B4BA630F34E I2=01 TESTZC1 DC TESTZC1 AGSI INT64,1 CBL=TESTZC1 23 ADD 1,TO,INT128 800FFDB2 2 EB01D064 LMG R0=F4F4F4F40130 R1=F4F4F4F4000FFED0 S2(000FFF30)=5CE0E9A56015FEC5 TESTZC1 E2 LMG ZC_R0,ZC_R1,INT128 800FFDB8 2 C0E00068 LARL RE=800FFD48 S2(000FFE88) TESTZC1 E8 LARL ZC_R14,=FL16'1' 800FFDBE 2 E31E0008000A ALG R1=AADFA328AE398115 S2(000FFE90) =0001 TESTZC1 EE ALG ZC_R1,8(ZC_R14) 800FFDC4 1 E30E0088 ALCG R0=5CE0E9A56015FEC5 S2(000FFE88) = TESTZC1 F4 ALCG ZC_R0,0(ZC_R14) 800FFDCA 1 EB01D0600024 STMG R0=5CE0E9A56015FEC5 R1=AADFA328AE398116 S2(000FFF30)=5CE0E9A56015FEC5 TESTZC1 FA STMG ZC_R0,ZC_R1,INT128 CBL=TESTZC1 24 ADD 1,TO,HFP_EXT 800FFDD0 1 6800D070 LDF0=F4F4F4F4F4F4F4F4 S2(000FFF40) =5918EE90FF6C373E TESTZC1 000100 LDZC_F0,HFP_EXT 800FFDD4 1 6820D078 LDF2=F4F4F4F4F4F4F4F4 S2(000FFF48) =4B0EE4E3F0AD2000 TESTZC1 000104 LDZC_F2,8+HFP_EXT 800FFDD8 1 C0E00060 LARL RE=000FFE88 S2(000FFE98) TESTZC1 000108 LARL ZC_R14,=LH'1' 800FFDDE 1 681E LDF1=F4F4F4F4F4F4F4F4 S2(000FFE98) =4110 TESTZC1 00010E LDZC_F1,0(ZC_R14) 800FFDE2 1 683E0008 LDF3=F4F4F4F4F4F4F4F4 S2(000FFEA0) =3300 TESTZC1 000112 LDZC_F3,8(ZC_R14) 800FFDE6 1 3601 AXR F0=5918EE90FF6C373E F1=4110 TESTZC1 000116 AXR ZC_F0,ZC_F1 800FFDE8 2 6000D070 STD F0=5918EE90FF6C373E S2(000FFF40) =5918EE90FF6C373E TESTZC1 000118 STD ZC_F0,HFP_EXT 800FFDEC 2 6020D078 STD F2=4B0EE4E3F0AD3000 S2(000FFF48) =4B0EE4E3F0AD2000 TESTZC1 00011C STD ZC_F2,8+HFP_EXT CBL=TESTZC1 25 ADD 1,TO,BFP_EXT 800FFDF0 2 6800D080 LDF0=5918EE90FF6C373E S2(000FFF50) =407A29361EDE0046 TESTZC1 000120 LDZC_F0,BFP_EXT 800FFDF4 2 6820D088 LDF2=4B0EE4E3F0AD3000 S2(000FFF58) =627889320A1BC709 TESTZC1 000124 LDZC_F2,8+BFP_EXT 800FFDF8 2 C0E00058 LARL RE=000FFE98 S2(000FFEA8) TESTZC1 000128 LARL ZC_R14,=LB'1' 800FFDFE 2 681E LDF1=4110 S2(000FFEA8) =3FFF TESTZC1 00012E LDZC_F1,0(ZC_R14) 800FFE02 2 683E0008 LDF3=3300 S2(000FFEB0) = TESTZC1 000132 LDZC_F3,8(ZC_R14) 800FFE06 2 B34A0001 AXBR F0=407A29361EDE0046 F1=3FFF TESTZC1 000136 AXBR ZC_F0,ZC_F1 800FFE0A 2 6000D080 STD F0=407A29361EDE0046 S2(000FFF50) =407A29361EDE0046 TESTZC1 00013A STD ZC_F0,BFP_EXT 800FFE0E 2 6020D088 STD F2=627889320A1BC708 S2(000FFF58) =627889320A1BC709 TESTZC1 00013E STD ZC_F2,8+BFP_EXT CBL=TESTZC1 26 ADD 1,TO,DFP_EXT 800FFE12 2 6800D090 LDF0=407A29361EDE0046 S2(000FFF60) =2609134B9C1E28E5 TESTZC1 000142 LDZC_F0,DFP_EXT
new z390 web page to display J2SE java version on any system
The open source java based portable mainframe assembler z390 and COBOL compiler zcobol are designed to run on any system with J2SE java runtime 1.6 or higher as the only pre-requisite. To that end a new webpage has been developed designed to run on any operating system and web browser that supports J2SE: http://www.z390.org/java/index.html Test results to date are available here: http://www.z390.org/java/index.html#test_results Please try the above display page on your system and send updates for the above test results page. Any other suggestions for improvement welcome. Thanks Don Higgins d...@higgins.net -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: COBOL programmers can learn Java using z390 and zcobol
Actually you just must be willing to learn. After 35+ years of mainframe assembler and COBOL work for Florida Power and then Micro Focus, I started my own company and decided to learn Java on my own just using the Interent, J2SE, and Eclipse. The first 6 months was painful constantly looking up library class methods in the online J2SE docs. But after that Java became a very powerful new tool and I love the Exclipse interactive source debugger. The best part is that it is all free open source and just keeps getting better. Next I decided to replace my ancient 1985 shareware PC/370 tool with a new open source java based z390 Portable Mainframe Assembler Tool which now after 5 years has matured and is HLASM compatible supporting all the latest z9/z10 problem state instructions including HFP, BFP, DFP, 64 bit instructions etc. z390 also now includes structured programming extensions built into the macro processor supporting structured conditional macro code which in turn has allowed me to develop the following zcobol compiler. Note PC/370 was originally written in 1982 for z80 chip running CP/M using a package called EDIT-80 from a startup company in Redmond called Microsoft. (I still have the brown manual and 8 floppy it came on which might be worth something on Ebay someday - I also have a manual for Microsoft OS/2 before they sold it to IBM). Later it was ported to 8086 using MASM and became PC/370. The z80 was a cool chip with index registers and I loved learning how to program it in very basic assembler. Almost 2 years ago now I came up with an idea of how to translate COBOL source into HLASM compatible assembler macro call source program source using a relatively simple Java class program zc390.java/class which uses the very powerful Java regular expression parser library class and methods. Since then zcobol has evelved into an actual COBOL compiler that is structured conditional macro assembler based and generates HLASM assembler source with all the data field labels and paragraph names for readability. There are now demo and regression test programs plus 13 EXEC CICS COBOL transaction programs which you can compile and execute on Windows or Linux using z390 and zcobol for free. All you need is the latest z390 download from www.z390.org. There is InstallShield version for windows and flat file version for Linux both in zip files. Visit www.zcobol.org for more documentation and NIST test results. Also check out www.zpar.org for some new utilities. The zcobol compiler now compiles 408 of the NIST COBOL 1985 test suite programs with no assembler errors and MNOTE messages for as yet unsupported features. The data division translation is beginning to stabilize so you are welcome to try compiling any of your COBOL programs and send me any that are still generating unexpected assembler errors or MNOTES from the WS or GEN_WS conditional macros which support the data division. There is still much to be done, but it has come a long way. You can use z390 and zcobol to simply compile and run COBOL programs on WIndows or Linux. If you want to learn Java you can also dive into the open source for all the java programs in the z390.jar including: 1. z390.java - swing GUI interface for running z390 and zcobol 2. mz390.java - macro processor which calls az390 assembler 3. az390.java - assembler 4. lz390.java - linker 5. ez390.java - execution monitor 6. pz390.java - execution processor with all z9/z10 problem state opcodes 7. sz390.java - execution runtime with all svc support for I/O, GETMAIN, etc. 8. zc390.java - reguluar expression bases CBL to MLC translator If you are not learning, you are dying. Don Higgins d...@higgins.net -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
z390 and zcobol v1.5.01 with CODEPAGE and more new zcobol NIST COBOL test suite results
All z390 and zcobol full release v.1.5.01 is now available for download and install using InstallShield for Windows from www.z390.org. This release includes new Unicode codepage support for ASCII and EBCDIC codepages compatible with z/OS. The zcobol compiler now compiles 408 of the NIST COBOL 1985 COBOL test suite programs with no hard assembler errors and MNOTE level 8 messages for those features not yet supported. See the latest NIST test statistics here: http://www.zcobol.org/zcobol_NIST_COBOL_1985_Test_Results.htm The above page also contains new ZPAR frequency distribution report examples showing the COBOL macro calls generated by the zcobol zc390 translation program and also another frequency distribution report showing the generated 390 opcodes in the generated HLASM source code produced by the zcobol compiler. This release also includes zCICS v8 support which includes 13 EXEC CICS COBOL programs you can compile and execute on Windows or Linux using z390 and zcobol. Don Higgins d...@higgins.net -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
zcobol - the first COBOL compiler supporting Decimal Floating Point (DFP)
zcobol v1.5.00b now supports ANSI/ISO 754 Decimal Floating Point (DFP) plus ANSI/ISO 754 Binary Floating Point (BFP) . zcobol supports the new explicit COBOL USAGE types defined in the draft COBOL 2008 standard: FLOAT-DECIMAL-7, FLOAT-DECIMAL-16, FLOAT- DECIMAL-34, FLOAT-BINARY-7, FLOAT-BINARY-16, FLOAT-BINARY-34. In addition the IBM mainframe default standard Hexadecimal Floating Point (HFP) is supported using FLOAT-HEX-7, FLOAT-HEX-15, and FLOAT-HEX-30. The COBOL 2002 standard generic floating point usage types FLOAT-SHORT, FLOAT-LONG, and FLOAT-EXTENDED default to DFP, but can be reassigned to any of the 3 types using zcobol option FLOAT(HEX), FLOAT(BINARY), or the default FLOAT(DECIMAL). The default for COMP-1 and COMP-2 in zcobol is HFP for IBM mainframe compatibility. In addition to the floating point extended data types, zcobol now also supports the following COMP fields: half word S9(4), full word S9(9), double word S9(18), and quad word S9(39) and also packed decimal and zoned decimal up to S9(31). The zcobol verbs MOVE, ADD, SUBTRACT, MULTIPLY, DIVIDE, IF, and DISPLAY support the above data types in any combination. zcobol generates HLASM IBM mainframe compatible code which can be run at native speed on IBM z9/z10 mainframes or the code can be compiled, linked, and executed on any J2SE platform including Windows and Linux using z390. The InstallShield download for z390 and zcobol which is open source is available on www.z390.org. For more information on zcobol visit www.zcobol.org. The download includes demos and new regression tests for the new data types. The demo zcobol\demo\powers.cbl displays powers of 2 up to 126 using the new COMP S9(39) 128 bit integer support. The 3 regression tests zcobol\test\TESTHFP1.CBL, TESTBFP1, and TESTDFP1 using FLOAT(HEX), FLOAT(BINARY), and the default FLOAT(DECIMAL) respectively illustrate the new floating point code generation and execution capabilities. Finally you can define a decimal floating point fraction such as 0.1 in COBOL and have it result in exactly 0.100 using DFP short versus 0.0999 for HFP or BFP short due to irrational result in base 2 versus base 10. Don Higgins d...@higgins.net Don-Higgins.net -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
z390 v1.5.00 with zcobol portable mainframe compiler now available for download
On 02/21/09 the first release of zcobol was published as part of z390 release v1.5.00 which you can download from www.z390.org. All the documentation for zcobol is now on www.zcobol.org. This first release includes demos, regression tests, and EXEC CICS COBOL programs which you can compile, link, and execution on any J2SE platform including Windows and Linux. The generated HLASM compatible source and object code can also be ported to run at native speed on mainframe a9/z10 processors. The generated HLASM compatible source code includes all data labels and paragraph labels and utilizes the latest z9/z10 instruction set to optimize generated code including support for 64 bit register instructions such as LG and DSG plus baseless procedure division code using relative branch instructions. Try it out this week and then come to SHARE session 8194 on Tuesday, March 3, 2009 at 8 AM in Austin TX to learn more. Melvyn Maltz, the zcobol EXEC CICS support developer and I will be there to present z390 and zcobol and answer questions. If there is enough interest, we could try and schedule a BOF Tuesday evening. Don Higgins d...@higgins.net Don-higgins.net -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: SHARE Session 8194: z390 and zcobol Portable Mainframe COBOL Compiler written in structured macro assembler
Hi Tim We've met at several of your COBOL SHARE sessions in the past, and I hope to see you in Austin. You are correct, zcobol first release will have FLOAT-SHORT, FLOAT-LONG, and FLOAT-EXTENDED usage options with global option to choose between HFP, BFP, or DFP with DFP as the default. Some might want HFP for compatibility with older COBOL compiler results. Some might want BFP for IEEE compatibility with floating point in other target execution language environments. I think DFP is the preferred choice barring other constraints since it gives precise decimal results up to 34 digits. Don Higgins d...@higgins.net www.zcobol.org -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: SHARE Session 8194: z390 and zcobol Portable Mainframe COBOL Compiler written in structured macro assembler
John, all Well its flattering to think that IBM, Micro Focus, or Variant all of which have taken an interest in z390, might be interested in trying to buy rights to zcobol. But no offers so far. The plan is still to release zcobol as part of z390 under GPL in time for SHARE presentation on March 3. At the suggestion of Bill Klein, I've started work this week on testing zcobol with the NIST ANSII COBOL 85 tests available here: http://www.itl.nist.gov/div897/ctg/cobol_form.htm It comes in 2 GB z type zip (I used Winzip on Windows) which expands to 28 GB single ascii source file with the first program being EXEC85.CBL (2256 lines) which extracts all the other COBOL test programs. I'll have a report on results for zcobol initial release at SHARE. It doesn't test things like EXEC CICS or Enterprise COBOL extensions such as EXTENDED-FLOAT, but it sure looks like a great test of basic COBOL syntax options such as OPTIONAL on SELECT, comment phases in INSTALLATION, and use of double versus single quotes (now all supported). Don Higgins d...@higgins.net www.zcobol.org -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: SHARE Session 8194: z390 and zcobol Portable Mainframe COBOL Compiler written in structured macro assembler
Does this mean that it might be possible to use zcobol to compile some of our current z/OS COBOL programs into Java classes and run them on a zAAP? 3. C++ for Windows platforms 4. HLA/MASM assembler for Intel platforms John Yes, the zcobol framework provides for alternate code generation macro libraries for HLASM, Java, C++, and HLA. And we may add PL/I as well based on request on ASLIST earlier. But understand that the initial release is focused primarily on HLASM code generation and only a few demo COBOL programs will be included which have all the necessary code generation macros to compile the same COBOL program to any of the target language environments. The good news is that when the HLASM support is done, you can copy all the HLASM code generation macros to another target language library and just change the generated code model statements in the structured conditional macro code without having to chanage higher lavel shared COBOL language macros or any logic (Well I'm sure that's an exerageration as the different languages will required some different logic as well but it beats replicating the whole compiler). Don Higgins d...@higgins.net -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: SHARE Session 8194: z390 and zcobol Portable Mainframe COBOL Compiler written in structured macro assembler
All of the specialty engines types except zAAP have technological and contractual means of restricting their use to the IBM-desired new workloads. But an engine that runs Java by design in order to attract new work (hopefully from Sun or HP boxes) can't really look at your JVM bytecodes and say this looks like something that was originally written in COBOL so we won't run it, any more than an airline can say you look like a business traveller, so we'll charge you five times the rate your seatmates are paying for this flight. My wild guess is that if zcobol looks like a real threat, IBM will just buy it. And maybe that wouldn't be such a bad thing from its developer's point of view... Tony, all Thanks for the vote of support for zcobol as a tool potentially worth buying. There are no plans to sell it and once it is released under open source GPL license as part of z390 starting March 3, 2009 coinciding with the official announcement and demo at SHARE sesssion 8194, it will be available to everyone including all existing COBOL language tool providers to add to their set of COBOL modernization tools. Of course it helps to know how the tool works, so Melvyn Maltz and I might entertain some contract work going forward to help users and vendors utilize the tool. Right now it is a really exciting and challenging development effort that I look forward to sharing at SHARE. Don Higgins d...@higgins.net -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
SHARE Session 8194: z390 and zcobol Portable Mainframe COBOL Compiler written in structured macro assembler
Here is something new and something old for 2009. Come to SHARE session 8194 in Austin TX on March 3, 2009 at 8 AM for the first live demonstration of zcobol portable mainframe COBOL compiler which is written in z390 structured conditional macro assembler. zcobol supports multiple dialects of mainframe COBOL with the option to generate source and executable program code in any one of the following target languages: 1. HLASM compatible mainframe assembler for z390/z9/z10 2. Java for any J2SE platform 3. C++ for Windows platforms 4. HLA/MASM assembler for Intel platforms The intermediate source code generated by the zcobol compiler includes all data labels and paragraph labels for use in debugging when required. The initial release of zcobol is focused primarily on generating HLASM compatible assembler source and executable programs. The first release includes support for static and dynamic linking of both COBOL and assembler programs, EXEC CICS, and extensions for SOA messaging support to run called programs on remote servers. There are demo programs which can be compiled and executed in all 4 target language environments. And there are a rapidly growing number of regression tests. There is a dynamically loaded zcobol runtime module for complex functions and all the source code is included. Starting March 3, 2009, zcobol will be included in z390 releases and can be downloaded via www.z390.org. For more information on zcobol, visit www.zcobol.org and join the user discussion group: zcobol-subscr...@yahoogroups.com zcobol is an open source project on sourceforge.net and volunteer developers interested in expanding zcobol support include code generation, code optimization, regression testing, documentation, demos, training materials, etc. are all welcome. Melvyn Maltz and I will be at SHARE for the presentation and demo and look forward to seeing you there. Don Higgins d...@higgins.net -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: Query: Mainframers look forward and back
Gabe, all I look forward to the article, and hope you make lots of money with it! Alas I was born in 1945 instead of 1946 so you will have to take my input with a grain of salt. I planned to be a power plant engineer and did my master's theses on power plant steam cycle process control optimization using a FORTRAN model on an IBM 1410 in 1969 at USF. When I got my first FORTRAN class program listing in about 1966 including the linkage editor map from the overnight batch runs for the class, I knew right then I had to learn what all that stuff was, and I've ended up following a career in computer science ever since. I spent 2 years with ECI (later E-Systems and later Rayethon) working on AWACS with secret clearance. Then I spent 25 years with Florida Power and managed their computer department for over 15. During the FPC years, I moved through the system programming career path, and made a number of contributions to the SHARE SPLA library including a structured FORTRAN translator and strucutred programming macros. I also develped PC/370 and released it as shareware in 1985 all done as a hobby while teaching evening classes in computer science at USF. I left FPC in 1995 after helping to implementing CSS by far my most exciting and challenging project up to that point in my career: http://don-higgins.net/css.htm I worked for Micro Focus for 9 years telecommuting from home and developed HLASM compatible assembler written entirely in COBOL which is part of Micro Focus Mainframe Express for Windows. I left in 2004 and started my own consulting company Automated Software Tools Corporation and have been doing some consulting and really having a lot of fun developing open source Java bases z390 protable mainframe assembler and emulator www.z390.org. Right now I consider myself a baby boomer who is simi-retired as I collect a pension and I don't have to work when I don't feel like it or when I have an opportunity to visit with the grandchildren or go touring. But, I still love system software development! It is what gets me up at 4 or 5 am 7 days a week to work on z390 related projects. I do it because it's fun and very self satisfying to me, and I hope to still be doing it on a laptop (or mainframe class cell phone) from my room in an assisted living facility when I'm 90 if I make it until then. My mother is 91 now in assisted living, but she doesn't want to have anything to do with computers. We play scrable or crokinole twice a week when I visit her. In the last 4 years since leaving full time employment in the mainframe industry, I've been busy learning Java, Linux, Perle, Eclipse, and more. There is always a new tool and a new language waiting to be put to good use. At the Orlando SHARE in February, I got a request from Michael Stack and John Erhman to add the ASSIST extended instructions for use by students at NIU. I don't see any end in sight for new opportunities. Come to the March 2009 SHARE z390 session in Austin to hear about a new tool under development. Don Higgins [EMAIL PROTECTED] On Thu, 6 Nov 2008 16:00:03 -0500, Gabe Goldberg [EMAIL PROTECTED] wrote: (Sorry for cross-posting...) I'm writing an article for CA about baby-boom mainframers (that's me too, my first job out of college in 1968 was with IBM in Poughkeepsie) about what we're all doing and seeing and facing in our careers. Do people plan to work as long as they're able? Because of enjoyable jobs? From necessity? For other reasons? Are folks being downsized/outsourced? Retiring voluntarily or otherwise? When projects finish or ... certain ages are reached? Or companies migrate off the mainframe? Or youngsters are available for lower salaries? Regarding dump the mainframe projects -- have you stayed with a company after migrating to another platform? How has that worked out? Have you seen dump projects fail or simply continue forever with mainframes chugging along productively? Has the skill set required for mainframe work changed during your career? How have tools evolved to support skills required? What are boomer mainframers doing in retirement? Are you taking new jobs and double dipping? Becoming consultants? Trainers? Writers? With former employers? In locations you've worked or moving? Or starting new careers in other fields? With decades of experience and perspective -- and considering contradictory trends of organizations migrating to other platforms AND the general resurgence of the mainframe -- what recommendations are offered for the mainframe's future? Are younger-generation mainframe staffers joining your companies? Have you helped recruit any (including family members!)? How are they integrated into your data centers? Are there inter-generational issues (training, collaboration, communication, work habits, whatever)? What should employers do to smooth the process? Have you worked for younger bosses/managers? What's that been like? Are there challenges
Re: Need someone to fix a free HTTP Server written in Assembler
All Thanks for tips on handling xmit within xmit. I missed that. I did get zip of the sources and here is what I did as test: 1. Unzip 2. Rename all maclib to *.MAC 3. Rename all srclib to *.MLC 4. Run z390 command: ASM SRCLIB\HTTPSUB SYSMAC(MACLIB+MAC) SYSCPY(MACLIB) failed with 100+ errors due to REGEQU not found. 5. Rename maclib REGEQU.MAC to REGEQU.CPY 6. Rerun z390 ASM command with following results: a. Z390 missing macros EZASMI, IEFZB4D0 and IEFZB4D2 b. Z390 assembly errors - 38 (most due to EZASMI calls and a few missing field def. Don Higgins [EMAIL PROTECTED] On Tue, 4 Nov 2008 10:41:34 -0500, J R [EMAIL PROTECTED] wrote: Yes, I noticed the XMIT within XMIT format. Unfortunately, this confounds XmitManager because the top level invocation converts the second level members to ASCII which the second level invocation can't make sense of. This makes it difficult to work with on a PC. Date: Tue, 4 Nov 2008 10:21:16 -0500 From: [EMAIL PROTECTED] Subject: Re: Need someone to fix a free HTTP Server written in Assembler To: IBM-MAIN@BAMA.UA.EDU ... Don, the sources, maclib, etc. in the XMI file inside of the ZIP are themselves XMIT files. I was able to RECEIVE the FILE795.XMI file on the mainframe (after binary FTP of course) into a PDS, the used RECEIVE with the members of that PDS as the INDSNAME for RECEIVE. So cbt795 is largely an XMIT of XMIT's. The main XMIT (FILE795.XMI) is a PDS with BLKSIZE=5600. The members in that PDS (SRC/MAC/JCL/HTML) are XMIT's of BLKSIZE=4000 PDS's. The GIF member is an XMIT of a VB/256/6333 PDS. HTH Peter _ Store, manage and share up to 5GB with Windows Live SkyDrive. http://skydrive.live.com/welcome.aspx?provision=1? ocid=TXT_TAGLM_WL_skydrive_102008 -- 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 -- 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
Re: Need someone to fix a free HTTP Server written in Assembler
Hi Sam, all I like the idea! I downloaded CBT tape file #795 and took a look at it with XMIT Manager on Windows Vista. It appears the sources are in mainframe IEBCOPY type FB format. What is the easiest way to get all the source programs, macros, and copybooks into separate ascii files so I can take a closer look at this project using z390 portable mainframe assembler. By the way the open source z390 code and z390.jar executables are stored on sourceforge.net under project name z390. This provides redundent server backup for downloads. Direct links to the downloads are on www.z390.org as well on sourceforge.net. I have put a copy of the z390 sources on the sourceforge.net CVS server so you can directly browse the z390 sources. For example, here is link to the z390 pz390.java runtime mainframe emulator for that version (its out of date now): http://z390.cvs.sourceforge.net/viewvc/z390/z390/src/pz390.java? view=markup For the very latest version of any z390 source program, download the zip for the latest z390 release or PTF from the www.z390.org site and look in z390 \src directory. I don't keep the sourceforge.net z390 project CVS sources corrent since currently only Melvyn Maltz and I are actively developing new source code. Melvyn is doing EXEC CICS support and I'm doing the rest. It's just easier to swap zip files with all the sources which are also included in every z390 release and PTF. I would suspect that just trading zips will be easier for most CBT utilities as well. I'm interested in this HTTP server project as z390 includes an SOA COBOL and assembler application generator to support COBOL or assembler applicaitons calling services running on a server anywhere on the TCP/IP network. The client and server generated code uses z390 svc calls to J2SE Socket client and server support. The server supports mulitple client connections and the clients and servers can run on any J2SE supported platform. I'm curious if the HTTP server code could be adapted to also run in a similar way suing z390 and J2SE? Don Higgins [EMAIL PROTECTED] On Sun, 2 Nov 2008 15:48:43 -0500, Sam Golob [EMAIL PROTECTED] wrote: Hi Folks, Here at www.cbttape.org we've started a new process. Sometimes a good software writer wants to write a package in an area where either: 1. He/she is not too familiar, but wants to learn the subject better. 2. He/she does not have the facility at his/her home installation, to properly test a given product that he/she has written. An example would be if the installation has a back-level release of something running, and a version of the user-written package has to be tested at a later release level of the system it's supposed to be running under. Like an addon to SDF (Spool Browser for JES3) that is written for the latest version of JES3, but their installation isn't running the latest version of JES3. We are doing something to remedy these problems. We are putting a preliminary version of such packages on the UPDATES page of www.cbttape.org and ASKING ANYONE WHO IS ABLE, to please FIX IT, GET IT TO WORK, and SEND IT BACK IN, so everybody will be able to properly use the new package. We will always mark such packages as ALPHA versions. For example: A new HTTP Server was written in Assembler, and promises to be a good product eventually, but it needs fixing by an expert, because the author can only go so far, in his own testing and debugging. File 795 on the UPDATES page of www.cbttape.org needs fixing. PLEASE FIX THIS PACKAGE, if you have the expertise and willingness to contribute a really useful tool for the public good! THANK YOU IN ADVANCE. Please also write to me about this idea, of putting tools that need some completion out on the Updates Page, and which are marked as being incomplete. ALL THE OTHER STUFF on the Updates Page, IF NOT SO MARKED, is considered by me to be Production Grade Quality. Of course the CBT disclaimers always apply! I'd like to hear feedback from you all. All the best of everything to everybody. Sincerely, Sam Golob -- 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 -- 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
Re: Emulators
Ram Balaji wrote: Is there any free?Mainframe(JCL,CICS) simulators available for desktop PC? The z390 Portable Mainframe Assembler and Emulator open source J2SE java based tool includes TN3270 client server emulation over TCP/IP sockets and there is support for EXEC CICS assembler applications including SEND, RECEIVE, BMS mapping etc. which can be run on Windows or Linux with multiple clients on same or different processors on the same TCP/IP network. There are demo and regression tests plus an SOA type client server application generator which includes support for assembler and COBOL applications via EZSOKET interface. Visit www.z390.org for download in Windows InstallShield or Linux file image format plus documentation. Come to the next SHARE conference in Austin TX for session on z390 Tuesday, March 3, 2009 8:00 with update on what's new including support for open source Structured Programming Extensions (SPE's) for conditional macro code and Structured Programming Macros (SPM's) all written using SPE so there are no explicit AIF or AGO macro labels! There will be live demo of new tool which has over 100 new structured macros all using SPE's and SPM's to provide a very powerful and easily extendable tool. Come see what it is? Don Higgins [EMAIL PROTECTED] -- 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
Austin SHARE Update on z390 SOA for COBOL/ASM using EZSOKET, ZSTRMAC, more
All I am looking forward to attending the Austin TX SHARE March 1-6, 2009 as I missed the San Jose SHARE. I am tentatively scheduled to present session on Tuesday at 8 AM. It will be an overview and update on what's new with the z390 Portable Mainframe Assembler and Emulator since the February SHARE session in Orlando. The two main topics will be SOA support for COBOL and assembler plus ZSTRMAC structured programming extensions. The z390 SOA support has been extended to include support for COBOL clients calling z390 assembler services via EZASOKET interface. z390 SOA client and server services can run on any platform supporting J2SE and TCP/IP such as Windows and Linux. The z390 SOA macro based application generator now supports generating COBOL as well as assembler client interfaces to assembler services For more details including example using Micro Focus COBOL on Windows calling z390 service running on a Linux or Windows Laptop visit: z390.sourceforge.net/z390_SOA_Support_for_COBOL_and_Assembler.htm ZSTRMAC is a set of new structured programming extensions for mainframe conditional macro code including AIF, AELSE, AELSEIF, AEND, AENTRY, AEXIT, APM, ASELECT, AUNTIL, AWHEN, and AWHILE. Using these z390 extensions conditional macro code in open code or macros can now be structured without the use of any AGO or macro labels. The extensions are built into z390 v1.4.03. An optional translator written in ZSTRMAC is included which can be used to translate structured code to standard HLASM for portability. For more details and examples visit: z390.sourceforge.net/z390_ZSTRMAC_Structured_Macro_Support.htm Other z390 enhancements since February SHARE include addition of ASSIST extensions for use by students taking mainframe assembler courses at NIU and elsewhere. Also the open source z390 EXEC CICS assembler support by Melvyn Maltz now includes BMS mapping support. Plan to come to Austin and put Tuesday morning 8 AM on your schedule. Don Higgins [EMAIL PROTECTED] -- 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
Re: IBM THINK original equipment sign
All Thanks for feedback. I think my IBM oem sign is probably worth more than the current one shown on eBay with bid for $13. As my first attempt at using eBay, I think I'll try signing up and offerring the sign to the highest bidder. If it goes well, I have some other interesting stuff like the Microsoft version of OS/2 with Microsoft Manual published just before IBM bought all the rights. Then there is the original Microsoft M80 manual for CP/M that I used to develop MMS/370 the predecessor to PC/370 on a TRS-80 using Lifeboat CP/M. Oh how I loved that z80 chip. I don't think I'll ever sell the worn out z80 POP ref. manual with the ragged pages. Most of the instructions were 8 bit, and a few 16 bit so doing 370 multiply/divide with 32/64 bit words was a fun math exercise. Don Higgins [EMAIL PROTECTED] -- 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
IBM THINK original equipment sign
All I was cleaning out this week, and found an IBM THINK original equipment sign that was given to me by a retiring COBOL programmer in 1968 when I worked for Electronics Communications Inc. (Later E-Systems and now Raytheon). The sign is laminated black letters on white background on a wooden plaque aobut 12 long and 5 high. Under the THINK in small letters is Compliments of IBM Corporation and in the lower right corner is Printed in USA. Is there a market for such relics? If you are interested, email me. Don Higgins [EMAIL PROTECTED] PS: I'm not ready to give up my IBM coffee mugs which I use every day. -- 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
Decimal Floating Point for Java and COBOL using z390
All Java does not have Decimal Floating Point yet, and COBOL already plays very nicely with automatic conversion from Java float to COBOL float and back again with direct calls. Java and COBOL can now use open source J2SE Java based z390 Portable Assembler to execute all the HFP, BFP, and DFP instructions for short, long, and extended precision. Visit www.z390.org for more information. z390 v1.4.02 due out in the next week will package all the recent enhancements which include addition of HFP un-normaliazed instruction compatibility (previosuly they were producing normalized results); SOA application generator now supports COBOL clients using EZASOKET calls to z390 services running on any platform including mainframes, Windows, or Linux; plus numerious other improvements for compatibility with HLASM and z9/z10 mainframes. The Java support uses for DFP uses BigDecimal class which is a superset of decimal floating point with arbitrary precision, exponent, and all types of rounding. It also has built in methods specifically for IEEE compatibility such as context DECIMAL128 and DECIMAL64. You can check out the source code in pz390.java all available for download from the z390 project on sourceforge.net. Don Higgins [EMAIL PROTECTED] -- 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
1RE: Enhanced JCL processor - Jol - Open Source
Clement It's been a while. I suggest you use standard GPL license and put the source for JOL on www.sourceforge.net like I have done with z390.sourceforge.net. I've added new z390 enhancement RPI 858 to add JOL. Currently z390 uses simple BAT command processor behind the scenes for both Windows and Linux GUI interface as well as command line interface. DDNAME processing is done using enviroment variables on both Windows and Linux. All the pending RPI's for z390 are listed here and its updated almost every day: http://z390.sourceforge.net/z390_Support_Request_Log.htm Once you have released JOL and time permits I';; try assembling it on z390 and see how it goes. IT sounds very useful. Don Higgins [EMAIL PROTECTED] The JCL Enhancement/Replacement language Jol is now Open Source. You can find details, documentation and so on at www.ozemail.com.au/~oscarptyltd Clement Clarke June 7, 2008. Clement V. Clarke - Author Jol, EASYJCL, EASYPANEL, 370TO486 Oz \ Web: http://www.ozemail.com.au/~oscarptyltd 16/38 Kings Park Road, West Perth, AUSTRALIA, 6005. Tel (+61)-8-9324-1119, Mob +61401-054-155. Email: [EMAIL PROTECTED] -- 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
COBOL calling z390 Assembler using SOA EZASOKET Interface
All z390 Portable Mainframe Assembler now supports COBOL calling z390 assembler using IBM standard EZASOKET interface without requiring any other framework or language such as XML or C. For demo with source code and screen capture using Micro Focus Mainframe Express COBOL and z390 running on Windows XP/Vista: http://z390.sourceforge.net/z390_SOA_Support_for_COBOL_and_Assembler.ht m In theory this same EZASOKET interface could be used with COBOL running on any platform and operating system with EZASOKET support connected to z390 SOA server running on any platform supported by J2SE Java on the same TCP/IP network. The next question I have is whether anyone has experience or knows of EZASOKET implementation for Linux? Don Higgins [EMAIL PROTECTED] -- 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
o Re: Fixed-Point and Scientific Notation
JOhn, all The issue is that we have three formats (binary, decimal, and hexadecimal) and three lengths (4, 8, and 16). So we need to determine what characters should be used for the various formats and lengths. Now that I better understand the question, there is a way to do just that defined in the IBM High Level Assembler Reference Manual plus PTF updates for DFP: http://publibz.boulder.ibm.com/epubs/pdf/asmr1010.pdf http://www-1.ibm.com/support/docview.wss? rs=12context=SSENW6dc=DB550uid=isg1PK18170loc=en_UScs=utf- 8lang=en Explicit definitions for the 9 floating point literal types and 3 fixed point types are shown below used in a conteXt where the explicit type and length is indeed required. These sorts of tests are used in some of the regression tests for z390 found in rt\test\TESTFP1.MLC, rt\test\TESTDFP1.MLC, and rt\test\TESTINS1.MLC: 1. CLC =EH'1E2',=EH'10E+1' HFP SHORT 32 BIT 2. CLC =DH'100',=DH'1000E-1' HFP LONG 64 BIT 3. CLC =LH'0.1E3',=LH'0.01E+4'HFP EXTENDED 128 BIT 4. CLC =EB'1E2',=EB'10E+1' BFP SHORT 32 BIT 5. CLC =DB'100',=DB'1000E-1' BFP LONG 64 BIT 6. CLC =LB'0.1E3',=LB'0.01E+4'BFP EXTENDED 128 BIT 7. CLC =ED'1E2',=ED'10E+1' FP SHORT 32 BIT 8. CLC =DD'100',=DD'1000E-1' BDFP LONG 64 BIT 9. CLC =LD'0.1E3',=LD'0.01E+4'BFP EXTENDED 128 BIT 10 CLC =F'1E9',=F'10E8' FIXED SHORT 32 BIT 12.CLC =FD'1E15',=FD'10E14'FIXED LONG 64 BIT 13.CLC =FL16'1E30',=FL16'10E29' FIXED EXTENDED 128 BIT Can you guess which of the above logical compares fail? The DFP compares fail because DFP does not normalize all equivalent values to the same format. If the DFP equivalent values are loaded into FPR registers and compared using a DFP arithmetic compare such as CEDTR, then they do compare equal. Also the FL16 128 bit integer format is an extension in z390 for use in testing instructions like DLGR which divides 128 bit dividend by 64 bit dvisor giving 64 bit quotent and 64 bit remainder. Absent an international standard for explicit definition of BFP and DFP literals, I would use the IBM HLASM definitions as a defacto standard which also includes HFP which is an IBM unique format. For fixed point I'd propose switch ing to EF, DF, and LF type prefix for consisency (The current HLASM use of F and FD does not allow addition of FL due to conflict with length submodifier L). Don Higgins [EMAIL PROTECTED] www.z390.org -- 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
Re: Fixed-Point and Scientific Notation
John, all The issue is that we have three formats (binary, decimal, and hexadecimal) and three lengths (4, 8, and 16). So we need to determine what characters should be used for the various formats and lengths. Now that I better understand the question, there is a way to do just that defined in the IBM High Level Assembler Reference Manual plus PTF updates for DFP: http://publibz.boulder.ibm.com/epubs/pdf/asmr1010.pdf http://www-1.ibm.com/support/docview.wss? rs=12context=SSENW6dc=DB550uid=isg1PK18170loc=en_UScs=utf- 8lang=en Explicit definitions for the 9 floating point literal types and 3 fixed point types are shown below used in a conteXt where the explicit type and length is indeed required. These sorts of tests are used in some of the regression tests for z390 found in rt\test\TESTFP1.MLC, rt\test\TESTDFP1.MLC, and rt\test\TESTINS1.MLC: 1. CLC =EH'1E2',=EH'10E+1' HFP SHORT 32 BIT 2. CLC =DH'100',=DH'1000E-1' HFP LONG 64 BIT 3. CLC =LH'0.1E3',=LH'0.01E+4'HFP EXTENDED 128 BIT 4. CLC =EB'1E2',=EB'10E+1' BFP SHORT 32 BIT 5. CLC =DB'100',=DB'1000E-1' BFP LONG 64 BIT 6. CLC =LB'0.1E3',=LB'0.01E+4'BFP EXTENDED 128 BIT 7. CLC =ED'1E2',=ED'10E+1' FP SHORT 32 BIT 8. CLC =DD'100',=DD'1000E-1' BDFP LONG 64 BIT 9. CLC =LD'0.1E3',=LD'0.01E+4'BFP EXTENDED 128 BIT 10 CLC =F'1E9',=F'10E8' FIXED SHORT 32 BIT 12.CLC =FD'1E15',=FD'10E14'FIXED LONG 64 BIT 13.CLC =FL16'1E30',=FL16'10E29' FIXED EXTENDED 128 BIT Can you guess which of the above logical compares fail? The DFP compares fail because DFP does not normalize all equivalent values to the same format. If the DFP equivalent values are loaded into FPR registers and compared using a DFP arithmetic compare such as CEDTR, then they do compare equal. Also the FL16 128 bit integer format is an extension in z390 for use in testing instructions like DLGR which divides 128 bit dividend by 64 bit dvisor giving 64 bit quotent and 64 bit remainder. Absent an international standard for explicit definition of BFP and DFP literals, I would use the IBM HLASM definitions as a defacto standard which also includes HFP which is an IBM unique format. For fixed point I'd propose switch ing to EF, DF, and LF type prefix for consisency (The current HLASM use of F and FD does not allow addition of FL due to conflict with length submodifier L). Don Higgins [EMAIL PROTECTED] www.z390.org -- 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
Re: Fixed-Point and Scientific Notation
John, all Has IBM established a standard in any of the various high-level languages for the representation of the various floating-point formats and precisions? I am specifically looking at both fixed-point and scientific notation. John P. Baker Here are some references and summary info I've collected: Standard Scientific Notation: General description and references: http://en.wikipedia.org/wiki/Scientific_notation IBM Hursley generalized description of scientific notation conversion: http://www2.hursley.ibm.com/decimal/daconvs.html#reftonum Arithmetic Model: http://www2.hursley.ibm.com/decimal/damodel.html Note this model is based on IEEE 854, ANSI X3-274 standards. Unfortunately these standards are only available in published form for a fee. (Commentary: It would be a tremendous service to the world if a non-profit organization could be started to move all standards publications to the public domain to help promote understanding and use of non-proprietary standards. Charging for them makes them all proprietary!) So in summary the standard form would appear to be: 1. Sign (+optional) 2. Mantissa (decimal digits with optional period up to maximum significant digits for binary format) 3. Exponent (optional) a. E (E or e optional if sign included) b. Sign (+optional if E or e) c. Power of ten (exponent digits with no decimal up to maximum exponent) The maximum limits for each IBM fixed and floating point HFP, BFP, and DFP format can be found in the latest Principles of Operations Manual here: http://publibfp.boulder.ibm.com/epubs/pdf/dz9zr006.pdf In summary the significant decimal digits and base 10 exponents are as follows: Summary of IBM Fixed and Floating Point Scientific Notation Limits Type of number 32 bit 64 bit 128 bit Fixed Point Integers Significant digits 10 19 39 HFP Hexadecimal FP Significant digits 7 15 34 Maximum exponent 75 75 75 BFP Binary IEEE 754 FP Significant digits 7 16 34 Maximum exponent 38 308 4932 DFP Decimal IEEE 754r FP Significant digits 7 16 34 Maximum exponent96 384 6144 All of these formats are supported by z390 on Windows and Linux with CTD and CFD conversion routine macros and supervisor calls for converting between EBCDIC/ASCII character scientific notation and any of the above binary formats. All corrections and comments welcome. Don Higgins [EMAIL PROTECTED] www.z390.org -- 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
Optimizing COBOL generated assembler
Optimizing COBOL generated assembler Consider the cobol statements: 3402 R-CNTR PIC S99 COMP SYNC VALUE +0. ... 072 ADD 1 to R-CNTR Which generated the following assembler code: 000620 4830 A012 LH 3,18(0,10) PGMLIT AT +6 000624 4A30 9028 AH 3,40(0,9) R-CNTR 000628 1823LR 2,3 00062A 8E20 0020 SRDA 2,32(0) 00062E 5D20 C000 D2,0(0,12) SYSLIT AT +0 000632 4020 9028 STH 2,40(0,9) R-CNTR This snippet of code is from the following COBOL/370 generated assembler LIST option: http://www.cs.niu.edu/~t90jfl1/class/job2.htm I think the LR, SRDA, and D instructions could be surpressed by specifying the option NOTRUNC to allow values greater than the PIC digits 99. With the new z10 instruction ADD LOGICAL WITH SIGNED IMMEDIATE, the entire 6 instruction sequence could be reduced to a single instruction: ALSI R-CNTR,1 Of course this would require that the COBOL compile have such a z10 optimization option. For compute intensive applications, such optimizations along with the new z10 compare and branch instructions could be significant. To aid in analyzing mainframe COBOL programs a new z390 COBOL Portable Assembler option has been added in z390 PTF v1.4.01b. With this option installed, you can convert Enterprise COBOL or COBOL for OS/390 generated assembler listings into z390 assembler source programs which can be assembled, linked, and executed specifying starting and ending line numbers in order to unit test or benchmark specific generated code or supported COBOL statments with called functions. In this initial release only DISPLAY and STOP RUN function calls are supported, but requests for additional functions are welcome. Support for COBOL/370, COBOL for MVS, and VS COBOL II are also in development. For example generation and execution of DISPLAY and STOP RUN demo, install z390 v1.4.01, v1.4.01b PTF, and then enter the command cobol\paos\OSDEMO1. Don Higgins [EMAIL PROTECTED] -- 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
ZMFACC Mainframe Assembler Coding Contest Update 03/2108 Solution to #18 and new #19
All Following the release of z390 v1.4.01a with new date and time callable routine named DAT that can be used for benchmark testing, I’ve published a first solution to problem #18. The solution shows that the MIP rate dropped 15% when using the new z10 compare and branch code, but the elapsed time in nano-seconds also reduced by 8%. Visit the web site to see source code including copy of the new DAT routine and the execution log showing results: http://z390.sourceforge.net/z390_Mainframe_Assemble_Coding_Contest.htm I’ve also posted a new problem #19 to write code to find the last non-blank character in an 80 byte text line using the least number of instructions. Hint there is a z10 instruction that might be the fastest, but I could also be wrong. Enjoy the weekend! Don Higgins mailto:[EMAIL PROTECTED] http://don.higgins.net -- 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
Re: Assembler to C or C++ Conversion
Has anyone run across a software package that will successfully convert Assembler code to working C or C++ code or, alternatively, allow Assembler code to run in a server-based environment more or less as is (much like MicroFocus does for COBOL code)? Thanks in advance - John Bachiochi John, all If you need the speed of native code and portability, then check out http://www.smltd.com/. They offer mainframe assembler to C and COBOL. However any such conversion requires extensive testing and both the initial conversion and the support of the generated code my be expensive particularly if you are going to continue to maintain the origianl code also. Another option to consider is to use the z390 portable mainframe assembler and emulator SOA approach. The latest z390 v1.4.01 with z9 and z10 opcode support can run SOA services on any Windows or Linux server. Client applications in any language running on a TCP/IP connected network can then invoke those z390 mainframe assembler services via TCP/IP sockets messaging. There is a demo that installs with z390 that does the following: 1. First the demo main program which calls two separate subroutines to perform 2 different integer and decimal floating point numeric calculation services can be assembled, linked, and executed using z390 standard static linking. Run soa\demo\DEMOSTD.BAT on Windows or Linux. 2. Second the same 3 demo source code programs can be automatically assembled and linked into an SOA application with the following generated executable components: a. DEMOMAIN.390 - executable application main client program linked with generated stub CSECT for each called service which dynamically links to client soa manager. b. DEMOCMGR.390 - generated client SOA manager for this application which packages service requests into TCP/IP socket messages, sends them to SOA service manager, waits for response, moves updated parameter field results back to original parameter areas, and returns to caller. c. DEMOSMGR.390 - generated service SOA manager for this application which can run on any Windows or Linux server on the TCP/IP netowrk and waits for TCP/IP socket connections, receives requests, loads service modules if not already loaded, calls service module, returns updated paramters to caller. d. DEMOSUB1.390 - subroutine 1 linked as separate loadable service. e. DEMOSUB2.390 - subroutine 2 linked as separate loadable service. 3. You can generate this demo SOA applicaton from the 3 source programs and a single SOA generator definition macro call which drives the macro driven generation process. Once generated, you can run this demo on any combination of Windows and/or Linux client and server processors. For example, you can start the DEMOSMGR.390 server program running on your Windows XP/Vista desktop and then run one or more copies of the client appication DEMOCMGR.390 on your wireless laptop on the same wireless router as your desktop to provide TCP/IP connectivity. You can pick the port number you want to use at generation time. Of course, you also can run both the server and the client on the same PC as well. For more details on this z390 SOA option visit the following page: http://z390.sourceforge.net/z390_Service_Oriented_Architecture_Support.htm Don Higgins [EMAIL PROTECTED] -- 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
z390 v1.4.01 with 11 new ASSIST and 226 new z10 mainframe instructions
class in order to prevent loss of 4 bits of mantissa precision since double has 52 bit mantissa versus the required 56 bits. It will be a bit slower but it will be correct and will also support pending RPI 767 to fully support HFP un- normalized instructions (all results are currently normalized). f. A side benefit of implementing the new z10 rotate and select bits instructions is that the existing RLL and RLLG rotate left instructions have been updated to use new faster rotate functions which simply perform a left shift, right shift, and an OR to accomplish the rotate for int or long java variable. The result should be a significant improvement in speed for RLLG. 7. Finally this version has been built and tested on J2SE 1.6.0 update 5. For new users please remove all prior versions of J2SE and all previous z390 releases including deleting the install directory which may have generated files not deleted by the InstallShield uninstall process. Then install J2SE 1.6.0_05 runtime and z390 v1.4.01. The J2SE JDK is only required if you want to recompile java sources and rebuild the single z390.jar executable file. Many thanks to all those who have contributed to this release by testing PTF releases and reporting any bugs found. There will no doubt be some additional bugs resulting from all the new code in this release which has increased the z390.jar file from 328k for v1.4.00e to 340k for v1.4.01. Please send any RPI bug reports using the online form: http://z390.sourceforge.net/z390_VSAM_Compatible_Assembler_Support.htm If you would like to view the actual Java code for any of these new instructions, you can use notepad or your favorite editor to open the z390 emulator source directory file src\pz390.java and search for the name of any instruction such as “TRTE” etc. As always any and all comments and feedback are welcome. Don Higgins mailto:[EMAIL PROTECTED] http://don.higgins.net -- 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
z10 Decimal Floating Point Support - come to SHARE and SHARE
Interesting article on the z10 with the quote, an integrated hardware decimal floating-point processor to aid with financial and enterprise resource planning applications. I hope there will be sessions at SHARE in Orlando expanding on the z10 announcement. The article is here: http://searchdatacenter.techtarget.com/news/article/0,289142,sid80_gci1301 967,00.html On Friday I published 2 new solutions to the ZMFACC z390 Mainframe Assembler Coding Contest. Now there is a BFP, HFP, and DFP solution to the calculation of standard deviation using extended precision. All 3 solutions produce the same result to 33+ decimal digits of precision. The DFP solution proved more challenging that expected because at the moment the POP does not include the SQXTR DFP square root insturction comparable tothe SQXBR and SQXR BFP and HFP instructions used in other solutions. In order to only use DFP instructions, I coded a SQXTR macro which calls a standalone SQXTR CSECT which uses Newton Raphson method to caculate the extended precision square root of a number. The code solved the problem to 33+ digit precision in 7 iterations. But the code needs work on initial guess and better yet the SQXTR instruction needs to be supported with hardware and software emulation since financial applications often include statistics as well as currency fields etc. To see the source code and results find links for problem #12 on this site: http://z390.sourceforge.net/z390_Mainframe_Assemble_Coding_Contest.htm If you have the answer to the SQXTR question, come to the SHARE Session 8194 - z390 Portable Mainframe Assembler on Monday at 4:30. Melvyn Maltz and I will be presenting on z390, SOA, VSAM, and CICS support. Maybe there will be more z10 related leaks before Tuesday morning. I hope so. Don Higgins [EMAIL PROTECTED] www.z390.org -- 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
z390 VSAM KSDS AVL balanced tree insert support and SHARE
z390 PTF v1.4.00e now available for download from www.z390.org has new VSAM KSDS AVL balanced tree insert support. For details and download link with InstallShield support for Windows visit: http://z390.sourceforge.net/z390_Download_Archive.htm This PTF contains single RPI 806 enhancement to z390 VSAM support to add AVL balanced tree insertion for KSDS records. It includes new regression test program vsam\test\KSF2TST4.MLC which adds 1000 records in pseudo random sequence and then retrieves and lists them in ascending sequence using key access. This process creates a balanced tree with 10 levels (2**10 = 1024). The I/O required is about 10 writes per record. With the z390 VSAM VCB cache buffering option on, most rereads are avoided With this new support VSAM can now be used as a record sorting tool with the performance characteristics of a shell sort with I/O proportional to N * log2 N. VSAM has been updated to include AVL tree statistics on the STATS optional STA statistics file. The TRACEV option has been updated to include tracing of AVL height updates and rotations. The new support also includes verification of all KSIR record double links and branch height values to catch any file integrity problems. To run the new regression program, install z390 v1.4.00, then v1.4.00e, double click on z390 GUI icon, and enter the command vsam\test\KSF2TST4 STATS. See the following web page for high level explanation of AVL trees and the required rotations to maintain balanced tree after each insert: http://sky.fit.qut.edu.au/~maire/avl/System/AVLTree.html This AVL support was an intensive 10 day effort starting from scratch as all I knew 10 days ago was that trees could be balanced but I didn’t know what an AVL tree was. Thanks to Google and the Queensland University of Technology web page, I’ve had a quick on the job learning experience. There is much the rotation diagrams don’t say about the implementation details. Check out the vz390.java source for details on how it works. Also many thanks to the name sake G.M. Adelson-Velsky and E.M. Landis, who published it in their 1962 paper An algorithm for the organization of information. Be sure and attend the SHARE Conference session 8194 next Monday, February 25, 2008 at 4:30 in Orlando Florida if you would like to learn more about z390 VSAM and CICS support. Both Melvyn Maltz and I will be speaking and perhaps we can organize a BOF on the subject for those interested. All feedback welcome! Hope to meet you at SHARE. Don Higgins mailto:[EMAIL PROTECTED] http://don.higgins.net -- 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
Re: Java Demos (02/02)
For more Java demos along with their evivalent forms written in HLASM mainframe assembler, HLA Intel assembler, C++, and COBOL visit: www.mfatc.org Also you could choose to classify the z390 portable assembler and emulator written entirely in J2SE open source Java as a demo. All the classes are packaged into a single z390.jar which supports a Swing GUI interface, macro assembler, linker, and emulator that runs on Windows Vista, XP, or Linux. To download and install on Windows using InstallShield visit here: www.z390.org There are hundreds of Demo regression test programs as defined here: http://z390.sourceforge.net/z390_Regression_Tests.htm More recently there is an ongoing z390 Mainframe Assembler Coding Contest (ZMFACC) which now includes a number of intereseting Demo solutions submitted in a portable source program form which can now be run run on z390 using J2SE Java plus Hercules 3.8 MVS, z/OS, z/VM with CMS, and VSE. Some of the Demos include some intersting things like swapping 2 fields in memory with 2 instructions (no not 3 XC), hash table lookup in 5 instructions, calculating standard deviation to 34 decimal places, calculating Pi to 34 decimal places, calculating recursive Ackerman function values. Check the contest Demos out here: http://z390.sourceforge.net/z390_Mainframe_Assemble_Coding_Contest.htm Don Higgins [EMAIL PROTECTED] -- 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
ZMFACC Assembler Coding Contest - new PD problem #15 and open question about applications/categories
All Problem #15 has been posted. Neither #14 or #15 have any solutions posted yet. Visit website for details: http://z390.sourceforge.net/z390_Mainframe_Assemble_Coding_Contest.htm A friend asked me about the potential application of techniques used in the contest problems. In response here is an initial list of applications by category with my first thoughts: 1. Swapping fields (#1,#2) – used in sorting, file buffering 2. Conversion to display characters (#3,#6,#9,#10) – used in dump, error display, or report formatting 3. Sorting records (#4) – used in preparing for sequential processing and reporting 4. Conversion of display characters to binary (#5) – used in decoding input data for processing 5. Floating point calculations (#7,#8,#12) – used to calculate statistics with required precision 6. Table lookup (#11) – used to access data tables required for processes such as validating records 7. Decimal calculations (#13,#15) – used to calculate currency precisely in base 10 8. Recursive functions (#14) – used in sorting routines such as Quicksort, compiling languages Going forward, I’d like to build a list of categories for future problems. My initial list of possible additions include: 1. Boolean logic 2. Branch logic 3. Comparisons 4. Compression and de-compression (someone just asked me if z390 supports CMPSC yet. The answer was not yet but I did go read the 9 page description in the latest POP which includes 3 page diagram) 5. Encryption and decryption 6. File access methods 7. Heuristics 8. Totally useless just for fun Do you have some categories or specific questions you would like to see added. All feedback welcome. Don Higgins mailto:[EMAIL PROTECTED] http://don.higgins.net -- 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
z390 Mainframe Assembler Coding Contest - new problem #10 and another solution for problem #8
All A new problem #10 and another solution for problem #9 have been posted on the contest web site here: http://z390.sourceforge.net/z390_Mainframe_Assemble_Coding_Contest.htm This new problem should not be too hard (no floating point required) so you can work on it while watching bowl games etc. First solution submitted gets first place unless it gets bumped by a significantly faster simpler solution. Next week’s problem involving hash tables will be more challenging, but also more useful. Congratulations to Lindy Mayfield for the second solution to problem #8. This solution uses a series from a Rexx program that has all positive terms and only requires 3 floating point (multiply, divide, and add) instructions per iteration. However, it requires 39 iterations to reach 33 significant digits of precision compared to 7 for Melvyn’s first place entry. Lindy and I jointly worked on debugging the assembler version of the Rexx program. I also added z390 CTD services to display value of Pi and the difference from known value of Pi on each iteration. This solution also uses inline version of LX and STX macros to simplify loading and storing of extended floating point values in storage. Any and all feedback, comments, suggestions, new problems, and solutions welcome. And Happy New Year! Don Higgins mailto:[EMAIL PROTECTED] http://don.higgins.net -- 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
z390 Mainframe Assembler Coding Contest - Update #5
All Update #5 - All z390 mainframe assembler coding contest solutions have been reformatted using new ZMFACC macro for portability across multiple OS and new problem and solution submission email methods. The source and generated log files for each of the ranked solutions are now directly accessible from the contest web page here: http://z390.sourceforge.net/z390_Mainframe_Assemble_Coding_Contest.htm These changes are intended to make the contest more accessible to all mainframe assembler programmers regardless of the particular mainframe platform and operating system they are using. Also the use of the contest email discussion group is now optional. Once all the customized versions of the ZMFACC macro are available for download, then everyone should be able to assemble, link, and execute solutions in their own environment and test any new solutions they would like to submit. To get the contest going I’ve been taking solutions in all forms and have tested and posted what I consider the best solutions in the new standard form. For example, I think the best solution to John Erhman’s problem #6 is the one submitted by Raymond Wong using exactly 5 instructions to covert from 1 to 32 bytes into the corresponding 8 to 256 zero and one bytes for display. The contest web page now has direct links to display both the source and the generated z390 execution log for each ranked solution. The links for Raymond Wong’s solution is here: http://z390.sourceforge.net/contest/p6/P6RW1.TXT http://z390.sourceforge.net/contest/p6/P6RW1.LOG I think second place goes to Bob Rutledge for his solution with single byte fetch, 6 instruction register only loop, plus single 8 byte store from 64 bit register and no tables required. It’s neat but I don’t think it will beat the 5 instruction solution to convert up to 32 bytes: http://z390.sourceforge.net/contest/p6/P6BR1.TXT http://z390.sourceforge.net/contest/p6/P6BR1.LOG The contest staff (me) is still looking for a few good programmers to volunteer to be moderators and judges. If you would like to volunteer, let me know. I’m also looking for customized versions of the ZMFACC macro along with sample JCL, CLIST, REXX, Perl, or other control scripts used to run the solutions in different mainframe operating system environments which can be posted on the contest website for new participants to download. All feedback and suggestions welcome. Don Higgins mailto:[EMAIL PROTECTED] http://don.higgins.net -- 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
Mainframe Assembler Coding Contest
There is a new Mainframe Assembler Coding Contest underway here: http://z390.sourceforge.net/z390_Mainframe_Assemble_Coding_Contest.htm I've just added direct link to Powerpoint presentation by Khristine Harper on Asembler in the 21 Century. There is also a new link to upcoming SHARE session search page where if you select search by topic, you will find 22 sessions on mainframe assembler. There are also now links to the online POP, HLASM, and z390 references. This contest is intended to help new assembly language programmers to learn the language and for old timers to share some of their knowledge. you are welcome to submit as many new problems and solutions as you like. I'm also still looking for a few volunteer judges to help rank solutions. Even the simplest problems may have numerious solutions with different performance and or results on different machines. Joining the contest email group using Yahoo ID provides access to the submitted programs for download, assembly, and execution. The email group is used for posting updates on problems and solution rankings along with contributor names and school affiliations. The email group is also for discussion of the submitted solutions. Currently there are 8 problems posted and proposed solutions have been posted on the contest group email site for most but not all of them. Solutions consist of ASCII mainframe assembler source programs which can be assembled, linked, and executed using www.z390.org open source portable mainframe assembler and emulator on Windows or Linux systems. Check out problem #6 submitted by John Erhman for which no solutions have been posted yet. Don Higgins [EMAIL PROTECTED] -- 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
Re: Is there any way that i can practice mainframe related subject without having access to one?
Sorry, Dave, I meant for the Java z390 assembler emulator. (-: Or maybe it could be done in Eclipse, that would be cool. That would be really cool, to write an assembler program in Eclipse like you write Java and have the z390 emulate, show errors, and debug. Lindy, all The open source z390 project has been developed, debugged, and maintained using Eclipse on both Windows and Ubuntu Linux. When I can't figure out what is causing a Java error processing assembler source in the macro assembler, I run the test program using Eclipse and set break-points at the processing methods in question. For large progams it is sometimes necessary to add Java code to test for specific condition and then put the breakpoint in that code to stop exactly where I want. Then you can step through Java code looking at variable values etc to see what went wrong. With the z390 trace options on you can also see the trace info generated for expression parsing etc. on the Eclipse console log which is helpful keeping track of where I am in the macro processor logic vs the lower level Java code. The same applies to the linker and emulator for debugging. I can use Eclipse to set breakpoint on the method for emulating any instruction such as MVC, MVCL, MVCLE, MVCOS and exec z390 load module program with TRACE and/or TEST options on to stop at a specific instruciton and step through the Java code watching the instruction register and memory fetches and the caculations and store operations performed. However, such Eclipse debugging is not for the faint of heart and unless one learns mainframe assembler and Java it could be very confusing dealing with multiple levels of abstraction and emulation. I do have the development of a z390 GUI interactive source level mainframe assembler debugger on my development list (RPI 104 opened 11/18/05) coming after VSAM and SQL support. See z390 open RPI list here: http://www.automatedsoftwaretools.com/z390/z390_Support_Request_Log.ht m Don Higgins [EMAIL PROTECTED] -- 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
Re: Is there any way that i can practice mainframe related subject without having access to one?
Mohammad 1) EXEC CICS support? The z390 macro processor has built in parser to convert EXEC CICS space delimited commands into standard macro comma delimited calls to EXEC macro which in turn routes macro call to macro for each supported EXEC CICS command such as SEND, RECEIVE, LOAD, LINK, XCTL, GETMAIN, FREEMAIN, PUSH, POP, RETURN. All the EXEC CICS support macros are in z390\cics directory. For more doc info link visit: http://www.automatedsoftwaretools.com/z390/z390_EXEC_CICS_Compatible_A ssembler_Support.htm 2) COBOL compiler support? There is no COBOL support as a part of z390. However the z390 SOA TCP/IP sockets messaging could be used to connect z390 client programs with server programs supporting mainframe COBOL and other languages on the same or different processors on TCP/IP network. 3) VSAM LDS support? I will add LDS option as it is really one of the easier options since all the J2SE NIO file support is linear based to start with. I'm interested in your DB2 comment as the next project after z390 VSAM is to add SQL support for new JDB built into J2SE 6.0 plus other SQL data bases such as DB2, MS-SQL, Oracle, etc. Don Higgins mailto:[EMAIL PROTECTED] http://don.higgins.net -- 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
Re: Is there any way that i can practice mainframe related subject without having access to one?
In addition to Hercules for emulation of MVS 3.8 on a PC, there is also the z390 portable mianframe assembler and emulator open source Java J2SE tool. You can download z390 from www.z390.org for installation on Windows XP or Vista using InstallShield. There is also a file image download for Linux which has been tested on Ubuntu Linux. Once z390 is installed, you can double click on the GUI desktop icon, then enter the command ASMLG demo\DEMO to assemble, link, and execute the HLASM compatible source for a HELLO WORLD demo that issues WTO 'HELLO WORLD' message via SVC 35. In addition to GUI interface, z390 can also be run from Windows command line. z390 includes common OS macros such as WTO, TIME, GETMAIN, FREEMAIN, OPEN, CLOSE, GET, PUT, READ, WRITE, CHECK plus structured programming macros including IF, ELSE, ENDIF, DO, ENDO, PERFORM, PEXIT, etc. z390 support all the problem state instructions in the latest POP including DFP, HFP, and BFH floating point instructions. z390 supports AMODE/RMODE 24 and 31 for up to 2 GB memory access. z390 maps QSAM, BSAM, and BDAM I/O onto the host OS file system using J2SE runtime NIO so z390 programs can access any files on the host and share them with other non z390 applications. z390 downloads include all Java source plus lots of demos and regression tests which make it a useful learning tool. For example, there is source for SUPERZAP.MLC structured assembler utility to dump, search, and/or patch any file on the host operating system. z390 supports TCP/IP network communications and SOA type applications using TCPIO SVC for client and server sockets messaging. z390 now has a new CICS compatible transaction manager contributed by Melvyn Maltz supporting multiple TN3270 local and remote clients. Currently z390 support for VSAM is under development to support ESDS, RRDS, and KSDS files with fixed or variable length records up to 2 GB with any number of alternate indexes and file sizes up to 2**63. Don Higgins [EMAIL PROTECTED] -- 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
Re: Cross-assembler : HLASM -- 8086
It is possible to write code that runs on both the mainframe and a PC. If you want to run mainframe assembler (alias HLASM, ASMH, ASMG, ASMF etc) on the PC including privaledged operating system dependent instructions then you will need an OS emulator like Hercules which emulates down to the channel program level using virtual OS files on virtual OS volumes etc. If you just want to use the power of the mainframe assembler macro processor and the rich capabilities of the problem state instruction set including all the data formats such as packed decimal, hex and binary floating point up to 128 bit precision plus the new decimal floating point, then you can use the www.z390.org open source J2SE based portable mainframe assembler. z390 assembles and links mainframe assembler code into mainframe compatible object code. The object code can be executed on Windows Vista, XP, or Linux or any J2SE compatible computer OS platform. z390 is targeted to be compatible at the macro interface for the most common MVS type macros such as OPEN, CLOSE, GET, PUT, READ, WRITE, CHECK, GETMAIN, FREEMAIN, TIME, WTO, etc. Different SVC's are generated which pass arguments to native J2SE Java svc routines which can perform I/O and other operating system functions using any J2SE supported files etc. The most recent z390 version v1.3.04 can execute a BCT mainframe instruction loop at over 1.6 MIPS on an Intel 2.1 GHZ Duo Core Processor running Vista. The most recent version also includes an EXEC CICS compatible subset tranaction processor allowing a CICS tranaction server on a TCP/IP network to support multiple remote CICS terminal clients on the network. This was contributed by Melvyn Maltz with open source and demos included. Don Higgins [EMAIL PROTECTED] -- 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
Re: Inquiry Web Services using simple cobol programs
Romain, all There is an assembler demo SOA application that is installed with z390 which illustrates how a main program calling to service routines can be run as statically linked program or can automatically regenerated as an SOA client server application just using TCP/IP sockets. The generated client and server programs can be run on any two processors that share access to a TCP/IP network and support J2RE Java runtime 1.5.0+. Download and install z390 with Installshield for Windows or file zip for Linux and look in the readme z390\soa directory. All the sources for the demo application and the macro based generator are in the z390\soa demo and maclib directories. There is a z390 SOA User Gudie on the www.z390.org website here: http://www.automatedsoftwaretools.com/z390/z390_Service_Oriented_Architectu re_Support.htm z390 is an open source Java J2RE based tool so you can view all the Java code that supports the TCPIO svc for TCP/IP client and server sockets in the z390\src\sz390.java support module. To use such a TCP/IP sockets solution, your COBOL client could call a z390 assembler client via JNI or other existing interface or it could use an existing sockets interface following similiar approach. Note the current v1.3.01 version of z390 from www.z390.org only supports single connection to z390 server application, but the next release with PTF 554 will support multiple client connections to z390 server. Following the recent SHARE session 2845 on z390 portable mainframe assembler and emulator, there was interest in running z390 on Linux/390 for similar purpose of connecting applications in COBOL and assembler across different OS's and platforms using open source standard interfaces. Don Higgins Automated Software Tools - home of www.z390.org [EMAIL PROTECTED] Date: Fri, 23 Feb 2007 10:03:12 +0100 Reply-To: IBM Mainframe Discussion List IBM-MAIN@BAMA.UA.EDU Sender: IBM Mainframe Discussion List IBM-MAIN@BAMA.UA.EDU From: CAPRON Romain [EMAIL PROTECTED] Subject: Inquiry Web Services using simple cobol programs Content-Type: text/plain; charset=us-ascii Hello to everyone, I'm just posting this message in order to know if someone knows a solution to query a Web Services hosted on a distant open server with a cobol program running a z/OS LPAR ? Does we need Websphere softwares or not... Thanks a lot in advance for your advices, Romain. -- 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
Re: SHARE Forcast
Wayne, all Well living in the Tampa Bay area, I can report that it has been a mild winter with typical 70-80 degree afternoons and absolutely no snow since we had a few flurries back in 1977 or so. Bring your bathing suits and head over to the gulf beaches on Sunday. The water might be a bit cool in the 60's but you can get some great pictures to take home to your snow bound friends. Don Higgins [EMAIL PROTECTED] www.z390.org -- 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
Another free open source TN3270 client alternative from www.z390.org
From: John D. Slayton [EMAIL PROTECTED] Sent: Sunday, February 04, 2007 1:21 PM Is there any free (NOT SHAREWARE) TN3270 client that I can download off the net please? Can anyone list some good free ones that there I can find? John, all The z390 Portable Mainframe Assembler open source project www.z390.org offers another alternative for supporting TN3270 client. if you download and install the latest z390 v1.3.00 for Windows or Linux, you will find it has a Graphical User Access Method (GUAM) option which includes basic TN3270 client supporting full screen TGET and TPUT macro svc interface. There are demos including DEMOGUI6 which illustrate support of multiple tabbed fields, numeric fields, color, PF keys, etc. The z390 GUAM TN3270 support written in J2SE Swing GUI Java could easily be combined with the new z390 Service Oriented Architecture (SOA) client server messaging support which uses J2SE Java TCP/IP sockets support. The result would be a functioning TN3270 client on a TCP/IP network. I will add a demo z390 TN3270 client driven by another z390 server running on the same TCP/IP network in the near future. All that is required to start testing this new z390 option is to pair up the existing TGET and TPUT interfaces to the GUAM TN3270 client interface with the existing TCPIO SEND and TCPIO RECEIVE interfaces. There is also an existing SOA client server demo using the TCP/IP support for messaging. It may well take a little work on the part of interested z390 project members, but the result will be a portable open ended TN3270 solution. On a related note, prolific z390 project developer Melvyn Maltz has a brand new proto-type CICS transaction processor up and running using z390 with some very interesting initial transaction rate statistics with z390 transaction manager using CMDPROC multi-tasking support to drive multiple transaction processing tasks. z390 is written entirely in J2SE Java and supports the assembly and execution of mainframe assembler on any platform supporting J2SE. z390 includes extensive demos and regression tests and has been fully tested on Windows XP/2000 and Ubuntu 6.06 LTS Linux. To learn more stop by the SHARE presentation in Tampa, Florida on Monday Februrary 12, 2007 at 3:00 PM, visit www.z390.org, and join the z390 user email group discussion. Don Higgins [EMAIL PROTECTED] -- 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
Re: COBOL and Java interoperabitiliy
I would like to throw out another alternative for COBOL and Java interoperability that can be implemented on any platform or multiple client server platforms supporting TCP/IP sockets. All that is required on the COBOL client side is a callable TCP/IP sockets client interface. On the server side all that is required is a J2RE server sockets interface. For an example of a mainframe assembler client running on one processor (a PC Windows XP or Ubuntu Linux client) calling a mainframe assember SOA type service running on another processor on the same host or different processor on the same TCP/IP netowrk (a PC Windows XP or Ubuntu Linux server), visit www.z390.org. The latest z390 release v1.3 includes an open source SOA application generator to enable any client assembler application to call assembler service routines running on the same or differnt processor. The demo uses J2RE sockets interfaces on both sides since both the demo client and the demo server application code is running under J2RE emulation. However, either side can be replaced with COBOL or any other language that has callable access to a TCP/IP sockets interface. All the source code required to download and execute the demo client server application is on the www.z390.org website. There is also a PDF user guide here: http://www.automatedsoftwaretools.com/z390/z390_Service_Oriented_Architectu re_User_Guide.pdf Don Higgins [EMAIL PROTECTED] Jan MOEYERSONS wrote: The fact is that JMS is a Java interface for accessing Message-Oriented- Middleware. JMS requires something else (the MOM) to implement the actual messaging for it. Typically, on mainframe, that MOM will be MQ-Series (sorry, WebSphere MQ...) The point I wanted to make is: on the Linux side, you may very well have a Java program talking JMS, underpinned by MQ-Series for Linux. Connect the latter to MQ-Series on mainframe and have regular COBOL programs talk regular MQI verbs to get and put messages natively to the queues. That way, you are not necessarily obliged to run Java on the mainframe. You will need to read up on JMS. There is a bit of work to do in order to format a message from a native program such that JMS can indeed deliver it to the Java application. Google is your friend. -- 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
Java Packed Decimal
Benjamin, all Yes there are Java J2SE compatible open source routines available as part of the www.z390.org portable mainframe assembler and emulator project which provide standard operations plus conversion between all the mainframe data types including: 31 digit packed decimal; floating point HFP and BFP short, long, and extended; fixed point 32, 64, and 128 bit integers; plus conversion to and from decimal character fields containing sign, digits, decimal point, and exponent when required to fit within 45 character maximum field width. These formats support numbers in the range 1E-4932 to 1E+4932 with precision up to 34 decimal digits for floating point and 39 decimal digits for 128 bit integers. The pz390.java emulator uses the Java primitive data types int, long, float, and double to support 32 bit integers, 64 bit integers, 32 bit BFP and 64 bit BFP floating point wherever possible. For the data types including packed decimal which do not fit within these primitive types, the Java classes BigInteger and BigDecimal are used to support arbitrary precision numerical values. The floating point operations are performed with extra guard digits and then rounded to the required HFP or BFP precision and bit formats. With the latest z390 PTF v1.1.01b due out this week, two new macros are being included called CTD and CFD to convert between 128 bit integer or any of the 6 floating point types and a decimal display character field. The default for these macros is to use LINKAGE=SVC for z390 svc 170 and 171 implemented in Java for speed. However, LINKAGE=MF for mainframe can be specified to call mainframe assembler routines to perform the conversions so the macros and routines can be ported to the mainframe as required. Many thanks to Dave Bond with www.Tachyonsoft.com for contributing the FPCONVRT floating point mainframe compatible routines. These routines have option for z architecture support level with level 5 indicating use of all the latest instructions. The routines use many of the HLASM more advanced features such as LOCTR and EQU operands 4 and 5 plus they use new processor features such as 20 bit signed displacements so it has been a great compatibility test case for the z390 assembler and emulator. It was also a great test case for compatibility between the Java and mainframe floating point support. Two new regression test programs TESTFPC1 and TESTFPC2 test conversions covering the entire range of floating point values from LB'(MIN)' to LB'(MAX)' using both the SVC and MF options. Don Higgins [EMAIL PROTECTED] from Benjamin While A primative data type in a programming language is one that is explicitly supportd in the language. A data type that is not made up of other data types. I was referring to the programming language not the hardware support I want to use Java on our Z/Series mainframe. The Java programs will need to read records and databases that have packed decimal data. Java does not have a packed decimal data type. I am looking for classes or routines that will allow the Java programs to process the paced decimal data. -- 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
COBOL floating-point revisited
John If you need a way to support all the IBM HFP and BFP formats including short, long, and extended formats using just COBOL and Java, then you may find the open source z390 Portable Mainframe Assembler and emulator tool useful. It is written entirely in J2SE Java and supports all the problem state instructions including floating point and the new z9 opcode additions which include a few new floating point instructions. z390 uses the Java native float, double, and BigDecimal class to perform single (32 bit), double (64 bit), and Extended (128) floating point operations. There are also many useful instructions for converting between the floating point types and integer, packed decimal, and zoned decimal. z390 includes a regression test source program TESTFP1 which performs tests of each floating point instruction. For more information visit www.z390.org. Don Higgins [EMAIL PROTECTED] Message from John W. Gilmore As many of you know, IBM Enterprise COBOL supports only single- and double-precision IBM hexadecimal floating-point (HFP) data types. In particular, it does not support extended-precision HFP or any of single-, double-, or extended-precision IEEE binary floating-point (BFP) values. Moreover, it would be fair to say that this support is scarcely missed: Few COBOL programmers would make spontaneous use of it if it were available. Java, on the other hand, makes heavy, very heavy, use of BFP, often in situations in which it is not even apparent to a naif Java programmer that it is doing so. My experience in trying to interface a new Java subsystem with some existing COBOL routines was thus discouraging. It was not possible to avoid the use of HLASM interfacing/transmitter routines, which are not maintainable by COBOL or Java programmers, in order to do so. In the upshot I have had to recommend to my client that it avoid any future use of COBOL in many situations; and, while this does not greatly distress me personally, it does suggest that that the issue of what COBOL should support is more complicated than many discussions of this issue here have suggested. John Gilmore Ashland, MA 01721-1817 USA -- 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