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
}
.dbg_info {
font-size: 0.8em;
}
.gutter-offset {
width: 3em;
}
.gutter-bytes {
width: 6em;
}
.gutter-clock {
width: 0.5em;
}
.gutter-info {
width: 1em;
}
2017-01-03 01:42:15 +00:00
.tooltipbox {
2016-12-16 01:21:51 +00:00
position: relative;
display: inline-block;
border-bottom: 1px dotted black;
}
2017-01-03 01:42:15 +00:00
.tooltipbox .tooltiptext {
2016-12-16 01:21:51 +00:00
visibility: hidden;
width: 120px;
background-color: black;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px 0;
/* Position the tooltip */
position: absolute;
z-index: 10;
}
2017-01-03 01:42:15 +00:00
.tooltipbox:hover .tooltiptext {
2016-12-16 01:21:51 +00:00
visibility: visible;
}
2017-01-06 14:49:07 +00:00
#controls_top {
2017-01-07 02:09:41 +00:00
position: absolute;
2017-01-06 14:49:07 +00:00
padding: 0.5em;
height:3em;
2017-01-07 02:09:41 +00:00
width:100%;
background-color:#999;
}
#notebook {
position:absolute;
top:3em;
bottom:0;
left:0;
right:0;
2017-01-09 21:28:20 +00:00
background-color: #666;
2017-04-06 19:09:30 +00:00
overflow: hidden;;
2016-12-16 01:21:51 +00:00
}
2017-04-06 14:28:51 +00:00
div.workspace {
background-color:#999;
}
2016-12-16 01:21:51 +00:00
div.editor {
width:50%;
2016-12-30 23:51:15 +00:00
line-height:1.25;
font-size:12pt;
2016-12-16 01:21:51 +00:00
}
div.emulator {
position:absolute;
left:50%;
top:0;
width:50%;
background-color: #666;
2017-01-03 01:42:15 +00:00
margin-top: 20px auto 0;
2016-12-16 01:21:51 +00:00
}
2017-04-19 01:18:53 +00:00
div.debugwindow {
position:absolute;
left:50%;
top:0;
width:50%;
background-color: #666;
color: #66ff66;
white-space: pre;
margin-top: 20px auto 0;
font-family: "Andale Mono", "Menlo", "Lucida Console", monospace;
font-size: 10pt;
}
2016-12-16 01:21:51 +00:00
div.mem_info {
2017-01-03 01:42:15 +00:00
position: fixed;
left: 51%;
2016-12-16 01:21:51 +00:00
bottom: 10px;
background-color: #333;
color: #66ff66;
white-space: pre;
padding: 20px;
2017-04-19 01:18:53 +00:00
z-index: 12;
2016-12-31 16:05:22 +00:00
font-family: "Andale Mono", "Menlo", "Lucida Console", monospace;
font-size: 12pt;
2016-12-16 01:21:51 +00:00
}
2017-04-23 13:03:05 +00:00
.btn_group {
border-radius:6px;
padding:6px;
margin-left:8px;
background-color: #666;
}
.btn_group.debug_group {
}
.btn_group.view_group {
}
2017-04-22 01:56:49 +00:00
.seg_code { color: #ff9966; }
.seg_data { color: #66ff66; }
.seg_stack { color: #ffff66; }
.seg_unknown { color: #cccccc; }
2016-12-16 01:21:51 +00:00
span.hilite {
color: #ff66ff;
}
div.has-errors {
background-color: #ff6666 !important;
}
2017-04-12 16:23:24 +00:00
div.is-busy-unused {
background-color: #8888bb !important;
}
2016-12-16 01:21:51 +00:00
div.menu_div {
position: absolute;
width: 200px;
}
div.booklink {
position: fixed;
bottom: 0;
right: 0;
padding: 6px;
background-color: #ffffff;
2017-01-04 21:07:59 +00:00
display:none;
2016-12-16 01:21:51 +00:00
}
2016-12-27 02:45:04 +00:00
div.twitbtn {
position: fixed;
bottom: 0;
left: 50%;
padding: 6px;
}
2016-12-16 01:21:51 +00:00
a {
color:#333399;
font-weight: bold;
}
2016-12-30 23:51:15 +00:00
a.dropdown-toggle {
color:#66ee66;
padding:3px;
}
2017-01-04 21:07:59 +00:00
// http://stackoverflow.com/questions/18023493/bootstrap-3-dropdown-sub-menu-missing
.dropdown-submenu {
position:relative;
}
.dropdown-submenu>.dropdown-menu {
top:0;
left:100%;
margin-top:-6px;
margin-left:-1px;
-webkit-border-radius:0 6px 6px 6px;
-moz-border-radius:0 6px 6px 6px;
border-radius:0 6px 6px 6px;
}
.dropdown-submenu:hover>.dropdown-menu {
display:block;
}
.dropdown-submenu>a:after {
display:block;
content:" ";
float:right;
width:0;
height:0;
border-color:transparent;
border-style:solid;
border-width:5px 0 5px 5px;
border-left-color:#cccccc;
margin-top:5px;
margin-right:-10px;
}
.dropdown-submenu:hover>a:after {
border-left-color:#ffffff;
}
.dropdown-submenu.pull-left {
float:none;
}
.dropdown-submenu.pull-left>.dropdown-menu {
left:-100%;
margin-left:10px;
-webkit-border-radius:6px 0 6px 6px;
-moz-border-radius:6px 0 6px 6px;
border-radius:6px 0 6px 6px;
}
2017-04-22 19:02:34 +00:00
.emubevel {
padding:4%;
background:#333;
}
.emuvideo {
border-radius:20px;
border: 4px solid #222;
padding: 30px;
margin-top: 20px;
margin-bottom: 20px;
background: #000;
outline-color: #666;
}
2017-01-14 19:16:04 +00:00
canvas.pixelated {
2017-01-14 02:31:04 +00:00
image-rendering: optimizeSpeed; /* Older versions of FF */
image-rendering: -moz-crisp-edges; /* FF 6.0+ */
image-rendering: -webkit-optimize-contrast; /* Safari */
image-rendering: -o-crisp-edges; /* OS X & Windows Opera (12.02+) */
image-rendering: pixelated; /* Awesome future-browsers */
-ms-interpolation-mode: nearest-neighbor; /* IE */
}
2016-12-16 01:21:51 +00:00
< / style >
< / head >
< body >
2017-01-07 02:09:41 +00:00
< div id = "controls_top" >
< span class = "dropdown" >
< a class = "btn btn-secondary dropdown-toggle" id = "dropdownMenuButton" data-toggle = "dropdown" aria-haspopup = "true" aria-expanded = "false" >
☰ < span class = "caret" > < / span >
< / a >
< ul class = "dropdown-menu" aria-labelledby = "dropdownMenuButton" >
< li > < a class = "dropdown-item" href = "#" id = "item_new_file" > New 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 >
2017-02-02 19:11:52 +00:00
< li > < a class = "dropdown-item" href = "#" id = "item_download_rom" > Download ROM Image...< / a > < / li >
2017-01-07 02:09:41 +00:00
< 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 >
2017-02-14 23:15:06 +00:00
<!-- <li><a class="dropdown - item" href="?platform=apple2" id="item_platform_apple2">Apple ][</a></li> -->
< li > < a class = "dropdown-item" href = "?platform=vicdual" id = "item_platform_vicdual" > VIC Dual< / a > < / li >
2017-04-12 02:46:06 +00:00
< li > < a class = "dropdown-item" href = "?platform=mw8080bw" id = "item_platform_mw8080bw" > Midway 8080< / a > < / li >
2017-04-22 19:02:34 +00:00
< li > < a class = "dropdown-item" href = "?platform=galaxian-scramble" id = "item_platform_galaxian_scramble" > Galaxian/Scramble Hardware< / a > < / li >
2017-02-14 23:15:06 +00:00
< li > < a class = "dropdown-item" href = "?platform=vector-z80color" id = "item_platform_vector_z80color" > Atari Color Vector (Z80)< / a > < / li >
2017-03-26 23:14:55 +00:00
< li > < a class = "dropdown-item" href = "?platform=williams-z80" id = "item_platform_williams_z80" > Williams (Z80)< / a > < / li >
2017-04-02 18:54:51 +00:00
< li > < a class = "dropdown-item" href = "?platform=sound_williams-z80" id = "item_platform_sound_williams_z80" > Williams Sound (Z80)< / a > < / li >
2017-01-07 02:09:41 +00:00
< / ul >
< / 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 >
< / li >
2017-01-07 02:09:41 +00:00
< / ul >
< / span >
< select id = "preset_select" name = "" >
< / 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" >
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 >
< 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 >
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-01-07 02:09:41 +00:00
< / span >
< / div >
< div id = "notebook" >
2017-04-06 14:28:51 +00:00
< div id = "workspace" >
2017-01-06 14:49:07 +00:00
< div id = "disassembly" class = "editor" >
< / div >
< div id = "editor" class = "editor" >
2016-12-16 01:21:51 +00:00
< / div >
< / div >
2017-01-03 01:42:15 +00:00
< div class = "emulator" id = "emulator" >
2016-12-16 01:21:51 +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 >
2017-04-19 01:18:53 +00:00
< / div >
< div id = "mem_info" class = "mem_info" style = "display:none" >
< / div >
< div id = "profileview" class = "debugwindow" style = "display:none;z-index:10" >
< / div >
< div id = "memoryview" class = "debugwindow" style = "display:none;z-index:10" >
2016-12-16 01:21:51 +00:00
< / div >
< / div >
2016-12-27 02:45:04 +00:00
< div class = "twitbtn" >
< a href = "https://twitter.com/8bitworkshop" class = "twitter-follow-button" data-show-count = "false" > Follow @8bitworkshop< / a > < script async src = "//platform.twitter.com/widgets.js" charset = "utf-8" > < / script >
< / div >
2017-01-04 21:07:59 +00:00
< div class = "booklink" id = "booklink_vcs" >
2016-12-26 17:36:37 +00:00
< a target = "_new" 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" >
2016-12-17 15:13:53 +00:00
< img src = "https://images-na.ssl-images-amazon.com/images/I/5153Bd8oWeL._AC_AC_SR98,95_.jpg" style = "float:right" / > < / a >
2016-12-16 01:21:51 +00:00
Want to learn more?< br >
2017-04-26 19:44:55 +00:00
Get the book< br >
2016-12-26 17:36:37 +00:00
< a target = "_new" 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" >
2016-12-16 01:21:51 +00:00
Making Games For The Atari 2600< / a >
< / div >
2017-04-26 19:44:55 +00:00
< div class = "booklink" id = "booklink_arcade" >
< a target = "_new" href = "https://www.amazon.com/gp/product/B0713RQL8X/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=B0713RQL8X&linkCode=as2&tag=pzp-20&linkId=e8e05e34acf1b54d81aced148a67790c" >
< img height = "72em" src = "https://images-na.ssl-images-amazon.com/images/I/51RaEXf%2B%2BNL._SL500_AA130_.jpg" style = "float:right" / > < / a >
New book!< br >
< a target = "_new" href = "https://www.amazon.com/gp/product/B0713RQL8X/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=B0713RQL8X&linkCode=as2&tag=pzp-20&linkId=e8e05e34acf1b54d81aced148a67790c" >
Making 8-bit Arcade Games in C< / a >
< / div >
2016-12-16 01:21:51 +00:00
2017-04-20 00:55:13 +00:00
< div id = "welcomeModal" class = "modal fade" >
< div class = "modal-dialog modal-lg" role = "document" >
< div class = "modal-content" >
< div class = "modal-header" >
< h3 class = "modal-title" > Welcome to 8bitworkshop!< / h3 >
< button type = "button" class = "close" data-dismiss = "modal" aria-label = "Close" >
< span aria-hidden = "true" > × < / span >
< / button >
< / div >
< div class = "modal-body" >
< p > What would you like to start programming?< / p >
< div class = "container-fluid" >
< div class = "row" >
< div class = "col-md-6" >
< img data-dismiss = "modal" class = "img-responsive" data-platform = "vcs" src = "images/atarivcs.jpg" alt = "Atari 2600 four-switch wood veneer version, dating from 1980-1982 (photo by Evan Amos)" / >
< / div >
< div class = "col-md-6" >
< img data-dismiss = "modal" class = "img-responsive" data-platform = "vicdual" src = "images/arcadegames.jpg" alt = "Galaxian arcade system board (photo by Dennis van Zuijlekom, CC BY-SA 2.0)" / >
< / div >
< / div >
< div class = "row" >
< div class = "col-md-3 col-md-offset-2" >
< button type = "button" class = "btn btn-secondary" data-platform = "vcs" data-dismiss = "modal" > Atari VCS< / button >
< / div >
< div class = "col-md-3 col-md-offset-2" >
< button type = "button" class = "btn btn-secondary" data-platform = "vicdual" data-dismiss = "modal" > Arcade Games< / button >
< / div >
< / div >
< / div >
< / div >
< / div >
< / div >
2017-03-12 22:47:44 +00:00
< / 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
2016-12-16 01:21:51 +00:00
< script src = "codemirror/lib/codemirror.js" > < / script >
2017-01-16 04:47:12 +00:00
< script src = "codemirror/mode/clike/clike.js" > < / script >
2016-12-16 01:21:51 +00:00
< script src = "codemirror/mode/6502/6502.js" > < / script >
2017-01-16 04:47:12 +00:00
< script src = "codemirror/mode/z80/z80.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 >
< script src = "codemirror/addon/search/jumpToLine.js" > < / script >
< 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-01-14 02:31:04 +00:00
< script src = "src/cpu/z80.js" > < / script >
2017-01-20 03:42:58 +00:00
< script src = "src/cpu/6809.js" > < / script >
2017-01-18 17:08:15 +00:00
< 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 >
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-02-02 19:11:52 +00:00
2017-04-19 01:18:53 +00:00
< script src = "src/vlist.js" > < / script >
2017-01-03 01:42:15 +00:00
< script src = "src/emu.js" > < / script >
2017-04-02 18:54:51 +00:00
< script src = "src/audio.js" > < / script >
2017-01-04 21:07:59 +00:00
< script src = "src/util.js" > < / script >
2017-01-06 14:49:07 +00:00
< script src = "src/disasm.js" > < / script >
2016-12-16 01:21:51 +00:00
< script src = "src/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
< / body >
< script >
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-54497476-9', 'auto');
ga('send', 'pageview');
< / script >
< / html >