diff options
author | WlodekM <[email protected]> | 2025-03-31 19:48:02 +0300 |
---|---|---|
committer | WlodekM <[email protected]> | 2025-03-31 19:48:02 +0300 |
commit | 0f6d349f9b8d22b3f8d972c5ff19ffb276629bdb (patch) | |
tree | 9a6dab53476bcc8b24d2f9fd0653667674f177a1 /65c02.ts | |
parent | cccb99226d3951fd9dfe1c4cf1c43126a1309d51 (diff) |
bitfield
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 |