├── .editorconfig ├── .gitignore ├── LICENSE ├── README.md ├── docs └── Build.md ├── generate.py ├── requirements.txt ├── src ├── 6502 │ ├── cpu_6502.txt │ ├── cpu_6502rorbug.txt │ ├── cpu_65c02.txt │ ├── cpu_65c02s.txt │ ├── cpu_65c816.txt │ ├── cpu_65ce02.txt │ ├── cpu_65dtv02.txt │ ├── cpu_r65c02.txt │ ├── csg.svg │ ├── index.html │ ├── mos.svg │ ├── out.sh │ ├── rockwell.svg │ ├── script.js │ └── wdc.svg ├── c64disasm │ ├── c64disasm_cbm.txt │ ├── c64disasm_de.txt │ ├── c64disasm_en.txt │ ├── c64disasm_mm.txt │ ├── c64disasm_mn.txt │ ├── c64disasm_ms.txt │ ├── c64disasm_sc.txt │ ├── generate.py │ └── out.sh ├── c64io │ ├── c64io_mapc64.txt │ ├── c64io_prg.txt │ ├── generate.py │ └── out.sh ├── c64mem │ ├── c64mem_64er.txt │ ├── c64mem_64intern.txt │ ├── c64mem_64map.txt │ ├── c64mem_jb.txt │ ├── c64mem_mapc64.txt │ ├── c64mem_prg.txt │ ├── c64mem_src.txt │ ├── c64mem_sta.txt │ ├── format.py │ ├── generate.py │ ├── out.sh │ ├── symbols.txt │ └── texteinschub.md ├── charset │ ├── .gitignore │ ├── C64IALT.TXT │ ├── C64IPRI.TXT │ ├── all_charsets │ │ ├── sjgray │ │ │ ├── 324242-01-german.bin │ │ │ ├── 901439-08.bin │ │ │ ├── 901447-08.bin │ │ │ ├── 901447-10.bin │ │ │ ├── 901447-12-japan.bin │ │ │ ├── 901447-14-swedish.bin │ │ │ ├── 901640-01.bin │ │ │ ├── cbm-french.bin │ │ │ ├── cbm-greek.bin │ │ │ ├── cbm-hungarian.bin │ │ │ ├── cbm-norwegian.bin │ │ │ ├── cbm-russian.bin │ │ │ └── cbm-unknown-8096.bin │ │ └── zimmers │ │ │ ├── c128 │ │ │ ├── characters.390059-01.bin │ │ │ ├── characters.danish-d.325175-02.bin │ │ │ ├── characters.danish.325175-01.bin │ │ │ ├── characters.french.325167-01.bin │ │ │ ├── characters.german.315079-01.bin │ │ │ ├── characters.ifb.325167-02.bin │ │ │ ├── characters.norwegian.325078-02.bin │ │ │ ├── characters.norwegian.325178-01..bin │ │ │ ├── characters.spanish.325171-01.bin │ │ │ ├── characters.swedish.325181-01.bin │ │ │ └── characters.swiss.325173-01D.bin │ │ │ ├── c64 │ │ │ ├── characters.325018-02.C2G007.bin │ │ │ ├── characters.325018-02.bin │ │ │ ├── characters.325056-03.bin │ │ │ ├── characters.901225-01-DK.bin │ │ │ ├── characters.901225-01.bin │ │ │ ├── characters.906143-02.bin │ │ │ └── characters.turkish.bin │ │ │ ├── char │ │ │ ├── c128.bin │ │ │ ├── c16-hungarian.bin │ │ │ ├── c16.bin │ │ │ ├── c64-swedish.bin │ │ │ ├── c64-swedish2.bin │ │ │ ├── c64-swedish3.bin │ │ │ ├── c64-swedish4.bin │ │ │ ├── c64.bin │ │ │ ├── c65-caff.bin │ │ │ ├── pet-1.bin │ │ │ ├── pet-2.bin │ │ │ ├── pet-greek.bin │ │ │ ├── pet-norwegian.bin │ │ │ ├── pet-russian.bin │ │ │ ├── pet-swedish.bin │ │ │ ├── superpet-swedish.bin │ │ │ ├── superpet.bin │ │ │ ├── vic20-german.bin │ │ │ ├── vic20-japanese.bin │ │ │ ├── vic20-norwegian.bin │ │ │ ├── vic20-swedish.bin │ │ │ └── vic20.bin │ │ │ ├── lcd │ │ │ └── lcd-char-rom-u16.bin │ │ │ ├── pet │ │ │ ├── 324242-10_chargen_din_uc5_8296.rom │ │ │ ├── characters-1.901447-08.bin │ │ │ ├── characters-2.901447-10.bin │ │ │ ├── characters-901447-german8296d.bin │ │ │ ├── characters-french.bin │ │ │ ├── characters-german.bin │ │ │ ├── characters-german2.bin │ │ │ ├── characters-japan.901447-12.bin │ │ │ ├── characters-norwegian.bin │ │ │ ├── characters-swedish.901447-14.bin │ │ │ ├── characters.901640-01.bin │ │ │ └── characters.swedish.bin │ │ │ └── vic-20 │ │ │ ├── characters.901460-02.bin │ │ │ ├── characters.901460-03.bin │ │ │ ├── characters.DK_901460-03.bin │ │ │ └── characters.NecP22101-207.bin │ ├── bin │ │ ├── c128_danish_lower.bin │ │ ├── c128_danish_upper.bin │ │ ├── c128_french_lower.bin │ │ ├── c128_french_lower_alt.bin │ │ ├── c128_french_upper.bin │ │ ├── c128_french_upper_alt.bin │ │ ├── c128_german_lower.bin │ │ ├── c128_german_upper.bin │ │ ├── c128_norwegian_lower.bin │ │ ├── c128_norwegian_lower_alt.bin │ │ ├── c128_norwegian_upper.bin │ │ ├── c128_norwegian_upper_alt-bugs.bin │ │ ├── c128_norwegian_upper_alt.bin │ │ ├── c128_norwegian_upper_bugs.bin │ │ ├── c128_spanish_lower.bin │ │ ├── c128_spanish_lower_alt.bin │ │ ├── c128_spanish_upper.bin │ │ ├── c128_spanish_upper_alt.bin │ │ ├── c128_swiss_lower.bin │ │ ├── c128_swiss_lower_alt.bin │ │ ├── c128_swiss_upper.bin │ │ ├── c128_swiss_upper_alt.bin │ │ ├── c128_us_lower.bin │ │ ├── c64_danish_lower.bin │ │ ├── c64_danish_lower_alt.bin │ │ ├── c64_danish_upper.bin │ │ ├── c64_danish_upper_alt.bin │ │ ├── c64_japanese_upper-kanji.bin │ │ ├── c64_japanese_upper.bin │ │ ├── c64_spanish_lower.bin │ │ ├── c64_spanish_upper.bin │ │ ├── c64_swedish_lower.bin │ │ ├── c64_swedish_lower_2.bin │ │ ├── c64_swedish_lower_2alt.bin │ │ ├── c64_swedish_lower_alt.bin │ │ ├── c64_swedish_upper.bin │ │ ├── c64_swedish_upper_alt.bin │ │ ├── c64_swedish_upper_alt2.bin │ │ ├── c64_swedish_upper_bugs.bin │ │ ├── c64_turkish_lower.bin │ │ ├── c64_turkish_upper.bin │ │ ├── c64_us_lower.bin │ │ ├── c64_us_lower_alt.bin │ │ ├── c64_us_lower_buggy1.bin │ │ ├── c64_us_upper.bin │ │ ├── c64_us_upper_alt.bin │ │ ├── c64_us_upper_buggy1.bin │ │ ├── c64_us_upper_buggy2.bin │ │ ├── lcd_us_lower.bin │ │ ├── lcd_us_upper.bin │ │ ├── pet_french_lower.bin │ │ ├── pet_french_upper.bin │ │ ├── pet_german_lower.bin │ │ ├── pet_german_lower_alt.bin │ │ ├── pet_german_lower_alt2.bin │ │ ├── pet_german_upper.bin │ │ ├── pet_greek_lower.bin │ │ ├── pet_greek_upper.bin │ │ ├── pet_hungarian_lower.bin │ │ ├── pet_hungarian_upper.bin │ │ ├── pet_japanese_upper.bin │ │ ├── pet_japanese_upper_bug.bin │ │ ├── pet_norwegian_lower.bin │ │ ├── pet_norwegian_upper.bin │ │ ├── pet_russian_upper.bin │ │ ├── pet_swedish_lower.bin │ │ ├── pet_swedish_upper.bin │ │ ├── pet_us_lower.bin │ │ ├── pet_us_lower_swapped.bin │ │ ├── pet_us_upper.bin │ │ ├── superpet_swedish_ascii.bin │ │ ├── superpet_us_apl.bin │ │ ├── superpet_us_ascii.bin │ │ ├── ted_hungarian_lower.bin │ │ ├── ted_hungarian_upper.bin │ │ ├── ted_us_lower.bin │ │ ├── vic-20_danish_lower.bin │ │ ├── vic-20_danish_upper.bin │ │ ├── vic-20_japanese_upper-kanji.bin │ │ ├── vic-20_swedish_lower_alt.bin │ │ ├── vic-20_us_lower.bin │ │ └── vic-20_us_upper.bin │ ├── bin16 │ │ ├── characters.324867-02.bin │ │ ├── characters.901232-01.bin │ │ ├── characters.901232-02.bin │ │ └── characters.901233-03.swedish.bin │ ├── bin16f │ │ ├── characters-hungarian.bin │ │ └── characters.901237-01.bin │ ├── chargen │ ├── charset.js │ ├── charset2png.py │ ├── compare.py │ ├── control_codes_c128.txt │ ├── control_codes_c64.txt │ ├── control_codes_c65.txt │ ├── control_codes_cbm2.txt │ ├── control_codes_pet-b.txt │ ├── control_codes_pet-n.txt │ ├── control_codes_ted.txt │ ├── control_codes_vic-20.txt │ ├── generate.py │ ├── keyboard_c128.txt │ ├── keyboard_c64.txt │ ├── keyboard_c65.txt │ ├── keyboard_cbm2.txt │ ├── keyboard_pet-b.txt │ ├── keyboard_pet-n.txt │ ├── keyboard_ted.txt │ ├── keyboard_vic-20.txt │ ├── out.sh │ ├── palette_c128.txt │ ├── palette_c64.txt │ ├── palette_c65.txt │ ├── palette_cbm2.txt │ ├── palette_pet-b.txt │ ├── palette_pet-n.txt │ ├── palette_ted.txt │ ├── palette_vic-20.txt │ ├── script.js │ └── style.css ├── colors │ ├── colors.css │ ├── index.html │ ├── out.sh │ └── script.js ├── commentaries.css ├── commentaries.js ├── kernal │ ├── generate.py │ ├── kernal_128intern.txt │ ├── kernal_64intern.txt │ ├── kernal_ct.txt │ ├── kernal_dh.txt │ ├── kernal_fk.txt │ ├── kernal_ld.txt │ ├── kernal_mapc64.txt │ ├── kernal_mlr.txt │ ├── kernal_pm.txt │ ├── kernal_prg.txt │ ├── kernal_sta.txt │ └── out.sh └── style.css └── validate_html.sh /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | insert_final_newline = true 5 | end_of_line = lf 6 | 7 | [*.{md}] 8 | indent_style = space 9 | indent_size = 4 10 | charset = utf-8 11 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /out/ 2 | .venv 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 2-Clause License 2 | 3 | Copyright (c) 2022, Michael Steil 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 20 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 23 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 24 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | # Ultimate Commodore
64 Reference Guide 5 | 6 | An effort to collect `C64` reference material
7 | in machine readable form and maintain
8 | scripts to present this material to the web. 9 | 10 |
11 |
12 | 13 | [![Button Website]][Website]    14 | [![Button Building]][Building] 15 | 16 |
17 |
18 | 19 | ## Material 20 | 21 | *Reference material collected in this repository.* 22 | 23 |
24 | 25 | ### ROM Disassembly 26 | 27 |
28 | 29 | | KERNAL | BASIC | Lang | By / From | 30 | |:------:|:-----:|:----:|:---------:| 31 | | ◯ | [⬤][Disassembly BASIC] | :us: | **Microsoft** 32 | | [⬤][Disassembly KERNAL] | ◯ | :us: | **Commodore** 33 | | [⬤][Disassembly Lee] | [⬤][Disassembly Lee] | :us: | `Lee Davison` 34 | | ◯ | [⬤][Disassembly Bob] | :us: | `Bob Sander-Cederlof` 35 | | [⬤][Disassembly Buch] | [⬤][Disassembly Buch] | :de: | **Commodore-64-intern-Buch** 36 | | [⬤][Disassembly Magnus] | ◯ | :us: | `Magnus Nyman` 37 | | [⬤][Disassembly Marko] | [⬤][Disassembly Marko] | :us: | `Marko Mäkelä` 38 | 39 |
40 | 41 | ### Memory Map 42 | 43 |
44 | 45 | | Title | Lang | By / From | 46 | |:-----:|:----:|:---------:| 47 | | [`Mapping the Commodore 64`][Memory Sheldon] | :us: | `Sheldon Leemon` 48 | | [`Memory Map mit Wandervorschlägen`][Memory Hauck] | :de: | `Dr. H. Hauck` 49 | | [`Commodore-64-intern-Buch`][Memory Buch] | :de: | **Commodore** 50 | | [`Reference`][Memory Joe] | :us: | `Joe Forster / STA` 51 | | [`Comments in the original source`][Memory Original] | :us: | **Microsoft** / **Commodore** | 52 | | [`C64 Programmer's Reference Guide`][Memory Guide] | :us: | 53 | | [`64map`][Memory Map] | :us: | 54 | | [`Reference`][Memory Jim] | :us: | `Jim Butterfield` 55 | 56 |
57 | 58 | ### KERNAL API 59 | 60 |
61 | 62 | | Title | Lang | By / From | 63 | |:-----:|:----:|:---------:| 64 | | [`Commodore 64 Programmer's Reference Guide`][API Guide] | :us: | **Commodore** 65 | | [`COMPUTE!'s VIC-20 and Commodore 64 Tool Kit: Kernal`][API Dan] | :us: | `Dan Heeb` 66 | | [`Machine Language Routines for the Commodore 64 and 128`][API Todd] | :us: | `Todd D Heimarck`
`Patrick Parrish` 67 | | [`Mapping the Commodore 64`][API Sheldon] | :us: | `Sheldon Leemon` 68 | | [`Commodore 128 intern`][API 128] | :us: | `Jörg Schieb`
`Frank Thrun`
`Heinz Wrobel` 69 | | [`The almost completely commented C64 ROM disassembly`][API Lee] | :us: | `Lee Davison` 70 | | [`Cracking The Kernal`][API Peter] | :us: | `Peter Marcotty` 71 | | [`Kernal 64 / 128`][API Craig] | :us: | `Craig Taylor` 72 | | [`Commodore 64 standard KERNAL functions`][API Joe] | :us: | `Joe Forster / STA` 73 | | [`C64 KERNAL jump table`][API Frank] | :us: | `Frank Kontros` 74 | | [`Das neue Commodore-64-intern-Buch`][API Sheldon] | :de: | `Baloui`
`Brückmann`
`Englisch`
`Felt`
`Gelfand`
`Gerits`
`Krsnik` 75 | 76 |
77 |
78 | 79 | ## Contributions 80 | 81 | `Extensions` , `Translations` , `Corrections`
82 | of typos and content, .. **are welcome!** 83 | 84 |
85 |
86 | 87 | ## Credits 88 | 89 | The original effort of ***collecting***, ***converting***, ***formatting***
90 | and ***editing*** the collected files was done by **[Michael Steil]**. 91 | 92 |
93 | 94 |
95 | 96 | 97 | 98 | 99 | [Website]: http://pagetable.com/c64ref 100 | 101 | [Building]: docs/Build.md 102 | 103 | [Michael Steil]: mailto:mist64@mac.com 104 | 105 | [Disassembly KERNAL]: src/c64disasm/c64disasm_cbm.txt 106 | [Disassembly Magnus]: src/c64disasm/c64disasm_mn.txt 107 | [Disassembly BASIC]: src/c64disasm/c64disasm_ms.txt 108 | [Disassembly Marko]: src/c64disasm/c64disasm_mm.txt 109 | [Disassembly Buch]: src/c64disasm/c64disasm_de.txt 110 | [Disassembly Bob]: src/c64disasm/c64disasm_sc.txt 111 | [Disassembly Lee]: src/c64disasm/c64disasm_en.txt 112 | 113 | [Memory Original]: src/c64mem/c64mem_src.txt 114 | [Memory Sheldon]: src/c64mem/c64mem_mapc64.txt 115 | [Memory Hauck]: src/c64mem/c64mem_64er.txt 116 | [Memory Guide]: src/c64mem/c64mem_prg.txt 117 | [Memory Buch]: src/c64mem/c64mem_64intern.txt 118 | [Memory Joe]: src/c64mem/c64mem_sta.txt 119 | [Memory Map]: src/c64mem/c64mem_64map.txt 120 | [Memory Jim]: src/c64mem/c64mem_jb.txt 121 | 122 | [API Sheldon]: src/kernal/kernal_mapc64.txt 123 | [API Guide]: src/kernal/kernal_prg.txt 124 | [API Frank]: src/kernal/kernal_fk.txt 125 | [API Peter]: src/kernal/kernal_pm.txt 126 | [API Craig]: src/kernal/kernal_ct.txt 127 | [API Buch]: src/kernal/kernal_64intern.txt 128 | [API Todd]: src/kernal/kernal_mlr.txt 129 | [API 128]: src/kernal/kernal_128intern.txt 130 | [API Dan]: src/kernal/kernal_dh.txt 131 | [API Lee]: src/kernal/kernal_ld.txt 132 | [API Joe]: src/kernal/kernal_sta.txt 133 | 134 | 135 | 136 | 137 | [Button Building]: https://img.shields.io/badge/Building-5A6AB1?style=for-the-badge&logoColor=white&logo=GitBook 138 | [Button Website]: https://img.shields.io/badge/Website-6BA539?style=for-the-badge&logoColor=white&logo=OpenStreetMap 139 | -------------------------------------------------------------------------------- /docs/Build.md: -------------------------------------------------------------------------------- 1 | 2 | # Building 3 | 4 | *How to build this project locally* 5 | 6 | 7 | ## Generating 8 | 9 | **Requirements:** 10 | 11 | - [Python] 12 | - [Markdown] 13 | 14 | See also [requirements.txt]. 15 | 16 | The Python packages are installed into a virtual environment like this: 17 | 18 | ```sh 19 | python3 -m venv .venv # create a virtual environment 20 | source .venv/bin/activate # activate it 21 | python3 -m pip install -r requirements.txt # install the required packages 22 | ``` 23 | 24 | To generate the  `html`  files, simply execute  [`generate.py`][Generate] 25 | 26 | This will build the different pages from the repos *reference material* with the help of `shell` and `python` scripts. 27 | 28 | `./generate --wip` builds everything including `colors` and `c64io`. 29 | 30 | `./generate.py --only 6502 colors c64mem` only builds the selected categories (using the category path names as keys). 31 | 32 | 33 | The `6502` and the `color` reference are all Java Script and do not need to be generated while developing, but for release the umbrella `generate.py` adds navigation, matching titles and a link to the github project. 34 | 35 | 36 | ## Testing 37 | 38 | For testing start Python's built-in webserver and navigate to the local url: 39 | ```sh 40 | python3 -m http.server 41 | ``` 42 | [`http://localhost:8000/c64ref/6502/`][Localhost8000] 43 | 44 | 45 | If the default port is already taken, choose your own port (eg. 6464): 46 | 47 | ```sh 48 | python3 -m http.server 6464 49 | ``` 50 | [`http://localhost:6464/c64ref/6502/`][Localhost6464] 51 | 52 | 53 | Navigate using the menu bar or by directly going to the specific pages: 54 | 55 | * `6502` for _6502 Family CPU Reference_ 56 | * `c64disasm` for _C64 BASIC & KERNAL ROM Disassembly_ (**Slow**) 57 | * `c64io` for _C64 I/O Map_ (**WIP**) 58 | * `c64mem` for _C64 Memory Map_ 59 | * `charset` for _Character Set · PETSCII · Keyboard_ 60 | * `colors` for _C64 Colors_ (**WIP**) 61 | * `kernal` for _C64 KERNAL API_ 62 | 63 | 64 | ## Upload 65 | 66 | For uploading use 67 | 68 | ``` 69 | ./generate upload 70 | ``` 71 | 72 | It checks for changes in the working copy and won't let you build if there are any. 73 | 74 | --- 75 | 76 | 77 | 78 | 79 | [Generate]: ../generate.py 80 | [requirements.txt]: ../requirements.txt 81 | 82 | [Markdown]: https://pypi.org/project/Markdown/ 83 | [Python]: https://www.python.org/ 84 | 85 | [Localhost8000]: http://localhost:8000/c64ref/6502/ 86 | [Localhost6464]: http://localhost:6464/c64ref/6502/ 87 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | Markdown==3.6 2 | -------------------------------------------------------------------------------- /src/6502/cpu_6502rorbug.txt: -------------------------------------------------------------------------------- 1 | ## This is a description file for a 6502-like CPU. 2 | ## See https://github.com/mist64/c64ref for details. 3 | 4 | [info] 5 | manufacturer MOS 6 | name 6502 7 | revision without ROR 8 | year 1975 9 | id 6502rorbug 10 | basedon 6502 11 | description This is the pre June 1976 version of the original implementation of the 6502 designed by MOS Technology, Inc. This version does not have the ROR instruction; the respective opcodes behave differently due to a bug in the mask. 12 | 13 | [operations] 14 | ASL0 shift N-----Z- /M7...M0/ ← 0 15 | 16 | [opcodes] 17 | 66 *ASL0 a8 18 | 6A *ASL0 A 19 | 6E *ASL0 a16 20 | 76 *ASL0 a8,X 21 | 7E *ASL0 a16,X 22 | 23 | [documentation-mnemos] 24 | ASL0 Arithmetic Shift Left Without Updating Carry 25 | This instruction shifts either the accumulator or the address memory location 1 bit to the left, with the bit 0 always being set to 0. ASL0 either shifts the accumulator left 1 bit or is a read/modify/write instruction that affects only memory. 26 | The instruction does not affect the overflow bit, sets N equal to the result bit 7 (bit 6 in the input), sets Z flag if the result is equal to 0, otherwise resets Z. 27 | 28 | [documentation-mnemos~private] 29 | ASL0 These are the buggy opcodes that were supposed to do a ROR. 30 | 31 | ## TODO should inherit from [documentation-mnemos~private] and [documentation-addmodes~private] 32 | -------------------------------------------------------------------------------- /src/6502/cpu_65c02.txt: -------------------------------------------------------------------------------- 1 | ## This is a description file for a 6502-like CPU. 2 | ## See https://github.com/mist64/c64ref for details. 3 | 4 | [info] 5 | manufacturer WDC 6 | name 65C02 7 | year 1983 ## https://en.wikipedia.org/wiki/WDC_65C02; or 1981? https://en.wikipedia.org/wiki/Talk%3AWDC_65C02 8 | id 65c02 9 | basedon 6502 10 | description This is the CMOS-based reimplementation of the 6502 designed by Western Design Center, Inc. It supports all documented features of the original 6502, fixes all known quirks, adds 27 new opcodes and two addressing modes, and guarantees all undocumented opcodes to be NOPs. To distinguish it from derived versions, it is also sometimes called the 65SC02. 11 | 12 | [mnemos] 13 | BRA Branch Always 14 | PHX Push X Register 15 | PHY Push Y Register 16 | PLX Pull X Register 17 | PLY Pull Y Register 18 | STZ Store Zero 19 | TRB Test and Reset Memory Bits 20 | TSB Test and Set Memory Bits 21 | 22 | [operations] 23 | BRA ctrl -------- Branch Always 24 | PHX stack -------- X↓ 25 | PHY stack -------- Y↑ 26 | PLX stack N-----Z- X↑ 27 | PLY stack N-----Z- Y↑ 28 | STZ load -------- 0 → M 29 | TRB logic ------Z- ~A ∧ M → M 30 | TSB logic ------Z- A ∨ M → M 31 | 32 | [addmodes] 33 | (a8) 2 ($nn) Zero Page Indirect 34 | (a16,X) 3 ($nnnn,X) Absolute X-Indexed Indirect 35 | 36 | [opcodes] 37 | 04 TSB a8 38 | 0C TSB a16 39 | 12 ORA (a8) 40 | 14 TRB a8 41 | 1A INC A 42 | 1C TRB a16 43 | 32 AND (a8) 44 | 34 BIT a8,X 45 | 3A DEC A 46 | 3C BIT a16,X 47 | 52 EOR (a8) 48 | 5A PHY 49 | 64 STZ a8 50 | 72 ADC (a8) 51 | 74 STZ a8,X 52 | 7A PLY 53 | 7C JMP (a16,X) 54 | 80 BRA r8 55 | 89 BIT #d8 56 | 92 STA (a8) 57 | 9C STZ a16 58 | 9E STZ a16,X 59 | B2 LDA (a8) 60 | D2 CMP (a8) 61 | DA PHX 62 | F2 SBC (a8) 63 | FA PLX 64 | 65 | 02 *NOP #d8 66 | 03 *NOP 67 | 07 *NOP 68 | 0B *NOP 69 | 0F *NOP 70 | 13 *NOP 71 | 17 *NOP 72 | 1B *NOP 73 | 1F *NOP 74 | 22 *NOP #d8 75 | 23 *NOP 76 | 27 *NOP 77 | 2B *NOP 78 | 2F *NOP 79 | 33 *NOP 80 | 37 *NOP 81 | 3B *NOP 82 | 3F *NOP 83 | 42 *NOP #d8 84 | 43 *NOP 85 | 44 *NOP #d8 86 | 47 *NOP 87 | 4B *NOP 88 | 4F *NOP 89 | 53 *NOP 90 | 54 *NOP #d8 91 | 57 *NOP 92 | 5B *NOP 93 | 5C *NOP 94 | 5F *NOP 95 | 62 *NOP #d8 96 | 63 *NOP 97 | 67 *NOP 98 | 6B *NOP 99 | 6F *NOP 100 | 73 *NOP 101 | 77 *NOP 102 | 7B *NOP 103 | 7F *NOP 104 | 82 *NOP #d8 105 | 83 *NOP 106 | 87 *NOP 107 | 8B *NOP 108 | 8F *NOP 109 | 93 *NOP 110 | 97 *NOP 111 | 9B *NOP 112 | 9F *NOP 113 | A3 *NOP 114 | A7 *NOP 115 | AB *NOP 116 | AF *NOP 117 | B3 *NOP 118 | B7 *NOP 119 | BB *NOP 120 | BF *NOP 121 | C2 *NOP #d8 122 | C3 *NOP 123 | C7 *NOP 124 | CB *NOP 125 | CF *NOP 126 | D3 *NOP 127 | D4 *NOP #d8 128 | D7 *NOP 129 | DB *NOP 130 | DC *NOP 131 | DF *NOP 132 | E2 *NOP #d8 133 | E3 *NOP 134 | E7 *NOP 135 | EB *NOP 136 | EF *NOP 137 | F3 *NOP 138 | F4 *NOP #d8 139 | F7 *NOP 140 | FB *NOP 141 | FC *NOP 142 | FF *NOP 143 | 144 | [timing] 145 | ## updated timing 146 | 6c 6 ## JMP () fixed, one cycle extra 147 | 148 | ## ADC instructions add 1 cycle in decimal mode 149 | 61 6+d 150 | 65 3+d 151 | 69 2+d 152 | 6D 4+d 153 | 71 5+p+d 154 | 75 4+d 155 | 79 4+p+d 156 | 7D 4+p+d 157 | 158 | ## SBC instructions add 1 cycle in decimal mode 159 | E1 6+d 160 | E5 3+d 161 | E9 2+d 162 | ED 4+d 163 | F1 5+p+d 164 | F5 4+d 165 | F9 4+p+d 166 | FD 4+p+d 167 | 168 | ## new instructions 169 | 04 5 170 | 0C 6 171 | 12 5 172 | 14 5 173 | 1A 2 174 | 1C 6 175 | 32 5 176 | 34 3 177 | 3A 2 178 | 3C 4 179 | 52 5 180 | 5A 3 181 | 64 3 182 | 72 5+d 183 | 74 4 184 | 7A 4 185 | 7C 6 186 | 80 3+p 187 | 89 3 188 | 92 5 189 | 9C 4 190 | 9E 5 191 | B2 5 192 | D2 5 193 | DA 3 194 | F2 5+d 195 | FA 4 196 | 197 | ## NOPs 198 | 02 2 199 | 03 1 200 | 07 1 201 | 0B 1 202 | 0F 1 203 | 13 1 204 | 17 1 205 | 1B 1 206 | 1F 1 207 | 22 2 208 | 23 1 209 | 27 1 210 | 2B 1 211 | 2F 1 212 | 33 1 213 | 37 1 214 | 3B 1 215 | 3F 1 216 | 42 2 217 | 43 1 218 | 44 3 219 | 47 1 220 | 4B 1 221 | 4F 1 222 | 53 1 223 | 54 4 224 | 57 1 225 | 5B 1 226 | 5C 8 227 | 5F 1 228 | 62 2 229 | 63 1 230 | 67 1 231 | 6B 1 232 | 6F 1 233 | 73 1 234 | 77 1 235 | 7B 1 236 | 7F 1 237 | 82 2 238 | 83 1 239 | 87 1 240 | 8B 1 241 | 8F 1 242 | 93 1 243 | 97 1 244 | 9B 1 245 | 9F 1 246 | A3 1 247 | A7 1 248 | AB 1 249 | AF 1 250 | B3 1 251 | B7 1 252 | BB 1 253 | BF 1 254 | C2 2 255 | C3 1 256 | C7 1 257 | CB 1 258 | CF 1 259 | D3 1 260 | D4 4 261 | D7 1 262 | DB 1 263 | DC 4 264 | DF 1 265 | E2 2 266 | E3 1 267 | E7 1 268 | EB 1 269 | EF 1 270 | F3 1 271 | F4 4 272 | F7 1 273 | FB 1 274 | FC 4 275 | FF 1 276 | 277 | [documentation-mnemos] 278 | ## based on the 6502 docs 279 | BRA Branch Always 280 | This instruction takes an unconditional branch. 281 | BRA does not affect any of the flags or any other part of the machine other than the program counter. 282 | 283 | PHX Push Index Register X On Stack 284 | This instruction transfers the current value of the index register X to the next location on the stack, automatically decrementing the stack to point to the next empty location. 285 | The Push X instruction only affects the stack pointer register which is decremented by 1 as a result of the operation. It affects no flags. 286 | 287 | PHY Push Index Register Y On Stack 288 | This instruction transfers the current value of the index register Y to the next location on the stack, automatically decrementing the stack to point to the next empty location. 289 | The Push Y instruction only affects the stack pointer register which is decremented by 1 as a result of the operation. It affects no flags. 290 | 291 | PLX Pull Index Register X From Stack 292 | This instruction adds 1 to the current value of the stack pointer and uses it to address the stack and loads the contents of the stack into the X register. 293 | The PLX instruction does not affect the carry or overflow flags. It sets N if the bit 7 is on in index register X as a result of instructions, otherwise it is reset. If index register X is zero as a result of the PLA, then the Z flag is set, otherwise it is reset. The PLX instruction changes content of the index register X to the contents of the memory location at stack register plus 1 and also increments the stack register. 294 | 295 | PLY Pull Index Register Y From Stack 296 | This instruction adds 1 to the current value of the stack pointer and uses it to address the stack and loads the contents of the stack into the Y register. 297 | The PLY instruction does not affect the carry or overflow flags. It sets N if the bit 7 is on in index register Y as a result of instructions, otherwise it is reset. If index register Y is zero as a result of the PLA, then the Z flag is set, otherwise it is reset. The PLY instruction changes content of the index register Y to the contents of the memory location at stack register plus 1 and also increments the stack register. 298 | 299 | STZ Store Zero In Memory 300 | Transfers the value 0 to addressed memory location. 301 | No flags or registers in the microprocessor are affected by the store operation. 302 | 303 | ## https://github.com/MEGA65/c65-specifications/blob/master/c65manualupdated.txt 304 | TRB Test And Reset Memory Bits With Accumulator 305 | This instruction tests and resets bits in memory, using the accumulator for both a test mask, and a reset mask. It performs a logical AND between the inverted bits of the accumulator and the bits in memory, storing the result back into memory. 306 | The zero flag is set if all bits of the result of the AND are zero, otherwise it is reset. 307 | 308 | TSB Test And Set Memory Bits With Accumulator 309 | This instruction tests and sets bits in memory, using the accumulator for both a test mask, and a set mask. It performs a logical OR between the bits of the accumulator and the bits in memory, storing the result back into memory. 310 | The zero flag is set if all bits of the result of the OR are zero, otherwise it is reset. 311 | 312 | [documentation-addmodes] 313 | ## http://datasheets.chipdb.org/Western%20Design/W65C02S.pdf 314 | 315 | (a8) Zero Page Indirect 316 | With Zero Page Indirect addressing mode, the second byte of the instruction is a zero page indirect address that points to the low byte of a two byte effective address. 317 | 318 | (a16,X) Absolute X-Indexed Indirect 319 | With the Absolute Indexed Indirect addressing mode, the X Index Register is added to the second and third byes of the instruction to form an address to a pointer. This address mode is only used with the JMP instruction and the program Counter is loaded with the first and second bytes at this pointer. 320 | -------------------------------------------------------------------------------- /src/6502/cpu_65c02s.txt: -------------------------------------------------------------------------------- 1 | ## This is a description file for a 6502-like CPU. 2 | ## See https://github.com/mist64/c64ref for details. 3 | 4 | [info] 5 | manufacturer WDC 6 | name 65C02S 7 | year 1986 ## or earlier; http://forum.6502.org/viewtopic.php?p=38895 8 | id 65c02s 9 | basedon r65c02 10 | description This is the later version of Western Design Center's 65C02, which supports the Rockwell extensions and adds two power saving opcodes borrowed from the 65c816. 11 | 12 | [mnemos] 13 | STP Stop the Clock 14 | WAI Wait for Interrupt 15 | 16 | [operations] 17 | STP ctrl -------- Stop the Clock 18 | WAI ctrl -------- Wait for Interrupt 19 | 20 | [opcodes] 21 | CB WAI 22 | DB STP 23 | 24 | [timing] 25 | CB 3 26 | DB 3 27 | 28 | [documentation-mnemos] 29 | 30 | STP Stop the Clock 31 | The processor halts until a hardware reset is applied. Power-supply current drops to nearly zero. 32 | 33 | WAI Wait for Interrupt 34 | The processor pauses at the current location until the next interrupt occurs. This allows for zero latency interrupt response. 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /src/6502/cpu_65c816.txt: -------------------------------------------------------------------------------- 1 | ## This is a description file for a 6502-like CPU. 2 | ## See https://github.com/mist64/c64ref for details. 3 | 4 | [info] 5 | manufacturer WDC 6 | name 65C816 7 | year 1984 8 | id 65c816 ## https://en.wikipedia.org/wiki/WDC_65C816 9 | basedon 65c02 10 | description This is the original implementation of the 16 bit version of the 65C02 designed by Western Design Center, Inc. It supports all instructions of original WDC 65C02, and adds support support for 16 bit registers, 24 bit addresses, a relocatable zero page and stack-relative addressing, filling all 256 opcodes. (The timing information corresponds to native mode.) 11 | 12 | [registers] 13 | # A,X,Y,P,S,DBR,D,K,PC 14 | A 16 Accumulator 15 | X 16 X Index Register 16 | Y 16 Y Index Register 17 | P 8 Processor Status 18 | S 16 Stack Pointer 19 | DBR 8 Data Bank Register 20 | D 16 Direct Page Register 21 | K 8 Program Bank Register 22 | PC 16 Program Counter 23 | 24 | [flags] 25 | 5 M Accumulator/Memory Width 26 | 4 X Index Register Width 27 | 10 E Emulation Mode 28 | 29 | [mnemos] 30 | BRL Branch Long 31 | COP Coprocessor 32 | JSL Jump to Subroutine Long 33 | MVN Move Memory Negative 34 | MVP Move Memory Positive 35 | PEA Push Effective Address 36 | PEI Push Effective Indirect Address 37 | PER Push Effective Relative Address 38 | PHB Push Data Bank Register 39 | PHD Push Direct Register 40 | PHK Push K Register 41 | PLB Pull Data Bank Register 42 | PLD Pull Direct Register 43 | REP Reset Processor Status Bits 44 | RTL Return From Subroutine Long 45 | SEP Set Processor Status Bits 46 | STP Stop the Clock 47 | TCD Transfer C Accumulator to Direct Register 48 | TCS Transfer C Accumulator to Stack Pointer 49 | TDC Transfer Direct Register to C Accumulator 50 | TSC Transfer Stack Pointer to C Accumulator 51 | TXY Transfer X to Y 52 | TYX Transfer Y to X 53 | WAI Wait for Interrupt 54 | WDM William D. Mensch, Jr. 55 | XBA Exchange B and A Accumulator 56 | XCE Exchange Carry and Emulation Flags 57 | 58 | [operations] 59 | BRL ctrl -------- Branch always long 60 | COP ctrl ----01-- Co-processor empowerment 61 | JSL ctrl -------- Jump to subroutine long 62 | MVN load -------- Move memory negative 63 | MVP load -------- Move memory positive 64 | PEA stack -------- Mw↓ 65 | PEI stack -------- Mw↓ 66 | PER stack -------- Mw↓ 67 | PHB stack -------- B↓ 68 | PHD stack -------- D↓ 69 | PHK stack -------- K↓ 70 | PLB stack *-----*- B↑ 71 | PLD stack *-----*- D↑ 72 | REP flags ******** P ⊼ M → P 73 | RTL ctrl -------- Return from subroutine long 74 | SEP flags ******** P ∨ M → P 75 | STP ctrl -------- Stop the clock 76 | TCD trans *-----*- C → D 77 | TCS trans -------- C → S 78 | TDC trans *-----*- D → C 79 | TSC trans *-----*- S → C 80 | TXY trans *-----*- T → Y 81 | TYX trans *-----*- Y → X 82 | WAI ctrl -------- Wait for interrupt 83 | WDM nop -------- Reserved for future expansion 84 | XBA trans *-----*- B ↔ A 85 | XCE flags -------** C ↔ E 86 | 87 | [addmodes] 88 | ## new 8/16 bit immediates 89 | #m:d8/d16 3-m #$nn/$nnnn Immediate (M) 90 | #x:d8/d16 3-x #$nn/$nnnn Immediate (X) 91 | 92 | ## new modes 93 | [a16] 3 [$nnnn] Absolute Indirect Long 94 | (a16,X) 3 ($nnnn,X) Absolute X-Indexed Indirect 95 | [a8] 2 [$nn] Direct Page Indirect Long 96 | [a8],Y 2 [$nn],Y Direct Page Indirect Y-Indexed Long 97 | a24 4 $nnnnnn Absolute Long 98 | a24,X 4 $nnnnnn,X Absolute X-Indexed Long 99 | r16 3 $nnnn Relative (word) 100 | src,dest 3 $nn,$nn Block Move 101 | a8,S 2 $nn,S Stack Relative 102 | (a8,S),Y 2 ($nn,S),Y Stack Relative Indirect Y-Indexed 103 | 104 | ## renamed modes (zero page -> direct page) 105 | a8 2 $nn Direct Page 106 | a8,X 2 $nn,X X-Indexed Direct Page 107 | a8,Y 2 $nn,Y Y-Indexed Direct Page 108 | (a8,X) 2 ($nn,X) X-Indexed Direct Page Indirect 109 | (a8),Y 2 ($nn),Y Direct Page Indirect Y-Indexed 110 | 111 | [opcodes] 112 | 02 COP #d8 113 | 03 ORA a8,S 114 | 07 ORA [a8] 115 | 0B PHD 116 | 0F ORA a24 117 | 13 ORA (a8,S),Y 118 | 17 ORA [a8],Y 119 | 1B TCS 120 | 1F ORA a24,X 121 | 22 JSL a24 122 | 23 AND a8,S 123 | 27 AND [a8] 124 | 2B PLD 125 | 2F AND a24 126 | 33 AND (a8,S),Y 127 | 37 AND [a8],Y 128 | 3B TSC 129 | 3F AND a24,X 130 | 42 WDM #d8 131 | 43 EOR a8,S 132 | 44 MVP src,dest 133 | 47 EOR [a8] 134 | 4B PHK 135 | 4F EOR a24 136 | 53 EOR (a8,S),Y 137 | 54 MVN src,dest 138 | 57 EOR [a8],Y 139 | 5B TCD 140 | 5C JMP a24 141 | 5F EOR a24,X 142 | 62 PER #d8 143 | 63 ADC a8,S 144 | 67 ADC [a8] 145 | 6B RTL 146 | 6F ADC a24 147 | 73 ADC (a8,S),Y 148 | 77 ADC [a8],Y 149 | 7B TDC 150 | 7F ADC a24,X 151 | 82 BRL r16 152 | 83 STA a8,S 153 | 87 STA [a8] 154 | 8B PHB 155 | 8F STA a24 156 | 93 STA (a8,S),Y 157 | 97 STA [a8],Y 158 | 9B TXY 159 | 9F STA a24,X 160 | A3 LDA a8,S 161 | A7 LDA [a8] 162 | AB PLB 163 | AF LDA a24 164 | B3 LDA (a8,S),Y 165 | B7 LDA [a8],Y 166 | BB TYX 167 | BF LDA a24,X 168 | C2 REP #d8 169 | C3 CMP a8,S 170 | C7 CMP [a8] 171 | CB WAI 172 | CF CMP a24 173 | D3 CMP (a8,S),Y 174 | D4 PEI a8 175 | D7 CMP [a8],Y 176 | DB STP 177 | DC JMP [a16] 178 | DF CMP a24,X 179 | E2 SEP #d8 180 | E3 SBC a8,S 181 | E7 SBC [a8] 182 | EB XBA 183 | EF SBC a24 184 | F3 SBC (a8,S),Y 185 | F4 PEA #d8 186 | F7 SBC [a8],Y 187 | FB XCE 188 | FC JSR (a16,X) 189 | FF SBC a24,X 190 | 191 | 09 ORA #m:d8/d16 192 | 29 AND #m:d8/d16 193 | 49 EOR #m:d8/d16 194 | 69 ADC #m:d8/d16 195 | 89 BIT #m:d8/d16 196 | A0 LDY #x:d8/d16 197 | A2 LDX #x:d8/d16 198 | A9 LDA #m:d8/d16 199 | C0 CPY #x:d8/d16 200 | C9 CMP #m:d8/d16 201 | E0 CPX #x:d8/d16 202 | E9 SBC #m:d8/d16 203 | 204 | [timing] 205 | 00 8 206 | 01 7-m+w 207 | 02 8 208 | 03 5-m 209 | 04 7-2*m+w 210 | 05 4-m+w 211 | 06 7-2*m+w 212 | 07 7-m+w 213 | 08 3 214 | 09 3-m 215 | 0A 2 216 | 0B 4 217 | 0C 8-2*m 218 | 0D 5-m 219 | 0E 8-2*m 220 | 0F 6-m 221 | 10 2+t 222 | 11 7-m+w-x+x*p 223 | 12 6-m+w 224 | 13 8-m 225 | 14 7-2*m+w 226 | 15 5-m+w 227 | 16 8-2*m+w 228 | 17 7-m+w 229 | 18 2 230 | 19 6-m-x+x*p 231 | 1A 2 232 | 1B 2 233 | 1C 8-2*m 234 | 1D 6-m-x+x*p 235 | 1E 9-2*m 236 | 1F 6-m 237 | 20 6 238 | 21 7-m+w 239 | 22 8 240 | 23 5-m 241 | 24 4-m+w 242 | 25 4-m+w 243 | 26 7-2*m+w 244 | 27 7-m+w 245 | 28 4 246 | 29 3-m 247 | 2A 2 248 | 2B 5 249 | 2C 5-m 250 | 2D 5-m 251 | 2E 8-2*m 252 | 2F 6-m 253 | 30 2+t 254 | 31 7-m+w-x+x*p 255 | 32 6-m+w 256 | 33 8-m 257 | 34 5-m+w 258 | 35 5-m+w 259 | 36 8-2*m+w 260 | 37 7-m+w 261 | 38 2 262 | 39 6-m-x+x*p 263 | 3A 2 264 | 3B 2 265 | 3C 6-m-x+x*p 266 | 3D 6-m-x+x*p 267 | 3E 9-2*m 268 | 3F 6-m 269 | 40 7 270 | 41 7-m+w 271 | 42 2 272 | 43 5-m 273 | 44 7 274 | 45 4-m+w 275 | 46 7-2*m+w 276 | 47 7-m+w 277 | 48 4-m 278 | 49 3-m 279 | 4A 2 280 | 4B 3 281 | 4C 3 282 | 4D 5-m 283 | 4E 8-2*m 284 | 4F 6-m 285 | 50 2+t 286 | 51 7-m+w-x+x*p 287 | 52 6-m+w 288 | 53 8-m 289 | 54 7 290 | 55 5-m+w 291 | 56 8-2*m+w 292 | 57 7-m+w 293 | 58 2 294 | 59 6-m-x+x*p 295 | 5A 4-x 296 | 5B 2 297 | 5C 4 298 | 5D 6-m-x+x*p 299 | 5E 9-2*m 300 | 5F 6-m 301 | 60 6 302 | 61 7-m+w 303 | 62 6 304 | 63 5-m 305 | 64 4-m+w 306 | 65 4-m+w 307 | 66 7-2*m+w 308 | 67 7-m+w 309 | 68 5-m 310 | 69 3-m 311 | 6A 2 312 | 6B 6 313 | 6C 5 314 | 6D 5-m 315 | 6E 8-2*m 316 | 6F 6-m 317 | 70 2+t 318 | 71 7-m+w-x+x*p 319 | 72 6-m+w 320 | 73 8-m 321 | 74 5-m+w 322 | 75 5-m+w 323 | 76 8-2*m+w 324 | 77 7-m+w 325 | 78 2 326 | 79 6-m-x+x*p 327 | 7A 5-x 328 | 7B 2 329 | 7C 6 330 | 7D 6-m-x+x*p 331 | 7E 9-2*m 332 | 7F 6-m 333 | 80 3 334 | 81 7-m+w 335 | 82 4 336 | 83 5-m 337 | 84 4-x+w 338 | 85 4-m+w 339 | 86 4-x+w 340 | 87 7-m+w 341 | 88 2 342 | 89 3-m 343 | 8A 2 344 | 8B 3 345 | 8C 5-x 346 | 8D 5-m 347 | 8E 5-x 348 | 8F 6-m 349 | 90 2+t 350 | 91 7-m+w 351 | 92 6-m+w 352 | 93 8-m 353 | 94 5-x+w 354 | 95 5-m+w 355 | 96 5-x+w 356 | 97 7-m+w 357 | 98 2 358 | 99 6-m 359 | 9A 2 360 | 9B 2 361 | 9C 5-m 362 | 9D 6-m 363 | 9E 6-m 364 | 9F 6-m 365 | A0 3-x 366 | A1 7-m+w 367 | A2 3-x 368 | A3 5-m 369 | A4 4-x+w 370 | A5 4-m+w 371 | A6 4-x+w 372 | A7 7-m+w 373 | A8 2 374 | A9 3-m 375 | AA 2 376 | AB 4 377 | AC 5-x 378 | AD 5-m 379 | AE 5-x 380 | AF 6-m 381 | B0 2+t 382 | B1 7-m+w-x+x*p 383 | B2 6-m+w 384 | B3 8-m 385 | B4 5-x+w 386 | B5 5-m+w 387 | B6 5-x+w 388 | B7 7-m+w 389 | B8 2 390 | B9 6-m-x+x*p 391 | BA 2 392 | BB 2 393 | BC 6-2*x+x*p 394 | BD 6-m-x+x*p 395 | BE 6-2*x+x*p 396 | BF 6-m 397 | C0 3-x 398 | C1 7-m+w 399 | C2 3 400 | C3 5-m 401 | C4 4-x+w 402 | C5 4-m+w 403 | C6 7-2*m+w 404 | C7 7-m+w 405 | C8 2 406 | C9 3-m 407 | CA 2 408 | CB 3 409 | CC 5-x 410 | CD 5-m 411 | CE 8-2*m 412 | CF 6-m 413 | D0 2+t 414 | D1 7-m+w-x+x*p 415 | D2 6-m+w 416 | D3 8-m 417 | D4 6+w 418 | D5 5-m+w 419 | D6 8-2*m+w 420 | D7 7-m+w 421 | D8 2 422 | D9 6-m-x+x*p 423 | DA 4-x 424 | DB 3 425 | DC 6 426 | DD 6-m-x+x*p 427 | DE 9-2*m 428 | DF 6-m 429 | E0 3-x 430 | E1 7-m+w 431 | E2 3 432 | E3 5-m 433 | E4 4-x+w 434 | E5 4-m+w 435 | E6 7-2*m+w 436 | E7 7-m+w 437 | E8 2 438 | E9 3-m 439 | EA 2 440 | EB 3 441 | EC 5-x 442 | ED 5-m 443 | EE 8-2*m 444 | EF 6-m 445 | F0 2+t 446 | F1 7-m+w-x+x*p 447 | F2 6-m+w 448 | F3 8-m 449 | F4 5 450 | F5 5-m+w 451 | F6 8-2*m+w 452 | F7 7-m+w 453 | F8 2 454 | F9 6-m-x+x*p 455 | FA 5-x 456 | FB 2 457 | FC 8 458 | FD 6-m-x+x*p 459 | FE 9-2*m 460 | FF 6-m 461 | 462 | [vectors] 463 | 00FFE4 COP 464 | 00FFE6 BRK 465 | 00FFE8 ABORT 466 | 00FFEA NMI 467 | 00FFEE IRQ 468 | 00FFFC RESET 469 | 470 | [documentation-mnemos|noinherit] 471 | 472 | [documentation-addmodes|noinherit] 473 | -------------------------------------------------------------------------------- /src/6502/cpu_65dtv02.txt: -------------------------------------------------------------------------------- 1 | ## This is a description file for a 6502-like CPU. 2 | ## See https://github.com/mist64/c64ref for details. 3 | 4 | [info] 5 | name 65DTV02 6 | year 2005 7 | id 65dtv02 8 | basedon 6502 9 | description This is a modern reimplementation of the 6502 by Jeri Ellsworth as used in the C64DTV2. It reproduces all quirks of the original 6502 as well as most undocumented opcodes and adds three new instructions and an MMU. (The timing information corresponds to "skip internal cycles" mode.) 10 | 11 | [registers] 12 | # A,X,Y,S,P,PC,R0,R1,R2,R3,R4,R5,R6,R7,R8,R9,R10,R11,R12,R13,R14,R15 13 | A 8 Accumulator (alias for R0-R15) 14 | X 8 X Index Register (alias for R0-R15) 15 | Y 8 Y Index Register (alias for R0-R15) 16 | R0 8 Default Accumulator 17 | R1 8 Default Y Register 18 | R2 8 Default X Register 19 | R3 8 Reserved 20 | R4 8 Reserved 21 | R5 8 Reserved 22 | R6 8 Reserved 23 | R7 8 Reserved 24 | R8 8 Bank 0-3 Access Mode 25 | R9 8 CPU Control 26 | R10 8 Base Page Segment 27 | R11 8 Stack Segment 28 | R12 8 Bank 0 Segment 29 | R13 8 Bank 1 Segment 30 | R14 8 Bank 2 Segment 31 | R15 8 Bank 3 Segment 32 | 33 | [mnemos] 34 | # new instructions 35 | SAC Set Accumulator Mapping 36 | SIR Set Index Register Mapping 37 | BRA Branch Always 38 | 39 | # bugs in undocumented instructions 40 | 2B *ANC #d8 ## https://www.c64-wiki.com/wiki/C64DTV_Programming_Guide 41 | 9B *NOP a16,Y ## VICE source 42 | ##C7 *DCP a8 ## unclear -- https://www.c64-wiki.com/wiki/C64DTV_Programming_Guide 43 | 44 | [operations] 45 | SAC flags -------- Set Accumulator Mapping 46 | SIR flags -------- Set Index Register Mapping 47 | BRA ctrl -------- Branch Always 48 | 49 | [opcodes] 50 | 12 BRA r8 51 | 32 SAC #d8 52 | 42 SIR #d8 53 | 54 | [timing] ## "skip internal cycles" mode 55 | 00 6 56 | 01 6 57 | 02 X 58 | 03 7 59 | 04 3 60 | 05 3 61 | 06 4 62 | 07 4 63 | 08 2 64 | 09 2 65 | 0A 1 66 | 0B 2 67 | 0C 4 68 | 0D 4 69 | 0E 5 70 | 0F 5 71 | 10 2 72 | 11 5 73 | 12 2 74 | 13 6 75 | 14 3 76 | 15 3 77 | 16 4 78 | 17 4 79 | 18 1 80 | 19 4 81 | 1A 1 82 | 1B 5 83 | 1C 4 84 | 1D 4 85 | 1E 5 86 | 1F 5 87 | 20 5 88 | 21 6 89 | 22 X 90 | 23 7 91 | 24 3 92 | 25 3 93 | 26 4 94 | 27 4 95 | 28 2 96 | 29 2 97 | 2A 1 98 | 2B 2 99 | 2C 4 100 | 2D 4 101 | 2E 5 102 | 2F 5 103 | 30 2 104 | 31 5 105 | 32 2 106 | 33 6 107 | 34 3 108 | 35 3 109 | 36 4 110 | 37 4 111 | 38 1 112 | 39 4 113 | 3A 1 114 | 3B 5 115 | 3C 4 116 | 3D 4 117 | 3E 5 118 | 3F 5 119 | 40 4 120 | 41 6 121 | 42 2 122 | 43 7 123 | 44 3 124 | 45 3 125 | 46 4 126 | 47 4 127 | 48 2 128 | 49 2 129 | 4A 1 130 | 4B 2 131 | 4C 3 132 | 4D 4 133 | 4E 5 134 | 4F 5 135 | 50 2 136 | 51 5 137 | 52 X 138 | 53 6 139 | 54 3 140 | 55 3 141 | 56 4 142 | 57 4 143 | 58 1 144 | 59 4 145 | 5A 1 146 | 5B 5 147 | 5C 4 148 | 5D 4 149 | 5E 5 150 | 5F 5 151 | 60 4 152 | 61 6 153 | 62 X 154 | 63 7 155 | 64 3 156 | 65 3 157 | 66 4 158 | 67 4 159 | 68 2 160 | 69 2 161 | 6A 1 162 | 6B 2 163 | 6C 5 164 | 6D 4 165 | 6E 5 166 | 6F 5 167 | 70 2 168 | 71 5 169 | 72 X 170 | 73 6 171 | 74 3 172 | 75 3 173 | 76 4 174 | 77 4 175 | 78 1 176 | 79 4 177 | 7A 1 178 | 7B 5 179 | 7C 4 180 | 7D 4 181 | 7E 5 182 | 7F 5 183 | 80 2 184 | 81 6 185 | 82 2 186 | 83 6 187 | 84 3 188 | 85 3 189 | 86 3 190 | 87 3 191 | 88 1 192 | 89 2 193 | 8A 1 194 | 8B 2 195 | 8C 4 196 | 8D 4 197 | 8E 4 198 | 8F 4 199 | 90 2 200 | 91 5 201 | 92 X 202 | 93 5 203 | 94 3 204 | 95 3 205 | 96 3 206 | 97 3 207 | 98 1 208 | 99 4 209 | 9A 1 210 | 9B 4 211 | 9C 4 212 | 9D 4 213 | 9E 4 214 | 9F 4 215 | A0 2 216 | A1 6 217 | A2 2 218 | A3 6 219 | A4 3 220 | A5 3 221 | A6 3 222 | A7 3 223 | A8 1 224 | A9 2 225 | AA 1 226 | AB 2 227 | AC 4 228 | AD 4 229 | AE 4 230 | AF 4 231 | B0 2 232 | B1 5 233 | B2 X 234 | B3 5 235 | B4 3 236 | B5 3 237 | B6 3 238 | B7 3 239 | B8 1 240 | B9 4 241 | BA 1 242 | BB 4 243 | BC 4 244 | BD 4 245 | BE 4 246 | BF 4 247 | C0 2 248 | C1 6 249 | C2 2 250 | C3 7 251 | C4 3 252 | C5 3 253 | C6 4 254 | C7 4 255 | C8 1 256 | C9 2 257 | CA 1 258 | CB 2 259 | CC 4 260 | CD 4 261 | CE 5 262 | CF 5 263 | D0 2 264 | D1 5 265 | D2 X 266 | D3 6 267 | D4 3 268 | D5 3 269 | D6 4 270 | D7 4 271 | D8 1 272 | D9 4 273 | DA 1 274 | DB 5 275 | DC 4 276 | DD 4 277 | DE 5 278 | DF 5 279 | E0 2 280 | E1 6 281 | E2 2 282 | E3 7 283 | E4 3 284 | E5 3 285 | E6 4 286 | E7 4 287 | E8 1 288 | E9 2 289 | EA 1 290 | EB 2 291 | EC 4 292 | ED 4 293 | EE 5 294 | EF 5 295 | F0 2 296 | F1 5 297 | F2 X 298 | F3 6 299 | F4 3 300 | F5 3 301 | F6 4 302 | F7 4 303 | F8 1 304 | F9 4 305 | FA 1 306 | FB 5 307 | FC 4 308 | FD 4 309 | FE 5 310 | FF 5 311 | 312 | [documentation-mnemos] 313 | ## https://www.c64-wiki.com/wiki/C64DTV_Programming_Guide 314 | 315 | SAC Set Accumulator Mapping 316 | The 65DTV02 has a register file of 16 bytes, some of which double as control/MMU registers. The lower four bits of the SAC instruction's immediate operand assign the register that will be accessed through read operations to the accumulator, and the upper four bits assign the register that will be accessed through write operations to the accumulator. The default register for the accumulator is 0. 317 | 318 | SIR Set Index Register Mapping 319 | The 65DTV02 has a register file of 16 bytes, some of which double as control/MMU registers. The lower four bits of the SIR instruction's immediate operand assign the register that index register X is mapped to, and the upper four bits assign the register that index register Y is mapped to. The default register for the index register X is 2, and the default for the index register Y is 1. 320 | 321 | BRA Branch Always 322 | This instruction takes an unconditional branch. 323 | BRA does not affect any of the flags or any other part of the machine other than the program counter. 324 | -------------------------------------------------------------------------------- /src/6502/cpu_r65c02.txt: -------------------------------------------------------------------------------- 1 | ## This is a description file for a 6502-like CPU. 2 | ## See https://github.com/mist64/c64ref for details. 3 | 4 | [info] 5 | manufacturer Rockwell 6 | name R65C02 7 | year 1983 ## https://archive.org/details/micro-6502-journal-60/page/n71/mode/2up?q=65c02 8 | id r65c02 9 | basedon 65c02 10 | description This is the Rockwell-variant of the WDC 65c02, which adds 32 new bit testing and manipulation opcodes. 11 | 12 | [mnemos] 13 | BBR0 Branch on Bit 0 Reset 14 | BBR1 Branch on Bit 1 Reset 15 | BBR2 Branch on Bit 2 Reset 16 | BBR3 Branch on Bit 3 Reset 17 | BBR4 Branch on Bit 4 Reset 18 | BBR5 Branch on Bit 5 Reset 19 | BBR6 Branch on Bit 6 Reset 20 | BBR7 Branch on Bit 7 Reset 21 | BBS0 Branch on Bit 0 Set 22 | BBS1 Branch on Bit 1 Set 23 | BBS2 Branch on Bit 2 Set 24 | BBS3 Branch on Bit 3 Set 25 | BBS4 Branch on Bit 4 Set 26 | BBS5 Branch on Bit 5 Set 27 | BBS6 Branch on Bit 6 Set 28 | BBS7 Branch on Bit 7 Set 29 | RMB0 Reset Memory Bit 0 30 | RMB1 Reset Memory Bit 1 31 | RMB2 Reset Memory Bit 2 32 | RMB3 Reset Memory Bit 3 33 | RMB4 Reset Memory Bit 4 34 | RMB5 Reset Memory Bit 5 35 | RMB6 Reset Memory Bit 6 36 | RMB7 Reset Memory Bit 7 37 | SMB0 Set Memory Bit 0 38 | SMB1 Set Memory Bit 1 39 | SMB2 Set Memory Bit 2 40 | SMB3 Set Memory Bit 3 41 | SMB4 Set Memory Bit 4 42 | SMB5 Set Memory Bit 5 43 | SMB6 Set Memory Bit 6 44 | SMB7 Set Memory Bit 7 45 | 46 | 47 | [operations] 48 | BBR0 ctrl -------- Branch on M0 = 0 49 | BBR1 ctrl -------- Branch on M1 = 0 50 | BBR2 ctrl -------- Branch on M2 = 0 51 | BBR3 ctrl -------- Branch on M3 = 0 52 | BBR4 ctrl -------- Branch on M4 = 0 53 | BBR5 ctrl -------- Branch on M5 = 0 54 | BBR6 ctrl -------- Branch on M6 = 0 55 | BBR7 ctrl -------- Branch on M7 = 0 56 | BBS0 ctrl -------- Branch on M0 = 1 57 | BBS1 ctrl -------- Branch on M1 = 1 58 | BBS2 ctrl -------- Branch on M2 = 1 59 | BBS3 ctrl -------- Branch on M3 = 1 60 | BBS4 ctrl -------- Branch on M4 = 1 61 | BBS5 ctrl -------- Branch on M5 = 1 62 | BBS6 ctrl -------- Branch on M6 = 1 63 | BBS7 ctrl -------- Branch on M7 = 1 64 | RMB0 logic -------- 0 → M0 65 | RMB1 logic -------- 0 → M1 66 | RMB2 logic -------- 0 → M2 67 | RMB3 logic -------- 0 → M3 68 | RMB4 logic -------- 0 → M4 69 | RMB5 logic -------- 0 → M5 70 | RMB6 logic -------- 0 → M6 71 | RMB7 logic -------- 0 → M7 72 | SMB0 logic -------- 1 → M0 73 | SMB1 logic -------- 1 → M1 74 | SMB2 logic -------- 1 → M2 75 | SMB3 logic -------- 1 → M3 76 | SMB4 logic -------- 1 → M4 77 | SMB5 logic -------- 1 → M5 78 | SMB6 logic -------- 1 → M6 79 | SMB7 logic -------- 1 → M7 80 | 81 | [addmodes] 82 | a8,r8 3 $nn,$nnnn Zero Page, Relative 83 | 84 | [opcodes] 85 | 07 RMB0 a8 86 | 0F BBR0 a8,r8 87 | 17 RMB1 a8 88 | 1F BBR1 a8,r8 89 | 27 RMB2 a8 90 | 2F BBR2 a8,r8 91 | 37 RMB3 a8 92 | 3F BBR3 a8,r8 93 | 47 RMB4 a8 94 | 4F BBR4 a8,r8 95 | 57 RMB5 a8 96 | 5F BBR5 a8,r8 97 | 67 RMB6 a8 98 | 6F BBR6 a8,r8 99 | 77 RMB7 a8 100 | 7F BBR7 a8,r8 101 | 87 SMB0 a8 102 | 8F BBS0 a8,r8 103 | 97 SMB1 a8 104 | 9F BBS1 a8,r8 105 | A7 SMB2 a8 106 | AF BBS2 a8,r8 107 | B7 SMB3 a8 108 | BF BBS3 a8,r8 109 | C7 SMB4 a8 110 | CF BBS4 a8,r8 111 | D7 SMB5 a8 112 | DF BBS5 a8,r8 113 | E7 SMB6 a8 114 | EF BBS6 a8,r8 115 | F7 SMB7 a8 116 | FF BBS7 a8,r8 117 | 118 | [timing] 119 | 07 5 120 | 0F 5+t+p 121 | 17 5 122 | 1F 5+t+p 123 | 27 5 124 | 2F 5+t+p 125 | 37 5 126 | 3F 5+t+p 127 | 47 5 128 | 4F 5+t+p 129 | 57 5 130 | 5F 5+t+p 131 | 67 5 132 | 6F 5+t+p 133 | 77 5 134 | 7F 5+t+p 135 | 87 5 136 | 8F 5+t+p 137 | 97 5 138 | 9F 5+t+p 139 | A7 5 140 | AF 5+t+p 141 | B7 5 142 | BF 5+t+p 143 | C7 5 144 | CF 5+t+p 145 | D7 5 146 | DF 5+t+p 147 | E7 5 148 | EF 5+t+p 149 | F7 5 150 | FF 5+t+p 151 | 152 | [documentation-mnemos] 153 | 154 | BBR0 Branch on Bit 0 Reset 155 | This instruction tests the specified zero page location and branches if bit 0 is clear. 156 | 157 | BBR1 Branch on Bit 1 Reset 158 | This instruction tests the specified zero page location and branches if bit 1 is clear. 159 | 160 | BBR2 Branch on Bit 2 Reset 161 | This instruction tests the specified zero page location and branches if bit 2 is clear. 162 | 163 | BBR3 Branch on Bit 3 Reset 164 | This instruction tests the specified zero page location and branches if bit 3 is clear. 165 | 166 | BBR4 Branch on Bit 4 Reset 167 | This instruction tests the specified zero page location and branches if bit 4 is clear. 168 | 169 | BBR5 Branch on Bit 5 Reset 170 | This instruction tests the specified zero page location and branches if bit 5 is clear. 171 | 172 | BBR6 Branch on Bit 6 Reset 173 | This instruction tests the specified zero page location and branches if bit 6 is clear. 174 | 175 | BBR7 Branch on Bit 7 Reset 176 | This instruction tests the specified zero page location and branches if bit 7 is clear. 177 | 178 | BBS0 Branch on Bit 0 Set 179 | This instruction tests the specified zero page location and branches if bit 0 is set. 180 | 181 | BBS1 Branch on Bit 1 Set 182 | This instruction tests the specified zero page location and branches if bit 1 is set. 183 | 184 | BBS2 Branch on Bit 2 Set 185 | This instruction tests the specified zero page location and branches if bit 2 is set. 186 | 187 | BBS3 Branch on Bit 3 Set 188 | This instruction tests the specified zero page location and branches if bit 3 is set. 189 | 190 | BBS4 Branch on Bit 4 Set 191 | This instruction tests the specified zero page location and branches if bit 4 is set. 192 | 193 | BBS5 Branch on Bit 5 Set 194 | This instruction tests the specified zero page location and branches if bit 5 is set. 195 | 196 | BBS6 Branch on Bit 6 Set 197 | This instruction tests the specified zero page location and branches if bit 6 is set. 198 | 199 | BBS7 Branch on Bit 7 Set 200 | This instruction tests the specified zero page location and branches if bit 7 is set. 201 | 202 | RMB0 Reset Memory Bit 0 203 | This instruction clears bit 0 in the specified zero page location. It does not affect any flags or registers. 204 | 205 | RMB1 Reset Memory Bit 1 206 | This instruction clears bit 1 in the specified zero page location. It does not affect any flags or registers. 207 | 208 | RMB2 Reset Memory Bit 2 209 | This instruction clears bit 2 in the specified zero page location. It does not affect any flags or registers. 210 | 211 | RMB3 Reset Memory Bit 3 212 | This instruction clears bit 3 in the specified zero page location. It does not affect any flags or registers. 213 | 214 | RMB4 Reset Memory Bit 4 215 | This instruction clears bit 4 in the specified zero page location. It does not affect any flags or registers. 216 | 217 | RMB5 Reset Memory Bit 5 218 | This instruction clears bit 5 in the specified zero page location. It does not affect any flags or registers. 219 | 220 | RMB6 Reset Memory Bit 6 221 | This instruction clears bit 6 in the specified zero page location. It does not affect any flags or registers. 222 | 223 | RMB7 Reset Memory Bit 7 224 | This instruction clears bit 7 in the specified zero page location. It does not affect any flags or registers. 225 | 226 | SMB0 Set Memory Bit 0 227 | This instruction sets bit 0 in the specified zero page location. It does not affect any flags or registers. 228 | 229 | SMB1 Set Memory Bit 1 230 | This instruction sets bit 1 in the specified zero page location. It does not affect any flags or registers. 231 | 232 | SMB2 Set Memory Bit 2 233 | This instruction sets bit 2 in the specified zero page location. It does not affect any flags or registers. 234 | 235 | SMB3 Set Memory Bit 3 236 | This instruction sets bit 3 in the specified zero page location. It does not affect any flags or registers. 237 | 238 | SMB4 Set Memory Bit 4 239 | This instruction sets bit 4 in the specified zero page location. It does not affect any flags or registers. 240 | 241 | SMB5 Set Memory Bit 5 242 | This instruction sets bit 5 in the specified zero page location. It does not affect any flags or registers. 243 | 244 | SMB6 Set Memory Bit 6 245 | This instruction sets bit 6 in the specified zero page location. It does not affect any flags or registers. 246 | 247 | SMB7 Set Memory Bit 7 248 | This instruction sets bit 7 in the specified zero page location. It does not affect any flags or registers. 249 | 250 | 251 | [documentation-addmodes] 252 | ## http://archive.6502.org/datasheets/mos_65ce02_mpu.pdf 253 | 254 | a8,r8 Zero Page, Relative 255 | This mode is used only with the bit-test branch instructions (BBS and BCC). The second byte of the instruction specifies the zero page memory to be tested. The third byte of the instruction is the offset, whose range is -128 to 127 bytes, referenced to the location of the next instruction. 256 | -------------------------------------------------------------------------------- /src/6502/csg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | CSG 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/6502/mos.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/6502/out.sh: -------------------------------------------------------------------------------- 1 | cp -p index.html $1 2 | 3 | cp -p *.js cpu_*.txt $1 4 | -------------------------------------------------------------------------------- /src/6502/rockwell.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/6502/wdc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/c64disasm/generate.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import html, re, os 4 | 5 | filenames = [ 6 | "c64disasm_ms.txt;c64disasm_cbm.txt", 7 | "c64disasm_de.txt", 8 | "c64disasm_en.txt", 9 | "c64disasm_sc.txt", 10 | "c64disasm_mn.txt", 11 | "c64disasm_mm.txt" 12 | ] 13 | names = [ 14 | "Microsoft/Commodore Source", 15 | "Data Becker [German]", 16 | "Lee Davison", 17 | "Bob Sander-Cederlof [BASIC only]", 18 | "Magnus Nyman [KERNAL only]", 19 | "Marko Mäkelä" 20 | ] 21 | links = [ 22 | "https://github.com/mist64/cbmsrc", 23 | "https://www.pagetable.com/?p=1015", 24 | "https://github.com/Project-64/reloaded/blob/master/c64/firmware/C64LD11.S", 25 | "https://www.pagetable.com/?p=728", 26 | "https://www.telecomm.at/documents/Jiffydos_Romlisting.doc", 27 | "https://github.com/Project-64/reloaded/blob/master/c64/C64DIS11.TXT" 28 | ] 29 | descriptions = [ 30 | "The original M6502 BASIC source by Microsoft (KIM-1 version, not everything lines up, Commodore extensions are missing, but lots of comments by the original authors)
and the original C64 KERNAL source by Commodore (lots of comments by the original authors)", 31 | "German-language comments from Das neue Commodore-64-intern-Buch by Data Becker, ISBN 3890113079. Some minor corrections have been made.", 32 | "Comments from The almost completely commented C64 ROM disassembly V1.01 by Lee Davison. Some minor corrections have been made.", 33 | "Comments adapted from S-C DocuMentor for Applesoft by Bob Sander-Cederlof, for the version of Microsoft BASIC that shipped with the Apple II.", 34 | "Comments from JIFFYDOS version 6.01/version 6.02 by Magnus Nyman (Harlekin/FairLight), which were written for the JiffyDOS KERNAL, so some serial code and all tape code is missing comments.", 35 | "Comments from the Commodore 64 BASIC/KERNAL ROM Disassembly Version 1.0 (June 1994) by Marko Mäkelä." 36 | ] 37 | 38 | def cross_reference(string, symbols): 39 | hex_numbers = list(set(re.findall(r'(?" + hex_number + "") 44 | elif (dec_number >= 0xa000 and dec_number <= 0xbfff) or (dec_number >= 0xe000 and dec_number <= 0xffff): 45 | string = string.replace(hex_number, "" + hex_number + "") 46 | 47 | for symbol in symbols: 48 | string = re.sub('\\b' + symbol + '\\b', '' + symbol + '', string) 49 | 50 | return string 51 | 52 | asm_donor_index = 1 53 | source_index = 0 # we treat the Microsoft/Commodore source differently 54 | 55 | symbols = [] 56 | symbol_lines = [line.rstrip() for line in open('../c64mem/c64mem_src.txt')] 57 | for line in symbol_lines: 58 | if line.startswith('#') or line.startswith('-'): 59 | continue 60 | symbol = line[13:19].rstrip() 61 | if symbol != '': 62 | symbols.append(symbol) 63 | symbols = set(symbols) 64 | 65 | data = [] 66 | linenumber = [] 67 | address = [] 68 | for filename in filenames: 69 | d = [] 70 | for f in filename.split(";"): 71 | d += [line.rstrip() for line in open(f)] 72 | data.append(d) 73 | linenumber.append(0) 74 | address.append(0) 75 | files = len(filenames) 76 | 77 | asmaddress = 0 78 | asmlinenumber = 0 79 | 80 | for i in range(0, files): 81 | while True: 82 | line = data[i][linenumber[i]] 83 | if len(line) > 0 and line[0] == '.': 84 | break 85 | linenumber[i] = linenumber[i] + 1 86 | 87 | 88 | print('') 89 | print('') 90 | print('') 91 | print('') 92 | print('BASIC & KERNAL ROM Disassembly | Ultimate C64 Reference') 93 | print('') 94 | 95 | print('') 104 | print('') 105 | print('') 106 | 107 | print('') 108 | print('') 109 | 110 | print('') 137 | print('') 138 | 139 | print('') 140 | print('
') 141 | print('
') 142 | 143 | print('This allows you to view different commentaries side-by-side. You can enable/disable individual columns:

