Why was '~' chosen to represent the home directory?
If I recall correctly, control-^ (i.e. 0x1e, aka control-~) would move the ADM-3A cursor to the "home" location on the screen (i.e. the top left) if sent from the host.  If you were talking to a host that was echoing your keystrokes (and maybe if you set a DIP switch for half-duplex mode?) then typing control-^ (aka control-~) would do that too.<p>The terminfo entry seems to confirm this (apt-get source ncurses-term && less +/^adm3a ncurses-5.9/misc/terminfo.src):<p><pre><code>    adm3a|lsi adm3a,
        OTbs, am,
        cols#80, lines#24,
        OTma=^K^P, OTnl=^J, bel=^G, clear=\032$<1/>, cr=^M, cub1=^H,
        cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
        cuu1=^K, home=^^, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^L,
        kcuu1=^K, rs2=^N,
</code></pre>
I think the speculations about ^ in regexps coming from the same source are misplaced, because I think the ed editor was already using ^ to mean "beginning of line" before there were any CRT terminals.<p>The ADM-3A had direct cursor addressing, as referenced in the "cup" capability in the above terminfo entry, so the "home" feature was, strictly speaking, redundant.  As you can see from the simplicity of the terminfo entry (notably its almost complete lack of escape sequences) logic was aggressively minimized in this termainal. I seem to recall from glancing inside the ADM-3As I bought at auction in my childhood that it was built almost entirely out of discrete 7400-series logic, so every extra control character involved adding several chips.<p>In light of this, I suspect that the "home" feature may have been retained for backwards compatibility with something else — maybe the ADM-3?  But the ADM-3 terminfo entry doesn't mention "home", so I don't know.<p>More details about the ADM-3A can be found at <<a href="http://manx.classiccmp.org/details/11,5618>" rel="nofollow">http://manx.classiccmp.org/details/11,5618></a>.