1
0
mirror of https://github.com/ariejan/i6502.git synced 2025-04-08 21:43:30 +00:00

Create gh-pages branch via GitHub

This commit is contained in:
Ariejan de Vroom 2014-08-16 11:46:20 +02:00
commit c237386b7a
5 changed files with 449 additions and 0 deletions

107
index.html Normal file
View File

@ -0,0 +1,107 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<title>I6502 by ariejan</title>
<link rel="stylesheet" href="stylesheets/styles.css">
<link rel="stylesheet" href="stylesheets/pygment_trac.css">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>
<div class="wrapper">
<header>
<h1>I6502</h1>
<p>A 6502/65C02 Emulator in Go</p>
<p class="view"><a href="https://github.com/ariejan/i6502">View the Project on GitHub <small>ariejan/i6502</small></a></p>
<ul>
<li><a href="https://github.com/ariejan/i6502/zipball/master">Download <strong>ZIP File</strong></a></li>
<li><a href="https://github.com/ariejan/i6502/tarball/master">Download <strong>TAR Ball</strong></a></li>
<li><a href="https://github.com/ariejan/i6502">View On <strong>GitHub</strong></a></li>
</ul>
</header>
<section>
<h1>
<a name="i6502---a-6502-emulator" class="anchor" href="#i6502---a-6502-emulator"><span class="octicon octicon-link"></span></a>i6502 - A 6502 Emulator</h1>
<p><a href="https://travis-ci.org/ariejan/i6502"><img src="https://travis-ci.org/ariejan/i6502.svg?branch=master" alt="Build Status"></a></p>
<p>This is an emulator of the i6502 hardward project I'm doing.</p>
<p>It's written in Golang and comes fully tested. </p>
<h2>
<a name="background" class="anchor" href="#background"><span class="octicon octicon-link"></span></a>Background</h2>
<p>The MOS 6502 Microprocessor has been around sinc 1975 and is used in many popular systems, like
the Apple II, Amiga 2600, Commodore 64 and the Nintendo Entertainment System (NES).</p>
<p>It features an 8-bit accumulator and ALU, two 8-bit index registers and a 16-bit memory bus, allowing the processor to access up to 64kB of memory. </p>
<p>I/O is mapped to memory, meaning that both RAM, ROM and I/O are addressed over the same 16-bit address bus.</p>
<p>Because of it's simple and elegant design and the plethora of information available about this microprocessor, the 6502 is very useful for learning and hobby projects.</p>
<p>The 65C02 is a updated version of the 6502. It includes some bug fixes and new instructions. The goal is for i6502 to fully support the 65C02 as well.</p>
<h2>
<a name="whats-included-in-the-emulator" class="anchor" href="#whats-included-in-the-emulator"><span class="octicon octicon-link"></span></a>What's included in the emulator?</h2>
<ul>
<li>6502 Microprocessor, fully tested</li>
<li>16-bit address bus, with attachable memory</li>
<li>RAM Memory</li>
</ul><h2>
<a name="whats-not-yet-included" class="anchor" href="#whats-not-yet-included"><span class="octicon octicon-link"></span></a>What's not (yet) included?</h2>
<ul>
<li>Proper Golang packaging and documentation</li>
<li>65C02 support</li>
<li>Roms</li>
<li>I/O (VIA 6522, ACIA 6551)</li>
<li>Batteries</li>
</ul><h2>
<a name="getting-started" class="anchor" href="#getting-started"><span class="octicon octicon-link"></span></a>Getting started</h2>
<p>Although this package contains everything you need, there is not single 'emulator' program yet. The CPU, address bus and RAM components are all available to you, but documentation is still lacking.</p>
<p>For now, you can checkout the project, and run the tests.</p>
<pre><code>go get github.com/ariejan/i6502
cd $GOPATH/src/github.com/ariejan/i6502
go get -t
go test
</code></pre>
<h2>
<a name="license" class="anchor" href="#license"><span class="octicon octicon-link"></span></a>License</h2>
<p>This project is licensed under the MIT, see <a href="https://github.com/ariejan/i6502/blob/master/LICENSE">LICENSE</a> for full details.</p>
<h2>
<a name="contributors" class="anchor" href="#contributors"><span class="octicon octicon-link"></span></a>Contributors</h2>
<ul>
<li>
<p>Ariejan de Vroom (<a href="mailto:ariejan@ariejan.net">ariejan@ariejan.net</a>)</p>
<p>Special thanks to the awesome folk at <a href="http://forum.6502.org">http://forum.6502.org</a> for their support and shared knowledge.</p>
</li>
</ul>
</section>
<footer>
<p>This project is maintained by <a href="https://github.com/ariejan">ariejan</a></p>
<p><small>Hosted on GitHub Pages &mdash; Theme by <a href="https://github.com/orderedlist">orderedlist</a></small></p>
</footer>
</div>
<script src="javascripts/scale.fix.js"></script>
</body>
</html>

17
javascripts/scale.fix.js Normal file
View File

