This project is a fork of the picobit.git project. If you have that one already cloned locally, you can use
git clone --reference /path/to/your/picobit.git/incarnation mirror_URL
to save bandwidth during cloning.
descriptionChristian J.'s changes
last changeFri, 26 Jun 2009 23:14:18 +0000 (26 19:14 -0400)
content tags
This is a very small Scheme system designed to run on small
microcontrollers, currently the PIC microcontroller.

It consists of

* a bytecode compiler which compiles Scheme source code to bytecode.
  The bytecode compiler is run using the Gambit-C Scheme system,
  usually on a PC/workstation.

* a bytecode interpreter which can be either compiled to run on a
  microcontroller, or to be run on some common operating systems, at
  least GNU/Linux (Windows support hasn't been tested in a while,
  though, and especially the networking part might not work out of the


1. Install the dependencies:

  * Gambit-C: needed to run the bytecode compiler.

  * libpcap: optional, to test networking on PC's (GNU/Linux)
    Be sure to also install the package containing the headers
    (libpcap-dev or similar).
    (TODO: add to makefile somehow)

2a. Targetting a PC/workstation for testing:

  * Build the VM: run

  * Compile and run a Scheme program: run
     ./p schemefile-without-suffix

2b. Compile and run a Scheme program on PIC:



  * S3 (Small Scheme Stack) : A Scheme TCP/IP Stack Targeting Small
    Embedded Applications

  * Slides from the presentation given at the 2008 Workshop on Scheme
    and Functional Programming

 and maybe you find the papers about the BIT and PICBIT systems
 interesting, which have been written before PICOBIT and share some
 common concepts:
2009-06-26 Christian Jaegerp: show a usable message from Scheme if the subprocess... master
2009-06-26 Christian JaegerFix bracketig in the transition from / to >>
2009-06-26 Christian JaegerRemove sed usage as "p" now strips the suffix by itself
2009-06-26 Christian Jaegerp: replace shell script with Scheme implementation
2009-06-26 Christian Jaegerp: use dirname and basename to get the base of the...
2009-06-26 Christian Jaegerp: add a newline after the output
2009-06-26 Christian JaegerAdd README
2009-06-26 Christian Jaegerp: quote variables and die on variable referencing...
2009-06-26 Vincent St... Networking is now an option (compile with -DNETWORKING).
2009-06-26 Vincent St... Other changes to please SIXPIC: (void) -> ()
2009-06-26 Vincent St... Changed divisions to shifts, there were only divisions...
2009-06-26 Vincent St... Put some debugging functions in an ifdef, since they...
2009-06-26 Vincent St... Moved some code around.
2009-06-26 Vincent St... Various cleanup.
2009-06-26 Vincent St... Split the compiler into several files and repository...
2009-06-26 Vincent St... Added ior and xor tests to the repository.
6 years ago master