Lovely, thank you very much Axel and Pieter!
Why does pressing ctrl-1 make 1, and pressing ctrl-3 make ^[ ? Pressing ctrl-8 makes nothing, like Pieter said (you can't shift 042 down by 64).
Axel's script was very helpful! I added display of the binary value which helped me to understand the relationship between character, lower-case version, and control-version:
perl -E 'while (my $l=<>){ chomp($l); say join(" ", map { my $c=ord($_); sprintf("x%02X=o%03o=d%i", $c,$c,$c) } split(//,$l)) }'
So it seems like ^A is the "base" form, and upper-case and lower-case versions are modifications of that base.
^A
b00000001 = x01 = o001 = d1
A
b01000001 = x41 = o101 = d65
a
b01100001 = x61 = o141 = d97
It's funny, because I think of Control as being some extra that I add, but really it's the basic form. Still trying to wrap my mind around that... I read the first version of the standard (1963), which I found through
https://en.wikipedia.org/wiki/ASCII#History but there is no mention there of using the alphabet to represent control characters. I have to go off to work now but I plan to study subsequent versions of the standard to understand where that came in.
Thanks!!
Best,
Aleksey