Микросхема троичного микроконтроллера Triador-3000

Уравновешенная троичная система счисления - форум переехал с http://ternary.info

Moderator: haqreu

User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Микросхема троичного микроконтроллера Triador-3000

Post by Shaos »

Триадор в оригинале умеет адресовать только 729 ячеек памяти программ, но я похоже придумал как расширить триадора до возможностей полноценного микроконтроллера не ломая существующую архитектуру!

Вобщем суть в том, что самый верх пространства программ (тот что начинается NNNNNN) может использоваться для переконфигурирования чипа путём передачи туда управления, которое никуда не передастся - например:

R1 -13 ; R1=-13
RR -13 ; R13=R1 (-13)
R1 3 ; R1=3 (for example)
JP -13 ; jump to NNNNNN

Тут на самом деле прыжка не произойдёт - программа пойдёт дальше, но уже в 3й странице программной памяти :)

Точно также разные адреса для фейковых прыжков могут делать разные другие вещи - например переключать отдельные ноги портов на вход или выход (скажем адреса с NNNNNO для R12 до NNNNPP для R5):

значение +1 включает трит порта на вход
значение 0 включает трит порта на выход (по умолчанию) и при чтении читается трит из регистра
значение -1 оставляет трит порта выходом, передавая туда запомненное до этого состояние, но теперь все дальнейшие обращения к триту регистра (и на чтение, и на запись) идут в теневую память (таким образом мы легко и непринуждённо увеличиваем количество регистров почти в 2 раза)

Прыжки в NNNONN, NNNONO, NNNONP, NNNOON, NNNOOO, NNNOOP, NNNOPN, NNNOPO и NNNOPP могут настраивать соответствующие команды EX

Вобщем как-то так :roll:
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Считаем ноги микросхемы Triador-3000

Post by Shaos »

В декабре 2017 я уже начал было рассуждать как же нам затолкать TRIADOR в микросхему DIP48:
Shaos wrote: Оставаясь в DIP48 минимальная распиновка может быть такой:
1 земля
1 питание
1 вход тактирования
6 адрес для внешней памяти
5 слово из внешней памяти
3 тестовых выхода (подцепляются к внутренним точкам в зависимости от тестового адреса)
3 тестовый адрес (чтобы покрыть 27 тестовых триад идущих изнутри схемы для тестовых целей)
3 входы для R13 (по умолчанию цепляются к выходам R13) - это нужно для организации клавиатуры калькулятора (можно это автоматом зацепить на R13 если скажем тестовый адрес будет NNN)
вместо вывода содержимого ВСЕХ регистров одновременно, просто цепляем их на тестовые выходы при выборе специального тестового адреса (скажем от OOP до PPP будут цепляться к регистрам, OOO и OON к половинкам PC и т.д.)
всего получилось 23 ноги...
Чтобы не мешаться в основном топике про TRIADOR, создаю новую тему :eugeek:

Предполагается, что память программ будет снаружи, а дополнительная память данных - внутри (теоретически до 729 трайтов, но на самом деле вряд ли будет больше 243 и скорее всего эта память будет обычной двоичной статической памятью - можно скажем в названии чипа указывать сколько трайтов памяти данных есть на борту - Triador3243, Triador3081 и т.д.).

Считаем ноги:
1 питание (1);
1 уровень для третьего состояния 2.5 В (2);
2 уровни 1.666 В и 3.333 В для компараторов (4);
1 вход резистора для токового зеркала (5);
1 вход сигнала сброса/прерывания (6);
1 тактирование синусоидой (7);
6 вывод адреса внешней памяти программ (13);
5 ввод командного слова из внешней памяти программ (18);
3 вывод тестовой триады для выдачи состояния регистров и т.д. (21);
6 ввод тестового адреса для выдачи тестовой триады (27);
6 выход виртуальной ячейки памяти OOO OOO для листания памяти программ и скажем для организации клавиатуры (33);
6 вход для чтения виртуальной ячейки памяти OOO OOO - для простоты может быть замкнуто на выходы (39);
1 выход запроса EX на внешнюю схему из диапазона CUSTOM CIRCUITS (40);
4 вход для новых значений C и R1 после выполнения внешней команды EX (44);
3 возможно выходы флагов A,B,C для связи с внешним миром (47);
1 земля (48).

Внешняя схема обработки EX получив сигнал, что есть запрос на исполнение внешней команды EX, останавливает тактирование чипа и, подавая на тестовый адрес некоторые значения, читает нужную информацию (содержимое регистров, защёлок PEX, памяти данных и т.д.), затем выполняет некие действия и пишет обратно новые значения для C,R1, возобновляя тактирование (чип при продолжении работы первым делом читает эти 4 трита и записывает C,R1). Сигнал EX можно совместить с индикацией состояния HLT (например P может означать, что есть запрос на обработку внешней команды EX, а N - что чип вошёл в состояние HLT). Вход сброса/прерывания просто может означать разные способы старта - P может означать полный сброс с обнулением регистров и защёлок и старт с адреса OOO OOO (причём в этом случае в адресном пространстве программ Nxx xxx отображается память данных для того, чтобы была возможность динамически подгружать и запускать подпрограммы), а N - вход в прерывание с адреса NNN NNN с сохранением состояния всех регистров и защёлок (в этом случае вся работа идёт с внешним ПЗУ программ - хотя прерывания можно отложить на будущее и пока ограничиться одним способом рестарта).

P.S. Возможная адресация триад тестовым адресом:
Nxxxxx - младшие триады памяти данных из адресов NNNNNN...NPPPPP
Pxxxxx - старшие триады памяти данных из адресов NNNNNN...NPPPPP
ONxxxx - все триады защёлок PEX (читая их снаружи можно организовать экран 9x13)
OOOxxx - регистры R1-R13 плюс ещё 14 тестовых триад (например значения R1-1 и R1+1)
остальные тестовые адреса могут покрывать другие тестовые точки внутри чипа

P.P.S. Раз уж память программ в области Nxx xxx уже смотрит на ОЗУ, то может попробовать "захардкодить" внутрь области Oxx xxx простую программу, которая при старте будет читать из последовательной флешины прошивку? Управлять режимом бута можно скажем путём заземления некоторых входов пока вход сброса активен - один из режимов будет означать загрузку прошивки из флеша через входы-выходы флагов...

P.P.P.S. В первой версии Triador3000 можно память данных вывести наружу (соответственно команды MWW, MRL, MRH станут внешними EX-командами по типу CUSTOM CIRCUITS) - количество ног при этом уменьшится на 12, т.к. ввод-вывод виртуальной ячейки OOO OOO уже будет ненужен (вся обработка памяти данных будет снаружи, включая виртуальную ячейку) - так можно уместиться в DIP40, но возможность простого ввода-вывода исчезнет. С другой стороны в 2017 году у меня была идея использовать R13 для ввода-вывода - это ещё 3 входа и 3 выхода т.е. 48-12+6=42...

P.P.P.P.S. В будущем возможно также придётся разрешить внешним EX-командам менять PC (скажем для реализации "железных" CALL и RET с независимым стеком возвратов), соответственно надо будет ещё 6 входов предусмотреть и 1 тритик про что мы меняем по итогам выполнения внешней EX-инструкции - [A,B,]C,R1 (N) или ничего (O) или PC (P). Так что возможно придётся уходить в PLCC68 хотя входы C,R1 и PC можно совместить, если одновременно их менять не предвидится - в этом случае количество ног увеличится только на 3...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Микросхема троичного микроконтроллера Triador3000

Post by Shaos »

Почти случайно с помощью ручного подгона и DDT удалось составить на редкость компактную преобразовалку из 4-тритного адреса (81 разных адресов) в 7-битный адрес (128 ячеек):

Code: Select all

/* Generated by DDTc v0.5
   Solution is 10 x DG403
   See www.ternary.info */

#include "ddt.h"

int ddt_bin81a(int f, DDT i1, DDT i2, DDT i3, DDT i4, DDT* o1, DDT* o2, DDT* o3, DDT* o4, DDT* o5, DDT* o6, DDT* o7)
{
 DDT r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15;
 int f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15;
 f1 = ddt_e21(f,i4,N,P,&r1);
 if(f1 < 0) return f1;
 f2 = ddt_e12(f,i4,P,N,&r2);
 if(f2 < 0) return f2;
 f3 = ddt_e12(f,i1,P,N,&r3);
 if(f3 < 0) return f3;
 f4 = ddt_e21(f,i2,N,r3,&r4);
 if(f4 < 0) return f4;
 f5 = ddt_e21(f,i3,r4,P,&r5);
 if(f5 < 0) return f5;
 f6 = ddt_e12(f,i3,P,r4,&r6);
 if(f6 < 0) return f6;
 f7 = ddt_e21(f,i2,r3,P,&r7);
 if(f7 < 0) return f7;
 f8 = ddt_mux(f,i2,P,r3,N,&r8);
 if(f8 < 0) return f8;
 f9 = ddt_e12(f,i2,P,r3,&r9);
 if(f9 < 0) return f9;
 f10 = ddt_mux(f,i3,r8,r9,r8,&r10);
 if(f10 < 0) return f10;
 f11 = ddt_e21(f,i1,N,P,&r11);
 if(f11 < 0) return f11;
 f12 = ddt_mux(f,i1,P,N,P,&r12);
 if(f12 < 0) return f12;
 f13 = ddt_mux(f,i2,r11,r12,r11,&r13);
 if(f13 < 0) return f13;
 f14 = ddt_e12(f,i2,r11,r12,&r14);
 if(f14 < 0) return f14;
 f15 = ddt_e12(f,i3,r13,r14,&r15);
 if(f15 < 0) return f15;
 if(o1) *o1 = r1;
 if(o2) *o2 = r2;
 if(o3) *o3 = r5;
 if(o4) *o4 = r6;
 if(o5) *o5 = r7;
 if(o6) *o6 = r10;
 if(o7) *o7 = r15;
 return f1+f2+f3+f4+f5+f6+f7+f8+f9+f10+f11+f12+f13+f14+f15;
}
Я не поленился и вручную набрал эту схему в логисиме, проверив каждый троичный адрес перебором - работает:
bin81a.png
В этой схеме 10 блоков E12 и 9 блоков E21, что означает, что её можно смакетировать используя 10 микросхем DG403 (и ещё одна свободная половинка останется).

В покрытии по понятным причинам присутствуют дырки (т.к. не для каждой двоичной комбинации есть соответствующая троичная), но я наверное знаю как их заделать хотя бы частично :dj:

Code: Select all

OOOO 0000000
POOO 0000001
NOOO 0000010
     0000011 <
OPOO 0000100
PPOO 0000101
NPOO 0000110
     0000111 <
ONOO 0001000
PNOO 0001001
NNOO 0001010
     0001011 <
     0001100
     0001101
     0001110
     0001111
OOPO 0010000
POPO 0010001
NOPO 0010010
     0010011 <
OPPO 0010100
PPPO 0010101
NPPO 0010110
     0010111 <
ONPO 0011000
PNPO 0011001
NNPO 0011010
     0011011 <
ONPN 0011100
PNPN 0011101
NNPN 0011110
     0011111 <
OONO 0100000
PONO 0100001
NONO 0100010
     0100011 <
OPNO 0100100
PPNO 0100101
NPNO 0100110
     0100111 <
ONNO 0101000
PNNO 0101001
NNNO 0101010
     0101011 <
     0101100
     0101101
     0101110
     0101111
OONN 0110000
PONN 0110001
NONN 0110010
     0110011 <
OPNN 0110100
PPNN 0110101
NPNN 0110110
     0110111 <
ONNN 0111000
PNNN 0111001
NNNN 0111010
     0111011 <
     0111100
     0111101
     0111110
     0111111
OOOP 1000000
POOP 1000001
NOOP 1000010
     1000011 <
OPOP 1000100
PPOP 1000101
NPOP 1000110
     1000111 <
ONOP 1001000
PNOP 1001001
NNOP 1001010
     1001011 <
     1001100
     1001101
     1001110
     1001111
OOPP 1010000
POPP 1010001
NOPP 1010010
     1010011 <
OPPP 1010100
PPPP 1010101
NPPP 1010110
     1010111 <
ONPP 1011000
PNPP 1011001
NNPP 1011010
     1011011 <
OPPN 1011100
PPPN 1011101
NPPN 1011110
     1011111 <
OONP 1100000
PONP 1100001
NONP 1100010
     1100011 <
OPNP 1100100
PPNP 1100101
NPNP 1100110
     1100111 <
ONNP 1101000
PNNP 1101001
NNNP 1101010
     1101011 <
     1101100
     1101101
     1101110
     1101111 
OOON 1110000
POON 1110001
NOON 1110010
     1110011 <
OPON 1110100
PPON 1110101
NPON 1110110
     1110111 <
ONON 1111000
PNON 1111001
NNON 1111010
     1111011 <
OOPN 1111100
POPN 1111101
NOPN 1111110
     1111111 <
Такую преобразовалку можно использовать для обращения к двоичной памяти данных из троичного процессора - используется 81 ячейка из 128 (63%) но я как минимум могу добавить ещё 27 немного схитрив (можно взять шестой трит адреса и если он P складывать по ИЛИ младший бит двоичного адреса с логической единичкой - в результате удастся захватить ещё 27 ячеек помеченных <) - тогда будет уже 108 из 128 (84%). Поясню - преобразовалка преобразует адрес NOOO в бинарное число 0000010. Соответственно перебирая всю память по 6-тритным адресам в одну и ту же ячейку обратятcя адреса NNNOOO, NONOOO, NPNOOO, ONNOOO и т.д., а если добавить хитрость со старшим тритом P, то обратившись по адресам PNNOOO, PONOOO и PPNOOO мы уже полезем не в бинарную ячейку 0000010, а в 0000011.

По идее такой подход - расширяемый. Можно взять три таких блока двоичной памяти по 128 байт каждый и обращаться к ним через 5-тритный адрес, используя ту же самую преобразовалку для младших 7 бит, а старшие 2 бита выбирать в зависимости от состояния старшего трита (N->10, O->00, P->01) ну и пользуясь 6м тритом можно точно также схитрить, чтобы получить доступ к дополнительным 27*3=81 ячейкам по некоторым специфическим адресам.

P.S. Если триты переставить в обратном порядке, то конверсия будет чуть более логичной - как минимум для Oxxx и Pxxx адресов (а Nxxx я уже втыкал где было свободно).

P.P.S. Можно хитрость расширить ещё одним битом - номер 4. Тогда для троичных адресов:
Nxx xxx - ничего не менять;
Oxx xxx - сбрасывать бит 4 в 0 (либо инвертировать);
Pxx xxx - устанавливать бит 0 в 1 (либо дополнительно проверить, что бинарный адрес заканчивается на 10 и только тогда превращать его в 11 - в этом случае другие ячейки не переназначатся).
С двойным трюком покрываются уже 117 ячеек (на 9 ячеек больше, чем с одинарным трюком), что составляет уже 91%
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Микросхема троичного микроконтроллера Triador3000

Post by Shaos »

Вот текст программки, прогоняющей вышеизложенную схемку по всем адресам из 6-тритного адресного пространства с переставленными в обратном порядке тритами и применением чуть более навороченных трюков:

 tstbin.c

Code: Select all

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "ddt_bin81a.c"

//#define TWO
//#define THREE

