mirror of
https://github.com/whscullin/apple2js.git
synced 2024-01-12 14:14:38 +00:00
297 lines
11 KiB
HTML
297 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>
|
|
</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>
|
|
<p>
|
|
<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.
|
|
</p>
|
|
<p>
|
|
Source code at <a href="https://github.com/whscullin/apple2js">
|
|
https://github.com/whscullin/apple2js
|
|
</a>
|
|
</p>
|
|
<h2>Updates (2019-03-02)</h2>
|
|
<ul>
|
|
<li><h3>Behind the scenes</h3>
|
|
A lot of not so visible changes behind the scenes. The website now
|
|
runs directly off of github, and has a more modern toolchain
|
|
(Goodbye make, Perl and closure compiler, hello Webpack!)
|
|
to facilitate development.
|
|
</li>
|
|
<li><h3>Performance</h3>
|
|
In particular, the screen no longer redraws as quickly as possible.
|
|
</li>
|
|
<li><h3>Drag and Drop</h3>
|
|
Disk images can be dragged into the window to load them.
|
|
</li>
|
|
<li><h3>Contributions</h3>
|
|
Thanks to <a href="https://github.com/iflan">Ian Flanigan</a> for
|
|
additions to improve ChromeBook behavior.
|
|
</li>
|
|
</ul>
|
|
<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 loading 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="https://www.google.com/chrome/" target="_blank">
|
|
Google Chrome</a>,
|
|
<a href="https://www.apple.com/safari/" target="_blank">
|
|
Safari</a>,
|
|
<a href="https://www.firefox.com/" target="_blank" >
|
|
Firefox</a>, and
|
|
<a href="https//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="https://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="https://jquery.com">jQuery</a> and
|
|
<a href="https://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>
|