Please note: I did it just for fun! Of course, as a professional programmer I maintained some minimal coding standards, but don't expect too much. Just evoke these old good times when the computers were young!
If you are not familiar with Hercules and OS MVT, there is a list of sites (absolutely incomplete!) where you may download Hercules and OS, and get additional information:This is Jason!
Install Hercules and your favorite OS. Edit configuration file so that it specifies correct DASD and tape volumes. That's all. You don't need to add Hercules path to the environment, Jason will do this for you dynamically.Now copy jason.exe to your directory of choice. Hercules directory is a good choice. If your configuration file is called hercules.cfg, Jason will find it automatically. If necessary, create desktop shortcut.
Start Jason. It will attempt to locate Hercules executable and configuration file. Defaults are <jason directory>\hercules.exe and <jason directory>\hercules.cnf. If any file is missing, Jason will ask you to find them manually:
Sometimes Hercules stops or crashes on attempt to attach console printer. Probably this is my error, but I was unable to find the reason. To avoid this, leave checkbox Connect console printer unchecked. Other options will be explained elsewhere.
Now Hercules opens devices and reports them to Jason. Devices are displayed in the top part of the Jason window in order of their arrival. If necessary, rearrange them by pressing left mouse button on device and dragging it while pressing. First three devices (Bookshelf, Herculse console and CPU) are fixed and cannot be moved. Jason saves order of devices to the file jason.ini. Use right mouse button to scroll device strip.
At this moment, Hercules is running but CPU is paused and waits for your commands. Click on the CPU image, select CUU address of the booting device (frequently it's 150) and press IPL button. See the blinking lamps? Now, if your OS is a MVT 21.8, your system console terminal will show:
(It will show IEA101A SPECIFY SYSTEM PARAMETERS FOR RELEASE 03.8 if you are running MVS 3.8).
Excellent! Your mainframe is starting! What to do now is best described in the documentation delivered with the OS.
Bookshelf is a device made mostly of virtual wood. (A joke). It can keep references to the frequently used documents. Simply drag and drop your files here. Doubleclick on the title to open it in the default application. Bookshelf does not accept URLs.
Meaning of the buttons:This is a replacement for the original Hercules console. It also displays Jason messages (in orange). To send command to Hercules, type it in the bottom line and press Enter or Send.
To change the font, press button Hercules in the Jason setup dialog and select new settings. Only fixed-pitch fonts are allowed.
Left window on the bottom displays current state of the of CPU 0. Registers GR0-GR3 and PSW are mapped to the lamps on the front panel above. Multiprocessor systems are not yet supported.
To boot the system, select CUU address of the boot device on the rotary switches (mouse only!) and press IPL button. Default address is 150.
To change the font used to display contents of registers, press button Hercules in the Jason setup dialog and select new settings. Only fixed-pitch fonts are allowed.
The picture of the front panel corresponds more or less to the IBM System 360 model 65.
This device emulates IBM-3278-4 terminal. Only basic features, sufficient for monochrome operation, are implemented in the first version. Note also the following deviations from the standard:
Probably there are some other errors, which I was unable to find.
To change the terminal font, press button Display in the Jason setup dialog and select new settings. Only fixed-pitch fonts are allowed.
Emulation of special 3270 keys |
|
PC key |
3270 meaning |
Insert |
Toggles between Insert and Overwrite modes |
Enter |
Enter |
Esc |
Clear |
F1..F12 |
PF01..PF12 |
Shift+F1..F12 |
PF13..PF24 |
Ctrl+F1 |
PA1 |
Ctrl+F2 |
PA2 |
Ctrl+F3 |
PA3 |
Console printer in Jason is a pure printing device, without the possibility to reply from the keyboard. Its output is kept in memory. Button Save allows you to save output to the ASCII file. Button Discard clears contents of memory buffer.
To change the font, press button Console in the Jason setup dialog and select new settings. Only fixed-pitch fonts are allowed.
For unknown reasons, on some computers Hercules may stop responding or crashes if console is active. To prevent this, uncheck optionConnect console printer in the Jason setup dialog.
Printers in Jason are made "real-time". They artificially slow down the output, so that you can see the lines flowing on the screen. Unlike in original Hercules, output is not saved to the file. Rather, it is kept in the memory (approximately 1000 pages, 132x60 symbols each). New page processing is turned off. If control program requests new page, printer displays empty line with symbol '♀' in the first position (corresponds to form feed in 437/OEM code page). Jason has different graphical presentations for 1403 and 3211 printers. 3211 is faster, as in the real life.
To change the font, press button Printer in the Jason setup dialog and select new settings. Only fixed-pitch fonts are allowed.
Button Save allows you to save printout to the ASCII file. Button Discard clears contents of memory buffer.
This device combines card reader and puncher. To start a job, load ASCII file with deck image, edit it if necessary and press Submit button.
The built-in editor is tailored for card images. It has fixed line length of 80 columns. Columns 73-80 are preserved: you can edit them only if cursor is placed in this area. If you insert some text in the middle of the card, symbols that reach column 73 will be discarded. Selection, copy and paste operations work either with part of the single card or with several complete cards. You can't, for example, select text from column 10 on card 1 to column 20 on card 3. If you try this, editor will select cards 1 and 2. Empty fields are interpreted as spaces.
Button Card view toggles between coding form and punched card views. In the punched card mode, editing is fully supported, although you can see only single card at a time.
Tabulation depends on the language. Jason supports Assembler and Fortran. In the autodetect mode, Jason traces several first cards for strings like EXEC FORTHCLG. Cards containing reserved JCL combinations (// or /*) in the first two columns have their own tabulation stops, as listed in the following table:
anguage |
Tab stops |
None |
9, 17, 25, 33, 41, 49, 57, 65, 73, 81 |
JCL |
12, 16, 25, 33, 41, 49, 57, 65, 73, 81 |
Fortran |
6, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47, 51, 55, 59, 73 |
Assembler |
10, 16, 25, 30, 35, 40, 45, 50, 55, 60, 65, 73, 81 |
Ctrl+N renumerates the cards. If deck is small (less than 9999 cards), first card gets number 00010000, second - 00020000, and so on. Maximal length of the file is limited to 1,000,000 cards. Undo buffer keeps approx. 7500 cards.
To change the font, press button Editor in the Jason setup dialog and select new settings. Only fixed-pitch fonts are allowed.
Here is the list of supported keyboard shortcuts. Some of them are available in two forms. Variant 1 is a classical one (Microsoft), and variant 2 is used by Borland's IDE (I am a fan of Borland, and Jason is created with BCB 5.0). Both can be used interchangeably:
Editor shortcuts |
||
Variant 1 |
Variant 2 |
Action |
Ctrl+O |
Open file |
|
Ctrl+S |
F2 |
Save contents to file |
Ctrl+F |
Ctrl+Q, F |
Open text search dialog |
F3 |
Ctrl+L |
Search next |
F5 |
Toggle between form and card view |
|
Ctrl+A |
Select whole text |
|
Ctrl+N |
Renumerate cards (columns 73-80) |
|
Arrows |
Move cursor |
|
Home |
Move cursor to column 1 |
|
End |
Move cursor to end of text, then to end of label |
|
PgDn |
Move cursor 1 page down |
|
PgUp |
Move cursor 1 page up |
|
Ctrl+PgUp |
Move cursor to the first line |
|
Ctrl+PgDn |
Move cursor to the line following last |
|
Shift+(Arrows, Home, End, PgDn, PgUp) |
Extend selection |
|
BkSpc |
Delete previous character or merge lines |
|
Delete |
Delete next character |
|
Return |
Split line |
|
Ctrl+Z |
Alt+BkSpc |
Undo last action |
Ctrl+R |
Shift+Alt+BkSpc |
Redo last undone action |
Ctrl+X |
Ctrl+Del |
Cut selection to clipboard |
Ctrl+C |
Ctrl+Ins |
Copy selection to clipboard |
Ctrl+V |
Shift+Ins |
Paste clipboard to cursor position |
Ctrk+K, C |
Copy selection to cursor position |
|
Ctrl+K, V |
Move selection to cursor position |
|
Ctrl+K, Y |
Delete selection |
|
Ctrl+K, H |
Cancel selection |
|
Ctrl+Y |
Delete current line |
|
Ins |
Toggle between Insert and Overwrite modes |
|
Tab (Insert mode) |
Insert spaces till the next tab position |
|
Tab (Overwrite mode) |
Move cursor to the next tab position |
A card punch device keeps output in the memory buffer. To discard the deck, press Discard. If you want to save cards to file, press Save. Button Card view toggles between the coding form and punched card views.
Card punch uses the same editor as reader, but editing is not allowed. However, you can copy parts of the deck to clipboard.
If option List DASD and TAPE contents is active, each time new disk is mounted Jason calls utility dasdls.exe and redirects its output into the DASD window. Additionally, it displays volume label (VOLSER) on the disk cover.
Button Mount allows you to replace the volume. As far as I understand, Hercules does not allow to leave DASD device empty.
When option List DASD and TAPE contents in Jason setup dialog is activated, each time new tape is mounted Jason calls utility tapemap.exe and redirects its output into the associated window. Additionally, it displays volume label (VOL1) on the door.
If left reel has red protection ring, tape is mounted in the read-write mode and write operations are enabled. If ring is absent, tape is read only. Buttons have the following meaning: