475caf35f4
... and rename it to KEY?. Then, add KEY from KEY? for its blocking version. I need this for an upcoming Remote Shell feature. If a Collapse OS system remotely controls another shell, it needs to be able to poll both the remote system and the local keyboard at the same time. A blocking KEY is incompatible with this. In some places, the polling mechanism doesn't make sense, so this new KEY? always returns a character. In some places, I just haven't implemented the mechanism yet, so I kept the old blocking code and added a "always 1" flag as a temporary shim. I have probably broken something, but in emulators, Collapse OS runs fine. It's an important reminder of what will be lost with the new "dogfooding" approach (see recent mailing list message): without emulators, it's much harder to to sweeping changes like this without breaking stuff. It's fine, I don't expect many more of these core changes to the system. It's nearly feature-complete. |
||
---|---|---|
.. | ||
.gitignore | ||
cpu.c | ||
cpu.h | ||
forth.c | ||
Makefile | ||
pcat.c | ||
README.md | ||
xcomp.fs |
8086 emulator
This folder contains emulator for 8086 binaries of Collapse OS. The bulk of it is a fork of Fake86 by Mike Chambers.
forth
is an imaginary hardware used for userspace development and testing.
This machine has an imaginary interrupt API and does not conform to PC/AT.
pcat
is a very simple PC/AT emulator. The BIOS interrupt hooks implemented in
it only cover Collapse OS' own needs.
Requirements
You need curses
to build the forth
executable.
Build
Run make
and it builds the forth
and pcat
interpreters.
Usage
The ./forth
executable here works like the one in /cvm
, except that it runs
under an emulated 8086 machine instead of running natively. Refer to
/cvm/README.md
for details.
pcat
needs to be suppied a path to a floppy disk image with a proper MBR.
disk.bin
provided by the pcat
recipe is sufficient.