mirror of
https://github.com/ZornsLemma/lib6502-jit.git
synced 2025-03-26 01:34:06 +00:00
137 lines
4.7 KiB
Plaintext
137 lines
4.7 KiB
Plaintext
lib6502 - 6502 Microprocessor Emulator
|
|
|
|
Version: 1.0
|
|
|
|
|
|
WHAT IF I'M TOO LAZY TO READ 'README'S?
|
|
|
|
make
|
|
make install
|
|
more examples/README
|
|
|
|
|
|
WHAT IS LIB6502?
|
|
|
|
lib6502 is a library that emulates the 6502 microprocessor. It
|
|
comes with a small 'shell', run6502, that can execute 6502 programs
|
|
from the command line.
|
|
|
|
lib6502 is distributed under the MIT license: it is non-infectious
|
|
and will not make your projects contagious to others the instant you
|
|
choose to use lib6502 in them. See the file COPYING for details.
|
|
|
|
|
|
WHERE IS THE LATEST SOURCE CODE?
|
|
|
|
Source code for lib6502 is available from the author's home page at
|
|
'http://piumarta.com/software'. You can download the most recent
|
|
release or use Subversion to get the very latest sources.
|
|
|
|
|
|
WHERE IS THE DOCUMENTATION?
|
|
|
|
Manual pages for run6502 and lib6502 (and all the functions it
|
|
exports) should be available once it is installed. Each includes a
|
|
short 'examples' section. Use the 'man' command to read them.
|
|
|
|
Your best place to start looking for documentation on the 6502
|
|
itself is 'http://6502.org'. A google search of the web will also
|
|
turn up vast quantities of information about (and programs for) the
|
|
6502.
|
|
|
|
|
|
HOW DO I INSTALL IT?
|
|
|
|
It's not really big enough to warrant the whole 'configure' thing.
|
|
Any system with an ANSI compiler and C library should be able to
|
|
compile it out of the box. After unpacking the archive, just type:
|
|
|
|
make
|
|
|
|
to build it. If the compiler blows up immediately, edit the
|
|
Makefile and play with the '-g' and '-O' flags and then try again.
|
|
If you really can't make the compiler happy you've found a bug (read
|
|
the next section but one). Otherwise, if you want it put it
|
|
somewhere more permanent then type:
|
|
|
|
make install
|
|
|
|
(as root) to install it. It goes into /usr/local by default; if you
|
|
want it elsewhere then set PREFIX in the make command. For example:
|
|
|
|
make install PREFIX=/usr
|
|
|
|
will put everything under '/usr'.
|
|
|
|
When you get bored with it, go back to the source directory and
|
|
type:
|
|
|
|
make uninstall
|
|
|
|
(with the same PREFIX you specified during the install, if
|
|
necessary.)
|
|
|
|
|
|
WHAT CAN I DO WITH IT?
|
|
|
|
See the file EXAMPLES for some suggestions (all of them polite).
|
|
|
|
If that leaves you wanting more, read the source for run6502 -- it
|
|
exercises just about every feature in lib6502.
|
|
|
|
|
|
HOW DO I REPORT PROBLEMS?^W^WCONTACT THE ORIGINAL AUTHOR?
|
|
|
|
[If you wish to get in touch with the author of lib6502, this is the
|
|
address to use. Since lib6502-jit is based on lib6502 but has been
|
|
heavily modified, please do *not* report problems to this address;
|
|
use the address in README instead. -- Steve]
|
|
|
|
Send e-mail to the author at: firstName (at) lastName (dot) com
|
|
|
|
(For suitable values of firstName and lastName, see the last section
|
|
of this file.)
|
|
|
|
If you're still confused, contact him at: http://piumarta.com
|
|
|
|
|
|
HOW CAN I HELP?
|
|
|
|
Use it. Find bugs. Fix bugs. Make it faster. Evangelism: spread
|
|
it to as many other projects as possible, especially those that
|
|
might be using a slower emulator! Read the manual pages to see
|
|
what's considered missing, then add it, then send it in.
|
|
|
|
(One thing that would be be really handy, and isn't mentioned in the
|
|
manual pages, is a test suite. Figure out how to test every mode in
|
|
every instruction with every possible combination of operand values
|
|
and condition codes and verify the behaviour is correct. Then write
|
|
it down in the form of a program and send it in. If it's a
|
|
self-contained program that runs once to completion then we can
|
|
probably find some real hardware to test against the test suite.)
|
|
|
|
If you know how to write software that emulates peripheral hardware
|
|
devices, google up some details on the popular 6502-based
|
|
microcomputers (Acorn, Commodore, etc.) and add some serious system
|
|
emulation to run6502. Make it all pluggable (think dynamic
|
|
libraries over an 'agnostic' core), so we can change machines at the
|
|
flip of a (command-line) switch. (The callback mechanism in lib6502
|
|
was designed with this kind of 'pluggable hardware emulation' in
|
|
mind.)
|
|
|
|
|
|
WHO WROTE THIS STUFF, AND WHY?
|
|
|
|
lib6502 was written by Ian Piumarta.
|
|
|
|
While writing ccg (an entirely different project that creates
|
|
runtime assemblers for dynamic code generators) he decided to
|
|
include support for an 8-bit microprocessor, just for fun. He chose
|
|
the 6502 because it was used in the first computer he owned and
|
|
programmed (an Ohio Scientific Superboard II, when he was 14) as
|
|
well as the second (an Acorn 'BBC Model B', about four years later).
|
|
lib6502 started as a 'glorified switch statement' that ran some
|
|
small test programs spewed into memory by ccg, but rapidly got out
|
|
of control over the course of a weekend. You're looking at the
|
|
result.
|