1
0
mirror of https://github.com/hsoft/collapseos.git synced 2024-12-24 14:28:06 +11:00
collapseos/tools/emul
Virgil Dupras 23f0dc18ca zasm emul: add tooling for includes fsdev
On build, pack `parts/z80` into a CFS and embed it into the emulated
zasm executable as an fsdev. This will allow for the upcoming include
directive to have something to go to.

For now, this is useless except for inflating the emulated zasm's size.
2019-05-16 12:07:57 -04:00
..
libz80@8a1f935daa Add tools/emul 2019-05-09 12:58:41 -04:00
.gitignore zasm emul: add tooling for includes fsdev 2019-05-16 12:07:57 -04:00
bin2c.sh Add tools/emul 2019-05-09 12:58:41 -04:00
Makefile zasm emul: add tooling for includes fsdev 2019-05-16 12:07:57 -04:00
README.md Add tools/emul 2019-05-09 12:58:41 -04:00
shell_.asm parts/z80/fs: add "fopn" command 2019-05-12 15:38:58 -04:00
shell.c tools/emul/shell: fix srong SeekL return value 2019-05-12 14:32:24 -04:00
zasm_glue.asm zasm: big local symbols overhaul 2019-05-16 08:26:00 -04:00
zasm_user.asm zasm: add support for relative labels 2019-05-12 22:07:21 -04:00
zasm.c zasm emul: add tooling for includes fsdev 2019-05-16 12:07:57 -04:00

emul

This is an emulator for a virtual machine that is suitable for running Collapse OS. The goal of this machine is not to emulate real hardware, but rather to serve as a development platform. What we do here is we emulate the z80 part, the 64K memory space and then hook some fake I/Os to stdin, stdout and a small storage device that is suitable for Collapse OS's filesystem to run on.

Through that, it becomes easier to develop userspace applications for Collapse OS.

We don't try to emulate real hardware to ease the development of device drivers because so far, I don't see the advantage of emulation versus running code on the real thing.

Usage

First, make sure that the libz80 git submodule is checked out. If not, run git submodule init && git submodule update.

The Makefile in this folder has multiple targets that all use libz80 as its core. For example, make shell will build ./shell, a vanilla Collapse OS shell. make zasm will build a ./zasm executable, and so on.

See documentation is corresponding source files for usage documentation of each target.