I've replaced the submitted URL (https://users.cs.utah.edu/~elb/folklore/mel-annotated/mel-an...) with the Story part, and added the Annotations part to the top text. Maybe that'll help.
About this document ...
The Story of Mel, A Real Programmer, Annotated
This document was generated using the LaTeX2HTML translator Version 95.1 (Fri Jan 20 1995) Copyright © 1993, 1994, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
The command line arguments were: latex2html mel-annotated.tex.
The translation was initiated by Erik Brunvand on Tue Oct 15 13:41:12 MDT 1996
Related past discussions—others?
94 years ago today – Hacker legend Mel Kaye was born - https://news.ycombinator.com/item?id=42695655 - Jan 2025 (1 comment)
The Story of Mel (1983) - https://news.ycombinator.com/item?id=38981958 - Jan 2024 (2 comments)
The Story of Mel (1983) - https://news.ycombinator.com/item?id=37131315 - Aug 2023 (4 comments)
Mel Kaye – CV - https://news.ycombinator.com/item?id=36188537 - June 2023 (2 comments)
Show HN: We found the grave of hacking legend Mel Kaye - https://news.ycombinator.com/item?id=36031476 - May 2023 (2 comments)
Show HN: 40th Anniversary – Who are you, Mel Kaye? - https://news.ycombinator.com/item?id=36019424 - May 2023 (4 comments)
LGP-30 found in basement, the same model of drum computer programmed by “Mel” - https://news.ycombinator.com/item?id=33514399 - Nov 2022 (53 comments)
Mel's Hack – The Missing Bits - https://news.ycombinator.com/item?id=33392127 - Oct 2022 (48 comments)
The Story of Mel (1983) - https://news.ycombinator.com/item?id=32395589 - Aug 2022 (167 comments)
Mel's Loop – A Comprehensive Guide to The Story of Mel - https://news.ycombinator.com/item?id=31458048 - May 2022 (2 comments)
The Story of Mel (1983) - https://news.ycombinator.com/item?id=20671031 - Aug 2019 (3 comments)
https://news.ycombinator.com/item?id=20489273 (July 2019 - classic comment by YeGoblynQueenne)
LGP-30 – A Drum Computer of Significance - https://news.ycombinator.com/item?id=20484330 - July 2019 (39 comments)
A Real Programmer: The Story of Mel (1983) - https://news.ycombinator.com/item?id=19283255 - March 2019 (2 comments)
The Story of Mel, a Real Programmer (1983) - https://news.ycombinator.com/item?id=11820569 - June 2016 (4 comments)
The Story of Mel Explained - https://news.ycombinator.com/item?id=9913835 - July 2015 (25 comments)
The Story of Mel (1983) - https://news.ycombinator.com/item?id=9017099 - Feb 2015 (8 comments)
The Story Of Mel - https://news.ycombinator.com/item?id=7869771 - June 2014 (77 comments)
Mel the programmer was a real person - https://news.ycombinator.com/item?id=1155322 - Feb 2010 (16 comments)
The story of Mel (1983) - https://news.ycombinator.com/item?id=678999 - June 2009 (22 comments)
The story of Mel, a Real Programmer - https://news.ycombinator.com/item?id=181144 - May 2008 (9 comments)
One of the things he did was restore a Bendix G-15.
It seems to use 0-9quvwxyz.
Does anyone know how/when they were standardize to what we have today?
In UNIX-like systems (and POSIX in general), POSIX permissions are in groups of threes: rwx for user, group, and others. Hence `chmod 777` means "rwx for user, group, others" (i.e. everyone can do everything), `chmod 0644` means "rw for user, r for group and others", and so on.
Before we standardize on 8 bit bytes, there were all kinds of word sizes. Some machines had 18 bit words, for example. 18 is divisible by 3, but not by 4, so octal made more sense for those at least.
My first idea was that you consciously or subconsciously have the front panels from PDPs in mind (which are very iconic), and a lot of PDP had word sizes that were either only or also divisible by 3 (like 12 or 18). Even for the PDP word sizes that were also divisible by 4, it still made sense to keep it in grouping of threes for the overall line.
Looking at the equally iconic IBM s/360 front panel (a 32 bit architecture), or the IMSAI 8080 (the Intel 8080 is 8 bit), you see the bits grouped by fours.
But then you have things like the Altair 8800, which is also 8080-based, and which awkwardly groups the bits in groups of 3 anyway, which does not even fit. So now I wonder how common exactly octal was even for multiple-of-4 bit machines.
In 1973, Mr. Willoughby taught the Abington (Pennsylvania) High School computer programming class to code in LGP-30 assembly language. We didn't actually have an LGP-30; it just happened to be what he had been taught on when he was young. All assignments were graded by him simulating your code in his head. Of course, we then went on to learn the (slightly) higher-level NEAT/3 language, for which the school actually had an NCR Century-100 mainframe that would run programs that we submitted on punch cards. Mr. Willoughby's (nobody knew teachers' first names back in the day) theory was that it was important to learn the lowest-level machine language first, so you could understand what was really going on underneath. Worked fine for me; evidently it's not quite so universal anymore.
However I strongly believe it's good to start with C. You can still rather quickly do interesting stuff, C is a small language so learning the language itself isn't a huge barrier.
A big benefit of the small language is that it leaves more time available to explore important concepts, not just the super low level ones (memory/pointers, etc) but really important parts of the stack that are infectious to everything else. Specifically things like syscalls and the libc interface that most other languages are essentially built on top of. Working with building blocks like pthreads directly is also very important IMO, both to get a handle on parallelism and concurrency primitives but also to learn why high level languages are so valuable. Similarly for stuff like important socket APIs ala select/epoll and implementing your own event loop.
I was lucky enough to learn all of this early in my career and luckier still to have been able to pass on this knowledge to many mentees over the years.
If there are any aspiring programmers here that want to build from a solid foundation then yeah, ignore the haters, write some C.
man pages and ironically ChatGPT are your friend, use them to explore the foundations of (most) modern code so when you start writing modern code in earnest/for money you will be substantially ahead of your peers in actual understanding.
https://www.goodreads.com/book/show/44882.Code
which covers things down to a quite low-level and was recently updated:
https://www.amazon.com/Code-Language-Computer-Hardware-Softw...
It provides a lot of context, and puts things into perspective.
Note that it helps to be familiar with The Story of Mel before listening to that episode. I think the podcast may have explained The Store of Mel itself in a previous episode that I haven't listened to yet, but I was personally familiar with it already through the usual folklore.
Apparently, Mel worked for Librascope for quite a while and wrote a lot of stuff. Mel's code is supposedly somewhat better commented and less cryptic than he is usually credited for (though from what I've heard self-modifying code on the LGP-30 was a somewhat intended feature). Whether or not that applies to Mel's blackjack program is probably anyone's guess. A paper tape dump of it is known to be out there, but I don't think the source code is.
The idea is to study some of those programs and maybe port a few to understand how the LGP-21 works (they are supposed to be similar), since so far I don't think much documentation on the LGP-21 has been found.
Are there any photos of 'drum memory'?
ksenzee•6h ago