1
0
mirror of https://github.com/sehugg/8bitworkshop.git synced 2024-11-26 10:49:17 +00:00
8bitworkshop/index.html

390 lines
19 KiB
HTML
Raw Normal View History

2016-12-16 01:21:51 +00:00
<!DOCTYPE html>
<html lang="en">
<head>
2018-07-26 16:44:09 +00:00
<title>8bitworkshop IDE</title>
2018-12-22 13:59:34 +00:00
<link rel="manifest" href="manifest.json">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="application-name" content="8bitworkshop">
<meta name="apple-mobile-web-app-title" content="8bitworkshop">
<meta name="theme-color" content="#ffffff">
<meta name="msapplication-navbutton-color" content="#ffffff">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<meta name="msapplication-starturl" content="/redir.html">
2018-10-03 14:58:59 +00:00
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=yes">
2016-12-16 01:21:51 +00:00
<style type="text/css" media="screen">
body {
overflow: hidden;
2016-12-30 23:51:15 +00:00
font-size: 11px;
2016-12-16 01:21:51 +00:00
}
</style>
<link rel="stylesheet" href="css/ui.css">
2017-12-25 16:44:46 +00:00
<script>
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
2018-07-06 06:42:01 +00:00
if (window.location.host.endsWith('8bitworkshop.com')) {
ga('create', 'UA-54497476-9', 'auto');
ga('set', 'anonymizeIp', true);
ga('send', 'pageview');
}
2017-12-25 16:44:46 +00:00
</script>
<script async src='https://www.google-analytics.com/analytics.js'></script>
2016-12-16 01:21:51 +00:00
</head>
<body>
2018-06-26 23:57:03 +00:00
<!-- for file upload -->
<input type="file" id="uploadFileElem" multiple accept="*" style="display:none" onchange="handleFileUpload(this.files)">
2018-11-25 12:18:32 +00:00
<div id="controls_top" class="disable-select">
2017-12-30 03:12:39 +00:00
<span class="dropdown">
<a class="btn btn-secondary dropdown-toggle" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" title="Menu">
<span class="glyphicon glyphicon-menu-hamburger" aria-hidden="true"></span>
<span class="caret"></span>
2017-12-30 03:12:39 +00:00
</a>
<ul class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<li><a class="dropdown-item" href="#" id="item_new_file">New Project...</a></li>
2018-12-08 00:28:11 +00:00
<li><a class="dropdown-item" href="#" id="item_upload_file">Upload...</a></li>
<hr>
<li class="dropdown dropdown-submenu">
2018-12-08 00:28:11 +00:00
<a tabindex="-1" href="#">File</a>
<ul class="dropdown-menu">
2018-12-08 00:28:11 +00:00
<li><a class="dropdown-item" href="#" id="item_reset_file">Revert to Original...</a></li>
<li><a class="dropdown-item" href="#" id="item_rename_file">Rename File...</a></li>
<li><a class="dropdown-item" href="#" id="item_delete_file">Delete File...</a></li>
<hr>
<li><a class="dropdown-item" href="#" id="item_addfile_include">Add Include File...</a></li>
<li><a class="dropdown-item" href="#" id="item_addfile_link">Add Linked File...</a></li>
</ul>
</li>
2018-08-25 18:29:51 +00:00
<li class="dropdown dropdown-submenu">
<a tabindex="-1" href="#">Download</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#" id="item_download_file">Download Source File</a></li>
<li><a class="dropdown-item" href="#" id="item_download_rom">Download ROM Image</a></li>
<li><a class="dropdown-item" href="#" id="item_download_zip">Download Project as ZIP</a></li>
<li><a class="dropdown-item" href="#" id="item_download_allzip">Download All Changes as ZIP</a></li>
2018-08-25 18:29:51 +00:00
</ul>
</li>
<li class="dropdown dropdown-submenu">
<a tabindex="-1" href="#">Share</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#" id="item_share_github">Share File on Github...</a></li>
2018-08-25 18:29:51 +00:00
<li><a class="dropdown-item" href="#" id="item_share_file">Share Playable Link...</a></li>
<li><a class="dropdown-item" href="#" id="item_record_video">Record Video...</a></li>
2018-09-25 23:46:24 +00:00
<li><a class="dropdown-item" href="#" id="item_export_cassette">Make Cassette Audio...</a></li>
2018-08-25 18:29:51 +00:00
</ul>
</li>
<li class="dropdown dropdown-submenu">
<a tabindex="-1" href="#">Debug</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#" id="item_debug_expr">Break Expression...</a></li>
</ul>
2017-05-20 19:13:23 +00:00
</li>
<li class="dropdown dropdown-submenu">
<a tabindex="-1" href="#">Tools</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" target="_8bws_tools" href="./tools/fontgen/">Bitmap Font Generator</a></li>
<li><a class="dropdown-item" target="_8bws_tools" href="http://tomeko.net/online_tools/file_to_hex.php?lang=en">Binary File to Hex Converter</a></li>
<li class="dropdown dropdown-submenu">
<a tabindex="-1" href="#">Atari 2600/VCS</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" target="_8bws_tools" href="https://alienbill.com/2600/playerpalnext.html">playerpal 2600</a></li>
<li><a class="dropdown-item" target="_8bws_tools" href="https://alienbill.com/2600/playfieldpal.html">playfieldpal 2600</a></li>
</ul>
</li>
</ul>
</li>
2017-05-20 19:13:23 +00:00
<hr>
<li class="dropdown dropdown-submenu">
2018-08-18 12:04:13 +00:00
<a tabindex="-1" href="#">Platform</a>
<ul class="dropdown-menu">
<li class="dropdown dropdown-submenu">
2018-08-21 14:16:47 +00:00
<a tabindex="-1" href="#">Game Consoles</a>
2018-08-18 12:04:13 +00:00
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="?platform=vcs" id="item_platform_vcs">Atari 2600/VCS</a></li>
<li><a class="dropdown-item" href="?platform=nes" id="item_platform_nes">NES</a></li>
2018-08-18 12:04:13 +00:00
</ul>
</li>
2018-08-21 14:16:47 +00:00
<li class="dropdown dropdown-submenu">
<a tabindex="-1" href="#">Computers</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="?platform=apple2" id="item_platform_apple2">Apple ][+</a></li>
</ul>
</li>
2018-08-18 12:04:13 +00:00
<li class="dropdown dropdown-submenu">
<a tabindex="-1" href="#">Arcade Systems</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="?platform=vicdual" id="item_platform_vicdual">VIC Dual</a></li>
<li><a class="dropdown-item" href="?platform=mw8080bw" id="item_platform_mw8080bw">Midway 8080</a></li>
<li><a class="dropdown-item" href="?platform=galaxian-scramble" id="item_platform_galaxian_scramble">Galaxian/Scramble Hardware</a></li>
<li><a class="dropdown-item" href="?platform=vector-z80color" id="item_platform_vector_z80color">Atari Color Vector (Z80)</a></li>
<li><a class="dropdown-item" href="?platform=williams-z80" id="item_platform_williams_z80">Williams (Z80)</a></li>
<li><a class="dropdown-item" href="?platform=sound_williams-z80" id="item_platform_sound_williams_z80">Williams Sound (Z80)</a></li>
</ul>
</li>
<li class="dropdown dropdown-submenu">
<a tabindex="-1" href="#">Hardware</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="?platform=verilog" id="item_platform_verilog">Verilog</a></li>
<li><a class="dropdown-item" href="?platform=verilog-vga" id="item_platform_verilog">Verilog (VGA @ 25 Mhz)</a></li>
</ul>
</li>
2018-11-22 16:22:54 +00:00
<li class="dropdown dropdown-submenu">
<a tabindex="-1" href="#">Other</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="?platform=vcs.mame" id="item_platform_vcs_mame">Atari 2600/VCS (MAME)</a></li>
<li><a class="dropdown-item" href="?platform=nes.mame" id="item_platform_nes_mame">NES (MAME)</a></li>
<li><a class="dropdown-item" href="?platform=vector-ataricolor" id="item_platform_nes_mame">Atari Color Vector (6502)</a></li>
2018-11-22 16:22:54 +00:00
<li><a class="dropdown-item" href="?platform=markdown" id="item_platform_markdown">Markdown</a></li>
</ul>
</li>
2018-08-18 12:04:13 +00:00
</ul>
2017-05-20 19:13:23 +00:00
</li>
</ul>
</span>
2019-05-02 01:28:16 +00:00
<select id="preset_select" name="" title="Project Select" style="width:16em">
</select>
2017-04-19 01:18:53 +00:00
<img id="compile_spinner" src="images/spinner.gif" height="20em" style="visibility:hidden;margin-left:8px;margin-right:8px">
<span id="toolbar" class="hidden-xs"></span>
2018-11-26 12:33:09 +00:00
<span class="btn_group view_group hidden-sm hidden-xs" id="speed_bar" style="display:none">
<button id="dbg_slowest" class="btn" title="Slowest"><span class="glyphicon glyphicon-fast-backward" aria-hidden="true"></span></button>
<button id="dbg_slower" class="btn" title="Slower"><span class="glyphicon glyphicon-backward" aria-hidden="true"></span></button>
<span class="label"><span id="fps_label">60.00</span> fps</span>
<button id="dbg_faster" class="btn" title="Faster"><span class="glyphicon glyphicon-forward" aria-hidden="true"></span></button>
<button id="dbg_fastest" class="btn" title="Faster"><span class="glyphicon glyphicon-fast-forward" aria-hidden="true"></span></button>
</span>
<span id="verilog_bar" style="display:none">
<span class="label"><span id="settle_label"></span> evals/clk</span>
</span>
2017-12-30 03:12:39 +00:00
<span class="dropdown" style="float:right">
<span class="logo-gradient hidden-xs hidden-sm hidden-md">8bitworkshop</span>
2018-11-24 22:36:10 +00:00
&nbsp;
<a class="btn btn-secondary dropdown-toggle hidden-xs" id="booksMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
GET BOOKS <span class="caret"></span>
2017-12-30 03:12:39 +00:00
</a>
<ul class="dropdown-menu pull-right" aria-labelledby="dropdownMenuButton">
<li>
2017-12-30 17:48:30 +00:00
<a class="dropdown-item dropdown-link" target="_book_a2600" href="https://www.amazon.com/gp/product/1541021304/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&tag=pzp-20&camp=1789&creative=9325&linkCode=as2&creativeASIN=B01N4DSRIZ&linkId=04d39e274c06e6c93b93d20a9a977111">
2017-12-30 03:12:39 +00:00
<img src="images/book_a2600.png"/>
&nbsp;&nbsp;<b>Making Games For The Atari 2600</b>
2017-12-30 03:12:39 +00:00
</a>
2017-12-30 17:48:30 +00:00
<a class="dropdown-item dropdown-link" target="_book_arcade" href="https://www.amazon.com/gp/product/1545484759/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1545484759&linkCode=as2&tag=pzp-20&linkId=b27709c022d2ebe639e90316d9f4fd5b">
2017-12-30 03:12:39 +00:00
<img src="images/book_arcade.png"/>
&nbsp;&nbsp;<b>Making 8-bit Arcade Games in C</b>
2017-12-30 17:48:30 +00:00
</a>
2018-12-17 22:52:26 +00:00
<a class="dropdown-item dropdown-link" target="_book_verilog" href="https://www.amazon.com/gp/product/1728619440/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1728619440&linkCode=as2&tag=pzp-20">
2018-12-15 16:10:32 +00:00
<img src="images/book_verilog.png"/>
&nbsp;&nbsp;<b>Designing Video Game Hardware in Verilog</b>
2017-12-30 03:12:39 +00:00
</a>
</li>
</ul>
</span>
<!--<span id="best_in_firefox" style="display:none;font-size:12px;font-style:italic;float:right;color:#666">Note: Works best in Firefox</span>-->
</div>
<div id="notebook">
<div id="sidebar">
<ul id="windowMenuList">
</ul>
</div>
2017-04-06 14:28:51 +00:00
<div id="workspace">
2016-12-16 01:21:51 +00:00
</div>
2017-01-03 01:42:15 +00:00
<div class="emulator" id="emulator">
2018-11-23 18:29:11 +00:00
<div id="replaydiv" class="replaydiv" style="display:none">
<div style="display:flex">
<button id="replay_min" class="btn" title="Start of replay"><span class="glyphicon glyphicon-fast-backward" aria-hidden="true"></span></button>
<button id="replay_back" class="btn" title="Back one frame"><span class="glyphicon glyphicon-backward" aria-hidden="true"></span></button>
2018-11-23 18:29:11 +00:00
<span id="replay_frame" style="text-align:center;width:3em;margin-left:1em;color:#ccc">-</span>
<input type="range" min="0" max="0" value="0" class="slider" id="replayslider">
<button id="replay_fwd" class="btn" title="Ahead one frame"><span class="glyphicon glyphicon-forward" aria-hidden="true"></span></button>
<button id="replay_max" class="btn" title="End of replay"><span class="glyphicon glyphicon-fast-forward" aria-hidden="true"></span></button>
2018-11-23 18:29:11 +00:00
</div>
</div>
<div id="javatari-div" style="float:center;margin:10px;display:none">
<div id="javatari-screen" style="margin: 0 auto; box-shadow: 2px 2px 10px rgb(60, 60, 60);"></div>
<div id="javatari-console-panel" style="margin: 0 auto; box-shadow: 2px 2px 10px rgb(60, 60, 60);"></div>
</div>
<div id="emuoverlay" class="emuoverlay" style="display:none">
</div>
2017-04-19 01:18:53 +00:00
</div>
<div id="mem_info" class="mem_info" style="display:none">
</div>
<div id="error_alert" class="alert alert-danger alert-dismissable" style="position:absolute;right:0;top:0;display:none">
<button type="button" class="close" onclick="$('.alert').hide()" aria-hidden="true">&times;</button>
<div id="error_alert_msg"></div>
</div>
2016-12-16 01:21:51 +00:00
</div>
<!--
2016-12-27 02:45:04 +00:00
<div class="twitbtn">
<a target="_new" href="https://twitter.com/8bitworkshop" class="twitter-follow-button" data-show-count="false">Follow @8bitworkshop</a>-->
2018-05-25 21:14:43 +00:00
<!--<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>-->
<!--</div>-->
<div id="pleaseWaitModal" class="modal fade">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-body">
Please wait...
</div>
</div>
</div>
</div>
2017-05-20 19:13:23 +00:00
<div id="videoPreviewModal" class="modal fade">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h3 class="modal-title">Video Preview - Right-click to save</h3>
</div>
<div class="modal-body">
<img id="videoPreviewImage">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<div id="embedLinkModal" class="modal fade">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h3 class="modal-title">Share Playable Link</h3>
</div>
<div class="modal-body">
<p>Here's a direct link to a playable version of your game:</p>
<textarea rows="4" cols="80" id="embedLinkTextarea" class="cliptext"></textarea>
<button type="button" class="btn btn-primary" data-clipboard-target="#embedLinkTextarea">Copy Direct Link</button>
<p>You can also embed it into an IFRAME:</p>
<textarea rows="4" cols="80" id="embedIframeTextarea" class="cliptext"></textarea>
<button type="button" class="btn btn-primary" data-clipboard-target="#embedIframeTextarea">Copy IFRAME Tag</button>
<p id="embedAdviceWarnIE">Note: These links may be too long for IE/Edge browsers.</p>
<p id="embedAdviceWarnAll">Note: These links may be too long for some browsers.</p>
</div>
<div class="modal-footer">
Choose one (or none) then
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<div id="embedGistModal" class="modal fade">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h3 class="modal-title">Share Code on Github</h3>
</div>
<div class="modal-body">
<p>If you have a Github account, you can share your code as a Github gist.</p>
<ul>
<li>Make sure the correct platform is selected.
<li>Go to <a href="https://gist.github.com/" target="_8bitgist">gist.github.com</a>
2019-04-29 02:18:44 +00:00
<li>Create a gist with your source code (one file only.)
<li>Paste the final gist URL below.
</ul>
<textarea rows="2" cols="100" id="embedGistURL" class="cliptext"></textarea>
<p>The shareable URL will appear here:</p>
<textarea rows="2" cols="100" id="embedGistShareURL" class="cliptext"></textarea><br>
<button type="button" class="btn btn-primary" data-clipboard-target="#embedGistShareURL">Copy Shareable Link</button>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
2017-05-20 19:13:23 +00:00
2019-05-03 13:32:45 +00:00
<script src="jquery/jquery-3.4.1.min.js"></script>
2016-12-16 01:21:51 +00:00
2016-12-30 23:51:15 +00:00
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
<script src="bootstrap/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="bootstrap/css/bootstrap-tour.min.css">
2016-12-30 23:51:15 +00:00
<script src="bootstrap/js/bootstrap-tour.min.js"></script>
2016-12-18 20:59:31 +00:00
<script src="src/codemirror/codemirror.js"></script>
<script src="codemirror/mode/clike/clike.js"></script>
<script src="codemirror/mode/z80/z80.js"></script>
2017-11-11 19:45:32 +00:00
<script src="codemirror/mode/verilog/verilog.js"></script>
<script src="codemirror/mode/markdown/markdown.js"></script>
<script src="src/codemirror/6502.js"></script>
<script src="src/codemirror/bataribasic.js"></script>
2016-12-16 01:21:51 +00:00
<link rel="stylesheet" href="css/codemirror.css">
<script src="codemirror/addon/edit/matchbrackets.js"></script>
2016-12-16 01:21:51 +00:00
<script src="codemirror/addon/search/search.js"></script>
<script src="codemirror/addon/search/searchcursor.js"></script>
2017-11-20 01:32:58 +00:00
<script src="codemirror/addon/search/jump-to-line.js"></script>
2016-12-16 01:21:51 +00:00
<script src="codemirror/addon/dialog/dialog.js"></script>
2017-01-08 15:51:19 +00:00
<script src="codemirror/addon/selection/active-line.js"></script>
2016-12-16 01:21:51 +00:00
<link rel="stylesheet" href="codemirror/addon/dialog/dialog.css">
<script src="javatari.js/release/javatari/javatari.js"></script>
<!--
<script src="javatari.js/src/main/Javatari.js"></script>
<script src="javatari.js/temp/javatari.part.concat.js"></script>
-->
2017-05-10 01:46:45 +00:00
<script src="src/cpu/z80fast.js"></script>
<script src="jsnes/dist/jsnes.min.js"></script>
<script src="src/cpu/6809.js"></script>
<!--<script src="jsnes/lib/dynamicaudio-min.js" type="text/javascript" charset="utf-8"></script>-->
2017-02-02 19:11:52 +00:00
<script src="FileSaver.js/FileSaver.min.js"></script>
2018-06-26 06:56:36 +00:00
<script src="localForage/dist/localforage.nopromises.js"></script>
2018-09-12 02:28:30 +00:00
<script src="lib/mousetrap.min.js"></script>
<script src="lib/mousetrap-global-bind.min.js"></script>
2018-09-12 02:28:30 +00:00
<script src="lib/split.min.js"></script>
2017-02-02 19:11:52 +00:00
2018-07-08 03:10:51 +00:00
<script>
var exports = {};
function require(modname) {
if (modname == 'jquery') return $;
else if (modname.startsWith('.')) return exports;
else { console.log("Unknown require()", modname); return exports; }
}
</script>
<script src="tss/js/tss/PsgDeviceChannel.js"></script>
<script src="tss/js/tss/MasterChannel.js"></script>
<script src="tss/js/tss/AudioLooper.js"></script>
<script src="tss/js/Log.js"></script>
2018-11-19 14:10:13 +00:00
<script src="gen/video/tms9918a.js"></script>
<script src="gen/util.js"></script>
2018-07-11 00:58:46 +00:00
<script src="gen/store.js"></script>
2017-04-19 01:18:53 +00:00
<script src="src/vlist.js"></script>
2018-07-11 00:58:46 +00:00
<script src="gen/emu.js"></script>
<script src="gen/baseplatform.js"></script>
<script src="gen/analysis.js"></script>
2018-07-11 00:58:46 +00:00
<script src="gen/audio.js"></script>
<script src="gen/cpu/disasm6502.js"></script>
<script src="gen/cpu/disasmz80.js"></script>
2018-07-08 14:07:19 +00:00
<script src="gen/workertypes.js"></script>
<script src="gen/project.js"></script>
<script src="gen/windows.js"></script>
<script src="gen/views.js"></script>
<script src="gen/recorder.js"></script>
2018-09-12 02:28:30 +00:00
<script src="gen/waveform.js"></script>
2019-03-18 18:39:02 +00:00
<script src="gen/pixed/pixeleditor.js"></script>
2018-07-08 03:10:51 +00:00
<script src="gen/ui.js"></script>
2017-04-20 00:55:13 +00:00
<!-- <script src="src/audio/votrax.js"></script> -->
2018-11-26 12:33:09 +00:00
<!-- <script src="local/lzg.js"></script> -->
2017-01-25 17:30:05 +00:00
2018-11-26 12:33:09 +00:00
<script>
// submenus open on click + hover
$( ".dropdown-submenu" ).click(function(event) {
event.stopPropagation();
$(this).parent().siblings().removeClass('open');
$(this).parent().toggleClass('open');
});
</script>
2018-08-28 22:11:22 +00:00
2017-01-14 16:14:25 +00:00
<script>
startUI(true);
</script>
2016-12-16 01:21:51 +00:00
2017-04-29 18:38:50 +00:00
<script>
/*
2017-04-29 18:38:50 +00:00
var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
if (!isFirefox && platform_id != 'vcs') { $("#best_in_firefox").show(); }
*/
2017-04-29 18:38:50 +00:00
</script>
2016-12-16 01:21:51 +00:00
</body>
</html>