Mirror of CollapseOS
Go to file
Virgil Dupras 34db493496 sdc: implement CRC7 computation on cmds
For now, this achieves nothing else than wasting cycles, but this is the
first step in enabling CRC verifications (CMD59).

I think that this is where my random problems with assembling large
kernels from SDC come from: bad data that isn't detected. If that
happens when PGM loads programs in memory, then anything can happen.

`sdct`, when ran often enough, will error out or corrupt away (go
crazy)...
2019-06-18 14:45:55 -04:00
apps zasm: add support for "XOR n" and "SLA r" 2019-06-18 14:24:43 -04:00
doc tools/upload.py: support files larger than 0xff bytes 2019-06-14 15:06:14 -04:00
kernel sdc: implement CRC7 computation on cmds 2019-06-18 14:45:55 -04:00
recipes recipes/rc2014/zasm: add unpack + verification 2019-06-17 15:35:14 -04:00
tools tools/cfsunpack: new tool 2019-06-17 15:21:05 -04:00
.gitignore zasm emul: bring back kernel/user distinction 2019-05-19 12:57:59 -04:00
.gitmodules Add tools/emul 2019-05-09 12:58:41 -04:00
COPYING Re-license to GPLv3 2019-05-08 20:18:05 -04:00
README.md Update README 2019-06-07 20:08:41 -04:00

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:

  1. Run on an extremely minimal and improvised architecture.
  2. Communicate through a improvised serial interface linked to some kind of improvised terminal.
  3. Edit text files.
  4. Compile assembler source files for a wide range of MCUs and CPUs.
  5. Write files to a wide range of flash ICs and MCUs.
  6. Access data storage from improvised systems.
  7. 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.

Status

The project unfinished but is progressing well! Highlights:

  • Self replicates: Can assemble itself from within itself, given enough RAM and storage.
  • Has a shell that can poke memory, I/O, call arbitrary code from memory.
  • Can "upload" code from serial link into memory and execute it.
  • Can manage multiple "block devices".
  • Can read and write to SD cards.
  • A z80 assembler, written in z80 that is self-assembling and can assemble the whole project.
  • Compact:
    • Kernel: 3K binary, 1800 SLOC.
    • ZASM: 4K binary, 2300 SLOC, 16K RAM usage to assemble kernel or itself.
  • Extremely flexible: Kernel parts are written as loosely knit modules that are bound through glue code. This makes the kernel adaptable to many unforseen situations.
  • From a GNU environment, can be built with minimal tooling: only libz80, make and a C compiler are needed.

More information

Go to Collapse OS' website for more information on the project.