int main(int argc, char** argv)
{
 int k = 0;
 int i,j,l;
 char s[8] = "NNNNNN";
 float f;
 DDT o[7];
 int cover[400],value[400];
 for(i=0;i<400;i++)
 {
    cover[i] = 0;
    value[i] = -999;
 }
 l = -364;
 for(j=0;j<729;j++)
 {
    ddt_bin81a(DDT_SIM,s[2],s[3],s[4],s[5],&o[0],&o[1],&o[2],&o[3],&o[4],&o[5],&o[6]);

    i = ((o[6]=='P')?64:0)|
        ((o[5]=='P')?32:0)|
        ((o[4]=='P')?16:0)|
        ((o[3]=='P')?8:0)|
        ((o[2]=='P')?4:0)|
        ((o[1]=='P')?2:0)|
        ((o[0]=='P')?1:0);
#if 1
    if(s[0]=='P')
    {
       if(s[1]!='P' && o[1]=='P') i|=1;
       if(s[1]=='O' && o[4]=='P') i-=16;
    }
    else if(s[0]=='O')
    {
       if(o[4]=='P') i-=16;
       if(s[1]=='P' &&o[6]=='P') i-=64;
    }
#endif
#ifdef THREE
    if(s[1]=='P') i+=128;
    if(s[1]=='N') i+=256;
#endif
#ifdef TWO
    if(s[1]=='N') i+=128;
#endif
    if(value[i]==-999) value[i] = l;
#ifdef THREE
    printf("%s=%i%i%i%i%i%i%i%i%i (0x%3.3X or %i)\t[%i] %c\n",s,
             (i&0x100)>>8,
#else
    printf("%s=%i%i%i%i%i%i%i%i (0x%2.2X or %i)\t[%i] %c\n",s,
#endif
             (i&0x80)>>7,
             (i&0x40)>>6,
             (i&0x20)>>5,
             (i&0x10)>>4,
             (i&0x08)>>3,
             (i&0x04)>>2,
             (i&0x02)>>1,
             (i&0x01),i,i,value[i],
             cover[i]?' ':'*');
    cover[i]++;

    if(++s[5]=='Q')
    {
     s[5] = 'N';
     if(++s[4]=='Q')
     {
       s[4] = 'N';
       if(++s[3]=='Q')
       {
          s[3] = 'N';
          if(++s[2]=='Q')
          {
             s[2] = 'N';
             if(++s[1]=='Q')
             {
                s[1] = 'N';
                ++s[0];
             }
          }
       }
     }
    }
    l++;
 }

 printf("\n");
 k = 0;
#ifdef THREE
 f = 3.84;
 for(i=0;i<384;i++)
#else
#ifdef TWO
 f = 2.56;
 for(i=0;i<256;i++)
#else
 f = 1.28;
 for(i=0;i<128;i++)
#endif
#endif
 {
    if(cover[i]) k++;
    else printf("0x%2.2X (%i) not covered\n",i,i);
 }
 printf("\nCovered %i cells (%2.2f%%)\n\n",k,k/f);

 return 0;
}

Это работает лучше всего, когда у нас есть один блок с 128 ячейками (там не байты на самом деле, а 12-битные слова):

 1блок

Code: Select all

NNNNNN=00111010 (0x3A or 58)	[-364] *
NNNNNO=00111000 (0x38 or 56)	[-363] *
NNNNNP=00111001 (0x39 or 57)	[-362] *
NNNNON=00110010 (0x32 or 50)	[-361] *
NNNNOO=00110000 (0x30 or 48)	[-360] *
NNNNOP=00110001 (0x31 or 49)	[-359] *
NNNNPN=00110110 (0x36 or 54)	[-358] *
NNNNPO=00110100 (0x34 or 52)	[-357] *
NNNNPP=00110101 (0x35 or 53)	[-356] *
NNNONN=01111010 (0x7A or 122)	[-355] *
NNNONO=01111000 (0x78 or 120)	[-354] *
NNNONP=01111001 (0x79 or 121)	[-353] *
NNNOON=01110010 (0x72 or 114)	[-352] *
NNNOOO=01110000 (0x70 or 112)	[-351] *
NNNOOP=01110001 (0x71 or 113)	[-350] *
NNNOPN=01110110 (0x76 or 118)	[-349] *
NNNOPO=01110100 (0x74 or 116)	[-348] *
NNNOPP=01110101 (0x75 or 117)	[-347] *
NNNPNN=00011110 (0x1E or 30)	[-346] *
NNNPNO=00011100 (0x1C or 28)	[-345] *
NNNPNP=00011101 (0x1D or 29)	[-344] *
NNNPON=01111110 (0x7E or 126)	[-343] *
NNNPOO=01111100 (0x7C or 124)	[-342] *
NNNPOP=01111101 (0x7D or 125)	[-341] *
NNNPPN=01011110 (0x5E or 94)	[-340] *
NNNPPO=01011100 (0x5C or 92)	[-339] *
NNNPPP=01011101 (0x5D or 93)	[-338] *
NNONNN=00101010 (0x2A or 42)	[-337] *
NNONNO=00101000 (0x28 or 40)	[-336] *
NNONNP=00101001 (0x29 or 41)	[-335] *
NNONON=00100010 (0x22 or 34)	[-334] *
NNONOO=00100000 (0x20 or 32)	[-333] *
NNONOP=00100001 (0x21 or 33)	[-332] *
NNONPN=00100110 (0x26 or 38)	[-331] *
NNONPO=00100100 (0x24 or 36)	[-330] *
NNONPP=00100101 (0x25 or 37)	[-329] *
NNOONN=00001010 (0x0A or 10)	[-328] *
NNOONO=00001000 (0x08 or 8)	[-327] *
NNOONP=00001001 (0x09 or 9)	[-326] *
NNOOON=00000010 (0x02 or 2)	[-325] *
NNOOOO=00000000 (0x00 or 0)	[-324] *
NNOOOP=00000001 (0x01 or 1)	[-323] *
NNOOPN=00000110 (0x06 or 6)	[-322] *
NNOOPO=00000100 (0x04 or 4)	[-321] *
NNOOPP=00000101 (0x05 or 5)	[-320] *
NNOPNN=00011010 (0x1A or 26)	[-319] *
NNOPNO=00011000 (0x18 or 24)	[-318] *
NNOPNP=00011001 (0x19 or 25)	[-317] *
NNOPON=00010010 (0x12 or 18)	[-316] *
NNOPOO=00010000 (0x10 or 16)	[-315] *
NNOPOP=00010001 (0x11 or 17)	[-314] *
NNOPPN=00010110 (0x16 or 22)	[-313] *
NNOPPO=00010100 (0x14 or 20)	[-312] *
NNOPPP=00010101 (0x15 or 21)	[-311] *
NNPNNN=01101010 (0x6A or 106)	[-310] *
NNPNNO=01101000 (0x68 or 104)	[-309] *
NNPNNP=01101001 (0x69 or 105)	[-308] *
NNPNON=01100010 (0x62 or 98)	[-307] *
NNPNOO=01100000 (0x60 or 96)	[-306] *
NNPNOP=01100001 (0x61 or 97)	[-305] *
NNPNPN=01100110 (0x66 or 102)	[-304] *
NNPNPO=01100100 (0x64 or 100)	[-303] *
NNPNPP=01100101 (0x65 or 101)	[-302] *
NNPONN=01001010 (0x4A or 74)	[-301] *
NNPONO=01001000 (0x48 or 72)	[-300] *
NNPONP=01001001 (0x49 or 73)	[-299] *
NNPOON=01000010 (0x42 or 66)	[-298] *
NNPOOO=01000000 (0x40 or 64)	[-297] *
NNPOOP=01000001 (0x41 or 65)	[-296] *
NNPOPN=01000110 (0x46 or 70)	[-295] *
NNPOPO=01000100 (0x44 or 68)	[-294] *
NNPOPP=01000101 (0x45 or 69)	[-293] *
NNPPNN=01011010 (0x5A or 90)	[-292] *
NNPPNO=01011000 (0x58 or 88)	[-291] *
NNPPNP=01011001 (0x59 or 89)	[-290] *
NNPPON=01010010 (0x52 or 82)	[-289] *
NNPPOO=01010000 (0x50 or 80)	[-288] *
NNPPOP=01010001 (0x51 or 81)	[-287] *
NNPPPN=01010110 (0x56 or 86)	[-286] *
NNPPPO=01010100 (0x54 or 84)	[-285] *
NNPPPP=01010101 (0x55 or 85)	[-284] *
NONNNN=00111010 (0x3A or 58)	[-364]  
NONNNO=00111000 (0x38 or 56)	[-363]  
NONNNP=00111001 (0x39 or 57)	[-362]  
NONNON=00110010 (0x32 or 50)	[-361]  
NONNOO=00110000 (0x30 or 48)	[-360]  
NONNOP=00110001 (0x31 or 49)	[-359]  
NONNPN=00110110 (0x36 or 54)	[-358]  
NONNPO=00110100 (0x34 or 52)	[-357]  
NONNPP=00110101 (0x35 or 53)	[-356]  
NONONN=01111010 (0x7A or 122)	[-355]  
NONONO=01111000 (0x78 or 120)	[-354]  
NONONP=01111001 (0x79 or 121)	[-353]  
NONOON=01110010 (0x72 or 114)	[-352]  
NONOOO=01110000 (0x70 or 112)	[-351]  
NONOOP=01110001 (0x71 or 113)	[-350]  
NONOPN=01110110 (0x76 or 118)	[-349]  
NONOPO=01110100 (0x74 or 116)	[-348]  
NONOPP=01110101 (0x75 or 117)	[-347]  
NONPNN=00011110 (0x1E or 30)	[-346]  
NONPNO=00011100 (0x1C or 28)	[-345]  
NONPNP=00011101 (0x1D or 29)	[-344]  
NONPON=01111110 (0x7E or 126)	[-343]  
NONPOO=01111100 (0x7C or 124)	[-342]  
NONPOP=01111101 (0x7D or 125)	[-341]  
NONPPN=01011110 (0x5E or 94)	[-340]  
NONPPO=01011100 (0x5C or 92)	[-339]  
NONPPP=01011101 (0x5D or 93)	[-338]  
NOONNN=00101010 (0x2A or 42)	[-337]  
NOONNO=00101000 (0x28 or 40)	[-336]  
NOONNP=00101001 (0x29 or 41)	[-335]  
NOONON=00100010 (0x22 or 34)	[-334]  
NOONOO=00100000 (0x20 or 32)	[-333]  
NOONOP=00100001 (0x21 or 33)	[-332]  
NOONPN=00100110 (0x26 or 38)	[-331]  
NOONPO=00100100 (0x24 or 36)	[-330]  
NOONPP=00100101 (0x25 or 37)	[-329]  
NOOONN=00001010 (0x0A or 10)	[-328]  
NOOONO=00001000 (0x08 or 8)	[-327]  
NOOONP=00001001 (0x09 or 9)	[-326]  
NOOOON=00000010 (0x02 or 2)	[-325]  
NOOOOO=00000000 (0x00 or 0)	[-324]  
NOOOOP=00000001 (0x01 or 1)	[-323]  
NOOOPN=00000110 (0x06 or 6)	[-322]  
NOOOPO=00000100 (0x04 or 4)	[-321]  
NOOOPP=00000101 (0x05 or 5)	[-320]  
NOOPNN=00011010 (0x1A or 26)	[-319]  
NOOPNO=00011000 (0x18 or 24)	[-318]  
NOOPNP=00011001 (0x19 or 25)	[-317]  
NOOPON=00010010 (0x12 or 18)	[-316]  
NOOPOO=00010000 (0x10 or 16)	[-315]  
NOOPOP=00010001 (0x11 or 17)	[-314]  
NOOPPN=00010110 (0x16 or 22)	[-313]  
NOOPPO=00010100 (0x14 or 20)	[-312]  
NOOPPP=00010101 (0x15 or 21)	[-311]  
NOPNNN=01101010 (0x6A or 106)	[-310]  
NOPNNO=01101000 (0x68 or 104)	[-309]  
NOPNNP=01101001 (0x69 or 105)	[-308]  
NOPNON=01100010 (0x62 or 98)	[-307]  
NOPNOO=01100000 (0x60 or 96)	[-306]  
NOPNOP=01100001 (0x61 or 97)	[-305]  
NOPNPN=01100110 (0x66 or 102)	[-304]  
NOPNPO=01100100 (0x64 or 100)	[-303]  
NOPNPP=01100101 (0x65 or 101)	[-302]  
NOPONN=01001010 (0x4A or 74)	[-301]  
NOPONO=01001000 (0x48 or 72)	[-300]  
NOPONP=01001001 (0x49 or 73)	[-299]  
NOPOON=01000010 (0x42 or 66)	[-298]  
NOPOOO=01000000 (0x40 or 64)	[-297]  
NOPOOP=01000001 (0x41 or 65)	[-296]  
NOPOPN=01000110 (0x46 or 70)	[-295]  
NOPOPO=01000100 (0x44 or 68)	[-294]  
NOPOPP=01000101 (0x45 or 69)	[-293]  
NOPPNN=01011010 (0x5A or 90)	[-292]  
NOPPNO=01011000 (0x58 or 88)	[-291]  
NOPPNP=01011001 (0x59 or 89)	[-290]  
NOPPON=01010010 (0x52 or 82)	[-289]  
NOPPOO=01010000 (0x50 or 80)	[-288]  
NOPPOP=01010001 (0x51 or 81)	[-287]  
NOPPPN=01010110 (0x56 or 86)	[-286]  
NOPPPO=01010100 (0x54 or 84)	[-285]  
NOPPPP=01010101 (0x55 or 85)	[-284]  
NPNNNN=00111010 (0x3A or 58)	[-364]  
NPNNNO=00111000 (0x38 or 56)	[-363]  
NPNNNP=00111001 (0x39 or 57)	[-362]  
NPNNON=00110010 (0x32 or 50)	[-361]  
NPNNOO=00110000 (0x30 or 48)	[-360]  
NPNNOP=00110001 (0x31 or 49)	[-359]  
NPNNPN=00110110 (0x36 or 54)	[-358]  
NPNNPO=00110100 (0x34 or 52)	[-357]  
NPNNPP=00110101 (0x35 or 53)	[-356]  
NPNONN=01111010 (0x7A or 122)	[-355]  
NPNONO=01111000 (0x78 or 120)	[-354]  
NPNONP=01111001 (0x79 or 121)	[-353]  
NPNOON=01110010 (0x72 or 114)	[-352]  
NPNOOO=01110000 (0x70 or 112)	[-351]  
NPNOOP=01110001 (0x71 or 113)	[-350]  
NPNOPN=01110110 (0x76 or 118)	[-349]  
NPNOPO=01110100 (0x74 or 116)	[-348]  
NPNOPP=01110101 (0x75 or 117)	[-347]  
NPNPNN=00011110 (0x1E or 30)	[-346]  
NPNPNO=00011100 (0x1C or 28)	[-345]  
NPNPNP=00011101 (0x1D or 29)	[-344]  
NPNPON=01111110 (0x7E or 126)	[-343]  
NPNPOO=01111100 (0x7C or 124)	[-342]  
NPNPOP=01111101 (0x7D or 125)	[-341]  
NPNPPN=01011110 (0x5E or 94)	[-340]  
NPNPPO=01011100 (0x5C or 92)	[-339]  
NPNPPP=01011101 (0x5D or 93)	[-338]  
NPONNN=00101010 (0x2A or 42)	[-337]  
NPONNO=00101000 (0x28 or 40)	[-336]  
NPONNP=00101001 (0x29 or 41)	[-335]  
NPONON=00100010 (0x22 or 34)	[-334]  
NPONOO=00100000 (0x20 or 32)	[-333]  
NPONOP=00100001 (0x21 or 33)	[-332]  
NPONPN=00100110 (0x26 or 38)	[-331]  
NPONPO=00100100 (0x24 or 36)	[-330]  
NPONPP=00100101 (0x25 or 37)	[-329]  
NPOONN=00001010 (0x0A or 10)	[-328]  
NPOONO=00001000 (0x08 or 8)	[-327]  
NPOONP=00001001 (0x09 or 9)	[-326]  
NPOOON=00000010 (0x02 or 2)	[-325]  
NPOOOO=00000000 (0x00 or 0)	[-324]  
NPOOOP=00000001 (0x01 or 1)	[-323]  
NPOOPN=00000110 (0x06 or 6)	[-322]  
NPOOPO=00000100 (0x04 or 4)	[-321]  
NPOOPP=00000101 (0x05 or 5)	[-320]  
NPOPNN=00011010 (0x1A or 26)	[-319]  
NPOPNO=00011000 (0x18 or 24)	[-318]  
NPOPNP=00011001 (0x19 or 25)	[-317]  
NPOPON=00010010 (0x12 or 18)	[-316]  
NPOPOO=00010000 (0x10 or 16)	[-315]  
NPOPOP=00010001 (0x11 or 17)	[-314]  
NPOPPN=00010110 (0x16 or 22)	[-313]  
NPOPPO=00010100 (0x14 or 20)	[-312]  
NPOPPP=00010101 (0x15 or 21)	[-311]  
NPPNNN=01101010 (0x6A or 106)	[-310]  
NPPNNO=01101000 (0x68 or 104)	[-309]  
NPPNNP=01101001 (0x69 or 105)	[-308]  
NPPNON=01100010 (0x62 or 98)	[-307]  
NPPNOO=01100000 (0x60 or 96)	[-306]  
NPPNOP=01100001 (0x61 or 97)	[-305]  
NPPNPN=01100110 (0x66 or 102)	[-304]  
NPPNPO=01100100 (0x64 or 100)	[-303]  
NPPNPP=01100101 (0x65 or 101)	[-302]  
NPPONN=01001010 (0x4A or 74)	[-301]  
NPPONO=01001000 (0x48 or 72)	[-300]  
NPPONP=01001001 (0x49 or 73)	[-299]  
NPPOON=01000010 (0x42 or 66)	[-298]  
NPPOOO=01000000 (0x40 or 64)	[-297]  
NPPOOP=01000001 (0x41 or 65)	[-296]  
NPPOPN=01000110 (0x46 or 70)	[-295]  
NPPOPO=01000100 (0x44 or 68)	[-294]  
NPPOPP=01000101 (0x45 or 69)	[-293]  
NPPPNN=01011010 (0x5A or 90)	[-292]  
NPPPNO=01011000 (0x58 or 88)	[-291]  
NPPPNP=01011001 (0x59 or 89)	[-290]  
NPPPON=01010010 (0x52 or 82)	[-289]  
NPPPOO=01010000 (0x50 or 80)	[-288]  
NPPPOP=01010001 (0x51 or 81)	[-287]  
NPPPPN=01010110 (0x56 or 86)	[-286]  
NPPPPO=01010100 (0x54 or 84)	[-285]  
NPPPPP=01010101 (0x55 or 85)	[-284]  
ONNNNN=00101010 (0x2A or 42)	[-337]  
ONNNNO=00101000 (0x28 or 40)	[-336]  
ONNNNP=00101001 (0x29 or 41)	[-335]  
ONNNON=00100010 (0x22 or 34)	[-334]  
ONNNOO=00100000 (0x20 or 32)	[-333]  
ONNNOP=00100001 (0x21 or 33)	[-332]  
ONNNPN=00100110 (0x26 or 38)	[-331]  
ONNNPO=00100100 (0x24 or 36)	[-330]  
ONNNPP=00100101 (0x25 or 37)	[-329]  
ONNONN=01101010 (0x6A or 106)	[-310]  
ONNONO=01101000 (0x68 or 104)	[-309]  
ONNONP=01101001 (0x69 or 105)	[-308]  
ONNOON=01100010 (0x62 or 98)	[-307]  
ONNOOO=01100000 (0x60 or 96)	[-306]  
ONNOOP=01100001 (0x61 or 97)	[-305]  
ONNOPN=01100110 (0x66 or 102)	[-304]  
ONNOPO=01100100 (0x64 or 100)	[-303]  
ONNOPP=01100101 (0x65 or 101)	[-302]  
ONNPNN=00001110 (0x0E or 14)	[-103] *
ONNPNO=00001100 (0x0C or 12)	[-102] *
ONNPNP=00001101 (0x0D or 13)	[-101] *
ONNPON=01101110 (0x6E or 110)	[-100] *
ONNPOO=01101100 (0x6C or 108)	[-99] *
ONNPOP=01101101 (0x6D or 109)	[-98] *
ONNPPN=01001110 (0x4E or 78)	[-97] *
ONNPPO=01001100 (0x4C or 76)	[-96] *
ONNPPP=01001101 (0x4D or 77)	[-95] *
ONONNN=00101010 (0x2A or 42)	[-337]  
ONONNO=00101000 (0x28 or 40)	[-336]  
ONONNP=00101001 (0x29 or 41)	[-335]  
ONONON=00100010 (0x22 or 34)	[-334]  
ONONOO=00100000 (0x20 or 32)	[-333]  
ONONOP=00100001 (0x21 or 33)	[-332]  
ONONPN=00100110 (0x26 or 38)	[-331]  
ONONPO=00100100 (0x24 or 36)	[-330]  
ONONPP=00100101 (0x25 or 37)	[-329]  
ONOONN=00001010 (0x0A or 10)	[-328]  
ONOONO=00001000 (0x08 or 8)	[-327]  
ONOONP=00001001 (0x09 or 9)	[-326]  
ONOOON=00000010 (0x02 or 2)	[-325]  
ONOOOO=00000000 (0x00 or 0)	[-324]  
ONOOOP=00000001 (0x01 or 1)	[-323]  
ONOOPN=00000110 (0x06 or 6)	[-322]  
ONOOPO=00000100 (0x04 or 4)	[-321]  
ONOOPP=00000101 (0x05 or 5)	[-320]  
ONOPNN=00001010 (0x0A or 10)	[-328]  
ONOPNO=00001000 (0x08 or 8)	[-327]  
ONOPNP=00001001 (0x09 or 9)	[-326]  
ONOPON=00000010 (0x02 or 2)	[-325]  
ONOPOO=00000000 (0x00 or 0)	[-324]  
ONOPOP=00000001 (0x01 or 1)	[-323]  
ONOPPN=00000110 (0x06 or 6)	[-322]  
ONOPPO=00000100 (0x04 or 4)	[-321]  
ONOPPP=00000101 (0x05 or 5)	[-320]  
ONPNNN=01101010 (0x6A or 106)	[-310]  
ONPNNO=01101000 (0x68 or 104)	[-309]  
ONPNNP=01101001 (0x69 or 105)	[-308]  
ONPNON=01100010 (0x62 or 98)	[-307]  
ONPNOO=01100000 (0x60 or 96)	[-306]  
ONPNOP=01100001 (0x61 or 97)	[-305]  
ONPNPN=01100110 (0x66 or 102)	[-304]  
ONPNPO=01100100 (0x64 or 100)	[-303]  
ONPNPP=01100101 (0x65 or 101)	[-302]  
ONPONN=01001010 (0x4A or 74)	[-301]  
ONPONO=01001000 (0x48 or 72)	[-300]  
ONPONP=01001001 (0x49 or 73)	[-299]  
ONPOON=01000010 (0x42 or 66)	[-298]  
ONPOOO=01000000 (0x40 or 64)	[-297]  
ONPOOP=01000001 (0x41 or 65)	[-296]  
ONPOPN=01000110 (0x46 or 70)	[-295]  
ONPOPO=01000100 (0x44 or 68)	[-294]  
ONPOPP=01000101 (0x45 or 69)	[-293]  
ONPPNN=01001010 (0x4A or 74)	[-301]  
ONPPNO=01001000 (0x48 or 72)	[-300]  
ONPPNP=01001001 (0x49 or 73)	[-299]  
ONPPON=01000010 (0x42 or 66)	[-298]  
ONPPOO=01000000 (0x40 or 64)	[-297]  
ONPPOP=01000001 (0x41 or 65)	[-296]  
ONPPPN=01000110 (0x46 or 70)	[-295]  
ONPPPO=01000100 (0x44 or 68)	[-294]  
ONPPPP=01000101 (0x45 or 69)	[-293]  
OONNNN=00101010 (0x2A or 42)	[-337]  
OONNNO=00101000 (0x28 or 40)	[-336]  
OONNNP=00101001 (0x29 or 41)	[-335]  
OONNON=00100010 (0x22 or 34)	[-334]  
OONNOO=00100000 (0x20 or 32)	[-333]  
OONNOP=00100001 (0x21 or 33)	[-332]  
OONNPN=00100110 (0x26 or 38)	[-331]  
OONNPO=00100100 (0x24 or 36)	[-330]  
OONNPP=00100101 (0x25 or 37)	[-329]  
OONONN=01101010 (0x6A or 106)	[-310]  
OONONO=01101000 (0x68 or 104)	[-309]  
OONONP=01101001 (0x69 or 105)	[-308]  
OONOON=01100010 (0x62 or 98)	[-307]  
OONOOO=01100000 (0x60 or 96)	[-306]  
OONOOP=01100001 (0x61 or 97)	[-305]  
OONOPN=01100110 (0x66 or 102)	[-304]  
OONOPO=01100100 (0x64 or 100)	[-303]  
OONOPP=01100101 (0x65 or 101)	[-302]  
OONPNN=00001110 (0x0E or 14)	[-103]  
OONPNO=00001100 (0x0C or 12)	[-102]  
OONPNP=00001101 (0x0D or 13)	[-101]  
OONPON=01101110 (0x6E or 110)	[-100]  
OONPOO=01101100 (0x6C or 108)	[-99]  
OONPOP=01101101 (0x6D or 109)	[-98]  
OONPPN=01001110 (0x4E or 78)	[-97]  
OONPPO=01001100 (0x4C or 76)	[-96]  
OONPPP=01001101 (0x4D or 77)	[-95]  
OOONNN=00101010 (0x2A or 42)	[-337]  
OOONNO=00101000 (0x28 or 40)	[-336]  
OOONNP=00101001 (0x29 or 41)	[-335]  
OOONON=00100010 (0x22 or 34)	[-334]  
OOONOO=00100000 (0x20 or 32)	[-333]  
OOONOP=00100001 (0x21 or 33)	[-332]  
OOONPN=00100110 (0x26 or 38)	[-331]  
OOONPO=00100100 (0x24 or 36)	[-330]  
OOONPP=00100101 (0x25 or 37)	[-329]  
OOOONN=00001010 (0x0A or 10)	[-328]  
OOOONO=00001000 (0x08 or 8)	[-327]  
OOOONP=00001001 (0x09 or 9)	[-326]  
OOOOON=00000010 (0x02 or 2)	[-325]  
OOOOOO=00000000 (0x00 or 0)	[-324]  
OOOOOP=00000001 (0x01 or 1)	[-323]  
OOOOPN=00000110 (0x06 or 6)	[-322]  
OOOOPO=00000100 (0x04 or 4)	[-321]  
OOOOPP=00000101 (0x05 or 5)	[-320]  
OOOPNN=00001010 (0x0A or 10)	[-328]  
OOOPNO=00001000 (0x08 or 8)	[-327]  
OOOPNP=00001001 (0x09 or 9)	[-326]  
OOOPON=00000010 (0x02 or 2)	[-325]  
OOOPOO=00000000 (0x00 or 0)	[-324]  
OOOPOP=00000001 (0x01 or 1)	[-323]  
OOOPPN=00000110 (0x06 or 6)	[-322]  
OOOPPO=00000100 (0x04 or 4)	[-321]  
OOOPPP=00000101 (0x05 or 5)	[-320]  
OOPNNN=01101010 (0x6A or 106)	[-310]  
OOPNNO=01101000 (0x68 or 104)	[-309]  
OOPNNP=01101001 (0x69 or 105)	[-308]  
OOPNON=01100010 (0x62 or 98)	[-307]  
OOPNOO=01100000 (0x60 or 96)	[-306]  
OOPNOP=01100001 (0x61 or 97)	[-305]  
OOPNPN=01100110 (0x66 or 102)	[-304]  
OOPNPO=01100100 (0x64 or 100)	[-303]  
OOPNPP=01100101 (0x65 or 101)	[-302]  
OOPONN=01001010 (0x4A or 74)	[-301]  
OOPONO=01001000 (0x48 or 72)	[-300]  
OOPONP=01001001 (0x49 or 73)	[-299]  
OOPOON=01000010 (0x42 or 66)	[-298]  
OOPOOO=01000000 (0x40 or 64)	[-297]  
OOPOOP=01000001 (0x41 or 65)	[-296]  
OOPOPN=01000110 (0x46 or 70)	[-295]  
OOPOPO=01000100 (0x44 or 68)	[-294]  
OOPOPP=01000101 (0x45 or 69)	[-293]  
OOPPNN=01001010 (0x4A or 74)	[-301]  
OOPPNO=01001000 (0x48 or 72)	[-300]  
OOPPNP=01001001 (0x49 or 73)	[-299]  
OOPPON=01000010 (0x42 or 66)	[-298]  
OOPPOO=01000000 (0x40 or 64)	[-297]  
OOPPOP=01000001 (0x41 or 65)	[-296]  
OOPPPN=01000110 (0x46 or 70)	[-295]  
OOPPPO=01000100 (0x44 or 68)	[-294]  
OOPPPP=01000101 (0x45 or 69)	[-293]  
OPNNNN=00101010 (0x2A or 42)	[-337]  
OPNNNO=00101000 (0x28 or 40)	[-336]  
OPNNNP=00101001 (0x29 or 41)	[-335]  
OPNNON=00100010 (0x22 or 34)	[-334]  
OPNNOO=00100000 (0x20 or 32)	[-333]  
OPNNOP=00100001 (0x21 or 33)	[-332]  
OPNNPN=00100110 (0x26 or 38)	[-331]  
OPNNPO=00100100 (0x24 or 36)	[-330]  
OPNNPP=00100101 (0x25 or 37)	[-329]  
OPNONN=00101010 (0x2A or 42)	[-337]  
OPNONO=00101000 (0x28 or 40)	[-336]  
OPNONP=00101001 (0x29 or 41)	[-335]  
OPNOON=00100010 (0x22 or 34)	[-334]  
OPNOOO=00100000 (0x20 or 32)	[-333]  
OPNOOP=00100001 (0x21 or 33)	[-332]  
OPNOPN=00100110 (0x26 or 38)	[-331]  
OPNOPO=00100100 (0x24 or 36)	[-330]  
OPNOPP=00100101 (0x25 or 37)	[-329]  
OPNPNN=00001110 (0x0E or 14)	[-103]  
OPNPNO=00001100 (0x0C or 12)	[-102]  
OPNPNP=00001101 (0x0D or 13)	[-101]  
OPNPON=00101110 (0x2E or 46)	[62] *
OPNPOO=00101100 (0x2C or 44)	[63] *
OPNPOP=00101101 (0x2D or 45)	[64] *
OPNPPN=00001110 (0x0E or 14)	[-103]  
OPNPPO=00001100 (0x0C or 12)	[-102]  
OPNPPP=00001101 (0x0D or 13)	[-101]  
OPONNN=00101010 (0x2A or 42)	[-337]  
OPONNO=00101000 (0x28 or 40)	[-336]  
OPONNP=00101001 (0x29 or 41)	[-335]  
OPONON=00100010 (0x22 or 34)	[-334]  
OPONOO=00100000 (0x20 or 32)	[-333]  
OPONOP=00100001 (0x21 or 33)	[-332]  
OPONPN=00100110 (0x26 or 38)	[-331]  
OPONPO=00100100 (0x24 or 36)	[-330]  
OPONPP=00100101 (0x25 or 37)	[-329]  
OPOONN=00001010 (0x0A or 10)	[-328]  
OPOONO=00001000 (0x08 or 8)	[-327]  
OPOONP=00001001 (0x09 or 9)	[-326]  
OPOOON=00000010 (0x02 or 2)	[-325]  
OPOOOO=00000000 (0x00 or 0)	[-324]  
OPOOOP=00000001 (0x01 or 1)	[-323]  
OPOOPN=00000110 (0x06 or 6)	[-322]  
OPOOPO=00000100 (0x04 or 4)	[-321]  
OPOOPP=00000101 (0x05 or 5)	[-320]  
OPOPNN=00001010 (0x0A or 10)	[-328]  
OPOPNO=00001000 (0x08 or 8)	[-327]  
OPOPNP=00001001 (0x09 or 9)	[-326]  
OPOPON=00000010 (0x02 or 2)	[-325]  
OPOPOO=00000000 (0x00 or 0)	[-324]  
OPOPOP=00000001 (0x01 or 1)	[-323]  
OPOPPN=00000110 (0x06 or 6)	[-322]  
OPOPPO=00000100 (0x04 or 4)	[-321]  
OPOPPP=00000101 (0x05 or 5)	[-320]  
OPPNNN=00101010 (0x2A or 42)	[-337]  
OPPNNO=00101000 (0x28 or 40)	[-336]  
OPPNNP=00101001 (0x29 or 41)	[-335]  
OPPNON=00100010 (0x22 or 34)	[-334]  
OPPNOO=00100000 (0x20 or 32)	[-333]  
OPPNOP=00100001 (0x21 or 33)	[-332]  
OPPNPN=00100110 (0x26 or 38)	[-331]  
OPPNPO=00100100 (0x24 or 36)	[-330]  
OPPNPP=00100101 (0x25 or 37)	[-329]  
OPPONN=00001010 (0x0A or 10)	[-328]  
OPPONO=00001000 (0x08 or 8)	[-327]  
OPPONP=00001001 (0x09 or 9)	[-326]  
OPPOON=00000010 (0x02 or 2)	[-325]  
OPPOOO=00000000 (0x00 or 0)	[-324]  
OPPOOP=00000001 (0x01 or 1)	[-323]  
OPPOPN=00000110 (0x06 or 6)	[-322]  
OPPOPO=00000100 (0x04 or 4)	[-321]  
OPPOPP=00000101 (0x05 or 5)	[-320]  
OPPPNN=00001010 (0x0A or 10)	[-328]  
OPPPNO=00001000 (0x08 or 8)	[-327]  
OPPPNP=00001001 (0x09 or 9)	[-326]  
OPPPON=00000010 (0x02 or 2)	[-325]  
OPPPOO=00000000 (0x00 or 0)	[-324]  
OPPPOP=00000001 (0x01 or 1)	[-323]  
OPPPPN=00000110 (0x06 or 6)	[-322]  
OPPPPO=00000100 (0x04 or 4)	[-321]  
OPPPPP=00000101 (0x05 or 5)	[-320]  
PNNNNN=00111011 (0x3B or 59)	[122] *
PNNNNO=00111000 (0x38 or 56)	[-363]  
PNNNNP=00111001 (0x39 or 57)	[-362]  
PNNNON=00110011 (0x33 or 51)	[125] *
PNNNOO=00110000 (0x30 or 48)	[-360]  
PNNNOP=00110001 (0x31 or 49)	[-359]  
PNNNPN=00110111 (0x37 or 55)	[128] *
PNNNPO=00110100 (0x34 or 52)	[-357]  
PNNNPP=00110101 (0x35 or 53)	[-356]  
PNNONN=01111011 (0x7B or 123)	[131] *
PNNONO=01111000 (0x78 or 120)	[-354]  
PNNONP=01111001 (0x79 or 121)	[-353]  
PNNOON=01110011 (0x73 or 115)	[134] *
PNNOOO=01110000 (0x70 or 112)	[-351]  
PNNOOP=01110001 (0x71 or 113)	[-350]  
PNNOPN=01110111 (0x77 or 119)	[137] *
PNNOPO=01110100 (0x74 or 116)	[-348]  
PNNOPP=01110101 (0x75 or 117)	[-347]  
PNNPNN=00011111 (0x1F or 31)	[140] *
PNNPNO=00011100 (0x1C or 28)	[-345]  
PNNPNP=00011101 (0x1D or 29)	[-344]  
PNNPON=01111111 (0x7F or 127)	[143] *
PNNPOO=01111100 (0x7C or 124)	[-342]  
PNNPOP=01111101 (0x7D or 125)	[-341]  
PNNPPN=01011111 (0x5F or 95)	[146] *
PNNPPO=01011100 (0x5C or 92)	[-339]  
PNNPPP=01011101 (0x5D or 93)	[-338]  
PNONNN=00101011 (0x2B or 43)	[149] *
PNONNO=00101000 (0x28 or 40)	[-336]  
PNONNP=00101001 (0x29 or 41)	[-335]  
PNONON=00100011 (0x23 or 35)	[152] *
PNONOO=00100000 (0x20 or 32)	[-333]  
PNONOP=00100001 (0x21 or 33)	[-332]  
PNONPN=00100111 (0x27 or 39)	[155] *
PNONPO=00100100 (0x24 or 36)	[-330]  
PNONPP=00100101 (0x25 or 37)	[-329]  
PNOONN=00001011 (0x0B or 11)	[158] *
PNOONO=00001000 (0x08 or 8)	[-327]  
PNOONP=00001001 (0x09 or 9)	[-326]  
PNOOON=00000011 (0x03 or 3)	[161] *
PNOOOO=00000000 (0x00 or 0)	[-324]  
PNOOOP=00000001 (0x01 or 1)	[-323]  
PNOOPN=00000111 (0x07 or 7)	[164] *
PNOOPO=00000100 (0x04 or 4)	[-321]  
PNOOPP=00000101 (0x05 or 5)	[-320]  
PNOPNN=00011011 (0x1B or 27)	[167] *
PNOPNO=00011000 (0x18 or 24)	[-318]  
PNOPNP=00011001 (0x19 or 25)	[-317]  
PNOPON=00010011 (0x13 or 19)	[170] *
PNOPOO=00010000 (0x10 or 16)	[-315]  
PNOPOP=00010001 (0x11 or 17)	[-314]  
PNOPPN=00010111 (0x17 or 23)	[173] *
PNOPPO=00010100 (0x14 or 20)	[-312]  
PNOPPP=00010101 (0x15 or 21)	[-311]  
PNPNNN=01101011 (0x6B or 107)	[176] *
PNPNNO=01101000 (0x68 or 104)	[-309]  
PNPNNP=01101001 (0x69 or 105)	[-308]  
PNPNON=01100011 (0x63 or 99)	[179] *
PNPNOO=01100000 (0x60 or 96)	[-306]  
PNPNOP=01100001 (0x61 or 97)	[-305]  
PNPNPN=01100111 (0x67 or 103)	[182] *
PNPNPO=01100100 (0x64 or 100)	[-303]  
PNPNPP=01100101 (0x65 or 101)	[-302]  
PNPONN=01001011 (0x4B or 75)	[185] *
PNPONO=01001000 (0x48 or 72)	[-300]  
PNPONP=01001001 (0x49 or 73)	[-299]  
PNPOON=01000011 (0x43 or 67)	[188] *
PNPOOO=01000000 (0x40 or 64)	[-297]  
PNPOOP=01000001 (0x41 or 65)	[-296]  
PNPOPN=01000111 (0x47 or 71)	[191] *
PNPOPO=01000100 (0x44 or 68)	[-294]  
PNPOPP=01000101 (0x45 or 69)	[-293]  
PNPPNN=01011011 (0x5B or 91)	[194] *
PNPPNO=01011000 (0x58 or 88)	[-291]  
PNPPNP=01011001 (0x59 or 89)	[-290]  
PNPPON=01010011 (0x53 or 83)	[197] *
PNPPOO=01010000 (0x50 or 80)	[-288]  
PNPPOP=01010001 (0x51 or 81)	[-287]  
PNPPPN=01010111 (0x57 or 87)	[200] *
PNPPPO=01010100 (0x54 or 84)	[-285]  
PNPPPP=01010101 (0x55 or 85)	[-284]  
PONNNN=00101011 (0x2B or 43)	[149]  
PONNNO=00101000 (0x28 or 40)	[-336]  
PONNNP=00101001 (0x29 or 41)	[-335]  
PONNON=00100011 (0x23 or 35)	[152]  
PONNOO=00100000 (0x20 or 32)	[-333]  
PONNOP=00100001 (0x21 or 33)	[-332]  
PONNPN=00100111 (0x27 or 39)	[155]  
PONNPO=00100100 (0x24 or 36)	[-330]  
PONNPP=00100101 (0x25 or 37)	[-329]  
PONONN=01101011 (0x6B or 107)	[176]  
PONONO=01101000 (0x68 or 104)	[-309]  
PONONP=01101001 (0x69 or 105)	[-308]  
PONOON=01100011 (0x63 or 99)	[179]  
PONOOO=01100000 (0x60 or 96)	[-306]  
PONOOP=01100001 (0x61 or 97)	[-305]  
PONOPN=01100111 (0x67 or 103)	[182]  
PONOPO=01100100 (0x64 or 100)	[-303]  
PONOPP=01100101 (0x65 or 101)	[-302]  
PONPNN=00001111 (0x0F or 15)	[221] *
PONPNO=00001100 (0x0C or 12)	[-102]  
PONPNP=00001101 (0x0D or 13)	[-101]  
PONPON=01101111 (0x6F or 111)	[224] *
PONPOO=01101100 (0x6C or 108)	[-99]  
PONPOP=01101101 (0x6D or 109)	[-98]  
PONPPN=01001111 (0x4F or 79)	[227] *
PONPPO=01001100 (0x4C or 76)	[-96]  
PONPPP=01001101 (0x4D or 77)	[-95]  
POONNN=00101011 (0x2B or 43)	[149]  
POONNO=00101000 (0x28 or 40)	[-336]  
POONNP=00101001 (0x29 or 41)	[-335]  
POONON=00100011 (0x23 or 35)	[152]  
POONOO=00100000 (0x20 or 32)	[-333]  
POONOP=00100001 (0x21 or 33)	[-332]  
POONPN=00100111 (0x27 or 39)	[155]  
POONPO=00100100 (0x24 or 36)	[-330]  
POONPP=00100101 (0x25 or 37)	[-329]  
POOONN=00001011 (0x0B or 11)	[158]  
POOONO=00001000 (0x08 or 8)	[-327]  
POOONP=00001001 (0x09 or 9)	[-326]  
POOOON=00000011 (0x03 or 3)	[161]  
POOOOO=00000000 (0x00 or 0)	[-324]  
POOOOP=00000001 (0x01 or 1)	[-323]  
POOOPN=00000111 (0x07 or 7)	[164]  
POOOPO=00000100 (0x04 or 4)	[-321]  
POOOPP=00000101 (0x05 or 5)	[-320]  
POOPNN=00001011 (0x0B or 11)	[158]  
POOPNO=00001000 (0x08 or 8)	[-327]  
POOPNP=00001001 (0x09 or 9)	[-326]  
POOPON=00000011 (0x03 or 3)	[161]  
POOPOO=00000000 (0x00 or 0)	[-324]  
POOPOP=00000001 (0x01 or 1)	[-323]  
POOPPN=00000111 (0x07 or 7)	[164]  
POOPPO=00000100 (0x04 or 4)	[-321]  
POOPPP=00000101 (0x05 or 5)	[-320]  
POPNNN=01101011 (0x6B or 107)	[176]  
POPNNO=01101000 (0x68 or 104)	[-309]  
POPNNP=01101001 (0x69 or 105)	[-308]  
POPNON=01100011 (0x63 or 99)	[179]  
POPNOO=01100000 (0x60 or 96)	[-306]  
POPNOP=01100001 (0x61 or 97)	[-305]  
POPNPN=01100111 (0x67 or 103)	[182]  
POPNPO=01100100 (0x64 or 100)	[-303]  
POPNPP=01100101 (0x65 or 101)	[-302]  
POPONN=01001011 (0x4B or 75)	[185]  
POPONO=01001000 (0x48 or 72)	[-300]  
POPONP=01001001 (0x49 or 73)	[-299]  
POPOON=01000011 (0x43 or 67)	[188]  
POPOOO=01000000 (0x40 or 64)	[-297]  
POPOOP=01000001 (0x41 or 65)	[-296]  
POPOPN=01000111 (0x47 or 71)	[191]  
POPOPO=01000100 (0x44 or 68)	[-294]  
POPOPP=01000101 (0x45 or 69)	[-293]  
POPPNN=01001011 (0x4B or 75)	[185]  
POPPNO=01001000 (0x48 or 72)	[-300]  
POPPNP=01001001 (0x49 or 73)	[-299]  
POPPON=01000011 (0x43 or 67)	[188]  
POPPOO=01000000 (0x40 or 64)	[-297]  
POPPOP=01000001 (0x41 or 65)	[-296]  
POPPPN=01000111 (0x47 or 71)	[191]  
POPPPO=01000100 (0x44 or 68)	[-294]  
POPPPP=01000101 (0x45 or 69)	[-293]  
PPNNNN=00111010 (0x3A or 58)	[-364]  
PPNNNO=00111000 (0x38 or 56)	[-363]  
PPNNNP=00111001 (0x39 or 57)	[-362]  
PPNNON=00110010 (0x32 or 50)	[-361]  
PPNNOO=00110000 (0x30 or 48)	[-360]  
PPNNOP=00110001 (0x31 or 49)	[-359]  
PPNNPN=00110110 (0x36 or 54)	[-358]  
PPNNPO=00110100 (0x34 or 52)	[-357]  
PPNNPP=00110101 (0x35 or 53)	[-356]  
PPNONN=01111010 (0x7A or 122)	[-355]  
PPNONO=01111000 (0x78 or 120)	[-354]  
PPNONP=01111001 (0x79 or 121)	[-353]  
PPNOON=01110010 (0x72 or 114)	[-352]  
PPNOOO=01110000 (0x70 or 112)	[-351]  
PPNOOP=01110001 (0x71 or 113)	[-350]  
PPNOPN=01110110 (0x76 or 118)	[-349]  
PPNOPO=01110100 (0x74 or 116)	[-348]  
PPNOPP=01110101 (0x75 or 117)	[-347]  
PPNPNN=00011110 (0x1E or 30)	[-346]  
PPNPNO=00011100 (0x1C or 28)	[-345]  
PPNPNP=00011101 (0x1D or 29)	[-344]  
PPNPON=01111110 (0x7E or 126)	[-343]  
PPNPOO=01111100 (0x7C or 124)	[-342]  
PPNPOP=01111101 (0x7D or 125)	[-341]  
PPNPPN=01011110 (0x5E or 94)	[-340]  
PPNPPO=01011100 (0x5C or 92)	[-339]  
PPNPPP=01011101 (0x5D or 93)	[-338]  
PPONNN=00101010 (0x2A or 42)	[-337]  
PPONNO=00101000 (0x28 or 40)	[-336]  
PPONNP=00101001 (0x29 or 41)	[-335]  
PPONON=00100010 (0x22 or 34)	[-334]  
PPONOO=00100000 (0x20 or 32)	[-333]  
PPONOP=00100001 (0x21 or 33)	[-332]  
PPONPN=00100110 (0x26 or 38)	[-331]  
PPONPO=00100100 (0x24 or 36)	[-330]  
PPONPP=00100101 (0x25 or 37)	[-329]  
PPOONN=00001010 (0x0A or 10)	[-328]  
PPOONO=00001000 (0x08 or 8)	[-327]  
PPOONP=00001001 (0x09 or 9)	[-326]  
PPOOON=00000010 (0x02 or 2)	[-325]  
PPOOOO=00000000 (0x00 or 0)	[-324]  
PPOOOP=00000001 (0x01 or 1)	[-323]  
PPOOPN=00000110 (0x06 or 6)	[-322]  
PPOOPO=00000100 (0x04 or 4)	[-321]  
PPOOPP=00000101 (0x05 or 5)	[-320]  
PPOPNN=00011010 (0x1A or 26)	[-319]  
PPOPNO=00011000 (0x18 or 24)	[-318]  
PPOPNP=00011001 (0x19 or 25)	[-317]  
PPOPON=00010010 (0x12 or 18)	[-316]  
PPOPOO=00010000 (0x10 or 16)	[-315]  
PPOPOP=00010001 (0x11 or 17)	[-314]  
PPOPPN=00010110 (0x16 or 22)	[-313]  
PPOPPO=00010100 (0x14 or 20)	[-312]  
PPOPPP=00010101 (0x15 or 21)	[-311]  
PPPNNN=01101010 (0x6A or 106)	[-310]  
PPPNNO=01101000 (0x68 or 104)	[-309]  
PPPNNP=01101001 (0x69 or 105)	[-308]  
PPPNON=01100010 (0x62 or 98)	[-307]  
PPPNOO=01100000 (0x60 or 96)	[-306]  
PPPNOP=01100001 (0x61 or 97)	[-305]  
PPPNPN=01100110 (0x66 or 102)	[-304]  
PPPNPO=01100100 (0x64 or 100)	[-303]  
PPPNPP=01100101 (0x65 or 101)	[-302]  
PPPONN=01001010 (0x4A or 74)	[-301]  
PPPONO=01001000 (0x48 or 72)	[-300]  
PPPONP=01001001 (0x49 or 73)	[-299]  
PPPOON=01000010 (0x42 or 66)	[-298]  
PPPOOO=01000000 (0x40 or 64)	[-297]  
PPPOOP=01000001 (0x41 or 65)	[-296]  
PPPOPN=01000110 (0x46 or 70)	[-295]  
PPPOPO=01000100 (0x44 or 68)	[-294]  
PPPOPP=01000101 (0x45 or 69)	[-293]  
PPPPNN=01011010 (0x5A or 90)	[-292]  
PPPPNO=01011000 (0x58 or 88)	[-291]  
PPPPNP=01011001 (0x59 or 89)	[-290]  
PPPPON=01010010 (0x52 or 82)	[-289]  
PPPPOO=01010000 (0x50 or 80)	[-288]  
PPPPOP=01010001 (0x51 or 81)	[-287]  
PPPPPN=01010110 (0x56 or 86)	[-286]  
PPPPPO=01010100 (0x54 or 84)	[-285]  
PPPPPP=01010101 (0x55 or 85)	[-284]  

0x2F (47) not covered
0x3C (60) not covered
0x3D (61) not covered
0x3E (62) not covered
0x3F (63) not covered

Covered 123 cells (96.09%)

Покрыто 123 ячейки из 128 (96.09%)

(звёздочкой помечены ячейки, встречающиеся первый раз - мне важно было убедиться, что они идут последовательно и не перемешиваются в начале памяти и в последних 81 словах)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Микросхема троичного микроконтроллера Triador3000

Post by Shaos »

2 блока с 128 ячейками (всего 256):

 2блока

Code: Select all

NNNNNN=10111010 (0xBA or 186)	[-364] *
NNNNNO=10111000 (0xB8 or 184)	[-363] *
NNNNNP=10111001 (0xB9 or 185)	[-362] *
NNNNON=10110010 (0xB2 or 178)	[-361] *
NNNNOO=10110000 (0xB0 or 176)	[-360] *
NNNNOP=10110001 (0xB1 or 177)	[-359] *
NNNNPN=10110110 (0xB6 or 182)	[-358] *
NNNNPO=10110100 (0xB4 or 180)	[-357] *
NNNNPP=10110101 (0xB5 or 181)	[-356] *
NNNONN=11111010 (0xFA or 250)	[-355] *
NNNONO=11111000 (0xF8 or 248)	[-354] *
NNNONP=11111001 (0xF9 or 249)	[-353] *
NNNOON=11110010 (0xF2 or 242)	[-352] *
NNNOOO=11110000 (0xF0 or 240)	[-351] *
NNNOOP=11110001 (0xF1 or 241)	[-350] *
NNNOPN=11110110 (0xF6 or 246)	[-349] *
NNNOPO=11110100 (0xF4 or 244)	[-348] *
NNNOPP=11110101 (0xF5 or 245)	[-347] *
NNNPNN=10011110 (0x9E or 158)	[-346] *
NNNPNO=10011100 (0x9C or 156)	[-345] *
NNNPNP=10011101 (0x9D or 157)	[-344] *
NNNPON=11111110 (0xFE or 254)	[-343] *
NNNPOO=11111100 (0xFC or 252)	[-342] *
NNNPOP=11111101 (0xFD or 253)	[-341] *
NNNPPN=11011110 (0xDE or 222)	[-340] *
NNNPPO=11011100 (0xDC or 220)	[-339] *
NNNPPP=11011101 (0xDD or 221)	[-338] *
NNONNN=10101010 (0xAA or 170)	[-337] *
NNONNO=10101000 (0xA8 or 168)	[-336] *
NNONNP=10101001 (0xA9 or 169)	[-335] *
NNONON=10100010 (0xA2 or 162)	[-334] *
NNONOO=10100000 (0xA0 or 160)	[-333] *
NNONOP=10100001 (0xA1 or 161)	[-332] *
NNONPN=10100110 (0xA6 or 166)	[-331] *
NNONPO=10100100 (0xA4 or 164)	[-330] *
NNONPP=10100101 (0xA5 or 165)	[-329] *
NNOONN=10001010 (0x8A or 138)	[-328] *
NNOONO=10001000 (0x88 or 136)	[-327] *
NNOONP=10001001 (0x89 or 137)	[-326] *
NNOOON=10000010 (0x82 or 130)	[-325] *
NNOOOO=10000000 (0x80 or 128)	[-324] *
NNOOOP=10000001 (0x81 or 129)	[-323] *
NNOOPN=10000110 (0x86 or 134)	[-322] *
NNOOPO=10000100 (0x84 or 132)	[-321] *
NNOOPP=10000101 (0x85 or 133)	[-320] *
NNOPNN=10011010 (0x9A or 154)	[-319] *
NNOPNO=10011000 (0x98 or 152)	[-318] *
NNOPNP=10011001 (0x99 or 153)	[-317] *
NNOPON=10010010 (0x92 or 146)	[-316] *
NNOPOO=10010000 (0x90 or 144)	[-315] *
NNOPOP=10010001 (0x91 or 145)	[-314] *
NNOPPN=10010110 (0x96 or 150)	[-313] *
NNOPPO=10010100 (0x94 or 148)	[-312] *
NNOPPP=10010101 (0x95 or 149)	[-311] *
NNPNNN=11101010 (0xEA or 234)	[-310] *
NNPNNO=11101000 (0xE8 or 232)	[-309] *
NNPNNP=11101001 (0xE9 or 233)	[-308] *
NNPNON=11100010 (0xE2 or 226)	[-307] *
NNPNOO=11100000 (0xE0 or 224)	[-306] *
NNPNOP=11100001 (0xE1 or 225)	[-305] *
NNPNPN=11100110 (0xE6 or 230)	[-304] *
NNPNPO=11100100 (0xE4 or 228)	[-303] *
NNPNPP=11100101 (0xE5 or 229)	[-302] *
NNPONN=11001010 (0xCA or 202)	[-301] *
NNPONO=11001000 (0xC8 or 200)	[-300] *
NNPONP=11001001 (0xC9 or 201)	[-299] *
NNPOON=11000010 (0xC2 or 194)	[-298] *
NNPOOO=11000000 (0xC0 or 192)	[-297] *
NNPOOP=11000001 (0xC1 or 193)	[-296] *
NNPOPN=11000110 (0xC6 or 198)	[-295] *
NNPOPO=11000100 (0xC4 or 196)	[-294] *
NNPOPP=11000101 (0xC5 or 197)	[-293] *
NNPPNN=11011010 (0xDA or 218)	[-292] *
NNPPNO=11011000 (0xD8 or 216)	[-291] *
NNPPNP=11011001 (0xD9 or 217)	[-290] *
NNPPON=11010010 (0xD2 or 210)	[-289] *
NNPPOO=11010000 (0xD0 or 208)	[-288] *
NNPPOP=11010001 (0xD1 or 209)	[-287] *
NNPPPN=11010110 (0xD6 or 214)	[-286] *
NNPPPO=11010100 (0xD4 or 212)	[-285] *
NNPPPP=11010101 (0xD5 or 213)	[-284] *
NONNNN=00111010 (0x3A or 58)	[-283] *
NONNNO=00111000 (0x38 or 56)	[-282] *
NONNNP=00111001 (0x39 or 57)	[-281] *
NONNON=00110010 (0x32 or 50)	[-280] *
NONNOO=00110000 (0x30 or 48)	[-279] *
NONNOP=00110001 (0x31 or 49)	[-278] *
NONNPN=00110110 (0x36 or 54)	[-277] *
NONNPO=00110100 (0x34 or 52)	[-276] *
NONNPP=00110101 (0x35 or 53)	[-275] *
NONONN=01111010 (0x7A or 122)	[-274] *
NONONO=01111000 (0x78 or 120)	[-273] *
NONONP=01111001 (0x79 or 121)	[-272] *
NONOON=01110010 (0x72 or 114)	[-271] *
NONOOO=01110000 (0x70 or 112)	[-270] *
NONOOP=01110001 (0x71 or 113)	[-269] *
NONOPN=01110110 (0x76 or 118)	[-268] *
NONOPO=01110100 (0x74 or 116)	[-267] *
NONOPP=01110101 (0x75 or 117)	[-266] *
NONPNN=00011110 (0x1E or 30)	[-265] *
NONPNO=00011100 (0x1C or 28)	[-264] *
NONPNP=00011101 (0x1D or 29)	[-263] *
NONPON=01111110 (0x7E or 126)	[-262] *
NONPOO=01111100 (0x7C or 124)	[-261] *
NONPOP=01111101 (0x7D or 125)	[-260] *
NONPPN=01011110 (0x5E or 94)	[-259] *
NONPPO=01011100 (0x5C or 92)	[-258] *
NONPPP=01011101 (0x5D or 93)	[-257] *
NOONNN=00101010 (0x2A or 42)	[-256] *
NOONNO=00101000 (0x28 or 40)	[-255] *
NOONNP=00101001 (0x29 or 41)	[-254] *
NOONON=00100010 (0x22 or 34)	[-253] *
NOONOO=00100000 (0x20 or 32)	[-252] *
NOONOP=00100001 (0x21 or 33)	[-251] *
NOONPN=00100110 (0x26 or 38)	[-250] *
NOONPO=00100100 (0x24 or 36)	[-249] *
NOONPP=00100101 (0x25 or 37)	[-248] *
NOOONN=00001010 (0x0A or 10)	[-247] *
NOOONO=00001000 (0x08 or 8)	[-246] *
NOOONP=00001001 (0x09 or 9)	[-245] *
NOOOON=00000010 (0x02 or 2)	[-244] *
NOOOOO=00000000 (0x00 or 0)	[-243] *
NOOOOP=00000001 (0x01 or 1)	[-242] *
NOOOPN=00000110 (0x06 or 6)	[-241] *
NOOOPO=00000100 (0x04 or 4)	[-240] *
NOOOPP=00000101 (0x05 or 5)	[-239] *
NOOPNN=00011010 (0x1A or 26)	[-238] *
NOOPNO=00011000 (0x18 or 24)	[-237] *
NOOPNP=00011001 (0x19 or 25)	[-236] *
NOOPON=00010010 (0x12 or 18)	[-235] *
NOOPOO=00010000 (0x10 or 16)	[-234] *
NOOPOP=00010001 (0x11 or 17)	[-233] *
NOOPPN=00010110 (0x16 or 22)	[-232] *
NOOPPO=00010100 (0x14 or 20)	[-231] *
NOOPPP=00010101 (0x15 or 21)	[-230] *
NOPNNN=01101010 (0x6A or 106)	[-229] *
NOPNNO=01101000 (0x68 or 104)	[-228] *
NOPNNP=01101001 (0x69 or 105)	[-227] *
NOPNON=01100010 (0x62 or 98)	[-226] *
NOPNOO=01100000 (0x60 or 96)	[-225] *
NOPNOP=01100001 (0x61 or 97)	[-224] *
NOPNPN=01100110 (0x66 or 102)	[-223] *
NOPNPO=01100100 (0x64 or 100)	[-222] *
NOPNPP=01100101 (0x65 or 101)	[-221] *
NOPONN=01001010 (0x4A or 74)	[-220] *
NOPONO=01001000 (0x48 or 72)	[-219] *
NOPONP=01001001 (0x49 or 73)	[-218] *
NOPOON=01000010 (0x42 or 66)	[-217] *
NOPOOO=01000000 (0x40 or 64)	[-216] *
NOPOOP=01000001 (0x41 or 65)	[-215] *
NOPOPN=01000110 (0x46 or 70)	[-214] *
NOPOPO=01000100 (0x44 or 68)	[-213] *
NOPOPP=01000101 (0x45 or 69)	[-212] *
NOPPNN=01011010 (0x5A or 90)	[-211] *
NOPPNO=01011000 (0x58 or 88)	[-210] *
NOPPNP=01011001 (0x59 or 89)	[-209] *
NOPPON=01010010 (0x52 or 82)	[-208] *
NOPPOO=01010000 (0x50 or 80)	[-207] *
NOPPOP=01010001 (0x51 or 81)	[-206] *
NOPPPN=01010110 (0x56 or 86)	[-205] *
NOPPPO=01010100 (0x54 or 84)	[-204] *
NOPPPP=01010101 (0x55 or 85)	[-203] *
NPNNNN=00111010 (0x3A or 58)	[-283]  
NPNNNO=00111000 (0x38 or 56)	[-282]  
NPNNNP=00111001 (0x39 or 57)	[-281]  
NPNNON=00110010 (0x32 or 50)	[-280]  
NPNNOO=00110000 (0x30 or 48)	[-279]  
NPNNOP=00110001 (0x31 or 49)	[-278]  
NPNNPN=00110110 (0x36 or 54)	[-277]  
NPNNPO=00110100 (0x34 or 52)	[-276]  
NPNNPP=00110101 (0x35 or 53)	[-275]  
NPNONN=01111010 (0x7A or 122)	[-274]  
NPNONO=01111000 (0x78 or 120)	[-273]  
NPNONP=01111001 (0x79 or 121)	[-272]  
NPNOON=01110010 (0x72 or 114)	[-271]  
NPNOOO=01110000 (0x70 or 112)	[-270]  
NPNOOP=01110001 (0x71 or 113)	[-269]  
NPNOPN=01110110 (0x76 or 118)	[-268]  
NPNOPO=01110100 (0x74 or 116)	[-267]  
NPNOPP=01110101 (0x75 or 117)	[-266]  
NPNPNN=00011110 (0x1E or 30)	[-265]  
NPNPNO=00011100 (0x1C or 28)	[-264]  
NPNPNP=00011101 (0x1D or 29)	[-263]  
NPNPON=01111110 (0x7E or 126)	[-262]  
NPNPOO=01111100 (0x7C or 124)	[-261]  
NPNPOP=01111101 (0x7D or 125)	[-260]  
NPNPPN=01011110 (0x5E or 94)	[-259]  
NPNPPO=01011100 (0x5C or 92)	[-258]  
NPNPPP=01011101 (0x5D or 93)	[-257]  
NPONNN=00101010 (0x2A or 42)	[-256]  
NPONNO=00101000 (0x28 or 40)	[-255]  
NPONNP=00101001 (0x29 or 41)	[-254]  
NPONON=00100010 (0x22 or 34)	[-253]  
NPONOO=00100000 (0x20 or 32)	[-252]  
NPONOP=00100001 (0x21 or 33)	[-251]  
NPONPN=00100110 (0x26 or 38)	[-250]  
NPONPO=00100100 (0x24 or 36)	[-249]  
NPONPP=00100101 (0x25 or 37)	[-248]  
NPOONN=00001010 (0x0A or 10)	[-247]  
NPOONO=00001000 (0x08 or 8)	[-246]  
NPOONP=00001001 (0x09 or 9)	[-245]  
NPOOON=00000010 (0x02 or 2)	[-244]  
NPOOOO=00000000 (0x00 or 0)	[-243]  
NPOOOP=00000001 (0x01 or 1)	[-242]  
NPOOPN=00000110 (0x06 or 6)	[-241]  
NPOOPO=00000100 (0x04 or 4)	[-240]  
NPOOPP=00000101 (0x05 or 5)	[-239]  
NPOPNN=00011010 (0x1A or 26)	[-238]  
NPOPNO=00011000 (0x18 or 24)	[-237]  
NPOPNP=00011001 (0x19 or 25)	[-236]  
NPOPON=00010010 (0x12 or 18)	[-235]  
NPOPOO=00010000 (0x10 or 16)	[-234]  
NPOPOP=00010001 (0x11 or 17)	[-233]  
NPOPPN=00010110 (0x16 or 22)	[-232]  
NPOPPO=00010100 (0x14 or 20)	[-231]  
NPOPPP=00010101 (0x15 or 21)	[-230]  
NPPNNN=01101010 (0x6A or 106)	[-229]  
NPPNNO=01101000 (0x68 or 104)	[-228]  
NPPNNP=01101001 (0x69 or 105)	[-227]  
NPPNON=01100010 (0x62 or 98)	[-226]  
NPPNOO=01100000 (0x60 or 96)	[-225]  
NPPNOP=01100001 (0x61 or 97)	[-224]  
NPPNPN=01100110 (0x66 or 102)	[-223]  
NPPNPO=01100100 (0x64 or 100)	[-222]  
NPPNPP=01100101 (0x65 or 101)	[-221]  
NPPONN=01001010 (0x4A or 74)	[-220]  
NPPONO=01001000 (0x48 or 72)	[-219]  
NPPONP=01001001 (0x49 or 73)	[-218]  
NPPOON=01000010 (0x42 or 66)	[-217]  
NPPOOO=01000000 (0x40 or 64)	[-216]  
NPPOOP=01000001 (0x41 or 65)	[-215]  
NPPOPN=01000110 (0x46 or 70)	[-214]  
NPPOPO=01000100 (0x44 or 68)	[-213]  
NPPOPP=01000101 (0x45 or 69)	[-212]  
NPPPNN=01011010 (0x5A or 90)	[-211]  
NPPPNO=01011000 (0x58 or 88)	[-210]  
NPPPNP=01011001 (0x59 or 89)	[-209]  
NPPPON=01010010 (0x52 or 82)	[-208]  
NPPPOO=01010000 (0x50 or 80)	[-207]  
NPPPOP=01010001 (0x51 or 81)	[-206]  
NPPPPN=01010110 (0x56 or 86)	[-205]  
NPPPPO=01010100 (0x54 or 84)	[-204]  
NPPPPP=01010101 (0x55 or 85)	[-203]  
ONNNNN=10101010 (0xAA or 170)	[-337]  
ONNNNO=10101000 (0xA8 or 168)	[-336]  
ONNNNP=10101001 (0xA9 or 169)	[-335]  
ONNNON=10100010 (0xA2 or 162)	[-334]  
ONNNOO=10100000 (0xA0 or 160)	[-333]  
ONNNOP=10100001 (0xA1 or 161)	[-332]  
ONNNPN=10100110 (0xA6 or 166)	[-331]  
ONNNPO=10100100 (0xA4 or 164)	[-330]  
ONNNPP=10100101 (0xA5 or 165)	[-329]  
ONNONN=11101010 (0xEA or 234)	[-310]  
ONNONO=11101000 (0xE8 or 232)	[-309]  
ONNONP=11101001 (0xE9 or 233)	[-308]  
ONNOON=11100010 (0xE2 or 226)	[-307]  
ONNOOO=11100000 (0xE0 or 224)	[-306]  
ONNOOP=11100001 (0xE1 or 225)	[-305]  
ONNOPN=11100110 (0xE6 or 230)	[-304]  
ONNOPO=11100100 (0xE4 or 228)	[-303]  
ONNOPP=11100101 (0xE5 or 229)	[-302]  
ONNPNN=10001110 (0x8E or 142)	[-103] *
ONNPNO=10001100 (0x8C or 140)	[-102] *
ONNPNP=10001101 (0x8D or 141)	[-101] *
ONNPON=11101110 (0xEE or 238)	[-100] *
ONNPOO=11101100 (0xEC or 236)	[-99] *
ONNPOP=11101101 (0xED or 237)	[-98] *
ONNPPN=11001110 (0xCE or 206)	[-97] *
ONNPPO=11001100 (0xCC or 204)	[-96] *
ONNPPP=11001101 (0xCD or 205)	[-95] *
ONONNN=10101010 (0xAA or 170)	[-337]  
ONONNO=10101000 (0xA8 or 168)	[-336]  
ONONNP=10101001 (0xA9 or 169)	[-335]  
ONONON=10100010 (0xA2 or 162)	[-334]  
ONONOO=10100000 (0xA0 or 160)	[-333]  
ONONOP=10100001 (0xA1 or 161)	[-332]  
ONONPN=10100110 (0xA6 or 166)	[-331]  
ONONPO=10100100 (0xA4 or 164)	[-330]  
ONONPP=10100101 (0xA5 or 165)	[-329]  
ONOONN=10001010 (0x8A or 138)	[-328]  
ONOONO=10001000 (0x88 or 136)	[-327]  
ONOONP=10001001 (0x89 or 137)	[-326]  
ONOOON=10000010 (0x82 or 130)	[-325]  
ONOOOO=10000000 (0x80 or 128)	[-324]  
ONOOOP=10000001 (0x81 or 129)	[-323]  
ONOOPN=10000110 (0x86 or 134)	[-322]  
ONOOPO=10000100 (0x84 or 132)	[-321]  
ONOOPP=10000101 (0x85 or 133)	[-320]  
ONOPNN=10001010 (0x8A or 138)	[-328]  
ONOPNO=10001000 (0x88 or 136)	[-327]  
ONOPNP=10001001 (0x89 or 137)	[-326]  
ONOPON=10000010 (0x82 or 130)	[-325]  
ONOPOO=10000000 (0x80 or 128)	[-324]  
ONOPOP=10000001 (0x81 or 129)	[-323]  
ONOPPN=10000110 (0x86 or 134)	[-322]  
ONOPPO=10000100 (0x84 or 132)	[-321]  
ONOPPP=10000101 (0x85 or 133)	[-320]  
ONPNNN=11101010 (0xEA or 234)	[-310]  
ONPNNO=11101000 (0xE8 or 232)	[-309]  
ONPNNP=11101001 (0xE9 or 233)	[-308]  
ONPNON=11100010 (0xE2 or 226)	[-307]  
ONPNOO=11100000 (0xE0 or 224)	[-306]  
ONPNOP=11100001 (0xE1 or 225)	[-305]  
ONPNPN=11100110 (0xE6 or 230)	[-304]  
ONPNPO=11100100 (0xE4 or 228)	[-303]  
ONPNPP=11100101 (0xE5 or 229)	[-302]  
ONPONN=11001010 (0xCA or 202)	[-301]  
ONPONO=11001000 (0xC8 or 200)	[-300]  
ONPONP=11001001 (0xC9 or 201)	[-299]  
ONPOON=11000010 (0xC2 or 194)	[-298]  
ONPOOO=11000000 (0xC0 or 192)	[-297]  
ONPOOP=11000001 (0xC1 or 193)	[-296]  
ONPOPN=11000110 (0xC6 or 198)	[-295]  
ONPOPO=11000100 (0xC4 or 196)	[-294]  
ONPOPP=11000101 (0xC5 or 197)	[-293]  
ONPPNN=11001010 (0xCA or 202)	[-301]  
ONPPNO=11001000 (0xC8 or 200)	[-300]  
ONPPNP=11001001 (0xC9 or 201)	[-299]  
ONPPON=11000010 (0xC2 or 194)	[-298]  
ONPPOO=11000000 (0xC0 or 192)	[-297]  
ONPPOP=11000001 (0xC1 or 193)	[-296]  
ONPPPN=11000110 (0xC6 or 198)	[-295]  
ONPPPO=11000100 (0xC4 or 196)	[-294]  
ONPPPP=11000101 (0xC5 or 197)	[-293]  
OONNNN=00101010 (0x2A or 42)	[-256]  
OONNNO=00101000 (0x28 or 40)	[-255]  
OONNNP=00101001 (0x29 or 41)	[-254]  
OONNON=00100010 (0x22 or 34)	[-253]  
OONNOO=00100000 (0x20 or 32)	[-252]  
OONNOP=00100001 (0x21 or 33)	[-251]  
OONNPN=00100110 (0x26 or 38)	[-250]  
OONNPO=00100100 (0x24 or 36)	[-249]  
OONNPP=00100101 (0x25 or 37)	[-248]  
OONONN=01101010 (0x6A or 106)	[-229]  
OONONO=01101000 (0x68 or 104)	[-228]  
OONONP=01101001 (0x69 or 105)	[-227]  
OONOON=01100010 (0x62 or 98)	[-226]  
OONOOO=01100000 (0x60 or 96)	[-225]  
OONOOP=01100001 (0x61 or 97)	[-224]  
OONOPN=01100110 (0x66 or 102)	[-223]  
OONOPO=01100100 (0x64 or 100)	[-222]  
OONOPP=01100101 (0x65 or 101)	[-221]  
OONPNN=00001110 (0x0E or 14)	[-22] *
OONPNO=00001100 (0x0C or 12)	[-21] *
OONPNP=00001101 (0x0D or 13)	[-20] *
OONPON=01101110 (0x6E or 110)	[-19] *
OONPOO=01101100 (0x6C or 108)	[-18] *
OONPOP=01101101 (0x6D or 109)	[-17] *
OONPPN=01001110 (0x4E or 78)	[-16] *
OONPPO=01001100 (0x4C or 76)	[-15] *
OONPPP=01001101 (0x4D or 77)	[-14] *
OOONNN=00101010 (0x2A or 42)	[-256]  
OOONNO=00101000 (0x28 or 40)	[-255]  
OOONNP=00101001 (0x29 or 41)	[-254]  
OOONON=00100010 (0x22 or 34)	[-253]  
OOONOO=00100000 (0x20 or 32)	[-252]  
OOONOP=00100001 (0x21 or 33)	[-251]  
OOONPN=00100110 (0x26 or 38)	[-250]  
OOONPO=00100100 (0x24 or 36)	[-249]  
OOONPP=00100101 (0x25 or 37)	[-248]  
OOOONN=00001010 (0x0A or 10)	[-247]  
OOOONO=00001000 (0x08 or 8)	[-246]  
OOOONP=00001001 (0x09 or 9)	[-245]  
OOOOON=00000010 (0x02 or 2)	[-244]  
OOOOOO=00000000 (0x00 or 0)	[-243]  
OOOOOP=00000001 (0x01 or 1)	[-242]  
OOOOPN=00000110 (0x06 or 6)	[-241]  
OOOOPO=00000100 (0x04 or 4)	[-240]  
OOOOPP=00000101 (0x05 or 5)	[-239]  
OOOPNN=00001010 (0x0A or 10)	[-247]  
OOOPNO=00001000 (0x08 or 8)	[-246]  
OOOPNP=00001001 (0x09 or 9)	[-245]  
OOOPON=00000010 (0x02 or 2)	[-244]  
OOOPOO=00000000 (0x00 or 0)	[-243]  
OOOPOP=00000001 (0x01 or 1)	[-242]  
OOOPPN=00000110 (0x06 or 6)	[-241]  
OOOPPO=00000100 (0x04 or 4)	[-240]  
OOOPPP=00000101 (0x05 or 5)	[-239]  
OOPNNN=01101010 (0x6A or 106)	[-229]  
OOPNNO=01101000 (0x68 or 104)	[-228]  
OOPNNP=01101001 (0x69 or 105)	[-227]  
OOPNON=01100010 (0x62 or 98)	[-226]  
OOPNOO=01100000 (0x60 or 96)	[-225]  
OOPNOP=01100001 (0x61 or 97)	[-224]  
OOPNPN=01100110 (0x66 or 102)	[-223]  
OOPNPO=01100100 (0x64 or 100)	[-222]  
OOPNPP=01100101 (0x65 or 101)	[-221]  
OOPONN=01001010 (0x4A or 74)	[-220]  
OOPONO=01001000 (0x48 or 72)	[-219]  
OOPONP=01001001 (0x49 or 73)	[-218]  
OOPOON=01000010 (0x42 or 66)	[-217]  
OOPOOO=01000000 (0x40 or 64)	[-216]  
OOPOOP=01000001 (0x41 or 65)	[-215]  
OOPOPN=01000110 (0x46 or 70)	[-214]  
OOPOPO=01000100 (0x44 or 68)	[-213]  
OOPOPP=01000101 (0x45 or 69)	[-212]  
OOPPNN=01001010 (0x4A or 74)	[-220]  
OOPPNO=01001000 (0x48 or 72)	[-219]  
OOPPNP=01001001 (0x49 or 73)	[-218]  
OOPPON=01000010 (0x42 or 66)	[-217]  
OOPPOO=01000000 (0x40 or 64)	[-216]  
OOPPOP=01000001 (0x41 or 65)	[-215]  
OOPPPN=01000110 (0x46 or 70)	[-214]  
OOPPPO=01000100 (0x44 or 68)	[-213]  
OOPPPP=01000101 (0x45 or 69)	[-212]  
OPNNNN=00101010 (0x2A or 42)	[-256]  
OPNNNO=00101000 (0x28 or 40)	[-255]  
OPNNNP=00101001 (0x29 or 41)	[-254]  
OPNNON=00100010 (0x22 or 34)	[-253]  
OPNNOO=00100000 (0x20 or 32)	[-252]  
OPNNOP=00100001 (0x21 or 33)	[-251]  
OPNNPN=00100110 (0x26 or 38)	[-250]  
OPNNPO=00100100 (0x24 or 36)	[-249]  
OPNNPP=00100101 (0x25 or 37)	[-248]  
OPNONN=00101010 (0x2A or 42)	[-256]  
OPNONO=00101000 (0x28 or 40)	[-255]  
OPNONP=00101001 (0x29 or 41)	[-254]  
OPNOON=00100010 (0x22 or 34)	[-253]  
OPNOOO=00100000 (0x20 or 32)	[-252]  
OPNOOP=00100001 (0x21 or 33)	[-251]  
OPNOPN=00100110 (0x26 or 38)	[-250]  
OPNOPO=00100100 (0x24 or 36)	[-249]  
OPNOPP=00100101 (0x25 or 37)	[-248]  
OPNPNN=00001110 (0x0E or 14)	[-22]  
OPNPNO=00001100 (0x0C or 12)	[-21]  
OPNPNP=00001101 (0x0D or 13)	[-20]  
OPNPON=00101110 (0x2E or 46)	[62] *
OPNPOO=00101100 (0x2C or 44)	[63] *
OPNPOP=00101101 (0x2D or 45)	[64] *
OPNPPN=00001110 (0x0E or 14)	[-22]  
OPNPPO=00001100 (0x0C or 12)	[-21]  
OPNPPP=00001101 (0x0D or 13)	[-20]  
OPONNN=00101010 (0x2A or 42)	[-256]  
OPONNO=00101000 (0x28 or 40)	[-255]  
OPONNP=00101001 (0x29 or 41)	[-254]  
OPONON=00100010 (0x22 or 34)	[-253]  
OPONOO=00100000 (0x20 or 32)	[-252]  
OPONOP=00100001 (0x21 or 33)	[-251]  
OPONPN=00100110 (0x26 or 38)	[-250]  
OPONPO=00100100 (0x24 or 36)	[-249]  
OPONPP=00100101 (0x25 or 37)	[-248]  
OPOONN=00001010 (0x0A or 10)	[-247]  
OPOONO=00001000 (0x08 or 8)	[-246]  
OPOONP=00001001 (0x09 or 9)	[-245]  
OPOOON=00000010 (0x02 or 2)	[-244]  
OPOOOO=00000000 (0x00 or 0)	[-243]  
OPOOOP=00000001 (0x01 or 1)	[-242]  
OPOOPN=00000110 (0x06 or 6)	[-241]  
OPOOPO=00000100 (0x04 or 4)	[-240]  
OPOOPP=00000101 (0x05 or 5)	[-239]  
OPOPNN=00001010 (0x0A or 10)	[-247]  
OPOPNO=00001000 (0x08 or 8)	[-246]  
OPOPNP=00001001 (0x09 or 9)	[-245]  
OPOPON=00000010 (0x02 or 2)	[-244]  
OPOPOO=00000000 (0x00 or 0)	[-243]  
OPOPOP=00000001 (0x01 or 1)	[-242]  
OPOPPN=00000110 (0x06 or 6)	[-241]  
OPOPPO=00000100 (0x04 or 4)	[-240]  
OPOPPP=00000101 (0x05 or 5)	[-239]  
OPPNNN=00101010 (0x2A or 42)	[-256]  
OPPNNO=00101000 (0x28 or 40)	[-255]  
OPPNNP=00101001 (0x29 or 41)	[-254]  
OPPNON=00100010 (0x22 or 34)	[-253]  
OPPNOO=00100000 (0x20 or 32)	[-252]  
OPPNOP=00100001 (0x21 or 33)	[-251]  
OPPNPN=00100110 (0x26 or 38)	[-250]  
OPPNPO=00100100 (0x24 or 36)	[-249]  
OPPNPP=00100101 (0x25 or 37)	[-248]  
OPPONN=00001010 (0x0A or 10)	[-247]  
OPPONO=00001000 (0x08 or 8)	[-246]  
OPPONP=00001001 (0x09 or 9)	[-245]  
OPPOON=00000010 (0x02 or 2)	[-244]  
OPPOOO=00000000 (0x00 or 0)	[-243]  
OPPOOP=00000001 (0x01 or 1)	[-242]  
OPPOPN=00000110 (0x06 or 6)	[-241]  
OPPOPO=00000100 (0x04 or 4)	[-240]  
OPPOPP=00000101 (0x05 or 5)	[-239]  
OPPPNN=00001010 (0x0A or 10)	[-247]  
OPPPNO=00001000 (0x08 or 8)	[-246]  
OPPPNP=00001001 (0x09 or 9)	[-245]  
OPPPON=00000010 (0x02 or 2)	[-244]  
OPPPOO=00000000 (0x00 or 0)	[-243]  
OPPPOP=00000001 (0x01 or 1)	[-242]  
OPPPPN=00000110 (0x06 or 6)	[-241]  
OPPPPO=00000100 (0x04 or 4)	[-240]  
OPPPPP=00000101 (0x05 or 5)	[-239]  
PNNNNN=10111011 (0xBB or 187)	[122] *
PNNNNO=10111000 (0xB8 or 184)	[-363]  
PNNNNP=10111001 (0xB9 or 185)	[-362]  
PNNNON=10110011 (0xB3 or 179)	[125] *
PNNNOO=10110000 (0xB0 or 176)	[-360]  
PNNNOP=10110001 (0xB1 or 177)	[-359]  
PNNNPN=10110111 (0xB7 or 183)	[128] *
PNNNPO=10110100 (0xB4 or 180)	[-357]  
PNNNPP=10110101 (0xB5 or 181)	[-356]  
PNNONN=11111011 (0xFB or 251)	[131] *
PNNONO=11111000 (0xF8 or 248)	[-354]  
PNNONP=11111001 (0xF9 or 249)	[-353]  
PNNOON=11110011 (0xF3 or 243)	[134] *
PNNOOO=11110000 (0xF0 or 240)	[-351]  
PNNOOP=11110001 (0xF1 or 241)	[-350]  
PNNOPN=11110111 (0xF7 or 247)	[137] *
PNNOPO=11110100 (0xF4 or 244)	[-348]  
PNNOPP=11110101 (0xF5 or 245)	[-347]  
PNNPNN=10011111 (0x9F or 159)	[140] *
PNNPNO=10011100 (0x9C or 156)	[-345]  
PNNPNP=10011101 (0x9D or 157)	[-344]  
PNNPON=11111111 (0xFF or 255)	[143] *
PNNPOO=11111100 (0xFC or 252)	[-342]  
PNNPOP=11111101 (0xFD or 253)	[-341]  
PNNPPN=11011111 (0xDF or 223)	[146] *
PNNPPO=11011100 (0xDC or 220)	[-339]  
PNNPPP=11011101 (0xDD or 221)	[-338]  
PNONNN=10101011 (0xAB or 171)	[149] *
PNONNO=10101000 (0xA8 or 168)	[-336]  
PNONNP=10101001 (0xA9 or 169)	[-335]  
PNONON=10100011 (0xA3 or 163)	[152] *
PNONOO=10100000 (0xA0 or 160)	[-333]  
PNONOP=10100001 (0xA1 or 161)	[-332]  
PNONPN=10100111 (0xA7 or 167)	[155] *
PNONPO=10100100 (0xA4 or 164)	[-330]  
PNONPP=10100101 (0xA5 or 165)	[-329]  
PNOONN=10001011 (0x8B or 139)	[158] *
PNOONO=10001000 (0x88 or 136)	[-327]  
PNOONP=10001001 (0x89 or 137)	[-326]  
PNOOON=10000011 (0x83 or 131)	[161] *
PNOOOO=10000000 (0x80 or 128)	[-324]  
PNOOOP=10000001 (0x81 or 129)	[-323]  
PNOOPN=10000111 (0x87 or 135)	[164] *
PNOOPO=10000100 (0x84 or 132)	[-321]  
PNOOPP=10000101 (0x85 or 133)	[-320]  
PNOPNN=10011011 (0x9B or 155)	[167] *
PNOPNO=10011000 (0x98 or 152)	[-318]  
PNOPNP=10011001 (0x99 or 153)	[-317]  
PNOPON=10010011 (0x93 or 147)	[170] *
PNOPOO=10010000 (0x90 or 144)	[-315]  
PNOPOP=10010001 (0x91 or 145)	[-314]  
PNOPPN=10010111 (0x97 or 151)	[173] *
PNOPPO=10010100 (0x94 or 148)	[-312]  
PNOPPP=10010101 (0x95 or 149)	[-311]  
PNPNNN=11101011 (0xEB or 235)	[176] *
PNPNNO=11101000 (0xE8 or 232)	[-309]  
PNPNNP=11101001 (0xE9 or 233)	[-308]  
PNPNON=11100011 (0xE3 or 227)	[179] *
PNPNOO=11100000 (0xE0 or 224)	[-306]  
PNPNOP=11100001 (0xE1 or 225)	[-305]  
PNPNPN=11100111 (0xE7 or 231)	[182] *
PNPNPO=11100100 (0xE4 or 228)	[-303]  
PNPNPP=11100101 (0xE5 or 229)	[-302]  
PNPONN=11001011 (0xCB or 203)	[185] *
PNPONO=11001000 (0xC8 or 200)	[-300]  
PNPONP=11001001 (0xC9 or 201)	[-299]  
PNPOON=11000011 (0xC3 or 195)	[188] *
PNPOOO=11000000 (0xC0 or 192)	[-297]  
PNPOOP=11000001 (0xC1 or 193)	[-296]  
PNPOPN=11000111 (0xC7 or 199)	[191] *
PNPOPO=11000100 (0xC4 or 196)	[-294]  
PNPOPP=11000101 (0xC5 or 197)	[-293]  
PNPPNN=11011011 (0xDB or 219)	[194] *
PNPPNO=11011000 (0xD8 or 216)	[-291]  
PNPPNP=11011001 (0xD9 or 217)	[-290]  
PNPPON=11010011 (0xD3 or 211)	[197] *
PNPPOO=11010000 (0xD0 or 208)	[-288]  
PNPPOP=11010001 (0xD1 or 209)	[-287]  
PNPPPN=11010111 (0xD7 or 215)	[200] *
PNPPPO=11010100 (0xD4 or 212)	[-285]  
PNPPPP=11010101 (0xD5 or 213)	[-284]  
PONNNN=00101011 (0x2B or 43)	[203] *
PONNNO=00101000 (0x28 or 40)	[-255]  
PONNNP=00101001 (0x29 or 41)	[-254]  
PONNON=00100011 (0x23 or 35)	[206] *
PONNOO=00100000 (0x20 or 32)	[-252]  
PONNOP=00100001 (0x21 or 33)	[-251]  
PONNPN=00100111 (0x27 or 39)	[209] *
PONNPO=00100100 (0x24 or 36)	[-249]  
PONNPP=00100101 (0x25 or 37)	[-248]  
PONONN=01101011 (0x6B or 107)	[212] *
PONONO=01101000 (0x68 or 104)	[-228]  
PONONP=01101001 (0x69 or 105)	[-227]  
PONOON=01100011 (0x63 or 99)	[215] *
PONOOO=01100000 (0x60 or 96)	[-225]  
PONOOP=01100001 (0x61 or 97)	[-224]  
PONOPN=01100111 (0x67 or 103)	[218] *
PONOPO=01100100 (0x64 or 100)	[-222]  
PONOPP=01100101 (0x65 or 101)	[-221]  
PONPNN=00001111 (0x0F or 15)	[221] *
PONPNO=00001100 (0x0C or 12)	[-21]  
PONPNP=00001101 (0x0D or 13)	[-20]  
PONPON=01101111 (0x6F or 111)	[224] *
PONPOO=01101100 (0x6C or 108)	[-18]  
PONPOP=01101101 (0x6D or 109)	[-17]  
PONPPN=01001111 (0x4F or 79)	[227] *
PONPPO=01001100 (0x4C or 76)	[-15]  
PONPPP=01001101 (0x4D or 77)	[-14]  
POONNN=00101011 (0x2B or 43)	[203]  
POONNO=00101000 (0x28 or 40)	[-255]  
POONNP=00101001 (0x29 or 41)	[-254]  
POONON=00100011 (0x23 or 35)	[206]  
POONOO=00100000 (0x20 or 32)	[-252]  
POONOP=00100001 (0x21 or 33)	[-251]  
POONPN=00100111 (0x27 or 39)	[209]  
POONPO=00100100 (0x24 or 36)	[-249]  
POONPP=00100101 (0x25 or 37)	[-248]  
POOONN=00001011 (0x0B or 11)	[239] *
POOONO=00001000 (0x08 or 8)	[-246]  
POOONP=00001001 (0x09 or 9)	[-245]  
POOOON=00000011 (0x03 or 3)	[242] *
POOOOO=00000000 (0x00 or 0)	[-243]  
POOOOP=00000001 (0x01 or 1)	[-242]  
POOOPN=00000111 (0x07 or 7)	[245] *
POOOPO=00000100 (0x04 or 4)	[-240]  
POOOPP=00000101 (0x05 or 5)	[-239]  
POOPNN=00001011 (0x0B or 11)	[239]  
POOPNO=00001000 (0x08 or 8)	[-246]  
POOPNP=00001001 (0x09 or 9)	[-245]  
POOPON=00000011 (0x03 or 3)	[242]  
POOPOO=00000000 (0x00 or 0)	[-243]  
POOPOP=00000001 (0x01 or 1)	[-242]  
POOPPN=00000111 (0x07 or 7)	[245]  
POOPPO=00000100 (0x04 or 4)	[-240]  
POOPPP=00000101 (0x05 or 5)	[-239]  
POPNNN=01101011 (0x6B or 107)	[212]  
POPNNO=01101000 (0x68 or 104)	[-228]  
POPNNP=01101001 (0x69 or 105)	[-227]  
POPNON=01100011 (0x63 or 99)	[215]  
POPNOO=01100000 (0x60 or 96)	[-225]  
POPNOP=01100001 (0x61 or 97)	[-224]  
POPNPN=01100111 (0x67 or 103)	[218]  
POPNPO=01100100 (0x64 or 100)	[-222]  
POPNPP=01100101 (0x65 or 101)	[-221]  
POPONN=01001011 (0x4B or 75)	[266] *
POPONO=01001000 (0x48 or 72)	[-219]  
POPONP=01001001 (0x49 or 73)	[-218]  
POPOON=01000011 (0x43 or 67)	[269] *
POPOOO=01000000 (0x40 or 64)	[-216]  
POPOOP=01000001 (0x41 or 65)	[-215]  
POPOPN=01000111 (0x47 or 71)	[272] *
POPOPO=01000100 (0x44 or 68)	[-213]  
POPOPP=01000101 (0x45 or 69)	[-212]  
POPPNN=01001011 (0x4B or 75)	[266]  
POPPNO=01001000 (0x48 or 72)	[-219]  
POPPNP=01001001 (0x49 or 73)	[-218]  
POPPON=01000011 (0x43 or 67)	[269]  
POPPOO=01000000 (0x40 or 64)	[-216]  
POPPOP=01000001 (0x41 or 65)	[-215]  
POPPPN=01000111 (0x47 or 71)	[272]  
POPPPO=01000100 (0x44 or 68)	[-213]  
POPPPP=01000101 (0x45 or 69)	[-212]  
PPNNNN=00111010 (0x3A or 58)	[-283]  
PPNNNO=00111000 (0x38 or 56)	[-282]  
PPNNNP=00111001 (0x39 or 57)	[-281]  
PPNNON=00110010 (0x32 or 50)	[-280]  
PPNNOO=00110000 (0x30 or 48)	[-279]  
PPNNOP=00110001 (0x31 or 49)	[-278]  
PPNNPN=00110110 (0x36 or 54)	[-277]  
PPNNPO=00110100 (0x34 or 52)	[-276]  
PPNNPP=00110101 (0x35 or 53)	[-275]  
PPNONN=01111010 (0x7A or 122)	[-274]  
PPNONO=01111000 (0x78 or 120)	[-273]  
PPNONP=01111001 (0x79 or 121)	[-272]  
PPNOON=01110010 (0x72 or 114)	[-271]  
PPNOOO=01110000 (0x70 or 112)	[-270]  
PPNOOP=01110001 (0x71 or 113)	[-269]  
PPNOPN=01110110 (0x76 or 118)	[-268]  
PPNOPO=01110100 (0x74 or 116)	[-267]  
PPNOPP=01110101 (0x75 or 117)	[-266]  
PPNPNN=00011110 (0x1E or 30)	[-265]  
PPNPNO=00011100 (0x1C or 28)	[-264]  
PPNPNP=00011101 (0x1D or 29)	[-263]  
PPNPON=01111110 (0x7E or 126)	[-262]  
PPNPOO=01111100 (0x7C or 124)	[-261]  
PPNPOP=01111101 (0x7D or 125)	[-260]  
PPNPPN=01011110 (0x5E or 94)	[-259]  
PPNPPO=01011100 (0x5C or 92)	[-258]  
PPNPPP=01011101 (0x5D or 93)	[-257]  
PPONNN=00101010 (0x2A or 42)	[-256]  
PPONNO=00101000 (0x28 or 40)	[-255]  
PPONNP=00101001 (0x29 or 41)	[-254]  
PPONON=00100010 (0x22 or 34)	[-253]  
PPONOO=00100000 (0x20 or 32)	[-252]  
PPONOP=00100001 (0x21 or 33)	[-251]  
PPONPN=00100110 (0x26 or 38)	[-250]  
PPONPO=00100100 (0x24 or 36)	[-249]  
PPONPP=00100101 (0x25 or 37)	[-248]  
PPOONN=00001010 (0x0A or 10)	[-247]  
PPOONO=00001000 (0x08 or 8)	[-246]  
PPOONP=00001001 (0x09 or 9)	[-245]  
PPOOON=00000010 (0x02 or 2)	[-244]  
PPOOOO=00000000 (0x00 or 0)	[-243]  
PPOOOP=00000001 (0x01 or 1)	[-242]  
PPOOPN=00000110 (0x06 or 6)	[-241]  
PPOOPO=00000100 (0x04 or 4)	[-240]  
PPOOPP=00000101 (0x05 or 5)	[-239]  
PPOPNN=00011010 (0x1A or 26)	[-238]  
PPOPNO=00011000 (0x18 or 24)	[-237]  
PPOPNP=00011001 (0x19 or 25)	[-236]  
PPOPON=00010010 (0x12 or 18)	[-235]  
PPOPOO=00010000 (0x10 or 16)	[-234]  
PPOPOP=00010001 (0x11 or 17)	[-233]  
PPOPPN=00010110 (0x16 or 22)	[-232]  
PPOPPO=00010100 (0x14 or 20)	[-231]  
PPOPPP=00010101 (0x15 or 21)	[-230]  
PPPNNN=01101010 (0x6A or 106)	[-229]  
PPPNNO=01101000 (0x68 or 104)	[-228]  
PPPNNP=01101001 (0x69 or 105)	[-227]  
PPPNON=01100010 (0x62 or 98)	[-226]  
PPPNOO=01100000 (0x60 or 96)	[-225]  
PPPNOP=01100001 (0x61 or 97)	[-224]  
PPPNPN=01100110 (0x66 or 102)	[-223]  
PPPNPO=01100100 (0x64 or 100)	[-222]  
PPPNPP=01100101 (0x65 or 101)	[-221]  
PPPONN=01001010 (0x4A or 74)	[-220]  
PPPONO=01001000 (0x48 or 72)	[-219]  
PPPONP=01001001 (0x49 or 73)	[-218]  
PPPOON=01000010 (0x42 or 66)	[-217]  
PPPOOO=01000000 (0x40 or 64)	[-216]  
PPPOOP=01000001 (0x41 or 65)	[-215]  
PPPOPN=01000110 (0x46 or 70)	[-214]  
PPPOPO=01000100 (0x44 or 68)	[-213]  
PPPOPP=01000101 (0x45 or 69)	[-212]  
PPPPNN=01011010 (0x5A or 90)	[-211]  
PPPPNO=01011000 (0x58 or 88)	[-210]  
PPPPNP=01011001 (0x59 or 89)	[-209]  
PPPPON=01010010 (0x52 or 82)	[-208]  
PPPPOO=01010000 (0x50 or 80)	[-207]  
PPPPOP=01010001 (0x51 or 81)	[-206]  
PPPPPN=01010110 (0x56 or 86)	[-205]  
PPPPPO=01010100 (0x54 or 84)	[-204]  
PPPPPP=01010101 (0x55 or 85)	[-203]  

0x13 (19) not covered
0x17 (23) not covered
0x1B (27) not covered
0x1F (31) not covered
0x2F (47) not covered
0x33 (51) not covered
0x37 (55) not covered
0x3B (59) not covered
0x3C (60) not covered
0x3D (61) not covered
0x3E (62) not covered
0x3F (63) not covered
0x53 (83) not covered
0x57 (87) not covered
0x5B (91) not covered
0x5F (95) not covered
0x73 (115) not covered
0x77 (119) not covered
0x7B (123) not covered
0x7F (127) not covered
0x8F (143) not covered
0xAC (172) not covered
0xAD (173) not covered
0xAE (174) not covered
0xAF (175) not covered
0xBC (188) not covered
0xBD (189) not covered
0xBE (190) not covered
0xBF (191) not covered
0xCF (207) not covered
0xEF (239) not covered

Covered 225 cells (87.89%)

Покрыто 225 ячеек из 256 (87.89%)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Микросхема троичного микроконтроллера Triador3000

Post by Shaos »

3 блока с 128 ячейками (всего 384):

 3блока

Code: Select all

NNNNNN=100111010 (0x13A or 314)	[-364] *
NNNNNO=100111000 (0x138 or 312)	[-363] *
NNNNNP=100111001 (0x139 or 313)	[-362] *
NNNNON=100110010 (0x132 or 306)	[-361] *
NNNNOO=100110000 (0x130 or 304)	[-360] *
NNNNOP=100110001 (0x131 or 305)	[-359] *
NNNNPN=100110110 (0x136 or 310)	[-358] *
NNNNPO=100110100 (0x134 or 308)	[-357] *
NNNNPP=100110101 (0x135 or 309)	[-356] *
NNNONN=101111010 (0x17A or 378)	[-355] *
NNNONO=101111000 (0x178 or 376)	[-354] *
NNNONP=101111001 (0x179 or 377)	[-353] *
NNNOON=101110010 (0x172 or 370)	[-352] *
NNNOOO=101110000 (0x170 or 368)	[-351] *
NNNOOP=101110001 (0x171 or 369)	[-350] *
NNNOPN=101110110 (0x176 or 374)	[-349] *
NNNOPO=101110100 (0x174 or 372)	[-348] *
NNNOPP=101110101 (0x175 or 373)	[-347] *
NNNPNN=100011110 (0x11E or 286)	[-346] *
NNNPNO=100011100 (0x11C or 284)	[-345] *
NNNPNP=100011101 (0x11D or 285)	[-344] *
NNNPON=101111110 (0x17E or 382)	[-343] *
NNNPOO=101111100 (0x17C or 380)	[-342] *
NNNPOP=101111101 (0x17D or 381)	[-341] *
NNNPPN=101011110 (0x15E or 350)	[-340] *
NNNPPO=101011100 (0x15C or 348)	[-339] *
NNNPPP=101011101 (0x15D or 349)	[-338] *
NNONNN=100101010 (0x12A or 298)	[-337] *
NNONNO=100101000 (0x128 or 296)	[-336] *
NNONNP=100101001 (0x129 or 297)	[-335] *
NNONON=100100010 (0x122 or 290)	[-334] *
NNONOO=100100000 (0x120 or 288)	[-333] *
NNONOP=100100001 (0x121 or 289)	[-332] *
NNONPN=100100110 (0x126 or 294)	[-331] *
NNONPO=100100100 (0x124 or 292)	[-330] *
NNONPP=100100101 (0x125 or 293)	[-329] *
NNOONN=100001010 (0x10A or 266)	[-328] *
NNOONO=100001000 (0x108 or 264)	[-327] *
NNOONP=100001001 (0x109 or 265)	[-326] *
NNOOON=100000010 (0x102 or 258)	[-325] *
NNOOOO=100000000 (0x100 or 256)	[-324] *
NNOOOP=100000001 (0x101 or 257)	[-323] *
NNOOPN=100000110 (0x106 or 262)	[-322] *
NNOOPO=100000100 (0x104 or 260)	[-321] *
NNOOPP=100000101 (0x105 or 261)	[-320] *
NNOPNN=100011010 (0x11A or 282)	[-319] *
NNOPNO=100011000 (0x118 or 280)	[-318] *
NNOPNP=100011001 (0x119 or 281)	[-317] *
NNOPON=100010010 (0x112 or 274)	[-316] *
NNOPOO=100010000 (0x110 or 272)	[-315] *
NNOPOP=100010001 (0x111 or 273)	[-314] *
NNOPPN=100010110 (0x116 or 278)	[-313] *
NNOPPO=100010100 (0x114 or 276)	[-312] *
NNOPPP=100010101 (0x115 or 277)	[-311] *
NNPNNN=101101010 (0x16A or 362)	[-310] *
NNPNNO=101101000 (0x168 or 360)	[-309] *
NNPNNP=101101001 (0x169 or 361)	[-308] *
NNPNON=101100010 (0x162 or 354)	[-307] *
NNPNOO=101100000 (0x160 or 352)	[-306] *
NNPNOP=101100001 (0x161 or 353)	[-305] *
NNPNPN=101100110 (0x166 or 358)	[-304] *
NNPNPO=101100100 (0x164 or 356)	[-303] *
NNPNPP=101100101 (0x165 or 357)	[-302] *
NNPONN=101001010 (0x14A or 330)	[-301] *
NNPONO=101001000 (0x148 or 328)	[-300] *
NNPONP=101001001 (0x149 or 329)	[-299] *
NNPOON=101000010 (0x142 or 322)	[-298] *
NNPOOO=101000000 (0x140 or 320)	[-297] *
NNPOOP=101000001 (0x141 or 321)	[-296] *
NNPOPN=101000110 (0x146 or 326)	[-295] *
NNPOPO=101000100 (0x144 or 324)	[-294] *
NNPOPP=101000101 (0x145 or 325)	[-293] *
NNPPNN=101011010 (0x15A or 346)	[-292] *
NNPPNO=101011000 (0x158 or 344)	[-291] *
NNPPNP=101011001 (0x159 or 345)	[-290] *
NNPPON=101010010 (0x152 or 338)	[-289] *
NNPPOO=101010000 (0x150 or 336)	[-288] *
NNPPOP=101010001 (0x151 or 337)	[-287] *
NNPPPN=101010110 (0x156 or 342)	[-286] *
NNPPPO=101010100 (0x154 or 340)	[-285] *
NNPPPP=101010101 (0x155 or 341)	[-284] *
NONNNN=000111010 (0x03A or 58)	[-283] *
NONNNO=000111000 (0x038 or 56)	[-282] *
NONNNP=000111001 (0x039 or 57)	[-281] *
NONNON=000110010 (0x032 or 50)	[-280] *
NONNOO=000110000 (0x030 or 48)	[-279] *
NONNOP=000110001 (0x031 or 49)	[-278] *
NONNPN=000110110 (0x036 or 54)	[-277] *
NONNPO=000110100 (0x034 or 52)	[-276] *
NONNPP=000110101 (0x035 or 53)	[-275] *
NONONN=001111010 (0x07A or 122)	[-274] *
NONONO=001111000 (0x078 or 120)	[-273] *
NONONP=001111001 (0x079 or 121)	[-272] *
NONOON=001110010 (0x072 or 114)	[-271] *
NONOOO=001110000 (0x070 or 112)	[-270] *
NONOOP=001110001 (0x071 or 113)	[-269] *
NONOPN=001110110 (0x076 or 118)	[-268] *
NONOPO=001110100 (0x074 or 116)	[-267] *
NONOPP=001110101 (0x075 or 117)	[-266] *
NONPNN=000011110 (0x01E or 30)	[-265] *
NONPNO=000011100 (0x01C or 28)	[-264] *
NONPNP=000011101 (0x01D or 29)	[-263] *
NONPON=001111110 (0x07E or 126)	[-262] *
NONPOO=001111100 (0x07C or 124)	[-261] *
NONPOP=001111101 (0x07D or 125)	[-260] *
NONPPN=001011110 (0x05E or 94)	[-259] *
NONPPO=001011100 (0x05C or 92)	[-258] *
NONPPP=001011101 (0x05D or 93)	[-257] *
NOONNN=000101010 (0x02A or 42)	[-256] *
NOONNO=000101000 (0x028 or 40)	[-255] *
NOONNP=000101001 (0x029 or 41)	[-254] *
NOONON=000100010 (0x022 or 34)	[-253] *
NOONOO=000100000 (0x020 or 32)	[-252] *
NOONOP=000100001 (0x021 or 33)	[-251] *
NOONPN=000100110 (0x026 or 38)	[-250] *
NOONPO=000100100 (0x024 or 36)	[-249] *
NOONPP=000100101 (0x025 or 37)	[-248] *
NOOONN=000001010 (0x00A or 10)	[-247] *
NOOONO=000001000 (0x008 or 8)	[-246] *
NOOONP=000001001 (0x009 or 9)	[-245] *
NOOOON=000000010 (0x002 or 2)	[-244] *
NOOOOO=000000000 (0x000 or 0)	[-243] *
NOOOOP=000000001 (0x001 or 1)	[-242] *
NOOOPN=000000110 (0x006 or 6)	[-241] *
NOOOPO=000000100 (0x004 or 4)	[-240] *
NOOOPP=000000101 (0x005 or 5)	[-239] *
NOOPNN=000011010 (0x01A or 26)	[-238] *
NOOPNO=000011000 (0x018 or 24)	[-237] *
NOOPNP=000011001 (0x019 or 25)	[-236] *
NOOPON=000010010 (0x012 or 18)	[-235] *
NOOPOO=000010000 (0x010 or 16)	[-234] *
NOOPOP=000010001 (0x011 or 17)	[-233] *
NOOPPN=000010110 (0x016 or 22)	[-232] *
NOOPPO=000010100 (0x014 or 20)	[-231] *
NOOPPP=000010101 (0x015 or 21)	[-230] *
NOPNNN=001101010 (0x06A or 106)	[-229] *
NOPNNO=001101000 (0x068 or 104)	[-228] *
NOPNNP=001101001 (0x069 or 105)	[-227] *
NOPNON=001100010 (0x062 or 98)	[-226] *
NOPNOO=001100000 (0x060 or 96)	[-225] *
NOPNOP=001100001 (0x061 or 97)	[-224] *
NOPNPN=001100110 (0x066 or 102)	[-223] *
NOPNPO=001100100 (0x064 or 100)	[-222] *
NOPNPP=001100101 (0x065 or 101)	[-221] *
NOPONN=001001010 (0x04A or 74)	[-220] *
NOPONO=001001000 (0x048 or 72)	[-219] *
NOPONP=001001001 (0x049 or 73)	[-218] *
NOPOON=001000010 (0x042 or 66)	[-217] *
NOPOOO=001000000 (0x040 or 64)	[-216] *
NOPOOP=001000001 (0x041 or 65)	[-215] *
NOPOPN=001000110 (0x046 or 70)	[-214] *
NOPOPO=001000100 (0x044 or 68)	[-213] *
NOPOPP=001000101 (0x045 or 69)	[-212] *
NOPPNN=001011010 (0x05A or 90)	[-211] *
NOPPNO=001011000 (0x058 or 88)	[-210] *
NOPPNP=001011001 (0x059 or 89)	[-209] *
NOPPON=001010010 (0x052 or 82)	[-208] *
NOPPOO=001010000 (0x050 or 80)	[-207] *
NOPPOP=001010001 (0x051 or 81)	[-206] *
NOPPPN=001010110 (0x056 or 86)	[-205] *
NOPPPO=001010100 (0x054 or 84)	[-204] *
NOPPPP=001010101 (0x055 or 85)	[-203] *
NPNNNN=010111010 (0x0BA or 186)	[-202] *
NPNNNO=010111000 (0x0B8 or 184)	[-201] *
NPNNNP=010111001 (0x0B9 or 185)	[-200] *
NPNNON=010110010 (0x0B2 or 178)	[-199] *
NPNNOO=010110000 (0x0B0 or 176)	[-198] *
NPNNOP=010110001 (0x0B1 or 177)	[-197] *
NPNNPN=010110110 (0x0B6 or 182)	[-196] *
NPNNPO=010110100 (0x0B4 or 180)	[-195] *
NPNNPP=010110101 (0x0B5 or 181)	[-194] *
NPNONN=011111010 (0x0FA or 250)	[-193] *
NPNONO=011111000 (0x0F8 or 248)	[-192] *
NPNONP=011111001 (0x0F9 or 249)	[-191] *
NPNOON=011110010 (0x0F2 or 242)	[-190] *
NPNOOO=011110000 (0x0F0 or 240)	[-189] *
NPNOOP=011110001 (0x0F1 or 241)	[-188] *
NPNOPN=011110110 (0x0F6 or 246)	[-187] *
NPNOPO=011110100 (0x0F4 or 244)	[-186] *
NPNOPP=011110101 (0x0F5 or 245)	[-185] *
NPNPNN=010011110 (0x09E or 158)	[-184] *
NPNPNO=010011100 (0x09C or 156)	[-183] *
NPNPNP=010011101 (0x09D or 157)	[-182] *
NPNPON=011111110 (0x0FE or 254)	[-181] *
NPNPOO=011111100 (0x0FC or 252)	[-180] *
NPNPOP=011111101 (0x0FD or 253)	[-179] *
NPNPPN=011011110 (0x0DE or 222)	[-178] *
NPNPPO=011011100 (0x0DC or 220)	[-177] *
NPNPPP=011011101 (0x0DD or 221)	[-176] *
NPONNN=010101010 (0x0AA or 170)	[-175] *
NPONNO=010101000 (0x0A8 or 168)	[-174] *
NPONNP=010101001 (0x0A9 or 169)	[-173] *
NPONON=010100010 (0x0A2 or 162)	[-172] *
NPONOO=010100000 (0x0A0 or 160)	[-171] *
NPONOP=010100001 (0x0A1 or 161)	[-170] *
NPONPN=010100110 (0x0A6 or 166)	[-169] *
NPONPO=010100100 (0x0A4 or 164)	[-168] *
NPONPP=010100101 (0x0A5 or 165)	[-167] *
NPOONN=010001010 (0x08A or 138)	[-166] *
NPOONO=010001000 (0x088 or 136)	[-165] *
NPOONP=010001001 (0x089 or 137)	[-164] *
NPOOON=010000010 (0x082 or 130)	[-163] *
NPOOOO=010000000 (0x080 or 128)	[-162] *
NPOOOP=010000001 (0x081 or 129)	[-161] *
NPOOPN=010000110 (0x086 or 134)	[-160] *
NPOOPO=010000100 (0x084 or 132)	[-159] *
NPOOPP=010000101 (0x085 or 133)	[-158] *
NPOPNN=010011010 (0x09A or 154)	[-157] *
NPOPNO=010011000 (0x098 or 152)	[-156] *
NPOPNP=010011001 (0x099 or 153)	[-155] *
NPOPON=010010010 (0x092 or 146)	[-154] *
NPOPOO=010010000 (0x090 or 144)	[-153] *
NPOPOP=010010001 (0x091 or 145)	[-152] *
NPOPPN=010010110 (0x096 or 150)	[-151] *
NPOPPO=010010100 (0x094 or 148)	[-150] *
NPOPPP=010010101 (0x095 or 149)	[-149] *
NPPNNN=011101010 (0x0EA or 234)	[-148] *
NPPNNO=011101000 (0x0E8 or 232)	[-147] *
NPPNNP=011101001 (0x0E9 or 233)	[-146] *
NPPNON=011100010 (0x0E2 or 226)	[-145] *
NPPNOO=011100000 (0x0E0 or 224)	[-144] *
NPPNOP=011100001 (0x0E1 or 225)	[-143] *
NPPNPN=011100110 (0x0E6 or 230)	[-142] *
NPPNPO=011100100 (0x0E4 or 228)	[-141] *
NPPNPP=011100101 (0x0E5 or 229)	[-140] *
NPPONN=011001010 (0x0CA or 202)	[-139] *
NPPONO=011001000 (0x0C8 or 200)	[-138] *
NPPONP=011001001 (0x0C9 or 201)	[-137] *
NPPOON=011000010 (0x0C2 or 194)	[-136] *
NPPOOO=011000000 (0x0C0 or 192)	[-135] *
NPPOOP=011000001 (0x0C1 or 193)	[-134] *
NPPOPN=011000110 (0x0C6 or 198)	[-133] *
NPPOPO=011000100 (0x0C4 or 196)	[-132] *
NPPOPP=011000101 (0x0C5 or 197)	[-131] *
NPPPNN=011011010 (0x0DA or 218)	[-130] *
NPPPNO=011011000 (0x0D8 or 216)	[-129] *
NPPPNP=011011001 (0x0D9 or 217)	[-128] *
NPPPON=011010010 (0x0D2 or 210)	[-127] *
NPPPOO=011010000 (0x0D0 or 208)	[-126] *
NPPPOP=011010001 (0x0D1 or 209)	[-125] *
NPPPPN=011010110 (0x0D6 or 214)	[-124] *
NPPPPO=011010100 (0x0D4 or 212)	[-123] *
NPPPPP=011010101 (0x0D5 or 213)	[-122] *
ONNNNN=100101010 (0x12A or 298)	[-337]  
ONNNNO=100101000 (0x128 or 296)	[-336]  
ONNNNP=100101001 (0x129 or 297)	[-335]  
ONNNON=100100010 (0x122 or 290)	[-334]  
ONNNOO=100100000 (0x120 or 288)	[-333]  
ONNNOP=100100001 (0x121 or 289)	[-332]  
ONNNPN=100100110 (0x126 or 294)	[-331]  
ONNNPO=100100100 (0x124 or 292)	[-330]  
ONNNPP=100100101 (0x125 or 293)	[-329]  
ONNONN=101101010 (0x16A or 362)	[-310]  
ONNONO=101101000 (0x168 or 360)	[-309]  
ONNONP=101101001 (0x169 or 361)	[-308]  
ONNOON=101100010 (0x162 or 354)	[-307]  
ONNOOO=101100000 (0x160 or 352)	[-306]  
ONNOOP=101100001 (0x161 or 353)	[-305]  
ONNOPN=101100110 (0x166 or 358)	[-304]  
ONNOPO=101100100 (0x164 or 356)	[-303]  
ONNOPP=101100101 (0x165 or 357)	[-302]  
ONNPNN=100001110 (0x10E or 270)	[-103] *
ONNPNO=100001100 (0x10C or 268)	[-102] *
ONNPNP=100001101 (0x10D or 269)	[-101] *
ONNPON=101101110 (0x16E or 366)	[-100] *
ONNPOO=101101100 (0x16C or 364)	[-99] *
ONNPOP=101101101 (0x16D or 365)	[-98] *
ONNPPN=101001110 (0x14E or 334)	[-97] *
ONNPPO=101001100 (0x14C or 332)	[-96] *
ONNPPP=101001101 (0x14D or 333)	[-95] *
ONONNN=100101010 (0x12A or 298)	[-337]  
ONONNO=100101000 (0x128 or 296)	[-336]  
ONONNP=100101001 (0x129 or 297)	[-335]  
ONONON=100100010 (0x122 or 290)	[-334]  
ONONOO=100100000 (0x120 or 288)	[-333]  
ONONOP=100100001 (0x121 or 289)	[-332]  
ONONPN=100100110 (0x126 or 294)	[-331]  
ONONPO=100100100 (0x124 or 292)	[-330]  
ONONPP=100100101 (0x125 or 293)	[-329]  
ONOONN=100001010 (0x10A or 266)	[-328]  
ONOONO=100001000 (0x108 or 264)	[-327]  
ONOONP=100001001 (0x109 or 265)	[-326]  
ONOOON=100000010 (0x102 or 258)	[-325]  
ONOOOO=100000000 (0x100 or 256)	[-324]  
ONOOOP=100000001 (0x101 or 257)	[-323]  
ONOOPN=100000110 (0x106 or 262)	[-322]  
ONOOPO=100000100 (0x104 or 260)	[-321]  
ONOOPP=100000101 (0x105 or 261)	[-320]  
ONOPNN=100001010 (0x10A or 266)	[-328]  
ONOPNO=100001000 (0x108 or 264)	[-327]  
ONOPNP=100001001 (0x109 or 265)	[-326]  
ONOPON=100000010 (0x102 or 258)	[-325]  
ONOPOO=100000000 (0x100 or 256)	[-324]  
ONOPOP=100000001 (0x101 or 257)	[-323]  
ONOPPN=100000110 (0x106 or 262)	[-322]  
ONOPPO=100000100 (0x104 or 260)	[-321]  
ONOPPP=100000101 (0x105 or 261)	[-320]  
ONPNNN=101101010 (0x16A or 362)	[-310]  
ONPNNO=101101000 (0x168 or 360)	[-309]  
ONPNNP=101101001 (0x169 or 361)	[-308]  
ONPNON=101100010 (0x162 or 354)	[-307]  
ONPNOO=101100000 (0x160 or 352)	[-306]  
ONPNOP=101100001 (0x161 or 353)	[-305]  
ONPNPN=101100110 (0x166 or 358)	[-304]  
ONPNPO=101100100 (0x164 or 356)	[-303]  
ONPNPP=101100101 (0x165 or 357)	[-302]  
ONPONN=101001010 (0x14A or 330)	[-301]  
ONPONO=101001000 (0x148 or 328)	[-300]  
ONPONP=101001001 (0x149 or 329)	[-299]  
ONPOON=101000010 (0x142 or 322)	[-298]  
ONPOOO=101000000 (0x140 or 320)	[-297]  
ONPOOP=101000001 (0x141 or 321)	[-296]  
ONPOPN=101000110 (0x146 or 326)	[-295]  
ONPOPO=101000100 (0x144 or 324)	[-294]  
ONPOPP=101000101 (0x145 or 325)	[-293]  
ONPPNN=101001010 (0x14A or 330)	[-301]  
ONPPNO=101001000 (0x148 or 328)	[-300]  
ONPPNP=101001001 (0x149 or 329)	[-299]  
ONPPON=101000010 (0x142 or 322)	[-298]  
ONPPOO=101000000 (0x140 or 320)	[-297]  
ONPPOP=101000001 (0x141 or 321)	[-296]  
ONPPPN=101000110 (0x146 or 326)	[-295]  
ONPPPO=101000100 (0x144 or 324)	[-294]  
ONPPPP=101000101 (0x145 or 325)	[-293]  
OONNNN=000101010 (0x02A or 42)	[-256]  
OONNNO=000101000 (0x028 or 40)	[-255]  
OONNNP=000101001 (0x029 or 41)	[-254]  
OONNON=000100010 (0x022 or 34)	[-253]  
OONNOO=000100000 (0x020 or 32)	[-252]  
OONNOP=000100001 (0x021 or 33)	[-251]  
OONNPN=000100110 (0x026 or 38)	[-250]  
OONNPO=000100100 (0x024 or 36)	[-249]  
OONNPP=000100101 (0x025 or 37)	[-248]  
OONONN=001101010 (0x06A or 106)	[-229]  
OONONO=001101000 (0x068 or 104)	[-228]  
OONONP=001101001 (0x069 or 105)	[-227]  
OONOON=001100010 (0x062 or 98)	[-226]  
OONOOO=001100000 (0x060 or 96)	[-225]  
OONOOP=001100001 (0x061 or 97)	[-224]  
OONOPN=001100110 (0x066 or 102)	[-223]  
OONOPO=001100100 (0x064 or 100)	[-222]  
OONOPP=001100101 (0x065 or 101)	[-221]  
OONPNN=000001110 (0x00E or 14)	[-22] *
OONPNO=000001100 (0x00C or 12)	[-21] *
OONPNP=000001101 (0x00D or 13)	[-20] *
OONPON=001101110 (0x06E or 110)	[-19] *
OONPOO=001101100 (0x06C or 108)	[-18] *
OONPOP=001101101 (0x06D or 109)	[-17] *
OONPPN=001001110 (0x04E or 78)	[-16] *
OONPPO=001001100 (0x04C or 76)	[-15] *
OONPPP=001001101 (0x04D or 77)	[-14] *
OOONNN=000101010 (0x02A or 42)	[-256]  
OOONNO=000101000 (0x028 or 40)	[-255]  
OOONNP=000101001 (0x029 or 41)	[-254]  
OOONON=000100010 (0x022 or 34)	[-253]  
OOONOO=000100000 (0x020 or 32)	[-252]  
OOONOP=000100001 (0x021 or 33)	[-251]  
OOONPN=000100110 (0x026 or 38)	[-250]  
OOONPO=000100100 (0x024 or 36)	[-249]  
OOONPP=000100101 (0x025 or 37)	[-248]  
OOOONN=000001010 (0x00A or 10)	[-247]  
OOOONO=000001000 (0x008 or 8)	[-246]  
OOOONP=000001001 (0x009 or 9)	[-245]  
OOOOON=000000010 (0x002 or 2)	[-244]  
OOOOOO=000000000 (0x000 or 0)	[-243]  
OOOOOP=000000001 (0x001 or 1)	[-242]  
OOOOPN=000000110 (0x006 or 6)	[-241]  
OOOOPO=000000100 (0x004 or 4)	[-240]  
OOOOPP=000000101 (0x005 or 5)	[-239]  
OOOPNN=000001010 (0x00A or 10)	[-247]  
OOOPNO=000001000 (0x008 or 8)	[-246]  
OOOPNP=000001001 (0x009 or 9)	[-245]  
OOOPON=000000010 (0x002 or 2)	[-244]  
OOOPOO=000000000 (0x000 or 0)	[-243]  
OOOPOP=000000001 (0x001 or 1)	[-242]  
OOOPPN=000000110 (0x006 or 6)	[-241]  
OOOPPO=000000100 (0x004 or 4)	[-240]  
OOOPPP=000000101 (0x005 or 5)	[-239]  
OOPNNN=001101010 (0x06A or 106)	[-229]  
OOPNNO=001101000 (0x068 or 104)	[-228]  
OOPNNP=001101001 (0x069 or 105)	[-227]  
OOPNON=001100010 (0x062 or 98)	[-226]  
OOPNOO=001100000 (0x060 or 96)	[-225]  
OOPNOP=001100001 (0x061 or 97)	[-224]  
OOPNPN=001100110 (0x066 or 102)	[-223]  
OOPNPO=001100100 (0x064 or 100)	[-222]  
OOPNPP=001100101 (0x065 or 101)	[-221]  
OOPONN=001001010 (0x04A or 74)	[-220]  
OOPONO=001001000 (0x048 or 72)	[-219]  
OOPONP=001001001 (0x049 or 73)	[-218]  
OOPOON=001000010 (0x042 or 66)	[-217]  
OOPOOO=001000000 (0x040 or 64)	[-216]  
OOPOOP=001000001 (0x041 or 65)	[-215]  
OOPOPN=001000110 (0x046 or 70)	[-214]  
OOPOPO=001000100 (0x044 or 68)	[-213]  
OOPOPP=001000101 (0x045 or 69)	[-212]  
OOPPNN=001001010 (0x04A or 74)	[-220]  
OOPPNO=001001000 (0x048 or 72)	[-219]  
OOPPNP=001001001 (0x049 or 73)	[-218]  
OOPPON=001000010 (0x042 or 66)	[-217]  
OOPPOO=001000000 (0x040 or 64)	[-216]  
OOPPOP=001000001 (0x041 or 65)	[-215]  
OOPPPN=001000110 (0x046 or 70)	[-214]  
OOPPPO=001000100 (0x044 or 68)	[-213]  
OOPPPP=001000101 (0x045 or 69)	[-212]  
OPNNNN=010101010 (0x0AA or 170)	[-175]  
OPNNNO=010101000 (0x0A8 or 168)	[-174]  
OPNNNP=010101001 (0x0A9 or 169)	[-173]  
OPNNON=010100010 (0x0A2 or 162)	[-172]  
OPNNOO=010100000 (0x0A0 or 160)	[-171]  
OPNNOP=010100001 (0x0A1 or 161)	[-170]  
OPNNPN=010100110 (0x0A6 or 166)	[-169]  
OPNNPO=010100100 (0x0A4 or 164)	[-168]  
OPNNPP=010100101 (0x0A5 or 165)	[-167]  
OPNONN=010101010 (0x0AA or 170)	[-175]  
OPNONO=010101000 (0x0A8 or 168)	[-174]  
OPNONP=010101001 (0x0A9 or 169)	[-173]  
OPNOON=010100010 (0x0A2 or 162)	[-172]  
OPNOOO=010100000 (0x0A0 or 160)	[-171]  
OPNOOP=010100001 (0x0A1 or 161)	[-170]  
OPNOPN=010100110 (0x0A6 or 166)	[-169]  
OPNOPO=010100100 (0x0A4 or 164)	[-168]  
OPNOPP=010100101 (0x0A5 or 165)	[-167]  
OPNPNN=010001110 (0x08E or 142)	[59] *
OPNPNO=010001100 (0x08C or 140)	[60] *
OPNPNP=010001101 (0x08D or 141)	[61] *
OPNPON=010101110 (0x0AE or 174)	[62] *
OPNPOO=010101100 (0x0AC or 172)	[63] *
OPNPOP=010101101 (0x0AD or 173)	[64] *
OPNPPN=010001110 (0x08E or 142)	[59]  
OPNPPO=010001100 (0x08C or 140)	[60]  
OPNPPP=010001101 (0x08D or 141)	[61]  
OPONNN=010101010 (0x0AA or 170)	[-175]  
OPONNO=010101000 (0x0A8 or 168)	[-174]  
OPONNP=010101001 (0x0A9 or 169)	[-173]  
OPONON=010100010 (0x0A2 or 162)	[-172]  
OPONOO=010100000 (0x0A0 or 160)	[-171]  
OPONOP=010100001 (0x0A1 or 161)	[-170]  
OPONPN=010100110 (0x0A6 or 166)	[-169]  
OPONPO=010100100 (0x0A4 or 164)	[-168]  
OPONPP=010100101 (0x0A5 or 165)	[-167]  
OPOONN=010001010 (0x08A or 138)	[-166]  
OPOONO=010001000 (0x088 or 136)	[-165]  
OPOONP=010001001 (0x089 or 137)	[-164]  
OPOOON=010000010 (0x082 or 130)	[-163]  
OPOOOO=010000000 (0x080 or 128)	[-162]  
OPOOOP=010000001 (0x081 or 129)	[-161]  
OPOOPN=010000110 (0x086 or 134)	[-160]  
OPOOPO=010000100 (0x084 or 132)	[-159]  
OPOOPP=010000101 (0x085 or 133)	[-158]  
OPOPNN=010001010 (0x08A or 138)	[-166]  
OPOPNO=010001000 (0x088 or 136)	[-165]  
OPOPNP=010001001 (0x089 or 137)	[-164]  
OPOPON=010000010 (0x082 or 130)	[-163]  
OPOPOO=010000000 (0x080 or 128)	[-162]  
OPOPOP=010000001 (0x081 or 129)	[-161]  
OPOPPN=010000110 (0x086 or 134)	[-160]  
OPOPPO=010000100 (0x084 or 132)	[-159]  
OPOPPP=010000101 (0x085 or 133)	[-158]  
OPPNNN=010101010 (0x0AA or 170)	[-175]  
OPPNNO=010101000 (0x0A8 or 168)	[-174]  
OPPNNP=010101001 (0x0A9 or 169)	[-173]  
OPPNON=010100010 (0x0A2 or 162)	[-172]  
OPPNOO=010100000 (0x0A0 or 160)	[-171]  
OPPNOP=010100001 (0x0A1 or 161)	[-170]  
OPPNPN=010100110 (0x0A6 or 166)	[-169]  
OPPNPO=010100100 (0x0A4 or 164)	[-168]  
OPPNPP=010100101 (0x0A5 or 165)	[-167]  
OPPONN=010001010 (0x08A or 138)	[-166]  
OPPONO=010001000 (0x088 or 136)	[-165]  
OPPONP=010001001 (0x089 or 137)	[-164]  
OPPOON=010000010 (0x082 or 130)	[-163]  
OPPOOO=010000000 (0x080 or 128)	[-162]  
OPPOOP=010000001 (0x081 or 129)	[-161]  
OPPOPN=010000110 (0x086 or 134)	[-160]  
OPPOPO=010000100 (0x084 or 132)	[-159]  
OPPOPP=010000101 (0x085 or 133)	[-158]  
OPPPNN=010001010 (0x08A or 138)	[-166]  
OPPPNO=010001000 (0x088 or 136)	[-165]  
OPPPNP=010001001 (0x089 or 137)	[-164]  
OPPPON=010000010 (0x082 or 130)	[-163]  
OPPPOO=010000000 (0x080 or 128)	[-162]  
OPPPOP=010000001 (0x081 or 129)	[-161]  
OPPPPN=010000110 (0x086 or 134)	[-160]  
OPPPPO=010000100 (0x084 or 132)	[-159]  
OPPPPP=010000101 (0x085 or 133)	[-158]  
PNNNNN=100111011 (0x13B or 315)	[122] *
PNNNNO=100111000 (0x138 or 312)	[-363]  
PNNNNP=100111001 (0x139 or 313)	[-362]  
PNNNON=100110011 (0x133 or 307)	[125] *
PNNNOO=100110000 (0x130 or 304)	[-360]  
PNNNOP=100110001 (0x131 or 305)	[-359]  
PNNNPN=100110111 (0x137 or 311)	[128] *
PNNNPO=100110100 (0x134 or 308)	[-357]  
PNNNPP=100110101 (0x135 or 309)	[-356]  
PNNONN=101111011 (0x17B or 379)	[131] *
PNNONO=101111000 (0x178 or 376)	[-354]  
PNNONP=101111001 (0x179 or 377)	[-353]  
PNNOON=101110011 (0x173 or 371)	[134] *
PNNOOO=101110000 (0x170 or 368)	[-351]  
PNNOOP=101110001 (0x171 or 369)	[-350]  
PNNOPN=101110111 (0x177 or 375)	[137] *
PNNOPO=101110100 (0x174 or 372)	[-348]  
PNNOPP=101110101 (0x175 or 373)	[-347]  
PNNPNN=100011111 (0x11F or 287)	[140] *
PNNPNO=100011100 (0x11C or 284)	[-345]  
PNNPNP=100011101 (0x11D or 285)	[-344]  
PNNPON=101111111 (0x17F or 383)	[143] *
PNNPOO=101111100 (0x17C or 380)	[-342]  
PNNPOP=101111101 (0x17D or 381)	[-341]  
PNNPPN=101011111 (0x15F or 351)	[146] *
PNNPPO=101011100 (0x15C or 348)	[-339]  
PNNPPP=101011101 (0x15D or 349)	[-338]  
PNONNN=100101011 (0x12B or 299)	[149] *
PNONNO=100101000 (0x128 or 296)	[-336]  
PNONNP=100101001 (0x129 or 297)	[-335]  
PNONON=100100011 (0x123 or 291)	[152] *
PNONOO=100100000 (0x120 or 288)	[-333]  
PNONOP=100100001 (0x121 or 289)	[-332]  
PNONPN=100100111 (0x127 or 295)	[155] *
PNONPO=100100100 (0x124 or 292)	[-330]  
PNONPP=100100101 (0x125 or 293)	[-329]  
PNOONN=100001011 (0x10B or 267)	[158] *
PNOONO=100001000 (0x108 or 264)	[-327]  
PNOONP=100001001 (0x109 or 265)	[-326]  
PNOOON=100000011 (0x103 or 259)	[161] *
PNOOOO=100000000 (0x100 or 256)	[-324]  
PNOOOP=100000001 (0x101 or 257)	[-323]  
PNOOPN=100000111 (0x107 or 263)	[164] *
PNOOPO=100000100 (0x104 or 260)	[-321]  
PNOOPP=100000101 (0x105 or 261)	[-320]  
PNOPNN=100011011 (0x11B or 283)	[167] *
PNOPNO=100011000 (0x118 or 280)	[-318]  
PNOPNP=100011001 (0x119 or 281)	[-317]  
PNOPON=100010011 (0x113 or 275)	[170] *
PNOPOO=100010000 (0x110 or 272)	[-315]  
PNOPOP=100010001 (0x111 or 273)	[-314]  
PNOPPN=100010111 (0x117 or 279)	[173] *
PNOPPO=100010100 (0x114 or 276)	[-312]  
PNOPPP=100010101 (0x115 or 277)	[-311]  
PNPNNN=101101011 (0x16B or 363)	[176] *
PNPNNO=101101000 (0x168 or 360)	[-309]  
PNPNNP=101101001 (0x169 or 361)	[-308]  
PNPNON=101100011 (0x163 or 355)	[179] *
PNPNOO=101100000 (0x160 or 352)	[-306]  
PNPNOP=101100001 (0x161 or 353)	[-305]  
PNPNPN=101100111 (0x167 or 359)	[182] *
PNPNPO=101100100 (0x164 or 356)	[-303]  
PNPNPP=101100101 (0x165 or 357)	[-302]  
PNPONN=101001011 (0x14B or 331)	[185] *
PNPONO=101001000 (0x148 or 328)	[-300]  
PNPONP=101001001 (0x149 or 329)	[-299]  
PNPOON=101000011 (0x143 or 323)	[188] *
PNPOOO=101000000 (0x140 or 320)	[-297]  
PNPOOP=101000001 (0x141 or 321)	[-296]  
PNPOPN=101000111 (0x147 or 327)	[191] *
PNPOPO=101000100 (0x144 or 324)	[-294]  
PNPOPP=101000101 (0x145 or 325)	[-293]  
PNPPNN=101011011 (0x15B or 347)	[194] *
PNPPNO=101011000 (0x158 or 344)	[-291]  
PNPPNP=101011001 (0x159 or 345)	[-290]  
PNPPON=101010011 (0x153 or 339)	[197] *
PNPPOO=101010000 (0x150 or 336)	[-288]  
PNPPOP=101010001 (0x151 or 337)	[-287]  
PNPPPN=101010111 (0x157 or 343)	[200] *
PNPPPO=101010100 (0x154 or 340)	[-285]  
PNPPPP=101010101 (0x155 or 341)	[-284]  
PONNNN=000101011 (0x02B or 43)	[203] *
PONNNO=000101000 (0x028 or 40)	[-255]  
PONNNP=000101001 (0x029 or 41)	[-254]  
PONNON=000100011 (0x023 or 35)	[206] *
PONNOO=000100000 (0x020 or 32)	[-252]  
PONNOP=000100001 (0x021 or 33)	[-251]  
PONNPN=000100111 (0x027 or 39)	[209] *
PONNPO=000100100 (0x024 or 36)	[-249]  
PONNPP=000100101 (0x025 or 37)	[-248]  
PONONN=001101011 (0x06B or 107)	[212] *
PONONO=001101000 (0x068 or 104)	[-228]  
PONONP=001101001 (0x069 or 105)	[-227]  
PONOON=001100011 (0x063 or 99)	[215] *
PONOOO=001100000 (0x060 or 96)	[-225]  
PONOOP=001100001 (0x061 or 97)	[-224]  
PONOPN=001100111 (0x067 or 103)	[218] *
PONOPO=001100100 (0x064 or 100)	[-222]  
PONOPP=001100101 (0x065 or 101)	[-221]  
PONPNN=000001111 (0x00F or 15)	[221] *
PONPNO=000001100 (0x00C or 12)	[-21]  
PONPNP=000001101 (0x00D or 13)	[-20]  
PONPON=001101111 (0x06F or 111)	[224] *
PONPOO=001101100 (0x06C or 108)	[-18]  
PONPOP=001101101 (0x06D or 109)	[-17]  
PONPPN=001001111 (0x04F or 79)	[227] *
PONPPO=001001100 (0x04C or 76)	[-15]  
PONPPP=001001101 (0x04D or 77)	[-14]  
POONNN=000101011 (0x02B or 43)	[203]  
POONNO=000101000 (0x028 or 40)	[-255]  
POONNP=000101001 (0x029 or 41)	[-254]  
POONON=000100011 (0x023 or 35)	[206]  
POONOO=000100000 (0x020 or 32)	[-252]  
POONOP=000100001 (0x021 or 33)	[-251]  
POONPN=000100111 (0x027 or 39)	[209]  
POONPO=000100100 (0x024 or 36)	[-249]  
POONPP=000100101 (0x025 or 37)	[-248]  
POOONN=000001011 (0x00B or 11)	[239] *
POOONO=000001000 (0x008 or 8)	[-246]  
POOONP=000001001 (0x009 or 9)	[-245]  
POOOON=000000011 (0x003 or 3)	[242] *
POOOOO=000000000 (0x000 or 0)	[-243]  
POOOOP=000000001 (0x001 or 1)	[-242]  
POOOPN=000000111 (0x007 or 7)	[245] *
POOOPO=000000100 (0x004 or 4)	[-240]  
POOOPP=000000101 (0x005 or 5)	[-239]  
POOPNN=000001011 (0x00B or 11)	[239]  
POOPNO=000001000 (0x008 or 8)	[-246]  
POOPNP=000001001 (0x009 or 9)	[-245]  
POOPON=000000011 (0x003 or 3)	[242]  
POOPOO=000000000 (0x000 or 0)	[-243]  
POOPOP=000000001 (0x001 or 1)	[-242]  
POOPPN=000000111 (0x007 or 7)	[245]  
POOPPO=000000100 (0x004 or 4)	[-240]  
POOPPP=000000101 (0x005 or 5)	[-239]  
POPNNN=001101011 (0x06B or 107)	[212]  
POPNNO=001101000 (0x068 or 104)	[-228]  
POPNNP=001101001 (0x069 or 105)	[-227]  
POPNON=001100011 (0x063 or 99)	[215]  
POPNOO=001100000 (0x060 or 96)	[-225]  
POPNOP=001100001 (0x061 or 97)	[-224]  
POPNPN=001100111 (0x067 or 103)	[218]  
POPNPO=001100100 (0x064 or 100)	[-222]  
POPNPP=001100101 (0x065 or 101)	[-221]  
POPONN=001001011 (0x04B or 75)	[266] *
POPONO=001001000 (0x048 or 72)	[-219]  
POPONP=001001001 (0x049 or 73)	[-218]  
POPOON=001000011 (0x043 or 67)	[269] *
POPOOO=001000000 (0x040 or 64)	[-216]  
POPOOP=001000001 (0x041 or 65)	[-215]  
POPOPN=001000111 (0x047 or 71)	[272] *
POPOPO=001000100 (0x044 or 68)	[-213]  
POPOPP=001000101 (0x045 or 69)	[-212]  
POPPNN=001001011 (0x04B or 75)	[266]  
POPPNO=001001000 (0x048 or 72)	[-219]  
POPPNP=001001001 (0x049 or 73)	[-218]  
POPPON=001000011 (0x043 or 67)	[269]  
POPPOO=001000000 (0x040 or 64)	[-216]  
POPPOP=001000001 (0x041 or 65)	[-215]  
POPPPN=001000111 (0x047 or 71)	[272]  
POPPPO=001000100 (0x044 or 68)	[-213]  
POPPPP=001000101 (0x045 or 69)	[-212]  
PPNNNN=010111010 (0x0BA or 186)	[-202]  
PPNNNO=010111000 (0x0B8 or 184)	[-201]  
PPNNNP=010111001 (0x0B9 or 185)	[-200]  
PPNNON=010110010 (0x0B2 or 178)	[-199]  
PPNNOO=010110000 (0x0B0 or 176)	[-198]  
PPNNOP=010110001 (0x0B1 or 177)	[-197]  
PPNNPN=010110110 (0x0B6 or 182)	[-196]  
PPNNPO=010110100 (0x0B4 or 180)	[-195]  
PPNNPP=010110101 (0x0B5 or 181)	[-194]  
PPNONN=011111010 (0x0FA or 250)	[-193]  
PPNONO=011111000 (0x0F8 or 248)	[-192]  
PPNONP=011111001 (0x0F9 or 249)	[-191]  
PPNOON=011110010 (0x0F2 or 242)	[-190]  
PPNOOO=011110000 (0x0F0 or 240)	[-189]  
PPNOOP=011110001 (0x0F1 or 241)	[-188]  
PPNOPN=011110110 (0x0F6 or 246)	[-187]  
PPNOPO=011110100 (0x0F4 or 244)	[-186]  
PPNOPP=011110101 (0x0F5 or 245)	[-185]  
PPNPNN=010011110 (0x09E or 158)	[-184]  
PPNPNO=010011100 (0x09C or 156)	[-183]  
PPNPNP=010011101 (0x09D or 157)	[-182]  
PPNPON=011111110 (0x0FE or 254)	[-181]  
PPNPOO=011111100 (0x0FC or 252)	[-180]  
PPNPOP=011111101 (0x0FD or 253)	[-179]  
PPNPPN=011011110 (0x0DE or 222)	[-178]  
PPNPPO=011011100 (0x0DC or 220)	[-177]  
PPNPPP=011011101 (0x0DD or 221)	[-176]  
PPONNN=010101010 (0x0AA or 170)	[-175]  
PPONNO=010101000 (0x0A8 or 168)	[-174]  
PPONNP=010101001 (0x0A9 or 169)	[-173]  
PPONON=010100010 (0x0A2 or 162)	[-172]  
PPONOO=010100000 (0x0A0 or 160)	[-171]  
PPONOP=010100001 (0x0A1 or 161)	[-170]  
PPONPN=010100110 (0x0A6 or 166)	[-169]  
PPONPO=010100100 (0x0A4 or 164)	[-168]  
PPONPP=010100101 (0x0A5 or 165)	[-167]  
PPOONN=010001010 (0x08A or 138)	[-166]  
PPOONO=010001000 (0x088 or 136)	[-165]  
PPOONP=010001001 (0x089 or 137)	[-164]  
PPOOON=010000010 (0x082 or 130)	[-163]  
PPOOOO=010000000 (0x080 or 128)	[-162]  
PPOOOP=010000001 (0x081 or 129)	[-161]  
PPOOPN=010000110 (0x086 or 134)	[-160]  
PPOOPO=010000100 (0x084 or 132)	[-159]  
PPOOPP=010000101 (0x085 or 133)	[-158]  
PPOPNN=010011010 (0x09A or 154)	[-157]  
PPOPNO=010011000 (0x098 or 152)	[-156]  
PPOPNP=010011001 (0x099 or 153)	[-155]  
PPOPON=010010010 (0x092 or 146)	[-154]  
PPOPOO=010010000 (0x090 or 144)	[-153]  
PPOPOP=010010001 (0x091 or 145)	[-152]  
PPOPPN=010010110 (0x096 or 150)	[-151]  
PPOPPO=010010100 (0x094 or 148)	[-150]  
PPOPPP=010010101 (0x095 or 149)	[-149]  
PPPNNN=011101010 (0x0EA or 234)	[-148]  
PPPNNO=011101000 (0x0E8 or 232)	[-147]  
PPPNNP=011101001 (0x0E9 or 233)	[-146]  
PPPNON=011100010 (0x0E2 or 226)	[-145]  
PPPNOO=011100000 (0x0E0 or 224)	[-144]  
PPPNOP=011100001 (0x0E1 or 225)	[-143]  
PPPNPN=011100110 (0x0E6 or 230)	[-142]  
PPPNPO=011100100 (0x0E4 or 228)	[-141]  
PPPNPP=011100101 (0x0E5 or 229)	[-140]  
PPPONN=011001010 (0x0CA or 202)	[-139]  
PPPONO=011001000 (0x0C8 or 200)	[-138]  
PPPONP=011001001 (0x0C9 or 201)	[-137]  
PPPOON=011000010 (0x0C2 or 194)	[-136]  
PPPOOO=011000000 (0x0C0 or 192)	[-135]  
PPPOOP=011000001 (0x0C1 or 193)	[-134]  
PPPOPN=011000110 (0x0C6 or 198)	[-133]  
PPPOPO=011000100 (0x0C4 or 196)	[-132]  
PPPOPP=011000101 (0x0C5 or 197)	[-131]  
PPPPNN=011011010 (0x0DA or 218)	[-130]  
PPPPNO=011011000 (0x0D8 or 216)	[-129]  
PPPPNP=011011001 (0x0D9 or 217)	[-128]  
PPPPON=011010010 (0x0D2 or 210)	[-127]  
PPPPOO=011010000 (0x0D0 or 208)	[-126]  
PPPPOP=011010001 (0x0D1 or 209)	[-125]  
PPPPPN=011010110 (0x0D6 or 214)	[-124]  
PPPPPO=011010100 (0x0D4 or 212)	[-123]  
PPPPPP=011010101 (0x0D5 or 213)	[-122]  

0x13 (19) not covered
0x17 (23) not covered
0x1B (27) not covered
0x1F (31) not covered
0x2C (44) not covered
0x2D (45) not covered
0x2E (46) not covered
0x2F (47) not covered
0x33 (51) not covered
0x37 (55) not covered
0x3B (59) not covered
0x3C (60) not covered
0x3D (61) not covered
0x3E (62) not covered
0x3F (63) not covered
0x53 (83) not covered
0x57 (87) not covered
0x5B (91) not covered
0x5F (95) not covered
0x73 (115) not covered
0x77 (119) not covered
0x7B (123) not covered
0x7F (127) not covered
0x83 (131) not covered
0x87 (135) not covered
0x8B (139) not covered
0x8F (143) not covered
0x93 (147) not covered
0x97 (151) not covered
0x9B (155) not covered
0x9F (159) not covered
0xA3 (163) not covered
0xA7 (167) not covered
0xAB (171) not covered
0xAF (175) not covered
0xB3 (179) not covered
0xB7 (183) not covered
0xBB (187) not covered
0xBC (188) not covered
0xBD (189) not covered
0xBE (190) not covered
0xBF (191) not covered
0xC3 (195) not covered
0xC7 (199) not covered
0xCB (203) not covered
0xCC (204) not covered
0xCD (205) not covered
0xCE (206) not covered
0xCF (207) not covered
0xD3 (211) not covered
0xD7 (215) not covered
0xDB (219) not covered
0xDF (223) not covered
0xE3 (227) not covered
0xE7 (231) not covered
0xEB (235) not covered
0xEC (236) not covered
0xED (237) not covered
0xEE (238) not covered
0xEF (239) not covered
0xF3 (243) not covered
0xF7 (247) not covered
0xFB (251) not covered
0xFF (255) not covered
0x10F (271) not covered
0x12C (300) not covered
0x12D (301) not covered
0x12E (302) not covered
0x12F (303) not covered
0x13C (316) not covered
0x13D (317) not covered
0x13E (318) not covered
0x13F (319) not covered
0x14F (335) not covered
0x16F (367) not covered

Covered 309 cells (80.47%)

Покрыто 309 ячеек из 384 (80.47%)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Микросхема троичного микроконтроллера Triador3000

Post by Shaos »

В последнем случае у меня получалось поднять покрытие до 333, однако тогда последние 81 слов превращались в мешанину из копий разных ячеек, а мне хотелось сохранить тот же порядок в последних 81 словах, что и в конце первой трети памяти, чтобы стек (растущий от PPP PPP в сторону уменьшения адресов) шёл последовательно через какую бы зону мы туда ни обратились. Вобщем алгоритм такой:

в зоне Nxx xxx ничего не трогаем, как конвертер выдал, так и есть;
в зонах ONx xxx и OOx xxx - если бит 4 получился 1, то сбрасываем его в 0;
в зоне OPx xxx - если бит 4 получился 1, то сбрасываем его в 0 и если бит 6 получился 1, то сбрасываем его в 0;
в зоне PNx xxx - если бит 1 получился 1, то бит 0 тоже делаем 1;
в зоне POx xxx - если бит 1 получился 1, то бит 0 тоже делаем 1 и если бит 4 получился 1, то сбрасываем его в 0;
в зоне PPx xxx - ничего не трогаем (последние 81 слово повторяет конец зоны Nxx xxx).

Code: Select all

#if 1
    if(s[0]=='P')
    {
       if(s[1]!='P' && o[1]=='P') i|=1;
       if(s[1]=='O' && o[4]=='P') i-=16;
    }
    else if(s[0]=='O')
    {
       if(o[4]=='P') i-=16;
       if(s[1]=='P' && o[6]=='P') i-=64;
    }
#endif
#ifdef THREE
    if(s[1]=='P') i+=128;
    if(s[1]=='N') i+=256;
#endif
#ifdef TWO
    if(s[1]=='N') i+=128;
#endif
Ещё момент, что в 1-блочном варианте все зоны смотрят в один и тот же блок, в 2-блочном варианте (макрос TWO) зона Nxx xxx уходит во втрой блок, а в 3-блочном варианте (макрос THREE) зона Pxx xxx уходит во второй блок, а зона Nxx xxx - в третий. Интересно, что в результате раскладки получаются совместимыми друг с другом во всех трёх вариантах - всё что есть в 1-блочном варианте, есть в 2-блочном (с расширениями) и в 3-блочном (с ещё большими расширениями) - например во всех трёх вариантах есть отдельно стоящий блок из 9 ячеек с адресами -103...-95, куда скажем можно переместить стек возвратов для программ использующих всю остальную память, а в зоне Pxx xxx появляются отдельно стоящие ячейки (с шагом 3 начиная с адреса 122) где можно хранить отдельные внешние переменные...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Микросхема троичного микроконтроллера Triador-3000

Post by Shaos »

Пока до следующего троичного чипа далековато, наверное сейчас надо выкатить софт-корку гипотетического троичного микроконтроллера для обычного двоичного FPGA, пользуясь наработками из темы Использование двоичного FPGA для реализации троичного компа
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Микросхема троичного микроконтроллера Triador-3000

Post by Shaos »

Вобщем задача взять вот это

Image

и написать на его основе VHDL ядро микроконтроллера (причём на картинке реализовано только 2/3 опкодов Триадора - не реализованы jumps, skips и extensions - это надо будет дописать)

P.S. Предполагаемые EX-команды я вот тут описывал:
Shaos wrote:
NNNNN - EX -13 -> HLT ( halt and catch fire ; ) <<<<<<< перенесено по просьбе haqreu
NNNNO - EX -12 -> CUSTOM CIRCUIT C (read any registers, writes R1 and C)
NNNNP - EX -11 -> CUSTOM CIRCUIT B (read any registers, writes R1 and C)
NNNON - EX -10 -> CUSTOM CIRCUIT A (read any registers, writes R1 and C) <<<< например это может быть ADD (C,R1=R1+R2)

NNNOO - EX -9 -> PMT-9 (programmable by PEX)
NNNOP - EX -8 -> PMT-8 (programmable by PEX)
NNNPN - EX -7 -> PMT-7 (programmable by PEX)

NNNPO - EX -6 -> OPB-6 (R1 = R1 o R2) - programmable by PEX
NNNPP - EX -5 -> OPB-5 (R1 = R1 o R2) - programmable by PEX
NNONN - EX -4 -> OPB-4 (R1 = R1 o R2) - programmable by PEX
NNONO - EX -3 -> OPB-3 (R1 = R1 o R2) - programmable by PEX
NNONP - EX -2 -> OPB-2 (R1 = R1 o R2) - programmable by PEX
NNOON - EX -1 -> OPB-1 (R1 = R1 o R2) - programmable by PEX

NNOOO - EX 0 -> PEX (program customizable EX instructions above using R1,R2,R3,R4)
NNOOP - EX +1 -> CMP (hardwired OPB)
NNOPN - EX +2 -> MIN (hardwired OPB)
NNOPO - EX +3 -> MAX (hardwired OPB)
NNOPP - EX +4 -> MUL (hardwired OPB) <<< это то что я раньше MSK называл - у людей это MUL
NNPNN - EX +5 -> SUM (hardwired OPB)
NNPNO - EX +6 -> CON (hardwired OPB) <<< консенсус (бывший OVF - для генерации трита переноса при суммировании)

NNPNP - EX +7 -> CLC (hardwired PMT) <<< или очистка флага C слишком простая команда, чтобы под неё целый PMT отводить?
NNPON - EX +8 -> RLC (hardwired PMT)
NNPOO - EX +9 -> RRC (hardwired PMT)

NNPOP - EX +10 -> WMM (write R2,R1 to memory [27*R4+R3])
NNPPN - EX +11 -> RML (read lower triad from memory [27*R4+R3] to R1)
NNPPO - EX +12 -> RMH (read higher triad from memory [27*R4+R3] to R1)

NNPPP - EX +13 -> JPI (store current PC+1 to R12,R11 and jump to R13,R1) <<<< сохранять в R12,R11 и прыгать на R13,R1 вроде логичнее?
EX-команды обращения к памяти данных WMM, RML, RMH будут обращаться к внутренней памяти данных через схемы, описанные выше (те что 1 блок, 2 блока и 3 блока). Возможно наружу надо вытянуть все EX-команды с кодами от 0 и меньше, а не только CUSTOM CIRCUITS (EX -12, EX -11 и EX -10), а то уж очень не хочется мне 13 регистров PEX хранить внутри чипа...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Микросхема троичного микроконтроллера Triador-3000

Post by Shaos »

Памятью программ на вышеприведённой схеме является микросхема ПЗУ 2К, в которой можно расположить 486 троичных ячеек с адресами от ONNNNN (-121) до PPPPPP (+364), причём каждый трит адреса раскладывается на 2 бита (а старший трит, только на 1 бит, поэтому он может принимать значения только O или P) - вот маппинг троичных адресов на двоичные при таком подключении:

Code: Select all

 ONNNNN  -121   [2AA]
 ONNNNO  -120   [2A8]
 ONNNNP  -119   [2A9]
 ONNNON  -118   [2A2]
 ONNNOO  -117   [2A0]
 ONNNOP  -116   [2A1]
 ONNNPN  -115   [2A6]
 ONNNPO  -114   [2A4]
 ONNNPP  -113   [2A5]
 ONNONN  -112   [28A]
 ONNONO  -111   [288]
 ONNONP  -110   [289]
 ONNOON  -109   [282]
 ONNOOO  -108   [280]
 ONNOOP  -107   [281]
 ONNOPN  -106   [286]
 ONNOPO  -105   [284]
 ONNOPP  -104   [285]
 ONNPNN  -103   [29A]
 ONNPNO  -102   [298]
 ONNPNP  -101   [299]
 ONNPON  -100   [292]
 ONNPOO  -99    [290]
 ONNPOP  -98    [291]
 ONNPPN  -97    [296]
 ONNPPO  -96    [294]
 ONNPPP  -95    [295]
 ONONNN  -94    [22A]
 ONONNO  -93    [228]
 ONONNP  -92    [229]
 ONONON  -91    [222]
 ONONOO  -90    [220]
 ONONOP  -89    [221]
 ONONPN  -88    [226]
 ONONPO  -87    [224]
 ONONPP  -86    [225]
 ONOONN  -85    [20A]
 ONOONO  -84    [208]
 ONOONP  -83    [209]
 ONOOON  -82    [202]
 ONOOOO  -81    [200]
 ONOOOP  -80    [201]
 ONOOPN  -79    [206]
 ONOOPO  -78    [204]
 ONOOPP  -77    [205]
 ONOPNN  -76    [21A]
 ONOPNO  -75    [218]
 ONOPNP  -74    [219]
 ONOPON  -73    [212]
 ONOPOO  -72    [210]
 ONOPOP  -71    [211]
 ONOPPN  -70    [216]
 ONOPPO  -69    [214]
 ONOPPP  -68    [215]
 ONPNNN  -67    [26A]
 ONPNNO  -66    [268]
 ONPNNP  -65    [269]
 ONPNON  -64    [262]
 ONPNOO  -63    [260]
 ONPNOP  -62    [261]
 ONPNPN  -61    [266]
 ONPNPO  -60    [264]
 ONPNPP  -59    [265]
 ONPONN  -58    [24A]
 ONPONO  -57    [248]
 ONPONP  -56    [249]
 ONPOON  -55    [242]
 ONPOOO  -54    [240]
 ONPOOP  -53    [241]
 ONPOPN  -52    [246]
 ONPOPO  -51    [244]
 ONPOPP  -50    [245]
 ONPPNN  -49    [25A]
 ONPPNO  -48    [258]
 ONPPNP  -47    [259]
 ONPPON  -46    [252]
 ONPPOO  -45    [250]
 ONPPOP  -44    [251]
 ONPPPN  -43    [256]
 ONPPPO  -42    [254]
 ONPPPP  -41    [255]
 OONNNN  -40    [0AA]
 OONNNO  -39    [0A8]
 OONNNP  -38    [0A9]
 OONNON  -37    [0A2]
 OONNOO  -36    [0A0]
 OONNOP  -35    [0A1]
 OONNPN  -34    [0A6]
 OONNPO  -33    [0A4]
 OONNPP  -32    [0A5]
 OONONN  -31    [08A]
 OONONO  -30    [088]
 OONONP  -29    [089]
 OONOON  -28    [082]
 OONOOO  -27    [080]
 OONOOP  -26    [081]
 OONOPN  -25    [086]
 OONOPO  -24    [084]
 OONOPP  -23    [085]
 OONPNN  -22    [09A]
 OONPNO  -21    [098]
 OONPNP  -20    [099]
 OONPON  -19    [092]
 OONPOO  -18    [090]
 OONPOP  -17    [091]
 OONPPN  -16    [096]
 OONPPO  -15    [094]
 OONPPP  -14    [095]
 OOONNN  -13    [02A]
 OOONNO  -12    [028]
 OOONNP  -11    [029]
 OOONON  -10    [022]
 OOONOO  -9     [020]
 OOONOP  -8     [021]
 OOONPN  -7     [026]
 OOONPO  -6     [024]
 OOONPP  -5     [025]
 OOOONN  -4     [00A]
 OOOONO  -3     [008]
 OOOONP  -2     [009]
 OOOOON  -1     [002]
 OOOOOO  0      [000]
 OOOOOP  1      [001]
 OOOOPN  2      [006]
 OOOOPO  3      [004]
 OOOOPP  4      [005]
 OOOPNN  5      [01A]
 OOOPNO  6      [018]
 OOOPNP  7      [019]
 OOOPON  8      [012]
 OOOPOO  9      [010]
 OOOPOP  10     [011]
 OOOPPN  11     [016]
 OOOPPO  12     [014]
 OOOPPP  13     [015]
 OOPNNN  14     [06A]
 OOPNNO  15     [068]
 OOPNNP  16     [069]
 OOPNON  17     [062]
 OOPNOO  18     [060]
 OOPNOP  19     [061]
 OOPNPN  20     [066]
 OOPNPO  21     [064]
 OOPNPP  22     [065]
 OOPONN  23     [04A]
 OOPONO  24     [048]
 OOPONP  25     [049]
 OOPOON  26     [042]
 OOPOOO  27     [040]
 OOPOOP  28     [041]
 OOPOPN  29     [046]
 OOPOPO  30     [044]
 OOPOPP  31     [045]
 OOPPNN  32     [05A]
 OOPPNO  33     [058]
 OOPPNP  34     [059]
 OOPPON  35     [052]
 OOPPOO  36     [050]
 OOPPOP  37     [051]
 OOPPPN  38     [056]
 OOPPPO  39     [054]
 OOPPPP  40     [055]
 OPNNNN  41     [1AA]
 OPNNNO  42     [1A8]
 OPNNNP  43     [1A9]
 OPNNON  44     [1A2]
 OPNNOO  45     [1A0]
 OPNNOP  46     [1A1]
 OPNNPN  47     [1A6]
 OPNNPO  48     [1A4]
 OPNNPP  49     [1A5]
 OPNONN  50     [18A]
 OPNONO  51     [188]
 OPNONP  52     [189]
 OPNOON  53     [182]
 OPNOOO  54     [180]
 OPNOOP  55     [181]
 OPNOPN  56     [186]
 OPNOPO  57     [184]
 OPNOPP  58     [185]
 OPNPNN  59     [19A]
 OPNPNO  60     [198]
 OPNPNP  61     [199]
 OPNPON  62     [192]
 OPNPOO  63     [190]
 OPNPOP  64     [191]
 OPNPPN  65     [196]
 OPNPPO  66     [194]
 OPNPPP  67     [195]
 OPONNN  68     [12A]
 OPONNO  69     [128]
 OPONNP  70     [129]
 OPONON  71     [122]
 OPONOO  72     [120]
 OPONOP  73     [121]
 OPONPN  74     [126]
 OPONPO  75     [124]
 OPONPP  76     [125]
 OPOONN  77     [10A]
 OPOONO  78     [108]
 OPOONP  79     [109]
 OPOOON  80     [102]
 OPOOOO  81     [100]
 OPOOOP  82     [101]
 OPOOPN  83     [106]
 OPOOPO  84     [104]
 OPOOPP  85     [105]
 OPOPNN  86     [11A]
 OPOPNO  87     [118]
 OPOPNP  88     [119]
 OPOPON  89     [112]
 OPOPOO  90     [110]
 OPOPOP  91     [111]
 OPOPPN  92     [116]
 OPOPPO  93     [114]
 OPOPPP  94     [115]
 OPPNNN  95     [16A]
 OPPNNO  96     [168]
 OPPNNP  97     [169]
 OPPNON  98     [162]
 OPPNOO  99     [160]
 OPPNOP  100    [161]
 OPPNPN  101    [166]
 OPPNPO  102    [164]
 OPPNPP  103    [165]
 OPPONN  104    [14A]
 OPPONO  105    [148]
 OPPONP  106    [149]
 OPPOON  107    [142]
 OPPOOO  108    [140]
 OPPOOP  109    [141]
 OPPOPN  110    [146]
 OPPOPO  111    [144]
 OPPOPP  112    [145]
 OPPPNN  113    [15A]
 OPPPNO  114    [158]
 OPPPNP  115    [159]
 OPPPON  116    [152]
 OPPPOO  117    [150]
 OPPPOP  118    [151]
 OPPPPN  119    [156]
 OPPPPO  120    [154]
 OPPPPP  121    [155]
 PNNNNN  122    [6AA]
 PNNNNO  123    [6A8]
 PNNNNP  124    [6A9]
 PNNNON  125    [6A2]
 PNNNOO  126    [6A0]
 PNNNOP  127    [6A1]
 PNNNPN  128    [6A6]
 PNNNPO  129    [6A4]
 PNNNPP  130    [6A5]
 PNNONN  131    [68A]
 PNNONO  132    [688]
 PNNONP  133    [689]
 PNNOON  134    [682]
 PNNOOO  135    [680]
 PNNOOP  136    [681]
 PNNOPN  137    [686]
 PNNOPO  138    [684]
 PNNOPP  139    [685]
 PNNPNN  140    [69A]
 PNNPNO  141    [698]
 PNNPNP  142    [699]
 PNNPON  143    [692]
 PNNPOO  144    [690]
 PNNPOP  145    [691]
 PNNPPN  146    [696]
 PNNPPO  147    [694]
 PNNPPP  148    [695]
 PNONNN  149    [62A]
 PNONNO  150    [628]
 PNONNP  151    [629]
 PNONON  152    [622]
 PNONOO  153    [620]
 PNONOP  154    [621]
 PNONPN  155    [626]
 PNONPO  156    [624]
 PNONPP  157    [625]
 PNOONN  158    [60A]
 PNOONO  159    [608]
 PNOONP  160    [609]
 PNOOON  161    [602]
 PNOOOO  162    [600]
 PNOOOP  163    [601]
 PNOOPN  164    [606]
 PNOOPO  165    [604]
 PNOOPP  166    [605]
 PNOPNN  167    [61A]
 PNOPNO  168    [618]
 PNOPNP  169    [619]
 PNOPON  170    [612]
 PNOPOO  171    [610]
 PNOPOP  172    [611]
 PNOPPN  173    [616]
 PNOPPO  174    [614]
 PNOPPP  175    [615]
 PNPNNN  176    [66A]
 PNPNNO  177    [668]
 PNPNNP  178    [669]
 PNPNON  179    [662]
 PNPNOO  180    [660]
 PNPNOP  181    [661]
 PNPNPN  182    [666]
 PNPNPO  183    [664]
 PNPNPP  184    [665]
 PNPONN  185    [64A]
 PNPONO  186    [648]
 PNPONP  187    [649]
 PNPOON  188    [642]
 PNPOOO  189    [640]
 PNPOOP  190    [641]
 PNPOPN  191    [646]
 PNPOPO  192    [644]
 PNPOPP  193    [645]
 PNPPNN  194    [65A]
 PNPPNO  195    [658]
 PNPPNP  196    [659]
 PNPPON  197    [652]
 PNPPOO  198    [650]
 PNPPOP  199    [651]
 PNPPPN  200    [656]
 PNPPPO  201    [654]
 PNPPPP  202    [655]
 PONNNN  203    [4AA]
 PONNNO  204    [4A8]
 PONNNP  205    [4A9]
 PONNON  206    [4A2]
 PONNOO  207    [4A0]
 PONNOP  208    [4A1]
 PONNPN  209    [4A6]
 PONNPO  210    [4A4]
 PONNPP  211    [4A5]
 PONONN  212    [48A]
 PONONO  213    [488]
 PONONP  214    [489]
 PONOON  215    [482]
 PONOOO  216    [480]
 PONOOP  217    [481]
 PONOPN  218    [486]
 PONOPO  219    [484]
 PONOPP  220    [485]
 PONPNN  221    [49A]
 PONPNO  222    [498]
 PONPNP  223    [499]
 PONPON  224    [492]
 PONPOO  225    [490]
 PONPOP  226    [491]
 PONPPN  227    [496]
 PONPPO  228    [494]
 PONPPP  229    [495]
 POONNN  230    [42A]
 POONNO  231    [428]
 POONNP  232    [429]
 POONON  233    [422]
 POONOO  234    [420]
 POONOP  235    [421]
 POONPN  236    [426]
 POONPO  237    [424]
 POONPP  238    [425]
 POOONN  239    [40A]
 POOONO  240    [408]
 POOONP  241    [409]
 POOOON  242    [402]
 POOOOO  243    [400]
 POOOOP  244    [401]
 POOOPN  245    [406]
 POOOPO  246    [404]
 POOOPP  247    [405]
 POOPNN  248    [41A]
 POOPNO  249    [418]
 POOPNP  250    [419]
 POOPON  251    [412]
 POOPOO  252    [410]
 POOPOP  253    [411]
 POOPPN  254    [416]
 POOPPO  255    [414]
 POOPPP  256    [415]
 POPNNN  257    [46A]
 POPNNO  258    [468]
 POPNNP  259    [469]
 POPNON  260    [462]
 POPNOO  261    [460]
 POPNOP  262    [461]
 POPNPN  263    [466]
 POPNPO  264    [464]
 POPNPP  265    [465]
 POPONN  266    [44A]
 POPONO  267    [448]
 POPONP  268    [449]
 POPOON  269    [442]
 POPOOO  270    [440]
 POPOOP  271    [441]
 POPOPN  272    [446]
 POPOPO  273    [444]
 POPOPP  274    [445]
 POPPNN  275    [45A]
 POPPNO  276    [458]
 POPPNP  277    [459]
 POPPON  278    [452]
 POPPOO  279    [450]
 POPPOP  280    [451]
 POPPPN  281    [456]
 POPPPO  282    [454]
 POPPPP  283    [455]
 PPNNNN  284    [5AA]
 PPNNNO  285    [5A8]
 PPNNNP  286    [5A9]
 PPNNON  287    [5A2]
 PPNNOO  288    [5A0]
 PPNNOP  289    [5A1]
 PPNNPN  290    [5A6]
 PPNNPO  291    [5A4]
 PPNNPP  292    [5A5]
 PPNONN  293    [58A]
 PPNONO  294    [588]
 PPNONP  295    [589]
 PPNOON  296    [582]
 PPNOOO  297    [580]
 PPNOOP  298    [581]
 PPNOPN  299    [586]
 PPNOPO  300    [584]
 PPNOPP  301    [585]
 PPNPNN  302    [59A]
 PPNPNO  303    [598]
 PPNPNP  304    [599]
 PPNPON  305    [592]
 PPNPOO  306    [590]
 PPNPOP  307    [591]
 PPNPPN  308    [596]
 PPNPPO  309    [594]
 PPNPPP  310    [595]
 PPONNN  311    [52A]
 PPONNO  312    [528]
 PPONNP  313    [529]
 PPONON  314    [522]
 PPONOO  315    [520]
 PPONOP  316    [521]
 PPONPN  317    [526]
 PPONPO  318    [524]
 PPONPP  319    [525]
 PPOONN  320    [50A]
 PPOONO  321    [508]
 PPOONP  322    [509]
 PPOOON  323    [502]
 PPOOOO  324    [500]
 PPOOOP  325    [501]
 PPOOPN  326    [506]
 PPOOPO  327    [504]
 PPOOPP  328    [505]
 PPOPNN  329    [51A]
 PPOPNO  330    [518]
 PPOPNP  331    [519]
 PPOPON  332    [512]
 PPOPOO  333    [510]
 PPOPOP  334    [511]
 PPOPPN  335    [516]
 PPOPPO  336    [514]
 PPOPPP  337    [515]
 PPPNNN  338    [56A]
 PPPNNO  339    [568]
 PPPNNP  340    [569]
 PPPNON  341    [562]
 PPPNOO  342    [560]
 PPPNOP  343    [561]
 PPPNPN  344    [566]
 PPPNPO  345    [564]
 PPPNPP  346    [565]
 PPPONN  347    [54A]
 PPPONO  348    [548]
 PPPONP  349    [549]
 PPPOON  350    [542]
 PPPOOO  351    [540]
 PPPOOP  352    [541]
 PPPOPN  353    [546]
 PPPOPO  354    [544]
 PPPOPP  355    [545]
 PPPPNN  356    [55A]
 PPPPNO  357    [558]
 PPPPNP  358    [559]
 PPPPON  359    [552]
 PPPPOO  360    [550]
 PPPPOP  361    [551]
 PPPPPN  362    [556]
 PPPPPO  363    [554]
 PPPPPP  364    [555]
Выходной байт при этом конвертируется в 5 тритов вот такой вот преобразовалкой (взято из LogiSim схемы):

Code: Select all

v2.0 raw
0 1 6 4 5 1a 18 19
12 10 11 16 14 15 6a 68
69 62 60 61 66 64 65 4a
48 49 42 40 41 46 44 45
5a 58 59 52 50 51 56 54
55 1aa 1a8 1a9 1a2 1a0 1a1 1a6
1a4 1a5 18a 188 189 182 180 181
186 184 185 19a 198 199 192 190
191 196 194 195 12a 128 129 122
120 121 126 124 125 10a 108 109
102 100 101 106 104 105 11a 118
119 112 110 111 116 114 115 16a
168 169 162 160 161 166 164 165
14a 148 149 142 140 141 146 144
145 15a 158 159 152 150 151 156
154 155 13*0 2aa 2a8 2a9 2a2 2a0
2a1 2a6 2a4 2a5 28a 288 289 282
280 281 286 284 285 29a 298 299
292 290 291 296 294 295 22a 228
229 222 220 221 226 224 225 20a
208 209 202 200 201 206 204 205
21a 218 219 212 210 211 216 214
215 26a 268 269 262 260 261 266
264 265 24a 248 249 242 240 241
246 244 245 25a 258 259 252 250
251 256 254 255 aa a8 a9 a2
a0 a1 a6 a4 a5 8a 88 89
82 80 81 86 84 85 9a 98
99 92 90 91 96 94 95 2a
28 29 22 20 21 26 24 25
a 8 9 2
По идее для упрощения можно расположить параллельно 2 ПЗУ (или 1 ПЗУ на 16 битов) - тогда преобразовалки данных не понадобится - просто каждые 2 бита данных будут преобразовываться в 1 трит (как и адрес) и нам нужно будет только 10 битов из 16 т.к. слово программ в Триадоре 5 тритов) - лишние биты можно под проверку целостности данных отдать...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Микросхема троичного микроконтроллера Triador-3000