') 144 | print('') 145 | for i in range(0, len(filenames)): 146 | print('') 147 | print('
' + names[i] + '' + descriptions[i] + '
') 148 | 149 | print('
') 150 | print('') 151 | 152 | print('') 153 | print('') 154 | for i in range(0, files): 155 | print('') 156 | print('') 157 | 158 | count = 0 159 | while(True): 160 | count += 1 161 | # if count > 80: 162 | # break 163 | 164 | for i in range(0, files): 165 | if linenumber[i] >= len(data[i]): 166 | continue 167 | while len(data[i][linenumber[i]]) > 0 and (data[i][linenumber[i]][0] == '-' or data[i][linenumber[i]][0] == '#'): 168 | linenumber[i] = linenumber[i] + 1 169 | 170 | if asmlinenumber >= len(data[asm_donor_index]): 171 | break 172 | 173 | asm = data[asm_donor_index][asmlinenumber][0:32].rstrip() 174 | asmlinenumber = asmlinenumber + 1 175 | 176 | if len(asm) == 0: 177 | continue 178 | if asm[0] == '#' or asm[0] == '-': 179 | continue 180 | 181 | has_address = False 182 | if asm[0] == '.': 183 | hexaddress = asm[2:6] 184 | asmaddress = int(hexaddress, 16) 185 | has_address = True 186 | 187 | asm = cross_reference(asm, []) 188 | 189 | print('') 190 | print('') 194 | 195 | for i in range(0, files): 196 | print('') 240 | print('') 241 | 242 | print('
Disassembly' + names[i] + '
') 191 | if has_address: 192 | print('') 193 | print('' + asm + '') 197 | comments = [] 198 | while True: 199 | if linenumber[i] >= len(data[i]): 200 | break 201 | 202 | line = data[i][linenumber[i]] 203 | 204 | if line.startswith('.'): 205 | address[i] = int(line[2:6], 16) 206 | if address[i] > asmaddress: 207 | break 208 | comment = line[32:] 209 | comment = html.escape(comment) 210 | 211 | comment = cross_reference(comment, symbols) 212 | 213 | if comment.startswith('***'): 214 | comment = '

