mirror of
https://github.com/hsoft/collapseos.git
synced 2025-04-05 06:18:39 +11:00
Mirror of CollapseOS
Totally reworked both parseDecimal and parseDecimalDigit parseDecimalDigit no longer exists, as it could be replaced by an inline alternative in the 4 places it appeared. This saves one byte overall, as the inline version is 4 bytes, 1 byte more than a call, and removing the function saved 5 bytes. It has been reduced from between 52 and 35 cycles (35 on error, so we'd expect 52 cycles to be more common unless someone's really bad at programming) to 14 cycles, so 2-3 times faster. parseDecimal has been reduced by a byte, and now the main loop is just about twice as fast, but with increased overhead. To put this into perspective, if we ignore error cases: For decimals of length 1 it'll be 1.20x faster, for decimals of length 2, 1.41x faster, for length 3, 1.51x faster, for length 4, 1.57x faster, and for length 5 and above, at least 1.48x faster (even faster if there's leading zeroes or not the worst case scenario). I believe there is still room for improvement, since the first iteration can be nearly replaced with "ld l, c" since 0*10=0, but when I tried this I could either add a zero check into the main loop, adding around 40 cycles and 10 bytes, or add 20 bytes to the overhead, and I don't think either of those options are worth it. |
||
---|---|---|
apps | ||
doc | ||
kernel | ||
recipes | ||
tools | ||
.gitignore | ||
.gitmodules | ||
COPYING | ||
README.md |
Collapse OS
Bootstrap post-collapse technology
Collapse OS is a z80 kernel and a collection of programs, tools and documentation that allows you to assemble an OS that, when completed, will be able to:
- Run on minimal and improvised machines.
- Interface through improvised means (serial, keyboard, display).
- Edit text files.
- Compile assembler source files for a wide range of MCUs and CPUs.
- Read and write from a wide range of storage devices.
- Replicate itself.
Additionally, the goal of this project is to be as self-contained as possible. With a copy of this project, a capable and creative person should be able to manage to build and install Collapse OS without external resources (i.e. internet) on a machine of her design, built from scavenged parts with low-tech tools.
Organisation of this repository
kernel
: Pieces of code to be assembled by the user into a kernel.apps
: Pieces of code to be assembled into "userspace" application.recipes
: collection of recipes that assemble parts together on a specific machine.doc
: User guide for when you've successfully installed Collapse OS.tools
: Tools for working with Collapse OS from "modern" environments. Mostly development tools, but also contains emulated zasm, which is necessary to build Collapse OS from a non-Collapse OS machine.
Each folder has a README with more details.
Status
The project unfinished but is progressing well! See Collapse OS' website for more information.