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
Andrew Kesterson 0d1ecd9bd3 - All tests passing
- Updated README and image
- Added itoa to stdlib
- Implemented modulus math for bcc which has none in the stdlib
- Updated the build scripts to work on Ubuntu 22
- Added bochsrc with some useful overrides (new bochs bios in ubuntu is broken, use the legacy)
- Made most of stdlib compile and run under GNU C for testing
- Improved the tokenizer so it will return tokens of more than one character
- Moved the basic parser from using void pointers to store values to using basic_value unions to represent possible types
- Added tests for the basic tokenizer
2024-05-04 11:31:14 -04:00

1.7 KiB

Build Status

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 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!

Image of Piquant v0.1

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.

How can I run it?

You have to build it to run it. To build it, you need:

  • An x86 computer with a floppy drive (or the bochs emulator)
  • bcc (bruce's c compiler - check your OS's package repositories)
  • nasm
  • gnu make
  • ld86, objdump86, as86

To run it, 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.