Git Product home page Git Product logo

Comments (4)

mist64 avatar mist64 commented on August 11, 2024

WIP https://github.com/commanderx16/x16-rom/tree/compressed_keymaps

from x16-rom.

mist64 avatar mist64 commented on August 11, 2024

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.

mist64 avatar mist64 commented on August 11, 2024

#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.

mist64 avatar mist64 commented on August 11, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.