mirror of
https://github.com/whscullin/apple2js.git
synced 2024-01-12 14:14:38 +00:00
290 lines
11 KiB
HTML
290 lines
11 KiB
HTML
<!DOCTYPE html>
|
|
<!-- Copyright 2010-2016 Will Scullin -->
|
|
<html>
|
|
<head>
|
|
<base href="/apple" />
|
|
<meta charset="utf-8" />
|
|
<meta name="keywords" content="apple2,apple,ii,javascript,emulator,html5" />
|
|
<link rel="shortcut icon" href="logoicon.png" />
|
|
<link rel="stylesheet" type="text/css" href="apple2/css/apple2.css" />
|
|
<title>About Apple ][js/Apple //jse</title>
|
|
<script type="text/javascript">
|
|
|
|
var _gaq = _gaq || [];
|
|
_gaq.push(['_setAccount', 'UA-19205057-1']);
|
|
_gaq.push(['_trackPageview']);
|
|
|
|
(function() {
|
|
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
|
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
|
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
|
})();
|
|
|
|
</script>
|
|
<meta property="og:title" content="About Apple ][js" />
|
|
<meta property="og:type" content="website" />
|
|
<meta property="og:description" content="Apple ][js is an Apple ][ (or Apple II or Apple2) emulator written using only JavaScript and HTML5." />
|
|
<meta property="og:url" content="http://www.scullinsteel.com/apple2/about.html" />
|
|
<meta property="og:image" content="http://www.scullinsteel.com/apple2/img/image.png" />
|
|
<meta property="fb:admins" content="700585391" />
|
|
</head>
|
|
<body id="about">
|
|
<div style="text-align: center">
|
|
<span class="motter" style="font-size: 2em">Apple ][js and //jse</span>
|
|
</div>
|
|
<div style="max-width: 800px; margin: auto">
|
|
<h2>What is this?</h2>
|
|
<span class="motter"><a href="../apple2/">Apple ][js</a></span> and
|
|
<span class="motter"><a href="../apple//e">Apple //jse</a></span>
|
|
are Apple ][ and Apple //e emulators written entirely in JavaScript
|
|
and HTML5.
|
|
<h2>Updates (2017-10-08)</h2>
|
|
<ul>
|
|
<li><h3>Better iOS support</h3>
|
|
Bluetooth keyboards now work better.
|
|
Reset is <tt>Ctrl-Shift-Delete</tt>. iOS now allows loadinging disks
|
|
from iCloud and services like Drop Box. Saving locally is still not
|
|
supported by iOS. I now understand why sound doesn't work, and
|
|
I'm working on a work-around.
|
|
</li>
|
|
<li><h3>Source Maps</h3>
|
|
Although the source code has always been available, by default
|
|
I serve up minified Javascript for performance reasons. But now you
|
|
can poke around more easily.
|
|
</li>
|
|
</ul>
|
|
<h2>Updates (2017-08-31)</h2>
|
|
(It's been a long time since I updated, so this is a rough list)
|
|
<ul>
|
|
<li><h3>Videx Videoterm Emulation (][js)</h3>
|
|
PR#3 now does something on the Apple ][!.
|
|
</li>
|
|
<li><h3>AppleColor RGB Card Emulation (//jse)</h3>
|
|
Now supports a bunch of the mostly non-standard video formats
|
|
found on the AppleColor RGB card, including 16 color text, 16 color
|
|
hires mode, and mixed black and white and color double hires
|
|
</li>
|
|
<li><h3>Machine selection</h3>
|
|
You can now select between original, autostart and plus Apple ][s,
|
|
and unenhanced and enhanced //es.
|
|
</li>
|
|
</ul>
|
|
<h2>Updates (2013-07-04)</h2>
|
|
<ul>
|
|
<li><h3>RAMFactor Emulation (//jse)</h3>
|
|
I now simulate having a 1 Megabyte RAMFactor card in slot 2.
|
|
</li>
|
|
<li><h3>Thunderclock Emulation</h3>
|
|
There is cursory emulation of the Thunderclock card, enough
|
|
to keep ProDOS applications from asking you to enter the date
|
|
all the time. ProDOS attempts to guess the year from the month,
|
|
the day and the day of the week, something that needs to be
|
|
patched every 6 years. This means newer versions think it's 1996,
|
|
older versions are stuck in the 80s.
|
|
</li>
|
|
<li><h3>Firefox Nightly Joystick Support</h3>
|
|
Joystick support has yet to officially land, but the latest
|
|
nightlies support the gamepad API.
|
|
</li>
|
|
</ul>
|
|
<h2>Updates (2013-03-20)</h2>
|
|
<ul>
|
|
<li><h3>Animation Frames</h3>
|
|
I've switched from using setInterval() to requestAnimationFrame() where
|
|
supported. This, in conjunction with the graphics re-write, seems
|
|
to smooth performance and provide a more stable CPU speed.
|
|
</li>
|
|
<li><h3>Graphics Re-Write</h3>
|
|
This (third) re-write of the graphics system should improve performance
|
|
with graphics intensive programs. Rather than rendering each graphics
|
|
update as it happens, updates are rendered each animation frame.
|
|
</li>
|
|
</ul>
|
|
<h2>Updates (2013-03-12)</h2>
|
|
<ul>
|
|
<li><h3>Apple //e</h3>
|
|
After much flailing, and much staring at MMU emulation code in
|
|
despair, I've finally published my Apple //e emulator. It's probably
|
|
a little more rough than I'd hoped, but it has a lot of features
|
|
that I really wanted to get into it, like basic double hires support,
|
|
and it uses the enhanced Apple //e ROMs.
|
|
</li>
|
|
</ul>
|
|
<h2>Updates (2013-02-25)</h2>
|
|
<ul>
|
|
<li><h3>Joystick Support</h3>
|
|
Chrome only so far, the nascent gamepad API has finally allowed me
|
|
to add basic joystick support. I can now re-live my glory days
|
|
of Skyfox.
|
|
</li>
|
|
<li><h3>Re-written CPU emulator</h3>
|
|
I finally got around to applying some of the many lessons I learned
|
|
along the way writing my first CPU emulator in Javascript. The
|
|
last re-working gave me about a 100% performance gain.
|
|
</li>
|
|
<li><h3>Finally Fixed Oregon Trail</h3>
|
|
This seems to have been a major disappointment for many people.
|
|
I was able to make it as a banker, but I'm embarassed to reveal my
|
|
score.
|
|
</li>
|
|
<li><h3>Competition</h3>
|
|
Now in addition to
|
|
<a href="http://www.megidish.net/apple2js/">Gil Megidish's</a>
|
|
Apple2JS, there's a couple of new kids on the block, including
|
|
<a href="http://porkrind.org/a2/">David Caldwell's</a> Apple II+
|
|
emulator where he's put a lot more thought into the graphics rendering
|
|
than I have, and
|
|
<a href="https://github.com/nicholasbs/appletoo">appletoo</a>,
|
|
which I just stumbled across while looking for David's emulator and
|
|
haven't had much time to look at.
|
|
</li>
|
|
</ul>
|
|
<h2>Requirements</h2>
|
|
<ul>
|
|
<li><h3>A Browser with HTML5 Support</h3>
|
|
The most recent versions of
|
|
<a href="http://www.google.com/chrome/" target="_blank">
|
|
Google Chrome</a>,
|
|
<a href="http://www.apple.com/safari/" target="_blank">
|
|
Safari</a>,
|
|
<a href="http://www.firefox.com/" target="_blank" >
|
|
Firefox</a>, and
|
|
<a href="http://www.opera.com/" target="_blank">
|
|
Opera</a>
|
|
all seem to work reasonably well these days, although
|
|
variations in HTML5 support pop up, and occasionally a major release
|
|
will move things around out from under me.
|
|
IE prior to 9 lacks canvas tag support and is unsupported.
|
|
<a href="http://windows.microsoft.com/ie9">IE 9+</a> renders nicely on
|
|
a modern machine.<br/>
|
|
<br />
|
|
In updating this section I realized just how long
|
|
I've been doing this, since I used to have to specify Firefox 3+ and
|
|
Google Chrome 5+, and I'm now running Chrome 23 and Firefox 19.
|
|
</li>
|
|
<li><h3>Basic Knowledge of the Apple ][</h3>
|
|
If you don't know how to use an Apple ][, this won't be much fun for
|
|
you.
|
|
</li>
|
|
</ul>
|
|
<h2>Known Limitations</h2>
|
|
<ul>
|
|
<li><h3>Lame Audio</h3>
|
|
<span class="motter">Apple ][js</span>
|
|
is written entirely using HTML5 and JavaScript, so I've avoiding using
|
|
any Flash audio plugins. Most reputable browsers
|
|
now provide some sort of audio API, but no standard really seems to have
|
|
emerged. I should probably add a volume control.
|
|
</li>
|
|
<li><h3>Poor Printer Support</h3>
|
|
I currently only support sending text characters to a separate window.
|
|
</li>
|
|
</ul>
|
|
<h2>Acknowlegements</h2>
|
|
<ul>
|
|
<li>
|
|
<h3>I'm using the following libraries:</h3>
|
|
<ul>
|
|
<li>
|
|
<a href="http://jquery.com">jQuery</a> and
|
|
<a href="http://jqueryui.com">jQuery UI</a>
|
|
</li>
|
|
<li>
|
|
Base64 Utilities via
|
|
<a href="http://kevin.vanzonneveld.net/">KvZ</a>
|
|
</li>
|
|
<li>
|
|
LED graphics from <a href="http://modernl.com/">Modern Life</a>.
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<h3>I heavily referenced:</h3>
|
|
<ul>
|
|
<li>
|
|
<a href="http://www.scribd.com/doc/200679/Beneath-Apple-DOS-By-Don-Worth-and-Pieter-Lechner">
|
|
<i>Beneath Apple DOS</i>
|
|
</a>
|
|
by Don Worth and Pieter Lechner
|
|
</li>
|
|
<li>
|
|
<i>Inside the Apple //e</i> by Gary B. Little
|
|
</li>
|
|
<li>
|
|
<a href="http://apple2.org.za/gswv/a2zine/GS.WorldView/Resources/DOS.3.3.ANATOMY/">
|
|
<i>DOS 3.3 Anatomy</i>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="http://www.doc.ic.ac.uk/~ih/doc/stepper/others/example3/diskii_specs.html">
|
|
<i>Apple II Disk Drive Article</i>
|
|
</a>
|
|
by Neil Parker
|
|
</li>
|
|
<li>
|
|
<a href="http://6502.org/">6502.org</a>
|
|
</li>
|
|
<li>
|
|
The
|
|
<a href="http://www.faqs.org/faqs/apple2/programmerfaq/part1/">
|
|
comp.sys.apple2.programmer
|
|
</a>
|
|
FAQ
|
|
</li>
|
|
<li>
|
|
<a href="https://archive.org/details/understanding_the_apple_ii">
|
|
Understanding the Apple ][
|
|
</a>
|
|
and
|
|
<a href="https://archive.org/details/Understanding_the_Apple_IIe">
|
|
Understanding the Apple //e
|
|
</a>
|
|
by Jim Sather.
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<h3>And special thanks to:</h3>
|
|
<ul>
|
|
<li>
|
|
<a href="http://adtpro.sourceforge.net/">ADTPro</a>
|
|
for allowing me to pull some of my circa
|
|
1980 programming efforts off some ancient floppies.
|
|
</li>
|
|
<li>
|
|
<a href="http://kegs.sourceforge.net/">KEGS</a>, because at some
|
|
point I got so tired of futzing with ADC/SBC code I just ported
|
|
the KEGS C code for those opcodes to Javascript so I could stop
|
|
worrying about it.
|
|
</li>
|
|
<li>
|
|
<a href="http://apple2history.org/">Apple II History</a>,
|
|
for a lovely, informative site.
|
|
</li>
|
|
<li>
|
|
<a href="http://www.megidish.net/apple2js/">Gil Megidish</a>,
|
|
for the kick in the pants to finally post my version, once I
|
|
realized there was, in fact, another apple2js in the world.
|
|
</li>
|
|
<li>
|
|
<a href="https://github.com/AppleWin/AppleWin/">AppleWin</a>,
|
|
whose source code is a goldmine of useful references.
|
|
</li>
|
|
<li>
|
|
<a href="https://github.com/zellyn/a2audit">Zellyn Hunter</a> and
|
|
a2audit, for allowing me to get really nitpicky in my memory
|
|
emulation.
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<h2>Contact</h2>
|
|
<ul>
|
|
<li>
|
|
<a href="mailto:apple2js@scullinsteel.com">apple2js@scullinsteel.com</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html>
|