1
0
mirror of https://github.com/sehugg/8bitworkshop.git synced 2024-06-30 01:29:30 +00:00
8bitworkshop/gen/c64-MYAENQCH.js

4 lines
4.8 KiB
JavaScript

import{a as u}from"./chunk-P5GSXPVE.js";import{F as x,p as h,v as p,y as d}from"./chunk-NAQO23MV.js";import"./chunk-JM5NHRL4.js";import{I as i,N as o,g as l}from"./chunk-VOKPYVET.js";import"./chunk-5XVCUSSZ.js";var m=class extends h{constructor(){super(...arguments);this.numTotalScanlines=312;this.cpuCyclesPerLine=63;this.joymask0=0;this.joymask1=0}loadBIOS(t){var s=59940-57344+12288;t[s]=96,super.loadBIOS(t)}reset(){super.reset();for(var t=0;t<128;t++)this.setKeyInput(t,0,o.KeyUp);if(this.romptr&&this.romlen)if(this.exports.machine_load_rom(this.sys,this.romptr,this.romlen),this.prgstart=this.romarr[0]+(this.romarr[1]<<8),this.prgstart==2049&&(this.prgstart=this.romarr[2]+(this.romarr[3]<<8)+2,console.log("prgstart",l(this.prgstart))),this.prgstart<32768){this.exports.machine_exec(this.sys,25e4);for(var s="SYS "+this.prgstart+"\r",e=0;e<s.length;e++){var r=s.charCodeAt(e);this.exports.machine_exec(this.sys,2e4),this.exports.machine_key_down(this.sys,r),this.exports.machine_exec(this.sys,2e4),this.exports.machine_key_up(this.sys,r)}for(var e=0;e<1e5&&this.getPC()!=this.prgstart;e++)this.exports.machine_tick(this.sys)}else{this.exports.machine_exec(this.sys,100);for(var a=this.romarr[4]+this.romarr[5]*256,e=0;e<15e4&&this.getPC()!=a;e++)this.exports.machine_tick(this.sys)}}advanceFrame(t){var s=this.exports.machine_get_raster_line(this.sys),e=Math.floor((this.numTotalScanlines-s)*(19656+295)/this.numTotalScanlines),r=this.probe!=null;return r&&this.exports.machine_reset_probe_buffer(),e=super.advanceFrameClock(t,e),r&&this.copyProbeData(),e}getCPUState(){this.exports.machine_save_cpu_state(this.sys,this.cpustateptr);var t=this.cpustatearr,s=t[2]+(t[3]<<8);return{PC:s,SP:t[9],A:t[6],X:t[7],Y:t[8],C:t[10]&1,Z:t[10]&2,I:t[10]&4,D:t[10]&8,V:t[10]&64,N:t[10]&128,o:this.readConst(s)}}saveState(){return this.exports.machine_save_state(this.sys,this.stateptr),{c:this.getCPUState(),state:this.statearr.slice(0),ram:this.statearr.slice(18640,18640+512)}}loadState(t){this.statearr.set(t.state),this.exports.machine_load_state(this.sys,this.stateptr)}getVideoParams(){return{width:392,height:272,overscan:!0,videoFrequency:50}}setKeyInput(t,s,e){if(!(t==16||t==17||t==18||t==224)){var r=0,a=0;t==37&&(t=8,r=4),t==38&&(t=11,r=1),t==39&&(t=9,r=8),t==40&&(t=10,r=2),t==32&&(r=16),t==113&&(t=241),t==115&&(t=243),t==119&&(t=245),t==121&&(t=247),e&o.KeyDown?(this.exports.machine_key_down(this.sys,t),this.joymask0|=r,this.joymask1|=a):e&o.KeyUp&&(this.exports.machine_key_up(this.sys,t),this.joymask0&=~r,this.joymask1&=~a),this.exports.c64_joystick(this.sys,this.joymask0,this.joymask1)}}};var f=[{id:"hello.dasm",name:"Hello World (ASM)"},{id:"eliza.c",name:"Eliza (C)"},{id:"tgidemo.c",name:"TGI Graphics Demo (C)"},{id:"upandaway.c",name:"Up, Up and Away (C)"},{id:"joymove.c",name:"Joystick Movement (C)"},{id:"siegegame.c",name:"Siege Game (C)"},{id:"scroll1.c",name:"Scrolling 1 (C)"},{id:"scroll2.c",name:"Scrolling 2 (C)"},{id:"scroll3.c",name:"Scrolling 3 (C)"},{id:"scroll4.c",name:"Scrolling 4 (C)"},{id:"scroll5.c",name:"Scrolling 5 (C)"},{id:"climber.c",name:"Climber Game (C)"},{id:"multilines.c",name:"Multicolor Lines+Flood Fill (C)"},{id:"sidtune.dasm",name:"SID Tune (ASM)"},{id:"musicplayer.c",name:"Music Player (C)"}],g={main:[{name:"6510 Registers",start:0,size:2,type:"io"},{name:"Cartridge ROM",start:32768,size:8192,type:"rom"},{name:"BASIC ROM",start:40960,size:8192,type:"rom"},{name:"RAM",start:49152,size:4096,type:"ram"},{name:"VIC-II I/O",start:53248,size:1024,type:"io"},{name:"SID",start:54272,size:1024,type:"io"},{name:"Color RAM",start:55296,size:1024,type:"io"},{name:"CIA 1",start:56320,size:256,type:"io"},{name:"CIA 2",start:56576,size:256,type:"io"},{name:"I/O 1",start:56832,size:256,type:"io"},{name:"I/O 2",start:57088,size:256,type:"io"},{name:"KERNAL ROM",start:57344,size:8192,type:"rom"}]},n=class extends x{newMachine(){return new m("c64")}getPresets(){return f}getDefaultExtension(){return".c"}readAddress(t){return this.machine.readConst(t)}getMemoryMap(){return g}showHelp(){window.open("https://8bitworkshop.com/docs/platforms/c64/","_help")}getROMExtension(t){return t&&t[0]==1&&t[1]==8?".prg":".bin"}},y=class extends u{constructor(){super(...arguments);this.getToolForFilename=p;this.getOpcodeMetadata=d}getPresets(){return f}getDefaultExtension(){return".c"}loadROM(t,s){if(!this.started)this.startModule(this.mainElement,{jsfile:"mame8bitpc.js",biosfile:"c64.zip",cfgfile:"c64.cfg",driver:"c64",width:418,height:235,romfn:"/emulator/image.crt",romdata:new Uint8Array(s),romsize:65536,extraargs:["-autoboot_delay","5","-autoboot_command",`load "$",8,1
`],preInit:function(r){}});else{this.loadROMFile(s),this.loadRegion(":quickload",s);var e=this.luacall('image:load("/emulator/image.prg")');console.log("load rom",e)}}start(){}getMemoryMap(){return g}};i.c64=n;i["c64.wasm"]=n;i["c64.mame"]=y;
//# sourceMappingURL=c64-MYAENQCH.js.map