That is the most common response I hear. But one can only run an executable written for the S/360 instruction set on an emulator. If you need to fix a program you must convert machine code to a language first. Why. An executable, or binary, file is just a bunch of 1's and 0's. So for code that looks like: 0010 1011 1110 0101, it is impossible to know if that is an instruction, data, or a pointer (address). You need to convert the machine code to a language to be able to then modify the code. Take a look at these statements by Titor:
Titor: "Titor: “The 5100 has the ability to easily translate between the old IBM code, APL, BASIC and (with a few tweaks in 1975) UNIX.â€
Titor: “We need the system (IBM 5100) to “debug†various lagacy (sic) computer programs in 2036.â€
If you don't have a disassembler one can always use a debugger. A debugger (or monitor as it was called in those days) can be either a hardware monitor (the "blinking lights") or a software debugger. In fact a software debugger is a kind of an interactive disassembler that works in real time with the program running. Very handy. There are of course debuggers for high level languages too.
Here is one:
The
Tachyon 390 Cross Assembler permits you to assemble System/360, System/370, 370-XA, ESA/370 and ESA/390 assembler language programs on workstation machines. The language supported is highly compatible with IBM’s High Level Assembler release 5. The Tachyon 390 Cross Assembler assembles most programs that can be correctly assembled by the IBM assemblers. Source, macro and listing files can be read or written in ASCII or EBCDIC. The object files produced may be transferred to the mainframe system, linked into a load module, and executed. The Tachyon 390 Cross Assembler can be integrated with popular Integrated Development Environments and editors. The assembler also provides enhanced debugging information for Cole Software’s
XDC debugger.
And did you know you can acually buy these things? From the shelf. No problem.
As you can see you don't need an IBM 5100 for that. Any work station will do. At best I can imagine that the 5100 would be needed as a machine to communicate with a mainfrane. But that would be a poor choise.
For an example the character set of the 5100 was not a standard character set. That was changed in the IBM 5110 which was released in 1978. APL is using a lot of single characters that are actually some of it's instructions (or tokens - depending how you want to name it). You can imagine that this is a problem when these do not correspond to the ones on a mainframe. One should be very carefull with this.
The guy from the computer museum (I think you have a link of his site somewhere) told me that there is little change that an IBM 5100 was able to run System/360 code because it was actually missing the required supporting hardware.
We also found out that the built-in time sharing code was broken. So, it isn't simple to use the 5100 as a terminal.
If I am not mistaken the IBM 5100 was using a subset of the instruction set. It was intended to speedup development time. It saved the porting of the APL/BASIC code and thus reduced development costs. Also, the IBM 5100 had limited memory when compared to the mainframes. That would give severe problems when running production code.
Then there is the problem of the tape. The QIC 300 tapes are standard, but the IBM 5100 is missing a real-time clock. That means it cannot properly write time and date stamps to these tapes. Another problem is that the headers on the tape written by a 5100 were not binary compatible with other machines that used one of the data types. I think it was number 6. Not sure. The latter was fixed in the 5110.
We also have the problem of the disk drives. It didn't support any. That too was fixed in the 5110.
So... That simple fix Titor talked about is actually a series of fixes.
I wonder why they didn't use a standard work station or some of the early PC's specially equipped for the job. The IBM 5100 wasn't really portable. It used mains and was... 50 lbs... IIRC? Here is what I would use.
The IBM Information Systems Division that produced mainfraim computers, introduced the PC/XT 370 and 3270 PC computers in October 1983. These products were designed to be a link to IBM mainframe computers. They had special built-in hardware to emulate System/370 mainframes and were able to act as a 3277 display terminal. The PC/XT 370 used a 8088 and also had a 8087 for floating point instructions. In addition it used 2 Motorola MC68000 processors for emulation of the System/370 instruction set. It used 512KB RAM and an extra 256KB which brought the total to 768KB extended memory. It had a built-in 360KB floppy drive and 10MB (or optionally 20MB) hard drive. There was a software package available called VM/PC to interface with a mainframe.
The 3270 PC combined a standard PC with an IBM 3270 terminal. The base computer had 256KB, epandable to 640KB. The 122-key keyboard featured all keys of a standard PC and a 3270 terminal. The software allowed to access up to 4 programs concurrently on the host computer, two "notebook" transfer areas and a PC program. Seven windows could be defined to monitor the software being accessed.
Sounds handy to me. Don't you think so?