1
0
mirror of https://github.com/sehugg/8bitworkshop.git synced 2024-06-01 20:41:36 +00:00
8bitworkshop/src/baseplatform.ts

49 lines
1.2 KiB
TypeScript
Raw Normal View History

2018-07-08 04:58:11 +00:00
export interface OpcodeMetadata {
minCycles: number;
// TODO
}
export interface Platform {
start() : void;
reset() : void;
isRunning() : boolean;
getToolForFilename(s:string) : string;
getDefaultExtension() : string;
getPresets() : Preset[];
pause() : void;
resume() : void;
loadROM(title:string, rom:any); // TODO: Uint8Array
2018-07-08 04:58:11 +00:00
inspect?(ident:string) : void;
disassemble?(addr:number, readfn:(addr:number)=>number) : any; // TODO
readAddress?(addr:number) : number;
setFrameRate?(fps:number) : void;
getFrameRate?() : number;
cpuStateToLongString?(state) : string;
ramStateToLongString?(state) : string;
getRasterPosition() : {x:number, y:number};
setupDebug?(debugfn : (state)=>void) : void;
clearDebug?() : void;
step?() : void;
runToVsync?() : void;
runToPC?(pc:number) : void;
runUntilReturn?() : void;
stepBack?() : void;
//TODO runEval?(evalfn : (cpustate) => boolean) : void;
runEval?(evalfn : Function) : void;
getOpcodeMetadata?(opcode:number, offset:number) : OpcodeMetadata; //TODO
saveState?() : any; // TODO
getDebugCallback?() : any; // TODO
getSP?() : number;
}
export interface Preset {
id : string;
name : string;
chapter? : number;
title? : string;
}