From 1027b91f357eaaa4793b9d16673b0ab662b37c7e Mon Sep 17 00:00:00 2001 From: WlodekM Date: Wed, 2 Apr 2025 12:23:56 +0300 Subject: remove pc thing --- pc-thing/pc.ts | 68 ---------------------------------------------------------- 1 file changed, 68 deletions(-) delete mode 100644 pc-thing/pc.ts (limited to 'pc-thing/pc.ts') diff --git a/pc-thing/pc.ts b/pc-thing/pc.ts deleted file mode 100644 index a007189..0000000 --- a/pc-thing/pc.ts +++ /dev/null @@ -1,68 +0,0 @@ -import * as lib from "./lib.ts"; -type Registers = [number, number, number, number] -export class PC { - registers: Registers = new Array(4).fill(0) as Registers - regNames: string = 'abcd' - halted: boolean = false - mem = new Array(2**16).fill(0) - getSegment: undefined | ((segment: number) => Uint16Array) = undefined; - getMem(addr: number): number { - if (addr < 0 || addr > 2**16) - throw 'invalid address'; - //TODO - memory mapping - return this.mem[addr]; - } - setMem(addr: number, data: number) { - if (this.getSegment && addr == 0x7cff) { - const segment = this.getSegment(data) - for (let i = 0; i < 512; i++) { - this.mem[0x7d00 + i] = segment.length > i ? segment[i] : 0; - } - return; - } - if (addr >= 0x7d00 && addr <= 0x7fff && this.getSegment) { - return; - } - this.mem[addr] = Math.floor(data) % 2**16 - } - programPointer: number = 0; - lib = lib - returnFlag = 0; - returnStack: number[] = [] - // the instruction set, in no particular order :3 - instructions: Record = { - 0: 'mov', - 1: 'swp', - 2: 'ld', - 3: 'str', - 4: 'add', - 5: 'sub', - 6: 'mul', - 7: 'div', - 8: 'mod', - 9: 'shl', - 10: 'shr', - 11: 'cmp', - 12: 'cmr', - 13: 'and', - 14: 'or', - 15: 'xor', - 16: 'not', - 17: 'push', - 18: 'pop', - 19: 'halt', - 20: 'sys', // extra - 21: 'jmp', - 22: 'jnz', - 23: 'jz', - 24: 'jmr', - 25: 'ret', - - 31: 'end' - } - constructor(diskSupport = false) { - if (diskSupport) { - this.mem[0x7cff] = (2**16) - 1 - } - } -} \ No newline at end of file -- cgit 1.4.1-2-gfad0