summary refs log tree commit diff
path: root/pc-thing/pc.ts
diff options
context:
space:
mode:
authorWlodekM <[email protected]>2025-04-02 12:23:56 +0300
committerWlodekM <[email protected]>2025-04-02 12:23:56 +0300
commit1027b91f357eaaa4793b9d16673b0ab662b37c7e (patch)
tree8625f0aebc48ab32d6d4c3bd5ae92cfbf82c8c08 /pc-thing/pc.ts
parent0f6d349f9b8d22b3f8d972c5ff19ffb276629bdb (diff)
remove pc thing
Diffstat (limited to 'pc-thing/pc.ts')
-rw-r--r--pc-thing/pc.ts68
1 files changed, 0 insertions, 68 deletions
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<number>(4).fill(0) as Registers
-    regNames: string = 'abcd'
-    halted: boolean = false
-    mem = new Array<number>(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<number, string> = {
-        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