Post by Shaos »

Shaos wrote: 21 Mar 2025 22:47 EX-команды обращения к памяти данных WMM, RML, RMH будут обращаться к внутренней памяти данных через схемы, описанные выше (те что 1 блок, 2 блока и 3 блока). Возможно наружу надо вытянуть все EX-команды с кодами от 0 и меньше, а не только CUSTOM CIRCUITS (EX -12, EX -11 и EX -10), а то уж очень не хочется мне 13 регистров PEX хранить внутри чипа...
Либо можно двигаться фазами:
  • TRI1000 - микроконтроллер с базовым набором команд без EX (и соответственно без памяти данных) - любая попытка вызова EX-команды введёт микроконтроллер в режим HLT (возможно тут уже можно добавить внешний интерфейс EX-команд);
  • TRI2xxx - микроконтроллер с EX-командами доступа к внутренней памяти данных (на 1, 2 или 3 блока) и внешним интерфейсом EX-команд;
  • TRI3xxx - микроконтроллер с реализацией всех EX-команд и внутренней памятью данных (также на 1, 2 или 3 блока).
1, 2 или 3 блока данных будут предоставлять соответственно 123, 225 или 309 трайтов (см. выше), поэтому полные наименования таких микроконтроллеров будут TRI3123, TRI3225 и TRI3309 соответственно (и у всех память программ будет располагаться снаружи)...

