1
0
mirror of https://github.com/sehugg/8bitworkshop.git synced 2024-10-18 00:24:04 +00:00
8bitworkshop/gen/williams-RRVBPADN.js.map

8 lines
24 KiB
Plaintext
Raw Normal View History

{
"version": 3,
"sources": ["../src/platform/williams.ts"],
"sourcesContent": ["\nimport { Platform, BaseZ80Platform, Base6809Platform } from \"../common/baseplatform\";\nimport { PLATFORMS, RAM, newAddressDecoder, padBytes, noise, setKeyboardFromMap, AnimationTimer, RasterVideo, Keys, makeKeycodeMap } from \"../common/emu\";\nimport { hex } from \"../common/util\";\nimport { MasterAudio, WorkerSoundChannel } from \"../common/audio\";\n\nvar WILLIAMS_PRESETS = [\n { id: 'gfxtest.c', name: 'Graphics Test' },\n { id: 'sprites.c', name: 'Sprite Test' },\n { id: 'game1.c', name: 'Raster Paranoia Game' },\n { id: 'bitmap_rle.c', name: 'RLE Bitmap' },\n];\n\nvar WilliamsPlatform = function(mainElement, proto, options) {\n var self = this;\n this.__proto__ = new (proto ? proto : Base6809Platform)();\n\n options = options || {};\n var isDefender = options.isDefender;\n var SCREEN_HEIGHT = 304;\n var SCREEN_WIDTH = 256;\n\n var cpu, ram, rom, nvram;\n var portsel = 0;\n var banksel = 0;\n var watchdog_counter;\n var watchdog_enabled = false;\n var pia6821 = new RAM(8).mem;\n var blitregs = new RAM(8).mem;\n\n var video, timer, pixels, displayPCs;\n var screenNeedsRefresh = false;\n var membus;\n var video_counter;\n\n var audio, worker, workerchannel;\n\n var xtal = 12000000;\n var cpuFrequency = xtal / 3 / 4;\n var cpuCyclesPerFrame = cpuFrequency / 60; // TODO\n var cpuScale = 1;\n var INITIAL_WATCHDOG = 8;\n var PIXEL_ON = 0xffeeeeee;\n var PIXEL_OFF = 0xff000000;\n\n var DEFENDER_KEYCODE_MAP = makeKeycodeMap([\n [Keys.A, 4, 0x1],\n [Keys.RIGHT, 4, 0x2],\n [Keys.B, 4, 0x4],\n [Keys.VK_X, 4, 0x8],\n [Keys.P2_START, 4, 0x10],\n [Keys.START, 4, 0x20],\n [Keys.LEFT, 4, 0x40],\n [Keys.DOWN, 4, 0x80],\n [Keys.UP, 6, 0x1],\n [Keys.SELECT, 0, 0x4],\n [Keys.VK_7, 0, 0x1],\n [Keys.VK_8, 0, 0x2],\n [Keys.VK_9, 0, 0x8],\n ]);\n\n var ROBOTRON_KEYCODE_MAP = makeKeycodeMap([\n [Keys.P2_UP, 0, 0x1],\n [Keys.P2_DOWN, 0, 0x2],\n [Keys.P2_LEFT, 0, 0x4],\n [Keys.P2_RIGHT, 0, 0x8],\n [Keys.START, 0, 0x10],\n [Keys.P2_START, 0, 0x20],\n [Keys.UP, 0, 0x40],\n [Keys.DOWN, 0, 0x80],\n [Keys.LEFT, 2, 0x1],\n [Keys.RIGHT, 2, 0x2],\n [Keys.VK_7, 4, 0x1],\n [Keys.VK_8, 4, 0x2],\n [Keys.VK_6, 4, 0x4],\n [Keys.VK_9, 4, 0x8],\n [Keys.SELECT, 4, 0x10],\n ]);\n\n var KEYCODE_MAP = isDefender ? DEFENDER_KEYCODE_MAP : ROBOTRON_KEYCODE_MAP;\n\n // TODO: sound board handshake\n\n var palette = [];\n for (var ii = 0; ii < 16; ii++)\n palette[ii] = 0xff000000;\n\n this.getPresets = function() {\n return WILLIAMS_PRESETS;\n }\n\n // Defender\n\n var ioread_defender = newAddressDecoder([\n [0x400, 0x5ff, 0x1ff, function(a) { return nvram.mem[a]; }],\n [0x800, 0x800, 0, function(a) { return video_counter; }],\n [0xc00, 0xc07, 0x7, function(a) { return pia6821[a]; }],\n [0x0, 0xfff, 0, function(a) { /*console.log('ioread',hex(a));*/ }],\n ]);\n\n var iowrite_defender = newAddressDecoder([\n [0x0, 0xf, 0xf, setPalette],\n [0x3fc, 0x3ff, 0, function(a, v) { if (v == 0x38) watchdog_counter = INITIAL_WATCHDOG; watchdog_enabled=true; }],\n [0x400, 0x5ff, 0x1ff, function(a, v) { nvram.mem[a] = v; }],\n [0xc02, 0xc02, 0x1, function(a, v) { if (worker) worker.postMessage({ command: v & 0x3f }); }],\n [0xc00, 0xc07, 0x7, function(a, v) { pia6821[a] = v; }],\n [0x0, 0xfff, 0, function(a, v) { console.log('iowrite', hex(a), hex(v)); }],\n ]);\n\n var memread_defender = newAddressDecoder([\n [0x0000, 0xbfff, 0xffff, function(a) { return ram.mem[a]; }],\n [0xc000, 0xcfff, 0x0fff, function(a) {\n switch (banksel) {\n case 0: return ioread_defender(a);\n case 1: return rom[a + 0x3000];\n case 2: return rom[a + 0x4000];\n case 3: return rom[a + 0x5000];\n case 7: return rom[a + 0x6000];\n default: return 0; // TODO: error light\n }\n }],\n [0xd000, 0xffff, 0xffff, function(a) { return rom ? rom[a - 0xd000] : 0; }],\n ]);\n\n var memwrite_defender = newAddressDecoder([\n [0x0000, 0x97ff, 0, write_display_byte],\
"mappings": "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
"names": []
}