1
0
mirror of https://github.com/sehugg/8bitworkshop.git synced 2024-11-16 05:05:11 +00:00
8bitworkshop/src/platform/apple2.ts

71 lines
2.2 KiB
TypeScript
Raw Normal View History

"use strict";
2017-12-30 17:48:30 +00:00
import { Platform, Base6502Platform, BaseMAMEPlatform, getOpcodeMetadata_6502, getToolForFilename_6502 } from "../baseplatform";
2018-12-09 12:44:39 +00:00
import { PLATFORMS, RAM, newAddressDecoder, padBytes, noise, setKeyboardFromMap, AnimationTimer, RasterVideo, Keys, KeyFlags, makeKeycodeMap, dumpRAM } from "../emu";
import { hex, lzgmini } from "../util";
import { SampleAudio, SampledAudio } from "../audio";
2018-08-23 12:49:14 +00:00
const APPLE2_PRESETS = [
{id:'sieve.c', name:'Sieve'},
{id:'keyboardtest.c', name:'Keyboard Test'},
{id:'mandel.c', name:'Mandelbrot'},
{id:'tgidemo.c', name:'TGI Graphics Demo'},
2018-12-08 12:35:48 +00:00
{id:'Eliza.c', name:'Eliza'},
{id:'siegegame.c', name:'Siege Game'},
{id:'cosmic.c', name:'Cosmic Impalas'},
2018-12-08 12:35:48 +00:00
{id:'hgrtest.a', name:"HGR Test (ASM)"},
{id:'conway.a', name:"Conway's Game of Life (ASM)"},
{id:'lz4fh.a', name:"LZ4FH Graphics Compression (ASM)"},
// {id:'tb_6502.s', name:'Tom Bombem (assembler game)'},
];
2017-01-03 01:42:15 +00:00
/// MAME support
class Apple2MAMEPlatform extends BaseMAMEPlatform implements Platform {
2018-08-23 12:49:14 +00:00
start () {
this.startModule(this.mainElement, {
jsfile:'mameapple2e.js',
2018-06-22 06:24:52 +00:00
biosfile:['apple2e.zip'],
//cfgfile:'nes.cfg',
driver:'apple2e',
2018-06-22 06:24:52 +00:00
width:280*2,
height:192*2,
//romfn:'/emulator/cart.nes',
//romsize:romSize,
//romdata:new lzgmini().decode(lzgRom).slice(0, romSize),
preInit:function(_self) {
},
});
}
2018-08-23 12:49:14 +00:00
getOpcodeMetadata = getOpcodeMetadata_6502;
getDefaultExtension () { return ".c"; };
getToolForFilename = getToolForFilename_6502;
2018-08-23 12:49:14 +00:00
getPresets () { return APPLE2_PRESETS; }
2018-08-23 12:49:14 +00:00
loadROM (title, data) {
this.loadROMFile(data);
2018-06-22 06:24:52 +00:00
// TODO
}
}
2019-08-22 02:55:32 +00:00
///
import { AppleII } from "../machine/apple2";
import { Base6502MachinePlatform } from "../baseplatform";
2019-08-22 02:55:32 +00:00
class NewApple2Platform extends Base6502MachinePlatform<AppleII> implements Platform {
2019-08-22 02:55:32 +00:00
newMachine() { return new AppleII(); }
getPresets() { return APPLE2_PRESETS; }
getDefaultExtension() { return ".c"; };
readAddress(a) { return this.machine.readConst(a); }
// TODO loadBios(bios) { this.machine.loadBIOS(a); }
2019-08-22 02:55:32 +00:00
}
PLATFORMS['apple2.mame'] = Apple2MAMEPlatform;
PLATFORMS['apple2'] = NewApple2Platform;