Mirror of CollapseOS
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

README.md 3.2KB

5 years ago
4 years ago
5 years ago
5 years ago
4 years ago
5 years ago
4 years ago
5 years ago
4 years ago
5 years ago
5 years ago
5 years ago
4 years ago
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. # Collapse OS
  2. *Bootstrap post-collapse technology*
  3. Collapse OS is a Forth operating system and a collection of tools and
  4. documentation with a single purpose: preserve the ability to program micro-
  5. controllers through civilizational collapse.
  6. It it designed to:
  7. 1. Run on minimal and improvised machines.
  8. 2. Interface through improvised means (serial, keyboard, display).
  9. 3. Edit text files.
  10. 4. Compile assembler source files for a wide range of MCUs and CPUs.
  11. 5. Read and write from a wide range of storage devices.
  12. 6. Assemble itself and deploy to another machine.
  13. Additionally, the goal of this project is to be as self-contained as possible.
  14. With a copy of this project, a capable and creative person should be able to
  15. manage to build and install Collapse OS without external resources (i.e.
  16. internet) on a machine of her design, built from scavenged parts with low-tech
  17. tools.
  18. ## Getting started
  19. Documentation is in text files in `doc/`. Begin with `intro.txt`.
  20. Collapse OS can run on any POSIX platform and builds easily.
  21. See `/cvm/README.md` for instructions.
  22. Alternatively, there's also [Michael Schierl's JS Collapse OS emulator][jsemul]
  23. which is awesome and allows you to run Collapse OS from your browser, but it
  24. isn't always up to date. The "Javascript Forth" version is especially awesome:
  25. it's not a z80 emulator, but a *javascript port of Collapse OS*!
  26. ## Organisation of this repository
  27. * `blk.fs`: Collapse OS filesystem's content. See below.
  28. * `cvm`: A C implementation of Collapse OS, allowing it to run natively on any
  29. POSIX platform.
  30. * `doc`: Documentation.
  31. * `arch`: collection of makefiles that assemble Collapse OS on different
  32. machines.
  33. * `tools`: Tools for working with Collapse OS from "modern" environments. For
  34. example, tools for facilitating data upload to a Collapse OS machine
  35. through a serial port.
  36. * `emul`: Tools for running Collapse OS in an emulated environment.
  37. * `tests`: Automated test suite for the whole project.
  38. ## blk.fs
  39. This file is a big text file containing the "real deal", that is, the contents
  40. of Collapse OS' filesystem. That filesystem contains everything that a
  41. post-collapse computer would manage, that is, all Forth and assembler source
  42. code for the tools it needs to fulfill its goals.
  43. The Collapse OS filesystem is a simple sequence of 1024 bytes blocks. That is
  44. not very workable in the text editor of a modern system. `blk.fs` represents an
  45. "unpacked" view of that block system. Each block (16 lines max per block, 64
  46. chars max per line) begins with a marker indicating the block number of the
  47. contents that follow.
  48. Blocks must be in ascending order.
  49. That file can be "packed" to a real blkfs with `/tools/blkpack`. A real blkfs
  50. can be "unpacked" to its text file form with `/tools/blkunpack`.
  51. ## Status
  52. The project unfinished but is progressing well! See [Collapse OS' website][web]
  53. for more information.
  54. ## Looking for the assembler version?
  55. The Forth-based Collapse OS is the second incarnation of the concept. The first
  56. one was entirely written in z80 assembly. If you're interested in that
  57. incarnation, checkout the `z80asm` branch.
  58. [web]: https://collapseos.org
  59. [jsemul]: https://schierlm.github.io/CollapseOS-Web-Emulator/