mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-25 06:17:34 +00:00
Branching mminfo's guide.hex.trans to design.
Copied from Perforce Change: 181703 ServerID: perforce.ravenbrook.com
This commit is contained in:
parent
1d73e46289
commit
d69f1f5861
1 changed files with 81 additions and 0 deletions
81
mps/design/guide.hex.trans.txt
Normal file
81
mps/design/guide.hex.trans.txt
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
GUIDE TO TRANSLITERATING THE ALPHABET INTO HEXADECIMAL
|
||||
guide.hex.trans
|
||||
incomplete doc
|
||||
gavinm 1997-04-11
|
||||
|
||||
INTRODUCTION
|
||||
|
||||
.scope: This document explains how to represent the alphabet as hexadecimal
|
||||
digits.
|
||||
|
||||
.readership: This document is intended for anyone devising arbitrary constants
|
||||
which may appear in hex-dumps.
|
||||
|
||||
.sources: This transliteration was supplied by RichardK in
|
||||
mail.richardk.1997-04-07.13-44.
|
||||
|
||||
|
||||
TRANSLITERATION
|
||||
|
||||
.forward: The chosen transliteration is as follows:
|
||||
ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
||||
ABCDEF9811C7340BC6520F3812
|
||||
|
||||
.backward: The backwards transliteration is as follows:
|
||||
0 OU
|
||||
1 IJY
|
||||
2 TZ
|
||||
3 MW
|
||||
4 N
|
||||
5 S
|
||||
6 R
|
||||
7 L
|
||||
8 HX
|
||||
9 G
|
||||
A A
|
||||
B BP
|
||||
C CKQ
|
||||
D D
|
||||
E E
|
||||
F FV
|
||||
|
||||
.pad: If padding is required (to fill a hex constant length), you should use
|
||||
9's, because G is rare and can usually be inferred from context.
|
||||
|
||||
.punc: There is no formal scheme for spaces, or punctuation. It is suggested
|
||||
that you use 9 (as .pad).
|
||||
|
||||
|
||||
JUSTIFICATION
|
||||
|
||||
.letters: The hexadecimal letters (A-F) are all formed by similarity of sound.
|
||||
B and P sound similar, as do F and V, and C, K, & Q can all sound similar.
|
||||
|
||||
.numbers: The numbers (0-9) are all formed by similarity of shape (but see
|
||||
.trans.t). Nevertheless, 1=IJY retains some similarity of sound.
|
||||
|
||||
.trans.t: T is an exception to .numbers, but is such a common letter that it
|
||||
deserves it.
|
||||
|
||||
|
||||
NOTES
|
||||
|
||||
.change: This transliteration differs from the old transliteration used for
|
||||
signatures (see design.mps.sig(0)), as follows: J:6->1; L:1->7; N:9->4; R:4->6;
|
||||
W:8->3; X:5->8; Y:E->I.
|
||||
|
||||
.problem.mw: There is a known problem that M and W are both common, map to the
|
||||
same digit (3), and are hard to distinguish in context.
|
||||
|
||||
.find.c: It is possible to find all 8-digit hexadecimal constants and how many
|
||||
times they're used in C files, using the following Perl script:
|
||||
perl5 -n -e 'BEGIN { %C=(); } if(/0x([0-9A-Fa-f]{8})/) { $C{$1} = +[] if(
|
||||
!defined($C{$1})); push(@{$C{$1}}, $ARGV); } END { foreach $H (sort(keys(%C)))
|
||||
{ printf "%3d %s %s\n", scalar(@{$C{$H}}), $H, join(", ", @{@C{$H}}); } }' *.c
|
||||
*.h
|
||||
|
||||
.comment: It is a good idea to add a comment to any constant declaration
|
||||
indicating the English version and which letters were selected (by
|
||||
capitalisation), e.g.: #define SpaceSig ((Sig)0x5195BACE) /* SIGnature
|
||||
SPACE */
|
||||
|
||||
Loading…
Reference in a new issue