@ -0,0 +1,17 @@
var metas = document.getElementsByTagName('meta');
var i;
if (navigator.userAgent.match(/iPhone/i)) {
for (i=0; i<metas.length; i++) {
if (metas[i].name == "viewport") {
metas[i].content = "width=device-width, minimum-scale=1.0, maximum-scale=1.0";
}
}
document.addEventListener("gesturestart", gestureStart, false);
}
function gestureStart() {
for (i=0; i<metas.length; i++) {
if (metas[i].name == "viewport") {
metas[i].content = "width=device-width, minimum-scale=0.25, maximum-scale=1.6";
}
}
}

1
params.json Normal file
View File

@ -0,0 +1 @@
{"name":"I6502","tagline":"A 6502/65C02 Emulator in Go","body":"# i6502 - A 6502 Emulator\r\n\r\n[![Build Status](https://travis-ci.org/ariejan/i6502.svg?branch=master)](https://travis-ci.org/ariejan/i6502)\r\n\r\nThis is an emulator of the i6502 hardward project I'm doing.\r\n\r\nIt's written in Golang and comes fully tested. \r\n\r\n## Background\r\n\r\nThe MOS 6502 Microprocessor has been around sinc 1975 and is used in many popular systems, like\r\nthe Apple II, Amiga 2600, Commodore 64 and the Nintendo Entertainment System (NES).\r\n\r\nIt features an 8-bit accumulator and ALU, two 8-bit index registers and a 16-bit memory bus, allowing the processor to access up to 64kB of memory. \r\n\r\nI/O is mapped to memory, meaning that both RAM, ROM and I/O are addressed over the same 16-bit address bus.\r\n\r\nBecause of it's simple and elegant design and the plethora of information available about this microprocessor, the 6502 is very useful for learning and hobby projects.\r\n\r\nThe 65C02 is a updated version of the 6502. It includes some bug fixes and new instructions. The goal is for i6502 to fully support the 65C02 as well.\r\n\r\n## What's included in the emulator?\r\n\r\n * 6502 Microprocessor, fully tested\r\n * 16-bit address bus, with attachable memory\r\n * RAM Memory\r\n\r\n## What's not (yet) included?\r\n\r\n * Proper Golang packaging and documentation\r\n * 65C02 support\r\n * Roms\r\n * I/O (VIA 6522, ACIA 6551)\r\n * Batteries\r\n \r\n## Getting started\r\n\r\nAlthough this package contains everything you need, there is not single 'emulator' program yet. The CPU, address bus and RAM components are all available to you, but documentation is still lacking.\r\n\r\nFor now, you can checkout the project, and run the tests.\r\n\r\n go get github.com/ariejan/i6502\r\n cd $GOPATH/src/github.com/ariejan/i6502\r\n go get -t\r\n go test\r\n\r\n## License\r\n\r\nThis project is licensed under the MIT, see [LICENSE](https://github.com/ariejan/i6502/blob/master/LICENSE) for full details.\r\n\r\n## Contributors\r\n\r\n * Ariejan de Vroom (ariejan@ariejan.net)\r\n \r\n Special thanks to the awesome folk at [http://forum.6502.org](http://forum.6502.org) for their support and shared knowledge.","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}

View File

@ -0,0 +1,69 @@
.highlight { background: #ffffff; }
.highlight .c { color: #999988; font-style: italic } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { font-weight: bold } /* Keyword */
.highlight .o { font-weight: bold } /* Operator */
.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #999999 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold; } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { font-weight: bold } /* Keyword.Constant */
.highlight .kd { font-weight: bold } /* Keyword.Declaration */
.highlight .kn { font-weight: bold } /* Keyword.Namespace */
.highlight .kp { font-weight: bold } /* Keyword.Pseudo */
.highlight .kr { font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #009999 } /* Literal.Number */
.highlight .s { color: #d14 } /* Literal.String */
.highlight .na { color: #008080 } /* Name.Attribute */
.highlight .nb { color: #0086B3 } /* Name.Builtin */
.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
.highlight .no { color: #008080 } /* Name.Constant */
.highlight .ni { color: #800080 } /* Name.Entity */
.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
.highlight .nn { color: #555555 } /* Name.Namespace */
.highlight .nt { color: #000080 } /* Name.Tag */
.highlight .nv { color: #008080 } /* Name.Variable */
.highlight .ow { font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mf { color: #009999 } /* Literal.Number.Float */
.highlight .mh { color: #009999 } /* Literal.Number.Hex */
.highlight .mi { color: #009999 } /* Literal.Number.Integer */
.highlight .mo { color: #009999 } /* Literal.Number.Oct */
.highlight .sb { color: #d14 } /* Literal.String.Backtick */
.highlight .sc { color: #d14 } /* Literal.String.Char */
.highlight .sd { color: #d14 } /* Literal.String.Doc */
.highlight .s2 { color: #d14 } /* Literal.String.Double */
.highlight .se { color: #d14 } /* Literal.String.Escape */
.highlight .sh { color: #d14 } /* Literal.String.Heredoc */
.highlight .si { color: #d14 } /* Literal.String.Interpol */
.highlight .sx { color: #d14 } /* Literal.String.Other */
.highlight .sr { color: #009926 } /* Literal.String.Regex */
.highlight .s1 { color: #d14 } /* Literal.String.Single */
.highlight .ss { color: #990073 } /* Literal.String.Symbol */
.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
.highlight .vc { color: #008080 } /* Name.Variable.Class */
.highlight .vg { color: #008080 } /* Name.Variable.Global */
.highlight .vi { color: #008080 } /* Name.Variable.Instance */
.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
.type-csharp .highlight .k { color: #0000FF }
.type-csharp .highlight .kt { color: #0000FF }
.type-csharp .highlight .nf { color: #000000; font-weight: normal }
.type-csharp .highlight .nc { color: #2B91AF }
.type-csharp .highlight .nn { color: #000000 }
.type-csharp .highlight .s { color: #A31515 }
.type-csharp .highlight .sc { color: #A31515 }

255
stylesheets/styles.css Normal file
View File

@ -0,0 +1,255 @@
@import url(https://fonts.googleapis.com/css?family=Lato:300italic,700italic,300,700);
body {
padding:50px;
font:14px/1.5 Lato, "Helvetica Neue", Helvetica, Arial, sans-serif;
color:#777;
font-weight:300;
}
h1, h2, h3, h4, h5, h6 {
color:#222;
margin:0 0 20px;
}
p, ul, ol, table, pre, dl {
margin:0 0 20px;
}
h1, h2, h3 {
line-height:1.1;
}
h1 {
font-size:28px;
}
h2 {
color:#393939;
}
h3, h4, h5, h6 {
color:#494949;
}
a {
color:#39c;
font-weight:400;
text-decoration:none;
}
a small {
font-size:11px;
color:#777;
margin-top:-0.6em;
display:block;
}
.wrapper {
width:860px;
margin:0 auto;
}
blockquote {
border-left:1px solid #e5e5e5;
margin:0;
padding:0 0 0 20px;
font-style:italic;
}
code, pre {
font-family:Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal;
color:#333;
font-size:12px;
}
pre {
padding:8px 15px;
background: #f8f8f8;
border-radius:5px;
border:1px solid #e5e5e5;
overflow-x: auto;
}
table {
width:100%;
border-collapse:collapse;
}
th, td {
text-align:left;
padding:5px 10px;
border-bottom:1px solid #e5e5e5;
}
dt {
color:#444;
font-weight:700;
}
th {
color:#444;
}
img {
max-width:100%;
}
header {
width:270px;
float:left;
position:fixed;
}
header ul {
list-style:none;
height:40px;
padding:0;
background: #eee;
background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f8f8f8), color-stop(100%,#dddddd));
background: -webkit-linear-gradient(top, #f8f8f8 0%,#dddddd 100%);
background: -o-linear-gradient(top, #f8f8f8 0%,#dddddd 100%);
background: -ms-linear-gradient(top, #f8f8f8 0%,#dddddd 100%);
background: linear-gradient(top, #f8f8f8 0%,#dddddd 100%);
border-radius:5px;
border:1px solid #d2d2d2;
box-shadow:inset #fff 0 1px 0, inset rgba(0,0,0,0.03) 0 -1px 0;
width:270px;
}
header li {
width:89px;
float:left;
border-right:1px solid #d2d2d2;
height:40px;
}
header ul a {
line-height:1;
font-size:11px;
color:#999;
display:block;
text-align:center;
padding-top:6px;
height:40px;
}
strong {
color:#222;
font-weight:700;
}
header ul li + li {
width:88px;
border-left:1px solid #fff;
}
header ul li + li + li {
border-right:none;
width:89px;
}
header ul a strong {
font-size:14px;
display:block;
color:#222;
}
section {
width:500px;
float:right;
padding-bottom:50px;
}
small {
font-size:11px;
}
hr {
border:0;
background:#e5e5e5;
height:1px;
margin:0 0 20px;
}
footer {
width:270px;
float:left;
position:fixed;
bottom:50px;
}
@media print, screen and (max-width: 960px) {
div.wrapper {
width:auto;
margin:0;
}
header, section, footer {
float:none;
position:static;
width:auto;
}
header {
padding-right:320px;
}
section {
border:1px solid #e5e5e5;
border-width:1px 0;
padding:20px 0;
margin:0 0 20px;
}
header a small {
display:inline;
}
header ul {
position:absolute;
right:50px;
top:52px;
}
}
@media print, screen and (max-width: 720px) {
body {
word-wrap:break-word;
}
header {
padding:0;
}
header ul, header p.view {
position:static;
}
pre, code {
word-wrap:normal;
}
}
@media print, screen and (max-width: 480px) {
body {
padding:15px;
}
header ul {
display:none;
}
}
@media print {
body {
padding:0.4in;
font-size:12pt;
color:#444;
}
}