49 lines
2.0 KiB
Markdown
49 lines
2.0 KiB
Markdown
[](https://travis-ci.org/akesterson/piquant)
|
|
|
|
Piquant
|
|
====
|
|
|
|
Piquant is a little toy operating system I'm building.
|
|
|
|
Why?
|
|
=====
|
|
|
|
Because it's fun. Don't you like to have fun? Ogre.
|
|
|
|
What does it do?
|
|
=====
|
|
|
|
Right now, not much. It boots from a 1.44mB floppy disk, and enters into a BASIC interpreter, just like your favorite home computers of the 70s/80s!
|
|
|
|

|
|
|
|
Currently the BASIC only understands a few simple basic commands: `PRINT`, `LIST`, `GOTO` and `RUN`. The arithmetic parser was yanked out as part of a refactor that is still ongoing so it can't do math right now. The eventual target is for this to be fully MS BASIC-80 compliant.
|
|
|
|
Beware, this is a work in progress and is probably in some state of brokenness. The last couple of git log entries should be relied upon to understand the current state.
|
|
|
|
How can I run it?
|
|
=====
|
|
|
|
You have to build it to run it. To build it, you need:
|
|
|
|
* bcc (bruce's c compiler - check your OS's package repositories)
|
|
* nasm
|
|
* gnu make
|
|
* ld86, objdump86, as86
|
|
|
|
To run it, you need either an x86 computer with a floppy drive (or the bochs emulator. For emulation you can use any x86 emulator that can boot a floppy image, but the makefile assumes you have 'bochs' installed.
|
|
|
|
make clean run
|
|
|
|
This will rebuild all of the sources and fire up the bochs emulator. Have fun.
|
|
|
|
Developing & Testing
|
|
=======
|
|
|
|
You need gcc to run the unit tests. To run the unit tests:
|
|
|
|
make test
|
|
|
|
Keep in mind that the unit tests are compiled with gcc, not bcc, as I couldn't find an elegant way to make bcc produce objects that could easily be run in linux (especially Travis-CI). So while the tests are an accurate test of the C code under ANSI spec, they make no promises re: what bcc is eventually going to do with that code.
|
|
|
|
New unit tests are created by making a new *.c file in tests/. Drop the name of whatever portions of piquant it relies on into a '.deps' file. Look at the others for examples. |