' + comment[3:] + '

' 215 | elif comment.startswith('SUBTTL'): 216 | comment = '

' + comment[6:] + '

' 217 | elif comment.startswith('.LIB '): 218 | comment = '

' + comment + '

' 219 | else: 220 | scomment = comment.lstrip() 221 | 222 | if scomment.startswith(';'): 223 | comment = '' + comment + '' 224 | 225 | if len(comment) != 0: 226 | comment = '' + comment + '
' 227 | 228 | if len(comment) != 0: 229 | comments.append(comment) 230 | 231 | linenumber[i] = linenumber[i] + 1 232 | 233 | if len(comments): 234 | for comment in comments: 235 | print(comment) 236 | else: 237 | print(' ') 238 | 239 | print('
') 243 | print('
') 244 | 245 | print('
') 246 | print('
') 247 | print('') 248 | print('') 249 | 250 | -------------------------------------------------------------------------------- /src/c64disasm/out.sh: -------------------------------------------------------------------------------- 1 | ./generate.py > $1/index.html 2 | -------------------------------------------------------------------------------- /src/c64io/out.sh: -------------------------------------------------------------------------------- 1 | ./generate.py > $1/index.html 2 | -------------------------------------------------------------------------------- /src/c64mem/format.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import sys 4 | import os 5 | import pprint 6 | 7 | with open('c64mem_64intern.txt', 'r') as f: 8 | lines = f.read().split('\n') 9 | 10 | with open('symbols.txt', 'r') as f: 11 | sym = f.read().split('\n') 12 | 13 | symbols = {} 14 | 15 | for s in sym: 16 | if not s.startswith('$'): 17 | continue 18 | address = s[1:5] 19 | name = s[6:12] 20 | symbols[address] = name 21 | 22 | #pprint.pprint(symbols) 23 | 24 | for line in lines: 25 | if line.startswith('-') or line.startswith('#') or len(line) == 0: 26 | print(line) 27 | continue 28 | 29 | if not line.startswith('$'): 30 | print(line) 31 | continue 32 | address = line[0:13] 33 | start_address = line[1:5] 34 | description = line[21:] 35 | if start_address in symbols: 36 | symbol = (symbols[start_address] + " ")[:8] 37 | else: 38 | symbol = " " 39 | print(address + symbol + description) 40 | 41 | -------------------------------------------------------------------------------- /src/c64mem/out.sh: -------------------------------------------------------------------------------- 1 | ./generate.py > $1/index.html 2 | -------------------------------------------------------------------------------- /src/c64mem/symbols.txt: -------------------------------------------------------------------------------- 1 | $0000 D6510 2 | $0001 R6510 3 | #0002 # unnamed in Programmer's Reference Manual; part of "BLANK0" 3 (!) byte register area in BASIC source 4 | $0003 ADRAY1 5 | $0005 ADRAY2 6 | $0007 CHARAC # also INTEGR 7 | $0008 ENDCHR 8 | $0009 TRMPOS 9 | $000A VERCK 10 | $000B COUNT 11 | $000C DIMFLG 12 | $000D VALTYP 13 | $000E INTFLG 14 | $000F GARBFL 15 | $0010 SUBFLG 16 | $0011 INPFLG 17 | $0012 TANSGN 18 | $0013 CHANNL # unnamed in Programmer's Reference Manual 19 | $0014 LINNUM 20 | $0016 TEMPPT 21 | $0017 LASTPT 22 | $0019 TEMPST 23 | $0022 INDEX 24 | $0022 INDEX1 25 | $0024 INDEX2 26 | $0026 RESHO 27 | $002B TXTTAB 28 | $002D VARTAB 29 | $002F ARYTAB 30 | $0031 STREND 31 | $0033 FRETOP 32 | $0035 FRESPC 33 | $0037 MEMSIZ 34 | $0039 CURLIN 35 | $003B OLDLIN 36 | $003D OLDTXT 37 | $003F DATLIN 38 | $0041 DATPTR 39 | $0043 INPPTR 40 | $0045 VARNAM 41 | $0047 VARPNT 42 | $0049 FORPNT 43 | $004B OPPTR 44 | $004B VARTXT 45 | $004D OPMASK 46 | $004E DEFPNT 47 | $004E TEMPF3 48 | $0050 DSCPNT 49 | $0053 FOUR6 50 | $0054 JMPER 51 | $0057 TEMPF1 52 | $005C TEMPF2 53 | $0061 FAC 54 | $0061 FACEXP 55 | $0062 FACHO 56 | $0066 FACSGN 57 | $0067 SGNFLG 58 | $0068 BITS 59 | $0069 ARGEXP # aka ARG, AFAC, FAC2 60 | $006A ARGHO 61 | $006E ARGSGN 62 | $006F ARISGN 63 | $0070 FACOV 64 | $0071 FBUFPT 65 | $0073 CHRGET 66 | $0079 CHRGOT 67 | $007A TXTPTR 68 | $008B RNDX 69 | $0090 STATUS 70 | $0091 STKEY 71 | $0092 SVXT 72 | $0093 VERCK 73 | $0094 C3P0 74 | $0095 BSOUR 75 | $0096 SYNO 76 | $0097 XSAV # unnamed in Programmer's Reference Manual 77 | $0098 LDTND 78 | $0099 DFLTN 79 | $009A DFLTO 80 | $009B PRTY 81 | $009C DPSW 82 | $009D MSGFLG 83 | $009E PTR1 84 | $009F PTR2 85 | $00A0 TIME 86 | $00A3 PCNTR # unnamed in Programmer's Reference Manual 87 | $00A3 R2D2 # unnamed in Programmer's Reference Manual 88 | $00A4 BSOUR1 # unnamed in Programmer's Reference Manual 89 | $00A4 FIRT # unnamed in Programmer's Reference Manual 90 | $00A5 CNTDN 91 | $00A6 BUFPT 92 | $00A7 INBIT 93 | $00A8 BITCI 94 | $00A9 RINONE 95 | $00AA RIDATA 96 | $00AB RIPRTY 97 | $00AC SAL 98 | $00AE EAL 99 | $00B0 CMP0 100 | $00B2 TAPE1 101 | $00B4 BITTS 102 | $00B5 NXTBIT 103 | $00B6 RODATA 104 | $00B7 FNLEN 105 | $00B8 LA 106 | $00B9 SA 107 | $00BA FA 108 | $00BB FNADR 109 | $00BD ROPRTY 110 | $00BE FSBLK 111 | $00BF MYCH 112 | $00C0 CAS1 113 | $00C1 STAL 114 | $00C3 MEMUSS 115 | $00C5 LSTX 116 | $00C6 NDX 117 | $00C7 RVS 118 | $00C8 INDX 119 | $00C9 LSXP 120 | $00CB SFDX 121 | $00CC BLNSW 122 | $00CD BLNCT 123 | $00CE GDBLN 124 | $00CF BLNON 125 | $00D0 CRSW 126 | $00D1 PNT 127 | $00D3 PNTR 128 | $00D4 QTSW 129 | $00D5 LNMX 130 | $00D6 TBLX 131 | $00D7 DATA # unnamed in Programmer's Reference Manual 132 | $00D8 INSRT 133 | $00D9 LDTB1 134 | $00F3 USER 135 | $00F5 KEYTAB 136 | $00F7 RIBUF 137 | $00F9 ROBUF 138 | $00FB FREKZP 139 | $00FF BASZPT 140 | $0100 BAD 141 | $0200 BUF 142 | $0259 LAT 143 | $0263 FAT 144 | $026D SAT 145 | $0277 KEYD 146 | $0281 MEMSTR 147 | $0283 MEMSIZ 148 | $0285 TIMOUT 149 | $0286 COLOR 150 | $0287 GDCOL 151 | $0288 HIBASE 152 | $0289 XMAX 153 | $028A RPTFLG 154 | $028B KOUNT 155 | $028C DELAY 156 | $028D SHFLAG 157 | $028E LSTSHF 158 | $028F KEYLOG 159 | $0291 MODE 160 | $0292 AUTODN 161 | $0293 M51CTR 162 | $0294 M51CDR 163 | $0295 M51AJB 164 | $0297 RSSTAT 165 | $0298 BITNUM 166 | $0299 BAUDOF 167 | $029B RIDBE 168 | $029C RIDBS 169 | $029D RODBS 170 | $029E RODBE 171 | $029F IRQTMP 172 | $02A1 ENABL 173 | $02A2 CASTON # unnamed in Programmer's Reference Manual 174 | $02A3 KIKA26 # unnamed in Programmer's Reference Manual 175 | $02A4 STUPID # unnamed in Programmer's Reference Manual 176 | $02A5 LINTMP # unnamed in Programmer's Reference Manual 177 | $02A6 PALNTS # unnamed in Programmer's Reference Manual 178 | $0300 IERROR 179 | $0302 IMAIN 180 | $0304 ICRNCH 181 | $0306 IQPLOP 182 | $0308 IGONE 183 | $030A IEVAL 184 | $030C SAREG 185 | $030D SXREG 186 | $030E SYREG 187 | $030F SPREG 188 | $0310 USRPOK 189 | $0311 USRADD # from Programmer's Reference Manual; not in KERNAL/BASIC source! 190 | $0314 CINV 191 | $0316 CBINV 192 | $0318 NMINV 193 | $031A IOPEN 194 | $031C ICLOSE 195 | $031E ICHKIN 196 | $0320 ICKOUT 197 | $0322 ICLRCH 198 | $0324 IBASIN 199 | $0326 IBSOUT 200 | $0328 ISTOP 201 | $032A IGETIN 202 | $032C ICLALL 203 | $032E USRCMD 204 | $0330 ILOAD 205 | $0332 ISAVE 206 | $033C TBUFFR 207 | $0400 VICSCN 208 | -------------------------------------------------------------------------------- /src/charset/.gitignore: -------------------------------------------------------------------------------- 1 | *.png 2 | -------------------------------------------------------------------------------- /src/charset/C64IALT.TXT: -------------------------------------------------------------------------------- 1 | # Name: Map from Commodore 64/128 (interchange) alternate character set to Unicode 2 | # Date: 2018 October 11 3 | # Author: Rebecca Bettencourt 4 | 5 | 0x20 0x0020 # SPACE 6 | 0x21 0x0021 # EXCLAMATION MARK 7 | 0x22 0x0022 # QUOTATION MARK 8 | 0x23 0x0023 # NUMBER SIGN 9 | 0x24 0x0024 # DOLLAR SIGN 10 | 0x25 0x0025 # PERCENT SIGN 11 | 0x26 0x0026 # AMPERSAND 12 | 0x27 0x0027 # APOSTROPHE 13 | 0x28 0x0028 # LEFT PARENTHESIS 14 | 0x29 0x0029 # RIGHT PARENTHESIS 15 | 0x2A 0x002A # ASTERISK 16 | 0x2B 0x002B # PLUS SIGN 17 | 0x2C 0x002C # COMMA 18 | 0x2D 0x002D # HYPHEN-MINUS 19 | 0x2E 0x002E # FULL STOP 20 | 0x2F 0x002F # SOLIDUS 21 | 0x30 0x0030 # DIGIT ZERO 22 | 0x31 0x0031 # DIGIT ONE 23 | 0x32 0x0032 # DIGIT TWO 24 | 0x33 0x0033 # DIGIT THREE 25 | 0x34 0x0034 # DIGIT FOUR 26 | 0x35 0x0035 # DIGIT FIVE 27 | 0x36 0x0036 # DIGIT SIX 28 | 0x37 0x0037 # DIGIT SEVEN 29 | 0x38 0x0038 # DIGIT EIGHT 30 | 0x39 0x0039 # DIGIT NINE 31 | 0x3A 0x003A # COLON 32 | 0x3B 0x003B # SEMICOLON 33 | 0x3C 0x003C # LESS-THAN SIGN 34 | 0x3D 0x003D # EQUALS SIGN 35 | 0x3E 0x003E # GREATER-THAN SIGN 36 | 0x3F 0x003F # QUESTION MARK 37 | 0x40 0x0040 # COMMERCIAL AT 38 | 0x41 0x0061 # LATIN SMALL LETTER A 39 | 0x42 0x0062 # LATIN SMALL LETTER B 40 | 0x43 0x0063 # LATIN SMALL LETTER C 41 | 0x44 0x0064 # LATIN SMALL LETTER D 42 | 0x45 0x0065 # LATIN SMALL LETTER E 43 | 0x46 0x0066 # LATIN SMALL LETTER F 44 | 0x47 0x0067 # LATIN SMALL LETTER G 45 | 0x48 0x0068 # LATIN SMALL LETTER H 46 | 0x49 0x0069 # LATIN SMALL LETTER I 47 | 0x4A 0x006A # LATIN SMALL LETTER J 48 | 0x4B 0x006B # LATIN SMALL LETTER K 49 | 0x4C 0x006C # LATIN SMALL LETTER L 50 | 0x4D 0x006D # LATIN SMALL LETTER M 51 | 0x4E 0x006E # LATIN SMALL LETTER N 52 | 0x4F 0x006F # LATIN SMALL LETTER O 53 | 0x50 0x0070 # LATIN SMALL LETTER P 54 | 0x51 0x0071 # LATIN SMALL LETTER Q 55 | 0x52 0x0072 # LATIN SMALL LETTER R 56 | 0x53 0x0073 # LATIN SMALL LETTER S 57 | 0x54 0x0074 # LATIN SMALL LETTER T 58 | 0x55 0x0075 # LATIN SMALL LETTER U 59 | 0x56 0x0076 # LATIN SMALL LETTER V 60 | 0x57 0x0077 # LATIN SMALL LETTER W 61 | 0x58 0x0078 # LATIN SMALL LETTER X 62 | 0x59 0x0079 # LATIN SMALL LETTER Y 63 | 0x5A 0x007A # LATIN SMALL LETTER Z 64 | 0x5B 0x005B # LEFT SQUARE BRACKET 65 | 0x5C 0x00A3 # POUND SIGN 66 | 0x5D 0x005D # RIGHT SQUARE BRACKET 67 | 0x5E 0x2191 # UPWARDS ARROW 68 | 0x5F 0x2190 # LEFTWARDS ARROW 69 | 0x60 0x2500 # BOX DRAWINGS LIGHT HORIZONTAL 70 | 0x61 0x0041 # LATIN CAPITAL LETTER A 71 | 0x62 0x0042 # LATIN CAPITAL LETTER B 72 | 0x63 0x0043 # LATIN CAPITAL LETTER C 73 | 0x64 0x0044 # LATIN CAPITAL LETTER D 74 | 0x65 0x0045 # LATIN CAPITAL LETTER E 75 | 0x66 0x0046 # LATIN CAPITAL LETTER F 76 | 0x67 0x0047 # LATIN CAPITAL LETTER G 77 | 0x68 0x0048 # LATIN CAPITAL LETTER H 78 | 0x69 0x0049 # LATIN CAPITAL LETTER I 79 | 0x6A 0x004A # LATIN CAPITAL LETTER J 80 | 0x6B 0x004B # LATIN CAPITAL LETTER K 81 | 0x6C 0x004C # LATIN CAPITAL LETTER L 82 | 0x6D 0x004D # LATIN CAPITAL LETTER M 83 | 0x6E 0x004E # LATIN CAPITAL LETTER N 84 | 0x6F 0x004F # LATIN CAPITAL LETTER O 85 | 0x70 0x0050 # LATIN CAPITAL LETTER P 86 | 0x71 0x0051 # LATIN CAPITAL LETTER Q 87 | 0x72 0x0052 # LATIN CAPITAL LETTER R 88 | 0x73 0x0053 # LATIN CAPITAL LETTER S 89 | 0x74 0x0054 # LATIN CAPITAL LETTER T 90 | 0x75 0x0055 # LATIN CAPITAL LETTER U 91 | 0x76 0x0056 # LATIN CAPITAL LETTER V 92 | 0x77 0x0057 # LATIN CAPITAL LETTER W 93 | 0x78 0x0058 # LATIN CAPITAL LETTER X 94 | 0x79 0x0059 # LATIN CAPITAL LETTER Y 95 | 0x7A 0x005A # LATIN CAPITAL LETTER Z 96 | 0x7B 0x253C # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL 97 | 0x7C 0x1FB8C # LEFT HALF MEDIUM SHADE 98 | 0x7D 0x2502 # BOX DRAWINGS LIGHT VERTICAL 99 | 0x7E 0x1FB96 # INVERSE CHECKER BOARD FILL 100 | 0x7F 0x1FB98 # UPPER LEFT TO LOWER RIGHT FILL 101 | 102 | 0xA0 0x00A0 # NO-BREAK SPACE 103 | 0xA1 0x258C # LEFT HALF BLOCK 104 | 0xA2 0x2584 # LOWER HALF BLOCK 105 | 0xA3 0x2594 # UPPER ONE EIGHTH BLOCK 106 | 0xA4 0x2581 # LOWER ONE EIGHTH BLOCK 107 | 0xA5 0x258F # LEFT ONE EIGHTH BLOCK 108 | 0xA6 0x2592 # MEDIUM SHADE 109 | 0xA7 0x2595 # RIGHT ONE EIGHTH BLOCK 110 | 0xA8 0x1FB8F # LOWER HALF MEDIUM SHADE 111 | 0xA9 0x1FB99 # UPPER RIGHT TO LOWER LEFT FILL 112 | 0xAA 0x1FB87 # RIGHT ONE QUARTER BLOCK 113 | 0xAB 0x251C # BOX DRAWINGS LIGHT VERTICAL AND RIGHT 114 | 0xAC 0x2597 # QUADRANT LOWER RIGHT 115 | 0xAD 0x2514 # BOX DRAWINGS LIGHT UP AND RIGHT 116 | 0xAE 0x2510 # BOX DRAWINGS LIGHT DOWN AND LEFT 117 | 0xAF 0x2582 # LOWER ONE QUARTER BLOCK 118 | 0xB0 0x250C # BOX DRAWINGS LIGHT DOWN AND RIGHT 119 | 0xB1 0x2534 # BOX DRAWINGS LIGHT UP AND HORIZONTAL 120 | 0xB2 0x252C # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL 121 | 0xB3 0x2524 # BOX DRAWINGS LIGHT VERTICAL AND LEFT 122 | 0xB4 0x258E # LEFT ONE QUARTER BLOCK 123 | 0xB5 0x258D # LEFT THREE EIGHTHS BLOCK 124 | 0xB6 0x1FB88 # RIGHT THREE EIGHTHS BLOCK 125 | 0xB7 0x1FB82 # UPPER ONE QUARTER BLOCK 126 | 0xB8 0x1FB83 # UPPER THREE EIGHTHS BLOCK 127 | 0xB9 0x2583 # LOWER THREE EIGHTHS BLOCK 128 | 0xBA 0x2713 # CHECK MARK 129 | 0xBB 0x2596 # QUADRANT LOWER LEFT 130 | 0xBC 0x259D # QUADRANT UPPER RIGHT 131 | 0xBD 0x2518 # BOX DRAWINGS LIGHT UP AND LEFT 132 | 0xBE 0x2598 # QUADRANT UPPER LEFT 133 | 0xBF 0x259A # QUADRANT UPPER LEFT AND LOWER RIGHT 134 | 0xC0 0x2500 # BOX DRAWINGS LIGHT HORIZONTAL 135 | 0xC1 0x0041 # LATIN CAPITAL LETTER A 136 | 0xC2 0x0042 # LATIN CAPITAL LETTER B 137 | 0xC3 0x0043 # LATIN CAPITAL LETTER C 138 | 0xC4 0x0044 # LATIN CAPITAL LETTER D 139 | 0xC5 0x0045 # LATIN CAPITAL LETTER E 140 | 0xC6 0x0046 # LATIN CAPITAL LETTER F 141 | 0xC7 0x0047 # LATIN CAPITAL LETTER G 142 | 0xC8 0x0048 # LATIN CAPITAL LETTER H 143 | 0xC9 0x0049 # LATIN CAPITAL LETTER I 144 | 0xCA 0x004A # LATIN CAPITAL LETTER J 145 | 0xCB 0x004B # LATIN CAPITAL LETTER K 146 | 0xCC 0x004C # LATIN CAPITAL LETTER L 147 | 0xCD 0x004D # LATIN CAPITAL LETTER M 148 | 0xCE 0x004E # LATIN CAPITAL LETTER N 149 | 0xCF 0x004F # LATIN CAPITAL LETTER O 150 | 0xD0 0x0050 # LATIN CAPITAL LETTER P 151 | 0xD1 0x0051 # LATIN CAPITAL LETTER Q 152 | 0xD2 0x0052 # LATIN CAPITAL LETTER R 153 | 0xD3 0x0053 # LATIN CAPITAL LETTER S 154 | 0xD4 0x0054 # LATIN CAPITAL LETTER T 155 | 0xD5 0x0055 # LATIN CAPITAL LETTER U 156 | 0xD6 0x0056 # LATIN CAPITAL LETTER V 157 | 0xD7 0x0057 # LATIN CAPITAL LETTER W 158 | 0xD8 0x0058 # LATIN CAPITAL LETTER X 159 | 0xD9 0x0059 # LATIN CAPITAL LETTER Y 160 | 0xDA 0x005A # LATIN CAPITAL LETTER Z 161 | 0xDB 0x253C # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL 162 | 0xDC 0x1FB8C # LEFT HALF MEDIUM SHADE 163 | 0xDD 0x2502 # BOX DRAWINGS LIGHT VERTICAL 164 | 0xDE 0x1FB96 # INVERSE CHECKER BOARD FILL 165 | 0xDF 0x1FB98 # UPPER LEFT TO LOWER RIGHT FILL 166 | 0xE0 0x00A0 # NO-BREAK SPACE 167 | 0xE1 0x258C # LEFT HALF BLOCK 168 | 0xE2 0x2584 # LOWER HALF BLOCK 169 | 0xE3 0x2594 # UPPER ONE EIGHTH BLOCK 170 | 0xE4 0x2581 # LOWER ONE EIGHTH BLOCK 171 | 0xE5 0x258F # LEFT ONE EIGHTH BLOCK 172 | 0xE6 0x2592 # MEDIUM SHADE 173 | 0xE7 0x2595 # RIGHT ONE EIGHTH BLOCK 174 | 0xE8 0x1FB8F # LOWER HALF MEDIUM SHADE 175 | 0xE9 0x1FB99 # UPPER RIGHT TO LOWER LEFT FILL 176 | 0xEA 0x1FB87 # RIGHT ONE QUARTER BLOCK 177 | 0xEB 0x251C # BOX DRAWINGS LIGHT VERTICAL AND RIGHT 178 | 0xEC 0x2597 # QUADRANT LOWER RIGHT 179 | 0xED 0x2514 # BOX DRAWINGS LIGHT UP AND RIGHT 180 | 0xEE 0x2510 # BOX DRAWINGS LIGHT DOWN AND LEFT 181 | 0xEF 0x2582 # LOWER ONE QUARTER BLOCK 182 | 0xF0 0x250C # BOX DRAWINGS LIGHT DOWN AND RIGHT 183 | 0xF1 0x2534 # BOX DRAWINGS LIGHT UP AND HORIZONTAL 184 | 0xF2 0x252C # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL 185 | 0xF3 0x2524 # BOX DRAWINGS LIGHT VERTICAL AND LEFT 186 | 0xF4 0x258E # LEFT ONE QUARTER BLOCK 187 | 0xF5 0x258D # LEFT THREE EIGHTHS BLOCK 188 | 0xF6 0x1FB88 # RIGHT THREE EIGHTHS BLOCK 189 | 0xF7 0x1FB82 # UPPER ONE QUARTER BLOCK 190 | 0xF8 0x1FB83 # UPPER THREE EIGHTHS BLOCK 191 | 0xF9 0x2583 # LOWER THREE EIGHTHS BLOCK 192 | 0xFA 0x2713 # CHECK MARK 193 | 0xFB 0x2596 # QUADRANT LOWER LEFT 194 | 0xFC 0x259D # QUADRANT UPPER RIGHT 195 | 0xFD 0x2518 # BOX DRAWINGS LIGHT UP AND LEFT 196 | 0xFE 0x2598 # QUADRANT UPPER LEFT 197 | 0xFF 0x259A # QUADRANT UPPER LEFT AND LOWER RIGHT 198 | -------------------------------------------------------------------------------- /src/charset/C64IPRI.TXT: -------------------------------------------------------------------------------- 1 | # Name: Map from Commodore 64/128 (interchange) primary character set to Unicode 2 | # Date: 2018 April 20 3 | # Author: Rebecca Bettencourt 4 | 5 | 0x20 0x0020 # SPACE 6 | 0x21 0x0021 # EXCLAMATION MARK 7 | 0x22 0x0022 # QUOTATION MARK 8 | 0x23 0x0023 # NUMBER SIGN 9 | 0x24 0x0024 # DOLLAR SIGN 10 | 0x25 0x0025 # PERCENT SIGN 11 | 0x26 0x0026 # AMPERSAND 12 | 0x27 0x0027 # APOSTROPHE 13 | 0x28 0x0028 # LEFT PARENTHESIS 14 | 0x29 0x0029 # RIGHT PARENTHESIS 15 | 0x2A 0x002A # ASTERISK 16 | 0x2B 0x002B # PLUS SIGN 17 | 0x2C 0x002C # COMMA 18 | 0x2D 0x002D # HYPHEN-MINUS 19 | 0x2E 0x002E # FULL STOP 20 | 0x2F 0x002F # SOLIDUS 21 | 0x30 0x0030 # DIGIT ZERO 22 | 0x31 0x0031 # DIGIT ONE 23 | 0x32 0x0032 # DIGIT TWO 24 | 0x33 0x0033 # DIGIT THREE 25 | 0x34 0x0034 # DIGIT FOUR 26 | 0x35 0x0035 # DIGIT FIVE 27 | 0x36 0x0036 # DIGIT SIX 28 | 0x37 0x0037 # DIGIT SEVEN 29 | 0x38 0x0038 # DIGIT EIGHT 30 | 0x39 0x0039 # DIGIT NINE 31 | 0x3A 0x003A # COLON 32 | 0x3B 0x003B # SEMICOLON 33 | 0x3C 0x003C # LESS-THAN SIGN 34 | 0x3D 0x003D # EQUALS SIGN 35 | 0x3E 0x003E # GREATER-THAN SIGN 36 | 0x3F 0x003F # QUESTION MARK 37 | 0x40 0x0040 # COMMERCIAL AT 38 | 0x41 0x0041 # LATIN CAPITAL LETTER A 39 | 0x42 0x0042 # LATIN CAPITAL LETTER B 40 | 0x43 0x0043 # LATIN CAPITAL LETTER C 41 | 0x44 0x0044 # LATIN CAPITAL LETTER D 42 | 0x45 0x0045 # LATIN CAPITAL LETTER E 43 | 0x46 0x0046 # LATIN CAPITAL LETTER F 44 | 0x47 0x0047 # LATIN CAPITAL LETTER G 45 | 0x48 0x0048 # LATIN CAPITAL LETTER H 46 | 0x49 0x0049 # LATIN CAPITAL LETTER I 47 | 0x4A 0x004A # LATIN CAPITAL LETTER J 48 | 0x4B 0x004B # LATIN CAPITAL LETTER K 49 | 0x4C 0x004C # LATIN CAPITAL LETTER L 50 | 0x4D 0x004D # LATIN CAPITAL LETTER M 51 | 0x4E 0x004E # LATIN CAPITAL LETTER N 52 | 0x4F 0x004F # LATIN CAPITAL LETTER O 53 | 0x50 0x0050 # LATIN CAPITAL LETTER P 54 | 0x51 0x0051 # LATIN CAPITAL LETTER Q 55 | 0x52 0x0052 # LATIN CAPITAL LETTER R 56 | 0x53 0x0053 # LATIN CAPITAL LETTER S 57 | 0x54 0x0054 # LATIN CAPITAL LETTER T 58 | 0x55 0x0055 # LATIN CAPITAL LETTER U 59 | 0x56 0x0056 # LATIN CAPITAL LETTER V 60 | 0x57 0x0057 # LATIN CAPITAL LETTER W 61 | 0x58 0x0058 # LATIN CAPITAL LETTER X 62 | 0x59 0x0059 # LATIN CAPITAL LETTER Y 63 | 0x5A 0x005A # LATIN CAPITAL LETTER Z 64 | 0x5B 0x005B # LEFT SQUARE BRACKET 65 | 0x5C 0x00A3 # POUND SIGN 66 | 0x5D 0x005D # RIGHT SQUARE BRACKET 67 | 0x5E 0x2191 # UPWARDS ARROW 68 | 0x5F 0x2190 # LEFTWARDS ARROW 69 | 0x60 0x2500 # BOX DRAWINGS LIGHT HORIZONTAL 70 | 0x61 0x2660 # BLACK SPADE SUIT 71 | 0x62 0x1FB72 # VERTICAL ONE EIGHTH BLOCK-4 72 | 0x63 0x1FB78 # HORIZONTAL ONE EIGHTH BLOCK-4 73 | 0x64 0x1FB77 # HORIZONTAL ONE EIGHTH BLOCK-3 74 | 0x65 0x1FB76 # HORIZONTAL ONE EIGHTH BLOCK-2 75 | 0x66 0x1FB7A # HORIZONTAL ONE EIGHTH BLOCK-6 76 | 0x67 0x1FB71 # VERTICAL ONE EIGHTH BLOCK-3 77 | 0x68 0x1FB74 # VERTICAL ONE EIGHTH BLOCK-6 78 | 0x69 0x256E # BOX DRAWINGS LIGHT ARC DOWN AND LEFT 79 | 0x6A 0x2570 # BOX DRAWINGS LIGHT ARC UP AND RIGHT 80 | 0x6B 0x256F # BOX DRAWINGS LIGHT ARC UP AND LEFT 81 | 0x6C 0x1FB7C # LEFT AND LOWER ONE EIGHTH BLOCK 82 | 0x6D 0x2572 # BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT 83 | 0x6E 0x2571 # BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT 84 | 0x6F 0x1FB7D # LEFT AND UPPER ONE EIGHTH BLOCK 85 | 0x70 0x1FB7E # RIGHT AND UPPER ONE EIGHTH BLOCK 86 | 0x71 0x2022 # BULLET (or 0x25CF BLACK CIRCLE) 87 | 0x72 0x1FB7B # HORIZONTAL ONE EIGHTH BLOCK-7 88 | 0x73 0x2665 # BLACK HEART SUIT 89 | 0x74 0x1FB70 # VERTICAL ONE EIGHTH BLOCK-2 90 | 0x75 0x256D # BOX DRAWINGS LIGHT ARC DOWN AND RIGHT 91 | 0x76 0x2573 # BOX DRAWINGS LIGHT DIAGONAL CROSS 92 | 0x77 0x25CB # WHITE CIRCLE (or 0x25E6 WHITE BULLET) 93 | 0x78 0x2663 # BLACK CLUB SUIT 94 | 0x79 0x1FB75 # VERTICAL ONE EIGHTH BLOCK-7 95 | 0x7A 0x2666 # BLACK DIAMOND SUIT 96 | 0x7B 0x253C # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL 97 | 0x7C 0x1FB8C # LEFT HALF MEDIUM SHADE 98 | 0x7D 0x2502 # BOX DRAWINGS LIGHT VERTICAL 99 | 0x7E 0x03C0 # GREEK SMALL LETTER PI 100 | 0x7F 0x25E5 # BLACK UPPER RIGHT TRIANGLE 101 | 102 | 0xA0 0x00A0 # NO-BREAK SPACE 103 | 0xA1 0x258C # LEFT HALF BLOCK 104 | 0xA2 0x2584 # LOWER HALF BLOCK 105 | 0xA3 0x2594 # UPPER ONE EIGHTH BLOCK 106 | 0xA4 0x2581 # LOWER ONE EIGHTH BLOCK 107 | 0xA5 0x258F # LEFT ONE EIGHTH BLOCK 108 | 0xA6 0x2592 # MEDIUM SHADE 109 | 0xA7 0x2595 # RIGHT ONE EIGHTH BLOCK 110 | 0xA8 0x1FB8F # LOWER HALF MEDIUM SHADE 111 | 0xA9 0x25E4 # BLACK UPPER LEFT TRIANGLE 112 | 0xAA 0x1FB87 # RIGHT ONE QUARTER BLOCK 113 | 0xAB 0x251C # BOX DRAWINGS LIGHT VERTICAL AND RIGHT 114 | 0xAC 0x2597 # QUADRANT LOWER RIGHT 115 | 0xAD 0x2514 # BOX DRAWINGS LIGHT UP AND RIGHT 116 | 0xAE 0x2510 # BOX DRAWINGS LIGHT DOWN AND LEFT 117 | 0xAF 0x2582 # LOWER ONE QUARTER BLOCK 118 | 0xB0 0x250C # BOX DRAWINGS LIGHT DOWN AND RIGHT 119 | 0xB1 0x2534 # BOX DRAWINGS LIGHT UP AND HORIZONTAL 120 | 0xB2 0x252C # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL 121 | 0xB3 0x2524 # BOX DRAWINGS LIGHT VERTICAL AND LEFT 122 | 0xB4 0x258E # LEFT ONE QUARTER BLOCK 123 | 0xB5 0x258D # LEFT THREE EIGHTHS BLOCK 124 | 0xB6 0x1FB88 # RIGHT THREE EIGHTHS BLOCK 125 | 0xB7 0x1FB82 # UPPER ONE QUARTER BLOCK 126 | 0xB8 0x1FB83 # UPPER THREE EIGHTHS BLOCK 127 | 0xB9 0x2583 # LOWER THREE EIGHTHS BLOCK 128 | 0xBA 0x1FB7F # RIGHT AND LOWER ONE EIGHTH BLOCK 129 | 0xBB 0x2596 # QUADRANT LOWER LEFT 130 | 0xBC 0x259D # QUADRANT UPPER RIGHT 131 | 0xBD 0x2518 # BOX DRAWINGS LIGHT UP AND LEFT 132 | 0xBE 0x2598 # QUADRANT UPPER LEFT 133 | 0xBF 0x259A # QUADRANT UPPER LEFT AND LOWER RIGHT 134 | 0xC0 0x2500 # BOX DRAWINGS LIGHT HORIZONTAL 135 | 0xC1 0x2660 # BLACK SPADE SUIT 136 | 0xC2 0x1FB72 # VERTICAL ONE EIGHTH BLOCK-4 137 | 0xC3 0x1FB78 # HORIZONTAL ONE EIGHTH BLOCK-4 138 | 0xC4 0x1FB77 # HORIZONTAL ONE EIGHTH BLOCK-3 139 | 0xC5 0x1FB76 # HORIZONTAL ONE EIGHTH BLOCK-2 140 | 0xC6 0x1FB7A # HORIZONTAL ONE EIGHTH BLOCK-6 141 | 0xC7 0x1FB71 # VERTICAL ONE EIGHTH BLOCK-3 142 | 0xC8 0x1FB74 # VERTICAL ONE EIGHTH BLOCK-6 143 | 0xC9 0x256E # BOX DRAWINGS LIGHT ARC DOWN AND LEFT 144 | 0xCA 0x2570 # BOX DRAWINGS LIGHT ARC UP AND RIGHT 145 | 0xCB 0x256F # BOX DRAWINGS LIGHT ARC UP AND LEFT 146 | 0xCC 0x1FB7C # LEFT AND LOWER ONE EIGHTH BLOCK 147 | 0xCD 0x2572 # BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT 148 | 0xCE 0x2571 # BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT 149 | 0xCF 0x1FB7D # LEFT AND UPPER ONE EIGHTH BLOCK 150 | 0xD0 0x1FB7E # RIGHT AND UPPER ONE EIGHTH BLOCK 151 | 0xD1 0x2022 # BULLET (or 0x25CF BLACK CIRCLE) 152 | 0xD2 0x1FB7B # HORIZONTAL ONE EIGHTH BLOCK-7 153 | 0xD3 0x2665 # BLACK HEART SUIT 154 | 0xD4 0x1FB70 # VERTICAL ONE EIGHTH BLOCK-2 155 | 0xD5 0x256D # BOX DRAWINGS LIGHT ARC DOWN AND RIGHT 156 | 0xD6 0x2573 # BOX DRAWINGS LIGHT DIAGONAL CROSS 157 | 0xD7 0x25CB # WHITE CIRCLE (or 0x25E6 WHITE BULLET) 158 | 0xD8 0x2663 # BLACK CLUB SUIT 159 | 0xD9 0x1FB75 # VERTICAL ONE EIGHTH BLOCK-7 160 | 0xDA 0x2666 # BLACK DIAMOND SUIT 161 | 0xDB 0x253C # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL 162 | 0xDC 0x1FB8C # LEFT HALF MEDIUM SHADE 163 | 0xDD 0x2502 # BOX DRAWINGS LIGHT VERTICAL 164 | 0xDE 0x03C0 # GREEK SMALL LETTER PI 165 | 0xDF 0x25E5 # BLACK UPPER RIGHT TRIANGLE 166 | 0xE0 0x00A0 # NO-BREAK SPACE 167 | 0xE1 0x258C # LEFT HALF BLOCK 168 | 0xE2 0x2584 # LOWER HALF BLOCK 169 | 0xE3 0x2594 # UPPER ONE EIGHTH BLOCK 170 | 0xE4 0x2581 # LOWER ONE EIGHTH BLOCK 171 | 0xE5 0x258F # LEFT ONE EIGHTH BLOCK 172 | 0xE6 0x2592 # MEDIUM SHADE 173 | 0xE7 0x2595 # RIGHT ONE EIGHTH BLOCK 174 | 0xE8 0x1FB8F # LOWER HALF MEDIUM SHADE 175 | 0xE9 0x25E4 # BLACK UPPER LEFT TRIANGLE 176 | 0xEA 0x1FB87 # RIGHT ONE QUARTER BLOCK 177 | 0xEB 0x251C # BOX DRAWINGS LIGHT VERTICAL AND RIGHT 178 | 0xEC 0x2597 # QUADRANT LOWER RIGHT 179 | 0xED 0x2514 # BOX DRAWINGS LIGHT UP AND RIGHT 180 | 0xEE 0x2510 # BOX DRAWINGS LIGHT DOWN AND LEFT 181 | 0xEF 0x2582 # LOWER ONE QUARTER BLOCK 182 | 0xF0 0x250C # BOX DRAWINGS LIGHT DOWN AND RIGHT 183 | 0xF1 0x2534 # BOX DRAWINGS LIGHT UP AND HORIZONTAL 184 | 0xF2 0x252C # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL 185 | 0xF3 0x2524 # BOX DRAWINGS LIGHT VERTICAL AND LEFT 186 | 0xF4 0x258E # LEFT ONE QUARTER BLOCK 187 | 0xF5 0x258D # LEFT THREE EIGHTHS BLOCK 188 | 0xF6 0x1FB88 # RIGHT THREE EIGHTHS BLOCK 189 | 0xF7 0x1FB82 # UPPER ONE QUARTER BLOCK 190 | 0xF8 0x1FB83 # UPPER THREE EIGHTHS BLOCK 191 | 0xF9 0x2583 # LOWER THREE EIGHTHS BLOCK 192 | 0xFA 0x1FB7F # RIGHT AND LOWER ONE EIGHTH BLOCK 193 | 0xFB 0x2596 # QUADRANT LOWER LEFT 194 | 0xFC 0x259D # QUADRANT UPPER RIGHT 195 | 0xFD 0x2518 # BOX DRAWINGS LIGHT UP AND LEFT 196 | 0xFE 0x2598 # QUADRANT UPPER LEFT 197 | 0xFF 0x259A # QUADRANT UPPER LEFT AND LOWER RIGHT 198 | -------------------------------------------------------------------------------- /src/charset/all_charsets/sjgray/324242-01-german.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/sjgray/324242-01-german.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/sjgray/901439-08.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/sjgray/901439-08.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/sjgray/901447-08.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/sjgray/901447-08.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/sjgray/901447-10.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/sjgray/901447-10.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/sjgray/901447-12-japan.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/sjgray/901447-12-japan.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/sjgray/901447-14-swedish.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/sjgray/901447-14-swedish.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/sjgray/901640-01.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/sjgray/901640-01.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/sjgray/cbm-french.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/sjgray/cbm-french.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/sjgray/cbm-greek.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/sjgray/cbm-greek.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/sjgray/cbm-hungarian.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/sjgray/cbm-hungarian.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/sjgray/cbm-norwegian.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/sjgray/cbm-norwegian.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/sjgray/cbm-russian.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/sjgray/cbm-russian.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/sjgray/cbm-unknown-8096.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/sjgray/cbm-unknown-8096.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/c128/characters.390059-01.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/c128/characters.390059-01.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/c128/characters.danish-d.325175-02.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/c128/characters.danish-d.325175-02.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/c128/characters.danish.325175-01.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/c128/characters.danish.325175-01.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/c128/characters.french.325167-01.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/c128/characters.french.325167-01.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/c128/characters.german.315079-01.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/c128/characters.german.315079-01.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/c128/characters.ifb.325167-02.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/c128/characters.ifb.325167-02.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/c128/characters.norwegian.325078-02.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/c128/characters.norwegian.325078-02.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/c128/characters.norwegian.325178-01..bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/c128/characters.norwegian.325178-01..bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/c128/characters.spanish.325171-01.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/c128/characters.spanish.325171-01.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/c128/characters.swedish.325181-01.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/c128/characters.swedish.325181-01.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/c128/characters.swiss.325173-01D.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/c128/characters.swiss.325173-01D.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/c64/characters.325018-02.C2G007.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/c64/characters.325018-02.C2G007.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/c64/characters.325018-02.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/c64/characters.325018-02.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/c64/characters.325056-03.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/c64/characters.325056-03.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/c64/characters.901225-01-DK.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/c64/characters.901225-01-DK.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/c64/characters.901225-01.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/c64/characters.901225-01.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/c64/characters.906143-02.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/c64/characters.906143-02.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/c64/characters.turkish.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/c64/characters.turkish.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/char/c128.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/char/c128.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/char/c16-hungarian.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/char/c16-hungarian.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/char/c16.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/char/c16.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/char/c64-swedish.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/char/c64-swedish.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/char/c64-swedish2.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/char/c64-swedish2.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/char/c64-swedish3.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/char/c64-swedish3.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/char/c64-swedish4.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/char/c64-swedish4.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/char/c64.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/char/c64.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/char/c65-caff.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/char/c65-caff.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/char/pet-1.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/char/pet-1.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/char/pet-2.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/char/pet-2.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/char/pet-greek.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/char/pet-greek.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/char/pet-norwegian.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/char/pet-norwegian.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/char/pet-russian.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/char/pet-russian.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/char/pet-swedish.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/char/pet-swedish.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/char/superpet-swedish.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/char/superpet-swedish.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/char/superpet.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/char/superpet.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/char/vic20-german.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/char/vic20-german.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/char/vic20-japanese.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/char/vic20-japanese.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/char/vic20-norwegian.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/char/vic20-norwegian.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/char/vic20-swedish.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/char/vic20-swedish.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/char/vic20.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/char/vic20.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/lcd/lcd-char-rom-u16.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/lcd/lcd-char-rom-u16.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/pet/324242-10_chargen_din_uc5_8296.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/pet/324242-10_chargen_din_uc5_8296.rom -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/pet/characters-1.901447-08.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/pet/characters-1.901447-08.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/pet/characters-2.901447-10.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/pet/characters-2.901447-10.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/pet/characters-901447-german8296d.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/pet/characters-901447-german8296d.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/pet/characters-french.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/pet/characters-french.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/pet/characters-german.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/pet/characters-german.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/pet/characters-german2.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/pet/characters-german2.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/pet/characters-japan.901447-12.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/pet/characters-japan.901447-12.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/pet/characters-norwegian.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/pet/characters-norwegian.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/pet/characters-swedish.901447-14.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/pet/characters-swedish.901447-14.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/pet/characters.901640-01.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/pet/characters.901640-01.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/pet/characters.swedish.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/pet/characters.swedish.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/vic-20/characters.901460-02.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/vic-20/characters.901460-02.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/vic-20/characters.901460-03.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/vic-20/characters.901460-03.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/vic-20/characters.DK_901460-03.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/vic-20/characters.DK_901460-03.bin -------------------------------------------------------------------------------- /src/charset/all_charsets/zimmers/vic-20/characters.NecP22101-207.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/all_charsets/zimmers/vic-20/characters.NecP22101-207.bin -------------------------------------------------------------------------------- /src/charset/bin/c128_danish_lower.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c128_danish_lower.bin -------------------------------------------------------------------------------- /src/charset/bin/c128_danish_upper.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c128_danish_upper.bin -------------------------------------------------------------------------------- /src/charset/bin/c128_french_lower.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c128_french_lower.bin -------------------------------------------------------------------------------- /src/charset/bin/c128_french_lower_alt.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c128_french_lower_alt.bin -------------------------------------------------------------------------------- /src/charset/bin/c128_french_upper.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c128_french_upper.bin -------------------------------------------------------------------------------- /src/charset/bin/c128_french_upper_alt.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c128_french_upper_alt.bin -------------------------------------------------------------------------------- /src/charset/bin/c128_german_lower.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c128_german_lower.bin -------------------------------------------------------------------------------- /src/charset/bin/c128_german_upper.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c128_german_upper.bin -------------------------------------------------------------------------------- /src/charset/bin/c128_norwegian_lower.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c128_norwegian_lower.bin -------------------------------------------------------------------------------- /src/charset/bin/c128_norwegian_lower_alt.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c128_norwegian_lower_alt.bin -------------------------------------------------------------------------------- /src/charset/bin/c128_norwegian_upper.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c128_norwegian_upper.bin -------------------------------------------------------------------------------- /src/charset/bin/c128_norwegian_upper_alt-bugs.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c128_norwegian_upper_alt-bugs.bin -------------------------------------------------------------------------------- /src/charset/bin/c128_norwegian_upper_alt.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c128_norwegian_upper_alt.bin -------------------------------------------------------------------------------- /src/charset/bin/c128_norwegian_upper_bugs.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c128_norwegian_upper_bugs.bin -------------------------------------------------------------------------------- /src/charset/bin/c128_spanish_lower.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c128_spanish_lower.bin -------------------------------------------------------------------------------- /src/charset/bin/c128_spanish_lower_alt.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c128_spanish_lower_alt.bin -------------------------------------------------------------------------------- /src/charset/bin/c128_spanish_upper.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c128_spanish_upper.bin -------------------------------------------------------------------------------- /src/charset/bin/c128_spanish_upper_alt.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c128_spanish_upper_alt.bin -------------------------------------------------------------------------------- /src/charset/bin/c128_swiss_lower.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c128_swiss_lower.bin -------------------------------------------------------------------------------- /src/charset/bin/c128_swiss_lower_alt.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c128_swiss_lower_alt.bin -------------------------------------------------------------------------------- /src/charset/bin/c128_swiss_upper.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c128_swiss_upper.bin -------------------------------------------------------------------------------- /src/charset/bin/c128_swiss_upper_alt.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c128_swiss_upper_alt.bin -------------------------------------------------------------------------------- /src/charset/bin/c128_us_lower.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c128_us_lower.bin -------------------------------------------------------------------------------- /src/charset/bin/c64_danish_lower.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c64_danish_lower.bin -------------------------------------------------------------------------------- /src/charset/bin/c64_danish_lower_alt.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c64_danish_lower_alt.bin -------------------------------------------------------------------------------- /src/charset/bin/c64_danish_upper.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c64_danish_upper.bin -------------------------------------------------------------------------------- /src/charset/bin/c64_danish_upper_alt.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c64_danish_upper_alt.bin -------------------------------------------------------------------------------- /src/charset/bin/c64_japanese_upper-kanji.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c64_japanese_upper-kanji.bin -------------------------------------------------------------------------------- /src/charset/bin/c64_japanese_upper.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c64_japanese_upper.bin -------------------------------------------------------------------------------- /src/charset/bin/c64_spanish_lower.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c64_spanish_lower.bin -------------------------------------------------------------------------------- /src/charset/bin/c64_spanish_upper.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c64_spanish_upper.bin -------------------------------------------------------------------------------- /src/charset/bin/c64_swedish_lower.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c64_swedish_lower.bin -------------------------------------------------------------------------------- /src/charset/bin/c64_swedish_lower_2.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c64_swedish_lower_2.bin -------------------------------------------------------------------------------- /src/charset/bin/c64_swedish_lower_2alt.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c64_swedish_lower_2alt.bin -------------------------------------------------------------------------------- /src/charset/bin/c64_swedish_lower_alt.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c64_swedish_lower_alt.bin -------------------------------------------------------------------------------- /src/charset/bin/c64_swedish_upper.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c64_swedish_upper.bin -------------------------------------------------------------------------------- /src/charset/bin/c64_swedish_upper_alt.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c64_swedish_upper_alt.bin -------------------------------------------------------------------------------- /src/charset/bin/c64_swedish_upper_alt2.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c64_swedish_upper_alt2.bin -------------------------------------------------------------------------------- /src/charset/bin/c64_swedish_upper_bugs.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c64_swedish_upper_bugs.bin -------------------------------------------------------------------------------- /src/charset/bin/c64_turkish_lower.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c64_turkish_lower.bin -------------------------------------------------------------------------------- /src/charset/bin/c64_turkish_upper.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c64_turkish_upper.bin -------------------------------------------------------------------------------- /src/charset/bin/c64_us_lower.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c64_us_lower.bin -------------------------------------------------------------------------------- /src/charset/bin/c64_us_lower_alt.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c64_us_lower_alt.bin -------------------------------------------------------------------------------- /src/charset/bin/c64_us_lower_buggy1.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c64_us_lower_buggy1.bin -------------------------------------------------------------------------------- /src/charset/bin/c64_us_upper.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c64_us_upper.bin -------------------------------------------------------------------------------- /src/charset/bin/c64_us_upper_alt.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c64_us_upper_alt.bin -------------------------------------------------------------------------------- /src/charset/bin/c64_us_upper_buggy1.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c64_us_upper_buggy1.bin -------------------------------------------------------------------------------- /src/charset/bin/c64_us_upper_buggy2.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/c64_us_upper_buggy2.bin -------------------------------------------------------------------------------- /src/charset/bin/lcd_us_lower.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/lcd_us_lower.bin -------------------------------------------------------------------------------- /src/charset/bin/lcd_us_upper.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/lcd_us_upper.bin -------------------------------------------------------------------------------- /src/charset/bin/pet_french_lower.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/pet_french_lower.bin -------------------------------------------------------------------------------- /src/charset/bin/pet_french_upper.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/pet_french_upper.bin -------------------------------------------------------------------------------- /src/charset/bin/pet_german_lower.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/pet_german_lower.bin -------------------------------------------------------------------------------- /src/charset/bin/pet_german_lower_alt.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/pet_german_lower_alt.bin -------------------------------------------------------------------------------- /src/charset/bin/pet_german_lower_alt2.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/pet_german_lower_alt2.bin -------------------------------------------------------------------------------- /src/charset/bin/pet_german_upper.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/pet_german_upper.bin -------------------------------------------------------------------------------- /src/charset/bin/pet_greek_lower.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/pet_greek_lower.bin -------------------------------------------------------------------------------- /src/charset/bin/pet_greek_upper.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/pet_greek_upper.bin -------------------------------------------------------------------------------- /src/charset/bin/pet_hungarian_lower.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/pet_hungarian_lower.bin -------------------------------------------------------------------------------- /src/charset/bin/pet_hungarian_upper.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/pet_hungarian_upper.bin -------------------------------------------------------------------------------- /src/charset/bin/pet_japanese_upper.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/pet_japanese_upper.bin -------------------------------------------------------------------------------- /src/charset/bin/pet_japanese_upper_bug.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/pet_japanese_upper_bug.bin -------------------------------------------------------------------------------- /src/charset/bin/pet_norwegian_lower.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/pet_norwegian_lower.bin -------------------------------------------------------------------------------- /src/charset/bin/pet_norwegian_upper.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/pet_norwegian_upper.bin -------------------------------------------------------------------------------- /src/charset/bin/pet_russian_upper.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/pet_russian_upper.bin -------------------------------------------------------------------------------- /src/charset/bin/pet_swedish_lower.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/pet_swedish_lower.bin -------------------------------------------------------------------------------- /src/charset/bin/pet_swedish_upper.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/pet_swedish_upper.bin -------------------------------------------------------------------------------- /src/charset/bin/pet_us_lower.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/pet_us_lower.bin -------------------------------------------------------------------------------- /src/charset/bin/pet_us_lower_swapped.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/pet_us_lower_swapped.bin -------------------------------------------------------------------------------- /src/charset/bin/pet_us_upper.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/pet_us_upper.bin -------------------------------------------------------------------------------- /src/charset/bin/superpet_swedish_ascii.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/superpet_swedish_ascii.bin -------------------------------------------------------------------------------- /src/charset/bin/superpet_us_apl.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/superpet_us_apl.bin -------------------------------------------------------------------------------- /src/charset/bin/superpet_us_ascii.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/superpet_us_ascii.bin -------------------------------------------------------------------------------- /src/charset/bin/ted_hungarian_lower.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/ted_hungarian_lower.bin -------------------------------------------------------------------------------- /src/charset/bin/ted_hungarian_upper.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/ted_hungarian_upper.bin -------------------------------------------------------------------------------- /src/charset/bin/ted_us_lower.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/ted_us_lower.bin -------------------------------------------------------------------------------- /src/charset/bin/vic-20_danish_lower.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/vic-20_danish_lower.bin -------------------------------------------------------------------------------- /src/charset/bin/vic-20_danish_upper.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/vic-20_danish_upper.bin -------------------------------------------------------------------------------- /src/charset/bin/vic-20_japanese_upper-kanji.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/vic-20_japanese_upper-kanji.bin -------------------------------------------------------------------------------- /src/charset/bin/vic-20_swedish_lower_alt.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/vic-20_swedish_lower_alt.bin -------------------------------------------------------------------------------- /src/charset/bin/vic-20_us_lower.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/vic-20_us_lower.bin -------------------------------------------------------------------------------- /src/charset/bin/vic-20_us_upper.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin/vic-20_us_upper.bin -------------------------------------------------------------------------------- /src/charset/bin16/characters.324867-02.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin16/characters.324867-02.bin -------------------------------------------------------------------------------- /src/charset/bin16/characters.901232-01.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin16/characters.901232-01.bin -------------------------------------------------------------------------------- /src/charset/bin16/characters.901232-02.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin16/characters.901232-02.bin -------------------------------------------------------------------------------- /src/charset/bin16/characters.901233-03.swedish.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin16/characters.901233-03.swedish.bin -------------------------------------------------------------------------------- /src/charset/bin16f/characters-hungarian.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin16f/characters-hungarian.bin -------------------------------------------------------------------------------- /src/charset/bin16f/characters.901237-01.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/bin16f/characters.901237-01.bin -------------------------------------------------------------------------------- /src/charset/chargen: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mist64/c64ref/6a7b500416e42ebbee37e53a60505cb5ce873bf5/src/charset/chargen -------------------------------------------------------------------------------- /src/charset/charset.js: -------------------------------------------------------------------------------- 1 | function svgPathFromBin(bin) { 2 | svg = ""; 3 | for (var y = 0; y < 256 * 8; y++) { 4 | ty = y & 7; 5 | byte = bin[y & 0x3ff]; 6 | if (y & (0x80 << 3)) { 7 | byte ^= 0xff; 8 | } 9 | is_first = true; 10 | prev = -1; 11 | count = 1; 12 | for (x = 0; x < 8; x++) { 13 | tx = y & ~7 | x; 14 | bit = (byte >> (7-x)) & 1; 15 | if (bit == prev) { 16 | count++; 17 | } else { 18 | if (prev == 1) { 19 | svg += "M" + (tx - count) + " " + ty + "h" + count; 20 | } 21 | prev = bit; 22 | count = 1; 23 | } 24 | } 25 | if (prev == 1) { 26 | svg += "M" + (tx - count + 1) + " " + ty + "h" + count; 27 | } 28 | } 29 | return svg; 30 | } 31 | 32 | function svgFromCharBin(bin, scale, fgcolor, bgcolor) { 33 | fgcolor = fgcolor.replace("#", "%23"); 34 | bgcolor = bgcolor.replace("#", "%23"); 35 | return ""; 36 | } 37 | -------------------------------------------------------------------------------- /src/charset/charset2png.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import sys 4 | from PIL import Image, ImageDraw 5 | 6 | if len(sys.argv) < 2: 7 | print("Usage: {} ".format(sys.argv[0])) 8 | exit(1) 9 | 10 | for filename_in in sys.argv[1:]: 11 | if filename_in[-4:] == '.bin' or filename_in[-4:] == '.rom': 12 | filename_base = filename_in[:-4] 13 | else: 14 | filename_base = filename_in 15 | 16 | print("Reading {}".format(filename_in)) 17 | charset = open(filename_in, "rb").read() 18 | 19 | start_offset = 0 20 | index = 0 21 | 22 | while start_offset < len(charset): 23 | img = Image.new('1', (16 * 8, 8 * 8), color = 'white') 24 | pixels = img.load() 25 | for c in range(0, 128): 26 | for y in range(0, 8): 27 | for x in range(0, 8): 28 | if charset[start_offset + ((c << 3) | y)] & (1 << (7-x)) > 0: 29 | pixels[((c & 15) * 8) | x, (c >> 4) * 8 | y] = 0 30 | 31 | filename_out = filename_base + '_{}.png'.format(index) 32 | print("Writing {}".format(filename_out)) 33 | img.save(filename_out) 34 | 35 | start_offset += 1024 36 | index += 1 37 | 38 | 39 | -------------------------------------------------------------------------------- /src/charset/control_codes_c128.txt: -------------------------------------------------------------------------------- 1 | 00 2 | 01 3 | 02 UNDERLINE_ON 4 | 03 STOP 5 | 04 6 | 05 COL_WHITE 7 | 06 8 | 07 BELL_TONE 9 | 08 DIS_CASE_SWITCH 10 | 09 ENA_CASE_SWITCH TAB 11 | 0A LINE_FEED 12 | 0B ENA_MODE_SWITCH 13 | 0C DIS_MODE_SWITCH 14 | 0D RETURN 15 | 0E LOWER_CASE 16 | 0F FLASH_ON 17 | 10 18 | 11 CRSR_DOWN 19 | 12 RVS_ON 20 | 13 CRSR_HOME 21 | 14 DEL 22 | 15 23 | 16 24 | 17 25 | 18 TAB_SET_CLR 26 | 19 27 | 1A 28 | 1B ESC 29 | 1C COL_RED 30 | 1D CRSR_RIGHT 31 | 1E COL_GREEN 32 | 1F COL_BLUE 33 | 34 | 80 35 | 81 COL_DARK_PURPLE 36 | 82 UNDERLINE_OFF 37 | 83 RUN 38 | 84 39 | 85 KEY_F1 40 | 86 KEY_F3 41 | 87 KEY_F5 42 | 88 KEY_F7 43 | 89 KEY_F2 44 | 8A KEY_F4 45 | 8B KEY_F6 46 | 8C KEY_F8 47 | 8D SHIFT_RETURN 48 | 8E UPPER_CASE 49 | 8F FLASH_OFF 50 | 90 COL_BLACK 51 | 91 CRSR_UP 52 | 92 RVS_OFF 53 | 93 CLEAR 54 | 94 INST 55 | 95 COL_DARK_YELLOW 56 | 96 COL_LIGHT_RED 57 | 97 COL_DARK_CYAN 58 | 98 COL_MEDIUM_GRAY 59 | 99 COL_LIGHT_GREEN 60 | 9A COL_LIGHT_BLUE 61 | 9B COL_LIGHT_GRAY 62 | 9C COL_PURPLE 63 | 9D CRSR_LEFT 64 | 9E COL_YELLOW 65 | 9F COL_LIGHT_CYAN 66 | 67 | -------------------------------------------------------------------------------- /src/charset/control_codes_c64.txt: -------------------------------------------------------------------------------- 1 | 00 2 | 01 3 | 02 4 | 03 STOP 5 | 04 6 | 05 COL_WHITE 7 | 06 8 | 07 9 | 08 DIS_CASE_SWITCH 10 | 09 ENA_CASE_SWITCH 11 | 0A 12 | 0B 13 | 0C 14 | 0D RETURN 15 | 0E LOWER_CASE 16 | 0F 17 | 10 18 | 11 CRSR_DOWN 19 | 12 RVS_ON 20 | 13 CRSR_HOME 21 | 14 DEL 22 | 15 23 | 16 24 | 17 25 | 18 26 | 19 27 | 1A 28 | 1B 29 | 1C COL_RED 30 | 1D CRSR_RIGHT 31 | 1E COL_GREEN 32 | 1F COL_BLUE 33 | 34 | 80 35 | 81 COL_ORANGE 36 | 82 37 | 83 RUN 38 | 84 39 | 85 KEY_F1 40 | 86 KEY_F3 41 | 87 KEY_F5 42 | 88 KEY_F7 43 | 89 KEY_F2 44 | 8A KEY_F4 45 | 8B KEY_F6 46 | 8C KEY_F8 47 | 8D SHIFT_RETURN 48 | 8E UPPER_CASE 49 | 8F 50 | 90 COL_BLACK 51 | 91 CRSR_UP 52 | 92 RVS_OFF 53 | 93 CLEAR 54 | 94 INST 55 | 95 COL_BROWN 56 | 96 COL_LIGHT_RED 57 | 97 COL_DARK_GRAY 58 | 98 COL_MEDIUM_GRAY 59 | 99 COL_LIGHT_GREEN 60 | 9A COL_LIGHT_BLUE 61 | 9B COL_LIGHT_GRAY 62 | 9C COL_PURPLE 63 | 9D CRSR_LEFT 64 | 9E COL_YELLOW 65 | 9F COL_CYAN 66 | -------------------------------------------------------------------------------- /src/charset/control_codes_c65.txt: -------------------------------------------------------------------------------- 1 | 00 2 | 01 3 | 02 UNDERLINE_ON 4 | 03 STOP 5 | 04 6 | 05 COL_WHITE 7 | 06 8 | 07 BELL_TONE 9 | 08 10 | 09 TAB 11 | 0A LINE_FEED 12 | 0B DIS_CASE_SWITCH 13 | 0C ENA_CASE_SWITCH 14 | 0D RETURN 15 | 0E LOWER_CASE 16 | 0F FLASH_ON 17 | 10 KEY_F9 18 | 11 CRSR_DOWN 19 | 12 RVS_ON 20 | 13 CRSR_HOME 21 | 14 DEL 22 | 15 KEY_F10 BACKUP_WORD 23 | 16 KEY_F11 24 | 17 KEY_F12 ADVANCE_WORD 25 | 18 TAB_SET_CLR 26 | 19 KEY_F13 27 | 1A KEY_F14 BACKUP_TAB 28 | 1B ESC 29 | 1C COL_RED 30 | 1D CRSR_RIGHT 31 | 1E COL_GREEN 32 | 1F COL_BLUE 33 | 34 | 80 35 | 81 COL_ORANGE 36 | 82 UNDERLINE_OFF 37 | 83 RUN 38 | 84 HELP 39 | 85 KEY_F1 40 | 86 KEY_F3 41 | 87 KEY_F5 42 | 88 KEY_F7 43 | 89 KEY_F2 44 | 8A KEY_F4 45 | 8B KEY_F6 46 | 8C KEY_F8 47 | 8D SHIFT_RETURN 48 | 8E UPPER_CASE 49 | 8F FLASH_OFF 50 | 90 COL_BLACK 51 | 91 CRSR_UP 52 | 92 RVS_OFF 53 | 93 CLEAR 54 | 94 INST 55 | 95 COL_BROWN 56 | 96 COL_LIGHT_RED 57 | 97 COL_DARK_GRAY 58 | 98 COL_MEDIUM_GRAY 59 | 99 COL_LIGHT_GREEN 60 | 9A COL_LIGHT_BLUE 61 | 9B COL_LIGHT_GRAY 62 | 9C COL_PURPLE 63 | 9D CRSR_LEFT 64 | 9E COL_YELLOW 65 | 9F COL_CYAN 66 | -------------------------------------------------------------------------------- /src/charset/control_codes_cbm2.txt: -------------------------------------------------------------------------------- 1 | 00 2 | 01 3 | 02 4 | 03 STOP 5 | 04 CE 6 | 05 7 | 06 8 | 07 BELL_TONE 9 | 08 10 | 09 TAB 11 | 0A 12 | 0B 13 | 0C 14 | 0D RETURN 15 | 0E LOWER_CASE 16 | 0F WINDOW_TOP 17 | 10 18 | 11 CRSR_DOWN 19 | 12 RVS_ON 20 | 13 CRSR_HOME 21 | 14 DEL 22 | 15 23 | 16 24 | 17 25 | 18 26 | 19 27 | 1A 28 | 1B ESC 29 | 1C 30 | 1D CRSR_RIGHT 31 | 1E 32 | 1F 33 | 34 | 80 35 | 81 36 | 82 37 | 83 RUN 38 | 84 SHIFT_CE 39 | 85 40 | 86 41 | 87 42 | 88 43 | 89 TAB 44 | 8A 45 | 8B 46 | 8C 47 | 8D SHIFT_RETURN 48 | 8E UPPER_CASE 49 | 8F WINDOW_BOTTOM 50 | 90 51 | 91 CRSR_UP 52 | 92 RVS_OFF 53 | 93 CLEAR 54 | 94 INST 55 | 95 56 | 96 57 | 97 58 | 98 59 | 99 60 | 9A 61 | 9B 62 | 9C 63 | 9D CRSR_LEFT 64 | 9E 65 | 9F 66 | 67 | -------------------------------------------------------------------------------- /src/charset/control_codes_pet-b.txt: -------------------------------------------------------------------------------- 1 | 00 2 | 01 3 | 02 4 | 03 STOP 5 | 04 6 | 05 7 | 06 8 | 07 BELL_TONE 9 | 08 10 | 09 TAB 11 | 0A 12 | 0B 13 | 0C 14 | 0D RETURN 15 | 0E 16 | 0F WINDOW_TOP 17 | 10 18 | 11 CRSR_DOWN 19 | 12 RVS_ON 20 | 13 CRSR_HOME 21 | 14 DEL 22 | 15 INSERT_LINE 23 | 16 ERASE_TO_END 24 | 17 25 | 18 26 | 19 SCROLL_UP 27 | 1A 28 | 1B ESC 29 | 1C 30 | 1D CRSR_RIGHT 31 | 1E 32 | 1F 33 | 34 | 80 35 | 81 36 | 82 37 | 83 RUN 38 | 84 39 | 85 40 | 86 41 | 87 42 | 88 43 | 89 SET_TAB 44 | 8A 45 | 8B 46 | 8C 47 | 8D SHIFT_RETURN 48 | 8E 49 | 8F WINDOW_BOTTOM 50 | 90 51 | 91 CRSR_UP 52 | 92 RVS_OFF 53 | 93 CLEAR 54 | 94 INST 55 | 95 DEL_LINE 56 | 96 ERASE_TO_BEGIN 57 | 97 58 | 98 59 | 99 SCROLL_DOWN 60 | 9A 61 | 9B 62 | 9C 63 | 9D CRSR_LEFT 64 | 9E 65 | 9F 66 | -------------------------------------------------------------------------------- /src/charset/control_codes_pet-n.txt: -------------------------------------------------------------------------------- 1 | 00 2 | 01 3 | 02 4 | 03 STOP 5 | 04 6 | 05 7 | 06 8 | 07 9 | 08 10 | 09 11 | 0A 12 | 0B 13 | 0C 14 | 0D RETURN 15 | 0E 16 | 0F 17 | 10 18 | 11 CRSR_DOWN 19 | 12 RVS_ON 20 | 13 CRSR_HOME 21 | 14 DEL 22 | 15 23 | 16 24 | 17 25 | 18 26 | 19 27 | 1A 28 | 1B 29 | 1C 30 | 1D CRSR_RIGHT 31 | 1E 32 | 1F 33 | 34 | 80 35 | 81 36 | 82 37 | 83 RUN 38 | 84 39 | 85 40 | 86 41 | 87 42 | 88 43 | 89 44 | 8A 45 | 8B 46 | 8C 47 | 8D SHIFT_RETURN 48 | 8E 49 | 8F 50 | 90 51 | 91 CRSR_UP 52 | 92 RVS_OFF 53 | 93 CLEAR 54 | 94 INST 55 | 95 56 | 96 57 | 97 58 | 98 59 | 99 60 | 9A 61 | 9B 62 | 9C 63 | 9D CRSR_LEFT 64 | 9E 65 | 9F 66 | -------------------------------------------------------------------------------- /src/charset/control_codes_ted.txt: -------------------------------------------------------------------------------- 1 | 00 2 | 01 3 | 02 4 | 03 STOP 5 | 04 6 | 05 COL_WHITE 7 | 06 8 | 07 9 | 08 DIS_CASE_SWITCH 10 | 09 ENA_CASE_SWITCH 11 | 0A 12 | 0B 13 | 0C 14 | 0D RETURN 15 | 0E LOWER_CASE 16 | 0F 17 | 10 18 | 11 CRSR_DOWN 19 | 12 RVS_ON 20 | 13 CRSR_HOME 21 | 14 DEL 22 | 15 23 | 16 24 | 17 25 | 18 26 | 19 27 | 1A 28 | 1B 29 | 1C COL_RED 30 | 1D CRSR_RIGHT 31 | 1E COL_GREEN 32 | 1F COL_BLUE 33 | 34 | 80 35 | 81 COL_ORANGE 36 | 82 FLASH_ON 37 | 83 RUN 38 | 84 FLASH_OFF 39 | 85 KEY_F1 40 | 86 KEY_F3 41 | 87 KEY_F5 42 | 88 KEY_F7 43 | 89 KEY_F2 44 | 8A KEY_F4 45 | 8B KEY_F6 46 | 8C KEY_F8 47 | 8D SHIFT_RETURN 48 | 8E UPPER_CASE 49 | 8F 50 | 90 COL_BLACK 51 | 91 CRSR_UP 52 | 92 RVS_OFF 53 | 93 CLEAR 54 | 94 INST 55 | 95 COL_BROWN 56 | 96 COL_YELLOW_GREEN 57 | 97 COL_PINK 58 | 98 COL_BLUE_GREEN 59 | 99 COL_LIGHT_BLUE 60 | 9A COL_DARK_BLUE 61 | 9B COL_LIGHT_GRN 62 | 9C COL_PURPLE 63 | 9D CRSR_LEFT 64 | 9E COL_YELLOW 65 | 9F COL_CYAN 66 | -------------------------------------------------------------------------------- /src/charset/control_codes_vic-20.txt: -------------------------------------------------------------------------------- 1 | 00 2 | 01 3 | 02 4 | 03 STOP 5 | 04 6 | 05 COL_WHITE 7 | 06 8 | 07 9 | 08 10 | 09 11 | 0A 12 | 0B 13 | 0C 14 | 0D RETURN 15 | 0E LOWER_CASE 16 | 0F 17 | 10 18 | 11 CRSR_DOWN 19 | 12 RVS_ON 20 | 13 CRSR_HOME 21 | 14 DEL 22 | 15 23 | 16 24 | 17 25 | 18 26 | 19 27 | 1A 28 | 1B 29 | 1C COL_RED 30 | 1D CRSR_RIGHT 31 | 1E COL_GREEN 32 | 1F COL_BLUE 33 | 34 | 80 35 | 81 36 | 82 37 | 83 RUN 38 | 84 39 | 85 KEY_F1 40 | 86 KEY_F3 41 | 87 KEY_F5 42 | 88 KEY_F7 43 | 89 KEY_F2 44 | 8A KEY_F4 45 | 8B KEY_F6 46 | 8C KEY_F8 47 | 8D SHIFT_RETURN 48 | 8E UPPER_CASE 49 | 8F 50 | 90 COL_BLACK 51 | 91 CRSR_UP 52 | 92 RVS_OFF 53 | 93 CLEAR 54 | 94 INST 55 | 95 56 | 96 57 | 97 58 | 98 59 | 99 60 | 9A 61 | 9B 62 | 9C COL_PURPLE 63 | 9D CRSR_LEFT 64 | 9E COL_YELLOW 65 | 9F COL_CYAN 66 | -------------------------------------------------------------------------------- /src/charset/keyboard_c128.txt: -------------------------------------------------------------------------------- 1 | layout +---+---+---+---+ +---+---+---+---+ +---+---+---+---+ +---+---+---+---+ 2 | layout |48 |43 |50 |59 | |40 |4B |5A |57 | |53 |54 |55 |56 | |04 |05 |06 |03 | 3 | layout +---+---+---+---+ +---+---+---+---+ +---+---+---+---+ +---+---+---+---+ 4 | layout 5 | layout +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+ 6 | layout |39 |38 |3B |08 |0B |10 |13 |18 |1B |20 |23 |28 |2B |30 |33 |00 | |46 |41 |4E |49 | 7 | layout +---+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+ +---+---+---+---+ 8 | layout | 3A |3E |09 |0E |11 |16 |19 |1E |21 |26 |29 |2E |31 |36 | 58 | |45 |42 |4D |4A | 9 | layout +---+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-----+ +---+---+---+---+ 10 | layout |3F |0F |0A |0D |12 |15 |1A |1D |22 |25 |2A |2D |32 |35 | 01 | |47 |44 |4F |4C | 11 | layout +---+---+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+---+---+ +---+---+---+ | 12 | layout |3D | 0F |0C |17 |14 |1F |1C |27 |24 |2F |2C |37 | 34 |07 |02 | | 51 |52 | | 13 | layout +---+-----+---+---+---+---+---+---+---+---+---+---+-----+---+---+ +-------+---+---+ 14 | layout | 3C | 15 | layout +-----------------------------------+ 16 | 17 | cap DEL RETURN ←CRSR→ f7 f1 f3 f5 ↑CRSR↓ 18 | cap 3 W A 4 Z S E L.SHIFT 19 | cap 5 R D 6 C F T X 20 | cap 7 Y G 8 B H U V 21 | cap 9 I J 0 M K O N 22 | cap + P L - . : @ , 23 | cap £ * ; HOME R.SHIFT = ↑ / 24 | cap 1 ← CTRL 2 SPACE C= Q STOP 25 | cap HELP [8] [5] TAB [2] [4] [7] [1] 26 | cap ESC [+] [-] LINE_FEED [ENTER] [6] [9] [3] 27 | cap ALT [0] [.] CRSR↑ CRSR↓ CRSR← CRSR→ NO_SCROLL 28 | # keys that don't actually produce a scancode 29 | capx RESTORE 30 | capx CAPS_LOCK 31 | capx 40/80_DISPLAY 32 | 33 | mod 0F shift # left 34 | mod 34 shift # right 35 | mod 3A ctrl 36 | mod 3D cbm 37 | mod 50 alt 38 | 39 | regular 14 0D 1D 88 85 86 87 11 40 | regular 33 57 41 34 5A 53 45 01 41 | regular 35 52 44 36 43 46 54 58 42 | regular 37 59 47 38 42 48 55 56 43 | regular 39 49 4A 30 4D 4B 4F 4E 44 | regular 2B 50 4C 2D 2E 3A 40 2C 45 | regular 5C 2A 3B 13 01 3D 5E 2F 46 | regular 31 5F 04 32 20 02 51 03 47 | regular 84 38 35 09 32 34 37 31 48 | regular 1B 2B 2D 0A 0D 36 39 33 49 | regular 08 30 2E 91 11 9D 1D FF 50 | 51 | shift 94 8D 9D 8C 89 8A 8B 91 52 | shift 23 D7 C1 24 DA D3 C5 01 53 | shift 25 D2 C4 26 C3 C6 D4 D8 54 | shift 27 D9 C7 28 C2 C8 D5 D6 55 | shift 29 C9 CA 30 CD CB CF CE 56 | shift DB D0 CC DD 3E 5B BA 3C 57 | shift A9 C0 5D 93 01 3D DE 3F 58 | shift 21 5F 04 22 A0 02 D1 83 59 | shift 84 38 35 18 32 34 37 31 60 | shift 1B 2B 2D 0A 8D 36 39 33 61 | shift 08 30 2E 91 11 9D 1D FF 62 | 63 | cbm 94 8D 9D 8C 89 8A 8B 91 64 | cbm 96 B3 B0 97 AD AE B1 01 65 | cbm 98 B2 AC 99 BC BB A3 BD 66 | cbm 9A B7 A5 9B BF B4 B8 BE 67 | cbm 29 A2 B5 30 A7 A1 B9 AA 68 | cbm A6 AF B6 DC 3E 5B A4 3C 69 | cbm A8 DF 5D 93 01 3D DE 3F 70 | cbm 81 5F 04 95 A0 02 AB 03 71 | cbm 84 38 35 18 32 34 37 31 72 | cbm 1B 2B 2D 0A 8D 36 39 33 73 | cbm 08 30 2E 91 11 9D 1D FF 74 | 75 | ctrl FF FF FF FF FF FF FF FF 76 | ctrl 1C 17 01 9F 1A 13 05 FF 77 | ctrl 9C 12 04 1E 03 06 14 18 78 | ctrl 1F 19 07 9E 02 08 15 16 79 | ctrl 12 09 0A 92 0D 0B 0F 0E 80 | ctrl FF 10 0C FF FF 1B 00 FF 81 | ctrl 1C FF 1D FF FF 1F 1E FF 82 | ctrl 90 06 FF 05 FF FF 11 FF 83 | ctrl 84 38 35 18 32 34 37 31 84 | ctrl 1B 2B 2D 0A 8D 36 39 33 85 | ctrl 08 30 2E 91 11 9D 1D FF 86 | -------------------------------------------------------------------------------- /src/charset/keyboard_c64.txt: -------------------------------------------------------------------------------- 1 | layout +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +-----+ 2 | layout |39 |38 |3B |08 |0B |10 |13 |18 |1B |20 |23 |28 |2B |30 |33 |00 | | 04 | 3 | layout +---+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+ +-----+ 4 | layout | 3A |3E |09 |0E |11 |16 |19 |1E |21 |26 |29 |2E |31 |36 | 40 | | 05 | 5 | layout ++--+--++--++--++--++--++--++--++--++--++--++--++--++--++--+----++ +-----+ 6 | layout |3F |0F |0A |0D |12 |15 |1A |1D |22 |25 |2A |2D |32 |35 | 01 | | 06 | 7 | layout +---+---+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+---+---+ +-----+ 8 | layout |3D | 0F |0C |17 |14 |1F |1C |27 |24 |2F |2C |37 | 34 |07 |02 | | 03 | 9 | layout +---+-----++--+---+---+---+---+---+---+---+---++--+-----+---+---+ +-----+ 10 | layout | 3C | 11 | layout +-----------------------------------+ 12 | 13 | cap DEL RETURN ←CRSR→ f7 f1 f3 f5 ↑CRSR↓ 14 | cap 3 W A 4 Z S E L.SHIFT 15 | cap 5 R D 6 C F T X 16 | cap 7 Y G 8 B H U V 17 | cap 9 I J 0 M K O N 18 | cap + P L - . : @ , 19 | cap £ * ; HOME R.SHIFT = ↑ / 20 | cap 1 ← CTRL 2 SPACE C= Q STOP 21 | # keys that don't actually produce a scancode 22 | capx RESTORE 23 | 24 | mod 0F shift # left 25 | mod 34 shift # right 26 | mod 3A ctrl 27 | mod 3D cbm 28 | 29 | regular 14 0D 1D 88 85 86 87 11 30 | regular 33 57 41 34 5A 53 45 01 31 | regular 35 52 44 36 43 46 54 58 32 | regular 37 59 47 38 42 48 55 56 33 | regular 39 49 4A 30 4D 4B 4F 4E 34 | regular 2B 50 4C 2D 2E 3A 40 2C 35 | regular 5C 2A 3B 13 01 3D 5E 2F 36 | regular 31 5F 04 32 20 02 51 03 37 | 38 | shift 94 8D 9D 8C 89 8A 8B 91 39 | shift 23 D7 C1 24 DA D3 C5 01 40 | shift 25 D2 C4 26 C3 C6 D4 D8 41 | shift 27 D9 C7 28 C2 C8 D5 D6 42 | shift 29 C9 CA 30 CD CB CF CE 43 | shift DB D0 CC DD 3E 5B BA 3C 44 | shift A9 C0 5D 93 01 3D DE 3F 45 | shift 21 5F 04 22 A0 02 D1 83 46 | 47 | cbm 94 8D 9D 8C 89 8A 8B 91 48 | cbm 96 B3 B0 97 AD AE B1 01 49 | cbm 98 B2 AC 99 BC BB A3 BD 50 | cbm 9A B7 A5 9B BF B4 B8 BE 51 | cbm 29 A2 B5 30 A7 A1 B9 AA 52 | cbm A6 AF B6 DC 3E 5B A4 3C 53 | cbm A8 DF 5D 93 01 3D DE 3F 54 | cbm 81 5F 04 95 A0 02 AB 83 55 | 56 | ctrl FF FF FF FF FF FF FF FF 57 | ctrl 1C 17 01 9F 1A 13 05 FF 58 | ctrl 9C 12 04 1E 03 06 14 18 59 | ctrl 1F 19 07 9E 02 08 15 16 60 | ctrl 12 09 0A 92 0D 0B 0F 0E 61 | ctrl FF 10 0C FF FF 1B 00 FF 62 | ctrl 1C FF 1D FF FF 1F 1E FF 63 | ctrl 90 06 FF 05 FF FF 11 FF 64 | -------------------------------------------------------------------------------- /src/charset/keyboard_c65.txt: -------------------------------------------------------------------------------- 1 | layout +---+ +---+---+---+---+ +---+---+---+---+ +---+---+---+---+ 2 | layout |3F | |47 |41 |49 |40 | |04 |05 |06 |03 | |44 |45 |46 |43 | 3 | layout +---+ +---+---+---+---+ +---+---+---+---+ +---+---+---+---+ 4 | layout 5 | layout +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 6 | layout |39 |38 |3B |08 |0B |10 |13 |18 |1B |20 |23 |28 |2B |30 |33 |00 | 7 | layout +---+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+ 8 | layout |41 |3E |09 |0E |11 |16 |19 |1E |21 |26 |29 |2E |31 |36 | 48 | 9 | layout ++--+--++--++--++--++--++--++--++--++--++--++--++--++--++--+----++ 10 | layout |3A |0F |0A |0D |12 |15 |1A |1D |22 |25 |2A |2D |32 |35 | 01 | 11 | layout +---+---+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+---+---+ 12 | layout |3D | 0F |0C |17 |14 |1F |1C |27 |24 |2F |2C |37 | 34 |/07| 13 | layout +---+-----+-+-+---+---+---+---+---+---+---+---+-+-+-+---+---+---+ 14 | layout | 3C | |/02|07 |02 | 15 | layout +-----------------------------------+ +---+---+---+ 16 | 17 | cap DEL RETURN ←CRSR→ f7 f1 f3 f5 ↑CRSR↓ 18 | cap 3 W A 4 Z S E L.SHIFT 19 | cap 5 R D 6 C F T X 20 | cap 7 Y G 8 B H U V 21 | cap 9 I J 0 M K O N 22 | cap + P L - . : @ , 23 | cap £ * ; HOME R.SHIFT = ↑ / 24 | cap 1 ← CTRL 2 SPACE C= Q STOP 25 | cap NO_SCROLL TAB ALT HELP f9 f11 f13 ESC 26 | # keys that don't actually produce a scancode 27 | capx RESTORE 28 | capx CAPS_LOCK 29 | 30 | mod 0F shift # left 31 | mod 34 shift # right 32 | mod 3A ctrl 33 | mod 3D cbm 34 | mod 42 alt 35 | 36 | regular 14 0D 1D 88 85 86 87 11 37 | regular 33 57 41 34 5A 53 45 01 38 | regular 35 52 44 36 43 46 54 58 39 | regular 37 59 47 38 42 48 55 56 40 | regular 39 49 4A 30 4D 4B 4F 4E 41 | regular 2B 50 4C 2D 2E 3A 40 2C 42 | regular 5C 2A 3B 13 01 3D 5E 2F 43 | regular 31 5F 04 32 20 02 51 03 44 | regular FF 09 08 84 10 16 19 1B 45 | 46 | shift 94 8D 9D 8C 89 8A 8B 91 47 | shift 23 D7 C1 24 DA D3 C5 01 48 | shift 25 D2 C4 26 C3 C6 D4 D8 49 | shift 27 D9 C7 28 C2 C8 D5 D6 50 | shift 29 C9 CA 30 CD CB CF CE 51 | shift DB D0 CC DD 3E 5B BA 3C 52 | shift A9 C0 5D 93 01 3D DE 3F 53 | shift 21 5F 04 22 A0 02 D1 83 54 | shift FF 1A 08 84 15 17 1A 1B 55 | 56 | cbm 94 8D 9D 8C 89 8A 8B 91 57 | cbm 96 B3 B0 97 AD AE B1 01 58 | cbm 98 B2 AC 99 BC BB A3 BD 59 | cbm 9A B7 A5 9B BF B4 B8 BE 60 | cbm 29 A2 B5 30 A7 A1 B9 AA 61 | cbm A6 AF B6 DC 3E 5B A4 3C 62 | cbm A8 DF 5D 93 01 3D DE 3F 63 | cbm 81 5F 04 95 A0 02 AB 03 64 | cbm FF 18 08 84 15 17 1A 1B 65 | 66 | ctrl FF FF FF FF FF FF FF FF 67 | ctrl 1C 17 01 9F 1A 13 05 FF 68 | ctrl 9C 12 04 1E 03 06 14 18 69 | ctrl 1F 19 07 9E 02 08 15 16 70 | ctrl 12 09 0A 92 0D 0B 0F 0E 71 | ctrl FF 10 0C FF FF 1B 00 FF 72 | ctrl 1C FF 1D FF FF 1F 1E FF 73 | ctrl 90 1F FF 05 FF FF 11 FF 74 | ctrl FF 09 08 84 FF FF FF 1B 75 | -------------------------------------------------------------------------------- /src/charset/keyboard_cbm2.txt: -------------------------------------------------------------------------------- 1 | layout +---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+ +---+---+---+---+ 2 | layout |00 |08 |10 |18 |20 |28 |30 |38 |40 |48 | |50 |58 |59 |5A | |60 |68 |70 |78 | 3 | layout +---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+ +---+---+---+---+ 4 | layout 5 | layout +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+ 6 | layout |01 |09 |11 |19 |21 |29 |2A |31 |39 |41 |49 |4A |51 |52 |5B | |61 |69 |71 |79 | 7 | layout +---+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--++ +---+---+---+---+ 8 | layout | 02 |0A |12 |1A |22 |23 |2B |32 |3A |42 |4B |4C |53 | 54 | |62 |6A |72 |7A | 9 | layout ++----++--++--++--++--++--++--++--++--++--++--++--++--+ | +---+---+---+---+ 10 | layout | 04 |0B |13 |1B |1C |24 |2C |33 |3B |43 |44 |4D |55 | | |63 |6B |73 |7B | 11 | layout +-----+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+---+ +---+---+---+---+ 12 | layout | 04 |0C |14 |15 |1D |25 |2D |34 |3C |3D |45 | 04 |5C | |64 |6C |74 |7C | 13 | layout +----+--+--++---+---+---+---+---+---+---+---+--++-----+---+ +-+---+---+---+ | 14 | layout | 05 | 35 | | 65 |6D |75 | | 15 | layout +-----+-----------------------------------+ +-----+---+---+---+ 16 | 17 | cap f1 ESC TAB --- SHIFT CTRL --- --- 18 | cap f2 1 Q A Z --- --- --- 19 | cap f3 2 W S X C --- --- 20 | cap f4 3 E D F V --- --- 21 | cap f5 4 R T G B --- --- 22 | cap f6 5 6 Y H N --- --- 23 | cap f7 7 U J M SPACE --- --- 24 | cap f8 8 I K , . --- --- 25 | cap f9 9 O L ; / --- --- 26 | cap f10 0 - P [ ' --- --- 27 | cap CRSR↓ = ← ] RETURN π --- --- 28 | cap CRSR↑ CRSR← CRSR→ DEL C= --- --- --- 29 | cap HOME [?] [7] [4] [1] [0] --- --- 30 | cap RVS [CE] [8] [5] [2] [.] --- --- 31 | cap GRAPH [*] [9] [6] [3] [00] --- --- 32 | cap STOP [/] [-] [+] [ENTER] --- --- --- 33 | 34 | mod 04 shift 35 | mod 05 ctrl 36 | mod 5C cbm 37 | 38 | regular E0 1B 09 FF 00 01 FF FF 39 | regular E1 31 51 41 5A FF FF FF 40 | regular E2 32 57 53 58 43 FF FF 41 | regular E3 33 45 44 46 56 FF FF 42 | regular E4 34 52 54 47 42 FF FF 43 | regular E5 35 36 59 48 4E FF FF 44 | regular E6 37 55 4A 4D 20 FF FF 45 | regular E7 38 49 4B 2C 2E FF FF 46 | regular E8 39 4F 4C 3B 2F FF FF 47 | regular E9 30 2D 50 5B 27 FF FF 48 | regular 11 3D 5F 5D 0D DE FF FF 49 | regular 91 9D 1D 14 02 FF FF FF 50 | regular 13 3F 37 34 31 30 FF FF 51 | regular 12 04 38 35 32 2E FF FF 52 | regular 8E 2A 39 36 33 30 FF FF 53 | regular 03 2F 2D 2B 0D FF FF FF 54 | 55 | shift EA 1B 89 FF 00 01 FF FF 56 | shift EB 21 D1 C1 DA FF FF FF 57 | shift EC 40 D7 D3 D8 C3 FF FF 58 | shift ED 23 C5 C4 C6 D6 FF FF 59 | shift EE 24 D2 D4 C7 C2 FF FF 60 | shift EF 25 5E D9 C8 CE FF FF 61 | shift F0 26 D5 CA CD A0 FF FF 62 | shift F1 2A C9 CB 3C 3E FF FF 63 | shift F2 28 CF CC 3A 3F FF FF 64 | shift F3 29 2D D0 5B 22 FF FF 65 | shift 11 2B 5C 5D 8D DE FF FF 66 | shift 91 9D 1D 94 82 FF FF FF 67 | shift 93 3F 37 34 31 30 FF FF 68 | shift 92 84 38 35 32 2E FF FF 69 | shift 0E 2A 39 36 33 30 FF FF 70 | shift 83 2F 2D 2B 8D FF FF FF 71 | 72 | cbm EA 1B 89 FF 00 01 FF FF 73 | cbm EB 21 D1 C1 DA FF FF FF 74 | cbm EC 40 D7 D3 D8 C0 FF FF 75 | cbm ED 23 C5 C4 C6 C3 FF FF 76 | cbm EE 24 D2 D4 C7 C2 FF FF 77 | cbm EF 25 5E D9 C8 DD FF FF 78 | cbm F0 26 D5 CA CD A0 FF FF 79 | cbm F1 2A C9 CB 3C 3E FF FF 80 | cbm F2 28 CF D6 3A 3F FF FF 81 | cbm F3 29 2D D0 5B 22 FF FF 82 | cbm 11 2B 5C 5D 8D DE FF FF 83 | cbm 91 9D 1A 94 82 FF FF FF 84 | cbm 93 3F 37 34 31 30 FF FF 85 | cbm 92 04 38 35 32 2E FF FF 86 | cbm 0E 2A 39 36 33 30 FF FF 87 | cbm 83 2F 2D 2B 8D FF FF FF 88 | 89 | ctrl FF FF FF FF FF FF FF FF 90 | ctrl FF A1 11 01 1A FF FF FF 91 | ctrl FF A2 17 13 18 03 FF FF 92 | ctrl FF A3 05 04 06 16 FF FF 93 | ctrl FF A4 12 14 07 02 FF FF 94 | ctrl FF A5 A7 19 08 0E FF FF 95 | ctrl FF BE 15 0A 0D FF FF FF 96 | ctrl FF BB 09 0B CE FF FF FF 97 | ctrl FF BF 0F 0C DC FF FF FF 98 | ctrl FF AC BC 10 CC A8 FF FF 99 | ctrl FF A9 DF BA FF A6 FF FF 100 | ctrl FF FF FF FF FF FF FF FF 101 | ctrl FF B7 B4 B1 B0 AD FF FF 102 | ctrl FF B8 B5 B2 AE BD FF FF 103 | ctrl FF B9 B6 B3 DB FF FF FF 104 | ctrl FF AF AA AB FF FF FF FF 105 | -------------------------------------------------------------------------------- /src/charset/keyboard_pet-b.txt: -------------------------------------------------------------------------------- 1 | layout +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+ 2 | layout |07 |47 |4F |06 |46 |4E |05 |45 |4D |04 |44 |02 |4C |42 |4A |03 | |43 |4B |40 | 3 | layout +---+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +---+---+---+ 4 | layout | 2F |27 |2E |26 |2D |25 |2C |24 |2A |22 |29 |21 |2B |23 |28 | |20 |38 |30 | 5 | layout +---+--++--++--++--++--++--++--++--++--++--++--++--++--++--+---++ +---+---+---+ 6 | layout |3F |1F |37 |3E |36 |3D |35 |3C |34 |3A |32 |39 |31 |3B | 33 | |08 |10 |18 | 7 | layout +---+---+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+---+---+ +---+---+---+ 8 | layout |0F | 1F |17 |0E |1E |16 |1D |15 |0C |14 |1C |09 | 19 |11 |0B | | 13 |1B | 9 | layout +---+-----++--+---+---+---+---+---+---+---+---++--+-----+---+---+ +-------+---+ 10 | layout | 0D | 11 | layout +-----------------------------------+ 12 | 13 | cap --- --- : STOP 9 6 3 ← 14 | cap [1] / --- HOME M SPACE X RVS 15 | cap [2] REPEAT --- [0] , N V Z 16 | cap [3] R.SHIFT --- [.] . B C L.SHIFT 17 | cap [4] [ O ↑CRSR↓ U T E Q 18 | cap DEL P I \ Y R W TAB 19 | cap [6] @ L RETURN J G D A 20 | cap [5] ; K ] H F S ESC 21 | cap [9] --- ↑ [7] 0 7 4 1 22 | cap --- --- ←CRSR→ [8] - 8 5 2 23 | 24 | mod 1F shift # left 25 | mod 19 shift # right 26 | mod 11 repeat 27 | 28 | # The two tables are based on the original ROM tables; 29 | # also at http://www.6502.org/users/andre/petindex/keyboards.html 30 | # and http://web.mit.edu/jhawk/mnt/ss.b/vice-0.12.0/doc/PETdoc 31 | 32 | # a = a & 0x7F 33 | regular 16 04 3A 03 39 36 33 5F 34 | regular 31 2F 15 13 4D 20 58 12 35 | regular 32 10 0F 30 2C 4E 56 5A 36 | regular 33 00 19 2E 2E 42 43 00 37 | regular 34 5B 4F 11 55 54 45 51 38 | regular 14 50 49 5C 59 52 57 09 39 | regular 36 40 4C 0D 4A 47 44 41 40 | regular 35 3B 4B 5D 48 46 53 1B 41 | regular 39 06 5E 37 30 37 34 31 42 | regular 05 0E 1D 38 2D 38 35 32 43 | 44 | # if a > 0x20 and a < 0x40: 45 | # a = a ^ 0x10 46 | # else: 47 | # a = a ^ 0x80 48 | shift 96 84 2A 83 29 26 23 5F 49 | shift 31 3F 95 93 CD A0 D8 92 50 | shift 32 90 8F 30 3C CE D6 DA 51 | shift 33 80 99 2E 3E C2 C3 80 52 | shift 34 5B CF 91 D5 D4 C5 D1 53 | shift 94 D0 C9 5C D9 D2 D7 89 54 | shift 36 40 CC 8D CA C7 C4 C1 55 | shift 35 2B CB 5D C8 C6 D3 1B 56 | shift 39 86 5E 37 30 27 24 21 57 | shift 85 8E 9D 38 3D 28 25 22 -------------------------------------------------------------------------------- /src/charset/keyboard_pet-n.txt: -------------------------------------------------------------------------------- 1 | layout # Chicklet 2 | layout +---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+ 3 | layout |4F |47 |4E |46 |4D |45 |4C |44 |4B |43 |4A | |49 |41 |48 |40 | 4 | layout +---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+ 5 | layout |3F |37 |3E |36 |3D |35 |3C |34 |3B |33 |3A | |39 |31 |38 |30 | 6 | layout +---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+ 7 | layout |2F |27 |2E |26 |2D |25 |2C |24 |2B |23 |1A | |29 |21 |28 |20 | 8 | layout +---+---+---+---+---+---+---+---+---+---+ + +---+---+---+---+ 9 | layout |1F |17 |1E |16 |1D |15 |1C |14 |1B |13 | | |19 |11 |18 |10 | 10 | layout +---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+ 11 | layout |0F |07 |0E |06 |0D | 05 |04 |0B |03 |0A | |09 |01 |08 |00 | 12 | layout +---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+ 13 | layout # Graphics 14 | layout +---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+ 15 | layout |0E |4F |47 |4E |46 |4D |45 |4C |44 |4B |43 |4A |06 |0D | |49 |41 |48 |40 | 16 | layout +---+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +---+---+---+---+ 17 | layout |07 |3F |37 |3E |36 |3D |35 |3C |34 |3B |33 |3A |04 |0B | |39 |31 |38 |30 | 18 | layout +-----++--++--++--++--++--++--++--++--++--++--++--++--+--++ +---+---+---+---+ 19 | layout |0F |2F |27 |2E |26 |2D |25 |2C |24 |2B |23 |03 | 1A | |29 |21 |28 |20 | 20 | layout +-----+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-----+ +---+---+---+---+ 21 | layout | 0F |1F |17 |1E |16 |1D |15 |1C |14 |1B |13 | 0A | |19 |11 |18 |10 | 22 | layout +-------+-+-+---+---+---+---+---+---+---+---+-+-+-------+ +---+---+---+---+ 23 | layout | 05 | |09 |01 |08 |00 | 24 | layout +-----------------------------------+ +---+---+---+---+ 25 | 26 | cap = . --- STOP < SPACE [ RVS 27 | cap - 0 R.SHIFT > --- ] @ L.SHIFT 28 | cap + 2 --- ? , N V X 29 | cap 3 1 RETURN ; M B C Z 30 | cap * 5 --- : K H F S 31 | cap 6 4 --- L J G D A 32 | cap / 8 --- P I Y R W 33 | cap 9 7 ↑ O U T E Q 34 | cap DEL ↑CRSR↓ --- ) \ ' $ " 35 | cap ←CRSR→ HOME ← ( & % HASH ! 36 | 37 | mod 0A shift # right 38 | mod 0F shift # left 39 | 40 | regular 3D 2E FF 03 3C 20 5B 12 41 | regular 2D 30 00 3E FF 5D 40 00 42 | regular 2B 32 FF 3F 2C 4E 56 58 43 | regular 33 31 0D 3B 4D 42 43 5A 44 | regular 2A 35 FF 3A 4B 48 46 53 45 | regular 36 34 FF 4C 4A 47 44 41 46 | regular 2F 38 FF 50 49 59 52 57 47 | regular 39 37 5E 4F 55 54 45 51 48 | regular 14 11 FF 29 5C 27 24 22 49 | regular 1D 13 5F 28 26 25 23 21 50 | 51 | # this was generated from the table above 52 | # by adding $80 to all non-$FF values 53 | shift BD AE FF 83 BC A0 DB 92 54 | shift AD B0 80 BE FF DD C0 80 55 | shift AB B2 FF BF AC CE D6 D8 56 | shift B3 B1 8D BB CD C2 C3 DA 57 | shift AA B5 FF BA CB C8 C6 D3 58 | shift B6 B4 FF CC CA C7 C4 C1 59 | shift AF B8 FF D0 C9 D9 D2 D7 60 | shift B9 B7 DE CF D5 D4 C5 D1 61 | shift 94 91 FF A9 DC A7 A4 A2 62 | shift 9D 93 DF A8 A6 A5 A3 A1 63 | -------------------------------------------------------------------------------- /src/charset/keyboard_ted.txt: -------------------------------------------------------------------------------- 1 | layout # C16 2 | layout +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +-----+ 3 | layout |34 |38 |3B |08 |0B |10 |13 |18 |1B |20 |23 |30 |33 |2B |28 |00 | | 04 | 4 | layout +---+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+ +-----+ 5 | layout | 3A |3E |09 |0E |11 |16 |19 |1E |21 |26 |29 |07 |36 |2E | 39 | | 05 | 6 | layout ++--+--++--++--++--++--++--++--++--++--++--++--++--++--++--+----++ +-----+ 7 | layout |3F |0F |0A |0D |12 |15 |1A |1D |22 |25 |2A |2D |32 |31 | 01 | | 06 | 8 | layout +---+---+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+---+---+ +-----+ 9 | layout |3D | 0F |0C |17 |14 |1F |1C |27 |24 |2F |2C |37 | 0F |02 |35 | | 03 | 10 | layout +---+-----++--+---+---+---+---+---+---+---+---++--+-----+---+---+ +-----+ 11 | layout | 3C | 12 | layout +-----------------------------------+ 13 | layout # C116 14 | layout +-------+-------+-------+-------+ +-------+-------+ 15 | layout | 04 | 05 | 06 | 03 | | 39 | 00 | 16 | layout +---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 17 | layout |34 |38 |3B |08 |0B |10 |13 |18 |1B |20 |23 |36 |2E |31 | 18 | layout +---+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+ 19 | layout | 3A |3E |09 |0E |11 |16 |19 |1E |21 |26 |29 |07 | 01 | +---+ 20 | layout +---+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |2B | 21 | layout |3F |02 |0A |0D |12 |15 |1A |1D |22 |25 |2A |2D |32 |35 | +-+-+-+-+ 22 | layout +---+---+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+ |30 |33 | 23 | layout |3D | 0F |0C |17 |14 |1F |1C |27 |24 |2F |2C |37 | 0F | +-+-+-+-+ 24 | layout +---+-----+---+---+---+---+---+---+---+---+---+---+-----+ |28 | 25 | layout | 3C | +---+ 26 | layout +-----------------------------------+ 27 | layout # Plus/4 28 | layout +-------+-------+-------+-------+ 29 | layout | 04 | 05 | 06 | 03 | 30 | layout +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 31 | layout |34 |38 |3B |08 |0B |10 |13 |18 |1B |20 |23 |36 |2E |35 |39 |00 | 32 | layout +---+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+-+-+---+ 33 | layout | 3A |3E |09 |0E |11 |16 |19 |1E |21 |26 |29 |07 |02 |31 | 3A | 34 | layout +---+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+-+---+ 35 | layout |3F |0F |0A |0D |12 |15 |1A |1D |22 |25 |2A |2D |32 | 01 | +---+ 36 | layout +---+---+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+---+ |2B | 37 | layout |3D | 0F |0C |17 |14 |1F |1C |27 |24 |2F |2C |37 | 0F | +-+-+-+-+ 38 | layout +---+-----+---+---+---+---+---+---+---+---+---+---+-----+ |30 |33 | 39 | layout | 3C | +-+-+-+-+ 40 | layout +-----------------------------------+ |28 | 41 | layout +---+ 42 | 43 | cap DEL RETURN £ HELP f1 f2 f3 @ 44 | cap 3 W A 4 Z S E SHIFT 45 | cap 5 R D 6 C F T X 46 | cap 7 Y G 8 B H U V 47 | cap 9 I J 0 M K O N 48 | cap CRSR↓ P L CRSR↑ . : - , 49 | cap CRSR← * ; CRSR→ ESC = + / 50 | cap 1 HOME CTRL 2 SPACE C= Q STOP 51 | 52 | mod 0F shift # left 53 | mod 34 shift # right 54 | mod 3A ctrl 55 | mod 3D cbm 56 | 57 | regular 14 0D 5C 8C 85 89 86 40 58 | regular 33 57 41 34 5A 53 45 01 59 | regular 35 52 44 36 43 46 54 58 60 | regular 37 59 47 38 42 48 55 56 61 | regular 39 49 4A 30 4D 4B 4F 4E 62 | regular 11 50 4C 91 2E 3A 2D 2C 63 | regular 9D 2A 3B 1D 1B 3D 2B 2F 64 | regular 31 13 04 32 20 02 51 03 65 | 66 | shift 94 8D A9 88 8A 87 8B BA 67 | shift 23 D7 C1 24 DA D3 C5 01 68 | shift 25 D2 C4 26 C3 C6 D4 D8 69 | shift 27 D9 C7 28 C2 C8 D5 D6 70 | shift 29 C9 CA 5E CD CB CF CE 71 | shift 11 D0 CC 91 3E 5B DD 3C 72 | shift 9D C0 5D 1D 1B 5F DB 3F 73 | shift 21 93 04 22 A0 02 D1 83 74 | 75 | cbm 94 8D A8 88 8A 87 8B A4 76 | cbm 96 B3 B0 97 AD AE B1 01 77 | cbm 98 B2 AC 99 BC BB A3 BD 78 | cbm 9A B7 A5 9B BF B4 B8 BE 79 | cbm 29 A2 B5 30 A7 A1 B9 AA 80 | cbm 11 AF B6 91 3E 5B DC 3C 81 | cbm 9D DF 5D 1D 1B DE A6 3F 82 | cbm 81 93 04 95 A0 02 AB 83 83 | 84 | ctrl FF FF 1C FF FF FF FF FF 85 | ctrl 1C 17 01 9F 1A 13 05 FF 86 | ctrl 9C 12 04 1E 03 06 14 18 87 | ctrl 1F 19 07 9E 02 08 15 16 88 | ctrl 12 09 0A 92 0D 0B 0F 0E 89 | ctrl FF 10 0C FF 84 1B FF 82 90 | ctrl FF FF 1D FF 1B 06 FF FF 91 | ctrl 90 FF FF 05 FF FF 11 FF 92 | -------------------------------------------------------------------------------- /src/charset/keyboard_vic-20.txt: -------------------------------------------------------------------------------- 1 | layout +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +-----+ 2 | layout |08 |00 |38 |01 |39 |02 |3A |03 |3B |04 |3C |05 |3D |06 |3E |07 | | 27 | 3 | layout +---+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+ +-----+ 4 | layout | 10 |30 |09 |31 |0A |32 |0B |33 |0C |34 |0D |35 |0E |36 | 40 | | 2F | 5 | layout ++--+--++--++--++--++--++--++--++--++--++--++--++--++--++--+----++ +-----+ 6 | layout |18 |19 |11 |29 |12 |2A |13 |2B |14 |2C |15 |2D |16 |2E | 0F | | 37 | 7 | layout +---+---+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+---+---+ +-----+ 8 | layout |28 |19 |21 |1A |22 |1B |23 |1C |24 |1D |25 |1E | 26 |1F |17 | | 3F | 9 | layout +---+-----++--+---+---+---+---+---+---+---+---++--+-----+---+---+ +-----+ 10 | layout | 20 | 11 | layout +-----------------------------------+ 12 | 13 | cap 1 3 5 7 9 + £ DEL 14 | cap ← W R Y I P * RETURN 15 | cap CTRL A D G J L ; ←CRSR→ 16 | cap STOP L.SHIFT X V N , / ↑CRSR↓ 17 | cap SPACE Z C B M . R.SHIFT f1 18 | cap C= S F H K : = f3 19 | cap Q E T U O @ ↑ f5 20 | cap 2 4 6 8 0 - HOME f7 21 | # keys that don't actually produce a scancode 22 | capx RESTORE 23 | 24 | mod 10 ctrl 25 | mod 19 shift # left 26 | mod 26 shift # right 27 | mod 28 cbm 28 | 29 | regular 31 33 35 37 39 2B 5C 14 30 | regular 5F 57 52 59 49 50 2A 0D 31 | regular 04 41 44 47 4A 4C 3B 1D 32 | regular 03 01 58 56 4E 2C 2F 11 33 | regular 20 5A 43 42 4D 2E 01 85 34 | regular 02 53 46 48 4B 3A 3D 86 35 | regular 51 45 54 55 4F 40 5E 87 36 | regular 32 34 36 38 30 2D 13 88 37 | 38 | shift 21 23 25 27 29 DB A9 94 39 | shift 5F D7 D2 D9 C9 D0 C0 8D 40 | shift 04 C1 C4 C7 CA CC 5D 9D 41 | shift 83 01 D8 D6 CE 3C 3F 91 42 | shift A0 DA C3 C2 CD 3E 01 89 43 | shift 02 D3 C6 C8 CB 5B 3D 8A 44 | shift D1 C5 D4 D5 CF BA DE 8B 45 | shift 22 24 26 28 30 DD 93 8C 46 | 47 | cbm 21 23 25 27 29 A6 A8 94 48 | cbm 5F B3 B2 B7 A2 AF DF 8D 49 | cbm 04 B0 AC A5 B5 B6 5D 9D 50 | cbm 83 01 BD BE AA 3C 3F 91 51 | cbm A0 AD BC BF A7 3E 01 89 52 | cbm 02 AE BB B4 A1 5B 3D 8A 53 | cbm AB B1 A3 B8 B9 A4 DE 8B 54 | cbm 22 24 26 28 30 DC 93 8C 55 | 56 | ctrl 90 1C 9C 1F 12 FF FF FF 57 | ctrl 06 FF 12 FF FF FF FF FF 58 | ctrl FF FF FF FF FF FF FF FF 59 | ctrl FF FF FF FF FF FF FF FF 60 | ctrl FF FF FF FF FF FF FF FF 61 | ctrl FF FF FF FF FF FF FF FF 62 | ctrl FF FF FF FF FF FF FF FF 63 | ctrl 05 9F 1E 9E 92 FF FF FF 64 | -------------------------------------------------------------------------------- /src/charset/out.sh: -------------------------------------------------------------------------------- 1 | ./generate.py > $1/index.html 2 | 3 | cp -p *.css *.js $1 4 | 5 | mkdir -p $1/bin 6 | cp -p bin/*.bin $1/bin 7 | -------------------------------------------------------------------------------- /src/charset/palette_c128.txt: -------------------------------------------------------------------------------- 1 | # C128 Palette - VICE 2 | 000000 COL_BLACK 3 | FFFFFF COL_WHITE 4 | AA0000 COL_RED 5 | 55FFFF COL_LIGHT_CYAN 6 | FF55FF COL_PURPLE 7 | 00AA00 COL_GREEN 8 | 0000AA COL_BLUE 9 | FFFF55 COL_YELLOW 10 | AA00AA COL_DARK_PURPLE 11 | AA5500 COL_DARK_YELLOW 12 | FF5555 COL_LIGHT_RED 13 | 00AAAA COL_DARK_CYAN 14 | 555555 COL_MEDIUM_GRAY 15 | 55FF55 COL_LIGHT_GREEN 16 | 5555FF COL_LIGHT_BLUE 17 | AAAAAA COL_LIGHT_GRAY 18 | -------------------------------------------------------------------------------- /src/charset/palette_c64.txt: -------------------------------------------------------------------------------- 1 | # C64 Palette - Colodore 2 | 000000 COL_BLACK 3 | FFFFFF COL_WHITE 4 | 813338 COL_RED 5 | 75CEC8 COL_CYAN 6 | 8E3C97 COL_PURPLE 7 | 56AC4D COL_GREEN 8 | 2E2C9B COL_BLUE 9 | EDF171 COL_YELLOW 10 | 8E5029 COL_ORANGE 11 | 553800 COL_BROWN 12 | C46C71 COL_LIGHT_RED 13 | 4A4A4A COL_DARK_GRAY 14 | 7B7B7B COL_MEDIUM_GRAY 15 | A9FF9F COL_LIGHT_GREEN 16 | 706DEB COL_LIGHT_BLUE 17 | B2B2B2 COL_LIGHT_GRAY 18 | -------------------------------------------------------------------------------- /src/charset/palette_c65.txt: -------------------------------------------------------------------------------- 1 | palette_c64.txt -------------------------------------------------------------------------------- /src/charset/palette_cbm2.txt: -------------------------------------------------------------------------------- 1 | # empty 2 | -------------------------------------------------------------------------------- /src/charset/palette_pet-b.txt: -------------------------------------------------------------------------------- 1 | # empty 2 | -------------------------------------------------------------------------------- /src/charset/palette_pet-n.txt: -------------------------------------------------------------------------------- 1 | # empty 2 | -------------------------------------------------------------------------------- /src/charset/palette_ted.txt: -------------------------------------------------------------------------------- 1 | # TED Palette - VICE 2 | 000000 COL_BLACK 3 | FFFFFF COL_WHITE 4 | A04B43 COL_RED 5 | 95E0E6 COL_CYAN 6 | B56CF7 COL_PURPLE 7 | 3D8D00 COL_GREEN 8 | 8A7EFF COL_BLUE 9 | FFFF87 COL_YELLOW 10 | C18A40 COL_ORANGE 11 | 775C00 COL_BROWN 12 | AFC81C COL_YELLOW_GREEN 13 | FBA8F4 COL_PINK 14 | 7AD282 COL_BLUE_GREEN 15 | AFC6FF COL_LIGHT_BLUE 16 | 5735D8 COL_DARK_BLUE 17 | A3CD21 COL_LIGHT_GRN 18 | -------------------------------------------------------------------------------- /src/charset/palette_vic-20.txt: -------------------------------------------------------------------------------- 1 | # VIC-20 Palette - Colodore 2 | 000000 COL_BLACK 3 | FFFFFF COL_WHITE 4 | 813338 COL_RED 5 | 75CEC8 COL_CYAN 6 | 8E3C97 COL_PURPLE 7 | 56AC4D COL_GREEN 8 | 2E2C9B COL_BLUE 9 | EDF171 COL_YELLOW 10 | -------------------------------------------------------------------------------- /src/colors/colors.css: -------------------------------------------------------------------------------- 1 | h2 { 2 | font-size: medium; 3 | } 4 | 5 | td { 6 | vertical-align: middle; 7 | } 8 | 9 | .colbox { 10 | border: none; 11 | border-collapse: collapse; 12 | padding: 0px; 13 | margin: 0px; 14 | width: 2em; 15 | height: 2em; 16 | } 17 | 18 | .thincolbox25 { 19 | border: none; 20 | border-collapse: collapse; 21 | padding: 0px; 22 | margin: 0px; 23 | width: .5em; 24 | height: 2em; 25 | } 26 | 27 | .thincolbox50 { 28 | border: none; 29 | border-collapse: collapse; 30 | padding: 0px; 31 | margin: 0px; 32 | width: 1em; 33 | height: 2em; 34 | } 35 | 36 | .thincolbox75 { 37 | border: none; 38 | border-collapse: collapse; 39 | padding: 0px; 40 | margin: 0px; 41 | width: 1.5em; 42 | height: 2em; 43 | } 44 | 45 | 46 | .colbox a { 47 | display:block; 48 | text-decoration:none; 49 | } 50 | 51 | #colors { 52 | border-spacing: 0px 0px; 53 | border: none; 54 | } 55 | 56 | table { 57 | border: none; 58 | } 59 | 60 | table.paltab { 61 | border: 1px solid black; 62 | } 63 | 64 | table.paltab th { 65 | color: white; 66 | text-shadow: 0px 1px black; 67 | background-color: black; 68 | } 69 | 70 | table.paltab > tbody > tr > td { 71 | border: 1px solid black; 72 | padding: 4px; 73 | } 74 | 75 | 76 | table.code_table td, 77 | #allcoltab td { 78 | border: solid black 1px; 79 | } 80 | 81 | table.code_table td { 82 | padding: 4px; 83 | } 84 | 85 | #colors td { 86 | vertical-align: middle; 87 | } 88 | 89 | #allcoltab th:nth-child(6n + 9), 90 | #allcoltab th:nth-child(6n + 10), 91 | #allcoltab th:nth-child(6n + 11), 92 | #allcoltab td:nth-child(6n + 9), 93 | #allcoltab td:nth-child(6n + 10), 94 | #allcoltab td:nth-child(6n + 11) { 95 | background: #c0e0ff; 96 | } 97 | 98 | #allcoltab td:last-child { 99 | font-family: monospace; 100 | } 101 | 102 | #allcoltab td,th { 103 | text-align: center; 104 | vertical-align: middle; 105 | padding: 0px 6px; 106 | } 107 | 108 | tr:target { 109 | background-color: white; 110 | } 111 | 112 | li:target { 113 | color: black; 114 | background-color: white; 115 | } 116 | 117 | .code { 118 | overflow: scroll; 119 | width: 320px; 120 | height: 180px; 121 | background: #d2dff4; 122 | padding: 0px 10px; 123 | margin: 4px; 124 | border: solid 1px lightgray; 125 | } 126 | 127 | /* forcing td in relation to the one marked with vertical to behave differently */ 128 | .vertical-adjust { 129 | vertical-align: middle; 130 | } 131 | 132 | .vertical { 133 | writing-mode: vertical-rl; 134 | transform:rotate(180deg); 135 | width: 1em; 136 | padding: 2px; 137 | margin: 0px; 138 | border: solid 1.5px black; 139 | font-weight: bold; 140 | } 141 | 142 | -------------------------------------------------------------------------------- /src/colors/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | C64 | Colors 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 |
16 | 17 |

