3 ms·
In 1985, my high school inherited an old PDP mini computer and we had to use optical cards to write BASIC programs in my Data Processing class. It was kind of a
by slantyyz 9y ago
In 1985, my high school inherited an old PDP mini computer and we had to use optical cards to write BASIC programs in my Data Processing class. It was kind of a trip, since most of the computer nerds had Apples, Commodores or whatnot at home.
The code and debug cycle was to mark your cards with a Sharpie, run them in the card reader, and then look at the printed output for bugs. If you were unlucky enough to have bugs AND drop your cards on the floor (I remember it happening to a couple of people in my class), you had to waste a bunch of time re-sorting your cards before you made the trip back to the card reader. Good times.
- mwcremer 9y agoHence columns 73-80 being used for a sequence number.
- kens 9y agoThere's interesting history behind why columns 73-80 were used for a sequence number. FORTRAN was developed on the IBM 704, which was a 36-bit machine. The hardware read punch cards "sideways", storing each row of the card in two words. The consequence was that you could only read 72 columns of a card. That left columns 73-80 unusable for programming. But if you punched a sequence number in these columns, a dropped deck could be easily sorted by a high-speed card sorter. Card sorters were an interesting technology, going back to the 1920s, way before computers. They sorted cards on one column at a time using radix sort, and were electro-mechanical. I wrote about them here: http://www.righto.com/2016/05/inside-card-sorters-1920s-data.html http://www.righto.com/2016/05/inside-card-sorters-1920s-data...
- WalterBright 9y ago> But if you punched a sequence number in these columns, a dropped deck could be easily sorted by a high-speed card sorter. I suppose heaven help you if you wanted to insert a statement between cards 37 and 38 :-)
- jacquesm 9y agoThat's why you numbered your cards with 2, 4 or even 8 spaces between each subsequent card number. That sort of forethought came from hard won experience ;)
- blattimwind 9y agoSimilar to how BASIC line numbers are multiples of ten - allows for insertion.
- jacquesm 9y agoIf you're going to dig around in the source code for a 1970's BASIC interpreter one of the more interesting commands to disassemble is 'RENUM'. It tells a lot about how the language stores its intermediate structure (not quite a bytecode, but it is highly tokenized). RENUM takes a program that has had insertions done to it and renumbers the lines so they are multiples of 10 again. For added complexity and to avoid overwriting your carefully laid out library calls with high line number subroutines for easy memorization you could limit the range within which the RENUM would operate. Typical use: RENUM 0,1000,10 -> renumber all the lines from 0 to 1000 with a step of 10.
- WalterBright 9y agoUnfortunately, RENUM doesn't work for card decks.
- jacquesm 9y agoWell, with enough tape and patience :)
- DrScump 9y agomark your cards with a Sharpie We used Mark Sense cards marked with a #2 pencil for the PDP 11 in high school.
- walshemj 9y agoIn the UK we used coding sheets and got the results back next week.
- ams6110 9y agoYou should take that sharpie and draw a diagonal line on the side of the deck, then it's easier to get them back in the right place if you drop them.