Thursday, February 28, 2013

Links to some interesting Mainframe Tools

http://mainframe-abend-assist.software.informer.com/
ABEND ASSIST is used to find the solutions for Mainframe Error Codes and Abnormal Ends.

http://nexus-mainframe-terminal.software.informer.com/
A Telnet 3270/5250/VT220 terminal and printer emulator.

http://mocha-w32-tn3270.software.informer.com/
For easy work with IBM Mainframe sessions, try the popular TN3270 emulator.

http://openroad.software.informer.com/
OpenROAD is a rapid application development solution.

http://e-term-for-ibm.software.informer.com/
Fast host access to your IBM mainframe or AS/400 using through Telnet.

http://db2-enterprise-server-edition.software.informer.com/
Satellite administration capabilities allow DB2 UDB ESE.

http://hostexplorer.software.informer.com/
Today's fastest desktop connection to enterprise hosts,including IBM mainframe, AS/400 and UNIX systems.

http://vedit.software.informer.com/
VEDIT quickly edits, translates and sorts any text, data, binary or EBCDIC file.

http://seetest-studio.software.informer.com/
A testing software for legacy products, desktop applications, or terminals.

http://ibm-rational-developer-for-system-z.software.informer.com/
It consists of modern development tools for mainframe application development.

http://rptview32-for-windows.software.informer.com/
RptView allows you to view, print, and extract information from reports.

http://ibm-rational-developer-for-zenterprise.software.informer.com/
IBM Rational Developer for zEnterprise is an unified development tool.

http://cobol-it-cobol-compiler-suite-enterprise.software.informer.com/
Users can gain access to documentation and knowledge bases.

http://tinycobol.software.informer.com/
TinyCOBOL is a COBOL compiler based on the COBOL 85 standards.

http://cobol-it-developer-studio.software.informer.com/
COBOL-IT Developer Studio includes an interactive debugger.

http://rm-cobol.software.informer.com/
Provides a platform to integrate and modernize COBOL applications.

http://recordedit.software.informer.com/
RecordEditor is a a data file editor for fixed width (text and binary) files.

http://micro-focus-visual-cobol-2010-for-eclips.software.informer.com/
Deliver a single solution for COBOL development across Linux, UNIX and Windows.

http://ibmmainframes-com-online-browser.software.informer.com/
This online browser allows you to search in your terminal without IE.


The most interesting of all is
http://www.hercules-390.org/
You must check out this link to know more about how to run MVS on ur PC. Hercules is an up-to-date Mainframe Simulator.A boon for Systems Programmers.


GPA CALCULATOR IN COBOL!

All of us mention our GPAs in the CV. Some of us are not so proud of the scores ;)
But have you ever wondered that you can write the logic of GPA Calculation using pure COBOL Code?

Have a look!


