diff options
Diffstat (limited to '65c02.ts')
-rw-r--r-- | 65c02.ts | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/65c02.ts b/65c02.ts new file mode 100644 index 0000000..a7660b4 --- /dev/null +++ b/65c02.ts @@ -0,0 +1,31 @@ +class BitField { + bits: boolean[]; + flip(bit: number) { + this.bits[bit] = !this.bits[bit]; + } + setBit(bit: number, value: boolean) { + this.bits[bit] = value; + } + set(value: number) { + for (let bit = 0; bit < this.bits.length; bit++) { + const mask: number = 1 << bit; + this.setBit(bit, (value & mask) != 0) + } + } + num(): number { + let number = 0; + for (let bit = 0; bit < this.bits.length; bit++) { + const mask: number = 1 << bit; + if (this.bits[bit]) + number |= mask; + } + return number; + } + constructor (len: number) { + this.bits = new Array(len).fill(false); + } +} + +export default class The65c02 { + data: BitField = new BitField(8) +} \ No newline at end of file |