
     ***************************************************
     ***         ОРГАНИЗАЦИЯ СЛОВАРЯ ДССП            ***
     ***************************************************

                     СТРУКТУРА СЛОВАРЯ

      Словарь ДССП состоит из двух частей: таблицы констант,
растущей в сторону уменьшения адресов, и таблицы заголовков
процедур, растущей в сторону увеличения адресов.

               31            0
               ╒══════════════╕ <----- V1
               │ссылка на тело├─────┐          тело  константы
               ├──────────────┤     │        ┌────────────────┐
                     ...            └──────> │                │
               ├──────────────┤              │                │
               │ссылка на тело│              │                │
               ╞══════════════╡              └────────────────┘
               │      0       │
               ╞══════════════╡
               │     A1/0     ├──┐
               ├──────────────┤  │
               │     A2/0     ├─┐│
               ╞══════════════╡ │└───────> ссылка на продолжение
               │      0       │ │          таблицы констант или 0
    ┌ ─ ─ ─ ─ ─╞══════════════╡ │
    │          │      0       │ └────────> ссылка на продолжение
    │          ╞══════════════╡            словаря или 0
    │          │ заголовки    │
 секция        │ процедур     │
подсловаря     │    ...       │
    │     ┌ ─ ─╞══════════════╡
    │     │    │     0        │
    │     │    │адр.тела п/с  │         1 в старшем бите шкалы
    │     │    ├──────────────┤         означает, что п/с открыт.
    │заголовок │    имя       │         При ONLY шкала сдвигается вправо,
    │ секции   │ подсловаря   │         при CANCEL - влево.
    │     │    ├──────────────┤
    │     │    │      NB      │
    └ ─ ─ └ ─ ─╞══════════════╡
               │     ...      │
               │    секции    │
               │ подсловарей  │
               │     ...      │
               ╞══════════════╡
               │ заголовок    │
               │ последней    │
               │ секции -     │
               │ которая      │
               │ сейчас       │
               │ растет       │
               ╘══════════════╛
                               <------- NV

Заголовок процедуры с именем АБВГ...ЪЭ (30 букв)

┌────────┬────────┬────────┬────────┐
│   Г    │   В    │   Б    │   А    │  7
├────────┼────────┼────────┼────────┤
│   З    │   Ж    │   Е    │   Д    │  6
├────────┼────────┼────────┼────────┤
│   Л    │   К    │   Й    │   И    │  5
├────────┼────────┼────────┼────────┤
│   П    │   О    │   Н    │   М    │  4
├────────┼────────┼────────┼────────┤
│   У    │   Т    │   С    │   Р    │  3
├────────┼────────┼────────┼────────┤
│   Ч    │   Ц    │   Х    │   Ф    │  2
├────────┼────────┼────────┼────────┤
│   Ы    │   Ь    │   Щ    │   Ш    │  1
├────────┼────────┼────────┼────────┤
│ СЛУЖ.  │ СЧЕТЧИК│   Э    │   Ъ    │ <----- az
└────────┴────────┴────────┴────────┘



       служебный байт
┌───┬───┬───┬───┬───┬───┬───┬───┐
│ T │ D │ P │ U │   │ C │   │   │
└───┴───┴───┴───┴───┴───┴───┴───┘
  7   6   5   4   3   2   1   0

       байт СЧЕТЧИК
┌───┬───┬───┬───┬───┬───┬───┬───┐
│   │   │   │   │   │ N │ N │ N │
└───┴───┴───┴───┴───┴───┴───┴───┘
  7   6   5   4   3   2   1   0


     назначение битов служебного байта и счетчика:
  T-бит: Признак таблицы (см.ниже)
  D-бит: Признак вспомогательного (удаляемого) слова
  P-бит: Признак двухсловной команды (указание внешнему интер-
         претатору компилировать следующее слово из входного
         потока)
  U-бит: Признак неопределенного слова
  C-бит: Признак неудаляемой таблицы у слова,
         слово не может быть найдено операцией FIND
  NNN -  Число дополнительных (кроме длинного слова со
         служебным байтом) длинных слов в заголовке (0-7)


П Р И М Е Ч А Н И Я :
      1. Если заголовок не заполняет целиком отведенное место,
         то спереди он дополняется пробелами.
      2. Адресом заголовка считается адрес длинного слова, в
         котором находится служебный байт (сокращенное
         обозначение AZ).


       Таблица неопределенных ссылок
(размещается после заголовков неопределенных процедур)

31       0
┌────────┐   ссылка - адрес ячейки в теле процедуры, где
│  ...   │            употреблено данное неопределенное слово
│ ссылки │
│  ...   │
├────────┤   -ДЛИНА - размер всей таблицы в байтах,
│ -ДЛИНА │            отрицательное число.
└────────┘


 Подробнее о структуре заголовка секции подсловаря и
 связанных с ним объектах

                        ┌─────────────────┐
 31           0         │      WD1        │<-- NB (*)
 │   . . .    │         ├─────────────────┤
 ├────────────┤         │      D1         │
 │     0      │         ├─────────────────┤
 ├────────────┤         │      YD1        │
 │    BA      │────┐    ├────────┬────────┤
 ├────────────┤    └───>│    ДССП-next    │a (в текущем
 │    имя     │         ├────────┼────────┤   кодовом сегменте)
 ├            ┤         │ адр.шкалы п/с   │a + nextlen
 │ подсловаря │         └────────┴────────┘
 ├────────────┤
 │    NB   (*)│
 ├────────────┤
 │            │ <-- NB



