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.
Andrew Kesterson 591858334b - Added the ability to start a line with a number and store it for later execution
- Added the ability to force immediate mode processing (calculator mode) by beginning a line with =
- Expanded parser testing
- Expression execution seems to be broken now, everything is returning error code 0 and not returning results
2024-05-05 06:55:39 -04:00
2024-05-04 11:31:14 -04:00
2024-05-04 11:31:14 -04:00
2024-05-04 11:31:14 -04:00
2024-05-04 11:31:14 -04:00

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:

  • 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.

Description
No description provided
Readme 143 KiB
Languages
C 84.4%
Assembly 10%
Makefile 4.5%
Shell 1.1%