P.S. Надо прикинуть сложность реализации EX-команды JPI - может быть сразу в TRI1000 её добавить (или это уже будет TRI1000A?)

P.P.S. А в будущем можно ещё и интерфейс к SPI-памяти прикрутить с кэшем на 27 команд внутри чипа или сразу на встроенный FLASH замахнуться?...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Микросхема троичного микроконтроллера Triador3000

Post by Shaos »

Shaos wrote: 11 May 2020 03:13 Почти случайно с помощью ручного подгона и DDT удалось составить на редкость компактную преобразовалку из 4-тритного адреса (81 разных адресов) в 7-битный адрес (128 ячеек):

Code: Select all

/* Generated by DDTc v0.5
   Solution is 10 x DG403
   See www.ternary.info */

#include "ddt.h"

int ddt_bin81a(int f, DDT i1, DDT i2, DDT i3, DDT i4, DDT* o1, DDT* o2, DDT* o3, DDT* o4, DDT* o5, DDT* o6, DDT* o7)
{
 DDT r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15;
 int f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15;
 f1 = ddt_e21(f,i4,N,P,&r1);
 if(f1 < 0) return f1;
 f2 = ddt_e12(f,i4,P,N,&r2);
 if(f2 < 0) return f2;
 f3 = ddt_e12(f,i1,P,N,&r3);
 if(f3 < 0) return f3;
 f4 = ddt_e21(f,i2,N,r3,&r4);
 if(f4 < 0) return f4;
 f5 = ddt_e21(f,i3,r4,P,&r5);
 if(f5 < 0) return f5;
 f6 = ddt_e12(f,i3,P,r4,&r6);
 if(f6 < 0) return f6;
 f7 = ddt_e21(f,i2,r3,P,&r7);
 if(f7 < 0) return f7;
 f8 = ddt_mux(f,i2,P,r3,N,&r8);
 if(f8 < 0) return f8;
 f9 = ddt_e12(f,i2,P,r3,&r9);
 if(f9 < 0) return f9;
 f10 = ddt_mux(f,i3,r8,r9,r8,&r10);
 if(f10 < 0) return f10;
 f11 = ddt_e21(f,i1,N,P,&r11);
 if(f11 < 0) return f11;
 f12 = ddt_mux(f,i1,P,N,P,&r12);
 if(f12 < 0) return f12;
 f13 = ddt_mux(f,i2,r11,r12,r11,&r13);
 if(f13 < 0) return f13;
 f14 = ddt_e12(f,i2,r11,r12,&r14);
 if(f14 < 0) return f14;
 f15 = ddt_e12(f,i3,r13,r14,&r15);
 if(f15 < 0) return f15;
 if(o1) *o1 = r1;
 if(o2) *o2 = r2;
 if(o3) *o3 = r5;
 if(o4) *o4 = r6;
 if(o5) *o5 = r7;
 if(o6) *o6 = r10;
 if(o7) *o7 = r15;
 return f1+f2+f3+f4+f5+f6+f7+f8+f9+f10+f11+f12+f13+f14+f15;
}
Я не поленился и вручную набрал эту схему в логисиме, проверив каждый троичный адрес перебором - работает:

