Some time ago, I discussed the historical significance of the Burgermaster drive-in restaurant. This triggered a memory from one of my colleagues:
I also heard that the BurgerMaster was identified by an ordinal value, and that ordinal value was the telephone number of the restaurant.
That sounds like a fun story. Alas, it doesn’t hold up.
The GetÂProcÂAddress
function checks the numeric value of the string pointer it is given. If it is greater than or equal to 65536, then it is interpreted as a string pointer. But if it is less than 65535, then it’s treated as an ordinal. Therefore, ordinal values are limited to 65535. That’s not enough digits to hold a U.S. telephone number.
The GlobalÂMasterÂHandle
function was exported as ordinal 28. There does not appear to be any significance to this number. It was just the next available ordinal in the block assigned to global memory functions.
Ah yes, the good old days, when memory was so tight that you preferred to import functions by ordinal instead of name. I think you could probably go one better than by using instead. Or you could always manually import it in your file; I've done that before when I was using an old version of MSVC for Windows 3.0 but I wanted to import Windows 3.1 functions.
Sorry for nitpicking or completely missing a joke, but makintresource(28) would do a <code>, without the _PTR in the olden days #define I guess.
I think it was pointed out here before somewhere that the first 64k of memory was reserved so that's how a number instead of a string pointer into memory could be detected.
I'm guessing this is safer and quicker than parsing the string for total value between "min" and "max" (and...
On the other hand it will sound more realistic if the tale is "I also heard that the BurgerMaster was identified by an ordinal value, and that ordinal value was the last 4 digits of telephone number of the restaurant."
It's very common for big companies to allocate a block of continuous phone numbers for their PBX phones. It's quite doable to just allocate a block of numbers and assign forwarding to restaurants according to the...
Is there any chance that "28" was the company-wide speeddial number that Burgermaster was assigned to? (Like you'd hit "speeddial-2-8" or the like, depending on how the phone system did speeddials?) Or maybe it was just the last two digits of the full phone number (by coincidence or not)?
I'm in my 30's and I remember as a child only needing to dial 4 digits when calling within the same exchange, so it is possible that...