File: README

This is the README file for the Pep/8 assembler/simulator application.
Pep/8 is a virtual machine for teaching computer systems concepts. It is
described in the textbook, "Computer Systems" by J. Stanley Warford, Jones
and Bartlett Publishers, third edition.

License:
This software is Open Source software distributed under the GNU General
Public License (GPL). See http://www.gnu.org/copyleft/gpl.html for the terms
of the license. This directory contains the full source code in accordance with
the terms of the license.

Build instructions:
Build the Pep/8 assembler/simulator with with the Qt4 development system
available from Trolltech at http://www.trolltech.com/. Trolltech provides a
Dual Licensing Model, both commercial and open source. This project is
developed with the free open source version. The development system is
cross-platform and is available for Windows, Mac OS X, and Linux/Unix. Go to
the Open Source Downloads section of Trolltech's Web site to get the software
development kit for your platform. The SDK includes Qt assistant for the
HTML-based documentation and Qt Designer for the drag-and-drop gui interface
builder. For Windows, the Open Source Edition of Qt supports the MinGW compiler,
which is included in the download. Visual Studio support and integration is
provided with the commercial Editions of Qt. See the Trolltech site for details.
The Qt SDK is not an Integrated Development Environment (IDE). In general, you
must use your own text editor with a command-line interface to compile and
run.
 
The dialog boxes and windows are constructed with the Qt Designer interface
builder. They are the .ui files, and are translated to C++ code with uic, the
user interface compiler. To build the project after installing the Qt 4
development system, first rename the folder that contains the source to
Pep8. It is usually distributed in a folder named Pep804 (for Pep/8 version
8.0.4) or something similar. Then execute the following:

uic Pep8.ui > ui_Pep8.h
uic RedefineMnemonics.ui > ui_RedefineMnemonics.h
uic Find.ui > ui_Find.h
uic ExLimits.ui > ui_ExLimits.h
uic HelpMenuDialog.ui > ui_HelpMenuDialog.h
uic TerminalWindow.ui > ui_TerminalWindow.h
uic AboutPep8.ui > ui_AboutPep8.h
qmake -project
qmake
make

See the Qt documentation for the functions of each of these commands. The
qmake -project command creates a .pro project file; the qmake command crates
a make file; and the make command does the build.  These commands are contained
in the file mymake, which you can execute as a script.

To make a stand-alone application that will run on a computer without the
Qt library installed, build your Qt system with the -static option, and
replace the command

qmake

with the command

qmake -config release

Features of Qt:
This software is the result of several undergraduate student projects. The
Qt system is an effective tool for such an effort. It is based on a Signals
and Slots mechanism, which is easy for students to understand. A meta-compiler
translates the signals, slots, and their connections to C++ moc files, which
are then translated to raw C++. All these details, as well as the XML-based
files created by Qt Designer, are hidden from the programmer. An example of the
power of this system is the fact that not a single line of platform-specific
code is contained in any source code file. And yet, the system produces native
executable code on all platforms with native GUI widgets.

Please send bug reports and suggestions for improvement to:

Stan Warford
Professor of Computer Science
Pepperdine University
Malibu, CA 90263
Stan.Warford@pepperdine.edu
