tag:blogger.com,1999:blog-6264947694886887540.post5627998548506504008..comments2024-03-27T22:51:35.227-07:00Comments on Ken Shirriff's blog: Booting the IBM 1401: How a 1959 punch-card computer loads a programKen Shirriffhttp://www.blogger.com/profile/08097301407311055124noreply@blogger.comBlogger19125tag:blogger.com,1999:blog-6264947694886887540.post-2000189926395268552023-08-22T10:20:00.393-07:002023-08-22T10:20:00.393-07:00No, Jecel and Ken. If the cards were dropped and p...No, Jecel and Ken. If the cards were dropped and picked up out of order the program would not run since execution takes place as each card is loaded, not after all cards (instructions) are loaded. The "1040" instruction in each card tells the system to Read the next card and branch to position 040 to execute the next sequence of loading instructions which must be done in card sequence order.Flyzonehttps://www.blogger.com/profile/02468678434188341456noreply@blogger.comtag:blogger.com,1999:blog-6264947694886887540.post-13763529038484878522022-04-02T06:56:01.018-07:002022-04-02T06:56:01.018-07:00If you want to program and run the IBM-1401, searc...If you want to program and run the IBM-1401, search for "1401 simulator" and you will soon learn about "ROPE". This package makes it easy to write programs in 1401 Auto-coder and assemble and run them.<br />Caution - you may get hooked all over again. Some of the links are captivating!Keith Falknerhttps://www.blogger.com/profile/10225905423392604786noreply@blogger.comtag:blogger.com,1999:blog-6264947694886887540.post-66562077502915398322021-06-20T13:17:22.328-07:002021-06-20T13:17:22.328-07:00In the 1970s, if you made a wrong perforation in o...In the 1970s, if you made a wrong perforation in one card, you would lose a day, of the deadline for submitting the work! By default, we have become an extremely detail-conscious generation! I worked on an English computer I.C.L. in Bucharest.ro-larihttps://www.blogger.com/profile/09436377802912170633noreply@blogger.comtag:blogger.com,1999:blog-6264947694886887540.post-83920144738799976152021-02-27T11:23:32.624-08:002021-02-27T11:23:32.624-08:00Very nice article. Small correction about modern c...Very nice article. Small correction about modern computers. “System starts in a primitive state without caches or virtual memory”… that was true some time ago, but in modern world it's the exact opposite: system starts with cache as the only memory available! It then proceeds to execute “the Intel reference code binary required to get memory up and running”… (see here: https://lwn.net/Articles/537791/ )<br /><br />I was surprised to find out that it's done like that, but after some thinking realized that it made perfect sense: cache is pretty large in modern CPU, it's always there, it's always available, so why trying to teach hardware to initialize DRAM (which is not exactly trivial nowadays) and make it running in hardware when software can easily do that?<br /><br />The flipside of that is obvious: you couldn't run anything on a modern system without executing some proprietary Intel code which does god-know-what.<br />khimhttps://www.blogger.com/profile/01503468649071055869noreply@blogger.comtag:blogger.com,1999:blog-6264947694886887540.post-62274334402884262602021-02-26T07:07:24.537-08:002021-02-26T07:07:24.537-08:00After 40 years of computing with binary representa...After 40 years of computing with binary representations, it takes a lot of effort for me to grok how this “decimal” computer thinks. I love it.00hhttps://www.blogger.com/profile/16349928645143964977noreply@blogger.comtag:blogger.com,1999:blog-6264947694886887540.post-1591686084728873212021-02-23T18:19:14.687-08:002021-02-23T18:19:14.687-08:00What @Stan said. One of the [few] joys of core-mem...What @Stan said. One of the [few] joys of core-memory era minicomputers was the ability to power it on, toggle in the OS resume address, and (if it'd been turned off properly) you just hit Load Address, Start and resume where you left off.<br />J. Petersonhttps://www.blogger.com/profile/12806782144216332723noreply@blogger.comtag:blogger.com,1999:blog-6264947694886887540.post-69699765838462159682021-02-23T18:11:17.400-08:002021-02-23T18:11:17.400-08:00Relating to the comment " Some early minicomp...Relating to the comment " Some early minicomputers and microcomputers lacked ROM and took a step backward, requiring the user to tediously toggle in boot code through switches on the front panel. "<br /><br />The HP 2100 systems had a special area of memory that was reserved for the boot code.<br />The user had to input the code for the selected boot device by the front panel switches.<br />Ounce entered, that code is protested and as with core memory, it remains in the machine.<br /><br />Stan Paddockhttps://www.blogger.com/profile/07361748424383311057noreply@blogger.comtag:blogger.com,1999:blog-6264947694886887540.post-89969024878690188292021-02-23T17:12:17.829-08:002021-02-23T17:12:17.829-08:00At the University I went to, they charged for ever...At the University I went to, they charged for everything on their 360, including the number of cards read. This led programmers to store their data in binary, which let them stuff much more data on each card and cut down on their card count. However this resulted in "lace cards" which had so many holes in them that they lost their rigidity and often got jammed in the card reader. The operators hated those since they had to stop the reader, clear the jam, then put the offending card back in and single-step it before they could get back to reading their comic book.Michelehttps://www.blogger.com/profile/11446439300213187649noreply@blogger.comtag:blogger.com,1999:blog-6264947694886887540.post-49694105333255203472021-02-23T15:15:47.871-08:002021-02-23T15:15:47.871-08:00Thank you for your reply, Ken. The way I read it ...Thank you for your reply, Ken. The way I read it in your article implied that "of course there's only this way to do it" so I thought I must have missed something.<br /><br />I fully understand the limitations of the hardware at the time. I had in mind using modern hardware to make more optimal cards for the machine.willmorenoreply@blogger.comtag:blogger.com,1999:blog-6264947694886887540.post-44826753129075617682021-02-23T14:55:23.207-08:002021-02-23T14:55:23.207-08:00The 1401 and 1130 were the first computers I worke...The 1401 and 1130 were the first computers I worked on.<br />On the 4K (decimal) 1401, we mostly used SPS for administrative-type programming. That was around 1969.<br />I do remember getting frustrated with the assembly process for trivial programs, so I wrote a one-card boot loader that accepted any number of cards containing machine instructions separated by a never-used keypunch character (I think it was yen, ¥); the loader set work marks based on that symbol. A double ¥¥ started the program.<br />Tricky to get it to fit on a single card, but it saved me much time afterwards… thanks for bringing back these memories!Rainer Brockerhoffhttps://brockerhoff.net/blognoreply@blogger.comtag:blogger.com,1999:blog-6264947694886887540.post-29891412860320648522021-02-23T13:58:15.102-08:002021-02-23T13:58:15.102-08:00I take it that the $101 amount IBM charged for the...I take it that the $101 amount IBM charged for the Binary column option, was not interpreted as $5 although I assume they chose 101 to represent a binary value?MHughttps://www.blogger.com/profile/11838100678684776690noreply@blogger.comtag:blogger.com,1999:blog-6264947694886887540.post-49685972364471677272021-02-23T13:21:50.916-08:002021-02-23T13:21:50.916-08:00Jecel: yes, this loader should handle the cards in...Jecel: yes, this loader should handle the cards in random order, but I haven't tried that out. Willmore: there are optimizations that could be done. However, the assembler ran in 2K of memory, so there wasn't space for a two-card buffer or clever optimizations.Ken Shirriffhttps://www.blogger.com/profile/08097301407311055124noreply@blogger.comtag:blogger.com,1999:blog-6264947694886887540.post-41949935355653580982021-02-23T12:45:04.294-08:002021-02-23T12:45:04.294-08:00I am confused why there is a limit of 6 word marks...I am confused why there is a limit of 6 word marks per program card. There looks like there's more space that's unused. Like the habbit of always putting the loader code at column 40. That seems arbitrary. Couldn't the cards be packed by adding code until you ran out of columns of data+loader and having the previous card jump to the beginning of the loader (where ever it might be on the following card)? You'd need a two card buffer as you couldn't emit a card until you knew what you were going to put on the next one.<br /><br />Am I missing something important?willmorenoreply@blogger.comtag:blogger.com,1999:blog-6264947694886887540.post-39899412271612932012021-02-23T11:41:20.252-08:002021-02-23T11:41:20.252-08:00When I learned about boot-strapping (as a computer...When I learned about boot-strapping (as a computer term), I soon learned it came from a physical boot and not the computer's boot process. Then I was even more confused.Mark Jeronimusnoreply@blogger.comtag:blogger.com,1999:blog-6264947694886887540.post-53513137703441811982021-02-23T08:07:51.413-08:002021-02-23T08:07:51.413-08:00You may like 1401s I Have Known https://multicians...You may like 1401s I Have Known https://multicians.org/thvv/1401s.html<br />which has a one-card HELLO WORLD program and a little history.<br />thvvhttps://www.blogger.com/profile/05835948441215998008noreply@blogger.comtag:blogger.com,1999:blog-6264947694886887540.post-29446154642987042322021-02-22T23:53:37.288-08:002021-02-22T23:53:37.288-08:00First machine I worked on (in 1965) was an IBM1401...First machine I worked on (in 1965) was an IBM1401G with 4K memory.<br /><br />First program written in anger was part of a payroll system for Rank-Xerox at Denham, NW of London. No tape drives, just punched cards in and out and a printer. That had 64K memory IIRC. Roy Grubbhttps://www.blogger.com/profile/05588741490868787785noreply@blogger.comtag:blogger.com,1999:blog-6264947694886887540.post-55244737507538315982021-02-22T15:12:27.145-08:002021-02-22T15:12:27.145-08:00Since each program card includes the address into ...Since each program card includes the address into which its part of the binary should be loaded (as well as which marks to set) it seems to me that if you drop your deck and load the cards in random order everything would still work. As long as the first two and the last card are the right ones, of course.Jecelhttps://www.blogger.com/profile/02539806202828905363noreply@blogger.comtag:blogger.com,1999:blog-6264947694886887540.post-23477957220943252092021-02-22T13:53:21.113-08:002021-02-22T13:53:21.113-08:00Fascinating stuff, as always! Fascinating stuff, as always! Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6264947694886887540.post-71177008173348603912021-02-22T13:19:40.986-08:002021-02-22T13:19:40.986-08:00Punching sequence numbers in each card was a lot o...Punching sequence numbers in each card was a lot of trouble. So lots of times source program decks didn't have sequence numbers. Thus the diagonal line hack mentioned.Tenor Gilhttps://www.blogger.com/profile/11613740940910751757noreply@blogger.com