A little of ternary theory - we will use "balanced" one where our 3 values are -1, 0 and +1 (NOT 0,1,2). Atomic bit of ternary information usually called trit. And lets call 3 trits a triad. 1 trit could be in 3 states, 2 trits could be in 9 states (3^2) and 3 trits could be in 27 states (3^3). Triad may represent a number from -13 (9*(-1)+3*(-1)+1*(-1)) to +13 (9*(+1)+3*(+1)+1*(+1)), but how we should write this numbers in ternary form? -1-1-1 and +1+1+1 are not practical. So we came up with alphabetical labels for ternary values: +1 is labeled P (positive), 0 is labeled O (it's letter O, but we call it "neutral") and -1 is labeled N (negative), So -1-1-1 (number -13) could be written as NNN and +1+1+1 (number +14) could be written as PPP. Obviously 000 (number 0) is OOO :)

Now about 3niti alpha architecture (mostly designed in 2004). It has 3-trit data (27 possible values from -13 to +13), 9-trit address (to access up to 19683 cells) and 9 registers (coded by 2 trits that could be represented by numbers from -4 to +4):

F (-1): flag register: RSF (Result Sign Flag), DPF (Data Pointer Flag), BCF (Borrow Carry Flag);
A (0): accumulator register;
B (+1): auxiliary register;
L (+2): lower triad of current DP register;
M (+3): middle triad of current DP register;
H (+4): higher triad of current DP register.

There are THREE 9-trit DP (data pointer) registers - DPn, DPo, DPp that are available through registers L/M/H when flag DPF has corresponding value (N, O, P respectively). Also there is 9-trit register PC (program counter) and this architecture doesn't have a stack, so no register SP.

Instruction set is 27 opcodes (\$ means one triad in instruction parameters):

Control panel for 3niti alpha (designed in 2008) consists of 2 rows:

Top horizontal row of 15 "ternary" red-green light indicators:

• Lights 1,2,3,4,5,6,7,8,9 (A8...A0) - value of PC register (address of current operation)
• Lights 10,11,12 (D2...D0) - 3-trit data (see below)
• Lights 13,14,15 (Register A) - current value of A register

Bottom horizontal row of 15 "ternary" slide switches:

• Switches 1,2,3,4,5,6,7,8,9 (A8...A0) - some 9-trit address entered by user
• Switches 10,11,12 (D2...D0) - some 3-trit data entered by user
• Switch 13 (W/R) - control input/output ternary switch:

P (top position) - using specified address write data to the memory (data lights display this 3-trit data)
O (neutral position) - ignore address and data switches (data lights display data from memory address PC)
N (bottom position) - ignore data switches and display data from specified address

• Switch 14 (I/M) - control subprogram ternary switch: