On Saturday, July 13, 2019 at 9:19:37 PM UTC-4, Dan Espen wrote:
> > But according to Campbell-Kelly, the real genius of the 1401 was its
> > high speed card-reader and printer, faster than most to that point.
>
> They sure worked well. They got a bit faster when revamped for S/360.
>
> The OP code to read a card was "1".
> The OP code to print a line was "2".
>
> I read in the manual that OP code "3" would read a card and print a
> line. I never did work out a mainline design that could use that OP
> code.
The Reference Manual for the 1401 includes the following blurb
about delays in the I/O process:
Card Read Instructions
The card reader operates at a rated speed of 800 cycles
per minute (one cycle every 75 milliseconds). The card
reading speed depends on the timing of the READ A CARD
instructions in the program. To effect continuous cardreading
at the rate of 800 cards per minute, a READ A
CARD instruction must be given within 10 milliseconds
after the preceding card has been actually read into
the IBM 1401 Processing Unit. If more than 10 milliseconds
are required for processing, the card read
speed drops to 400 cards per. minute. This happens
because of the mechanical structure of the card feed.
There is only one point in the cycle during which a card
can feed, and if no read impulse signals the feed at
that time, the reader will be delayed for 75 milliseconds
(or until the same point in the following cycle).
The read release special feature permits job time
improvements by allowing more actual processing time
during the read cycle.
http://www.bitsavers.org/pdf/ibm/1401/A24-1403-5_1401_Reference_Apr62.pdf
I recommend the above manual as it gives a lot of interesting details
about the base model 1401 and optional features that could improve
performance, such as overlap and more storage instructions.
The manual also includes timing for each instruction. Theorectically,
someone could calculate in advance how long it would take a program
to run. However, it would seem that doing such calculations would
be rather tedious (they're not simple and they didn't have convenient
electronic calculators back then).
In typical practice, I don't know if programmers took the above
into consideration while programming. I heard of some who did,
such as doing a READ, then doing a few more instructions before
the data became available. I know a lot of effort was made to
improve hardware performance in 1401 days, and even in assembler
coding in S/360 days.
As to all the optional features for a 1401, I don't know how that
worked under S/360 emulation. I'm _guessing_ that emulation
included them, but maybe not.
I also have no idea how much the optional features cost, and whether
they were worth the extra cost in terms of added performance. I know
some sites were on a tight budget and could only afford the bare bones
equipment. For instance, some shops used the 024 keypunch, which unlike
the 026, did not have a print and was a little cheaper. The 1401 came
with as little as 1,400 characters of memory, and I knew of sites that
had only that. I have no idea what the various levels of memory
on a 1401 would cost--how much more did a 16k 1401 cost vs. a 1.4k?
As mentioned, in the later 1960s, IBM continued to offer the 1401
to new customers at a discounted price even though S/360 was
available. This only lasted for a few years as the 1401s
began to age in the 1970s and not be reliable for business service.
Of course, then IBM could sell the 1401 users a model 30 or 40.