3 ms·
My first personal computer was a Scientific Data Systems (SDS, later Xerox) Sigma 5, owned by Transdata in Phoenix, Arizona, in the summer of 1969. My high sch
by Stratoscope 6y ago
My first personal computer was a Scientific Data Systems (SDS, later Xerox) Sigma 5, owned by Transdata in Phoenix, Arizona, in the summer of 1969.
My high school had a Teletype machine with an account on this timesharing service. At the end of the school year Transdata hired me as "night operator" working the graveyard shift for $2/hour.
The fun part was that Transdata didn't offer their timesharing service at night! So the Sigma 5 was mine to do whatever I wanted with it.
I guess they figured I would at least make sure the building was secure, and maybe do something interesting and useful with the machine.
To run a batch job, you made a deck of cards with a boot loader card at the front. This card loaded the actual program from the next group of cards, and then that program would read and process the rest of the deck. Each card was 80 bytes.
Naturally, we tried to see what we could do with just a single card!
The Sigma 5 had a speaker you could toggle with an instruction, so one popular single card program toggled the speaker in a way that sounded like bird chirps.
Another popular card was a simple print program. Put this card at the front of a deck, and it would read the rest of the cards in the deck and print them on the line printer one by one.
But it was slow. It read a card, then printed the card and waited for that print line to finish because it was printing directly from memory. Only then it read the next card, printed that card, and so on.
I looked at the code and found there were a few bytes left, just enough to make the print program double buffered. Now it would read the first card into the first buffer and print it, and while it printed read the next card into the second buffer, then print from that buffer while reading the next card after, and so forth. It was twice as fast!
Of all the programs I've worked on since then - many of them massively more complex - this one sticks in my mind as something I'm proud of.
I just wish I still had that card.
- accrual 6y agoThat's a really wonderful anecdote, thanks for sharing! This was especially nice since I just read the Wikipedia article on double buffering so I immediately understood your work. https://en.wikipedia.org/wiki/Multiple_buffering https://en.wikipedia.org/wiki/Multiple_buffering
- prox 6y agoYou must be absolutely overwhelmed by the power of just one PC these days :) Great story!
- helicalspiral 6y agoSorry for hijacking your response but I have a question that you might know the answer to: how did using compilers work back in the punch card days? Say I write a deck of FORTRAN code. What do I do with it next? Do I stack the a deck of cards labelled "FORTRAN COMPILER" and append my stack of code and a card printer pops out cards punched out with machine code?
- ngcc_hk 6y agoIf no one reply you on that old machine I can answer for ibm machine which still use card reader concept in its jcl card deck. The cards you put up with has two // These are you control cards One of these will be program card The next card with dd * you will be your program ... An example is on p.88 of this manual http://www.computinghistory.org.uk/downloads/9041 http://www.computinghistory.org.uk/downloads/9041 , in fact follow up you have many details.
- jonjacky 6y agoYou could do just that, but the usual way was to put a single "control card" that invoked the FORTRAN compiler before you own code. This invoked a compiler that was already stored in the system, on tape or disk. The computer center had stacks of control cards for different functions like this - they were color coded - so you had to remember to get a pink card and put it before your program deck. It was possible to punch a binary output deck of your compiied program or even store it on disk or tape - there were different control cards for that.
- kens 6y agoOn the IBM 1401, there wasn't an operating system so compiling a program was like you said: you put a stack of cards with the compiler and your program in the card reader. The compiler ran in literally 63 phases since there wasn't enough memory to do very much at one time. Compilation took about 3 minutes plus .76 seconds per statement. Your executable got punched onto a stack of cards that you could then run. Things were faster if you had a tape drive. Your source code would normally be on cards, but the compiler would be on tape. You can see a video of FORTRAN II compilation on the 1401 here: https://www.youtube.com/watch?v=uFQ3sajIdaM https://www.youtube.com/watch?v=uFQ3sajIdaM Other comments described a later system such as the IBM System/360, where you had an operating system so you could use a card specifying Fortran compilation and you were set. Description of the compiler: http://ibm-1401.info/1401-IBM-Systems-Journal-FORTRAN.html http://ibm-1401.info/1401-IBM-Systems-Journal-FORTRAN.html