В этой схеме 10 блоков E12 и 9 блоков E21, что означает, что её можно смакетировать используя 10 микросхем DG403 (и ещё одна свободная половинка останется).

В покрытии по понятным причинам присутствуют дырки (т.к. не для каждой двоичной комбинации есть соответствующая троичная), но я наверное знаю как их заделать хотя бы частично :dj:

Code: Select all

OOOO 0000000
POOO 0000001
NOOO 0000010
     0000011 <
OPOO 0000100
PPOO 0000101
NPOO 0000110
     0000111 <
ONOO 0001000
PNOO 0001001
NNOO 0001010
     0001011 <
     0001100
     0001101
     0001110
     0001111
OOPO 0010000
POPO 0010001
NOPO 0010010
     0010011 <
OPPO 0010100
PPPO 0010101
NPPO 0010110
     0010111 <
ONPO 0011000
PNPO 0011001
NNPO 0011010
     0011011 <
ONPN 0011100
PNPN 0011101
NNPN 0011110
     0011111 <
OONO 0100000
PONO 0100001
NONO 0100010
     0100011 <
OPNO 0100100
PPNO 0100101
NPNO 0100110
     0100111 <
ONNO 0101000
PNNO 0101001
NNNO 0101010
     0101011 <
     0101100
     0101101
     0101110
     0101111
