mirror of
https://github.com/sehugg/8bitworkshop.git
synced 2025-02-28 05:29:43 +00:00
added key handler to base machine
This commit is contained in:
parent
33a0e9ed57
commit
0bcd828670
@ -237,12 +237,12 @@ export abstract class BasicMachine implements HasCPU, Bus, SampledAudioSource, A
|
||||
|
||||
abstract cpu : CPU;
|
||||
abstract ram : Uint8Array;
|
||||
// TODO? abstract handler; // keyboard handler
|
||||
|
||||
rom : Uint8Array;
|
||||
pixels : Uint32Array;
|
||||
audio : SampledAudioSink;
|
||||
inputs : Uint8Array = new Uint8Array(32);
|
||||
handler : (key,code,flags) => void; // keyboard handler
|
||||
|
||||
scanline : number;
|
||||
frameCycles : number;
|
||||
@ -253,6 +253,9 @@ export abstract class BasicMachine implements HasCPU, Bus, SampledAudioSource, A
|
||||
abstract read(a:number) : number;
|
||||
abstract write(a:number, v:number) : void;
|
||||
|
||||
setKeyInput(key:number, code:number, flags:number) : void {
|
||||
this.handler && this.handler(key,code,flags);
|
||||
}
|
||||
getAudioParams() : SampledAudioParams {
|
||||
return {sampleRate:this.sampleRate, stereo:false};
|
||||
}
|
||||
|
@ -443,7 +443,6 @@ export class BallyAstrocade extends BasicScanlineMachine implements AcceptsPaddl
|
||||
cpu : Z80;
|
||||
m; // _BallyAstrocade
|
||||
|
||||
handler;
|
||||
psg: AstrocadeAudio;
|
||||
audioadapter;
|
||||
backbuffer : Uint32Array;
|
||||
@ -466,10 +465,6 @@ export class BallyAstrocade extends BasicScanlineMachine implements AcceptsPaddl
|
||||
this.m.init(this, this.cpu, this.ram, this.inputs, this.psg);
|
||||
}
|
||||
|
||||
setKeyInput(key:number, code:number, flags:number) : void {
|
||||
this.handler(key,code,flags);
|
||||
}
|
||||
|
||||
read(a:number) : number {
|
||||
return this.m.membus.read(a);
|
||||
}
|
||||
|
@ -316,7 +316,6 @@ export class Atari7800 extends BasicMachine {
|
||||
pokey1; //TODO: type
|
||||
audioadapter;
|
||||
|
||||
handler; // TODO: type, or use ControllerPoller
|
||||
lastFrameCycles = 0;
|
||||
|
||||
read : (a:number) => number;
|
||||
@ -371,10 +370,6 @@ export class Atari7800 extends BasicMachine {
|
||||
//TODO this.bios = new Uint8Array(0x1000);
|
||||
// TODO: TIA access wastes a cycle
|
||||
|
||||
setKeyInput(key:number, code:number, flags:number) : void {
|
||||
this.handler(key,code,flags);
|
||||
}
|
||||
|
||||
advanceFrame(maxClocks, trap) : number {
|
||||
var idata = this.pixels;
|
||||
var iofs = 0;
|
||||
|
@ -45,7 +45,6 @@ export class Midway8080 extends BasicScanlineMachine {
|
||||
|
||||
cpu: Z80 = new Z80();
|
||||
ram = new Uint8Array(0x2000);
|
||||
handler;
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
@ -54,10 +53,6 @@ export class Midway8080 extends BasicScanlineMachine {
|
||||
this.handler = newKeyboardHandler(this.inputs, SPACEINV_KEYCODE_MAP);
|
||||
}
|
||||
|
||||
setKeyInput(key:number, code:number, flags:number) : void {
|
||||
this.handler(key,code,flags);
|
||||
}
|
||||
|
||||
read = newAddressDecoder([
|
||||
[0x0000, 0x1fff, 0x1fff, (a) => { return this.rom ? this.rom[a] : 0; }],
|
||||
[0x2000, 0x3fff, 0x1fff, (a) => { return this.ram[a]; }],
|
||||
|
@ -20,7 +20,6 @@ export abstract class BaseZ80VDPBasedMachine extends BasicScanlineMachine {
|
||||
cpu: Z80 = new Z80();
|
||||
vdp: TMS9918A;
|
||||
psg;
|
||||
handler;
|
||||
audioadapter;
|
||||
|
||||
abstract vdpInterrupt();
|
||||
@ -35,10 +34,6 @@ export abstract class BaseZ80VDPBasedMachine extends BasicScanlineMachine {
|
||||
this.audioadapter = psg && new TssChannelAdapter(psg.psg, audioOversample, this.sampleRate);
|
||||
}
|
||||
|
||||
setKeyInput(key:number, code:number, flags:number) : void {
|
||||
this.handler(key,code,flags);
|
||||
}
|
||||
|
||||
connectVideo(pixels) {
|
||||
super.connectVideo(pixels);
|
||||
var cru = {
|
||||
|
@ -45,7 +45,6 @@ export class VicDual extends BasicScanlineMachine {
|
||||
ram = new Uint8Array(0x1000);
|
||||
psg: AY38910_Audio;
|
||||
display: VicDualDisplay;
|
||||
handler;
|
||||
audioadapter;
|
||||
|
||||
constructor() {
|
||||
@ -59,10 +58,6 @@ export class VicDual extends BasicScanlineMachine {
|
||||
this.audioadapter = new TssChannelAdapter(this.psg.psg, audioOversample, this.sampleRate);
|
||||
}
|
||||
|
||||
setKeyInput(key:number, code:number, flags:number) : void {
|
||||
this.handler(key,code,flags);
|
||||
}
|
||||
|
||||
getKeyboardFunction() {
|
||||
return (o) => {
|
||||
// reset when coin inserted
|
||||
|
16
src/ui.ts
16
src/ui.ts
@ -239,19 +239,14 @@ function refreshWindowList() {
|
||||
return new Views.MemoryView();
|
||||
});
|
||||
}
|
||||
if (platform.readVRAMAddress) {
|
||||
addWindowItem("#memvram", "VRAM Browser", () => {
|
||||
return new Views.VRAMMemoryView();
|
||||
});
|
||||
}
|
||||
if (current_project.segments) {
|
||||
addWindowItem("#memmap", "Memory Map", () => {
|
||||
return new Views.MemoryMapView();
|
||||
});
|
||||
}
|
||||
if (platform.getRasterScanline && platform.setBreakpoint && platform.getCPUState) { // TODO: use profiler class to determine compat
|
||||
addWindowItem("#profiler", "Profiler", () => {
|
||||
return new Views.ProfileView();
|
||||
if (platform.readVRAMAddress) {
|
||||
addWindowItem("#memvram", "VRAM Browser", () => {
|
||||
return new Views.VRAMMemoryView();
|
||||
});
|
||||
}
|
||||
if (platform.startProbing) {
|
||||
@ -266,6 +261,11 @@ function refreshWindowList() {
|
||||
return new Views.RasterPCHeatMapView();
|
||||
});
|
||||
}
|
||||
else if (platform.getRasterScanline && platform.setBreakpoint && platform.getCPUState) { // TODO: use profiler class to determine compat
|
||||
addWindowItem("#profiler", "Profiler", () => {
|
||||
return new Views.ProfileView();
|
||||
});
|
||||
}
|
||||
addWindowItem('#asseteditor', 'Asset Editor', () => {
|
||||
return new Views.AssetEditorView();
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user