adding ascii table

This commit is contained in:
brent s. 2020-08-23 00:03:55 -04:00
parent 473833a58f
commit 6954e8dc4e
Signed by: bts
GPG Key ID: 8C004C2F93481F6B
10 changed files with 9145 additions and 0 deletions

129
ref/ascii/ascii.adoc Normal file
View File

@ -0,0 +1,129 @@
= ASCII Character Reference
Brent Saner <r00t@square-r00t.net>
Last updated/rendered {localdatetime}
:doctype: book
:data-uri:
:imagesdir: images
:sectlinks:
ifeval::["{doctype}" != "article"]
:toc: preamble
:toc2: left
endif::[]
:idprefix:
:toclevels: 7
:source-highlighter: highlightjs


This document attempts to categorize and give reference
for all ASCII codes and their various representations.
I primarily used http://www.profdavis.net/ASCII_table.pdf[this PDF^] and
http://www.robelle.com/smugbook/ascii.html[this website^] as references.

== How to Use This Document

=== How to Render It

The document is written in https://asciidoc.org/[AsciiDoc^]
(and rendered with https://asciidoctor.org/[AsciiDoctor^]).
The most up-to-date AsciiDoc code can be found at
https://git.square-r00t.net/OpTools/tree/ref/ascii[my OpTools repo^].
You may see some things that don't quite match the AsciiDoc spec in the source;
that's because they're probably AsciiDoctor-specific extensions.

You can render it via `asciidoctor -n ascii.adoc`. By default it will render HTML5.
You can also render to PDF via `asciidoctor-pdf -n ascii.adoc`.

=== How to Read It

Each section under <<reference_tables, Reference Tables>> has information about
the following tables. Each table thereafter has the following columns in order:

*DEC*:: The decimal representation of the character (i.e. what would be returned in Python's `ord()`).
*OCT*:: The octal representation of the character.
*HEX*:: The hexadecimal representation of the character.
*BIN*:: The binary representation of the character.
*HTML*:: The HTML number representation of the character.
*ESCAPE*:: The HTML escape of the character (if it has one), e.g. `&amp;quot;`.
(Does not include the full set of https://dev.w3.org/html5/html-author/charref[HTML5 characters^],
only characters that should be escaped.)
*LIT*:: The literal character (if it is unprintable, its symbol name will be given instead in _italics_).
*DESC*:: A description of the character.

If any fields are not relevant, possible, defined, printable, etc. then they will be "N/A" (without the quotes).

////
TODO
You will also find an <<index, Index>> to help you find a certain character more quickly, as well as reverse-lookup.

In this index:

* the literal character is in regular style
* the decimal is a regular style positive integer
* the octal is in *bold*
* the hex is in _italics_
* the HTML is in *_bold italics_*
* the binary is in `fixed-width/monospace`
* the HTML Escape (if it has one) is in `*bold fixed-width*`
////

== Reference Tables

ASCII ("**A**merican **S**tandard **C**ode for **I**nformation **I**nterchange") is
a series of 7-bit sequences in which each single bit represents a character.

The tables given provide the information in 8 bits (256 characters total) per
https://en.wikipedia.org/wiki/ISO/IEC_8859-1[ISO 8859-1^], commonly referred to
as the `Latin-1` or `latin1` character set, in order to uniformly include the
extended ASCII set.

You may see some characters link to a https://en.wikipedia.org/[Wikipedia^] article in their description.
This is typically done because the symbol/character is known by multiple different names or they're uncommon.

You can, of course, copy the character directly from this page into your clipboard (if your OS supports it).

=== ASCII Control Characters
(DEC 0-31, OCT **000**-**037**, HEX __00__-__1f__)

These characters represent control codes -- characters that alter the environment.
They're primarily used these days for *nix (UNIX, BSD, GNU/Linux) terminals.
Historically they have been used for things like line printers.

You may see things in `fixed-width` in the description; these are
https://en.wikipedia.org/wiki/Software_flow_control[flow controls^] (commonly
used on e.g. RS-232).

.Control Characters
include::tables/_hdr.adoc[]
include::tables/ctrl.adoc[]
|===

=== ASCII Printable Characters
(DEC 32-127, OCT **040**-**177**, HEX __20__-__7f__)

.Printable Characters
include::tables/_hdr.adoc[]
include::tables/print.adoc[]
|===

=== Extended ASCII Characters
(DEC 128-255, OCT **200**-**377**, HEX __80__-__ff__)

.Extended Characters
include::tables/_hdr.adoc[]
include::tables/extend.adoc[]
|===

=== Combined Table (All Characters/Codes)
(DEC 0-255, OCT **000**-**377**, HEX __00__-__ff__)

The following table is a combined table of the previous three sections for ease
of reference.

.All Characters
include::tables/_hdr.adoc[]
include::tables/ctrl.adoc[]
include::tables/print.adoc[]
include::tables/extend.adoc[]
|===


5845
ref/ascii/ascii.html Normal file

File diff suppressed because it is too large Load Diff

62
ref/ascii/tables/_gen.py Executable file
View File

@ -0,0 +1,62 @@
#!/usr/bin/env python3

import json
import html.entities

# These are undefined. We still populate the dec, oct, hex, and bin though.
unused = (129, 141, 143, 144, 157)
# These are whitespace and delete (control characters unnecessary to put here).
noprint = (32, 127, 160, 173)

tpl = '| {d}\n| {o}\n| {h}\n| {b}\n| {ht}\n| {e}\n| {l}\n| {desc}\n'

charsets = {'ctrl': (0, 31),
'print': (32, 127),
'extend': (128, 255)}

with open('_meta.json', 'r') as fh:
meta = json.loads(fh.read())

for f, r in charsets.items():
fname = '{0}.adoc'.format(f)
lines = []
# range()'s second param is the *stop* value, so we kick it up by one to get the last.
for n in range(r[0], (r[1] + 1)):
charmeta = meta.get(str(n), {})
vals = {'d': n,
'o': '{0:0>3}'.format(oct(n).lstrip('0o')),
'h': '{0:0>2}'.format(hex(n).lstrip('0x')),
'b': '{0:0>8}'.format(bin(n).lstrip('0b')),
'ht': '&amp;#{0:0>3};'.format(n),
'e': html.entities.codepoint2name.get(n),
'l': None, # We define this below.
'desc': charmeta.get('desc')}

# Clean up the html escape
if not vals['e']:
vals['e'] = 'N/A'
else:
vals['e'] = '&amp;{0};'.format(vals['e'])

# Try to get a printable character; if not, use the HTML number.
if f == 'ctrl':
vals['l'] = '_{0}_'.format(charmeta.get('sym', 'N/A'))
elif n in noprint:
vals['l'] = 'N/A'
else:
if n in unused:
vals['l'] = 'N/A'
else:
c = chr(n)
try:
c.encode('ascii')
except UnicodeEncodeError as e:
c = '&#{0:0>3};'.format(n)
if c in ('|', '\\'):
c = '\\{0}'.format(c)
vals['l'] = c
lines.append(tpl.format(**vals))

with open(fname, 'w') as fh:
fh.write('\n'.join(lines))

View File

@ -0,0 +1,4 @@
[%header,cols="8*^"]
|===
| DEC | OCT | HEX | BIN | HTML | ESCAPE | LIT | DESC

802
ref/ascii/tables/_meta.json Normal file
View File

@ -0,0 +1,802 @@
{
"0": {
"sym": "NUL",
"desc": "Null byte/character"
},
"1": {
"sym": "SOH",
"desc": "Start of heading"
},
"2": {
"sym": "STX",
"desc": "Start of text"
},
"3": {
"sym": "ETX",
"desc": "End text"
},
"4": {
"sym": "EOT",
"desc": "End of transmission"
},
"5": {
"sym": "ENQ",
"desc": "Enquiry"
},
"6": {
"sym": "ACK",
"desc": "Acknowledgement"
},
"7": {
"sym": "BEL",
"desc": "Terminal bell"
},
"8": {
"sym": "BS",
"desc": "Backspace"
},
"9": {
"sym": "HT",
"desc": "Horizontal tab (`\\t`)"
},
"10": {
"sym": "LF",
"desc": "Line feed (`\\n`)"
},
"11": {
"sym": "VT",
"desc": "Vertical tab"
},
"12": {
"sym": "FF",
"desc": "Form feed"
},
"13": {
"sym": "CR",
"desc": "Carriage return (`\\r`)"
},
"14": {
"sym": "SO",
"desc": "Shift out (`X-ON`)"
},
"15": {
"sym": "SI",
"desc": "Shift in (`X-OFF`)"
},
"16": {
"sym": "DLE",
"desc": "Data line escape"
},
"17": {
"sym": "DC1",
"desc": "Device control 1 (`XON`)"
},
"18": {
"sym": "DC2",
"desc": "Device control 2"
},
"19": {
"sym": "DC3",
"desc": "Device control 3 (`XOFF`)"
},
"20": {
"sym": "DC4",
"desc": "Device control 4"
},
"21": {
"sym": "NAK",
"desc": "Negative acknowledgement"
},
"22": {
"sym": "SYN",
"desc": "Synchronous idle"
},
"23": {
"sym": "ETB",
"desc": "End transmit block"
},
"24": {
"sym": "CAN",
"desc": "Cancel"
},
"25": {
"sym": "EM",
"desc": "End medium"
},
"26": {
"sym": "SUB",
"desc": "Substitute"
},
"27": {
"sym": "ESC",
"desc": "Escape"
},
"28": {
"sym": "FS",
"desc": "File separator"
},
"29": {
"sym": "GS",
"desc": "Group separator"
},
"30": {
"sym": "RS",
"desc": "Record Separator"
},
"31": {
"sym": "US",
"desc": "Unit Separator"
},
"32": {
"desc": "Space (non-printable)"
},
"33": {
"desc": "Exclamation point"
},
"34": {
"desc": "Double quote"
},
"35": {
"desc": "https://en.wiktionary.org/wiki/octothorpe[Octothorpe^] (Number symbol)"
},
"36": {
"desc": "Dollar(USD) symbol"
},
"37": {
"desc": "Percent sign"
},
"38": {
"desc": "Ampersand"
},
"39": {
"desc": "Single quote"
},
"40": {
"desc": "Open parenthesis"
},
"41": {
"desc": "Close parenthesis"
},
"42": {
"desc": "Asterisk"
},
"43": {
"desc": "Plus sign"
},
"44": {
"desc": "Comma"
},
"45": {
"desc": "Hyphen"
},
"46": {
"desc": "Period"
},
"47": {
"desc": "Slash"
},
"48": {
"desc": "The number zero"
},
"49": {
"desc": "The number one"
},
"50": {
"desc": "The number two"
},
"51": {
"desc": "The number three"
},
"52": {
"desc": "The number four"
},
"53": {
"desc": "The number five"
},
"54": {
"desc": "The number six"
},
"55": {
"desc": "The number seven"
},
"56": {
"desc": "The number eight"
},
"57": {
"desc": "The number nine"
},
"58": {
"desc": "Colon"
},
"59": {
"desc": "Semicolon"
},
"60": {
"desc": "Open angled bracket ('Less than' sign)"
},
"61": {
"desc": "Equals sign"
},
"62": {
"desc": "Closed angled bracket ('Greater than' sign)"
},
"63": {
"desc": "Question mark"
},
"64": {
"desc": "'At' symbol"
},
"65": {
"desc": "The letter A (uppercase)"
},
"66": {
"desc": "The letter B (uppercase)"
},
"67": {
"desc": "The letter C (uppercase)"
},
"68": {
"desc": "The letter D (uppercase)"
},
"69": {
"desc": "The letter E (uppercase)"
},
"70": {
"desc": "The letter F (uppercase)"
},
"71": {
"desc": "The letter G (uppercase)"
},
"72": {
"desc": "The letter H (uppercase)"
},
"73": {
"desc": "The letter I (uppercase)"
},
"74": {
"desc": "The letter J (uppercase)"
},
"75": {
"desc": "The letter K (uppercase)"
},
"76": {
"desc": "The letter L (uppercase)"
},
"77": {
"desc": "The letter M (uppercase)"
},
"78": {
"desc": "The letter N (uppercase)"
},
"79": {
"desc": "The letter O (uppercase)"
},
"80": {
"desc": "The letter P (uppercase)"
},
"81": {
"desc": "The letter Q (uppercase)"
},
"82": {
"desc": "The letter R (uppercase)"
},
"83": {
"desc": "The letter S (uppercase)"
},
"84": {
"desc": "The letter T (uppercase)"
},
"85": {
"desc": "The letter U (uppercase)"
},
"86": {
"desc": "The letter V (uppercase)"
},
"87": {
"desc": "The letter W (uppercase)"
},
"88": {
"desc": "The letter X (uppercase)"
},
"89": {
"desc": "The letter Y (uppercase)"
},
"90": {
"desc": "The letter Z (uppercase)"
},
"91": {
"desc": "Open square bracket"
},
"92": {
"desc": "Backslash"
},
"93": {
"desc": "Closed square bracket"
},
"94": {
"desc": "Caret (Exponent sign)"
},
"95": {
"desc": "Underscore"
},
"96": {
"desc": "Grave accent (Backtick)"
},
"97": {
"desc": "The letter A (lowercase)"
},
"98": {
"desc": "The letter B (lowercase)"
},
"99": {
"desc": "The letter C (lowercase)"
},
"100": {
"desc": "The letter D (lowercase)"
},
"101": {
"desc": "The letter E (lowercase)"
},
"102": {
"desc": "The letter F (lowercase)"
},
"103": {
"desc": "The letter G (lowercase)"
},
"104": {
"desc": "The letter H (lowercase)"
},
"105": {
"desc": "The letter I (lowercase)"
},
"106": {
"desc": "The letter J (lowercase)"
},
"107": {
"desc": "The letter K (lowercase)"
},
"108": {
"desc": "The letter L (lowercase)"
},
"109": {
"desc": "The letter M (lowercase)"
},
"110": {
"desc": "The letter N (lowercase)"
},
"111": {
"desc": "The letter O (lowercase)"
},
"112": {
"desc": "The letter P (lowercase)"
},
"113": {
"desc": "The letter Q (lowercase)"
},
"114": {
"desc": "The letter R (lowercase)"
},
"115": {
"desc": "The letter S (lowercase)"
},
"116": {
"desc": "The letter T (lowercase)"
},
"117": {
"desc": "The letter U (lowercase)"
},
"118": {
"desc": "The letter V (lowercase)"
},
"119": {
"desc": "The letter W (lowercase)"
},
"120": {
"desc": "The letter X (lowercase)"
},
"121": {
"desc": "The letter Y (lowercase)"
},
"122": {
"desc": "The letter Z (lowercase)"
},
"123": {
"desc": "Open curly bracket (Open brace)"
},
"124": {
"desc": "Vertical bar (Pipe)"
},
"125": {
"desc": "Closed curly bracket (Closed brace)"
},
"126": {
"desc": "Tilde (Equivalency sign)"
},
"127": {
"desc": "Delete"
},
"128": {
"desc": "Euro symbol"
},
"129": {
"desc": "N/A (Undefined)"
},
"130": {
"desc": "Single low-9 quote"
},
"131": {
"desc": "https://en.wikipedia.org/wiki/Florin_sign[Florin^] (Hooked F, lowercase)"
},
"132": {
"desc": "Double low-9 quote"
},
"133": {
"desc": "Horizontal ellipsis"
},
"134": {
"desc": "https://en.wikipedia.org/wiki/Dagger_(typography)[Dagger^]"
},
"135": {
"desc": "https://en.wikipedia.org/wiki/Dagger_(typography)[Double dagger^]"
},
"136": {
"desc": "https://en.wikipedia.org/wiki/Circumflex[Circumflex^]"
},
"137": {
"desc": "https://en.wikipedia.org/wiki/Per_mille[Per mille^] sign"
},
"138": {
"desc": "https://en.wikipedia.org/wiki/%C5%A0[S with caron^] (uppercase)"
},
"139": {
"desc": "Open single https://en.wikipedia.org/wiki/Guillemet[guillemet^]"
},
"140": {
"desc": "Latin https://en.wikipedia.org/wiki/%C5%92[OE ligature^] (uppercase)"
},
"141": {
"desc": "N/A (Undefined)"
},
"142": {
"desc": "https://en.wikipedia.org/wiki/%C5%BD[Z with caron^] (uppercase)"
},
"143": {
"desc": "N/A (Undefined)"
},
"144": {
"desc": "N/A (Undefined)"
},
"145": {
"desc": "Open single quote mark"
},
"146": {
"desc": "Closed single quote mark"
},
"147": {
"desc": "Open double quote mark"
},
"148": {
"desc": "Closed double quote mark"
},
"149": {
"desc": "Bullet"
},
"150": {
"desc": "En dash"
},
"151": {
"desc": "Em dash"
},
"152": {
"desc": "Small tilde"
},
"153": {
"desc": "Trademark symbol"
},
"154": {
"desc": "https://en.wikipedia.org/wiki/%C5%A0[S with caron^] (lowercase)"
},
"155": {
"desc": "Closed single https://en.wikipedia.org/wiki/Guillemet[guillemet^]"
},
"156": {
"desc": "Latin https://en.wikipedia.org/wiki/%C5%92[OE ligature^] (lowercase)"
},
"157": {
"desc": "N/A (Undefined)"
},
"158": {
"desc": "https://en.wikipedia.org/wiki/%C5%BD[Z with caron^] (lowercase)"
},
"159": {
"desc": "https://en.wikipedia.org/wiki/Diaeresis_(diacritic)[Diaeretic^] Y (uppercase)"
},
"160": {
"desc": "Non-breaking space"
},
"161": {
"desc": "Inverted exclamation point"
},
"162": {
"desc": "Cent(USD) symbol"
},
"163": {
"desc": "Pound sterling(GBP) symbol"
},
"164": {
"desc": "https://en.wikipedia.org/wiki/Currency_sign_(typography)[Generic/unspecified currency^] symbol"
},
"165": {
"desc": "Yen(JPY)/Yuan(CNY) symbol"
},
"166": {
"desc": "https://en.wikipedia.org/wiki/Vertical_bar#Solid_vertical_bar_vs_broken_bar[Broken^] Vertical bar (Pipe)"
},
"167": {
"desc": "Section symbol"
},
"168": {
"desc": "https://en.wikipedia.org/wiki/Diaeresis_(diacritic)#Umlaut[Umlaut^]"
},
"169": {
"desc": "Copyright symbol"
},
"170": {
"desc": "https://en.wikipedia.org/wiki/Ordinal_indicator[Ordinal indicator^] (feminine)"
},
"171": {
"desc": "Open double https://en.wikipedia.org/wiki/Guillemet[guillemet^]"
},
"172": {
"desc": "https://en.wikipedia.org/wiki/Negation['Not' sign^]"
},
"173": {
"desc": "https://en.wikipedia.org/wiki/Soft_hyphen[Soft hyphen^]"
},
"174": {
"desc": "Registered trademark symbol"
},
"175": {
"desc": "https://en.wikipedia.org/wiki/Macron_(diacritic)[Macron^] (overline)"
},
"176": {
"desc": "Degree symbol"
},
"177": {
"desc": "https://en.wikipedia.org/wiki/Plus%E2%80%93minus_sign[Plus-minus^] sign"
},
"178": {
"desc": "Superscript two (Squared)"
},
"179": {
"desc": "Superscript three (Cubed)"
},
"180": {
"desc": "https://en.wikipedia.org/wiki/Acute_accent[Acute^] accent"
},
"181": {
"desc": "https://en.wikipedia.org/wiki/Mu_(letter)[Mu^] (Micro symbol)"
},
"182": {
"desc": "https://en.wikipedia.org/wiki/Pilcrow[Pilcrow^] (Paragraph symbol)"
},
"183": {
"desc": "https://en.wikipedia.org/wiki/Interpunct[Interpunct^]"
},
"184": {
"desc": "https://en.wikipedia.org/wiki/Cedilla[Cedilla^]"
},
"185": {
"desc": "Superscript one"
},
"186": {
"desc": "https://en.wikipedia.org/wiki/Ordinal_indicator[Ordinal indicator^] (masculine)"
},
"187": {
"desc": "Closed double https://en.wikipedia.org/wiki/Guillemet[guillemet^]"
},
"188": {
"desc": "Fraction (One-quarter)"
},
"189": {
"desc": "Fraction (One-half)"
},
"190": {
"desc": "Fraction (Three-quarters)"
},
"191": {
"desc": "Inverted question mark"
},
"192": {
"desc": "https://en.wikipedia.org/wiki/Grave_accent[Grave^] A (uppercase)"
},
"193": {
"desc": "https://en.wikipedia.org/wiki/Acute_accent[Acute^] A (uppercase)"
},
"194": {
"desc": "https://en.wikipedia.org/wiki/Circumflex[Circumflex^] A (uppercase)"
},
"195": {
"desc": "A with tilde (uppercase)"
},
"196": {
"desc": "https://en.wikipedia.org/wiki/Diaeresis_(diacritic)[Diaeretic^] A (uppercase)"
},
"197": {
"desc": "https://en.wikipedia.org/wiki/Ring_(diacritic)[Ringed^] A (uppercase)"
},
"198": {
"desc": "https://en.wikipedia.org/wiki/%C3%86[AE ligature^] (uppercase)"
},
"199": {
"desc": "https://en.wikipedia.org/wiki/Cedilla[Cedillic^] C (uppercase)"
},
"200": {
"desc": "https://en.wikipedia.org/wiki/Grave_accent[Grave^] E (uppercase)"
},
"201": {
"desc": "https://en.wikipedia.org/wiki/Acute_accent[Acute^] E (uppercase)"
},
"202": {
"desc": "https://en.wikipedia.org/wiki/Circumflex[Circumflex^] E (uppercase)"
},
"203": {
"desc": "https://en.wikipedia.org/wiki/Diaeresis_(diacritic)[Diaeretic^] E (uppercase)"
},
"204": {
"desc": "https://en.wikipedia.org/wiki/Grave_accent[Grave^] I (uppercase)"
},
"205": {
"desc": "https://en.wikipedia.org/wiki/Acute_accent[Acute^] I (uppercase)"
},
"206": {
"desc": "https://en.wikipedia.org/wiki/Circumflex[Circumflex^] I (uppercase)"
},
"207": {
"desc": "https://en.wikipedia.org/wiki/Diaeresis_(diacritic)[Diaeretic^] I (uppercase)"
},
"208": {
"desc": "https://en.wikipedia.org/wiki/Eth[Eth^] (uppercase)"
},
"209": {
"desc": "N with tilde (uppercase)"
},
"210": {
"desc": "https://en.wikipedia.org/wiki/Grave_accent[Grave^] O (uppercase)"
},
"211": {
"desc": "https://en.wikipedia.org/wiki/Acute_accent[Acute^] O (uppercase)"
},
"212": {
"desc": "https://en.wikipedia.org/wiki/Circumflex[Circumflex^] O (uppercase)"
},
"213": {
"desc": "O with tilde (uppercase)"
},
"214": {
"desc": "https://en.wikipedia.org/wiki/Diaeresis_(diacritic)[Diaeretic^] O (uppercase)"
},
"215": {
"desc": "Multiplication sign"
},
"216": {
"desc": "Slashed O (uppercase)"
},
"217": {
"desc": "https://en.wikipedia.org/wiki/Grave_accent[Grave^] U (uppercase)"
},
"218": {
"desc": "https://en.wikipedia.org/wiki/Acute_accent[Acute^] U (uppercase)"
},
"219": {
"desc": "https://en.wikipedia.org/wiki/Circumflex[Circumflex^] U (uppercase)"
},
"220": {
"desc": "https://en.wikipedia.org/wiki/Diaeresis_(diacritic)[Diaeretic^] U (uppercase)"
},
"221": {
"desc": "https://en.wikipedia.org/wiki/Acute_accent[Acute^] Y (uppercase)"
},
"222": {
"desc": "https://en.wikipedia.org/wiki/Thorn_(letter)[Thorn^] (uppercase)"
},
"223": {
"desc": "https://en.wikipedia.org/wiki/%C3%9F[Eszett^] (uppercase)"
},
"224": {
"desc": "https://en.wikipedia.org/wiki/Grave_accent[Grave^] A (lowercase)"
},
"225": {
"desc": "https://en.wikipedia.org/wiki/Acute_accent[Acute^] A (lowercase)"
},
"226": {
"desc": "https://en.wikipedia.org/wiki/Circumflex[Circumflex^] A (lowercase)"
},
"227": {
"desc": "A with tilde (lowercase)"
},
"228": {
"desc": "https://en.wikipedia.org/wiki/Diaeresis_(diacritic)[Diaeretic^] A (lowercase)"
},
"229": {
"desc": "https://en.wikipedia.org/wiki/Ring_(diacritic)[Ringed^] A (lowercase)"
},
"230": {
"desc": "https://en.wikipedia.org/wiki/%C3%86[AE ligature^] (lowercase)"
},
"231": {
"desc": "https://en.wikipedia.org/wiki/Cedilla[Cedillic^] C (lowercase)"
},
"232": {
"desc": "https://en.wikipedia.org/wiki/Grave_accent[Grave^] E (lowercase)"
},
"233": {
"desc": "https://en.wikipedia.org/wiki/Acute_accent[Acute^] E (lowercase)"
},
"234": {
"desc": "https://en.wikipedia.org/wiki/Circumflex[Circumflex^] E (lowercase)"
},
"235": {
"desc": "https://en.wikipedia.org/wiki/Diaeresis_(diacritic)[Diaeretic^] E (lowercase)"
},
"236": {
"desc": "https://en.wikipedia.org/wiki/Grave_accent[Grave^] I (lowercase)"
},
"237": {
"desc": "https://en.wikipedia.org/wiki/Acute_accent[Acute^] I (lowercase)"
},
"238": {
"desc": "https://en.wikipedia.org/wiki/Circumflex[Circumflex^] I (lowercase)"
},
"239": {
"desc": "https://en.wikipedia.org/wiki/Diaeresis_(diacritic)[Diaeretic^] I (lowercase)"
},
"240": {
"desc": "https://en.wikipedia.org/wiki/Eth[Eth^] (lowercase)"
},
"241": {
"desc": "N with tilde (lowercase)"
},
"242": {
"desc": "https://en.wikipedia.org/wiki/Grave_accent[Grave^] O (lowercase)"
},
"243": {
"desc": "https://en.wikipedia.org/wiki/Acute_accent[Acute^] O (lowercase)"
},
"244": {
"desc": "https://en.wikipedia.org/wiki/Circumflex[Circumflex^] O (lowercase)"
},
"245": {
"desc": "O with tilde (lowercase)"
},
"246": {
"desc": "https://en.wikipedia.org/wiki/Diaeresis_(diacritic)[Diaeretic^] O (lowercase)"
},
"247": {
"desc": "Division sign"
},
"248": {
"desc": "Slashed 0 (lowercase)"
},
"249": {
"desc": "https://en.wikipedia.org/wiki/Grave_accent[Grave^] U (lowercase)"
},
"250": {
"desc": "https://en.wikipedia.org/wiki/Acute_accent[Acute^] U (lowercase)"
},
"251": {
"desc": "https://en.wikipedia.org/wiki/Circumflex[Circumflex^] U (lowercase)"
},
"252": {
"desc": "https://en.wikipedia.org/wiki/Diaeresis_(diacritic)[Diaeretic^] U (lowercase)"
},
"253": {
"desc": "https://en.wikipedia.org/wiki/Acute_accent[Acute^] Y (lowercase)"
},
"254": {
"desc": "https://en.wikipedia.org/wiki/Thorn_(letter)[Thorn^] (lowercase)"
},
"255": {
"desc": "https://en.wikipedia.org/wiki/Diaeresis_(diacritic)[Diaeretic^] Y (lowercase)"
}
}

287
ref/ascii/tables/ctrl.adoc Normal file
View File

@ -0,0 +1,287 @@
| 0
| 000
| 00
| 00000000
| &amp;#000;
| N/A
| _NUL_
| Null byte/character

| 1
| 001
| 01
| 00000001
| &amp;#001;
| N/A
| _SOH_
| Start of heading

| 2
| 002
| 02
| 00000010
| &amp;#002;
| N/A
| _STX_
| Start of text

| 3
| 003
| 03
| 00000011
| &amp;#003;
| N/A
| _ETX_
| End text

| 4
| 004
| 04
| 00000100
| &amp;#004;
| N/A
| _EOT_
| End of transmission

| 5
| 005
| 05
| 00000101
| &amp;#005;
| N/A
| _ENQ_
| Enquiry

| 6
| 006
| 06
| 00000110
| &amp;#006;
| N/A
| _ACK_
| Acknowledgement

| 7
| 007
| 07
| 00000111
| &amp;#007;
| N/A
| _BEL_
| Terminal bell

| 8
| 010
| 08
| 00001000
| &amp;#008;
| N/A
| _BS_
| Backspace

| 9
| 011
| 09
| 00001001
| &amp;#009;
| N/A
| _HT_
| Horizontal tab (`\t`)

| 10
| 012
| 0a
| 00001010
| &amp;#010;
| N/A
| _LF_
| Line feed (`\n`)

| 11
| 013
| 0b
| 00001011
| &amp;#011;
| N/A
| _VT_
| Vertical tab

| 12
| 014
| 0c
| 00001100
| &amp;#012;
| N/A
| _FF_
| Form feed

| 13
| 015
| 0d
| 00001101
| &amp;#013;
| N/A
| _CR_
| Carriage return (`\r`)

| 14
| 016
| 0e
| 00001110
| &amp;#014;
| N/A
| _SO_
| Shift out (`X-ON`)

| 15
| 017
| 0f
| 00001111
| &amp;#015;
| N/A
| _SI_
| Shift in (`X-OFF`)

| 16
| 020
| 10
| 00010000
| &amp;#016;
| N/A
| _DLE_
| Data line escape

| 17
| 021
| 11
| 00010001
| &amp;#017;
| N/A
| _DC1_
| Device control 1 (`XON`)

| 18
| 022
| 12
| 00010010
| &amp;#018;
| N/A
| _DC2_
| Device control 2

| 19
| 023
| 13
| 00010011
| &amp;#019;
| N/A
| _DC3_
| Device control 3 (`XOFF`)

| 20
| 024
| 14
| 00010100
| &amp;#020;
| N/A
| _DC4_
| Device control 4

| 21
| 025
| 15
| 00010101
| &amp;#021;
| N/A
| _NAK_
| Negative acknowledgement

| 22
| 026
| 16
| 00010110
| &amp;#022;
| N/A
| _SYN_
| Synchronous idle

| 23
| 027
| 17
| 00010111
| &amp;#023;
| N/A
| _ETB_
| End transmit block

| 24
| 030
| 18
| 00011000
| &amp;#024;
| N/A
| _CAN_
| Cancel

| 25
| 031
| 19
| 00011001
| &amp;#025;
| N/A
| _EM_
| End medium

| 26
| 032
| 1a
| 00011010
| &amp;#026;
| N/A
| _SUB_
| Substitute

| 27
| 033
| 1b
| 00011011
| &amp;#027;
| N/A
| _ESC_
| Escape

| 28
| 034
| 1c
| 00011100
| &amp;#028;
| N/A
| _FS_
| File separator

| 29
| 035
| 1d
| 00011101
| &amp;#029;
| N/A
| _GS_
| Group separator

| 30
| 036
| 1e
| 00011110
| &amp;#030;
| N/A
| _RS_
| Record Separator

| 31
| 037
| 1f
| 00011111
| &amp;#031;
| N/A
| _US_
| Unit Separator

1151
ref/ascii/tables/extend.adoc Normal file

File diff suppressed because it is too large Load Diff

863
ref/ascii/tables/print.adoc Normal file
View File

@ -0,0 +1,863 @@
| 32
| 040
| 20
| 00100000
| &amp;#032;
| N/A
| N/A
| Space (non-printable)

| 33
| 041
| 21
| 00100001
| &amp;#033;
| N/A
| !
| Exclamation point

| 34
| 042
| 22
| 00100010
| &amp;#034;
| &amp;quot;
| "
| Double quote

| 35
| 043
| 23
| 00100011
| &amp;#035;
| N/A
| #
| https://en.wiktionary.org/wiki/octothorpe[Octothorpe^] (Number symbol)

| 36
| 044
| 24
| 00100100
| &amp;#036;
| N/A
| $
| Dollar(USD) symbol

| 37
| 045
| 25
| 00100101
| &amp;#037;
| N/A
| %
| Percent sign

| 38
| 046
| 26
| 00100110
| &amp;#038;
| &amp;amp;
| &
| Ampersand

| 39
| 047
| 27
| 00100111
| &amp;#039;
| N/A
| '
| Single quote

| 40
| 050
| 28
| 00101000
| &amp;#040;
| N/A
| (
| Open parenthesis

| 41
| 051
| 29
| 00101001
| &amp;#041;
| N/A
| )
| Close parenthesis

| 42
| 052
| 2a
| 00101010
| &amp;#042;
| N/A
| *
| Asterisk

| 43
| 053
| 2b
| 00101011
| &amp;#043;
| N/A
| +
| Plus sign

| 44
| 054
| 2c
| 00101100
| &amp;#044;
| N/A
| ,
| Comma

| 45
| 055
| 2d
| 00101101
| &amp;#045;
| N/A
| -
| Hyphen

| 46
| 056
| 2e
| 00101110
| &amp;#046;
| N/A
| .
| Period

| 47
| 057
| 2f
| 00101111
| &amp;#047;
| N/A
| /
| Slash

| 48
| 060
| 30
| 00110000
| &amp;#048;
| N/A
| 0
| The number zero

| 49
| 061
| 31
| 00110001
| &amp;#049;
| N/A
| 1
| The number one

| 50
| 062
| 32
| 00110010
| &amp;#050;
| N/A
| 2
| The number two

| 51
| 063
| 33
| 00110011
| &amp;#051;
| N/A
| 3
| The number three

| 52
| 064
| 34
| 00110100
| &amp;#052;
| N/A
| 4
| The number four

| 53
| 065
| 35
| 00110101
| &amp;#053;
| N/A
| 5
| The number five

| 54
| 066
| 36
| 00110110
| &amp;#054;
| N/A
| 6
| The number six

| 55
| 067
| 37
| 00110111
| &amp;#055;
| N/A
| 7
| The number seven

| 56
| 070
| 38
| 00111000
| &amp;#056;
| N/A
| 8
| The number eight

| 57
| 071
| 39
| 00111001
| &amp;#057;
| N/A
| 9
| The number nine

| 58
| 072
| 3a
| 00111010
| &amp;#058;
| N/A
| :
| Colon

| 59
| 073
| 3b
| 00111011
| &amp;#059;
| N/A
| ;
| Semicolon

| 60
| 074
| 3c
| 00111100
| &amp;#060;
| &amp;lt;
| <
| Open angled bracket ('Less than' sign)

| 61
| 075
| 3d
| 00111101
| &amp;#061;
| N/A
| =
| Equals sign

| 62
| 076
| 3e
| 00111110
| &amp;#062;
| &amp;gt;
| >
| Closed angled bracket ('Greater than' sign)

| 63
| 077
| 3f
| 00111111
| &amp;#063;
| N/A
| ?
| Question mark

| 64
| 100
| 40
| 01000000
| &amp;#064;
| N/A
| @
| 'At' symbol

| 65
| 101
| 41
| 01000001
| &amp;#065;
| N/A
| A
| The letter A (uppercase)

| 66
| 102
| 42
| 01000010
| &amp;#066;
| N/A
| B
| The letter B (uppercase)

| 67
| 103
| 43
| 01000011
| &amp;#067;
| N/A
| C
| The letter C (uppercase)

| 68
| 104
| 44
| 01000100
| &amp;#068;
| N/A
| D
| The letter D (uppercase)

| 69
| 105
| 45
| 01000101
| &amp;#069;
| N/A
| E
| The letter E (uppercase)

| 70
| 106
| 46
| 01000110
| &amp;#070;
| N/A
| F
| The letter F (uppercase)

| 71
| 107
| 47
| 01000111
| &amp;#071;
| N/A
| G
| The letter G (uppercase)

| 72
| 110
| 48
| 01001000
| &amp;#072;
| N/A
| H
| The letter H (uppercase)

| 73
| 111
| 49
| 01001001
| &amp;#073;
| N/A
| I
| The letter I (uppercase)

| 74
| 112
| 4a
| 01001010
| &amp;#074;
| N/A
| J
| The letter J (uppercase)

| 75
| 113
| 4b
| 01001011
| &amp;#075;
| N/A
| K
| The letter K (uppercase)

| 76
| 114
| 4c
| 01001100
| &amp;#076;
| N/A
| L
| The letter L (uppercase)

| 77
| 115
| 4d
| 01001101
| &amp;#077;
| N/A
| M
| The letter M (uppercase)

| 78
| 116
| 4e
| 01001110
| &amp;#078;
| N/A
| N
| The letter N (uppercase)

| 79
| 117
| 4f
| 01001111
| &amp;#079;
| N/A
| O
| The letter O (uppercase)

| 80
| 120
| 50
| 01010000
| &amp;#080;
| N/A
| P
| The letter P (uppercase)

| 81
| 121
| 51
| 01010001
| &amp;#081;
| N/A
| Q
| The letter Q (uppercase)

| 82
| 122
| 52
| 01010010
| &amp;#082;
| N/A
| R
| The letter R (uppercase)

| 83
| 123
| 53
| 01010011
| &amp;#083;
| N/A
| S
| The letter S (uppercase)

| 84
| 124
| 54
| 01010100
| &amp;#084;
| N/A
| T
| The letter T (uppercase)

| 85
| 125
| 55
| 01010101
| &amp;#085;
| N/A
| U
| The letter U (uppercase)

| 86
| 126
| 56
| 01010110
| &amp;#086;
| N/A
| V
| The letter V (uppercase)

| 87
| 127
| 57
| 01010111
| &amp;#087;
| N/A
| W
| The letter W (uppercase)

| 88
| 130
| 58
| 01011000
| &amp;#088;
| N/A
| X
| The letter X (uppercase)

| 89
| 131
| 59
| 01011001
| &amp;#089;
| N/A
| Y
| The letter Y (uppercase)

| 90
| 132
| 5a
| 01011010
| &amp;#090;
| N/A
| Z
| The letter Z (uppercase)

| 91
| 133
| 5b
| 01011011
| &amp;#091;
| N/A
| [
| Open square bracket

| 92
| 134
| 5c
| 01011100
| &amp;#092;
| N/A
| \\
| Backslash

| 93
| 135
| 5d
| 01011101
| &amp;#093;
| N/A
| ]
| Closed square bracket

| 94
| 136
| 5e
| 01011110
| &amp;#094;
| N/A
| ^
| Caret (Exponent sign)

| 95
| 137
| 5f
| 01011111
| &amp;#095;
| N/A
| _
| Underscore

| 96
| 140
| 60
| 01100000
| &amp;#096;
| N/A
| `
| Grave accent (Backtick)

| 97
| 141
| 61
| 01100001
| &amp;#097;
| N/A
| a
| The letter A (lowercase)

| 98
| 142
| 62
| 01100010
| &amp;#098;
| N/A
| b
| The letter B (lowercase)

| 99
| 143
| 63
| 01100011
| &amp;#099;
| N/A
| c
| The letter C (lowercase)

| 100
| 144
| 64
| 01100100
| &amp;#100;
| N/A
| d
| The letter D (lowercase)

| 101
| 145
| 65
| 01100101
| &amp;#101;
| N/A
| e
| The letter E (lowercase)

| 102
| 146
| 66
| 01100110
| &amp;#102;
| N/A
| f
| The letter F (lowercase)

| 103
| 147
| 67
| 01100111
| &amp;#103;
| N/A
| g
| The letter G (lowercase)

| 104
| 150
| 68
| 01101000
| &amp;#104;
| N/A
| h
| The letter H (lowercase)

| 105
| 151
| 69
| 01101001
| &amp;#105;
| N/A
| i
| The letter I (lowercase)

| 106
| 152
| 6a
| 01101010
| &amp;#106;
| N/A
| j
| The letter J (lowercase)

| 107
| 153
| 6b
| 01101011
| &amp;#107;
| N/A
| k
| The letter K (lowercase)

| 108
| 154
| 6c
| 01101100
| &amp;#108;
| N/A
| l
| The letter L (lowercase)

| 109
| 155
| 6d
| 01101101
| &amp;#109;
| N/A
| m
| The letter M (lowercase)

| 110
| 156
| 6e
| 01101110
| &amp;#110;
| N/A
| n
| The letter N (lowercase)

| 111
| 157
| 6f
| 01101111
| &amp;#111;
| N/A
| o
| The letter O (lowercase)

| 112
| 160
| 70
| 01110000
| &amp;#112;
| N/A
| p
| The letter P (lowercase)

| 113
| 161
| 71
| 01110001
| &amp;#113;
| N/A
| q
| The letter Q (lowercase)

| 114
| 162
| 72
| 01110010
| &amp;#114;
| N/A
| r
| The letter R (lowercase)

| 115
| 163
| 73
| 01110011
| &amp;#115;
| N/A
| s
| The letter S (lowercase)

| 116
| 164
| 74
| 01110100
| &amp;#116;
| N/A
| t
| The letter T (lowercase)

| 117
| 165
| 75
| 01110101
| &amp;#117;
| N/A
| u
| The letter U (lowercase)

| 118
| 166
| 76
| 01110110
| &amp;#118;
| N/A
| v
| The letter V (lowercase)

| 119
| 167
| 77
| 01110111
| &amp;#119;
| N/A
| w
| The letter W (lowercase)

| 120
| 170
| 78
| 01111000
| &amp;#120;
| N/A
| x
| The letter X (lowercase)

| 121
| 171
| 79
| 01111001
| &amp;#121;
| N/A
| y
| The letter Y (lowercase)

| 122
| 172
| 7a
| 01111010
| &amp;#122;
| N/A
| z
| The letter Z (lowercase)

| 123
| 173
| 7b
| 01111011
| &amp;#123;
| N/A
| {
| Open curly bracket (Open brace)

| 124
| 174
| 7c
| 01111100
| &amp;#124;
| N/A
| \|
| Vertical bar (Pipe)

| 125
| 175
| 7d
| 01111101
| &amp;#125;
| N/A
| }
| Closed curly bracket (Closed brace)

| 126
| 176
| 7e
| 01111110
| &amp;#126;
| N/A
| ~
| Tilde (Equivalency sign)

| 127
| 177
| 7f
| 01111111
| &amp;#127;
| N/A
| N/A
| Delete

2
ref/todo Normal file
View File

@ -0,0 +1,2 @@
do a UTF reference? for HTML5 anyways, maybe?
but there's thousands of those so lol maybe not.