OONN 0110000
PONN 0110001
NONN 0110010
     0110011 <
OPNN 0110100
PPNN 0110101
NPNN 0110110
     0110111 <
ONNN 0111000
PNNN 0111001
NNNN 0111010
     0111011 <
     0111100
     0111101
     0111110
     0111111
OOOP 1000000
POOP 1000001
NOOP 1000010
     1000011 <
OPOP 1000100
PPOP 1000101
NPOP 1000110
     1000111 <
ONOP 1001000
PNOP 1001001
NNOP 1001010
     1001011 <
     1001100
     1001101
     1001110
     1001111
OOPP 1010000
POPP 1010001
NOPP 1010010
     1010011 <
OPPP 1010100
PPPP 1010101
NPPP 1010110
     1010111 <
ONPP 1011000
PNPP 1011001
NNPP 1011010
     1011011 <
OPPN 1011100
PPPN 1011101
NPPN 1011110
     1011111 <
OONP 1100000
PONP 1100001
NONP 1100010
     1100011 <
OPNP 1100100
PPNP 1100101
NPNP 1100110
     1100111 <
ONNP 1101000
PNNP 1101001
NNNP 1101010
     1101011 <
     1101100
     1101101
     1101110
     1101111 
OOON 1110000
POON 1110001
NOON 1110010
     1110011 <