Based on Pepto's work.

18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 115 | 179 | 180 |
PaletteAdjustments
27 | 28 | 29 | 30 | 31 | 34 | 35 | 36 | 37 | 42 | 43 | 44 | 45 | 50 | 51 | 52 | 55 | 61 | 62 | 63 | 66 | 77 | 78 | 79 | 82 | 86 | 87 | 88 | 91 | 100 | 101 | 102 | 105 | 112 | 113 |
PRESETSPlain 32 | 33 |
50% Mix 38 | 39 | 40 | 41 |
25/50/75% Mix 46 | 47 | 48 | 49 |
53 | 54 | 56 | 60 |
64 | 65 | 67 | 72 | 73 | 74 | 75 | 76 |
80 | 81 | 83 | 84 | 85 |
89 | 90 | 92 | 99 |
103 | 104 | 106 | 111 |
114 |
116 | 117 | 118 | 121 | 127 | 130 | 131 | 132 | 135 | 141 | 144 | 145 | 146 | 149 | 155 | 158 | 159 | 160 | 163 | 170 | 173 | 174 | 175 | 176 | 177 |
119 | 120 | 122 | 123 | 124 | 125 | 126 | 128 | 129 |
133 | 134 | 136 | 137 | 138 | 139 | 140 | 142 | 143 |
147 | 148 | 150 | 151 | 152 | 153 | 154 | 156 | 157 |
161 | 162 | 164 | 165 | 166 | 167 | 168 | 169 | 171 | 172 |
178 |
181 | 182 | colors
183 | Link to this Palette 184 | 185 |
186 | 187 |

