Comments (4)
WIP https://github.com/commanderx16/x16-rom/tree/compressed_keymaps
from x16-rom.
I am no longer convinced of this:
- Mapping everything onto 48ish codes might work, but there could be a keyboard layout that I'm not aware of now that doesn't fit into this.
- We have plenty of ROM space now and could use more than one bank for keymaps.
- We will support user-defined keyboard layouts (#258), so the user can always have the autoboot script load a layout from disk.
- If we reserve ~600 bytes in banked RAM for a loadable keyboard layout anyway, we might as well store compressed layouts in ROM and decompress one into RAM. A quick test got 630 bytes down to 349 bytes for "en_US". This way we can store about 23 keymap pairs (PET & ISO) on 16 KB ROM bank.
from x16-rom.
#258 just defined a fixed keytab format at a fixed banked RAM location.
The next step would be to store the layouts in ROM compressed using the KERNAL's LZSA support. And then to add more layouts.
LZSA gets the 1302 byte keymaps down to 438-478 bytes (average: 459). Plus 8 bytes index header. That's about 35 keyboard layouts. (The previous calculation assumed we'd compress PET and ISO separately.)
from x16-rom.
I asked users in the forum
https://www.commanderx16.com/forum/index.php?/topic/2782-keyboard-layout-survey/
and on FB
https://www.facebook.com/groups/CommanderX16/posts/1158745751543184
what keyboard layout they use. I already did that back in 2019, but maybe I can get a better signal now.
from x16-rom.
Related Issues (20)
- Strange visual glitch in the CX16 web emulator. HOT 1
- Opening banner not displaying
- MEMTOP not returning number of RAM banks? HOT 1
- DOS unit tests 07 and 08 (C: copy/concatenate) are broken HOT 4
- BASIC overflow/hang in SQR() HOT 4
- Screen editor changes colors when deleting across line boundary HOT 3
- GEOS won't start HOT 3
- CMDR-DOS: Input corruption when programmatically reading from a directory listing "$" (SA 0) and another file (SA 2) HOT 4
- LOG(2) inaccurate (slightly) HOT 4
- To match official Perixx keyboard keycaps, treat scroll lock as 40/80 switch in BASIC instead of (or in addition to) F4 HOT 1
- memory_decompress not working when decompressing to VRAM HOT 2
- RFE: method for fetching the current working directory HOT 4
- Cursor not cleared in the BASIC editor on startup HOT 1
- [DOS] Rename across directories on FAT32 has incorrect and possibly undefined behavior HOT 1
- The future of X16 NMI behavior HOT 1
- Changes to basic\token2.s doesn't cause a build HOT 4
- Given SPI_CTRL_AUTOTX doesn't work on hardware it should be removed HOT 1
- Fat32 implementation doesn't understand 0xffffffff in the Free Count field in FSInfo
- Saving a file doesn't update the free space HOT 2
- Overwriting a file doesn't appear to work HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from x16-rom.