6 ms·
wow, they had to OCR it back in from paper printouts > This source code is old enough that it hadn’t been stored digitally. “A dedicated team of historians and
by locusofself 5mo ago
wow, they had to OCR it back in from paper printouts
> This source code is old enough that it hadn’t been stored digitally. “A dedicated team of historians and preservationists led by Yufeng Gao and Rich Cini,” calling itself the “DOS Disassembly Group,” painstakingly transcribed and scanned in code from paper printouts provided by Paterson. This process was made even more difficult because modern OCR software struggled with the quality of the decades-old printout.
- SoftTalker 5mo agoYet another case where text printed on paper outlived any digital storage.
- jshier 5mo agoSeems like it was never digitally stored in the first place, and the printed text was barely readable due to age. Not really a big win for paper.
- SoftTalker 5mo agoWell it had to have been on disk or tape at some point. It wasn't all typed in by hand every time they needed to build a new version.
- debesyla 5mo agounless they used punch cards
- andsoitis 5mo ago> unless they used punch cards For MS-DOS?
- WalterBright 4mo agoNot likely. Punch cards disappeared around the end of 1976.
- Anonyneko 4mo agoWe still used them in the university as late as in 2010... ...as writing paper.
- MomsAVoxell 4mo agoWe still learned how to use them in the 80’s high school computer classes, mostly because we had a balance of CP/M plus card-reader/early DOS machines, eventually .. in the labs. Rich kid schools had Apples though, and some of them also had card readers for BASIC ..
- greenbit 4mo ago"[..] card readers for BASIC" Finally, a sensible use case for BASIC's "READ" and "DATA" commands. Learning BASIC as a kid on a micro, it always struck me as an odd way to get input into a program. Sure, with INPUT, you'd have to hand enter your input every time, but baking into the program meant that you'd have to edit your program any time you wanted to change anything. But with a card reader, you could "cut the deck". Keep the program cards, and then just stack on whatever set of data cards you wanted. From this vantage point, in the 21st century with our flying cars and what not, it seems really quirky that back then, even your data could be a tangible thing.
- MomsAVoxell 4mo agoIndeed, we still pay homage to the era with terms such as the stack, pushing and popping, and all kinds of things .. i remember we had fun inserting random infinite loops in other students cards on occasion until we all realized we could just have marked “finished” stacks with an X across the spine, and also to ease sorting, and so on .. i would mark certain sub-routines with different color markers on the spine too, just to see a budget for how much computing time i expected to be billed for, and so on and on .. lots of valuable hands on came from the card-based computing, its a lost art ..
- WalterBright 4mo agoI threw out all my punch cards. Wish I'd kept at least a listing!
- genxy 4mo agoI find punch cards being used in old engineering books I buy from the 60s. Maybe write them again?
- conorcleary 4mo agoPunch* 'em again
- Sharlin 4mo agoPunch cards are still a form of digital storage, mind.
- zargon 5mo agoThe idea that it never existed digitally is obviously untrue. Likely poor wording in the author's part. They probably meant something like, so old that a printout is all that survived (which sounds vaguely like not being digital to someone in an era so far removed from a time when programs were/could realistically be printed.)
- fc417fc802 5mo ago> a time when programs were/could realistically be printed Really depends on the program. Source code is often quite manageable. Even artifacts aren't always as large as you might expect. Busybox on my system weighs in at 1.9 MiB or alternatively 928 KiB with zstd maxed out. But I don't really see a point to printing any of it. A situation that might require the printouts is likely to largely preclude the continued existence of modern electronics, the ability to replace batteries, or even a connection to a reliable electrical grid.
- zargon 5mo agoYeah, that's why I tried to include both categories. Even for programs that are small enough to be printed, we just don't do it any more. I could have worded that part better myself.
- WalterBright 4mo agoHaving printouts were necessary when: 1. you were using a DECwriter dot matrix printer as a terminal 2. using an ASR-33 teletype as a terminal 3. using punch cards or paper tape 4. using a glass tty that could only display 24 lines 5. when you did not have a remote terminal, and wanted to spread your code out on a table and debug it
- tankenmate 4mo agoBrings back memories of desk checking
- irishcoffee 5mo agoHow did they print it then, I wonder?
- bryanrasmussen 5mo agoThey had some old German guy with a big beard, and two interns, running some sort of big contraption that looked like a medieval torture instrument, and the interns would run and put letters in a row and then the old guy move a massive letter and in the end out came a bit of paper with source code on it.
- eipi10_hn 4mo agoWhere can I buy this printer?
- wheybags 4mo agoHumbrechthof, Mainz, Germany ofc. (https://en.wikipedia.org/wiki/Humbrechthof https://en.wikipedia.org/wiki/Humbrechthof)
- irishcoffee 4mo agoI appreciate the subtle sarcasm, I did not consider a printing press as an option!
- onion2k 4mo agoEarly versions of some things, MS Basic being one example I think, were baked into ROM. One of the best innovations that Paul Allen came up with was adding software hooks to the code so bugs that were found later could still be patched.
- 7bit 4mo agoOne has to be pretty ignorant and dismissive to claim that this is not "a big win for paper". First of all, that comment is weirdly out of place. The quality and longevity of paper is not the topic. Secondly, there are fragments of paper with writing as old as 2,000 years. Thirdly, paper you look at and see the writing. With digital documents, you need the technology to read the medium and then you need to know how the information was encoded onto the medium, before you even arrive at the same level with paper, where you can start to decide the actual writing. Paper has brought us where we are today, and given us what we know about the past. Don't be so ignorant and dismissive.
- petcat 5mo ago> struggled with the quality of the decades-old printout. barely It sounds like this printout has deteriorated badly and was barely readable.
- deleted 4mo ago[deleted]
- Sharlin 4mo agoIf it was your standard issue cheap dot-matrix printout, it may not been particularly legible even back then.
- justsomehnguy 4mo agoEven if the printer itself was fine it doesn't imply the ribbon was wet enough.
- FarmerPotato 5mo agoI'd like to hear more about what works in OCR of dot-matrix fonts. I've been able to OCR letter-quality printer output to 97% (mostly Os and Xs problems). But it seems that machine-learning text-recognition is also now biased to reject computer code because it doesn't look like human language.
- embedding-shape 4mo agoBoring reply perhaps, but I've had wild success with adding even a tiny LLM afterwards to do "fixups" over OCRd text, works great for the typical O/0 issues and similar, just pass it the scrambled OCRd text together with the text around it, and even dumb and tiny 7b models running on CPU do a pretty fine job.
- bob778 4mo agoABBYY has a specific module for dot matrix printouts so I’m surprised it was a struggle for them but every document is different
- ndiddy 4mo agoThere's a writeup here from one of the people on the team about the work it took to go from the listings to source code. http://cini.classiccmp.org/recoveryblog.htm http://cini.classiccmp.org/recoveryblog.htm > With less-than-satisfactory OCR output, I resorted to a process I used many years ago when converting scans made of old Commodore ROM dumps printed on a Commodore 1515 dot-matrix printer. The process relies on the ASCII OCR output having the same repetitive errors. "B" and "8", "S" and "5" are good examples, as are "l" and "1", and "O" and "0". There are many other similar single-character errors and, when working with x86 code, there are similar errors with instructions like "MOV". This process naturally works better if the output file is monolithic rather than single-page OCR conversions because you can do substitutions across the entire converted printout and not 75 separate files. > The next formatting hassle was the spacing. This required repetitive substitutions of a descending numbers of spaces to tabs (i.e., replace 8 spaces with a tab, 7, 6, etc.). Then if you want to return it to fixed spaces (which is likely how the original printer printed it -- spaces and not vertical tabs), you can. For pure re-creation work, spaces produce absolute column formatting while tabs can move around depending on the program displaying the file. > Once you run thought the 15 or so common global substitutions and tab conversion, it's a lot easier to work with the file to fix formatting and perform other cleanup. This is then followed by a line-by-line comparison against the original printouts. Overall I'd say the conversion output quality with this method is very good.
- WalterBright 4mo agoI've recovered some ancient software I wrote via scanning in listings I found among my dad's papers.