1
0
mirror of https://github.com/sehugg/8bitworkshop.git synced 2024-06-02 12:41:30 +00:00
8bitworkshop/gen/coleco-XDDVOME2.js.map

8 lines
12 KiB
Plaintext
Raw Normal View History

{
"version": 3,
"sources": ["../src/machine/coleco.ts", "../src/platform/coleco.ts"],
"sourcesContent": ["\nimport { Z80, Z80State } from \"../common/cpu/ZilogZ80\";\nimport { BasicScanlineMachine } from \"../common/devices\";\nimport { BaseZ80VDPBasedMachine } from \"./vdp_z80\";\nimport { KeyFlags, newAddressDecoder, padBytes, Keys, makeKeycodeMap, newKeyboardHandler } from \"../common/emu\";\nimport { hex, lzgmini, stringToByteArray } from \"../common/util\";\nimport { TssChannelAdapter, MasterAudio, SN76489_Audio } from \"../common/audio\";\nimport { TMS9918A } from \"../common/video/tms9918a\";\n\n// http://www.colecovision.eu/ColecoVision/development/tutorial1.shtml\n// http://www.colecovision.eu/ColecoVision/development/libcv.shtml\n// http://www.kernelcrash.com/blog/recreating-the-colecovision/2016/01/27/\n// http://www.atarihq.com/danb/files/CV-Tech.txt\n// http://www.atarihq.com/danb/files/CV-Sound.txt\n// http://www.colecoboxart.com/faq/FAQ05.htm\n// http://www.theadamresource.com/manuals/technical/Jeffcoleco.html\n// http://bifi.msxnet.org/msxnet//tech/tms9918a.txt\n// http://www.colecovision.dk/tools.htm?refreshed\n// http://www.theadamresource.com/manuals/technical/ColecoVision%20Coding%20Guide.pdf\n// http://www.unige.ch/medecine/nouspikel/ti99/tms9918a.htm\n// http://map.grauw.nl/articles/vdp_tut.php\n// http://www.msxcomputermagazine.nl/mccw/91/msx1demos1/en.html\n// http://www.segordon.com/colecovision.php\n// http://samdal.com/svvideo.htm\n// https://github.com/tursilion/convert9918\n// http://www.harmlesslion.com/cgi-bin/showprog.cgi?ColecoVision\n\nvar COLECOVISION_KEYCODE_MAP = makeKeycodeMap([\n [Keys.UP, 0, 0x1],\n [Keys.DOWN, 0, 0x4],\n [Keys.LEFT, 0, 0x8],\n [Keys.RIGHT, 0, 0x2],\n [Keys.A, 0, 0x40],\n [Keys.B, 1, 0x40],\n [Keys.GP_A, 0, 0x40],\n [Keys.GP_B, 1, 0x40],\n\n [Keys.P2_UP, 2, 0x1],\n [Keys.P2_DOWN, 2, 0x4],\n [Keys.P2_LEFT, 2, 0x8],\n [Keys.P2_RIGHT, 2, 0x2],\n [Keys.P2_A, 2, 0x40],\n [Keys.P2_B, 3, 0x40],\n]);\n\nexport class ColecoVision extends BaseZ80VDPBasedMachine {\n\n defaultROMSize = 0x8000;\n ram = new Uint8Array(0x400);\n bios: Uint8Array;\n keypadMode: boolean;\n\n constructor() {\n super();\n this.init(this, this.newIOBus(), new SN76489_Audio(new MasterAudio()));\n this.bios = new lzgmini().decode(stringToByteArray(atob(COLECO_BIOS_LZG)));\n }\n \n getKeyboardMap() { return COLECOVISION_KEYCODE_MAP; }\n \n vdpInterrupt() {\n this.probe.logInterrupt(0);\n this.cpu.NMI();\n }\n \n read = newAddressDecoder([\n [0x0000, 0x1fff, 0x1fff, (a) => { return this.bios ? this.bios[a] : 0; }],\n [0x6000, 0x7fff, 0x03ff, (a) => { return this.ram[a]; }],\n [0x8000, 0xffff, 0x7fff, (a) => { return this.rom ? this.rom[a] : 0; }],\n ]);\n\n write = newAddressDecoder([\n [0x6000, 0x7fff, 0x03ff, (a, v) => { this.ram[a] = v; }],\n ]);\n\n newIOBus() {\n return {\n read: (addr:number):number => {\n addr &= 0xff;\n //console.log('IO read', hex(addr,4));\n switch (addr) {\n case 0xfc: return this.inputs[this.keypadMode ? 1 : 0] ^ 0xff;\n case 0xff: return this.inputs[this.keypadMode ? 3 : 2] ^ 0xff;\n }\n if (addr >= 0xa0 && addr <= 0xbf) {\n if (addr & 1)\n return this.vdp.readStatus();\n else\n return this.vdp.readData();\n }\n return 0;\n },\n write: (addr:number, val:number) => {\n addr &= 0xff;\n val &= 0xff;\n //console.log('IO write', hex(addr,4), hex(val,2));\n switch (addr >> 4) {\n case 0x8: case 0x9: this.keypadMode = true; break;\n case 0xc: case 0xd: this.keypadMode = false; break;\n case 0xa: case 0xb:\n if (addr & 1)\n return this.vdp.writeAddress(val);\n else\n return this.vdp.writeData(val);\n case 0xf: this.psg.setData(val); break;\n }\n }\n };\n }\n\n loadState(state) {\n super.loadState(state);\n this.keypadMode = state['kpm'];\n }\n saveState() {\n var state = super.saveState();\n state['kpm'] = this.keypadMode;\n return state;\n
"mappings": "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",
"names": []
}