{"id":38488648,"url":"https://github.com/gerph/riscos-portable-prototype","last_synced_at":"2026-01-17T05:39:38.963Z","repository":{"id":128876857,"uuid":"456301607","full_name":"gerph/riscos-portable-prototype","owner":"gerph","description":"RISC OS Portable module prototype code","archived":false,"fork":false,"pushed_at":"2026-01-11T10:31:17.000Z","size":71,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-11T15:29:00.766Z","etag":null,"topics":["example-code","riscos","riscos-ci","riscos64"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gerph.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["gerph"]}},"created_at":"2022-02-06T23:40:50.000Z","updated_at":"2026-01-11T10:27:15.000Z","dependencies_parsed_at":"2023-04-29T18:32:30.080Z","dependency_job_id":null,"html_url":"https://github.com/gerph/riscos-portable-prototype","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gerph/riscos-portable-prototype","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerph%2Friscos-portable-prototype","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerph%2Friscos-portable-prototype/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerph%2Friscos-portable-prototype/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerph%2Friscos-portable-prototype/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gerph","download_url":"https://codeload.github.com/gerph/riscos-portable-prototype/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerph%2Friscos-portable-prototype/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28500586,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T04:31:57.058Z","status":"ssl_error","status_checked_at":"2026-01-17T04:31:45.816Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["example-code","riscos","riscos-ci","riscos64"],"created_at":"2026-01-17T05:39:38.260Z","updated_at":"2026-01-17T05:39:38.952Z","avatar_url":"https://github.com/gerph.png","language":"HTML","funding_links":["https://github.com/sponsors/gerph"],"categories":[],"sub_categories":[],"readme":"# Portable module prototype code\n\n## Summary\n\nThis repository holds prototype code suitable for use in building a\nRISC OS **Portable** module. The **Portable** module provides control\nfor the power management and system control functions on portable\ndevices, together with monitoring of the charging and battery management\nfunctions.\n\n## Background\n\nDuring the Select development one of the longer term goals was to allow\nfor portable devices to be used once the hardware became available and\nviable for general use. The failed Netbook project had shown that not\nonly was RISC OS not ready to be ported to such devices, but much of\nthe functionality within the OS for portable systems had not aged well.\n\nImprovements were made within the OS for some of the areas that would\nmatter. The most obvious of these were improved network address management\nfor roaming, improved performance when idling or performing common\noperations, interfaces for improved interactive system notifications,\nand input improvements such as touch screen and hot key support.\n\nAs part of the power management work, it was recognised that whilst there\nwas documentation of how the Portable module worked, it had not been\nupdated to reflect the more modern versions of the RISC OS Portable module,\nas had been used on the Stork. Additionally, the only implementation of\nthe Portable module was written in assembler, and tightly coupled to the\nhardware.\n\nDocumentation was created from the Portable module chapter in the PRM\nand updated with the new details.\n\nA new prototype or skeleton module was created which could be delivered\nto developer when they needed to create such a module, which\nhad been written in C with the intention that it be easy to customise\nto the developer's hardware.\n\nNo new assembler modules were being written for RISC OS at this time,\nand providing a C prototype meant that the development time for a given\nproject would be greatly reduced.\n\nThese components would make up a small Software Development Kit (SDK)\nfor anyone needing it. As the uptake of the prior PNG SDK had been low,\nthe SDK was not completed to the point of release, and the module was\nleft in a state that it could be completed relatively easily should\nthe need arise. The SDK, like the PNG SDK, would have been released\nunder a permissive license, much as Acorns example and base code had\nbeen.\n\n\n## Portable module SDK\n\nThis repository contains some of what that SDK would have contained.\nIt comprises:\n\n* Documentation for the Portable module, within the `prminxml/portable.xml`\n  and `prminxml/portable.html` files.\n* Source code suitable for building a prototype module which can be\n  modified by developers.\n\nIt is released under the permissive MIT license here to make its reuse\neasier, as was the original intent.\n\n## Source code\n\nThe C source is supplied in two parts - a general part (`c/portable`),\nand an implementation-specific part (`c/impl`). The intent is that the\ngeneral part not need to be updated much for any given hardware\nimplementation. The implementation-specific part, however, contains\nstub implementations of the interfaces which have been abstracted from\nthe RISC OS interfacing.\n\nEach function within the implementation-specific code contains a comment\ndescribing what operations the function should perform, and some dummy\nreturn values which allow the module to report values similar to the\nRiscPC hardware. The implementation of these functions should be replaced\nby suitable code which communicates with the hardware on the device\nthat the module is intended for.\n\nIt is expected that developers be familiar with the Portable chapter\nfrom the PRM, which is supplied within this repository.\n\n\n## Automated build\n\nThis module uses the RISC OS build system to build the module on each\ncommit of the code.\n\n\n## Failings\n\nAs the SDK was not complete there are still some failings...\n\n* *Testing*: The build of the module does not contain any specific test code, other\n  than to build and load the module to check that it does not crash on\n  initialisation. Test code would be required for given hardware, but\n  this is obviously also not required.\n* *MessageTrans*: The module does not perform MessageTrans translations\n  of the error messages.\n* *Updated interfaces*: The documentation and the module have not been\n  updated to reflect the developments that have happened since 2003.\n  As 19 years have elapsed, the current implementation of the Portable\n  module will have expanded as such devices are now more accessible.\n\nThese failings may be addressed in the future. Pull requests are gratefully\nreceived.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgerph%2Friscos-portable-prototype","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgerph%2Friscos-portable-prototype","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgerph%2Friscos-portable-prototype/lists"}