Colorspace Diagram

188 | 189 | 190 | 193 | 205 | 206 |
191 | 192 | 194 | 195 | 196 | 197 | 198 | 199 | 200 |
201 |

202 | 						
203 | 					
204 |
207 | 208 |
209 | 210 |

Palette

211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 |
225 |
226 | 227 | 228 | 229 | 230 | 231 | 232 |
233 | 234 |
235 | 236 |

237 | 238 |

239 |
240 |

241 | 		
242 | 243 |
244 | 245 | 246 |
247 | 248 | 249 | 250 | 251 |
252 | 253 | 282 | 283 |
284 | 285 | 286 | -------------------------------------------------------------------------------- /src/colors/out.sh: -------------------------------------------------------------------------------- 1 | cp -p index.html $1 2 | 3 | cp -p *.css *.js $1 4 | -------------------------------------------------------------------------------- /src/commentaries.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --title-color-1: #017100; 3 | --title-color-2: #004D7F; 4 | --title-color-3: #99195E; 5 | --title-color-4: #F8BA00; 6 | --title-color-5: #B51700; 7 | --title-color-6: #017B76; 8 | --title-color-7: #595959; 9 | --title-color-8: #714a00; 10 | --title-color-9: #37007F; 11 | --title-color-10: #507F00; 12 | --title-color-11: #404040; 13 | 14 | --dark-color-1: #D8F2CB; 15 | --dark-color-2: #C6E2FC; 16 | --dark-color-3: #BFB7E8; 17 | --dark-color-4: #FCF6CD; 18 | --dark-color-5: #F4D2E3; 19 | --dark-color-6: #D2F6F0; 20 | --dark-color-7: #E0E0E0; 21 | --dark-color-8: #F2E4CB; 22 | --dark-color-9: #DDC6FC; 23 | --dark-color-10: #E8FCC6; 24 | --dark-color-11: #C7C7C7; 25 | 26 | --light-color-1: #E5F2DF; 27 | --light-color-2: #E3F0FC; 28 | --light-color-3: #D5D1E8; 29 | --light-color-4: #FCFAE6; 30 | --light-color-5: #F5E4EC; 31 | --light-color-6: #E1F5F2; 32 | --light-color-7: #EDEDED; 33 | --light-color-8: #F2EBDF; 34 | --light-color-9: #EEE3FC; 35 | --light-color-10: #F3FCE3; 36 | --light-color-11: #D4D4D4; 37 | 38 | /* kernal category color */ 39 | --cat-color-io: #56C1FF; 40 | --cat-color-clk: #73FDEA; 41 | --cat-color-editor: #88FA4E; 42 | --cat-color-time: #73FDEA; 43 | --cat-color-ieee: #FFFC66; 44 | --cat-color-kbd: #FF968D; 45 | --cat-color-mem: #FF8DC6; 46 | --cat-color-sys: #D5D5D5; 47 | 48 | /* Duplicates from style.css */ 49 | --main-color: #004080; 50 | --main-background: #e0f0ff; 51 | --border-color: #0060a0; 52 | } 53 | 54 | 55 | /* Overview Table: Multicolor */ 56 | 57 | table.checkbox_table tr, table.checkbox_table td { 58 | padding: 4px 8px; 59 | border: solid var(--border-color); 60 | border-width:1px 0px 1px 0px; 61 | } 62 | 63 | table.checkbox_table a { 64 | color: var(--main-background); 65 | } 66 | 67 | table.checkbox_table tr:nth-of-type(1) { background: var(--light-color-1); } 68 | table.checkbox_table tr:nth-of-type(1) td:nth-of-type(2) { background: var(--title-color-1);} 69 | 70 | table.checkbox_table tr:nth-of-type(2) { background: var(--light-color-2); } 71 | table.checkbox_table tr:nth-of-type(2) td:nth-of-type(2) { background: var(--title-color-2); } 72 | 73 | table.checkbox_table tr:nth-of-type(3) { background: var(--light-color-3); } 74 | table.checkbox_table tr:nth-of-type(3) td:nth-of-type(2) { background: var(--title-color-3); } 75 | 76 | table.checkbox_table tr:nth-of-type(4) { background: var(--light-color-4); } 77 | table.checkbox_table tr:nth-of-type(4) td:nth-of-type(2) { background: var(--title-color-4); } 78 | 79 | table.checkbox_table tr:nth-of-type(5) { background: var(--light-color-5); } 80 | table.checkbox_table tr:nth-of-type(5) td:nth-of-type(2) { background: var(--title-color-5); } 81 | 82 | table.checkbox_table tr:nth-of-type(6) { background: var(--light-color-6); } 83 | table.checkbox_table tr:nth-of-type(6) td:nth-of-type(2) { background: var(--title-color-6); } 84 | 85 | table.checkbox_table tr:nth-of-type(7) { background: var(--light-color-7); } 86 | table.checkbox_table tr:nth-of-type(7) td:nth-of-type(2) { background: var(--title-color-7); } 87 | 88 | table.checkbox_table tr:nth-of-type(8) { background: var(--light-color-8); } 89 | table.checkbox_table tr:nth-of-type(8) td:nth-of-type(2) { background: var(--title-color-8); } 90 | 91 | table.checkbox_table tr:nth-of-type(9) { background: var(--light-color-9); } 92 | table.checkbox_table tr:nth-of-type(9) td:nth-of-type(2) { background: var(--title-color-9); } 93 | 94 | table.checkbox_table tr:nth-of-type(10) { background: var(--light-color-10); } 95 | table.checkbox_table tr:nth-of-type(10) td:nth-of-type(2) { background: var(--title-color-10); } 96 | 97 | table.checkbox_table tr:nth-of-type(11) { background: var(--light-color-11); } 98 | table.checkbox_table tr:nth-of-type(11) td:nth-of-type(2) { background: var(--title-color-11); } 99 | 100 | 101 | /* Main Table */ 102 | 103 | #disassembly_container, 104 | .disassembly_container { 105 | padding: 1em 0em 1em 0em; 106 | position: relative; 107 | } 108 | 109 | table.disassembly_table h2 { 110 | font-family: sans-serif; 111 | font-size: smaller; 112 | } 113 | 114 | table.disassembly_table { 115 | border: solid grey; 116 | border-width:0px 0px 1px 0px; 117 | border-collapse: separate; 118 | border-spacing: 0; 119 | } 120 | 121 | table.disassembly_table>tbody>tr>td, 122 | table.disassembly_table>tbody>tr>th.top_row { 123 | min-width: 30em; 124 | max-width: 40em; 125 | } 126 | 127 | table.disassembly_table td, 128 | table.disassembly_table th { 129 | padding: 2px 4px; 130 | border: solid grey; 131 | border-width:0px 1px 0px 1px; 132 | } 133 | 134 | 135 | table.disassembly_table th.left_column, 136 | table.disassembly_table th.label_column, 137 | table.disassembly_table th.cat_column, 138 | table.disassembly_table th.decimal_column { 139 | border: 1px solid black; 140 | border-width: 1px 0px 0px 1px; 141 | color: var(--main-background); 142 | background: var(--border-color); 143 | position: sticky; 144 | } 145 | 146 | table.disassembly_table th.decimal_column { 147 | border-width: 1px 1px 0px 1px; 148 | } 149 | 150 | table.disassembly_table th.label_column { 151 | font-family: monospace; 152 | text-align: center; 153 | color: yellow; 154 | } 155 | 156 | 157 | table.disassembly_table tr:nth-of-type(1) th:nth-child(1 of .cat_column) { 158 | color: var(--main-background); 159 | } 160 | 161 | table.disassembly_table th.cat_column { 162 | font-size: smaller; 163 | text-align: center; 164 | color: var(--main-color); 165 | } 166 | 167 | /* only hide the top border if it is not the first entry */ 168 | table.disassembly_table tr:not(tr:nth-of-type(2)) th.empty { 169 | /* visibility: hidden;*/ 170 | border-top-color: var(--border-color); 171 | } 172 | 173 | table.disassembly_table th.left_column { z-index: 11; } 174 | table.disassembly_table th.label_column { z-index: 12; } 175 | table.disassembly_table th.cat_column { z-index: 13; } 176 | table.disassembly_table th.decimal_column { z-index: 14; } 177 | 178 | 179 | th.left_column a { 180 | color: var(--main-background); 181 | } 182 | 183 | th.left_column a:target { 184 | color: yellow; 185 | text-shadow: 0px 1px black; 186 | } 187 | 188 | /* 189 | th.left_column a:target::before { 190 | content: "▹"; 191 | } 192 | */ 193 | 194 | 195 | details { 196 | font-family: serif; 197 | } 198 | summary { 199 | font-family: Helvetica; 200 | } 201 | 202 | 203 | table.disassembly_table th.top_row { 204 | color: var(--main-background); 205 | border-width: 1px; 206 | } 207 | 208 | table.disassembly_table tr { background: #f0f0f0; } 209 | table.disassembly_table tr:nth-child(even) { background: #ffffff; } 210 | 211 | 212 | /* Main Table: Multicolor */ 213 | 214 | table.disassembly_table th:nth-child(1 of .top_row) { background: var(--title-color-1); } 215 | table.disassembly_table th:nth-child(2 of .top_row) { background: var(--title-color-2); } 216 | table.disassembly_table th:nth-child(3 of .top_row) { background: var(--title-color-3); } 217 | table.disassembly_table th:nth-child(4 of .top_row) { background: var(--title-color-4); } 218 | table.disassembly_table th:nth-child(5 of .top_row) { background: var(--title-color-5); } 219 | table.disassembly_table th:nth-child(6 of .top_row) { background: var(--title-color-6); } 220 | table.disassembly_table th:nth-child(7 of .top_row) { background: var(--title-color-7); } 221 | table.disassembly_table th:nth-child(8 of .top_row) { background: var(--title-color-8); } 222 | table.disassembly_table th:nth-child(9 of .top_row) { background: var(--title-color-9); } 223 | table.disassembly_table th:nth-child(10 of .top_row) { background: var(--title-color-10); } 224 | table.disassembly_table th:nth-child(11 of .top_row) { background: var(--title-color-11); } 225 | 226 | 227 | table.disassembly_table tr td:nth-of-type(1) { background: var(--dark-color-1); } 228 | table.disassembly_table tr:nth-child(even) td:nth-of-type(1) { background: var(--light-color-1); } 229 | 230 | table.disassembly_table tr td:nth-of-type(2) { background: var(--dark-color-2); } 231 | table.disassembly_table tr:nth-child(even) td:nth-of-type(2) { background: var(--light-color-2); } 232 | 233 | table.disassembly_table tr td:nth-of-type(3) { background: var(--dark-color-3); } 234 | table.disassembly_table tr:nth-child(even) td:nth-of-type(3) { background: var(--light-color-3); } 235 | 236 | table.disassembly_table tr td:nth-of-type(4) { background: var(--dark-color-4); } 237 | table.disassembly_table tr:nth-child(even) td:nth-of-type(4) { background: var(--light-color-4); } 238 | 239 | table.disassembly_table tr td:nth-of-type(5) { background: var(--dark-color-5); } 240 | table.disassembly_table tr:nth-child(even) td:nth-of-type(5) { background: var(--light-color-5); } 241 | 242 | table.disassembly_table tr td:nth-of-type(6) { background: var(--dark-color-6); } 243 | table.disassembly_table tr:nth-child(even) td:nth-of-type(6) { background: var(--light-color-6); } 244 | 245 | table.disassembly_table tr td:nth-of-type(7) { background: var(--dark-color-7); } 246 | table.disassembly_table tr:nth-child(even) td:nth-of-type(7) { background: var(--light-color-7); } 247 | 248 | table.disassembly_table tr td:nth-of-type(8) { background: var(--dark-color-8); } 249 | table.disassembly_table tr:nth-child(even) td:nth-of-type(8) { background: var(--light-color-8); } 250 | 251 | table.disassembly_table tr td:nth-of-type(9) { background: var(--dark-color-9); } 252 | table.disassembly_table tr:nth-child(even) td:nth-of-type(9) { background: var(--light-color-9); } 253 | 254 | table.disassembly_table tr td:nth-of-type(10) { background: var(--dark-color-10); } 255 | table.disassembly_table tr:nth-child(even) td:nth-of-type(10) { background: var(--light-color-10); } 256 | 257 | table.disassembly_table tr td:nth-of-type(11) { background: var(--dark-color-11); } 258 | table.disassembly_table tr:nth-child(even) td:nth-of-type(11) { background: var(--light-color-11); } 259 | -------------------------------------------------------------------------------- /src/commentaries.js: -------------------------------------------------------------------------------- 1 | /* 2 | // Add this to the using HTML with the relevant config changes: 3 | 12 | 13 | }; 14 | */ 15 | 16 | // Global variable to store the configuration 17 | let config; 18 | 19 | window.onload = function() { 20 | config = pageConfiguration; 21 | //console.log(config); 22 | init() 23 | }; 24 | 25 | function init() { 26 | var tbl = document.getElementById("disassembly_table"); 27 | for (var i = 0; i < config.number_of_entries; i++) { 28 | var key = config.storage_prefix + "column_" + i; 29 | var element_name = "checkbox_" + i; 30 | var checked = localStorage.getItem(key) != "hidden"; 31 | document.getElementById(element_name).checked = checked; 32 | hideCol(i, checked); 33 | } 34 | 35 | if (config.has_decimal_column) { 36 | var key = config.storage_prefix + "column_decimal"; 37 | var element_name = "checkbox_decimal"; 38 | var visible = localStorage.getItem(key) == "visible"; 39 | document.getElementById(element_name).checked = visible; 40 | toggleDecimal(visible); 41 | } 42 | } 43 | 44 | function toggleDecimal(visible) { 45 | var tbl = document.getElementById("disassembly_table"); 46 | for (var i = 0; i < tbl.rows.length; i++) { 47 | tbl.rows[i].cells[config.decimal_column].style.display = visible ? "" : "none"; 48 | } 49 | var key = config.storage_prefix + "column_decimal"; 50 | //var cnt = document.getElementById("disassembly_container"); 51 | if (visible) { 52 | localStorage.setItem(key, "visible"); 53 | } else { 54 | localStorage.removeItem(key); 55 | } 56 | } 57 | 58 | function hideCol(col, checked) { 59 | var tbl = document.getElementById("disassembly_table"); 60 | for (var i = 0; i < tbl.rows.length; i++) { 61 | tbl.rows[i].cells[col + config.number_of_header_columns].style.display = checked ? "" : "none"; 62 | } 63 | var key = config.storage_prefix + "column_" + col; 64 | if (checked) { 65 | localStorage.removeItem(key); 66 | } else { 67 | localStorage.setItem(key, "hidden"); 68 | } 69 | } 70 | 71 | function openAll() { 72 | var elems = document.getElementsByTagName("details"); 73 | document.getElementById("toggle_details_button").innerHTML = "Hide All Details"; 74 | document.getElementById("toggle_details_button").setAttribute("onClick", "javascript: closeAll();"); 75 | 76 | for (let item of elems) { 77 | item.setAttribute("open", true); 78 | } 79 | } 80 | 81 | function closeAll() { 82 | var elems = document.getElementsByTagName("details"); 83 | document.getElementById("toggle_details_button").setAttribute("onClick", "javascript: openAll();"); 84 | document.getElementById("toggle_details_button").innerHTML = "Expand All Details"; 85 | 86 | for (let item of elems) { 87 | item.removeAttribute("open"); 88 | } 89 | } 90 | -------------------------------------------------------------------------------- /src/kernal/kernal_64intern.txt: -------------------------------------------------------------------------------- 1 | - C64 KERNAL API (64 intern) 2 | - 3 | - Baloui, Brückmann, Englisch, Felt, Gelfand, Gerits, Krsnik: 4 | - Das neue Commodore-64-intern-Buch. 5 | - Düsseldorf: Data-Becker, 1990. 6 | - ISBN 3890113079 7 | - 8 | - Corrections (typos as well as content), translations etc. 9 | - welcome at: https://github.com/mist64/c64ref 10 | - 11 | ---------------------------------------------- 12 | - 13 | # This plain text file is formatted so that it can be automatically 14 | # parsed in order to create cross-references etc. 15 | # * Lines starting with "-" is top-level information. The first line 16 | # is the title. Lines starting with "--" are separators. 17 | # * Lines starting with "#" are internal comments. 18 | # * Hex addresses start at column 0. 19 | # * Symbols start at column 7. 20 | # * The description starts at column 15. 21 | # * All lines of the description until the first blank line are 22 | # combined into the heading. 23 | # * The remaining text is in MarkDown format. 24 | # The encoding is UTF-8. 25 | 26 | $FF81 Video-Reset 27 | 28 | $FF84 CIAs initialisieren 29 | 30 | $FF87 RAM löschen/testen 31 | 32 | $FF8A I/O initialisieren 33 | 34 | $FF8D I/O Vektoren initialisieren 35 | 36 | $FF90 Setzt Flag für Ausgabe von Systemmeldung 37 | 38 | $FF93 schickt Sekundäradresse nach einem LISTEN-Befehl 39 | auf den IEC-Bus 40 | 41 | $FF96 schickt Sekundäradresse nach einem TALK-Befehl 42 | auf den IEC-Bus 43 | 44 | $FF99 holt bei gesetzem Carry-Flag die höchste RAM- 45 | Adresse nach X und Y, bei gelöschtem Carry- 46 | Flag wird die Adresse von X und Y gesetzt. 47 | 48 | $FF9C dieselbe Funktion wie $FF99, jedoch für den 49 | RAM-Anfang 50 | 51 | $FF9F fragt die Tastatur ab 52 | 53 | $FFA2 setzt das Time-out-Flag für den IEC-Bus 54 | 55 | $FFA5 holt ein Byte vom IEC-Bus in den Akku 56 | 57 | $FFA8 gibt ein Byte aus dem Akku an den IEC-Bus aus 58 | 59 | $FFAB sendet UNTALK-Befehl auf den IEC-Bus 60 | 61 | $FFAE sendet UNLISTEN-Befehl auf den IEC-Bus 62 | 63 | $FFB1 sendet LISTEN-Befehl auf den IEC-Bus 64 | 65 | $FFB4 sendet TALK-Befehl zum IEC-Bus 66 | 67 | $FFB7 holt das Statuswort in den Akku 68 | 69 | $FFBA setzt die Fileparameter, Akku muß logische 70 | Filenummer enthalten, X = Gerätenummer und 71 | Y = Sekundäradresse 72 | 73 | $FFBD setzt Parameter des Filenamens, Akku muß 74 | Länge des Namens enthalten, X und Y enthalten 75 | die Adresse des Filenamens (Low- und High-Byte) 76 | 77 | $FFC0 OPEN-Befehl, öffnet logische Datei 78 | 79 | $FFC3 CLOSE-Befehl, schließt logische Datei, 80 | Akku muß logische Filenummer enthalten 81 | 82 | $FFC6 CHKIN setzt folgende Eingabe auf logische 83 | Datei, die in X übergeben wird. 84 | Die logische Datei muß vorher mit der 85 | OPEN-Routine geöffnet werden. 86 | 87 | $FFC9 CKOUT setzt folgende Ausgabe auf logische 88 | Datei, die in X übergeben wird. 89 | Die logische Datei muß vorher mit der 90 | OPEN-Routine geöffnet werden. 91 | 92 | $FFCC CLRCH setzt die Ein- und Ausgabe wieder 93 | auf Standard (Tastatur/Bildschirm) 94 | 95 | $FFCF BASIN Eingabe, holt ein Zeichen in den Akku 96 | 97 | $FFD2 BSOUT Ausgabe, gibt Zeichen im Akku aus 98 | 99 | $FFD5 LOAD, lädt Programm in den Speicher 100 | 101 | $FFD8 SAVE, speichert Programm ab 102 | 103 | $FFDB setzt die laufende Zeit neu 104 | 105 | $FFDE holt die laufende Zeit 106 | 107 | $FFE1 fragt die STOP-Taste ab 108 | 109 | $FFE4 GET, holt ein Zeichen in den Akku 110 | 111 | $FFE7 CLALL, setzt alle Ein-/Ausgabekanäle 112 | zurück, die Dateien werden jedoch 113 | nicht geschlossen 114 | 115 | $FFEA erhöht die laufende Zeit um eine 116 | sechzigstel Sekunde 117 | 118 | $FFED SCREEN holt die Anzahl der Zeilen und 119 | Spalten des Bildschirms 120 | 121 | $FFF0 bei gelöschtem Carry-Flag wird der Cursor 122 | auf die Position X/Y gesetzt, bei gesetztem 123 | Carry-Flag wird die Cursorposition nach X/Y 124 | geholt (X-Reg = Zeile, Y-Reg = Spalte) 125 | 126 | $FFF3 holt die Startadresse des I/O-Bausteins 127 | -------------------------------------------------------------------------------- /src/kernal/kernal_fk.txt: -------------------------------------------------------------------------------- 1 | - C64 KERNAL API (Frank Kontros) 2 | - 3 | - C64 KERNAL jump table, composed by Frank Kontros (jeno@kontr.uzhgorod.ua). 4 | - http://www.zimmers.net/anonftp/pub/cbm/c64/programming/documents/c64-kernal.txt 5 | - 6 | - Corrections (typos as well as content), translations etc. 7 | - welcome at: https://github.com/mist64/c64ref 8 | - 9 | ---------------------------------------------- 10 | - 11 | # This plain text file is formatted so that it can be automatically 12 | # parsed in order to create cross-references etc. 13 | # * Lines starting with "-" is top-level information. The first line 14 | # is the title. Lines starting with "--" are separators. 15 | # * Lines starting with "#" are internal comments. 16 | # * Hex addresses start at column 0. 17 | # * Symbols start at column 7. 18 | # * The description starts at column 15. 19 | # * All lines of the description until the first blank line are 20 | # combined into the heading. 21 | # * The remaining text is in MarkDown format. 22 | # The encoding is UTF-8. 23 | 24 | $FF81 CINT init VIC & screen editor 25 | 26 | - - - - - - A X Y 27 | 28 | $FF84 IOINIT initialize CIA & IRQ 29 | 30 | - - - - - - A X Y 31 | 32 | $FF87 RAMTAS RAM test & search RAM end 33 | 34 | - - - - - - A X Y 35 | 36 | $FF8A RESTOR restore default I/O vectors 37 | 38 | - - - - - - A - Y 39 | 40 | $FF8D VECTOR read/set I/O vectors 41 | 42 | in: C=0 moves from Y/X to vectors - X Y - X - A - Y 43 | C=1 moves vectors to Y/X - X Y - X - A - Y 44 | 45 | $FF90 SETMSG enable/disable KERNAL messages 46 | 47 | in: A bit7=1 error msgs on A - - - - - A - - 48 | bit6=1 control msgs on 49 | 50 | $FF93 SECOND send secondary addr after listen 51 | 52 | in: A=secondary address A - - - - - A - - 53 | 54 | $FF96 TKSA send secondary addr after talk 55 | 56 | in: A=secondary address A - - - - - A - - 57 | 58 | $FF99 MEMTOP read/set top of memory 59 | 60 | in: C=0; Y/X address - X Y - X Y - - - 61 | out:C=1; Y/X address - - - - X Y - X Y 62 | 63 | $FF9C MEMBOT read/set bottom of memory 64 | 65 | in: C=0; Y/X address - X Y - X Y - - - 66 | out:C=1; Y/X address - - - - X Y - X Y 67 | 68 | $FF9F SCNKEY scan keyboard 69 | 70 | - - - - - - A X Y 71 | 72 | $FFA2 SETTMO set IEEE timeout 73 | 74 | in: A bit7=1 disable, bit7=0 enable A - - A - - - - - 75 | 76 | $FFA5 ACPTR input byte from SERIAL 77 | 78 | out:A=byte, C=1 and ST=2 if timeout - - - A - - A - - 79 | 80 | $FFA8 CIOUT output byte to SERIAL 81 | 82 | in: A=byte, C=1 and ST=3 if timeout A - - A - - - - - 83 | 84 | $FFAB UNTLK untalk all SERIAL devices 85 | 86 | - - - - - - A - - 87 | 88 | $FFAE UNLSN unlisten all SERIAL devices 89 | 90 | - - - - - - A - - 91 | 92 | $FFB1 LISTEN make SERIAL device listen 93 | 94 | in: A=device number A - - - - - A - - 95 | 96 | $FFB4 TALK make SERIAL device talk 97 | 98 | in: A=device number A - - - - - A - - 99 | 100 | $FFB7 READST read I/O status byte 101 | 102 | out:A=status byte - - - A - - A - - 103 | 104 | $FFBA SETLFS set file parameters 105 | 106 | in: A=logical file number A X Y A X Y - - - 107 | X=device number 108 | Y=secondary addr 109 | 110 | $FFBD SETNAM set file name 111 | 112 | in: A=length of filename A X Y A X Y - - - 113 | Y/X=pointer to name addr 114 | 115 | $FFC0 OPEN open log.file after SETLFS,SETNAM 116 | 117 | out:A=error# if C=1 - - - - - - A X Y 118 | 119 | $FFC3 CLOSE close a logical file 120 | 121 | in: A=logical file number A - - - - - A X Y 122 | 123 | $FFC6 CHKIN open channel for input 124 | 125 | in: X=logical file number - X - - - - A X - 126 | 127 | $FFC9 CHKOUT open channel for output 128 | 129 | in: X=logical file number - X - - - - A X - 130 | 131 | $FFCC CLRCHN restore default devices 132 | 133 | - - - - - - A X - 134 | 135 | $FFCF CHRIN input character 136 | 137 | out:A=character, C=1 and ST=error - - - A - - A - - 138 | 139 | $FFD2 CHROUT output character 140 | 141 | in: A=character, C=1 and ST=error A - - A - - - - - 142 | 143 | $FFD5 LOAD load after call SETLFS,SETNAM 144 | 145 | in: A=0 load, a=1 verify A X Y A X Y A X Y 146 | Y/X = dest.addr if sec.addr=0 147 | 148 | $FFD8 SAVE save after call SETLFS,SETNAM 149 | 150 | in: A=zero page pointer to start.addr A X Y - - - A X Y 151 | Y/X=ending address 152 | 153 | $FFDB SETTIM set jiffy clock 154 | 155 | in: A=MSB, X=middle, Y=LSB A X Y - - - - - - 156 | 157 | $FFDE RDTIM read jiffy clock 158 | 159 | out:A=MSB, X=middle, Y=LSB - - - A X Y A X Y 160 | 161 | $FFE1 STOP check stop key 162 | 163 | out:Z=0 if STOP not used; X unchanged - - - A - - A - - 164 | Z=1 if STOP used; X changed - - - A - - A X - 165 | A=last line of keyboard matrix 166 | 167 | $FFE4 GETIN get a byte from channel 168 | 169 | out:keyboard:A=0 if puffer empty - - - A - - A X Y 170 | RS232:status byte - - - A - - A - - 171 | serial:status byte - - - A - - A - - 172 | tape:status byte - - - A - - A - Y 173 | 174 | $FFE7 CLALL close or abort all files 175 | 176 | - - - - - - A X - 177 | 178 | $FFEA UDTIM update jiffy clock 179 | 180 | - - - - - - A X - 181 | 182 | $FFED SCREEN return screen size 183 | 184 | out:X=columns, Y=rows - - - - X Y - X Y 185 | 186 | $FFF0 PLOT read/set cursor position 187 | 188 | in: C=0, X=row, Y=column - X Y - X Y - - - 189 | out:C=1, X=row, Y=column - - - - X Y - X Y 190 | 191 | $FFF3 IOBASE returns the addr of I/O devices 192 | 193 | out:Y/X=addr($DC00) - - - - X Y - X Y 194 | -------------------------------------------------------------------------------- /src/kernal/out.sh: -------------------------------------------------------------------------------- 1 | ./generate.py > $1/index.html 2 | -------------------------------------------------------------------------------- /src/style.css: -------------------------------------------------------------------------------- 1 | 2 | /* Colors */ 3 | 4 | :root { 5 | --main-background: #e0f0ff; 6 | --main-color: #004080; 7 | --main-background-recessed: #d2dff4; 8 | 9 | --highlight-background: #006ad5; 10 | 11 | --border-color: #0060a0; 12 | } 13 | 14 | 15 | /**/ 16 | 17 | body { 18 | background: var(--main-background); 19 | color: var(--main-color); 20 | font-family: Helvetica; 21 | margin: 0px; 22 | } 23 | 24 | a { 25 | color: var(--border-color); 26 | } 27 | 28 | header { 29 | background: var(--main-background-recessed); 30 | border-bottom: solid 1px #bdc8db; 31 | padding-bottom: 0.5rem; 32 | margin-bottom: 1.6rem; 33 | } 34 | 35 | nav { 36 | margin-bottom: 1.3rem; 37 | } 38 | 39 | #headline, #byline, footer > h2, footer > h3 { 40 | padding-left: 16px; 41 | padding-right: 16px; 42 | } 43 | 44 | main > div, footer > div { 45 | padding-left: 1rem; 46 | padding-right: 1rem; 47 | padding-bottom: 0.5rem; 48 | 49 | } 50 | 51 | footer { 52 | background: var(--main-background-recessed); 53 | border-top: solid 1px #bdc8db; 54 | margin-top: 1.6rem; 55 | padding-top: 0.3rem; 56 | padding-bottom: 1.3rem; 57 | } 58 | 59 | 60 | h1 { 61 | font-size: large; 62 | } 63 | 64 | /* Navigation */ 65 | 66 | .topnav { 67 | color: black; 68 | background-color: white; 69 | overflow: hidden; 70 | padding: 0px; 71 | border-bottom: solid 2px var(--main-color); 72 | } 73 | 74 | .topnav a, .topnav div { 75 | float: left; 76 | text-align: center; 77 | padding: 8px 10px; 78 | margin: 0px; 79 | text-decoration: none; 80 | font-size: 13px; 81 | } 82 | 83 | .topnav div { 84 | font-weight: bold; 85 | } 86 | 87 | .topnav a { 88 | color: white; 89 | background-color: #333; 90 | border-right:solid 1px var(--main-background); 91 | } 92 | 93 | .topnav a:hover { 94 | background-color: #abb; 95 | color: black; 96 | } 97 | 98 | .topnav a.active { 99 | background-color: var(--highlight-background); 100 | color: white; 101 | } 102 | 103 | .topnav a.home, .topnav a.home:hover { 104 | color: #666; 105 | background-color: white; 106 | font-weight:bolder; 107 | border:none; 108 | display: block; 109 | float:right; 110 | margin-right: 80px; 111 | } 112 | 113 | 114 | /* Tables */ 115 | 116 | table { 117 | border-collapse: collapse; 118 | border: solid 1px var(--border-color); 119 | color: black; 120 | } 121 | 122 | tr, td, th { 123 | margin: 0px; 124 | text-align:left; 125 | vertical-align: top; 126 | } 127 | 128 | /* octocat */ 129 | /* # http://tholman.com/github-corners/ */ 130 | 131 | .github-corner:hover .octo-arm {animation:octocat-wave 560ms ease-in-out} 132 | 133 | @keyframes octocat-wave{ 134 | 0%,100%{transform:rotate(0)} 135 | 20%,60%{transform:rotate(-25deg)} 136 | 40%,80%{transform:rotate(10deg)}} 137 | 138 | @media (max-width:500px){ 139 | .github_corner:hover .octo-arm{animation:none} 140 | .github_corner .octo-arm{animation:octocat-wave 560ms ease-in-out}} 141 | -------------------------------------------------------------------------------- /validate_html.sh: -------------------------------------------------------------------------------- 1 | # #!/bin/sh 2 | 3 | # Using https://validator.github.io/validator/ 4 | 5 | 6 | DIRECTORY_PATH="out" 7 | 8 | REGEXP=".*(" # open regex 9 | 10 | # TODO: XXX fix 11 | 12 | # > duplicate ID 13 | REGEXP="${REGEXP}Duplicate.ID|The.first.occurrence.of.ID" 14 | 15 | # > unescaped from kernal txts 16 | REGEXP="${REGEXP}|not.allowed.as.child.of.element|Unclosed.element|but.there.were.open.elements|Bad.character|violates.nesting.rules" 17 | # > unescaped <> from c64mem 18 | REGEXP="${REGEXP}|Probable.causes..Unescaped" 19 | 20 | REGEXP="${REGEXP}).*" # close regex 21 | 22 | #REGEXP="" # no filter, all errors/warnings 23 | 24 | # show info/warnings and errors 25 | PARAMS='--format gnu --asciiquotes '$DIRECTORY_PATH 26 | 27 | # only show errors 28 | #PARAMS='--errors-only '$PARAMS 29 | 30 | HTML_PARAMS='--filterpattern '$REGEXP' '$PARAMS 31 | 32 | echo $HTML_PARAMS 33 | 34 | #echo "HTML:" 35 | vnu --skip-non-html $HTML_PARAMS 36 | 37 | # echo -e "\n\n\n CSS:" 38 | # vnu --skip-non-css $PARAMS 39 | # 40 | # echo -e "\n\n\n SVG:" 41 | # vnu --skip-non-svg $PARAMS 42 | --------------------------------------------------------------------------------