mirror of
https://github.com/sehugg/8bitworkshop.git
synced 2025-04-04 20:31:39 +00:00
Deploying to gh-pages from @ sehugg/8bitworkshop@56e8fca270 🚀
This commit is contained in:
parent
01fc5ea163
commit
f28252af49
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
10
gen/atari8-XRDCAZLI.js
Normal file
10
gen/atari8-XRDCAZLI.js
Normal file
File diff suppressed because one or more lines are too long
7
gen/atari8-XRDCAZLI.js.map
Normal file
7
gen/atari8-XRDCAZLI.js.map
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
||||
{"version":3,"file":"toolbar.js","sourceRoot":"","sources":["../../src/common/toolbar.ts"],"names":[],"mappings":";;;AACA,uCAAwC;AAExC,WAAW;AAEX,MAAa,OAAO;IAMhB,YAAY,SAAqB,EAAE,QAAoB;QAFvD,cAAS,GAAG,EAAE,CAAC;QAGb,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAChE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACtE,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IACD,OAAO;QACL,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAClB;QACD,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE;gBAC9B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aAC5B;YACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;IACH,CAAC;IACD,QAAQ;QACN,OAAO,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IACvG,CAAC;IACD,GAAG,CAAC,GAAU,EAAE,OAAc,EAAE,IAAW,EAAE,EAAoB;QAC/D,IAAI,GAAG,GAAG,IAAI,CAAC;QACf,IAAI,IAAI,EAAE;YACR,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC1D,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;gBAChC,IAAI,GAAG,yBAAyB,GAAG,IAAI,GAAG,8BAA8B,CAAC;aAC1E;YACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAC,IAAI,GAAC,GAAG,GAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC1D,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACd,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;SAC7B;QACD,IAAI,GAAG,EAAE;YACP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC1B;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CAEF;AA9CH,0BA8CG"}
|
@ -1,2 +1,2 @@
|
||||
import{a as d}from"./chunk-3XE5YOCV.js";import{o as c}from"./chunk-EYNTOVQZ.js";import"./chunk-M72QJ5SI.js";import"./chunk-5SHCNQ2O.js";import"./chunk-4XVUF2S5.js";import{J as m,o as u,u as h}from"./chunk-I4VYBHZZ.js";import{$ as i,B as o,J as l,m as n}from"./chunk-LKR3N7UH.js";import"./chunk-5XVCUSSZ.js";var s=31,a=class extends u{constructor(){super();this.cpuFrequency=1e6;this.defaultROMSize=32768;this.cpu=new h;this.ram=new Uint8Array(16384);this.read=i([[0,16383,16383,e=>this.ram[e]],[16384,16384,65535,e=>this.serial.byteAvailable()?128:0],[16385,16385,65535,e=>this.serial.recvByte()],[16386,16386,65535,e=>this.serial.clearToSend()?128:0],[32768,65535,32767,e=>this.rom&&this.rom[e]]]);this.write=i([[0,16383,16383,(e,t)=>{this.ram[e]=t}],[16387,16387,65535,(e,t)=>this.serial.sendByte(t)],[16399,16399,65535,(e,t)=>{this.inputs[s]=1}]]);this.connectCPUMemoryBus(this)}connectSerialIO(e){this.serial=e}readConst(e){return this.read(e)}advanceFrame(e){for(var t=0;t<this.cpuFrequency/60&&!(e&&e());)t+=this.advanceCPU();return t}advanceCPU(){if(this.isHalted())return 1;var e=super.advanceCPU();return this.serial&&this.serial.advance(e),e}reset(){this.inputs[s]=0,super.reset(),this.serial&&this.serial.reset()}isHalted(){return this.inputs[s]!=0}};var S=[{id:"hello.dasm",name:"Hello World (ASM)"}],f=class{constructor(e){e.style.overflowY="auto";var t=$('<div id="gameport"/>').appendTo(e);$('<p class="transcript-header">Serial Output</p>').appendTo(t);var y=$('<div id="windowport" class="transcript"/>').appendTo(t);this.div=y[0]}start(){this.tty=new d(this.div,!1)}reset(){this.tty.clear()}saveState(){return this.tty.saveState()}loadState(e){this.tty.loadState(e)}};function p(r){return r==10?"":r<32?String.fromCharCode(r+9216):String.fromCharCode(r)}var v=class{constructor(){this.bufferedRead=!0;this.cyclesPerByte=1e6/(57600/8);this.maxOutputBytes=4096}clearToSend(){return this.outputBytes.length<this.maxOutputBytes}sendByte(e){this.clearToSend()&&(this.outputBytes.push(e),this.viewer.tty.addtext(p(e),2|32),e==10&&this.viewer.tty.newline(),this.clearToSend()||(this.viewer.tty.newline(),this.viewer.tty.addtext("\u26A0\uFE0F OUTPUT BUFFER FULL \u26A0\uFE0F",4)))}byteAvailable(){return this.readIndex()>this.inputIndex}recvByte(){var e=this.readIndex();this.inputIndex=e;var t=(this.inputBytes&&this.inputBytes[e])|0;return this.viewer.tty.addtext(p(t),2|16),t==10&&this.viewer.tty.newline(),t}readIndex(){return this.bufferedRead?this.inputIndex+1:Math.floor(this.clk/this.cyclesPerByte)}reset(){this.inputIndex=-1,this.clk=0,this.outputBytes=[],this.bufin=""}advance(e){this.clk+=e}saveState(){return{clk:this.clk,idx:this.inputIndex,out:this.outputBytes.slice()}}loadState(e){this.clk=e.clk,this.inputIndex=e.idx,this.outputBytes=e.out.slice()}},x=class extends m{constructor(e){super(e);this.getMemoryMap=function(){return{main:[{name:"RAM",start:0,size:16384,type:"ram"},{name:"ROM",start:32768,size:32768,type:"rom"}]}};this.serview=new f(e)}async start(){super.start(),this.serial=new v,this.serial.viewer=this.serview,this.serview.start(),this.machine.connectSerialIO(this.serial)}reset(){this.serial.inputBytes=o(this.internalFiles["serialin.dat"]),super.reset(),this.serview.reset()}isBlocked(){return this.machine.isHalted()}advance(e){return this.isBlocked()?(this.internalFiles["serialout.dat"]=n(this.serial.outputBytes),c(),0):super.advance(e)}saveState(){var e=super.saveState();return e.serial=this.serial.saveState(),e.serview=this.serview.saveState(),e}loadState(e){super.loadState(e),this.serial.loadState(e.serial),this.serview.loadState(e.serview)}newMachine(){return new a}getPresets(){return S}getDefaultExtension(){return".dasm"}readAddress(e){return this.machine.readConst(e)}};l["devel-6502"]=x;export{v as SerialTestHarness};
|
||||
//# sourceMappingURL=devel-IGUPQPPG.js.map
|
||||
import{a as d}from"./chunk-3XE5YOCV.js";import{o as c}from"./chunk-WLDWCC36.js";import"./chunk-YT7MMFDW.js";import"./chunk-5SHCNQ2O.js";import"./chunk-2GUBVKNT.js";import{J as m,o as u,u as h}from"./chunk-I4VYBHZZ.js";import{$ as i,B as o,J as l,m as n}from"./chunk-LKR3N7UH.js";import"./chunk-5XVCUSSZ.js";var s=31,a=class extends u{constructor(){super();this.cpuFrequency=1e6;this.defaultROMSize=32768;this.cpu=new h;this.ram=new Uint8Array(16384);this.read=i([[0,16383,16383,e=>this.ram[e]],[16384,16384,65535,e=>this.serial.byteAvailable()?128:0],[16385,16385,65535,e=>this.serial.recvByte()],[16386,16386,65535,e=>this.serial.clearToSend()?128:0],[32768,65535,32767,e=>this.rom&&this.rom[e]]]);this.write=i([[0,16383,16383,(e,t)=>{this.ram[e]=t}],[16387,16387,65535,(e,t)=>this.serial.sendByte(t)],[16399,16399,65535,(e,t)=>{this.inputs[s]=1}]]);this.connectCPUMemoryBus(this)}connectSerialIO(e){this.serial=e}readConst(e){return this.read(e)}advanceFrame(e){for(var t=0;t<this.cpuFrequency/60&&!(e&&e());)t+=this.advanceCPU();return t}advanceCPU(){if(this.isHalted())return 1;var e=super.advanceCPU();return this.serial&&this.serial.advance(e),e}reset(){this.inputs[s]=0,super.reset(),this.serial&&this.serial.reset()}isHalted(){return this.inputs[s]!=0}};var S=[{id:"hello.dasm",name:"Hello World (ASM)"}],f=class{constructor(e){e.style.overflowY="auto";var t=$('<div id="gameport"/>').appendTo(e);$('<p class="transcript-header">Serial Output</p>').appendTo(t);var y=$('<div id="windowport" class="transcript"/>').appendTo(t);this.div=y[0]}start(){this.tty=new d(this.div,!1)}reset(){this.tty.clear()}saveState(){return this.tty.saveState()}loadState(e){this.tty.loadState(e)}};function p(r){return r==10?"":r<32?String.fromCharCode(r+9216):String.fromCharCode(r)}var v=class{constructor(){this.bufferedRead=!0;this.cyclesPerByte=1e6/(57600/8);this.maxOutputBytes=4096}clearToSend(){return this.outputBytes.length<this.maxOutputBytes}sendByte(e){this.clearToSend()&&(this.outputBytes.push(e),this.viewer.tty.addtext(p(e),2|32),e==10&&this.viewer.tty.newline(),this.clearToSend()||(this.viewer.tty.newline(),this.viewer.tty.addtext("\u26A0\uFE0F OUTPUT BUFFER FULL \u26A0\uFE0F",4)))}byteAvailable(){return this.readIndex()>this.inputIndex}recvByte(){var e=this.readIndex();this.inputIndex=e;var t=(this.inputBytes&&this.inputBytes[e])|0;return this.viewer.tty.addtext(p(t),2|16),t==10&&this.viewer.tty.newline(),t}readIndex(){return this.bufferedRead?this.inputIndex+1:Math.floor(this.clk/this.cyclesPerByte)}reset(){this.inputIndex=-1,this.clk=0,this.outputBytes=[],this.bufin=""}advance(e){this.clk+=e}saveState(){return{clk:this.clk,idx:this.inputIndex,out:this.outputBytes.slice()}}loadState(e){this.clk=e.clk,this.inputIndex=e.idx,this.outputBytes=e.out.slice()}},x=class extends m{constructor(e){super(e);this.getMemoryMap=function(){return{main:[{name:"RAM",start:0,size:16384,type:"ram"},{name:"ROM",start:32768,size:32768,type:"rom"}]}};this.serview=new f(e)}async start(){super.start(),this.serial=new v,this.serial.viewer=this.serview,this.serview.start(),this.machine.connectSerialIO(this.serial)}reset(){this.serial.inputBytes=o(this.internalFiles["serialin.dat"]),super.reset(),this.serview.reset()}isBlocked(){return this.machine.isHalted()}advance(e){return this.isBlocked()?(this.internalFiles["serialout.dat"]=n(this.serial.outputBytes),c(),0):super.advance(e)}saveState(){var e=super.saveState();return e.serial=this.serial.saveState(),e.serview=this.serview.saveState(),e}loadState(e){super.loadState(e),this.serial.loadState(e.serial),this.serview.loadState(e.serview)}newMachine(){return new a}getPresets(){return S}getDefaultExtension(){return".dasm"}readAddress(e){return this.machine.readConst(e)}};l["devel-6502"]=x;export{v as SerialTestHarness};
|
||||
//# sourceMappingURL=devel-J3T6E3LV.js.map
|
@ -1,2 +1,2 @@
|
||||
import{b as w,c as x}from"./chunk-4XVUF2S5.js";import{D as v,J as c,k as m,l as u,x as g,z as p}from"./chunk-LKR3N7UH.js";import{e as I}from"./chunk-5XVCUSSZ.js";var h=I(x()),i,a,l,y=function(e){if(!e||e.length==0)return{};for(var r={},t=0;t<e.length;++t){var o=e[t].split("=",2);o.length==1?r[o[0]]="":r[o[0]]=decodeURIComponent(o[1].replace(/\+/g," "))}return r}(window.location.search.substr(1).split("&"));function P(){typeof window.onerror=="object"&&(window.onerror=function(e,r,t,o,n){var s=e+" "+r+" "+t+":"+o+", "+n;$.get("/error?msg="+encodeURIComponent(s),"text")})}function M(){var e=!1;document.addEventListener("visibilitychange",function(r){document.visibilityState=="hidden"&&a.isRunning()?(a.pause(),e=!0):document.visibilityState=="visible"&&e&&(a.resume(),e=!1)}),$(window).on("focus",function(){e&&(a.resume(),e=!1)}),$(window).on("blur",function(){a.isRunning()&&(a.pause(),e=!0)})}async function k(e,r){if(!r){alert("No ROM found.");return}console.log(r.length+" bytes"),await a.loadROM(e,r),a.resume()}function R(){return $("#emulator").find("canvas")}function E(e,r,t){v("gif.js/dist/gif.js").then(()=>{var o=R()[0];if(!o){alert("Could not find canvas element to record video!");return}var n=0;o.style&&o.style.transform&&(o.style.transform.indexOf("rotate(-90deg)")>=0?n=-1:o.style.transform.indexOf("rotate(90deg)")>=0&&(n=1));var s=new GIF({workerScript:"gif.js/dist/gif.worker.js",workers:4,quality:10,rotate:n});s.on("finished",function(C){console.log("finished encoding GIF"),t(C)}),e=e||100+(Math.random()*256&3),r=r||100+(Math.random()*256&15);var f=0;console.log("Recording video",o);var d=()=>{f++>r?(console.log("Rendering video"),s.render()):(s.addFrame(o,{delay:e,copy:!0}),setTimeout(d,e))};d()})}async function S(e){if(!c[i])throw Error("Invalid platform '"+i+"'.");a=new c[i]($("#emuscreen")[0]),await a.start(),e.rec&&R().on("focus",()=>{a.resume()});var r=e.n||"Game",t,o=e.url,n=e.r;if(o)return console.log(o),g(o,f=>{k(r,f)},"arraybuffer"),!0;if(n){var s=u(atob(n));t=new m().decode(s)}return M(),k(r,t),!0}async function b(e){if(e.data&&(e=e.data),i=e.p,!i)throw new Error("No platform variable!");try{var r=await w(p(i));console.log("starting platform",i),await S(e)}catch(t){console.log(t),alert('Platform "'+i+'" not supported.')}}function F(){P(),y.p&&b(y)}window.addEventListener("message",O,!1);function O(e){if(e.data){var r=e.data.cmd;if(r=="start"&&!a)b(e);else if(r=="reset")a.reset(),l.reset();else if(r=="getReplay"){var t={frameCount:l.frameCount,checkpoints:l.checkpoints,framerecs:l.framerecs,checkpointInterval:l.checkpointInterval,maxCheckpoints:l.maxCheckpoints};e.source.postMessage({ack:r,replay:t},e.origin)}else if(r=="watchState"){var o=new Function("platform","state",e.data.fn);l.callbackNewCheckpoint=n=>{e.source.postMessage({ack:r,state:o(a,n)},e.origin)}}else r=="recordVideo"?E(e.data.intervalMsec,e.data.maxFrames,function(n){e.data.filename&&(0,h.saveAs)(n,e.data.filename),e.source.postMessage({ack:r,gif:n},e.origin)}):console.log("Unknown data.cmd: "+r)}}self===top&&(document.body.style.backgroundColor="#555");F();export{a as platform,i as platform_id,F as startEmbed,l as stateRecorder};
|
||||
import{b as w,c as x}from"./chunk-2GUBVKNT.js";import{D as v,J as c,k as m,l as u,x as g,z as p}from"./chunk-LKR3N7UH.js";import{e as I}from"./chunk-5XVCUSSZ.js";var h=I(x()),i,a,l,y=function(e){if(!e||e.length==0)return{};for(var r={},t=0;t<e.length;++t){var o=e[t].split("=",2);o.length==1?r[o[0]]="":r[o[0]]=decodeURIComponent(o[1].replace(/\+/g," "))}return r}(window.location.search.substr(1).split("&"));function P(){typeof window.onerror=="object"&&(window.onerror=function(e,r,t,o,n){var s=e+" "+r+" "+t+":"+o+", "+n;$.get("/error?msg="+encodeURIComponent(s),"text")})}function M(){var e=!1;document.addEventListener("visibilitychange",function(r){document.visibilityState=="hidden"&&a.isRunning()?(a.pause(),e=!0):document.visibilityState=="visible"&&e&&(a.resume(),e=!1)}),$(window).on("focus",function(){e&&(a.resume(),e=!1)}),$(window).on("blur",function(){a.isRunning()&&(a.pause(),e=!0)})}async function k(e,r){if(!r){alert("No ROM found.");return}console.log(r.length+" bytes"),await a.loadROM(e,r),a.resume()}function R(){return $("#emulator").find("canvas")}function E(e,r,t){v("gif.js/dist/gif.js").then(()=>{var o=R()[0];if(!o){alert("Could not find canvas element to record video!");return}var n=0;o.style&&o.style.transform&&(o.style.transform.indexOf("rotate(-90deg)")>=0?n=-1:o.style.transform.indexOf("rotate(90deg)")>=0&&(n=1));var s=new GIF({workerScript:"gif.js/dist/gif.worker.js",workers:4,quality:10,rotate:n});s.on("finished",function(C){console.log("finished encoding GIF"),t(C)}),e=e||100+(Math.random()*256&3),r=r||100+(Math.random()*256&15);var f=0;console.log("Recording video",o);var d=()=>{f++>r?(console.log("Rendering video"),s.render()):(s.addFrame(o,{delay:e,copy:!0}),setTimeout(d,e))};d()})}async function S(e){if(!c[i])throw Error("Invalid platform '"+i+"'.");a=new c[i]($("#emuscreen")[0]),await a.start(),e.rec&&R().on("focus",()=>{a.resume()});var r=e.n||"Game",t,o=e.url,n=e.r;if(o)return console.log(o),g(o,f=>{k(r,f)},"arraybuffer"),!0;if(n){var s=u(atob(n));t=new m().decode(s)}return M(),k(r,t),!0}async function b(e){if(e.data&&(e=e.data),i=e.p,!i)throw new Error("No platform variable!");try{var r=await w(p(i));console.log("starting platform",i),await S(e)}catch(t){console.log(t),alert('Platform "'+i+'" not supported.')}}function F(){P(),y.p&&b(y)}window.addEventListener("message",O,!1);function O(e){if(e.data){var r=e.data.cmd;if(r=="start"&&!a)b(e);else if(r=="reset")a.reset(),l.reset();else if(r=="getReplay"){var t={frameCount:l.frameCount,checkpoints:l.checkpoints,framerecs:l.framerecs,checkpointInterval:l.checkpointInterval,maxCheckpoints:l.maxCheckpoints};e.source.postMessage({ack:r,replay:t},e.origin)}else if(r=="watchState"){var o=new Function("platform","state",e.data.fn);l.callbackNewCheckpoint=n=>{e.source.postMessage({ack:r,state:o(a,n)},e.origin)}}else r=="recordVideo"?E(e.data.intervalMsec,e.data.maxFrames,function(n){e.data.filename&&(0,h.saveAs)(n,e.data.filename),e.source.postMessage({ack:r,gif:n},e.origin)}):console.log("Unknown data.cmd: "+r)}}self===top&&(document.body.style.backgroundColor="#555");F();export{a as platform,i as platform_id,F as startEmbed,l as stateRecorder};
|
||||
//# sourceMappingURL=embedui.js.map
|
||||
|
@ -2,7 +2,7 @@
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.TwoWayMapper = exports.Viewer = exports.MapEditor = exports.CharmapEditor = exports.ImageChooser = exports.NESNametableConverter = exports.MetaspriteCompositor = exports.Compositor = exports.PaletteFormatToRGB = exports.Palettizer = exports.Mapper = exports.Compressor = exports.TextDataNode = exports.FileDataNode = exports.PixNode = exports.convertPaletteFormat = exports.getPaletteLength = exports.convertPaletteBytes = exports.convertImagesToWords = exports.convertWordsToImages = exports.replaceHexWords = exports.parseHexWords = void 0;
|
||||
const util_1 = require("../common/util");
|
||||
const toolbar_1 = require("../common/toolbar");
|
||||
const toolbar_1 = require("./toolbar");
|
||||
/////////////////
|
||||
// 0xabcd, #$abcd, 5'010101, 0b010101, etc
|
||||
var pixel_re = /([0#]?)([x$%]|\d'h)([0-9a-f]+)(?:[;].*)?|(\d'b|0b)([01]+)/gim;
|
||||
|
File diff suppressed because one or more lines are too long
1
gen/ide/toolbar.js.map
Normal file
1
gen/ide/toolbar.js.map
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"toolbar.js","sourceRoot":"","sources":["../../src/ide/toolbar.ts"],"names":[],"mappings":";;;AACA,uCAAwC;AAExC,WAAW;AAEX,MAAa,OAAO;IAMhB,YAAY,SAAqB,EAAE,QAAoB;QAFvD,cAAS,GAAG,EAAE,CAAC;QAGb,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAChE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACtE,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IACD,OAAO;QACL,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAClB;QACD,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE;gBAC9B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aAC5B;YACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;IACH,CAAC;IACD,QAAQ;QACN,OAAO,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IACvG,CAAC;IACD,GAAG,CAAC,GAAU,EAAE,OAAc,EAAE,IAAW,EAAE,EAAoB;QAC/D,IAAI,GAAG,GAAG,IAAI,CAAC;QACf,IAAI,IAAI,EAAE;YACR,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC1D,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;gBAChC,IAAI,GAAG,yBAAyB,GAAG,IAAI,GAAG,8BAA8B,CAAC;aAC1E;YACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAC,IAAI,GAAC,GAAG,GAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC1D,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACd,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;SAC7B;QACD,IAAI,GAAG,EAAE;YACP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC1B;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CAEF;AA9CH,0BA8CG"}
|
@ -26,7 +26,7 @@ const project_1 = require("./project");
|
||||
const windows_1 = require("./windows");
|
||||
const baseplatform_1 = require("../common/baseplatform");
|
||||
const emu_1 = require("../common/emu");
|
||||
const toolbar_1 = require("../common/toolbar");
|
||||
const toolbar_1 = require("./toolbar");
|
||||
const util_1 = require("../common/util");
|
||||
const recorder_1 = require("../common/recorder");
|
||||
const services_1 = require("./services");
|
||||
|
File diff suppressed because one or more lines are too long
21
gen/ide/views/traceviews.js
Normal file
21
gen/ide/views/traceviews.js
Normal file
@ -0,0 +1,21 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.TracePlaybackView = void 0;
|
||||
class TracePlaybackView {
|
||||
constructor() {
|
||||
this.recreateOnResize = true;
|
||||
this.totalRows = 0x1400;
|
||||
}
|
||||
createDiv(parent) {
|
||||
var div = document.createElement('div');
|
||||
div.setAttribute("class", "memdump");
|
||||
parent.appendChild(div);
|
||||
return this.maindiv = div;
|
||||
}
|
||||
tick() {
|
||||
}
|
||||
refresh() {
|
||||
}
|
||||
}
|
||||
exports.TracePlaybackView = TracePlaybackView;
|
||||
//# sourceMappingURL=traceviews.js.map
|
1
gen/ide/views/traceviews.js.map
Normal file
1
gen/ide/views/traceviews.js.map
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"traceviews.js","sourceRoot":"","sources":["../../../src/ide/views/traceviews.ts"],"names":[],"mappings":";;;AAGA,MAAa,iBAAiB;IAA9B;QAEI,qBAAgB,GAAG,IAAI,CAAC;QACxB,cAAS,GAAG,MAAM,CAAC;IAavB,CAAC;IAVG,SAAS,CAAC,MAAoB;QAC5B,IAAI,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACxC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACrC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;IAC5B,CAAC;IACD,IAAI;IACJ,CAAC;IACD,OAAO;IACP,CAAC;CACJ;AAhBD,8CAgBC"}
|
@ -1,7 +1,7 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.WaveformView = void 0;
|
||||
const toolbar_1 = require("../common/toolbar");
|
||||
const toolbar_1 = require("./toolbar");
|
||||
const vlist_1 = require("../common/vlist");
|
||||
const BUILTIN_INPUT_PORTS = [
|
||||
'clk', 'reset',
|
||||
|
File diff suppressed because one or more lines are too long
@ -171,7 +171,8 @@ class Atari800 extends devices_1.BasicScanlineMachine {
|
||||
// update ANTIC
|
||||
if (this.antic.clockPulse()) {
|
||||
// ANTIC DMA cycle, update GTIA
|
||||
this.gtia.updateGfx(this.antic.h - 1, this.lastdmabyte); // HALT pin
|
||||
if (this.antic.h < 8)
|
||||
this.gtia.updateGfx(this.antic.h - 1, this.antic.v, this.lastdmabyte); // HALT pin
|
||||
this.probe.logClocks(1);
|
||||
}
|
||||
else {
|
||||
|
File diff suppressed because one or more lines are too long
@ -69,6 +69,7 @@ class GTIA {
|
||||
this.gtiacol = 0;
|
||||
this.gtiacol2 = 0;
|
||||
this.hbias = HOFFSET;
|
||||
this.pmDebugMask = -1;
|
||||
}
|
||||
reset() {
|
||||
this.regs.fill(0);
|
||||
@ -114,10 +115,11 @@ class GTIA {
|
||||
setBias(b) {
|
||||
this.hbias = HOFFSET + b;
|
||||
}
|
||||
updateGfx(h, data) {
|
||||
updateGfx(h, v, data) {
|
||||
switch (h) {
|
||||
case 0:
|
||||
if (this.regs[GRACTL] & 1) {
|
||||
// TODO: VDELAY
|
||||
this.regs[GRAFM] = data;
|
||||
}
|
||||
break;
|
||||
@ -126,7 +128,8 @@ class GTIA {
|
||||
case 4:
|
||||
case 5:
|
||||
if (this.regs[GRACTL] & 2) {
|
||||
this.regs[GRAFP0 - 2 + h] = data;
|
||||
if (!(v & 1) || !(this.regs[VDELAY] & (1 << (h + 2))))
|
||||
this.regs[GRAFP0 - 2 + h] = data;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -183,7 +186,6 @@ class GTIA {
|
||||
let pfset = this.an - 4; // TODO?
|
||||
let topobj = -1;
|
||||
let ppmask = 0;
|
||||
let ppcount = 0;
|
||||
// players
|
||||
for (let i = 0; i < 4; i++) {
|
||||
let bit = this.shiftObject(i);
|
||||
@ -192,7 +194,6 @@ class GTIA {
|
||||
this.readregs[P0PF + i] |= 1 << pfset;
|
||||
}
|
||||
ppmask |= 1 << i;
|
||||
ppcount++;
|
||||
let prio = PRIOR_TABLE[i + priobias];
|
||||
if (prio < topprio) {
|
||||
topobj = i;
|
||||
@ -216,12 +217,15 @@ class GTIA {
|
||||
}
|
||||
}
|
||||
// set player-player collision flags
|
||||
if (ppcount > 1) {
|
||||
// TODO: either as a player or a GTIA mode 2 color
|
||||
if (ppmask & 1)
|
||||
this.readregs[P0PL + 0] |= ppmask & ~1;
|
||||
if (ppmask & 2)
|
||||
this.readregs[P0PL + 1] |= ppmask & ~2;
|
||||
if (ppmask & 4)
|
||||
this.readregs[P0PL + 2] |= ppmask & ~4;
|
||||
if (ppmask & 8)
|
||||
this.readregs[P0PL + 3] |= ppmask & ~8;
|
||||
}
|
||||
this.pmcol = topobj >= 0 ? this.getObjectColor(topobj) : -1;
|
||||
}
|
||||
shiftObject(i) {
|
||||
@ -242,6 +246,8 @@ class GTIA {
|
||||
}
|
||||
triggerObject(i) {
|
||||
let size, data;
|
||||
if (!(this.pmDebugMask & (1 << i)))
|
||||
return;
|
||||
if (i < 4) {
|
||||
size = this.regs[SIZEP0 + i] & 3;
|
||||
data = this.regs[GRAFP0 + i];
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,2 +1,2 @@
|
||||
import{b as a,c as b,d as c,e as d,f as e,g as f,h as g,i as h,j as i,k as j,l as k,m as l,n as m,o as n,p as o,q as p,r as q,s as r,t as s,u as t,v as u,w as v,x as w}from"./chunk-EYNTOVQZ.js";import"./chunk-M72QJ5SI.js";import"./chunk-5SHCNQ2O.js";import"./chunk-4XVUF2S5.js";import"./chunk-I4VYBHZZ.js";import"./chunk-LKR3N7UH.js";import"./chunk-5XVCUSSZ.js";export{l as clearBreakpoint,h as compparams,f as current_project,u as emulationHalted,p as getPlatformAndRepo,t as getSaveState,s as getTestOutput,n as haltEmulation,w as highlightSearch,i as lastDebugState,e as platform,b as platform_id,g as projectWindows,a as qs,v as reloadWorkspaceFile,d as repo_id,k as runToPC,m as setFrameRateUI,r as setTestInput,j as setupBreakpoint,o as setupSplits,q as startUI,c as store_id};
|
||||
import{b as a,c as b,d as c,e as d,f as e,g as f,h as g,i as h,j as i,k as j,l as k,m as l,n as m,o as n,p as o,q as p,r as q,s as r,t as s,u as t,v as u,w as v,x as w}from"./chunk-WLDWCC36.js";import"./chunk-YT7MMFDW.js";import"./chunk-5SHCNQ2O.js";import"./chunk-2GUBVKNT.js";import"./chunk-I4VYBHZZ.js";import"./chunk-LKR3N7UH.js";import"./chunk-5XVCUSSZ.js";export{l as clearBreakpoint,h as compparams,f as current_project,u as emulationHalted,p as getPlatformAndRepo,t as getSaveState,s as getTestOutput,n as haltEmulation,w as highlightSearch,i as lastDebugState,e as platform,b as platform_id,g as projectWindows,a as qs,v as reloadWorkspaceFile,d as repo_id,k as runToPC,m as setFrameRateUI,r as setTestInput,j as setupBreakpoint,o as setupSplits,q as startUI,c as store_id};
|
||||
//# sourceMappingURL=ui.js.map
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,7 +1,7 @@
|
||||
|
||||
import { hex, rgb2bgr, rle_unpack } from "../common/util";
|
||||
import { ProjectWindows } from "./windows";
|
||||
import { Toolbar } from "../common/toolbar";
|
||||
import { Toolbar } from "./toolbar";
|
||||
import Mousetrap = require('mousetrap');
|
||||
|
||||
export type UintArray = number[] | Uint8Array | Uint16Array | Uint32Array; //{[i:number]:number};
|
||||
|
@ -7,7 +7,7 @@ import { WorkerResult, WorkerOutputResult, WorkerError, FileData, WorkerErrorRes
|
||||
import { ProjectWindows } from "./windows";
|
||||
import { Platform, Preset, DebugSymbols, DebugEvalCondition, isDebuggable, EmuState } from "../common/baseplatform";
|
||||
import { PLATFORMS, EmuHalt } from "../common/emu";
|
||||
import { Toolbar } from "../common/toolbar";
|
||||
import { Toolbar } from "./toolbar";
|
||||
import { getFilenameForPath, getFilenamePrefix, highlightDifferences, byteArrayToString, compressLZG, stringToByteArray,
|
||||
byteArrayToUTF8, isProbablyBinary, getWithBinary, getBasePlatform, getRootBasePlatform, hex, loadScript, decodeQueryString, parseBool } from "../common/util";
|
||||
import { StateRecorderImpl } from "../common/recorder";
|
||||
|
20
src/ide/views/traceviews.ts
Normal file
20
src/ide/views/traceviews.ts
Normal file
@ -0,0 +1,20 @@
|
||||
import { StateRecorderImpl } from "../../common/recorder";
|
||||
import { ProjectView } from "./baseviews";
|
||||
|
||||
export class TracePlaybackView implements ProjectView {
|
||||
maindiv : HTMLElement;
|
||||
recreateOnResize = true;
|
||||
totalRows = 0x1400;
|
||||
stateRecorder : StateRecorderImpl;
|
||||
|
||||
createDiv(parent : HTMLElement) {
|
||||
var div = document.createElement('div');
|
||||
div.setAttribute("class", "memdump");
|
||||
parent.appendChild(div);
|
||||
return this.maindiv = div;
|
||||
}
|
||||
tick() {
|
||||
}
|
||||
refresh() {
|
||||
}
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
|
||||
import { Toolbar } from "../common/toolbar";
|
||||
import { Toolbar } from "./toolbar";
|
||||
import { VirtualList } from "../common/vlist";
|
||||
|
||||
const BUILTIN_INPUT_PORTS = [
|
||||
|
@ -190,7 +190,8 @@ export class Atari800 extends BasicScanlineMachine {
|
||||
// update ANTIC
|
||||
if (this.antic.clockPulse()) {
|
||||
// ANTIC DMA cycle, update GTIA
|
||||
this.gtia.updateGfx(this.antic.h - 1, this.lastdmabyte); // HALT pin
|
||||
if (this.antic.h < 8)
|
||||
this.gtia.updateGfx(this.antic.h - 1, this.antic.v, this.lastdmabyte); // HALT pin
|
||||
this.probe.logClocks(1);
|
||||
} else {
|
||||
super.advanceCPU();
|
||||
|
@ -74,6 +74,7 @@ export class GTIA {
|
||||
gtiacol = 0;
|
||||
gtiacol2 = 0;
|
||||
hbias = HOFFSET;
|
||||
pmDebugMask = -1;
|
||||
|
||||
reset() {
|
||||
this.regs.fill(0);
|
||||
@ -113,13 +114,19 @@ export class GTIA {
|
||||
setBias(b: number) {
|
||||
this.hbias = HOFFSET + b;
|
||||
}
|
||||
updateGfx(h: number, data: number) {
|
||||
updateGfx(h: number, v: number, data: number) {
|
||||
switch (h) {
|
||||
case 0:
|
||||
if (this.regs[GRACTL] & 1) { this.regs[GRAFM] = data; }
|
||||
if (this.regs[GRACTL] & 1) {
|
||||
// TODO: VDELAY
|
||||
this.regs[GRAFM] = data;
|
||||
}
|
||||
break;
|
||||
case 2: case 3: case 4: case 5:
|
||||
if (this.regs[GRACTL] & 2) { this.regs[GRAFP0 - 2 + h] = data; }
|
||||
if (this.regs[GRACTL] & 2) {
|
||||
if (!(v&1) || !(this.regs[VDELAY] & (1<<(h+2))))
|
||||
this.regs[GRAFP0 - 2 + h] = data;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -172,7 +179,6 @@ export class GTIA {
|
||||
let pfset = this.an - 4; // TODO?
|
||||
let topobj = -1;
|
||||
let ppmask = 0;
|
||||
let ppcount = 0;
|
||||
// players
|
||||
for (let i = 0; i < 4; i++) {
|
||||
let bit = this.shiftObject(i);
|
||||
@ -181,7 +187,6 @@ export class GTIA {
|
||||
this.readregs[P0PF + i] |= 1 << pfset;
|
||||
}
|
||||
ppmask |= 1 << i;
|
||||
ppcount++;
|
||||
let prio = PRIOR_TABLE[i + priobias];
|
||||
if (prio < topprio) {
|
||||
topobj = i;
|
||||
@ -205,12 +210,11 @@ export class GTIA {
|
||||
}
|
||||
}
|
||||
// set player-player collision flags
|
||||
if (ppcount > 1) {
|
||||
this.readregs[P0PL + 0] |= ppmask & ~1;
|
||||
this.readregs[P0PL + 1] |= ppmask & ~2;
|
||||
this.readregs[P0PL + 2] |= ppmask & ~4;
|
||||
this.readregs[P0PL + 3] |= ppmask & ~8;
|
||||
}
|
||||
// TODO: either as a player or a GTIA mode 2 color
|
||||
if (ppmask & 1) this.readregs[P0PL + 0] |= ppmask & ~1;
|
||||
if (ppmask & 2) this.readregs[P0PL + 1] |= ppmask & ~2;
|
||||
if (ppmask & 4) this.readregs[P0PL + 2] |= ppmask & ~4;
|
||||
if (ppmask & 8) this.readregs[P0PL + 3] |= ppmask & ~8;
|
||||
this.pmcol = topobj >= 0 ? this.getObjectColor(topobj) : -1;
|
||||
}
|
||||
shiftObject(i: number) {
|
||||
@ -230,6 +234,7 @@ export class GTIA {
|
||||
}
|
||||
triggerObject(i: number) {
|
||||
let size, data;
|
||||
if (!(this.pmDebugMask & (1<<i))) return;
|
||||
if (i < 4) {
|
||||
size = this.regs[SIZEP0 + i] & 3;
|
||||
data = this.regs[GRAFP0 + i];
|
||||
|
Loading…
x
Reference in New Issue
Block a user