******************************************************************
      * This program determines the semester GPA and the cumlative GPA
      * of the student.  The user inputs their student number, then
      * asks for info about one course which is the course number,
      * credits, and grade.
      *                                                                *
      ******************************************************************
      *
       Environment Division.
      *
       Data Division.
      *
       Working-Storage Section.
      *
       01 WS-Student-Data.
      *
           05 WF-Student-Number        pic 9(5).
           05 WF-Course-Number         pic 9(6).
           05 WF-Credit-Hours          pic 9.
           05 WF-Grade                 pic 99.

       01 WS-Switches.
           05 WD-Response              pic x(3).
           05 WD-New-Student           pic x(3).

       01 WS-Total.
           05 WT-Student-Count         pic 9(3).
           05 WT-Cumlative             pic 99v999.
           05 WT-Credits               pic 99.
           05 WT-Total-Grade           pic 99.
           05 WT-All-Students-GPA      pic 99v999.
           05 WT-All-Students-Credits  pic 999.
      *
       Procedure Division.
      *
       000-Main-Rtn.
      *
           Perform 100-Init-Rtn Thru 100-Init-Rtn-Exit
               Until WD-Response = 'no'
           Perform 200-Process-Rtn Thru 200-Process-Rtn-Exit
               Until WD-Response = 'no'
           Perform 300-Display-Rtn Thru 300-Display-Rtn-Exit
           Display 'END OF SESSION'.
      *
       100-Init-Rtn.
      *
           Display 'Please enter your student number & press enter key'
           Accept WF-Student-Number
           Display 'Please enter the course number & press enter key'
           Accept WF-Course-Number
           Display 'Please enter the number of credits & press enter'
           Accept WF-Credit-Hours
           Display 'Please enter your grade & press enter key'
           Accept WF-Grade.
           If WF-Grade = 'A'
               Add 4 to WF-Grade
           If WF-Grade = 'B'
               Add 3 to WF-Grade
           If WF-Grade = 'C'
               Add 2 to WF-Grade
           If WF-Grade = 'D'
               Add 1 to WF-Grade
           If WF-Grade = 'F'
               Add 0 to WF-Grade
           Add WF-Credit-Hours to WT-Credits
           Add WF-Grade to WT-Total-Grade
           Display 'Do you have another class to enter yes/no?'
           Accept WD-Response
           if WD-Response = 'no'
               Display WF-Student-Number
           Divide WT-Total-Grade by WT-Credits giving WT-Cumlative
               Display WT-Cumlative
           Add WT-Cumlative to WT-All-Students-GPA
           Add WT-Credits to WT-All-Students-Credits.

      *
       100-Init-Rtn-Exit. Exit.
      *
       200-Process-Rtn.
      *
           Initialize WD-Response
           Initialize WD-New-Student
           Display 'Is there another students GPA you wish to
      -'enter yes/no'.
           if WD-New-Student = 'yes'
               add 1 to WT-Student-Count
           Accept WD-New-Student
           Display 'Please enter your student number & press enter key'
           Accept WF-Student-Number
           Display 'Please enter the course number & press enter key'
           Accept WF-Course-Number
           Display 'Please enter the number of credits & press enter'
           Accept WF-Credit-Hours
           Display 'Please enter your grade & press enter key'
           Accept WF-Grade.
           Display 'Do you have another class to enter yes/no'
           Accept WD-Response.
           if WD-Response = 'no'
               Display WF-Student-Number
               Divide WT-Total-Grade by WT-Credits giving WT-Total-Grade
               WT-Credits
               Display WT-Cumlative
           Add WT-Cumlative to WT-All-Students-GPA
           Add WT-Credits to WT-All-Students-Credits.

       200-Process-Rtn-Exit.  Exit.
      *
       300-Display-Rtn.
      *
           Divide WT-All-Students-GPA into WT-All-Students-Credits
           Display WT-All-Students-Credits.
      *
       300-Display-Rtn-Exit.  Exit.

Links to some interesting articles on MAINFRAME



Came across a super funny and highly informative article on COBOL :P
Here's the link : http://www.codinghorror.com/blog/2009/08/cobol-everywhere-and-nowhere.html

This one's deep!
Here's the link : http://www.insurancenetworking.com/blogs/cobol-use-legacy-systems-29484-1.html

And this? Plain irony... sigh!
Here's the link : http://news.cnet.com/8301-30685_3-57376406-264/end-of-an-era-nasa-shuts-down-its-last-mainframe/

Reversing a String in COBOL

The INSPECT VERB or the REVERSE FUNCTION might easily solve this question.
But coming up with a logic for the same is a puzzle.

Lets say we are given 2 string data-items as follows and we want 'AIDNI' to get populated into the second dada-item:

77 WS-STRING1 PIC X(5) VALUE 'INDIA'.
77 WS-STRING2 PIC X(5).

Declare another data-item WS-COUNTER to 5.

77 WS-COUNTER PIC X(5).

Perform the following logic till WS-COUNTER is 1.

IF WS-COUNTER = SPACES
     SUBTRACT 1 FROM WS-COUNTER GIVING WS-COUNTER
ELSE
     MOVE WS-STRING1(WS-COUNTER:1) TO WS-STRING2
     SUBTRACT 1 FROM WS-COUNTER GIVING WS-COUNTER
END-IF.

DISPLAY WS-STRING1.
DISPLAY WS-STRING2.

And we get the desired O/P in teh spool as follows:
********************
INDIA
AIDNI
********************

Problem solved! :)