1
0
mirror of https://github.com/sehugg/8bitworkshop.git synced 2024-10-19 21:23:55 +00:00
8bitworkshop/gen/vic20-4I7VOXDQ.js.map

8 lines
13 KiB
Plaintext
Raw Normal View History

{
"version": 3,
"sources": ["../src/machine/vic20.ts", "../src/platform/vic20.ts"],
"sourcesContent": ["\n//// WASM Machine\n\n// http://www.zimmers.net/anonftp/pub/cbm/documents/chipdata/VIC-I.txt\n// http://www.zimmers.net/anonftp/pub/cbm/maps/Vic20.MemoryMap.txt\n// http://sleepingelephant.com/denial/wiki/index.php/Autostart\n\nimport { Machine } from \"../common/baseplatform\";\nimport { Probeable, TrapCondition } from \"../common/devices\";\nimport { KeyFlags } from \"../common/emu\";\nimport { hex } from \"../common/util\";\nimport { BaseWASMMachine } from \"../common/wasmplatform\";\n\nexport class VIC20_WASMMachine extends BaseWASMMachine implements Machine, Probeable {\n\n numTotalScanlines = 312;\n cpuCyclesPerLine = 71;\n videoOffsetBytes = -24 * 4;\n\n prgstart : number;\n joymask0 = 0;\n joymask1 = 0;\n\n getBIOSLength() { return 0x5000 };\n\n loadBIOS(srcArray: Uint8Array) {\n super.loadBIOS(srcArray);\n }\n reset() {\n super.reset();\n // clear keyboard\n for (var ch=0; ch<128; ch++) {\n this.setKeyInput(ch, 0, KeyFlags.KeyUp);\n }\n // load rom\n if (this.romptr && this.romlen) {\n let rom = this.romarr;\n this.exports.machine_load_rom(this.sys, this.romptr, this.romlen);\n let iscart = rom[4+2]==0x41 && rom[5+2]==0x30 && rom[6+2]==0xC3 && rom[7+2]==0xC2 && rom[8+2]==0xCD;\n if (!iscart) {\n this.prgstart = rom[0] + (rom[1]<<8); // get load address\n // look for BASIC program start\n if (this.prgstart == 0x1001) {\n this.prgstart = rom[2] + (rom[3]<<8) + 2; // point to after BASIC program\n console.log(\"prgstart\", hex(this.prgstart));\n }\n // is program loaded into RAM?\n if (this.prgstart < 0x8000) {\n // advance BIOS a few frames\n this.exports.machine_exec(this.sys, 500000);\n // type in command (SYS 2061)\n var cmd = \"SYS \"+this.prgstart+\"\\r\";\n console.log(cmd);\n for (var i=0; i<cmd.length; i++) {\n var key = cmd.charCodeAt(i);\n this.exports.machine_exec(this.sys, 10000);\n this.exports.machine_exec(this.sys, 10000);\n this.exports.machine_key_down(this.sys, key);\n this.exports.machine_exec(this.sys, 10000);\n this.exports.machine_exec(this.sys, 10000);\n this.exports.machine_key_up(this.sys, key);\n }\n // advance clock until program starts\n for (var i=0; i<10000 && this.getPC() != this.prgstart; i++) {\n this.exports.machine_tick(this.sys);\n }\n }\n } else {\n // get out of reset\n //this.exports.machine_exec(this.sys, 100);\n // wait until cartridge start\n // TODO: detect ROM cartridge\n var warmstart = this.romarr[0x2+2] + this.romarr[0x3+2]*256;\n for (var i=0; i<10000 && this.getPC() != warmstart; i++) {\n this.exports.machine_tick(this.sys);\n }\n console.log('cart', i, hex(warmstart));\n }\n // TODO: shouldn't we return here @ start of frame?\n // and stop probing\n }\n }\n advanceFrame(trap: TrapCondition) : number {\n // TODO: does this sync with VSYNC?\n var scanline = this.getRasterY();\n var clocks = Math.floor((this.numTotalScanlines - scanline) * 22152 / this.numTotalScanlines);\n var probing = this.probe != null;\n if (probing) this.exports.machine_reset_probe_buffer();\n clocks = super.advanceFrameClock(trap, clocks);\n if (probing) this.copyProbeData();\n return clocks;\n }\n getRasterY() {\n return this.exports.machine_get_raster_line(this.sys);\n }\n getCPUState() {\n this.exports.machine_save_cpu_state(this.sys, this.cpustateptr);\n var s = this.cpustatearr;\n var pc = s[2] + (s[3]<<8);\n return {\n PC:pc,\n SP:s[9],\n A:s[6],\n X:s[7],\n Y:s[8],\n C:s[10] & 1,\n Z:s[10] & 2,\n I:s[10] & 4,\n D:s[10] & 8,\n V:s[10] & 64,\n N:s[10] & 128,\n o:this.readConst(pc),\n }\n }\n saveState() {\n this.exports.machine_save_state(this.sys, this.stateptr);\n retu
"mappings": "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",
"names": []
}