OPON 1110100
PPON 1110101
NPON 1110110
     1110111 <
ONON 1111000
PNON 1111001
NNON 1111010
     1111011 <
OOPN 1111100
POPN 1111101
NOPN 1111110
     1111111 <
Такую преобразовалку можно использовать для обращения к двоичной памяти данных из троичного процессора - используется 81 ячейка из 128 (63%)...
А если такие преобразовалки располагать параллельно, то можно без нахлёстов и перекрытий покрывать двоичную память более компактно нежели просто представляя каждым тритом 2 бита адреса. Например 2 таких преобразовалки будут формировать 14-битный адрес (16КБ) из 8 тритов, что даст покрытие 6561/16384=40% (вместо 10% если просто тупо каждый трит раскладывать на 2 бита). А 3 таких преобразовалки дадут 21-битный адрес (2МБ) из 12 тритов или 531441/2097152=25.3% что хуже, но не так страшно.

P.S. Применительно к Триадору такое можно использовать в варианте со страничной памятью программ, когда память адресуется тремя триадами (т.е. 9 тритами - см. первый пост этого топика) - в данном случае можно ограничиться 8 тритами, используя 2 преобразовалки и двоичное ПЗУ на 16 килослов, получая при этом 9 больших сегментов памяти программ по 729 троичных инструкций в каждом (что даст 6561 инструкций) - единственное что прошивку для такой ПЗУ придётся специально готовить т.к. слова там будут сильно перепутаны. И кстати 9-м тритом можно переключать половинки 32К памяти, охватив скажем N и O (или O и P), что даст уже 13122 инструкции.

P.P.S. Переставил троичные входы местами, чтобы младшие триты отражались на младших битах (младшие входы и выходы расположены сверху):
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Микросхема троичного микроконтроллера Triador-3000

Post by Shaos »

Обновил свою троичную репу, добавив новую версию LogiSim-файла с приведённой выше схемой bin81a:

https://gitlab.com/ternary/ternary/-/tree/master?ref_type=heads

Кто хочет может пощёлкать входами (00 означает O, 01 означает P, 10 означает N, а 11 использовать нельзя) и поглядеть на результат - должно получиться так:

Code: Select all

