В случае ручного программирования ПЗУ 2К в логисимовкой модели - вот первые 100 троичных адресов, которые отображаются на начало двоичной памяти следующим образом (в скобках шестнадцатиричный адрес ячейки в ПЗУ):Shaos wrote:На самом деле часть отрицательной области троичной памяти таки попадает в эти 2K (не попадает только треть троичного адресного пространства):
Nxxxxx - не попадает (от -364 до -122)
Oxxxxx - попадает (от -121 до +121)
Pxxxxx - попадает (от +122 до +364)
т.е. у нас в 2K ПЗУ будет не 365 пятитритных слов, как я написал чуть выше, а целых 486 (или 23.7% от всего объёма 2К)!
Code: Select all
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)
P.S. Текст программы, которая генерит такой файл:
Code: Select all
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
 int i,j,k;
 char top[7] = "NNNNNN";
 for(i=-364;i<=364;i++)
 {
   j = i;
   if(j < 0) j+=256;
   k = 0;
   if(top[5]=='P') k=1;
   if(top[5]=='N') k=2;
   if(top[4]=='P') k|=4;
   if(top[4]=='N') k|=8;
   if(top[3]=='P') k|=16;
   if(top[3]=='N') k|=32;
   if(top[2]=='P') k|=64;
   if(top[2]=='N') k|=128;
   if(top[1]=='P') k|=256;
   if(top[1]=='N') k|=512;
   if(top[0]=='P') k|=1024;
   if(top[0]=='N') k|=2048;
   printf(" %s  %i\t[%3.3X]\n",top,i,k);
   /* balanced ternary increment */
   if(++top[5]=='Q')
   {
    top[5] = 'N';
    if(++top[4]=='Q')
    {
     top[4] = 'N';
     if(++top[3]=='Q')
     {
       top[3] = 'N';
       if(++top[2]=='Q')
       {
         top[2] = 'N';
         if(++top[1]=='Q')
         {
           top[1] = 'N';
           if(++top[0]=='Q')
           {
             top[0] = 'N';
           }
         }
       }
     }
    }
   }
 }
 return 0;
}
 
				



 
 
 decode он же автоматом происходит во время execute...
  decode он же автоматом происходит во время execute... 
 

