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 921a9dd8bd - Added string strip methods lstrip and rstrip
- Fixed the tokenizer to chomp whitespace from left and right of tokens
- Fixed the tokenizer so it returns reserved symbols not just constants and expressions
- Added some tests for the basic tokenizer and parser
- Started working on structures to allow the basic interpreter to store lines in memory
2024-05-04 22:08:20 -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%