brucehoult / lib6502 Goto Github PK
View Code? Open in Web Editor NEWThis project forked from shonfrazier/lib6502
6502 microprocessor emulator; library and command line utility
License: Other
This project forked from shonfrazier/lib6502
6502 microprocessor emulator; library and command line utility
License: Other
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? 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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.