mirror of
https://github.com/inexorabletash/jsbasic.git
synced 2024-11-27 12:49:56 +00:00
173 lines
8.1 KiB
HTML
173 lines
8.1 KiB
HTML
<!DOCTYPE html>
|
|
<title>Applesoft BASIC in JavaScript</title>
|
|
<meta charset="UTF-8">
|
|
<link rel="shortcut icon" href="favicon.ico">
|
|
<link rel="alternate" type="application/atom+xml" href="https://github.com/inexorabletash/jsbasic/commits/master.atom">
|
|
<link rel="stylesheet" href="styles.css" type="text/css">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- Suppress browser compat button -->
|
|
|
|
<script src="polyfill/polyfill.js?update=2012-02-08"></script>
|
|
<script>
|
|
(function () {
|
|
function load(url) { document.write('<script src="' + url + '"></' + 'script>'); }
|
|
if (!window.JSON) { load('polyfill/json2.js'); }
|
|
if (!window.localStorage || !window.sessionStorage) { load('polyfill/storage.js'); }
|
|
if (!('getContext' in document.createElement('canvas'))) { load('polyfill/flashcanvas.js'); }
|
|
}());
|
|
</script>
|
|
<script src="polyfill/keyboard.js"></script>
|
|
|
|
<h1>Applesoft BASIC in Javascript</h1>
|
|
<p>
|
|
By <a href="mailto:inexorabletash@gmail.com">Joshua Bell</a>
|
|
| <a target="_blank" href="https://github.com/inexorabletash/jsbasic/">Source</a>
|
|
| <a target="_blank" href="https://github.com/inexorabletash/jsbasic/blob/master/README.md">README</a>
|
|
— <a target="_blank" href="reference.htm">Applesoft BASIC Quick Reference</a>
|
|
|
|
<p>Related projects:
|
|
<a href="./jslogo">Logo in Javascript</a>
|
|
| <a href="http://calormen.com/vnIIc">Streaming video to an Apple II - vnIIc</a>
|
|
</p>
|
|
|
|
<br clear="left">
|
|
|
|
<!-- Screen -->
|
|
<link rel="stylesheet" href="display.css" type="text/css">
|
|
<div id="frame" class="jsb-frame" style="float: left; margin: 5px;" tabIndex="0">
|
|
<div id="screen-wrapper" class="jsb-wrapper">
|
|
<div id="lores" class="jsb-lores"></div>
|
|
<canvas id="hires" width="560" height="384" class="jsb-hires"></canvas>
|
|
<canvas id="hires2" width="560" height="384" class="jsb-hires"></canvas>
|
|
<div id="screen" class="jsb-tty"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Source -->
|
|
<div style="float: left; margin: 5px;">
|
|
Enter code:
|
|
<input type="button" value="Run" id="btn_run">
|
|
<input type="button" value="Stop" id="btn_stop" disabled="disabled">
|
|
|
|
<select id="lb_files">
|
|
<option disabled selected="selected">Select a file...</option>
|
|
<option value="sample.basic">DEMOS</option>
|
|
|
|
<option disabled>---- Tests ----</option>
|
|
<option value="sample.unittests">Unit Tests</option>
|
|
<option value="sample.keyboard">Keyboard Test</option>
|
|
<option value="sample.charset">Charset Test</option>
|
|
|
|
|
|
<option disabled>---- User Submissions ----</option>
|
|
|
|
<option disabled>Games</option>
|
|
<option value="simple.pong">SIMPLE.PONG</option>
|
|
<option value="sample.adventure">Text Adventure (Floyd McWilliams)</option>
|
|
<option value="sample.pacman">(Not Really) ASCII Pac-Man (Michael Kemp)</option>
|
|
<option value="sample.puzzler">Puzzler (Gregg Buntin)</option>
|
|
<option value="sample.hangman">Hangman (Mike Gleason)</option>
|
|
<option value="sample.raindrops">Catch the Raindrop (Nicholas Merchant)</option>
|
|
<option value="sample.jot">JOT (Mike Gleason)</option>
|
|
|
|
<option disabled>Graphics</option>
|
|
<option value="sample.rodscolorpattern">Rod's Color Pattern</option>
|
|
<option value="sample.hacker">Hacker Logo (markwstock)</option>
|
|
<option value="sample.loreswalk">Random LoRes (John Melesky)</option>
|
|
<option value="sample.hireswalk">Random HiRes (John Melesky)</option>
|
|
<option value="sample.sierpinski">Sierpinski Triangles (Kevin Miller)</option>
|
|
<option value="sample.stringart">String Art (Chris Heric)</option>
|
|
<option value="sample.paint">Drawing Program (Brian Broker)</option>
|
|
<option value="sample.scribble">Scribble (William Simms)</option>
|
|
<option value="sample.connections">Connections (Gregg Buntin)</option>
|
|
<option value="sample.squiggle">Squiggle (Gregg Buntin)</option>
|
|
<option value="sample.boys_surface">Boy's Surface (Lukas Innig)</option>
|
|
<option value="sample.gaussian">Gaussian Distribution 2D (John Russ)</option>
|
|
<option value="sample.bitmaps">Bitmap Images (Brian Broker)</option>
|
|
<option value="sample.mandelbrot">Mandelbrot Set (c/o Gregory Lewis)</option>
|
|
<option value="sample.mandelbrot2">Mandelbrot Set in Color</option>
|
|
<option value="sample.steve">Steve (Nicola Foggi)</option>
|
|
<option value="sample.logo">Apple Logo (Brendan Robert)</option>
|
|
|
|
<option disabled>Other</option>
|
|
<option value="sample.primes">Prime Sieve (Kevin Miller)</option>
|
|
<option value="sample.february">February Surprise (Antti Pirskanen)</option>
|
|
<option value="sample.hellosine">Hello World Sine Wave (Jamie Beu)</option>
|
|
<option value="sample.bodymass">Body Mass Index Calculator (Tim Dwyer)</option>
|
|
|
|
<option disabled>---- Traveller RPG Utilities ----</option>
|
|
<option value="TRADER C">TRADER</option>
|
|
<option value="sample.sectorgen">Traveller Sector Generator</option>
|
|
<option value="sample.zhorelay">Zhodani Relay Station Placement</option>
|
|
<option value="sample.readsector">Read Sector File</option>
|
|
</select>
|
|
|
|
<!-- Source code editor inserted here -->
|
|
<div id="editorframe"></div>
|
|
|
|
<form id="submission" method="post" enctype="text/plain" action="mailto:inexorabletash@gmail.com?subject=Applesoft%20Sample%20Submission">
|
|
<textarea name="source" id="source" style="display: none;">
|
|
</textarea>
|
|
<input type="submit" id="btn_share" value="Share your sample!">
|
|
<input type="button" id="btn_save" value="Save Program" title="Save the current program. NOTE: Can only save one program.">
|
|
<input type="button" id="btn_load" value="Load Program" title="Load a previously saved program. WARNING: The current program will be lost!">
|
|
<input type="button" id="show_paper" value="Show output" title="Echo all output to a "print-out", so you can copy/paste">
|
|
<input type="button" id="hide_paper" value="Hide output" title="Hide the "print-out"">
|
|
</form>
|
|
|
|
</div>
|
|
|
|
<br clear="left">
|
|
|
|
<h3 id="links">Links</h3>
|
|
<ul>
|
|
<li>
|
|
Real emulators in JavaScript:
|
|
<a target="_blank" href="http://www.scullinsteel.com/apple2/">Apple IIjs</a>,
|
|
<a target="_blank" href="http://www.scullinsteel.com/apple//e">Apple //jse</a>,
|
|
<a target="_blank" href="http://www.megidish.net/apple2js/">Apple2JS</a>,
|
|
and
|
|
<a target="_blank" href="https://github.com/nicholasbs/appletoo">many</a>
|
|
<a target="_blank" href="http://porkrind.org/a2/">more</a>
|
|
|
|
|
|
<li><a target="_blank" href="http://www.6502asm.com/">6502asm.com</a> - a 6502 assembler/emulator in JavaScript
|
|
<li><a target="_blank" href="http://www.quitebasic.com/">Quite BASIC</a> - a similar project aimed at teaching programming
|
|
<li><a target="_blank" href="http://navahogunleg.net/blog/my-projects/ng-basic/">NG-BASIC for Javascript</a> Navaho Gunleg's interpreter
|
|
</ul>
|
|
|
|
<div id="paper"></div>
|
|
|
|
<!-- CodeMirror syntax highlighting - this is optional -->
|
|
<script src="//cdnjs.cloudflare.com/ajax/libs/codemirror/4.7.0/codemirror.min.js"></script>
|
|
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/codemirror/4.7.0/codemirror.css">
|
|
<script src="cm/basic.js"></script>
|
|
<link rel="stylesheet" href="cm/basic.css">
|
|
<style type="text/css">
|
|
.CodeMirror { border: solid 1px black; width: 598px; height: 384px; background-color: white; }
|
|
.CodeMirror-scroll { height: 100%; }
|
|
</style>
|
|
|
|
<script src="basic.js?2012-02-08"></script>
|
|
<script src="bell.js"></script>
|
|
<script src="tty.js"></script>
|
|
<script src="lores.js"></script>
|
|
<script src="hires.js"></script>
|
|
<script src="dos.js"></script>
|
|
<script src="printer.js"></script>
|
|
<script src="index.js"></script>
|
|
|
|
<!-- Google Analytics -->
|
|
<script>
|
|
var _gaq = _gaq || [];
|
|
_gaq.push(['_setAccount', 'UA-18610679-3']);
|
|
_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>
|
|
|
|
<a href="https://github.com/inexorabletash/jsbasic" target="_blank"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub"></a>
|