IBCM Interface

Welcome to the IBCM Interface

The Itty Bitty Computing Machine (IBCM) interface is designed to help emulate IBCM programs. It is used at the University of Virginia in CS 216, Program and Data Representation, to teach machine language.

Use the links to the right to learn more about IBCM. Directions about how to use the online simulator are available, as well as the simulator itself.

This simulator is in beta, which means that it should work properly, but there still may be bugs. Be sure to look at the browser compatability section at the bottom of the directions page. And please report any bugs you found to the course instructor.

The simulator page is a PHP script, which means that it will not work if you are viewing it as a local file (i.e., if the beginning of your URL is "file://" instead of "http://"), or if the web server hosting this page does not have PHP installed (this includes UVa's Collab web server).

The IBCM interface is hosted at the following locations, which all allow the simulator's PHP script to work properly.

IBCM Documentation

This page provides a brief set of instructions explaining how to use the IBCM simulator.

About IBCM

The Itty Bitty Computing Machine (IBCM) was developed at the University of Virginia as an aid to teach how programs would work on a machine language level.

This simulator was last updated on November 1, 2009

All pages are valid HTML as per W3C. Valid XHTML 1.0 Strict

Credits

This online IBCM simulator was developed by Nick Williams and Aaron Bloomfield in 2008. The HTML template for this website was taken from oswd.org.

Command-line version

A command-line version was written that will both compile and execute IBCM programs. This was done to allow for automated grading of IBCM assignments. It is not particularly easy to use, and thus students will probably want to use the online simulator instead.

We eventually will release the souce code to this command-line version. As of now, however, that source code is not ready (we have to comment it, clean it up, apply the proper licence, etc.). Until then, you can download a pre-compiled binary in any of the following formats:

  • Mac OS X, compiled using g++ 4.0.1 under OS X version 10.5.4
  • Linux, compiled using g++ 4.2.3 under Ubuntu 8.04
  • Cygwin for Windows, compiled using g++ 3.4.4

To use the command-line version, use the '-help' option. A description of the command-line options appears below. Note that the program MUST be compiled before it is run.

  • -help: Prints a summary of the command-line options
  • -comp <inputfile>: Will compile the ascii-based IBCM program into a binary format needed for execution.
  • -o <outfile>: Specifies the output file for compilation; default is 'ibcm.bin'
  • -sim <inputfile>: Runs the IBCM simulator on the already-compiled input file
  • -verbose: Prints useful debugging information while compiling and emulating the specified IBCM program. Specify twice for more output.
  • -dump : Dump a binary IBCM file in text format. Also specify -verbose for decompilation.

Old Simulator

Prior to the fall 2008 semester, IBCM programming was done via a installable simulator that was written in Visual Basic. The simulator only runs on Windows systems -- it works with XP, and has not been formally tested with Vista (although anecdotal reports indicate that it works). This page contains the links and documentation for the old simulator.

If you are new to IBCM, you probably want to use the online version of the simulator.

If you have Visual Basic or Visual Studio installed, try running the vb-ibcm.exe executable. If that does not run properly, you will have to install the simulator through the vb-ibcm-setup.exe installation package.

The original IBCM Principles of Operation document contains, on the last page, information on how to use the old simulator. The current version contains the same information about the IBCM language, just without the information about how to use the old simulator.

If you are working in the ITC lab or in Olsson 001, then the simulator may already be installed. Run it from the menu: Start->S.E.A.S.->IBCM Simulator.

If you are working at home or on a machine that does not have it installed, try the following steps (in order!).

If you are working on a machine that has Visual Basic installed (including the Olsson 001 lab or in a public PC lab), then download the smaller (44KB) file called vb-ibcm.exe to a suitable directory (on a public machine this might be C:\LOCALDATA) and start Windows Explorer. Double-click on the vb-ibcm.exe file and it will run the simulator.

If the previous step fails, then download larger (1.8 MB) file called vb-ibcm-setup.exe. Create an empty directory and put this file in that, then double-click on it in Windows Explorer. The file is a self-extracting archive that will now extract its component files. One of these files is called setup.exe; double-click on it and IBCM will be installed on your computer. Then you can execute the simulator by double-clicking on vb-ibcm.exe (which was part of the archive and is now on your disk), or you can find the IBCM program group that has (hopefully) now been installed off your "Start->Programs" key on the lower left of your screen.