Why is there a “small house” in IBM's Code page 437?

(blog.glyphdrawing.club)

223 points | by m_walden 3 days ago ago

52 comments

  • layer8 3 days ago ago

    My first association for this symbol isn’t a house, but an indent marker, like here (“Right Indent Box” in particular): https://www.atlantiswordprocessor.com/en/help/images/ruler.p...

    Or here as a tab stop in GeoWrite (in the top left, below the “file” menu): https://static.wikia.nocookie.net/commodore64/images/6/68/Ge...

    Some mechanical typewriters had physical markers/stops that looked similar. The best I could find in a hurry: https://www.mrmrsvintagetypewriters.com/cdn/shop/files/DSC_7...

    • crazygringo 2 days ago ago

      That's what I thought too. And WordStar and WordPerfect predated this character set by a couple of years, and then MultiMate and Word after.

      But googling screenshots of all of them, I can't find any use of this character in their rulers. It's all dots, numbers, and bracket symbols.

      So I think the end of the article is right -- it's a delta triangle that, for various reasons, got corrupted into that shape:

      > If even the actual Greek uppercase delta is, quite unmistakenly, rendered as a house, then the theory that DEL is just a badly formed uppercase Greek delta character with the bottom corners cut off (due to a lack of horizontal pixels) starts to seem more and more convincing.

      • reddalo 2 days ago ago

        DEL = DELta

        I think this explains why they chose to put it there, instead of one of the other free spaces. It's just too smart not to do it.

        • crazygringo 2 days ago ago

          Yup. There are also a ton of other Greek letters in row E used in math... and no uppercase delta, which you'd obviously want, even more than many of the others. The only reason they wouldn't have included it down there was because they already included it above, exactly because it's DELta.

          It still doesn't answer why it's a short uppercase delta though... I can only guess there was a failure of communication somewhere between who chose the character set and who drew the pixels...

        • neuroelectron 2 days ago ago

          Along with the rectangular pixels of the resolutions of the time, I think this makes sense.

    • tdeck 3 days ago ago

      I agree; I always thought of it as a kind of cursor / pointer symbol. I used to do high ASCII art (nothing to write home about) and became pretty familiar with CP437, so I was wracking my brain trying to figure out what the "little house" was going to be.

      • ratmice 2 days ago ago

        I notice that cp437 has enspace, so I wonder if enspace combined with the "small house", is used to indicate the insertion point, or position between two characters when producing error messages.

    • cratermoon 2 days ago ago

      These are physical tab placement markers for IBM Selectric typewriters.

      https://www.ebay.com/itm/176048131446

  • susam 3 days ago ago

    Linked in this article is VileR's excellent website <https://int10h.org/>. In fact, it is linked 8 times in this article. If this kind of thing interests you, I highly recommend following those links. VileR's site is probably the best resource we have today that preserves the various PC OEM fonts from a bygone technological era -- an era that lives on in the memories of those of us who first encountered these machines early in life.

    I'm genuinely in awe of the time and effort VileR has poured into recovering each font, and their countless variants, from a wide range of ROMs. The site not only archives them all with incredible attention to detail, but also offers live previews, aspect ratio correction, and other thoughtful features that make exploring it a joy. I've spent countless hours there comparing different OEM fonts, and hunting down the best ones to use in my own work!

  • darkwater 3 days ago ago

    Wow, it really goes in depth on the topic, in the beginning I was like "wtf am I even reading this" and after a while I was hooked by the writing style, the depth of the research and also the design of the website. Really, really cool.

    • travisgriggs 3 days ago ago

      Exactly this. Kept thinking, “you’re not getting this time back” … but kept reading anyway. And wasn’t disappointed by the lack of closure either. An essay worth the journey despite the end.

  • keepamovin 2 days ago ago

    Wow this is a beautiful article. I love Code page 437 - my first experiences with computers used it. I made two little things that are a homage to the pixelated and "cyberpunk" "screaming electron" "information superhighway" glory that is IBM Code Page 437:

    1. Endless scrolling random Code Page 437 text: https://o0101.github.io/random/ (but it seems to be broken indicated by an overabundance of the non-existent "block question mark". Code here in case anyone wants to submit a fix :) : https://github.com/o0101/random)

    2. Base-437 - a way to encode any binary file into faithful-to-code-page-437-glyphs that you can nevertheless throw into HTML no problemo: https://browserbox.github.io/Base437/ This means, for instance, you can have a "data:image/png;base437,ëPNG♪◙→◙ ♪IHDR ◘♠ \r¿f ♦gAMA Åⁿa♣ cHRM z& Çä · ÇΦ u..." URI for an image. I just think it looks cool being able to see the content rather than base64 which hides it. Code: https://github.com/BrowserBox/Base437

    • trollbridge 2 days ago ago

      I still have most of the 437 code points memorised. At one point, I made a simple program similar to xxd or od but which would dump the binary code ones in (Unicode) 437 representation instead of just dots. (NUL, space, and 0xFF are all blanks, so I used other Unicode code points for those.) A little bit similar to Base-437 above.

      • keepamovin 2 days ago ago

        Hey I love the sound of that! Please publish it on GitHub so I can build it in C or whatever. I think it was the blanks in xxd that gave me the idea for how good it would be to just display them - Unicode!

  • ndiddy 3 days ago ago

    Really good article! Personally it has me convinced that the 0x7F character was originally meant to be a delta, but whoever drew it did a poor enough job that it made other teams at IBM think it was supposed to be a house. As the article says, when you look in the PC BIOS source listing, there's a comment saying "DELTA" next to where the bitmap for the 0x7F character is defined. https://github.com/philspil66/IBM-PC-BIOS/blob/main/PCBIOS.A...

  • trollbridge 2 days ago ago

    Back in the 1990s, my best friend at the time and I embarked on making computer games. He decided to make one for his dad, who was a baseball fan, including keying in statistics for all the players you could choose.

    His computer was a PC-1 (5150) with CGA and 320K RAM (and a Microsoft mouse with green buttons and a steel ball, oddly enough), so he wrote the program in text mode. His dad used that computer to get through law school.

    CHR$(127), as we called it, was used for home plate. He’s a doctor now.

  • fredoralive 3 days ago ago

    I seem to recall whether 0xE1 in codepage 437 is supposed to be a Greek lowercase beta (β) or a German sharp s (ẞ) is intentionally a bit fuzzy, so its perhaps they intended it to be both a delta and a dingbat.

    I'm not really sure if a house fits it that much, wouldn't a generic "house" symbol have a chimney (although obviously, it's hard to fit one in with such a low resolution).

    • II2II 3 days ago ago

      It's most likely meant to be Delta, as used in mathematics and science (which is typically smaller than the Greek letter). Not only is the Delta in the Greek character similarly shaped, but Lambda is similarly distorted in the greek character set. Likewise, A, N, V, Y, K (arguably), and W (arguably) are distorted.

      • dhosek 3 days ago ago

        Although originally the character Δ began life as 𐤃 (named dalet, meaning door) so it should be a door, not a house (he says with a wink) and that β should be the house (from 𐤁‎, bet, meaning house).

    • trollbridge 2 days ago ago

      437 had quite a few “dual use” characters which were drawn to be mathematical symbols, but could be used to render (some) Greek text (poorly). It’s also notorious for having some accent marks, but not enough to fully represent most Western European languages; basically just German and Swedish.

      Rather amusingly it had a Pesetas symbol for Spanish currency and numero signs an and o for abbreviations… but not a full enough set of accented characters to write everyday Spanish.

  • dhosek 3 days ago ago

    There’s a certain amount of “it just is” when it comes to non-textual characters. I remember being interviewed by a reporter from The Wall Street Journal about the claim that Wingdings had an antisemitic message secretly encoded in it because NYC output as the sequence skull and crossbones-star of David-thumbs up, but the choice of where those characters were encoded is purely a consequence of grouping similarly themed characters together (so, e.g., the star of David comes in the midst of a sequence of religious symbols).

    • bitwize 3 days ago ago

      In a future font (Webdings?) Microsoft deliberately set the letters NYC to be an eye, a heart, and a city skyline, in response to this kerfuffle.

  • johndoe0815 3 days ago ago

    One more theory - it could be a tabulator or cursor symbol (for word processing applications).

  • masswerk 3 days ago ago

    My guess: it's the "mode change" code found in various IBM punchcard encodings, punch 11-8-7, canonically represented by an upper-case delta.

    It would make sense to render this somewhat differently from the regular Greek character. This may also explain why it's rendered differently in various manuals: once, as commonly represented in EBCDIC charts, as a delta, once, as it's actually represented in the on-screen character set.

  • 1970-01-01 3 days ago ago

    I think those symbols were so underutilized, IBM didn't care about cementing their names. It's an ambiguous triangle. Use it as delta. Use it as a house. It doesn't matter because the programmers are the ones that give it true purpose.

    This was a fantastic article. The ASCII art alone is worth a click.

  • anonymousiam 3 days ago ago

    What I remember from my experiences with terminals and printers (the only display devices available at the time) from 1978-1980 was that the 0x7F <DEL> character rendered as a checkered box. This correlates with (0xFF) Figure 5 in the article. This was common among all printers I worked with, Teletype, Epson, Okidata, TI, Printronix, and even IBM. Also all the Lear Siegler, Televideo, DEC, Hazeltine, terminals I used did something similar. Even the character ROMs in my Ferguson Big Board II, and Kaypro II used the same checkered box pattern.

  • kazinator 3 days ago ago

    > There is just one thing I cant't quite comprehend. Let's assume for a second that DEL was supposed to be delta. Did IBM seriously not try different ways of drawing a delta, before settling on the house glyph? With a little bit of effort, it is completely possible to draw a convincing delta, even in 8×8 pixel space.

    But exactly the same argument applies to the Greek fonts where something that looks even more like a house is unmistakably intended to be delta, since it sits between gamma and epsilon. They could have made that looks like a triangle, but didn't.

  • tomcam 3 days ago ago

    Having been involved in some big projects my first instinct is that someone had to make a decision fast. IIRC the PC was designed in an 18-month skunkworks project.

    I assume that someone had to meet a deadline, they were probably responsible for half a dozen other more important features, and there was a bleary-eyed team meeting where Chet asked “Any idea better than Dave’s house thing?” A bunch of people disagreed, no one had a markedly better idea than house thing, and it was memorialized with no one in the room remotely comprehending it would affect billions of PCs for the next 40 years.

  • barberpole 3 days ago ago

    It's a reference to Murnau's "Nosferatu" where a letter from Orlok is written in a strange ideographic language that includes a picture of a house, evidently relating Orlok's request to buy a house.

  • nsxwolf 3 days ago ago

    Is there no one left to ask?

  • Avshalom 3 days ago ago

    because they couldn't fit a large house into 8x16.

  • HocusLocus 3 days ago ago

    The line drawing characters were serious business. Because I love mazes. Though they were most often mis-used as menu borders. Novell achieved world domination with line drawing characters.

  • tempodox 3 days ago ago

    Wow, the “drj-mmc.ans” is absolutely impressive. At first I thought they applied some high-resolution mask but it really is just code page 437 text.

  • anonzzzies 3 days ago ago

    That immediately brings back memories (or more feelings) of playing [0]. It was, for a while, the only game my father had installed on his luggable, so I played it a lot as a small kid. I also think a did learn a lot of English from it.

    [0] https://en.wikipedia.org/wiki/Castle_Adventure

  • 3 days ago ago
    [deleted]
  • StableAlkyne 3 days ago ago

    Article contents aside, I absolutely adore the styling in the site. It's such a lovely 00s vibe.

  • chuckadams 2 days ago ago

    Looking at that font again makes me want to start up Nethack all of a sudden.

  • nyanpasu64 3 days ago ago

    I noticed the article uses the Polyvers font (complete with bold capitals in the headings), which I haven't seen on the Internet. Wonder what that is.

    EDIT: It seems to coexist with U001, which is "An Univers-like typeface that comes with GhostPDL made by URW++."

  • brontitall 3 days ago ago

    Does anyone know why it’s “code page 437”? Like why 437? Was there 437 code pages before it? Does the 437 bit pattern map to something in the hardware? Was it a character rom part number?

    • lifthrasiir 3 days ago ago

      It originates from the code page 37, which is the EBCDIC-based character set for US and Canada. At least initially EBCDIC code pages are numbered sequentially while PC DOS code pages were numbered more or less randomly; I have no clue why it is the code page 437 and not 337. (I can see why it is not 137 nor 237, as later code pages were numbered from 251.)

    • numpad0 3 days ago ago

      There's a list of known code pages on Wikipedia[0]

      0: https://en.wikipedia.org/wiki/Code_page

  • 3 days ago ago
    [deleted]
  • bombcar 3 days ago ago

    I think you’d want to compare the “other deltas” when rendered on a crappy CGA monitor. I’m not sure they’d be much better than the house.

  • pests 3 days ago ago

    Reminds me of compass UI indicators in modern FPS games.

  • catlikesshrimp 3 days ago ago

    House token in Monopoly (Board Game)

    Not to be confused with the Hotel token (which wouldn't fit in a character)

  • budmichstelk 2 days ago ago

    [dead]

  • kristopolous 3 days ago ago

    What about that it's 0x0111 1111? Could be a reference to hole punching