Go to 1401RestorationPage

1401 Emulation in 360

Table of Contents:
- Software Emulation? - from Van Snyder, Feb 23, 2012
- Software Emulation? - in a Mod 50 - from smd@att.net, Feb 23, 2012
- Notes from Robert Garner
- 360 Machines containing (optional) 1401 MicroCode from Bill Worthington
- IEEE article on 1401 Emulation in a 360 Mod 30

Software Emulation? from Van Snyder, Feb 23, 2012
Here are two files I found on a tape that Dick Weaver lent me.
- FILE011
- FILE012

They appear to be BAL source for a 1401 simulator, and a few updates. The program is identified as "modified version of 360D-11.1.019," modified by Dick Weaver at IBM-Armonk NY, June/July 1970.

If it does work, it would be useful to publish instructions how to use it in Hercules. Several anomalies have been discovered in the SimH 1401 simulator, which could only be verified to be correct or incorrect behavior by running test programs on a 1401, either in Sindelfingen or at CHM. Presumably, the 1401 simulator for the 360 was accurate. On the other hand, it wouldn't hurt to compare it to a real 1401 when questions arise.

Van Snyder

Software Emulation? - in a Mod 50 - from smd@att.net, Feb 23, 2012
> The IBM 1401 simulator was for the 360/50. As it was a pure simulator,
> perhaps it would work under Hercules.
> If anyone still has a copy of it.

Simcha Druck
On Behalf Of Simon
 Sent: Wednesday, February 22, 2012 11:52 PM
> To: Robert B Garner; 1401_team@computerhistory.org;
> 1401_software@computerhistory.org
> Subject: Re: [1401_software] Model 30 FPGA,console panel and 370/390/z
> open-source emulator CORRECTION
> I have used Hercules to run MVT [not MVS, sorry] with ASP, although I
> am more familiar with HASP. The emulator is extremely faithful, but I
> doubt if the 1401 emulator deck for the 2030 would work because it
> needs microcode to support it, as I recall.
> Back in 1968 or 1969 I wound up writing a 1401 simulator for the
> 360/30 under DOS because the IBM emulator did not support sterling,
> and my company used the sterling add and subtract all over the place.
> IBM did also have a software simulator for the 1401, but again, no
> sterling feature.
> Simon Wheaton-Smith
> www.illustratingshadows.com
> Phoenix, Arizona, W112.1 N33.5  

Notes from Robert Garner

Van notes below a "1401 compatibility mode" in 1410.

From my notes of our conversation this morning:

* 1410 and 7010 were generally incompatible ISA (5 character monotonic addressing, etc.)
* 1440 and 1460 used same 1401 instruction set, except for reader/punch
* 1240/1420 were compatible with 1401, but marketed to banks only.

And thanks for taking up the project of writing a paper on how 1401 systems where actually/typically used! (I suspect Dick might be willing to help edit/write such a paper.)

I'm still shocked by Fran Underwood's (cc'd on this email) remarks in his 1968 oral history that "750 1401's were sold within the first week" (that could have been about $2 billion of today's dollars!), and then a "couple thousand within the first 3 or 4 months". What were customers thinking? ;-) Sales folks must have gone berserk!

- Robert

p.s. And the 360 mod 40 had a 1401 compatibility mode too. ;-)

Which I assumed enabled beaucoup 360 sales before its late OS came along???

360 Machines containing (optional) 1401 MicroCode from Bill Worthington

Not only did the S/360 Model 40 have microcode to allow it to be a stand-alone 1401, the Models 25 and 30 had similar microcode. The S/360 became a 1401 until the microcode was invoked to reset it to being a System/360. It had nothing to do with S/360 operating system availability -- just customers who dragged their feet in converting their programs to run natively on the S/360.

There were also 1401 emulators for these System/360 models that came along a short time after S/360s being delivered. These allowed 1400 programs to be included with DOS/360 job streams. The 1400 emulator was invoked through normal job control. It provided a way for the 1400 feature (microcode) on the processor to execute the 1400 program instructions while I/O requests caused a privileged interrupt to the DOS/360 supervisor which transferred control to the emulator code which issued a normal I/O request to the supervisor. (I remember attending a meeting in White Plains with a group called Systems Engineering Technical Development [SETD] to discuss a program called COMPAT which provided this support several years before the emulator was transferred to the development division in Endicott.) When System/370 came on the scene, the Models 135 and 145 had similar emulator features that worked with DOS/370 and DOS/VS.

My recollection is that was a similar emulator which worked with OS/VS1. I vaguely remember microcode also allowed the S/360 Models 40 and 50 to emulate the 1410 and 7010. There were emulators for most of the "source" computers on what IBM hoped would be the target model of S/360. I remember the 7070 emulator on the S/360 Model 50. They were all charged features since IBM thought they would be used for a short time and then dropped when the customer had completed his migration. Not!!

Customers wanted to run 1400 programs on more than these processor models and writing microcode was relatively expensive. Software development took the lead and wrote a 1400 simulator which required no microcode. A version of the simulator also supported OS systems. This allowed customers to run 1400 (1401/1440/1460) programs on any System/370. The only downside was that, since it simulated the 1400, there was overhead with every 1400 instruction executed. However, this was largely covered by the faster S/370 processor speeds. I know that 1400 programs were running on 4300 processors in the 1980s and wouldn't be surprised if there were still some running today.

Note: I use "emulator" where there is microcode on the processor to assist the execution of the (1400) program. I use "simulator" when there is no special microcode to assist the execution.

Van is right on when he mentioned that the 1410 had a switch which made it a 1401. The bank that I worked for as a programmer from 1960 till 1964 had both a 1401 and a 1410. There were some 1401 program which were run on the 1410 because it was much faster. The main difference to us as programmers between the 1401 and 1410 Autocoders was that we used Input/Output Control System (IOCS) macros for card, printer and tape I/O on the 1410. We were hard pressed for memory with the 4K 1401 and used no IOCS because of the inefficiencies of the generated code. 1410 Autocoder also allowed labels of ten characters vs. six characters for 1401/1440/1460 Autocoder. There were also some additional instructions in the 1410's repertoire -- Move and Branch instructions come to mind.

P.S. The 1440 used different instructions for reader, punch and printer instructions. Otherwise the instruction sets were the same.