This repository has been archived on 2026-05-18. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
piquant/README.md

47 lines
1.8 KiB
Markdown
Raw Normal View History

2016-03-27 12:19:45 -07:00
[![Build Status](https://travis-ci.org/akesterson/piquant.svg?branch=master)](https://travis-ci.org/akesterson/piquant)
2016-03-27 12:17:44 -07:00
2015-01-25 17:53:17 -08:00
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?
=====
2015-01-27 18:56:12 -08:00
Right now, not much of anything at all. It boots from a 1.44mB floppy disk, and enters into a BASIC interpreter, just like your favorite home computers of the 70s/80s!
2015-01-25 17:53:17 -08:00
![Image of Piquant v0.1](media/screenshot.png)
Currently the BASIC only understands simple arithmetic expressions. But this will soon change; I intend to implement at least as many features as uBASIC, maybe QuickBASIC eventually.
2015-01-25 17:53:17 -08:00
How can I run it?
=====
You have to build it to run it. To build it, you need:
2015-01-25 17:53:17 -08:00
* 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.
2015-01-25 17:53:17 -08:00
2016-03-27 12:26:33 -07:00
make clean run
2015-01-25 17:53:17 -08:00
2016-03-27 12:26:33 -07:00
This will rebuild all of the sources and fire up the bochs emulator. Have fun.
Developing & Testing
=======
2016-03-27 12:28:14 -07:00
You need gcc to run the unit tests. To run the unit tests:
2016-03-27 12:26:33 -07:00
make test
2016-03-27 12:28:14 -07:00
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.