├── .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 |
--------------------------------------------------------------------------------
/src/6502/mos.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/6502/out.sh:
--------------------------------------------------------------------------------
1 | cp -p index.html $1
2 |
3 | cp -p *.js cpu_*.txt $1
4 |
--------------------------------------------------------------------------------
/src/6502/rockwell.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/6502/wdc.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/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('
')
148 |
149 | print('
')
150 | print('
')
151 |
152 | print('')
153 | print('Disassembly | ')
154 | for i in range(0, files):
155 | print('' + names[i] + ' | ')
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('')
191 | if has_address:
192 | print('')
193 | print('' + asm + ' | ')
194 |
195 | for i in range(0, files):
196 | print('')
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(' | ')
240 | print('
')
241 |
242 | 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 | Palette |
23 | Adjustments |
24 |
25 |
26 |
27 |
114 | |
115 |
116 |
178 | |
179 |
180 |
181 |
182 |
colors
183 |
Link to this Palette
184 |
185 |
186 |
187 |
Colorspace Diagram
188 |
189 |
190 |
191 |
192 | |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
204 | |
205 |
206 |
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 |
242 |
243 |
244 |
245 |
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 |
--------------------------------------------------------------------------------