On Tue, 21 Feb 2023 23:28:52 GMT, Eirik Bjorsnos <d...@openjdk.org> wrote:
>> More to the point, ASCII was obviously **designed** to allow you to >> uppercase a lower case letter with a single instruction, so "the book" might >> have been a draft standard before they scrubbed out the interesting history! > > Thanks Martin, I will from now on envision a stack of dusty punch cards with > carefully scribbled notes on the back, barely held together with a dry and > cracked rubber band. > > More to the point: Do you have an opinion on the appropriate level of > documentation / comments for this kind of 'tricky' code? My goal is that > future maintainers should not get scared by the code and help them understand > why it became what it is. There are still some books on this :) but from wikipedia: > during May 1963 the CCITT Working Party on the New Telegraph Alphabet > proposed to assign lowercase characters to > sticks[[a]](https://en.wikipedia.org/wiki/ASCII#cite_note-NB_Stick-15)[[14]](https://en.wikipedia.org/wiki/ASCII#cite_note-Bemer_1980_Inside-14) > 6 and 7,[[15]](https://en.wikipedia.org/wiki/ASCII#cite_note-CCITT_1963-16) > and [International Organization for > Standardization](https://en.wikipedia.org/wiki/International_Organization_for_Standardization) > TC 97 SC 2 voted during October to incorporate the change into its draft > standard.[[16]](https://en.wikipedia.org/wiki/ASCII#cite_note-ISO_1963-17) > The X3.2.4 task group voted its approval for the change to ASCII at its May > 1963 meeting.[[17]](https://en.wikipedia.org/wiki/ASCII#cite_note-18) > **Locating the lowercase letters in > sticks[[a]](https://en.wikipedia.org/wiki/ASCII#cite_note-NB_Stick-15)[[14]](https://en.wikipedia.org/wiki/ASCII#cite_note-Bemer_1980_Inside-14) > 6 and 7 caused the characters to differ in bit pattern f rom the upper case by a single bit, which simplified [case-insensitive](https://en.wikipedia.org/wiki/Case-insensitive) character matching and the construction of keyboards and printers.** Hence the simplicity of the shift key :) ------------- PR: https://git.openjdk.org/jdk/pull/12632