tcort / lmc

a virtual machine implementation of Dr. Madnick's "Little Man Computer" along with an assembler.

Repository from Github https://github.comtcort/lmcRepository from Github https://github.comtcort/lmc

lmc

Build Status

LMC stands for Little Man Computer. It was created in 1965 by Dr. Stuart Madnick as a way to illustrate the basic features of a programmable computer.

This repository contains an implementation of a virtual LMC as well as an assembler to compile simple programs into byte code that can be executed by the virtual machine.

Requirements

  • C compiler and standard build tools (make, sh, autoconf/automake, ...).
  • lex or flex
  • yacc or bison

Building

Use the following commands to build, test, and install LMC.

./configure
make
make check
make install

Requirements for Cross Compiling (Target: mingw32)

  • Cross toolchain (ex: mingw32 on Debian)
  • lex or flex
  • yacc or bison
  • nsis (for generating an installer)
  • wine (for running the test suite)

Cross Compiling (Target: mingw32)

Use the follow commands to cross compile LMC, run the test suite under wine, and generate an installer exe:

./configure --host=i586-mingw32msvc
make
make check
makensis lmc.nsi

About

a virtual machine implementation of Dr. Madnick's "Little Man Computer" along with an assembler.

License:ISC License


Languages

Language:C 43.0%Language:Yacc 19.0%Language:Lex 15.9%Language:NSIS 5.2%Language:Assembly 4.9%Language:Makefile 4.2%Language:M4 4.1%Language:Shell 3.7%