{"id":21145397,"url":"https://github.com/etchedpixels/centuriontools","last_synced_at":"2025-07-09T07:31:22.838Z","repository":{"id":46783814,"uuid":"485926893","full_name":"EtchedPixels/CenturionTools","owner":"EtchedPixels","description":"Warrex Centurion Tool Chain","archived":false,"fork":false,"pushed_at":"2024-07-11T11:51:07.000Z","size":1908,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-07-11T13:21:41.390Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EtchedPixels.png","metadata":{"files":{"readme":"README.libc","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-04-26T19:49:25.000Z","updated_at":"2024-07-11T11:51:12.000Z","dependencies_parsed_at":"2022-09-06T16:40:43.566Z","dependency_job_id":null,"html_url":"https://github.com/EtchedPixels/CenturionTools","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EtchedPixels%2FCenturionTools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EtchedPixels%2FCenturionTools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EtchedPixels%2FCenturionTools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EtchedPixels%2FCenturionTools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EtchedPixels","download_url":"https://codeload.github.com/EtchedPixels/CenturionTools/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225492617,"owners_count":17482924,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-20T08:39:56.695Z","updated_at":"2024-11-20T08:39:57.317Z","avatar_url":"https://github.com/EtchedPixels.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"Most of the libc code is portable. Some of it ends up slower than we would\nlike on TMS99xx because there are fancy ways of handling word alignment that\nwe don't do.\n\nThe malloc/free support requires a subset of brk() and sbrk().\n\nsbrk(0) needs to return the address of the base of free memory\nbrk(n) needs to set the base of free memory to n.\n\nFree memory grows upwards.\n\nA trivial implementation for the TI99/4A with the 0x2000-3FFF area having\nthe stack at the top and malloc space growing up would be something like\nthe following (which also implements non zero sbrk semantics correctly)\n\nstatic unsigned char *mptr = (unsigned char *)0x2000;\n\nvoid *sbrk(inptr_t n)\n{\n\tunsigned char *p = mptr;\n\tmptr += n;\n\treturn p;\n}\n\nint brk(void *p)\n{\n\tmptr = p;\n\treturn 0;\n}\n\nA better implementation might check if it's getting close to the stack and\nreturn -1 (sbrk returns (void *)-1 on error).\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fetchedpixels%2Fcenturiontools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fetchedpixels%2Fcenturiontools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fetchedpixels%2Fcenturiontools/lists"}