TRS-80 character set
{{Short description|8-bit character set}}
The TRS-80 computer manufactured by Tandy / Radio Shack contains an 8-bit character set. It is partially derived from ASCII, and shares the code points from 32 - 95 on the standard model. Code points 96 - 127 are supported on models that have been fitted with a lower-case upgrade.{{sfn|Heiserman|1983|p=15}}
The character set consists of letters, various numeric and special characters as well as 64 semigraphics called squots (square dots) from a 2×3 matrix. These were located at code points 128 to 191 with bits 5-0 following their binary representation, similar to alpha-mosaic characters in World System Teletext.{{cite web| url=https://www.etsi.org/deliver/etsi_i_ets/300700_300799/300706/01_60/ets_300706e01p.pdf#page=126 | title=ETS 300 706 - Graphics Character Sets}} These characters were used for graphics in games, such as Android Nim.{{sfn|Crawford|2003|p=202}}
Character set
The following table shows the TRS-80 model I character set. Each character is shown with a potential Unicode equivalent. Space and control characters are represented by the abbreviations for their names.
{{chset-table-header1|TRS-80 model I character set{{cite book|title=Level II Basic Manual|year=1978|publisher=Tandy / Radio Shack|pages=C1/C2|url=https://archive.org/stream/Level_II_BASIC_Reference_Manual_1st_Ed._1978_Radio_Shack#page/n111/mode/2up/search/ASCII}}{{Citation|title=L2/19-025: Proposal to add characters from legacy computers and teletext to the UCS|chapter-url=https://www.unicode.org/L2/L2019/19025-terminals-prop.pdf|chapter=TRSM1ICH.TXT|date=2019-01-04}}{{sfn|Heiserman|1983|p=243}}}} | ||||||||||||||||
{{chset-left1|0x}}
|{{chset-cell1 | |style=background:#DDD}}
|{{chset-cell1 | |style=background:#DDD}}
|{{chset-cell1 | |style=background:#DDD}}
|{{chset-cell1 | |style=background:#DDD}}
|{{chset-cell1 | |style=background:#DDD}}
|{{chset-cell1 | |style=background:#DDD}}
|{{chset-cell1 | |style=background:#DDD}}
|{{chset-cell1 | |style=background:#DDD}}
|{{chset-ctrl1|U+0008 BACKSPACE|BS|fn={{efn|Backspace and erase current character}}}} |{{chset-cell1 | |style=background:#DDD}}
|{{chset-ctrl1|U+000A LINE FEED (LF)|LF}} |{{chset-cell1 | |style=background:#DDD}}
|{{chset-cell1 | |style=background:#DDD}}
|{{chset-ctrl1|U+000D CARRIAGE RETURN (CR)|CR}} |{{chset-ctrl1 | con|fn={{efn|Cursor on}}}}
|{{chset-ctrl1 | coff|fn={{efn|Cursor off}}}} | |||
{{chset-left1|1x}}
|{{chset-cell1 | |style=background:#DDD}}
|{{chset-cell1 | |style=background:#DDD}}
|{{chset-cell1 | |style=background:#DDD}}
|{{chset-cell1 | |style=background:#DDD}}
|{{chset-cell1 | |style=background:#DDD}}
|{{chset-cell1 | |style=background:#DDD}}
|{{chset-ctrl1 | カ|fn={{efn|Toggles Katakana characters (Model III)}}}}
|{{chset-ctrl1 | 32|fn={{efn|Converts to wide 32 column mode}}}}
|{{chset-ctrl1 | ←|fn={{efn|Backspace ← Cursor}}}}
|{{chset-ctrl1 | →|fn={{efn|Advance → Cursor}}}}
|{{chset-ctrl1 | ↓|fn={{efn|Downward ↓ linefeed}}}}
|{{chset-ctrl1 | ↑|fn={{efn|Upward ↑ linefeed}}}}
|{{chset-ctrl1 | home|fn={{efn|Move cursor to (0,0), also turns off 32 column mode}}}}
|{{chset-ctrl1 | sol|fn={{efn|Move to start of line}}}}
|{{chset-ctrl1 | ceol|fn={{efn|Erase to end of line}}}}
|{{chset-ctrl1 | ceof|fn={{efn|Erase to end of frame}}}} |
{{chset-left1|2x}}
|{{chset-ctrl1|U+0020 SPACE| SP }} |{{chset-cell1|U+0021 EXCLAMATION MARK|!}} |{{chset-cell1|U+0022 QUOTATION MARK|" }} |{{chset-cell1|U+0023 NUMBER SIGN|#}} |{{chset-cell1|U+0024 DOLLAR SIGN|$}} |{{chset-cell1|U+0025 PERCENT SIGN|%}} |{{chset-cell1|U+0026 AMPERSAND|&}} |{{chset-cell1|U+0027 APOSTROPHE|'}} |{{chset-cell1|U+0028 LEFT PARENTHESIS|(}} |{{chset-cell1|U+0029 RIGHT PARENTHESIS|)}} |{{chset-cell1|U+002A ASTERISK|*}} |{{chset-cell1|U+002B PLUS SIGN|+}} |{{chset-cell1|U+002C COMMA|, }} |{{chset-cell1|U+002D HYPHEN-MINUS|Hyphen-minus | ||||||||||||||||
}}
|{{chset-cell1|U+002E FULL STOP|.}} |{{chset-cell1|U+002F SOLIDUS|/ }} | ||||||||||||||||
{{chset-left1|3x}}
|{{chset-cell1|U+0030 DIGIT ZERO|0}} |{{chset-cell1|U+0031 DIGIT ONE|1}} |{{chset-cell1|U+0032 DIGIT TWO|2}} |{{chset-cell1|U+0033 DIGIT THREE|3}} |{{chset-cell1|U+0034 DIGIT FOUR|4}} |{{chset-cell1|U+0035 DIGIT FIVE|5}} |{{chset-cell1|U+0036 DIGIT SIX|6}} |{{chset-cell1|U+0037 DIGIT SEVEN|7}} |{{chset-cell1|U+0038 DIGIT EIGHT|8}} |{{chset-cell1|U+0039 DIGIT NINE|9}} |{{chset-cell1|U+003A COLON|:}} |{{chset-cell1|U+003B SEMICOLON|;}} |{{chset-cell1|U+003C LESS-THAN SIGN|<}} |{{chset-cell1|U+003D EQUALS SIGN|{{=}}}} |{{chset-cell1|U+003E GREATER-THAN SIGN|>}} |{{chset-cell1|U+003F QUESTION MARK|?}} | ||||||||||||||||
{{chset-left1|4x}}
|{{chset-cell1|U+0040 COMMERCIAL AT|@}} |{{chset-cell1|U+0041 LATIN CAPITAL LETTER A|A}} |{{chset-cell1|U+0042 LATIN CAPITAL LETTER B|B}} |{{chset-cell1|U+0043 LATIN CAPITAL LETTER C|C}} |{{chset-cell1|U+0044 LATIN CAPITAL LETTER D|D}} |{{chset-cell1|U+0045 LATIN CAPITAL LETTER E|E}} |{{chset-cell1|U+0046 LATIN CAPITAL LETTER F|F}} |{{chset-cell1|U+0047 LATIN CAPITAL LETTER G|G}} |{{chset-cell1|U+0048 LATIN CAPITAL LETTER H|H}} |{{chset-cell1|U+0049 LATIN CAPITAL LETTER I|I}} |{{chset-cell1|U+004A LATIN CAPITAL LETTER J|J}} |{{chset-cell1|U+004B LATIN CAPITAL LETTER K|K}} |{{chset-cell1|U+004C LATIN CAPITAL LETTER L|L}} |{{chset-cell1|U+004D LATIN CAPITAL LETTER M|M}} |{{chset-cell1|U+004E LATIN CAPITAL LETTER N|N}} |{{chset-cell1|U+004F LATIN CAPITAL LETTER O|O}} | ||||||||||||||||
{{chset-left1|5x}}
|{{chset-cell1|U+0050 LATIN CAPITAL LETTER P|P}} |{{chset-cell1|U+0051 LATIN CAPITAL LETTER Q|Q}} |{{chset-cell1|U+0052 LATIN CAPITAL LETTER R|R}} |{{chset-cell1|U+0053 LATIN CAPITAL LETTER S|S}} |{{chset-cell1|U+0054 LATIN CAPITAL LETTER T|T}} |{{chset-cell1|U+0055 LATIN CAPITAL LETTER U|U}} |{{chset-cell1|U+0056 LATIN CAPITAL LETTER V|V}} |{{chset-cell1|U+0057 LATIN CAPITAL LETTER W|W}} |{{chset-cell1|U+0058 LATIN CAPITAL LETTER X|X}} |{{chset-cell1|U+0059 LATIN CAPITAL LETTER Y|Y}} |{{chset-cell1|U+005A LATIN CAPITAL LETTER Z|Z}} |{{chset-cell1 | ↑}}
|{{chset-cell1 | ↓}}
|{{chset-cell1 | ←}}
|{{chset-cell1 | →}}
|{{chset-cell1|U+005F LOW LINE|_}} | ||||||||||||
{{chset-left1|6x}}
|{{chset-cell1 | |style=background:#DDD}}
|{{chset-cell1|U+0061 LATIN SMALL LETTER A|a}} |{{chset-cell1|U+0062 LATIN SMALL LETTER B|b}} |{{chset-cell1|U+0063 LATIN SMALL LETTER C|c}} |{{chset-cell1|U+0064 LATIN SMALL LETTER D|d}} |{{chset-cell1|U+0065 LATIN SMALL LETTER E|e}} |{{chset-cell1|U+0066 LATIN SMALL LETTER F|f}} |{{chset-cell1|U+0067 LATIN SMALL LETTER G|g}} |{{chset-cell1|U+0068 LATIN SMALL LETTER H|h}} |{{chset-cell1|U+0069 LATIN SMALL LETTER I|i}} |{{chset-cell1|U+006A LATIN SMALL LETTER J|j}} |{{chset-cell1|U+006B LATIN SMALL LETTER K|k}} |{{chset-cell1|U+006C LATIN SMALL LETTER L|l}} |{{chset-cell1|U+006D LATIN SMALL LETTER M|m}} |{{chset-cell1|U+006E LATIN SMALL LETTER N|n}} |{{chset-cell1|U+006F LATIN SMALL LETTER O|o}} | |||||||||||||||
{{chset-left1|7x}}
|{{chset-cell1|U+0070 LATIN SMALL LETTER P|p}} |{{chset-cell1|U+0071 LATIN SMALL LETTER Q|q}} |{{chset-cell1|U+0072 LATIN SMALL LETTER R|r}} |{{chset-cell1|U+0073 LATIN SMALL LETTER S|s}} |{{chset-cell1|U+0074 LATIN SMALL LETTER T|t}} |{{chset-cell1|U+0075 LATIN SMALL LETTER U|u}} |{{chset-cell1|U+0076 LATIN SMALL LETTER V|v}} |{{chset-cell1|U+0077 LATIN SMALL LETTER W|w}} |{{chset-cell1|U+0078 LATIN SMALL LETTER X|x}} |{{chset-cell1|U+0079 LATIN SMALL LETTER Y|y}} |{{chset-cell1|U+007A LATIN SMALL LETTER Z|z}} |{{chset-cell1|U+007B LEFT CURLY BRACKET|{}} |{{chset-cell1|U+007C VERTICAL LINE|{{pipe}}}} |{{chset-cell1|U+007D RIGHT CURLY BRACKET|Right curly bracket |
|{{chset-cell1|U+007E TILDE|~}}
|{{chset-cell1|U+00B1 PLUS-MINUS SIGN|±}}
|-
|{{chset-left1|8x}}
|{{chset-ctrl1|U+00A0 NO-BREAK SPACE|NBSP}}
|{{chset-cell1|U+1FB00 BLOCK SEXTANT-1|link=🬀}}
|{{chset-cell1|U+1FB01 BLOCK SEXTANT-2|link=🬁}}
|{{chset-cell1|U+1FB02 BLOCK SEXTANT-12|link=🬂}}
|{{chset-cell1|U+1FB03 BLOCK SEXTANT-3|link=🬃}}
|{{chset-cell1|U+1FB04 BLOCK SEXTANT-13|link=🬄}}
|{{chset-cell1|U+1FB05 BLOCK SEXTANT-23|link=🬅}}
|{{chset-cell1|U+1FB06 BLOCK SEXTANT-123|link=🬆}}
|{{chset-cell1|U+1FB07 BLOCK SEXTANT-4|link=🬇}}
|{{chset-cell1|U+1FB08 BLOCK SEXTANT-14|link=🬈}}
|{{chset-cell1|U+1FB09 BLOCK SEXTANT-24|link=🬉}}
|{{chset-cell1|U+1FB0A BLOCK SEXTANT-124|link=🬊}}
|{{chset-cell1|U+1FB0B BLOCK SEXTANT-34|link=🬋}}
|{{chset-cell1|U+1FB0C BLOCK SEXTANT-134|link=🬌}}
|{{chset-cell1|U+1FB0D BLOCK SEXTANT-234|link=🬍}}
|{{chset-cell1|U+1FB0E BLOCK SEXTANT-1234|link=🬎}}
|-
|{{chset-left1|9x}}
|{{chset-cell1|U+1FB0F BLOCK SEXTANT-5|link=🬏}}
|{{chset-cell1|U+1FB10 BLOCK SEXTANT-15|link=🬐}}
|{{chset-cell1|U+1FB11 BLOCK SEXTANT-25|link=🬑}}
|{{chset-cell1|U+1FB12 BLOCK SEXTANT-125|link=🬒}}
|{{chset-cell1|U+1FB13 BLOCK SEXTANT-35|link=🬓}}
|{{chset-cell1|U+258C LEFT HALF BLOCK|link=▌}}
|{{chset-cell1|U+1FB14 BLOCK SEXTANT-235|link=🬔}}
|{{chset-cell1|U+1FB15 BLOCK SEXTANT-1235|link=🬕}}
|{{chset-cell1|U+1FB16 BLOCK SEXTANT-45|link=🬖}}
|{{chset-cell1|U+1FB17 BLOCK SEXTANT-145|link=🬗}}
|{{chset-cell1|U+1FB18 BLOCK SEXTANT-245|link=🬘}}
|{{chset-cell1|U+1FB19 BLOCK SEXTANT-1245|link=🬙}}
|{{chset-cell1|U+1FB1A BLOCK SEXTANT-345|link=🬚}}
|{{chset-cell1|U+1FB1B BLOCK SEXTANT-1345|link=🬛}}
|{{chset-cell1|U+1FB1C BLOCK SEXTANT-2345|link=🬜}}
|{{chset-cell1|U+1FB1D BLOCK SEXTANT-12345|link=🬝}}
|-
|{{chset-left1|Ax}}
|{{chset-cell1|U+1FB1E BLOCK SEXTANT-6|link=🬞}}
|{{chset-cell1|U+1FB1F BLOCK SEXTANT-16|link=🬟}}
|{{chset-cell1|U+1FB20 BLOCK SEXTANT-26|link=🬠}}
|{{chset-cell1|U+1FB21 BLOCK SEXTANT-126|link=🬡}}
|{{chset-cell1|U+1FB22 BLOCK SEXTANT-36|link=🬢}}
|{{chset-cell1|U+1FB23 BLOCK SEXTANT-136|link=🬣}}
|{{chset-cell1|U+1FB24 BLOCK SEXTANT-236|link=🬤}}
|{{chset-cell1|U+1FB25 BLOCK SEXTANT-1236|link=🬥}}
|{{chset-cell1|U+1FB26 BLOCK SEXTANT-46|link=🬦}}
|{{chset-cell1|U+1FB27 BLOCK SEXTANT-146|link=🬧}}
|{{chset-cell1|U+2590 RIGHT HALF BLOCK|link=▐}}
|{{chset-cell1|U+1FB28 BLOCK SEXTANT-1246|link=🬨}}
|{{chset-cell1|U+1FB29 BLOCK SEXTANT-346|link=🬩}}
|{{chset-cell1|U+1FB2A BLOCK SEXTANT-1346|link=🬪}}
|{{chset-cell1|U+1FB2B BLOCK SEXTANT-2346|link=🬫}}
|{{chset-cell1|U+1FB2C BLOCK SEXTANT-12346|link=🬬}}
|-
|{{chset-left1|Bx}}
|{{chset-cell1|U+1FB2D BLOCK SEXTANT-56|link=🬭}}
|{{chset-cell1|U+1FB2E BLOCK SEXTANT-156|link=🬮}}
|{{chset-cell1|U+1FB2F BLOCK SEXTANT-256|link=🬯}}
|{{chset-cell1|U+1FB30 BLOCK SEXTANT-1256|link=🬰}}
|{{chset-cell1|U+1FB31 BLOCK SEXTANT-356|link=🬱}}
|{{chset-cell1|U+1FB32 BLOCK SEXTANT-1356|link=🬲}}
|{{chset-cell1|U+1FB33 BLOCK SEXTANT-2356|link=🬳}}
|{{chset-cell1|U+1FB34 BLOCK SEXTANT-12356|link=🬴}}
|{{chset-cell1|U+1FB35 BLOCK SEXTANT-456|link=🬵}}
|{{chset-cell1|U+1FB36 BLOCK SEXTANT-1456|link=🬶}}
|{{chset-cell1|U+1FB37 BLOCK SEXTANT-2456|link=🬷}}
|{{chset-cell1|U+1FB38 BLOCK SEXTANT-12456|link=🬸}}
|{{chset-cell1|U+1FB39 BLOCK SEXTANT-3456|link=🬹}}
|{{chset-cell1|U+1FB3A BLOCK SEXTANT-13456|link=🬺}}
|{{chset-cell1|U+1FB3B BLOCK SEXTANT-23456|link=🬻}}
|{{chset-cell1|U+2588 FULL BLOCK|link=█}}
|-
|{{chset-left1|Cx}}
|{{chset-cell1|||fn={{efn|192 to 255 are "Space Compression Codes", tabs for 0 to 63 spaces}}}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|-
|{{chset-left1|Dx}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|-
|{{chset-left1|Ex}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|-
|{{chset-left1|Fx}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|{{chset-ctrl1||tab}}
|}
{{notelist}}
References
Citations
{{Reflist|refs=
{{cite journal |title=Radio Shack TRS-80: An Owner's Report |author-first=Dan |author-last=Fylstra |location=Boston, MA, USA |date=April 1978 |journal=BYTE |publisher=BYTE Publications Inc. |pages=49–59 |url=http://www.classiccmp.org/dunfield/trs80/byteap78.pdf |access-date=2017-07-29 |url-status=live |archive-url=https://web.archive.org/web/20170729195442/http://www.classiccmp.org/dunfield/trs80/byteap78.pdf |archive-date=2017-07-29}}
}}
Sources
{{refbegin}}
- {{cite book|url=https://archive.org/details/Computer_Art_and_Animation_for_the_TRS-80_1983_David_L_Heiserman|title=Computer art and animation for the TRS-80|first=David L.|last=Heiserman|publisher=Prentice-Hall|year=1983|isbn=978-0-131-64749-7}}
- {{cite book|title=Chris Crawford on Game Design|first=Chris|last=Crawford|publisher=New Riders|year=2003|isbn=978-0-131-46099-7|url-access=registration|url=https://archive.org/details/chriscrawfordong00craw_0}}
{{refend}}
Further reading
- {{cite web |title=The Ultimate TRS-80 Font
|author-first=Rebecca G. |author-last=Bettencourt |author-link=Rebecca G. Bettencourt |date=2017 |orig-year=2015 |work=Kreative Korporation |url=http://www.kreativekorp.com/software/fonts/trs80.shtml |access-date=2017-07-29 |url-status=live |archive-url=https://web.archive.org/web/20170729205356/http://www.kreativekorp.com/software/fonts/trs80.shtml |archive-date=2017-07-29}}
{{Character encodings}}