{"id":1404,"date":"2020-06-09T11:29:07","date_gmt":"2020-06-09T09:29:07","guid":{"rendered":"https:\/\/www.pagetable.com\/?p=1404"},"modified":"2020-06-09T11:29:07","modified_gmt":"2020-06-09T09:29:07","slug":"ultimate-c64-charset-petscii-keyboard-reference","status":"publish","type":"post","link":"https:\/\/www.pagetable.com\/?p=1404","title":{"rendered":"Ultimate Commodore Charset \/ PETSCII \/ Keyboard Reference"},"content":{"rendered":"<p>Another addition to the <em>The Ultimate C64 Reference<\/em>: We&rsquo;re adding <a href=\"http:\/\/www.pagetable.com\/c64ref\/charset\/\">character sets, PETSCII codes and keyboard layouts<\/a> \u2013 supporting eight different Commodore computers.<\/p>\n<p><a href=\"docs\/c64ref_charset\/c64ref_charset-1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/c64ref_charset\/c64ref_charset-1_small.png\" height=\"479\" width=\"600\" alt=\"\" \/><\/a><\/p>\n<p>There are three different (related) modes: Character Sets, PETSCII and Keyboard. The controls on the left switch some global settings:<\/p>\n<p><a href=\"docs\/c64ref_charset\/c64ref_charset-2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/c64ref_charset\/c64ref_charset-2.png\" height=\"256\" width=\"391\" alt=\"\" \/><\/a><\/p>\n<ul>\n<li><strong>Character Set<\/strong> lets you select the Commodore 8&#215;8 charset to be used in all modes. The drop-down list contains 84 ROM-extracted charsets.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"docs\/c64ref_charset\/charsets.gif\" height=\"296\" width=\"300\" alt=\"\" \/><\/p>\n<ul>\n<li><strong>Control Codes<\/strong> specifies which set of PETSCII control codes will be visualized in the PETSCII table.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"docs\/c64ref_charset\/petscii.gif\" height=\"296\" width=\"300\" alt=\"\" \/><\/p>\n<ul>\n<li><strong>Color Scheme<\/strong> matches the charset to the color scheme of a specific computer, or shows it in black-on-white.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"docs\/c64ref_charset\/colorscheme.gif\" height=\"296\" width=\"300\" alt=\"\" \/><\/p>\n<ul>\n<li><strong>Aspect Ratio<\/strong> controls the width-to-height ratio of the character set displayed, showing them either with square pixels, or matching one of the computers.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"docs\/c64ref_charset\/aspectratio.gif\" height=\"296\" width=\"300\" alt=\"\" \/><\/p>\n<ul>\n<li>By clicking one of the radio boxes next to the computer names, the four settings above will be set to match a specific computer.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"docs\/c64ref_charset\/machine.gif\" height=\"296\" width=\"300\" alt=\"\" \/><\/p>\n<ul>\n<li>The checkboxes next to the computer names allow viewing the PETSCII control codes, keyboards and keyboard combinations of multiple computers in all other views.<\/li>\n<\/ul>\n<h2 id=\"character-sets\">Character Sets<\/h2>\n<p>The <strong>Character Sets<\/strong> tab shows all 128 characters of the currently selected charset as well as its inverted form, sorted by screen code. You can click on a character to view its screen code, PETSCII and Unicode values, as well as the keyboard combinations that produce this key on the different machines.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"docs\/c64ref_charset\/charset-detail.png\" height=\"379\" width=\"411\" alt=\"\" \/><\/p>\n<p>Below, there is a table showing all character sets at the same time. It can be filtered to only show upper case or lower case charsets.<\/p>\n<p><a href=\"docs\/c64ref_charset\/charset-table.png\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/c64ref_charset\/charset-table.png\" height=\"312\" width=\"658\" alt=\"\" \/><\/a><\/p>\n<p>In addition, there is a function that lets you compare two character sets. The middle line shows the XOR of the two charsets. This example shows that several lower case letters were optimized from the C64 to the TED:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"docs\/c64ref_charset\/charset-compare.png\" height=\"79\" width=\"472\" alt=\"\" \/><\/p>\n<h2 id=\"petscii\">PETSCII<\/h2>\n<p>The <strong>PETSCII<\/strong> tab visualizes the 256 PETSCII codes. Codes 0x00 to 0x1F (the first two rows) and codes $80 to $9F (rows 9 and 10) are control codes, the others are printable. Clicking on a code will reveal the PETSCII value, the screen code and the keyboard combinations. For control codes, it shows the functions on the different computers, and for printable characters it shows the Unicode equivalent.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"docs\/c64ref_charset\/petscii-detail-1.png\" height=\"262\" width=\"273\" alt=\"\" \/><img loading=\"lazy\" decoding=\"async\" src=\"docs\/c64ref_charset\/petscii-detail-2.png\" height=\"267\" width=\"273\" alt=\"\" \/><\/p>\n<p>The table below shows this information for all codes in one place. Here is a part of it comparing some keyboard combinations and control codes between three different computers:<\/p>\n<p><a href=\"docs\/c64ref_charset\/petscii-table.png\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/c64ref_charset\/petscii-table.png\" height=\"341\" width=\"650\" alt=\"\" \/><\/a><\/p>\n<h2 id=\"keyboard\">Keyboard<\/h2>\n<p>The <strong>Keyboard<\/strong> tab shows the keyboard layouts of the different computers and lets you explore which PETSCII codes and characters are generated by which key combinations.<\/p>\n<p><a href=\"docs\/c64ref_charset\/keyboard-1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/c64ref_charset\/keyboard-1.png\" height=\"356\" width=\"278\" alt=\"\" \/><\/a><a href=\"docs\/c64ref_charset\/keyboard-2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/c64ref_charset\/keyboard-2.png\" height=\"285\" width=\"276\" alt=\"\" \/><\/a><\/p>\n<p>In the screenshot above, you can see the three different keyboards of the computers from the TED series: the C16, the C116 and the Plus\/4.<\/p>\n<h2 id=\"contributing\">Contributing<\/h2>\n<p>Like all web pages of the Ultimate C64 Reference, these view are generated from independent formatted ASCII files. The C64 keyboard file looks like this, for example:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"docs\/c64ref_charset\/keyboard-file.png\" height=\"416\" width=\"608\" alt=\"\" \/><\/p>\n<p>It contains the ASCII-art of the layout, which is converted into SVG graphics by a Python script, the key caps, information about modifiers as well as the scancode-to-PETSCII tables.<\/p>\n<p>The Ultimate C64 Reference is being developed as an open source project at <a href=\"https:\/\/github.com\/mist64\/c64ref\">github.com\/mist64\/c64ref<\/a> &#8211; contributions in the form of additions, corrections etc. are welcome!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Another addition to the The Ultimate C64 Reference: We&rsquo;re adding character sets, PETSCII codes and keyboard layouts \u2013 supporting eight different Commodore computers. There are three different (related) modes: Character Sets, PETSCII and Keyboard. The controls on the left switch some global settings: Character Set lets you select the Commodore 8&#215;8 charset to be used &#8230; <a title=\"Ultimate Commodore Charset \/ PETSCII \/ Keyboard Reference\" class=\"read-more\" href=\"https:\/\/www.pagetable.com\/?p=1404\" aria-label=\"Read more about Ultimate Commodore Charset \/ PETSCII \/ Keyboard Reference\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,5,41,8,19,23,31,34],"tags":[],"class_list":["post-1404","post","type-post","status-publish","format-standard","hentry","category-2","category-archeology","category-c64","category-commodore","category-kernal","category-pet","category-ted","category-vic-20"],"_links":{"self":[{"href":"https:\/\/www.pagetable.com\/index.php?rest_route=\/wp\/v2\/posts\/1404","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pagetable.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pagetable.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pagetable.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pagetable.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1404"}],"version-history":[{"count":0,"href":"https:\/\/www.pagetable.com\/index.php?rest_route=\/wp\/v2\/posts\/1404\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.pagetable.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1404"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pagetable.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1404"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pagetable.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1404"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}