2013-10-10 18:03:07 +00:00
<!DOCTYPE html> <!-- - * - mode: HTML; indent - tabs - mode: nil - * - -->
2015-07-11 05:55:36 +00:00
<!--
2016-11-22 05:17:34 +00:00
Copyright 2010-2016 Will Scullin < scullin @ scullinsteel . com >
2015-07-11 05:55:36 +00:00
2013-10-10 18:03:07 +00:00
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation. No representations are made about the suitability of this
software for any purpose. It is provided "as is" without express or
implied warranty.
-->
< html >
< head >
< title > Apple ][js - An Apple 2 Emulator in JavaScript< / title >
2013-12-07 19:20:22 +00:00
< meta name = "viewport" content = "width=device-width, user-scalable=no" / >
2013-10-10 18:03:07 +00:00
< meta name = "apple-mobile-web-app-capable" content = "yes" >
2013-11-18 01:07:14 +00:00
< meta name = "apple-mobile-web-app-title" content = "Apple ][js" >
< meta name = "apple-mobile-web-app-status-bar-style" content = "black-translucent" >
2013-10-10 18:03:07 +00:00
< meta charset = "utf-8" / >
2014-07-30 19:01:57 +00:00
< meta name = "description" content = "Apple ][js is an Apple ][ emulator written using only JavaScript and HTML5. It has color display, sound and disk support. It works best in the Chrome and Safari browsers." / >
2013-10-10 18:03:07 +00:00
< meta name = "keywords" content = "apple2,apple,ii,javascript,emulator,html5" / >
< link rel = "apple-touch-icon" href = "img/webapp-iphone.png" / >
< link rel = "apple-touch-icon" size = "72x72" href = "img/webapp-ipad.png" / >
< link rel = "shortcut icon" href = "logoicon.png" / >
< link rel = "stylesheet" type = "text/css" href = "css/apple2.css" / >
2015-07-11 05:55:36 +00:00
< link rel = "stylesheet" type = "text/css"
2013-10-10 18:03:07 +00:00
href="http://code.jquery.com/ui/1.10.3/themes/mint-choc/jquery-ui.css" />
< meta property = "og:title" content = "Apple ][js" / >
< meta property = "og:type" content = "website" / >
2014-07-30 19:01:57 +00:00
< meta property = "og:description" content = "Apple ][js is an Apple 2 emulator written using only JavaScript and HTML5." / >
2013-10-10 18:03:07 +00:00
< meta property = "og:url" content = "http://www.scullinsteel.com/apple2/" / >
< meta property = "og:image" content = "http://www.scullinsteel.com/apple2/img/image.png" / >
< meta property = "fb:admins" content = "700585391" / >
<!-- jQuery -->
< script type = "text/javascript" src = "http://code.jquery.com/jquery-1.9.1.js" >
< / script >
< script type = "text/javascript" src = "http://code.jquery.com/ui/1.10.3/jquery-ui.js" >
< / script >
<!-- Emulator Scripts -->
2013-11-16 20:38:18 +00:00
< script type = "text/javascript" src = "js/util.js" > < / script >
< script type = "text/javascript" src = "js/prefs.js" > < / script >
< script type = "text/javascript" src = "js/ram.js" > < / script >
2016-11-22 05:17:34 +00:00
< script type = "text/javascript" src = "js/applesoft/decompiler.js" > < / script >
2017-08-20 17:46:10 +00:00
< script type = "text/javascript" src = "js/intbasic/decompiler.js" > < / script >
2017-09-24 14:06:57 +00:00
< script type = "text/javascript" src = "js/canvas.js" > < / script >
2013-11-16 20:38:18 +00:00
< script type = "text/javascript" src = "js/apple2io.js" > < / script >
2017-09-23 04:42:57 +00:00
< script type = "text/javascript" src = "js/cards/langcard.js" > < / script >
< script type = "text/javascript" src = "js/cards/parallel.js" > < / script >
< script type = "text/javascript" src = "js/cards/videoterm.js" > < / script >
< script type = "text/javascript" src = "js/cards/disk2.js" > < / script >
< script type = "text/javascript" src = "js/cards/ramfactor.js" > < / script >
< script type = "text/javascript" src = "js/cards/thunderclock.js" > < / script >
2013-11-16 20:38:18 +00:00
< script type = "text/javascript" src = "js/cpu6502.js" > < / script >
< script type = "text/javascript" src = "js/base64.js" > < / script >
2017-08-20 17:46:10 +00:00
< script type = "text/javascript" src = "js/roms/fpbasic.js" > < / script >
< script type = "text/javascript" src = "js/roms/intbasic.js" > < / script >
< script type = "text/javascript" src = "js/roms/original.js" > < / script >
< script type = "text/javascript" src = "js/roms/apple2_char.js" > < / script >
2014-03-06 04:04:54 +00:00
< script type = "text/javascript" src = "js/ui/audio.js" > < / script >
2017-09-23 04:42:57 +00:00
< script type = "text/javascript" src = "js/ui/keyboard.js" > < / script >
2013-12-27 20:18:45 +00:00
< script type = "text/javascript" src = "js/ui/gamepad.js" > < / script >
2013-11-16 20:38:18 +00:00
< script type = "text/javascript" src = "js/ui/printer.js" > < / script >
<!-- Disk Index -->
< script type = "text/javascript" src = "json/disks/index.js" > < / script >
2013-10-10 18:03:07 +00:00
< / head >
< body >
< div style = "margin: auto; width: 604px" >
2017-09-23 04:42:57 +00:00
< div id = "header" >
< a href = "http://www.w3.org/html/logo/" > < img src = "http://www.w3.org/html/logo/badge/html5-badge-h-solo.png" width = "63" height = "64" alt = "HTML5 Powered" title = "HTML5 Powered" style = "float: right" > < / a >
< a href = "about.html" target = "_blank" >
< img src = "img/badge.png" id = "badge" / >
< / a >
< h1 id = "subtitle" > An Apple ][ Emulator in JavaScript< / h1 >
< / div >
< div id = "display" >
< div class = "overscan" >
< canvas id = "screen" width = "560" height = "384" > < / canvas >
< / div >
< / div >
2013-10-10 18:03:07 +00:00
< div class = "inset" >
< div style = "float: left; width: 50%" >
< div class = "disk" id = "disk1" > < / div >
< span id = "disklabel1" class = "disklabel" > Disk 1< / span >
< button id = "diskload1" class = "diskload" value = "Load"
onclick="openLoad(1, event);">
Load
< / button >
< button id = "disksave1" class = "disksave" value = "Save"
2013-10-23 02:35:47 +00:00
onclick="openSave(1, event);">
2013-10-10 18:03:07 +00:00
Save
< / button >
< / div >
< div style = "float: left; width: 50%" >
< div class = "disk" id = "disk2" > < / div >
< span id = "disklabel2" class = "disklabel" > Disk 2< / span >
< button id = "diskload2" class = "diskload" value = "Load"
onclick="openLoad(2, event);">
Load
< / button >
< button id = "disksave2" class = "disksave" value = "Save"
2013-10-23 02:35:47 +00:00
onclick="openSave(2, event);">
2013-10-10 18:03:07 +00:00
Save
< / button >
< / div >
< div style = "clear: both" > < / div >
< / div >
< div class = "inset" >
< div id = "khz" onclick = "showFPS = !showFPS" > 0KHz< / div >
< input type = "button" value = "Pause" onclick = "pauseRun(this)" / >
< div style = "float: right" >
< input type = "button" onclick = "window.open('about.html','_html')"
name="About" value="About">
2015-07-11 05:55:36 +00:00
< input type = "button" onclick = "$('#options').dialog('open')"
2013-10-10 18:03:07 +00:00
name="Options" value="Options">
< / div >
< / div >
< div class = "inset" >
2014-01-05 15:42:03 +00:00
< div id = "keyboard" > < / div >
2017-09-23 04:42:57 +00:00
< div id = "textarea" style = "display: none" >
< button onclick = "io.keyDown(0x1b)" >
ESC
< / button >
< button onclick = "reset()" style = "float: right; margin-left: 10px" >
Reset
< / button >
< button onclick = "io.keyDown(0x15)" style = "float: right" >
→
< / button >
< button onclick = "io.keyDown(0x08)" style = "float: right" >
←
< / button >
< label for = "text_input" > Text Input< / label >
< textarea rows = "10" style = "width: 99%" id = "text_input" > < / textarea >
< br / >
< button onclick = "io.setKeyBuffer($('#text_input').val())" >
Send
< / button >
< input type = "checkbox" id = "buffering" / >
< label for = "buffering" > Buffer< / label >
< button style = "float: right"
onclick="$('#keyboard').show(); $('#textarea').hide()">
Keyboard
< / button >
< / div >
2013-10-10 18:03:07 +00:00
< / div >
< / div >
2017-09-23 04:42:57 +00:00
< div id = "loading" title = "Loading" style = "display: none" >
2013-10-10 18:03:07 +00:00
Loading...
< / div >
2017-09-23 04:42:57 +00:00
< div id = "options" title = "Options" style = "display: none" >
2013-10-10 18:03:07 +00:00
< h3 > CPU< / h3 >
< ul >
< li >
2016-11-28 01:28:49 +00:00
< select id = "computer_type" value = "apple2plus" onchange = "updateCPU()" >
< option value = "apple2plus" > Apple ][+< / option >
< option value = "apple2" > Autostart Apple ][< / option >
< option value = "original" > Apple ][< / option >
2017-09-23 04:42:57 +00:00
< / select >
2016-11-28 01:28:49 +00:00
< label for = "computer_type" >
Type
< / label >
< / li >
< li >
< input type = "checkbox" id = "accelerator_toggle" onclick = "updateCPU()" / >
2014-07-30 19:01:57 +00:00
< label for = "accelerator_toggle" >
Accelerated CPU
2013-10-10 18:03:07 +00:00
< / label >
< / li >
< / ul >
< h3 > Joystick< / h3 >
< ul >
2016-11-28 01:28:49 +00:00
< li >
< input type = "checkbox" id = "disable_mouse"
onclick="updateJoystick()" />
< label for = "disable_mouse" >
Disable Mouse Joystick
< / label >
< / li >
2013-10-10 18:03:07 +00:00
< li >
2015-07-11 05:55:36 +00:00
< input type = "checkbox" id = "flip_x"
2013-10-10 18:03:07 +00:00
onclick="updateJoystick()" />
< label for = "flip_x" >
Flip X-Axis
< / label >
< / li >
< li >
2015-07-11 05:55:36 +00:00
< input type = "checkbox" id = "flip_y"
2013-10-10 18:03:07 +00:00
onclick="updateJoystick()" />
< label for = "flip_y" >
Flip Y-Axis
< / label >
< / li >
< li >
2015-07-11 05:55:36 +00:00
< input type = "checkbox" id = "swap_x_y"
2013-10-10 18:03:07 +00:00
onclick="updateJoystick()" />
< label for = "swap_x_y" >
Swap X-Y Axis
< / label >
< / li >
< / ul >
< h3 > Monitor< / h3 >
< ul >
< li >
2015-07-11 05:55:36 +00:00
< input type = "checkbox" id = "green_screen"
2013-10-10 18:03:07 +00:00
onclick="updateScreen()" />
< label for = "green_screen" >
Green Screen
< / label >
< / li >
< li >
2015-07-11 05:55:36 +00:00
< input type = "checkbox" id = "show_scanlines"
2013-10-10 18:03:07 +00:00
onclick="updateScreen()" />
< label for = "show_scanlines" >
Show Scanlines
< / label >
< / li >
< / ul >
< h3 > Sound< / h3 >
< ul >
< li >
2015-07-11 05:55:36 +00:00
< input type = "checkbox" id = "enable_sound"
2013-10-10 18:03:07 +00:00
onclick="updateSound()" checked="checked" />
< label for = "enable_sound" >
Enable (Experimental)
< / label >
< / li >
< / ul >
< / div >
2017-09-23 04:42:57 +00:00
< div id = "save" title = "Save Disk" style = "display: none" >
2013-10-10 18:03:07 +00:00
< form action = "#" onsubmit = "return false;" >
2017-09-23 04:42:57 +00:00
< b > Save to Browser< / b >
2016-11-28 01:28:49 +00:00
< br / > < br / >
2015-07-11 05:55:36 +00:00
Save Name: < input type = "text" name = "name" id = "save_name"
2013-10-10 18:03:07 +00:00
style="width: 200px" />
< / form >
2016-11-28 01:28:49 +00:00
< hr / >
< div >
< b > Download to Local Disk< / b >
< br / > < br / >
< a id = "local_save_link" class = "button" > Download< / a >
< / div >
2013-10-10 18:03:07 +00:00
< / div >
2017-09-23 04:42:57 +00:00
< div id = "manage" title = "Manage Disks" style = "display: none" >
2013-10-10 18:03:07 +00:00
< / div >
2017-09-23 04:42:57 +00:00
< div id = "http_load" title = "Load URL" style = "display: none" >
2016-11-28 01:28:49 +00:00
< form action = "#" >
< input type = "text" id = "http_url" style = "width: 500px" / >
< / form >
< / div >
2017-09-23 04:42:57 +00:00
< div id = "load" title = "Load Disk" style = "display: none" >
2013-10-10 18:03:07 +00:00
< table >
< tr >
< td >
2015-07-11 05:55:36 +00:00
< select id = "category_select" multiple = "multiple"
2013-10-10 18:03:07 +00:00
class="ui-widget ui-state-default"
onchange="selectCategory(event)" >
< / select >
< / td >
< td >
< select id = "disk_select" multiple = "multiple"
class="ui-widget ui-state-default"
onchange="selectDisk(event)"
2015-07-11 05:55:36 +00:00
ondblclick="clickDisk(event)">
2013-10-10 18:03:07 +00:00
< / select >
< / td >
< / tr >
< / table >
2013-10-23 02:35:47 +00:00
< form action = "#" >
< input type = "file" id = "local_file" / >
< / form >
2013-10-10 18:03:07 +00:00
< / div >
2017-09-23 04:42:57 +00:00
< script type = "text/javascript" src = "js/main2.js" > < / script >
2013-10-10 18:03:07 +00:00
< / body >
< / html >