2016-12-16 01:21:51 +00:00
<!DOCTYPE html>
< html lang = "en" >
< head >
2017-01-14 16:14:25 +00:00
< title > 8bitworkshop< / title >
2016-12-16 01:21:51 +00:00
< style type = "text/css" media = "screen" >
body {
2017-01-06 14:49:07 +00:00
overflow: hidden !important;
2016-12-30 23:51:15 +00:00
font-size: 11px;
2016-12-16 01:21:51 +00:00
}
2017-05-04 15:54:56 +00:00
.pixeditback {
position:absolute;
z-index:100;
width:100%;
height:100%;
padding:50px;
border-width:4px;
border-color:#333;
border-style:solid;
background-color:rgba(64, 64, 64, 0.5);
}
#pixeditframe {
width:100%;
height:100%;
}
2016-12-16 01:21:51 +00:00
< / style >
2017-04-29 15:31:11 +00:00
< 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)" >
2017-01-07 02:09:41 +00:00
< div id = "controls_top" >
2017-12-30 03:12:39 +00:00
< span class = "dropdown" >
2018-07-06 23:12:58 +00:00
< a class = "btn btn-secondary dropdown-toggle" id = "dropdownMenuButton" data-toggle = "dropdown" aria-haspopup = "true" aria-expanded = "false" title = "Menu" >
2018-07-07 05:09:15 +00:00
< span class = "glyphicon glyphicon-menu-hamburger" aria-hidden = "true" > < / span > < / button >
< span class = "caret" > < / span >
2017-12-30 03:12:39 +00:00
< / a >
< ul class = "dropdown-menu" aria-labelledby = "dropdownMenuButton" >
2018-03-23 21:05:08 +00:00
< li > < a class = "dropdown-item" href = "#" id = "item_new_file" > New File...< / a > < / li >
2018-06-26 23:57:03 +00:00
< li > < a class = "dropdown-item" href = "#" id = "item_upload_file" > Upload File...< / a > < / li >
2017-01-26 05:09:57 +00:00
< li > < a class = "dropdown-item" href = "#" id = "item_share_file" > Share File as GitHub Gist...< / a > < / li >
2017-01-14 02:31:04 +00:00
< li > < a class = "dropdown-item" href = "#" id = "item_reset_file" > Revert to Original...< / a > < / li >
2018-05-27 18:13:06 +00:00
< li > < a class = "dropdown-item" href = "#" id = "item_download_file" > Download Source File< / a > < / li >
2018-03-23 21:05:08 +00:00
< li > < a class = "dropdown-item" href = "#" id = "item_download_rom" > Download ROM Image< / a > < / li >
2017-05-08 11:58:45 +00:00
< li > < a class = "dropdown-item" href = "#" id = "item_record_video" > Record Video...< / a > < / li >
2017-01-07 18:05:02 +00:00
< 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 >
2018-05-25 21:14:43 +00:00
<!--
2018-03-23 21:05:08 +00:00
< li class = "dropdown dropdown-submenu" >
< a tabindex = "-1" href = "#" > Options< / a >
< ul class = "dropdown-menu" >
< li > < i id = "item_low_power_check" style = "display:hidden" class = "fa fa-check" > < / i > < a class = "dropdown-item" href = "#" id = "item_low_power" > Low Power Mode< / a > < / li >
< / ul >
< / li >
2018-05-25 21:14:43 +00:00
-->
2017-05-20 19:13:23 +00:00
< hr >
< li class = "dropdown dropdown-submenu" >
< a tabindex = "-1" href = "#" > Platform< / a >
< ul class = "dropdown-menu" >
< li > < a class = "dropdown-item" href = "?platform=vcs" id = "item_platform_vcs" > Atari VCS< / a > < / li >
2018-06-20 04:13:19 +00:00
< li > < a class = "dropdown-item" href = "?platform=vcs-mame" id = "item_platform_vcs" > Atari VCS (MAME)< / a > < / li >
2018-07-24 15:38:56 +00:00
< li > < a class = "dropdown-item" href = "?platform=apple2" id = "item_platform_apple2" > Apple ][< / a > < / li >
2017-05-20 19:13:23 +00:00
< 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 >
2017-01-07 02:09:41 +00:00
< / ul >
< / span >
2018-07-02 13:34:20 +00:00
2018-07-06 23:12:58 +00:00
< select id = "preset_select" name = "" title = "Project Select" >
2017-01-07 02:09:41 +00:00
< / select >
2018-07-02 13:34:20 +00:00
< span class = "dropdown" >
2018-07-06 23:12:58 +00:00
< a class = "btn btn-secondary dropdown-toggle" id = "windowMenuButton" data-toggle = "dropdown" aria-haspopup = "true" aria-expanded = "false" title = "Window Select" >
2018-07-07 05:09:15 +00:00
< span class = "glyphicon glyphicon-folder-open" aria-hidden = "true" > < / span > < / button >
< span class = "caret" > < / span >
2018-07-02 13:34:20 +00:00
< / a >
< ul class = "dropdown-menu" aria-labelledby = "windowMenuButton" id = "windowMenuList" >
< / ul >
< / span >
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" >
2017-04-23 13:03:05 +00:00
< span class = "btn_group debug_group" id = "debug_bar" >
2017-01-16 15:35:19 +00:00
< button id = "dbg_reset" type = "submit" title = "Reset and Break" > < span class = "glyphicon glyphicon-refresh" aria-hidden = "true" > < / span > < / button >
< button id = "dbg_pause" type = "button" title = "Pause" > < span class = "glyphicon glyphicon-pause" aria-hidden = "true" > < / span > < / button >
< button id = "dbg_go" type = "button" title = "Run" > < span class = "glyphicon glyphicon-play" aria-hidden = "true" > < / span > < / button >
< button id = "dbg_step" type = "submit" title = "Step" > < span class = "glyphicon glyphicon-step-forward" aria-hidden = "true" > < / span > < / button >
2017-11-24 19:14:22 +00:00
< button id = "dbg_tovsync" type = "submit" title = "Single Frame" > < span class = "glyphicon glyphicon-forward" aria-hidden = "true" > < / span > < / button >
2017-01-16 15:35:19 +00:00
< button id = "dbg_toline" type = "submit" title = "Run To Line" > < span class = "glyphicon glyphicon-save" aria-hidden = "true" > < / span > < / button >
2017-01-17 17:26:08 +00:00
< button id = "dbg_stepout" type = "submit" title = "Step Out of Subroutine" > < span class = "glyphicon glyphicon-hand-up" aria-hidden = "true" > < / span > < / button >
2017-01-16 15:35:19 +00:00
< button id = "dbg_stepback" type = "submit" title = "Step Backwards" > < span class = "glyphicon glyphicon-step-backward" aria-hidden = "true" > < / span > < / button >
2017-04-19 01:18:53 +00:00
< / span >
2018-02-26 23:18:23 +00:00
< span class = "btn_group view_group" id = "speed_bar" style = "display:none" >
2018-02-27 04:48:36 +00:00
< button id = "dbg_slowest" type = "submit" title = "Slowest" > < span class = "glyphicon glyphicon-fast-backward" aria-hidden = "true" > < / span > < / button >
2018-02-26 23:18:23 +00:00
< button id = "dbg_slower" type = "submit" title = "Slower" > < span class = "glyphicon glyphicon-backward" aria-hidden = "true" > < / span > < / button >
2018-03-23 21:05:08 +00:00
< span class = "label" > < span id = "fps_label" > 60.00< / span > fps< / span >
2018-02-26 23:18:23 +00:00
< button id = "dbg_faster" type = "submit" title = "Faster" > < span class = "glyphicon glyphicon-forward" aria-hidden = "true" > < / span > < / button >
2018-02-27 04:48:36 +00:00
< button id = "dbg_fastest" type = "submit" title = "Faster" > < span class = "glyphicon glyphicon-fast-forward" aria-hidden = "true" > < / span > < / button >
2018-02-26 23:18:23 +00:00
< / span >
2017-04-23 13:03:05 +00:00
< span class = "btn_group view_group" id = "extra_bar" >
2017-01-16 15:35:19 +00:00
< button id = "dbg_timing" type = "submit" title = "See Timing" style = "display:none" > < span class = "glyphicon glyphicon-time" aria-hidden = "true" > < / span > < / button >
2017-04-19 01:18:53 +00:00
< button id = "dbg_disasm" type = "submit" title = "Show Disassembly" style = "display:none" > < span class = "glyphicon glyphicon-list" aria-hidden = "true" > < / span > < / button >
< button id = "dbg_memory" type = "submit" title = "Show Memory" style = "display:none" > < span class = "glyphicon glyphicon-sunglasses" aria-hidden = "true" > < / span > < / button >
< button id = "dbg_profile" type = "submit" title = "Show Profile" style = "display:none" > < span class = "glyphicon glyphicon-stats" aria-hidden = "true" > < / span > < / button >
2017-05-04 15:54:56 +00:00
< button id = "dbg_bitmap" type = "submit" title = "Edit Bitmap" > < span class = "glyphicon glyphicon-camera" aria-hidden = "true" > < / span > < / button >
< / span >
2017-12-30 03:12:39 +00:00
< span class = "dropdown" style = "float:right" >
2018-05-25 21:14:43 +00:00
< a class = "btn btn-secondary dropdown-toggle" 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" / >
2017-12-30 17:48:30 +00:00
< b > Making Games For The Atari 2600< / b > (Print/Kindle Editions)
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" / >
2017-12-30 17:48:30 +00:00
< b > Making 8-bit Arcade Games in C< / b > (Print Edition)
< / a >
< a class = "dropdown-item dropdown-link" target = "_book_arcade_pdf" href = "https://gumroad.com/l/8bitworkshoparcadebook" >
< img src = "images/book_arcade.png" / >
< b > Making 8-bit Arcade Games in C< / b > (Downloadable PDF)
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> -->
2017-01-07 02:09:41 +00:00
< / div >
< div id = "notebook" >
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-03-24 22:13:27 +00:00
< div id = "javatari-div" style = "margin:10px; display:none" >
2017-05-13 11:57:21 +00:00
< 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 >
2017-04-19 01:18:53 +00:00
< / div >
< div id = "mem_info" class = "mem_info" style = "display:none" >
< / div >
2016-12-16 01:21:51 +00:00
< / div >
2016-12-27 02:45:04 +00:00
< div class = "twitbtn" >
2018-07-02 13:34:20 +00:00
< 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> -->
2016-12-27 02:45:04 +00:00
< / div >
2017-05-04 15:54:56 +00:00
< div id = "pixeditback" class = "pixeditback" style = "display:none" >
< iframe id = "pixeditframe" src = "pixels.html" >
< / iframe >
2017-03-12 22:47:44 +00:00
< / div >
2017-05-25 19:49:30 +00:00
< 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 >
2016-12-16 01:21:51 +00:00
< script src = "jquery/jquery-2.2.3.min.js" > < / script >
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 >
2017-01-04 21:07:59 +00:00
< 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
2018-07-20 20:55:07 +00:00
< script src = "src/codemirror/codemirror.js" > < / script >
2017-01-16 04:47:12 +00:00
< script src = "codemirror/mode/clike/clike.js" > < / script >
2018-07-20 20:55:07 +00:00
< script src = "src/codemirror/6502.js" > < / script >
2017-01-16 04:47:12 +00:00
< script src = "codemirror/mode/z80/z80.js" > < / script >
2017-11-11 19:45:32 +00:00
< script src = "codemirror/mode/verilog/verilog.js" > < / script >
2016-12-16 01:21:51 +00:00
< link rel = "stylesheet" href = "css/codemirror.css" >
2017-01-16 04:47:12 +00:00
< 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 >
2017-05-10 01:46:45 +00:00
< script src = "src/cpu/z80fast.js" > < / script >
2018-06-26 06:56:36 +00:00
<!-- <script src="src/cpu/6809.js"></script> -->
2017-05-18 02:33:56 +00:00
<!--
< script src = "jsnes/build/jsnes.min.js" > < / script >
< script src = "jsnes/lib/dynamicaudio-min.js" type = "text/javascript" charset = "utf-8" > < / script >
-->
2017-04-20 00:55:13 +00:00
<!--
2017-01-20 03:42:58 +00:00
< script src = "local/williams/defender.js" > < / script >
2017-01-20 22:54:02 +00:00
< script src = "local/williams/robotron.js" > < / script >
2017-02-05 04:19:54 +00:00
< script src = "local/atarivec/gravitar/gravitar.js" > < / script >
2017-04-20 00:55:13 +00:00
-->
2017-02-02 19:11:52 +00:00
< script src = "FileSaver.js/FileSaver.min.js" > < / script >
2017-01-25 17:30:05 +00:00
< script src = "octokat.js/dist/octokat.js" > < / script >
2017-05-20 19:13:23 +00:00
< script src = "gif.js/dist/gif.js" > < / script >
2018-06-26 06:56:36 +00:00
< script src = "localForage/dist/localforage.nopromises.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-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 >
2018-07-11 15:17:37 +00:00
< script src = "gen/baseplatform.js" > < / script >
2018-07-11 00:58:46 +00:00
< script src = "gen/audio.js" > < / script >
2018-07-06 00:13:07 +00:00
< script src = "gen/util.js" > < / script >
2018-07-11 00:58:46 +00:00
< script src = "gen/cpu/disasm6502.js" > < / script >
2018-07-08 14:07:19 +00:00
< script src = "gen/workertypes.js" > < / script >
2018-07-06 00:13:07 +00:00
< script src = "gen/project.js" > < / script >
< script src = "gen/windows.js" > < / script >
< script src = "gen/views.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> -->
2017-01-25 17:30:05 +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 >
2018-03-23 21:05:08 +00:00
/*
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(); }
2018-03-23 21:05:08 +00:00
*/
2017-04-29 18:38:50 +00:00
< / script >
2016-12-16 01:21:51 +00:00
< / body >
< / html >