{"id":19296856,"url":"https://github.com/c3d/db48x","last_synced_at":"2026-01-15T01:24:59.691Z","repository":{"id":62302161,"uuid":"542555981","full_name":"c3d/db48x","owner":"c3d","description":"RPL runtime for the DM42 calculator, in the spirit of HP48/49/50","archived":false,"fork":true,"pushed_at":"2025-12-20T08:16:11.000Z","size":65749,"stargazers_count":163,"open_issues_count":193,"forks_count":29,"subscribers_count":17,"default_branch":"stable","last_synced_at":"2025-12-21T09:52:08.652Z","etag":null,"topics":["calculator","dm42","firmware","swissmicros","swissmicros-devices"],"latest_commit_sha":null,"homepage":"http://48calc.org","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"swissmicros/SDKdemo","license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/c3d.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-09-28T11:29:34.000Z","updated_at":"2025-12-20T08:16:17.000Z","dependencies_parsed_at":"2023-01-31T09:31:35.733Z","dependency_job_id":"be8cbaab-f7b1-41c2-9234-8b8136917769","html_url":"https://github.com/c3d/db48x","commit_stats":null,"previous_names":["c3d/db48x"],"tags_count":88,"template":false,"template_full_name":null,"purl":"pkg:github/c3d/db48x","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c3d%2Fdb48x","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c3d%2Fdb48x/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c3d%2Fdb48x/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c3d%2Fdb48x/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/c3d","download_url":"https://codeload.github.com/c3d/db48x/tar.gz/refs/heads/stable","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c3d%2Fdb48x/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28441031,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-15T00:55:22.719Z","status":"ssl_error","status_checked_at":"2026-01-15T00:55:20.945Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["calculator","dm42","firmware","swissmicros","swissmicros-devices"],"created_at":"2024-11-09T23:00:42.230Z","updated_at":"2026-01-15T01:24:59.656Z","avatar_url":"https://github.com/c3d.png","language":"C++","funding_links":[],"categories":["C++"],"sub_categories":[],"readme":"# DB48X: A modern implementation of RPL\n\nThe DB48X project intends to rebuild and improve the user experience of the\nHP48 family of calculators, notably their \"Reverse Polish Lisp\" (RPL)\nlanguage with its rich set of data types and built-in functions, and\n[Lisp-level programming power](http://www.paulgraham.com/avg.html).\n\nThe project in this repository is presently targeting the\n[SwissMicro DM42](https://www.swissmicros.com/product/dm42) and\n[DM32](https://www.swissmicros.com/product/dm42) calculators.\nYou can [order keyboard overlays](https://www.hpmuseum.org/forum/thread-20113.html) to adjust the calculator's faceplates to DB48X.\nDB48X leverages SwissMicros's built-in software platform, known as\n[DMCP](https://technical.swissmicros.com/dmcp/doc/DMCP-ifc-html/).\nThere is also a simulator that is tested on macOS or Linux, and you can even\n[try it in your browser](http://c3d.github.com/db48x)\n\nIn the long-term, the vision is to be able to port DB48X on a number of\n[different physical calculator platforms](https://www.youtube.com/watch?v=34pPycq8ia8),\nlike the ARM-based\n[HP50 and related machines (HP49, HP48Gii, etc)](https://en.wikipedia.org/wiki/HP_49/50_series),\nand the [HP Prime](https://en.wikipedia.org/wiki/HP_Prime)\n(at least the G1, since the G2 seems a bit more locked down), maybe others.\nThe basis for that work can be found in the [DB48X](https://github.com/c3d/db48x) project.\n\nThis project was presented at [FOSDEM 2023][fosdem23] and [FOSDEM 2024][fosdem24]\n\n[fosdem23]: https://fosdem.org/2023/schedule/event/reversepolishlisp/\n[fosdem24]: https://fosdem.org/2024/schedule/event/fosdem-2024-1990-how-much-math-can-you-fit-in-700k-/\n\n[![FOSDEM 2024 video](http://img.youtube.com/vi/WU5Dg1mPkl8/0.jpg)](https://www.youtube.com/watch?v=WU5Dg1mPkl8\u0026list=PLz1qkflzABy-Cs1R07zGB8A9K5Yjolmlf \"FOSDEM 2024 video\")\n\n## Why name the project DB48X?\n\nDB stands for \"Dave and Bill\", who are more commonly known as Hewlett and\nPackard. The order is reversed compared to HP, since they reportedly chose the\norder at random, and it's about time Dave Packard was given preeminence.\n\nPart of Dave and Bill's great legacy (beyond giving birth to the Silicon Valley)\nis a [legendary series of calculators](https://www.hpmuseum.org).\nThe [HP48](https://en.wikipedia.org/wiki/HP_48_series) remains one of my\nfavorites, notably for its rich built-in programming language, known as [Reverse\nPolish Lisp (RPL)](https://en.wikipedia.org/wiki/RPL_(programming_language)).\nThis project aims at recreating a decent successor to the HP48, at least in\nspirit.\n\n\n## State of the project\n\nThis is currently **UNSTABLE** and **INCOMPLETE** software. Please only consider\ninstalling this if you are a developer and interested in contributing. Or else,\nhave a paperclip at hand just in case you need to reset your calculator.\n\nThe detailed current status is described in the [STATUS file](STATUS.md).\n\n[![Self-test in the simulator](http://img.youtube.com/vi/vT-I3UlROtA/0.jpg)](https://www.youtube.com/watch?v=vT-I3UlROtA \"Self-test demo\")\n\n\n## How to build this project\n\nThere is a separate document explaining [how to build this project](BUILD.md).\nThe simulator includes a test suite, which you should run before submitting\npatches. To run these tests, pass the `-T` option to the simulator, or hit the\n**F12** key in the simulator.\n\n\n## Built-in documentation\n\nThe calculator features an extensive [built-in documentation](help/db48x.md)\nthat uses a restricted version of [Markdown](https://www.markdownguide.org).\nYou access that built-in help by [holding a key down](help/db48x.md#help), or\nusing the [`Help` command](doc/commands/system.md#help)\n\n* [Design overview](help/db48x.md#design-overview)\n* [Keyboard interaction](help/db48x.md#keyboard-interaction)\n* [Soft menus](help/db48x.md#soft-menus)\n\n\n## Other documentation\n\nThere is DMCP interface doc in progress see [DMCP IFC doc](http://technical.swissmicros.com/dmcp/doc/DMCP-ifc-html/)\n(or you can download html zip from [doc directory](http://technical.swissmicros.com/dmcp/doc/)).\n\nThe [source code of the `DM42PGM` program](https://github.com/swissmicros/DM42PGM)\nis also quite informative about the capabilities of the DMCP.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fc3d%2Fdb48x","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fc3d%2Fdb48x","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fc3d%2Fdb48x/lists"}