ternlang-core 0.3.3

Compiler and VM for Ternlang — balanced ternary language with affirm/tend/reject trit semantics, @sparseskip codegen, and BET bytecode execution.
Documentation
// Module:  stdlib/hardware/register_file.tern
// Purpose: Ternary Register File
// Author:  RFI-IRFOS
// Ref:     https://ternlang.com

// A bank of ternary registers for the CPU.

struct RegisterFile {
    regs: trit[] // Array of 27 registers
}

fn reg_read(rf: RegisterFile, addr: int) -> trit {
    return rf.regs[addr];
}

fn reg_write(rf: &mut RegisterFile, addr: int, data: trit, write_enable: trit) {
    if write_enable == affirm {
        rf.regs[addr] = data;
    }
}

fn reg_clear_all(rf: &mut RegisterFile) {
    let mut i: int = 0;
    while i < 27 {
        rf.regs[i] = tend; // Reset to zero-voltage state
        i = i + 1;
    }
}