NNNN 0111010
NNNO 0111000
NNNP 0111001
NNON 0110010
NNOO 0110000
NNOP 0110001
NNPN 0110110
NNPO 0110100
NNPP 0110101
NONN 1111010
NONO 1111000
NONP 1111001
NOON 1110010
NOOO 1110000
NOOP 1110001
NOPN 1110110
NOPO 1110100
NOPP 1110101
NPNN 0011110
NPNO 0011100
NPNP 0011101
NPON 1111110
NPOO 1111100
NPOP 1111101
NPPN 1011110
NPPO 1011100
NPPP 1011101
ONNN 0101010
ONNO 0101000
ONNP 0101001
ONON 0100010
ONOO 0100000
ONOP 0100001
ONPN 0100110
ONPO 0100100
ONPP 0100101
OONN 0001010
OONO 0001000
OONP 0001001
OOON 0000010
OOOO 0000000
OOOP 0000001
OOPN 0000110
OOPO 0000100
OOPP 0000101
OPNN 0011010
OPNO 0011000
OPNP 0011001
OPON 0010010
OPOO 0010000
OPOP 0010001
OPPN 0010110
OPPO 0010100
OPPP 0010101
PNNN 1101010
PNNO 1101000
PNNP 1101001
PNON 1100010
PNOO 1100000
PNOP 1100001
PNPN 1100110
PNPO 1100100
PNPP 1100101
PONN 1001010
PONO 1001000
PONP 1001001
POON 1000010
POOO 1000000
POOP 1000001
POPN 1000110
POPO 1000100
POPP 1000101
PPNN 1011010
PPNO 1011000
PPNP 1011001
PPON 1010010
PPOO 1010000
PPOP 1010001
PPPN 1010110
PPPO 1010100
PPPP 1010101
(тут и для троичных входов, и для двоичных выходов старшие разряды располагаются слева, а младшие - справа)

Также приаттачиваю архив с новым файлом:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Микросхема троичного микроконтроллера Triador-3000

Post by Shaos »

Надо ещё поперебирать варианты, чтобы более-менее компактный преобразователь из 8 бит в 5 трит получить (чтобы не через ПЗУ), а то пока тупо в лоб получается 180 троичных функций....
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Микросхема троичного микроконтроллера Triador-3000

Post by Shaos »

Shaos wrote: 23 Mar 2025 08:30 Надо ещё поперебирать варианты, чтобы более-менее компактный преобразователь из 8 бит в 5 трит получить (чтобы не через ПЗУ), а то пока тупо в лоб получается 180 троичных функций....
Вобщем начинаем с базового - 8 бит дают тупо 4 трита (00->O, 01->P, 10->N):
00000000 -> OOOO
00000001 -> OOOP
00000010 -> OOON
00000011 -> OOON // для простоты декодера для некорректной комбинации просто повторяем предыдущую корректную
00000100 -> OOPO
и т.д. но т.к. нам надо пять тритов, то просто приписываем слева O - такая схема покрывает только 81 комбинацию из необходимых 243 (33.33%) и DDT для неё генерирует решение из 31 функции (e12=27 e21=8 DG403=18):

Code: Select all

00000000=OOOOO
00000001=OOOOP
00000010=OOOON
00000011=OOOON
00000100=OOOPO
00000101=OOOPP
00000110=OOOPN
00000111=OOOPN
00001000=OOONO
00001001=OOONP
00001010=OOONN
00001011=OOONN
00001100=OOONO
00001101=OOONP
00001110=OOONN
00001111=OOONN
00010000=OOPOO
00010001=OOPOP
00010010=OOPON
00010011=OOPON
00010100=OOPPO
00010101=OOPPP
00010110=OOPPN
00010111=OOPPN
00011000=OOPNO
00011001=OOPNP
00011010=OOPNN
00011011=OOPNN
00011100=OOPNO
00011101=OOPNP
00011110=OOPNN
00011111=OOPNN
00100000=OONOO
00100001=OONOP
00100010=OONON
00100011=OONON
00100100=OONPO
00100101=OONPP
00100110=OONPN
00100111=OONPN
00101000=OONNO
00101001=OONNP
00101010=OONNN
00101011=OONNN
00101100=OONNO
00101101=OONNP
00101110=OONNN
00101111=OONNN
00110000=OONOO
00110001=OONOP
00110010=OONON
00110011=OONON
00110100=OONPO
00110101=OONPP
00110110=OONPN
00110111=OONPN
00111000=OONNO
00111001=OONNP
00111010=OONNN
00111011=OONNN
00111100=OONNO
00111101=OONNP
00111110=OONNN
00111111=OONNN
01000000=OPOOO
01000001=OPOOP
01000010=OPOON
01000011=OPOON
01000100=OPOPO
01000101=OPOPP
01000110=OPOPN
01000111=OPOPN
01001000=OPONO
01001001=OPONP
01001010=OPONN
01001011=OPONN
01001100=OPONO
01001101=OPONP
01001110=OPONN
01001111=OPONN
01010000=OPPOO
01010001=OPPOP
01010010=OPPON
01010011=OPPON
01010100=OPPPO
01010101=OPPPP
01010110=OPPPN
01010111=OPPPN
01011000=OPPNO
01011001=OPPNP
01011010=OPPNN
01011011=OPPNN
01011100=OPPNO
01011101=OPPNP
01011110=OPPNN
01011111=OPPNN
01100000=OPNOO
01100001=OPNOP
01100010=OPNON
01100011=OPNON
01100100=OPNPO
01100101=OPNPP
01100110=OPNPN
01100111=OPNPN
01101000=OPNNO
01101001=OPNNP
01101010=OPNNN
01101011=OPNNN
01101100=OPNNO
01101101=OPNNP
01101110=OPNNN
01101111=OPNNN
01110000=OPNOO
01110001=OPNOP
01110010=OPNON
01110011=OPNON
01110100=OPNPO
01110101=OPNPP
01110110=OPNPN
01110111=OPNPN
01111000=OPNNO
01111001=OPNNP
01111010=OPNNN
01111011=OPNNN
01111100=OPNNO
01111101=OPNNP
01111110=OPNNN
01111111=OPNNN
10000000=ONOOO
10000001=ONOOP
10000010=ONOON
10000011=ONOON
10000100=ONOPO
10000101=ONOPP
10000110=ONOPN
10000111=ONOPN
10001000=ONONO
10001001=ONONP
10001010=ONONN
10001011=ONONN
10001100=ONONO
10001101=ONONP
10001110=ONONN
10001111=ONONN
10010000=ONPOO
10010001=ONPOP
10010010=ONPON
10010011=ONPON
10010100=ONPPO
10010101=ONPPP
10010110=ONPPN
10010111=ONPPN
10011000=ONPNO
10011001=ONPNP
10011010=ONPNN
10011011=ONPNN
10011100=ONPNO
10011101=ONPNP
10011110=ONPNN
10011111=ONPNN
10100000=ONNOO
10100001=ONNOP
10100010=ONNON
10100011=ONNON
10100100=ONNPO
10100101=ONNPP
10100110=ONNPN
10100111=ONNPN
10101000=ONNNO
10101001=ONNNP
10101010=ONNNN
10101011=ONNNN
10101100=ONNNO
10101101=ONNNP
10101110=ONNNN
10101111=ONNNN
10110000=ONNOO
10110001=ONNOP
10110010=ONNON
10110011=ONNON
10110100=ONNPO
10110101=ONNPP
10110110=ONNPN
10110111=ONNPN
10111000=ONNNO
10111001=ONNNP
10111010=ONNNN
10111011=ONNNN
10111100=ONNNO
10111101=ONNNP
10111110=ONNNN
10111111=ONNNN
11000000=ONOOO
11000001=ONOOP
11000010=ONOON
11000011=ONOON
11000100=ONOPO
11000101=ONOPP
11000110=ONOPN
11000111=ONOPN
11001000=ONONO
11001001=ONONP
11001010=ONONN
11001011=ONONN
11001100=ONONO
11001101=ONONP
11001110=ONONN
11001111=ONONN
11010000=ONPOO
11010001=ONPOP
11010010=ONPON
11010011=ONPON
11010100=ONPPO
11010101=ONPPP
11010110=ONPPN
11010111=ONPPN
11011000=ONPNO
11011001=ONPNP
11011010=ONPNN
11011011=ONPNN
11011100=ONPNO
11011101=ONPNP
11011110=ONPNN
11011111=ONPNN
11100000=ONNOO
11100001=ONNOP
11100010=ONNON
11100011=ONNON
11100100=ONNPO
11100101=ONNPP
11100110=ONNPN
11100111=ONNPN
11101000=ONNNO
11101001=ONNNP
11101010=ONNNN
11101011=ONNNN
11101100=ONNNO
11101101=ONNNP
11101110=ONNNN
11101111=ONNNN
11110000=ONNOO
11110001=ONNOP
11110010=ONNON
11110011=ONNON
11110100=ONNPO
11110101=ONNPP
11110110=ONNPN
11110111=ONNPN
11111000=ONNNO
11111001=ONNNP
11111010=ONNNN
11111011=ONNNN
11111100=ONNNO
11111101=ONNNP
11111110=ONNNN
11111111=ONNNN
Дырки в данном случае покрываются копиями уже существующих кобинаций (тут дырки будут в адресах 11xxxxxx, xx11xxxx, xxxx11xx и xxxxxx11).

Далее располагаем в самых крупных дырках некоторое количество Pxxxx комбинаций крупными группами, увеличивая покрытие до 108 комбинаций (44.44%), что выливается в 41 функцию (e12=34 e21=16 DG403=25):

Code: Select all

00000000=OOOOO
00000001=OOOOP
00000010=OOOON
00000011=OOOON
00000100=OOOPO
00000101=OOOPP
00000110=OOOPN
00000111=OOOPN
00001000=OOONO
00001001=OOONP
00001010=OOONN
00001011=OOONN
00001100=OOONO
00001101=OOONP
00001110=OOONN
00001111=OOONN
00010000=OOPOO
00010001=OOPOP
00010010=OOPON
00010011=OOPON
00010100=OOPPO
00010101=OOPPP
00010110=OOPPN
00010111=OOPPN
00011000=OOPNO
00011001=OOPNP
00011010=OOPNN
00011011=OOPNN
00011100=OOPNO
00011101=OOPNP
00011110=OOPNN
00011111=OOPNN
00100000=OONOO
00100001=OONOP
00100010=OONON
00100011=OONON
00100100=OONPO
00100101=OONPP
00100110=OONPN
00100111=OONPN
00101000=OONNO
00101001=OONNP
00101010=OONNN
00101011=OONNN
00101100=OONNO
00101101=OONNP
00101110=OONNN
00101111=OONNN
00110000=PONOO
00110001=PONOP
00110010=PONON
00110011=OONON
00110100=PONPO
00110101=PONPP
00110110=PONPN
00110111=OONPN
00111000=PONNO
00111001=PONNP
00111010=PONNN
00111011=OONNN
00111100=OONNO
00111101=OONNP
00111110=OONNN
00111111=OONNN
01000000=OPOOO
01000001=OPOOP
01000010=OPOON
01000011=OPOON
01000100=OPOPO
01000101=OPOPP
01000110=OPOPN
01000111=OPOPN
01001000=OPONO
01001001=OPONP
01001010=OPONN
01001011=OPONN
01001100=OPONO
01001101=OPONP
01001110=OPONN
01001111=OPONN
01010000=OPPOO
01010001=OPPOP
01010010=OPPON
01010011=OPPON
01010100=OPPPO
01010101=OPPPP
01010110=OPPPN
01010111=OPPPN
01011000=OPPNO
01011001=OPPNP
01011010=OPPNN
01011011=OPPNN
01011100=OPPNO
01011101=OPPNP
01011110=OPPNN
01011111=OPPNN
01100000=OPNOO
01100001=OPNOP
01100010=OPNON
01100011=OPNON
01100100=OPNPO
01100101=OPNPP
01100110=OPNPN
01100111=OPNPN
01101000=OPNNO
01101001=OPNNP
01101010=OPNNN
01101011=OPNNN
01101100=OPNNO
01101101=OPNNP
01101110=OPNNN
01101111=OPNNN
01110000=PPNOO
01110001=PPNOP
01110010=PPNON
01110011=OPNON
01110100=PPNPO
01110101=PPNPP
01110110=PPNPN
01110111=OPNPN
01111000=PPNNO
01111001=PPNNP
01111010=PPNNN
01111011=OPNNN
01111100=OPNNO
01111101=OPNNP
01111110=OPNNN
01111111=OPNNN
10000000=ONOOO
10000001=ONOOP
10000010=ONOON
10000011=ONOON
10000100=ONOPO
10000101=ONOPP
10000110=ONOPN
10000111=ONOPN
10001000=ONONO
10001001=ONONP
10001010=ONONN
10001011=ONONN
10001100=ONONO
10001101=ONONP
10001110=ONONN
10001111=ONONN
10010000=ONPOO
10010001=ONPOP
10010010=ONPON
10010011=ONPON
10010100=ONPPO
10010101=ONPPP
10010110=ONPPN
10010111=ONPPN
10011000=ONPNO
10011001=ONPNP
10011010=ONPNN
10011011=ONPNN
10011100=ONPNO
10011101=ONPNP
10011110=ONPNN
10011111=ONPNN
10100000=ONNOO
10100001=ONNOP
10100010=ONNON
10100011=ONNON
10100100=ONNPO
10100101=ONNPP
10100110=ONNPN
10100111=ONNPN
10101000=ONNNO
10101001=ONNNP
10101010=ONNNN
10101011=ONNNN
10101100=ONNNO
10101101=ONNNP
10101110=ONNNN
10101111=ONNNN
10110000=PNNOO
10110001=PNNOP
10110010=PNNON
10110011=ONNON
10110100=PNNPO
10110101=PNNPP
10110110=PNNPN
10110111=ONNPN
10111000=PNNNO
10111001=PNNNP
10111010=PNNNN
10111011=ONNNN
10111100=ONNNO
10111101=ONNNP
10111110=ONNNN
10111111=ONNNN
11000000=ONOOO
11000001=ONOOP
11000010=ONOON
11000011=ONOON
11000100=ONOPO
11000101=ONOPP
11000110=ONOPN
11000111=ONOPN
11001000=ONONO
11001001=ONONP
11001010=ONONN
11001011=ONONN
11001100=ONONO
11001101=ONONP
11001110=ONONN
11001111=ONONN
11010000=ONPOO
11010001=ONPOP
11010010=ONPON
11010011=ONPON
11010100=ONPPO
11010101=ONPPP
11010110=ONPPN
11010111=ONPPN
11011000=ONPNO
11011001=ONPNP
11011010=ONPNN
11011011=ONPNN
11011100=ONPNO
11011101=ONPNP
11011110=ONPNN
11011111=ONPNN
11100000=ONNOO
11100001=ONNOP
11100010=ONNON
11100011=ONNON
11100100=ONNPO
11100101=ONNPP
11100110=ONNPN
11100111=ONNPN
11101000=ONNNO
11101001=ONNNP
11101010=ONNNN
11101011=ONNNN
11101100=ONNNO
11101101=ONNNP
11101110=ONNNN
11101111=ONNNN
11110000=ONNOO
11110001=ONNOP
11110010=ONNON
11110011=ONNON
11110100=ONNPO
11110101=ONNPP
11110110=ONNPN
11110111=ONNPN
11111000=ONNNO
11111001=ONNNP
11111010=ONNNN
11111011=ONNNN
11111100=ONNNO
11111101=ONNNP
11111110=ONNNN
11111111=ONNNN
Ещё добиваем дырки оставшимися комбинациями Pxxxx (не всеми) группами по 9, увеличивая покрытие до 144 (59.26%), что выливается в 44 функции (e12=36 e21=20 DG403=28):

Code: Select all

00000000=OOOOO
00000001=OOOOP
00000010=OOOON
00000011=OOOON
00000100=OOOPO
00000101=OOOPP
00000110=OOOPN
00000111=OOOPN
00001000=OOONO
00001001=OOONP
00001010=OOONN
00001011=OOONN
00001100=OOONO
00001101=OOONP
00001110=OOONN
00001111=OOONN
00010000=OOPOO
00010001=OOPOP
00010010=OOPON
00010011=OOPON
00010100=OOPPO
00010101=OOPPP
00010110=OOPPN
00010111=OOPPN
00011000=OOPNO
00011001=OOPNP
00011010=OOPNN
00011011=OOPNN
00011100=OOPNO
00011101=OOPNP
00011110=OOPNN
00011111=OOPNN
00100000=OONOO
00100001=OONOP
00100010=OONON
00100011=OONON
00100100=OONPO
00100101=OONPP
00100110=OONPN
00100111=OONPN
00101000=OONNO
00101001=OONNP
00101010=OONNN
00101011=OONNN
00101100=OONNO
00101101=OONNP
00101110=OONNN
00101111=OONNN
00110000=PONOO
00110001=PONOP
00110010=PONON
00110011=OONON
00110100=PONPO
00110101=PONPP
00110110=PONPN
00110111=OONPN
00111000=PONNO
00111001=PONNP
00111010=PONNN
00111011=OONNN
00111100=OONNO
00111101=OONNP
00111110=OONNN
00111111=OONNN
01000000=OPOOO
01000001=OPOOP
01000010=OPOON
01000011=OPOON
01000100=OPOPO
01000101=OPOPP
01000110=OPOPN
01000111=OPOPN
01001000=OPONO
01001001=OPONP
01001010=OPONN
01001011=OPONN
01001100=OPONO
01001101=OPONP
01001110=OPONN
01001111=OPONN
01010000=OPPOO
01010001=OPPOP
01010010=OPPON
01010011=OPPON
01010100=OPPPO
01010101=OPPPP
01010110=OPPPN
01010111=OPPPN
01011000=OPPNO
01011001=OPPNP
01011010=OPPNN
01011011=OPPNN
01011100=OPPNO
01011101=OPPNP
01011110=OPPNN
01011111=OPPNN
01100000=OPNOO
01100001=OPNOP
01100010=OPNON
01100011=OPNON
01100100=OPNPO
01100101=OPNPP
01100110=OPNPN
01100111=OPNPN
01101000=OPNNO
01101001=OPNNP
01101010=OPNNN
01101011=OPNNN
01101100=OPNNO
01101101=OPNNP
01101110=OPNNN
01101111=OPNNN
01110000=PPNOO
01110001=PPNOP
01110010=PPNON
01110011=OPNON
01110100=PPNPO
01110101=PPNPP
01110110=PPNPN
01110111=OPNPN
01111000=PPNNO
01111001=PPNNP
01111010=PPNNN
01111011=OPNNN
01111100=OPNNO
01111101=OPNNP
01111110=OPNNN
01111111=OPNNN
10000000=ONOOO
10000001=ONOOP
10000010=ONOON
10000011=ONOON
10000100=ONOPO
10000101=ONOPP
10000110=ONOPN
10000111=ONOPN
10001000=ONONO
10001001=ONONP
10001010=ONONN
10001011=ONONN
10001100=ONONO
10001101=ONONP
10001110=ONONN
10001111=ONONN
10010000=ONPOO
10010001=ONPOP
10010010=ONPON
10010011=ONPON
10010100=ONPPO
10010101=ONPPP
10010110=ONPPN
10010111=ONPPN
10011000=ONPNO
10011001=ONPNP
10011010=ONPNN
10011011=ONPNN
10011100=ONPNO
10011101=ONPNP
10011110=ONPNN
10011111=ONPNN
10100000=ONNOO
10100001=ONNOP
10100010=ONNON
10100011=ONNON
10100100=ONNPO
10100101=ONNPP
10100110=ONNPN
10100111=ONNPN
10101000=ONNNO
10101001=ONNNP
10101010=ONNNN
10101011=ONNNN
10101100=ONNNO
10101101=ONNNP
10101110=ONNNN
10101111=ONNNN
10110000=PNNOO
10110001=PNNOP
10110010=PNNON
10110011=ONNON
10110100=PNNPO
10110101=PNNPP
10110110=PNNPN
10110111=ONNPN
10111000=PNNNO
10111001=PNNNP
10111010=PNNNN
10111011=ONNNN
10111100=ONNNO
10111101=ONNNP
10111110=ONNNN
10111111=ONNNN
11000000=POOOO
11000001=POOOP
11000010=POOON
11000011=POOON
11000100=POOPO
11000101=POOPP
11000110=POOPN
11000111=POOPN
11001000=POONO
11001001=POONP
11001010=POONN
11001011=POONN
11001100=POONO
11001101=POONP
11001110=POONN
11001111=POONN
11010000=POPOO
11010001=POPOP
11010010=POPON
11010011=POPON
11010100=POPPO
11010101=POPPP
11010110=POPPN
11010111=POPPN
11011000=POPNO
11011001=POPNP
11011010=POPNN
11011011=POPNN
11011100=POPNO
11011101=POPNP
11011110=POPNN
11011111=POPNN
11100000=PPOOO
11100001=PPOOP
11100010=PPOON
11100011=PPOON
11100100=PPOPO
11100101=PPOPP
11100110=PPOPN
11100111=PPOPN
11101000=PPONO
11101001=PPONP
11101010=PPONN
11101011=PPONN
11101100=PPONO
11101101=PPONP
11101110=PPONN
11101111=PPONN
11110000=PPPOO
11110001=PPPOP
11110010=PPPON
11110011=PPPON
11110100=PPPPO
11110101=PPPPP
11110110=PPPPN
11110111=PPPPN
11111000=PPPNO
11111001=PPPNP
11111010=PPPNN
11111011=PPPNN
11111100=PPPNO
11111101=PPPNP
11111110=PPPNN
11111111=PPPNN
ddtp (генерация более оптимального решения путём перестановки входов) не даёт улучшений в вышеприведённых схемах, поэтому просто двигаемся дальше - теперь осталось 12 дырок по 4 и все остальные дырки по 1 - видимо более оптимальное решение придётся получать перебором вариантов...

P.S. Сейчас надо понять как более оптимально расставить оставшиеся Pxxxx которых 6 блоков по 3 и далее будем уже расталкивать оставшиеся 81 комбинацию вида Nxxxx

Вот если так попробовать дораскидывать:

Code: Select all

00000000=OOOOO
00000001=OOOOP
00000010=OOOON
00000011=OOOON
00000100=OOOPO
00000101=OOOPP
00000110=OOOPN
00000111=OOOPN
00001000=OOONO
00001001=OOONP
00001010=OOONN
00001011=OOONN
00001100=PNOOO
00001101=PNOOP
00001110=PNOON
00001111=OOONN
00010000=OOPOO
00010001=OOPOP
00010010=OOPON
00010011=OOPON
00010100=OOPPO
00010101=OOPPP
00010110=OOPPN
00010111=OOPPN
00011000=OOPNO
00011001=OOPNP
00011010=OOPNN
00011011=OOPNN
00011100=PNPOO
00011101=PNPOP
00011110=PNPON
00011111=OOPNN
00100000=OONOO
00100001=OONOP
00100010=OONON
00100011=OONON
00100100=OONPO
00100101=OONPP
00100110=OONPN
00100111=OONPN
00101000=OONNO
00101001=OONNP
00101010=OONNN
00101011=OONNN
00101100=OONNO
00101101=OONNP
00101110=OONNN
00101111=OONNN
00110000=PONOO
00110001=PONOP
00110010=PONON
00110011=OONON
00110100=PONPO
00110101=PONPP
00110110=PONPN
00110111=OONPN
00111000=PONNO
00111001=PONNP
00111010=PONNN
00111011=OONNN
00111100=OONNO
00111101=OONNP
00111110=OONNN
00111111=OONNN
01000000=OPOOO
01000001=OPOOP
01000010=OPOON
01000011=OPOON
01000100=OPOPO
01000101=OPOPP
01000110=OPOPN
01000111=OPOPN
01001000=OPONO
01001001=OPONP
01001010=OPONN
01001011=OPONN
01001100=PNOPO
01001101=PNOPP
01001110=PNOPN
01001111=OPONN
01010000=OPPOO
01010001=OPPOP
01010010=OPPON
01010011=OPPON
01010100=OPPPO
01010101=OPPPP
01010110=OPPPN
01010111=OPPPN
01011000=OPPNO
01011001=OPPNP
01011010=OPPNN
01011011=OPPNN
01011100=PNPPO
01011101=PNPPP
01011110=PNPPN
01011111=OPPNN
01100000=OPNOO
01100001=OPNOP
01100010=OPNON
01100011=OPNON
01100100=OPNPO
01100101=OPNPP
01100110=OPNPN
01100111=OPNPN
01101000=OPNNO
01101001=OPNNP
01101010=OPNNN
01101011=OPNNN
01101100=OPNNO
01101101=OPNNP
01101110=OPNNN
01101111=OPNNN
01110000=PPNOO
01110001=PPNOP
01110010=PPNON
01110011=OPNON
01110100=PPNPO
01110101=PPNPP
01110110=PPNPN
01110111=OPNPN
01111000=PPNNO
01111001=PPNNP
01111010=PPNNN
01111011=OPNNN
01111100=OPNNO
01111101=OPNNP
01111110=OPNNN
01111111=OPNNN
10000000=ONOOO
10000001=ONOOP
10000010=ONOON
10000011=ONOON
10000100=ONOPO
10000101=ONOPP
10000110=ONOPN
10000111=ONOPN
10001000=ONONO
10001001=ONONP
10001010=ONONN
10001011=ONONN
10001100=PNONO
10001101=PNONP
10001110=PNONN
10001111=ONONN
10010000=ONPOO
10010001=ONPOP
10010010=ONPON
10010011=ONPON
10010100=ONPPO
10010101=ONPPP
10010110=ONPPN
10010111=ONPPN
10011000=ONPNO
10011001=ONPNP
10011010=ONPNN
10011011=ONPNN
10011100=PNPNO
10011101=PNPNP
10011110=PNPNN
10011111=ONPNN
10100000=ONNOO
10100001=ONNOP
10100010=ONNON
10100011=ONNON
10100100=ONNPO
10100101=ONNPP
10100110=ONNPN
10100111=ONNPN
10101000=ONNNO
10101001=ONNNP
10101010=ONNNN
10101011=ONNNN
10101100=ONNNO
10101101=ONNNP
10101110=ONNNN
10101111=ONNNN
10110000=PNNOO
10110001=PNNOP
10110010=PNNON
10110011=ONNON
10110100=PNNPO
10110101=PNNPP
10110110=PNNPN
10110111=ONNPN
10111000=PNNNO
10111001=PNNNP
10111010=PNNNN
10111011=ONNNN
10111100=ONNNO
10111101=ONNNP
10111110=ONNNN
10111111=ONNNN
11000000=POOOO
11000001=POOOP
11000010=POOON
11000011=POOON
11000100=POOPO
11000101=POOPP
11000110=POOPN
11000111=POOPN
11001000=POONO
11001001=POONP
11001010=POONN
11001011=POONN
11001100=POONO
11001101=POONP
11001110=POONN
11001111=POONN
11010000=POPOO
11010001=POPOP
11010010=POPON
11010011=POPON
11010100=POPPO
11010101=POPPP
11010110=POPPN
11010111=POPPN
11011000=POPNO
11011001=POPNP
11011010=POPNN
11011011=POPNN
11011100=POPNO
11011101=POPNP
11011110=POPNN
11011111=POPNN
11100000=PPOOO
11100001=PPOOP
11100010=PPOON
11100011=PPOON
11100100=PPOPO
11100101=PPOPP
11100110=PPOPN
11100111=PPOPN
11101000=PPONO
11101001=PPONP
11101010=PPONN
11101011=PPONN
11101100=PPONO
11101101=PPONP
11101110=PPONN
11101111=PPONN
11110000=PPPOO
11110001=PPPOP
11110010=PPPON
11110011=PPPON
11110100=PPPPO
11110101=PPPPP
11110110=PPPPN
11110111=PPPPN
11111000=PPPNO
11111001=PPPNP
11111010=PPPNN
11111011=PPPNN
11111100=PPPNO
11111101=PPPNP
11111110=PPPNN
11111111=PPPNN
Получается 162 комбинации из 243 (66.67%), но DDT тут уже даёт 67 функций (e12=56 e21=34 DG403=45) и это после оптимизации через ddtp...

Так что наверное компактно не выйдет - придётся пользоваться ПЗУ :(
Я тут за главного - если что шлите мыло на me собака shaos точка net