Приложение 2

ПРИЛОЖЕНИЕ E.
ОШИБКИ И ПРЕДУПРЕЖДЕНИЯ ЛИНКЕРА PLINK86-PLUS.
Во время линковки линкером PLINK86-Plus находятся ошибки и
потенциальные трудности выполнения программ. В случае нахождения
ошибки или потенциальной трудности выполнения на дисплее
высвечивается сообщение. Кроме того, высвечивается номер кода ошибки
или предупреждения. Ниже приведен список кодов и описаний ошибок и
предупреждений.
В случае, если нижеприведенного списка недостаточно, ни в коем
случае не просите помощи у фирмы Phoenix Technologies, Ltd.


1. Сообщения о предупреждениях
Линкер может выявлять ситуации, которые могут вызвать трудности
во время выполнения программы.

Код предупреждения 1.
Попытка использовать 16-битовый адрес для ссылки на ячейку,
удаленную более чем на 64 К байт, или используется 8-битовая
адресация для ссылки на адрес, удаленный более чем на 256 байт.

Другая способность - адрес, на который ссылаются, меньше чем
используемый регистр сегмента. Для примера, ближайший адрес обращения
ниже чем текущее состояние CS или случай вызова неверного адреса
сегмента. Начало адрес "зациклено" внутри некоторого диапазона, так
что клиппер-программа, возможно, будет обращаться к неверному адресу.

Код предупреждения 2.
В DOSе желаемая позиция стека программы хранится в области
указателей .EXE-файла. Это используется для установки SS и SP-
регистров при выполнении программы. Линкер PLINK86-Plus находит
сегмент стека, помеченый таковым либо компилятором, либо ассемблером.

- 262 -
В случае нахождения его адрес помещается в "хедер". В противном
случае используются нули и клиппер-программа возможно не будет
функционировать правильно, если ею не установлены регистры SS и SP.
Даже в этом случае клиппер-программа будет функционировать неверно, если
произошло прерывание перед установкой стека.
Код предупреждения 3.
Группа это совокупность сегментов, которые должны быть
перераспределены внутри участка памяти объема 64 килобайта. Это
позволяет использовать 16-битовую адресацию внутри группы. К части
элементов внутри группы нельзя адресоваться, если группа слишком
велика и в этом случае нужно уменьшить размер группы. Иногда такое
предупреждение появляется даже если размер группы менее 64 килобайт.
В этом случае нужно посмотреть таблицу размещения сегментов группы в
памяти и найти посторонние сегменты, входящие в выделенный раздел
объема 64 килобайта.
Такая ситуация возникает часто возникает при смешивании модулей
на ассемблере и языке высокого уровня. Имена используемых сегмента и
класса должны быть такими же, как в языке высокого уровня. В
противном случае сегментам ассемблера могут присвоится адреса в конце
секции и слишком удаленные от других членов группы.
Для уменьшения требования к памяти могут применятся оверлеи.

Код предупреждения 4.
В команде MODULE использовался модуль с некоторым именем, но
линкер PLINK86-Plus не нашел этого имени в списке входных файлов.

Код предупреждения 5.
Микропроцессор 8086 использует дуальную схему адресации. Начало
длинной адресации относится к физическим 64К сегмента, выбранного
данной частью параграфа. Поэтому, хотя точка отсчета может быть
определена во время линковки, адрес параграфа представляет собой
абсолютный физический адрес и должен настраиваться в соответствии с
тем, где операционная система загружает программу в память. DOS
делает это по мере того, как клиппер-программа загружается в память для
выполнения. Линкер PLINK86-Plus выдает длинный адрес относительно
начала программы и непрерывной линковки.
Код предупреждения 6.
Это предупреждение не возникает при использовании операционной
системы MS DOS, а только при использовании CP/M-86.
Код предупреждения 7.
Названный модуль содержит тип строки, незнакомый линкеру
PLINK86-Plus. Вся запись будет пройдена. Это сообщение появляется
после небольшого объема выдачи на принтер. Это обычно случается при
включении расширения .PRG для идентификации файлов в BATCH-клиппер-программах
(CL.BAT).

Код предупреждения 8.
Каждая запись объектного файла содержит в конце контрольное
поле. Это сообщение указывает на неверную контрольную сумму, но
линковка продолжается. Это сообщение появляется после небольшой
выдачи на принтер. Если объектный файл был записан на диск перед
линковкой, проверяется контрольная сумма. Ряд библиотечных средств
также позволяют проверить контрольную сумму. Если объектный файл
действительно запорчен, после этого сообщения появится сообщение о
фатальной ошибке.
Код предупреждения 9.
Каждая запись объектного файла содержит слово, дающее размер

- 263 -
строки (что можно увидеть при помощи утилита DUMP). Эта ошибка
означает, что линкер PLINK86-Plus достиг конца строки и нашел, что
количество байт не совпадает с записанным размером строки. Вероятно
объектный файл запорчен, но линкер PLINK86-Plus будет пытаться
продолжать процесс линковки.
Код предупреждения 10.
Используется 16-битовая адресация, тогда как объект цели удален
более чем на 64 К от именованного модуля (или 8-битовая адресация при
расстоянии более чем на 256 байт). Поэтому цель не может быть
достигнута. Используемый адрес будет "зациклен" в соответствии с
необходимой размером. Если есть группа более 64К, ее нужно сделать
меньше для обеспечения корректного доступа.

Код предупреждения 11.
Допустимо только одно определение для каждого глобального
символа в линкуемой программе. Было найдено другое определение
именованного символа. Линкер PLINK86-Plus игнорирует повторное
определение, возвращает первое и продолжает линковку.
Код предупреждения 12.
Именованный глобальный сегмент был присвоен более чем одной
группе. Один модуль размещает сегмент в одной группе, а затем другой
модуль определяет другую группу для того же сегмента. Ссылка к
сегменту может быть вычислена неверно.
Код предупреждения 13.
Именованный сегмент был сначала определен как глобальный, а
зптем переопределен как общий блок (или наоборот). Нужно убедиться,
что все определения сегмента изменяются к одному и тому же типу. Эта
проблема обычно возникает при линковке ассемблерных модулей.
Код предупреждения 14.
Был определен повторно сегмент стека внутри именованного модуля.
Линкер PLINK86-Plus использует последнее определение стека для
определения стека в .EXE-хедере. Если сегмент стека пуст или слишком
мал, клиппер-программа возможно будет выполняться неверно. Так как предыдущий
сегмент стека игнорируется, нет возможности иметь более одного
сегмента стека. Нужно убедиться, что все определения сегментов стека
используют одинаковые имена и имена классов. Тогда они будут
объединены в один сегмент с размером, равным сумме размеров исходных
сегментов.

Код предупреждения 19.
Не достаточно памяти для пути. Линкер PLINK86-Plus сообщит имя
недостижимого пути файла. Если не хватает памяти для строки этого
стринга, будет предупреждение 19 и будет совершена вторая попытка.
Код предупреждения 20.
Неверный размер размещения в секции #_. Если вычисленный размер
секции не совпадает с действительным, появляется предупреждение 20.
Код предупреждения 21.
Плохой счетчик в секции #_. Если счетчик на первом проходе не
совпадает со счетчиком на втором проходе, появляется предупреждение
20.

2. Сообщения об ошибках

Ошибки синтаксиса команд
Эти ошибки ошибки обусловлены неверной информацией на входе
линкера PLINK86-Plus. Будет высвечен номер строки программы вместе с
содержимым и знаком вопроса после того места, которое вызвало ошибку.

- 264 -
К сожалению, линкер PLINK86-Plus может не найти ошибку, если не
обработал текст до конца. Если знак вопроса появился в начале строки,
нужно проверить оставшуюся часть строки.
Код ошибки 1
"@"-файлы вложены слишком плотно. Допустимо только три уровня
"@"-файлов в один момент. Нужно проверить также цикл ссылках
"@"-файлов.
Код ошибки 2
Встретилась ошибка диска при чтении "@"-файла. Нужно попытаться
переделать файл.
Код ошибки 3
Линкер PLINK86-Plus не может найти имя файла после символа "@".
Код ошибки 5
Параметр входа слишком велик. Максимальный допустимый размер
составляет 64 К символов.
Код ошибки 6
Неверная цифра в числе. Верная цифра зависит от основания (по
умолчанию используется шестнадцетиричная для адресации и десятичная в
друугом случае).

Код ошибки 10
Неверное имя файла. Вход должен содержать правильное в рамках
DOSа имя файла.
Код ошибки 11
Ожидается оператор. Должно быть ключевое слово, которое начинает
оператор.

Код ошибки 14
Ожидается идентификатор. В этой точке должны быть имена секции,
модуля, сегмента.
Код ошибки 15
Ожидается знак = (равенства).
Код ошибки 16
Ожидается числовая величина. В этом месте должна быть 16-битовое
число.
Код ошибки 17
Для линковки не были даны файлы. Нужно с использованием
оператора FILE задать хотя бы один входной файл.
Код ошибки 18
Ожидается правая скобка в конце оператора CLASS. Список имен
сегментов должен быть заключен в скобки.
Ошибки работы с файлами
В том случае, когда линкер PLINK86-Plus не вмещается в
оперативную память, он использует дисковый файл PLINK86.WRK для
строки описания программы. Ниже приведены коды ошибок при работе с
этим рабочим файлом.

Код ошибки 30
Рабочий файл не может быть создан. Возможно нет места на диске.
Код ошибки 31
Ошибка ввода/вывода при строки в рабочий файл.
Код ошибки 32
Ошибка ввода/вывода при чтении из рабочего файла.
Код ошибки 33
Ошибка ввода/вывода при репозиции рабочего файла, например, при
поиске в рабочем файле.


- 265 -
Код ошибки 34
Слишком много объектов (символов, сегментов, групп, ...)
определено в программе (может быть создано около 35000). Программа
слишком велика для работы линкера PLINK86-Plus.

Ошибки входных объектных файлов
Эти ошибки относятся к объектным файлам, который подаются на
вход линкеру PLINK86-Plus. Обычно такие ошибки появляются при
какой-либо порче файла. Нужно попытаться перекомпилировать программу.
Если этот файл - фирменная библиотека, нужно взять свежую копию.
Код ошибки 41
Встретился непредвиденный конец файла. Возможно, файл был
обрезан при копировании при помощи программы, которая в конце файла
предполагает символ Ctrl-Z (1AH). Обычно это бывает при включении
расширения .PRG при задании имени в DOS-овском BATCH-файле (CL.BAT).
Код ошибки 42
Фатальная ошибка при чтении объектного файла.

Код ошибки 43
Линкер не может найти объектный файл. Обычно в такой ситуации
линкер PLINK86-Plus запрашивает како-либо префикс имени файла,
например, имя драйва, путь (см. оператор FILE). Сообщение об ошибке
появляется при прекращении процесса линковки. В случае применения
BATCH-команды это сообщения появляется немедленно без запроса о
префиксах имени файла.

Ошибки выходных файлов
Эти ошибки возникают при создании выходного файла или файла
распределения памяти (при строки на диск). Часто такая ошибка бывает
при переполнении диска или директории, при установленной на диске
защите от строки, или при какой-либо поломке диска.

Код ошибки 45
Невозможно создать выходной файл. Либо диск переполнен, либо
защищен от строки.
Код ошибки 46
Неверный тип выходного файла. Тип выходного файла должен быть
лиюо .EXE либо .CMD.

Код ошибки 47
Фатальная ошибка при строки на диск выходного файла. Либо диск
переполнен, либо защищен от строки, или какая-либо поломка диска.
Код ошибки 48
Фатальная ошибка при чтении с диска выходного файла. Возможно
какая-либо поломка диска.

Код ошибки 49
Невозможно закрыть выходной файл. Либо диск защищен от строки,
или какая-либо поломка диска.
Код ошибки 50
Невозможно создать файл распределения загрузки памяти. Либо диск
переполнен, либо защищен от строки, или какая-либо поломка диска.

Разные ошибки
Код ошибки 51
Существует неопределенный символ. Возможно перепутано написание
процедур или функций. Перечисленные символы в одном или большем числе

- 266 -
модулей нигде не определены. Они будут определены как внутренние в
некотором модуле.
Код ошибки 54
Не достаточно оперативной памяти компьютера для работы линкера
PLINK86-Plus. Для линкера необходимо не менее 256 килобайт.
Код ошибки 57
Проблема с файлом OVERLEY.LIB. Необходимо убедиться, что
используется последняя версия. При создании нового файла OVERLEY.LIB
необходимо его правильно форматировать.
Код ошибки 58
Сегмент стека слишком велик (больше 64 килобайт). Необходимо
помнить, что сегменты стека, определенные в каждом модуле, соединены
вместе как глобальные сегменты.


Ошибки объектных файлов по формату Intel
Эти ошибки обусловлены форматом объектных файлов. Объектные
файлы должны быть в формате Intel.
Возможно запортился перемещаемый объектный файл. Можно
попробовать перекомпилировать программу.

Код ошибки 61
LTL сегмент появился в интеловском модуле. Линкер не примет
такой входной файл.

Код ошибки 62
Запись REGINT определила регистр, который должен быть
инициализирован в виде, не поддерживаемом форматом .EXE. Только CS:IP
и SS:IP (адрес старта программы и поинтер стека) могут быть
преинициализированы записью REGINT.
Код ошибки 63
Подзапись LIDATA повторяет счет нулей.

Код ошибки 64
Была использована интеловская объектная библиотека, которая
имеет неверный индекс. Может быть полезным перестроить библиотеку с
использованием линкера PLINK86-Plus.
Код ошибки 65
В данном модуле был определен абсолютный стартовый адрес. Линкер
требует, чтобы адреса были заданы относительно некоторого сегмента.
Код ошибки 66
Данный модуль содержит группу элементов, тип которых не
поддерживается линкером. В группу могут включаться только сегменты
(код описания компонент группы = FFH).

Код ошибки 70
Было определено неверное положение для организации. Поле LOG
больше 4 для относительной организации сегмента.
Код ошибки 71
Было определено неверное положение для организации. Поле LOG
больше 1 для полуотносительной организации сегмента.
Код ошибки 73
Использовался тип фрейма, не поддерживаемый линкером
PLINK86-Plus (5 или 7).

Ошибки структуры программы
Эти ошибки возникают из-за ошибок структуры программы.

- 265 -
Код ошибки 80
Слишком много оверлеев. Имеется слишком много уровней в
структуре оверлея.
Код ошибки 81.
Имеется слишком много операторов ENDAREA, больше чем операторов
BEGINAREA.
Код ошибки 82.
Несбалансированы операторы BEGINAREA и ENDAREA. Их должно быть
одинаковое число.
Код ошибки 83.
Слинкованная клиппер-программа не вмещается в 1 мегабайт адресуемого
пространства, что поддерживается микропроцессором 8086. Необходимо
использовать оверлеи.


Ошибки диагностики линкера PLINK86-Plus
(коды 200-206)
Эта ошибка указывает на проблему внутри линкера PLINK86-Plus.
Эта проблема не по вине пользователя. Во-первых, нужно попытаться
запустить линкер снова и в случае неудачи нужно скопировать линкер с
дистрибутивной дискеты и запустить его снова. Если и в этом случае
будет ошибка, нужно сообщить об этом фирме Nuntucket, но ни в коем
случае не фирме Phoenix Technologies, Ltd.


ПРИЛОЖЕНИЕ G.

Таблица G-1. Таблица кодов ASCII.
Коды Символ Коды Символ Коды Символ Коды Символ
0 00 NUL 64 40 @ 128 80 А 192 C0 ?
1 01 SOH 65 41 A 129 81 Б 193 C1 ?
2 02 STX 66 42 B 130 82 В 194 C2 ?
3 03 ETX 67 43 C 131 83 Г 195 C3 ?
4 04 EOT 68 44 D 132 84 Д 196 C4 ?
5 05 ENQ 69 45 E 133 85 Е 197 C5 ?
6 06 ACK 70 46 F 134 86 Ж 198 C6 ?
7 07 BEL 71 47 G 135 87 З 199 C7 ?
8 08 BS 72 48 H 136 88 И 200 C8 ?
9 09 HT 73 49 I 137 89 Й 201 C9 ?
10 0A LF 74 4A J 138 8A К 202 CA ?
11 0B VT 75 4B K 139 8B Л 203 CB ?
12 0C FF 76 4C L 140 8C М 204 CC ?
13 0D CR 77 4D M 141 8D Н 205 CD ?
14 0E SO 78 4E N 142 8E О 206 CE ?
15 0F SI 79 4F O 143 8F П 207 CF ?
16 10 DLE 80 50 P 144 90 Р 208 D0 ?
17 11 DC1 81 51 Q 145 91 С 209 D1 ?

- 268 -
18 12 DC2 82 52 R 146 92 Т 210 D2 ?
19 13 DC3 83 53 S 147 93 У 211 D3 ?
20 14 DC4 84 54 T 148 94 Ф 212 D4 ?
21 15 NAK 85 55 U 149 95 Х 213 D5 ?
22 16 SYN 86 56 V 150 96 Ц 214 D6 ?
23 17 ETB 87 57 W 151 97 Ч 215 D7 ?
24 18 CAN 88 58 X 152 98 Ш 216 D8 ?
25 19 EM 89 59 Y 153 99 Щ 217 D9 ?
26 1A SUB 90 5A Z 154 9A Ъ 218 DA ?
27 1B ESC 91 5B [ 155 9B Ы 219 DB ?
28 1C FS 92 5C \ 156 9C Ь 220 DC ?
29 1D GS 93 5D ] 157 9D Э 221 DD ?
30 1E RS 94 5E ^ 158 9E Ю 222 DE ?
31 1F US 95 5F _ 159 9F Я 223 DF ?
32 20 SP 96 60 ` 160 A0 а 224 E0 р
33 21 ! 97 61 a 161 A1 б 225 E1 с
34 22 " 98 62 b 162 A2 в 226 E2 т
35 23 # 99 63 c 163 A3 г 227 E3 у
36 24 $ 100 64 d 164 A4 д 228 E4 ф
37 25 % 101 65 e 165 A5 е 229 E5 х
38 26 & 102 66 f 166 A6 ж 230 E6 ц
39 27 ' 103 67 g 167 A7 з 231 E7 ч
40 28 ( 104 68 h 168 A8 и 232 E8 ш
41 29 ) 105 69 i 169 A9 й 233 E9 щ
42 2A * 106 6A j 170 AA к 234 EA ъ
43 2B + 107 6B k 171 AB л 235 EB ы
44 2C , 108 6C l 172 AC м 236 EC ь
45 2D - 109 6D m 173 AD н 237 ED э
46 2E . 110 6E n 174 AE о 238 EE ю
47 2F / 111 6F o 175 AF п 239 EF я
48 30 0 112 70 p 176 B0 ? 240 F0 Ё
49 31 1 113 71 q 177 B1 ? 241 F1 ё
50 32 2 114 72 r 178 B2 ? 242 F2 Є
51 33 3 115 73 s 179 B3 ? 243 F3 є
52 34 4 116 74 t 180 B4 ? 244 F4 Ї
53 35 5 117 75 u 181 B5 ? 245 F5 ї
54 36 6 118 76 v 182 B6 ? 246 F6 Ў
55 37 7 119 77 w 183 B7 ? 247 F7 ў
56 38 8 120 78 x 184 B8 ? 248 F8 °
57 39 9 121 79 y 185 B9 ? 249 F9 ?
58 3A : 122 7A z 186 BA ? 250 FA ·
59 3B ; 123 7B { 187 BB ? 251 FB ?
60 3C < 124 7C | 188 BC ? 252 FC №
61 3D = 125 7D } 189 BD ? 253 FD ¤
62 3E > 126 7E ~ 190 BE ? 254 FE ?
63 3F ? 127 7F  191 BF ? 255 FF


Таблица G-2. Таблица значений, возвращаемых функцией INKEY() при
нажатии функциональных клавиш.


Функциональная Возвращаемое
клавиша значение

- 269 -
F1 28
F2 -1
F3 -2
F4 -3
F5 -4
F6 -5
F7 -6
F8 -7
F9 -8
F10 -9
F11 (Shift-F1) -10
F12 (Shift-F2) -11
F13 (Shift-F3) -12
F14 (Shift-F4) -13
F15 (Shift-F5) -14
F16 (Shift-F6) -15
F17 (Shift-F7) -16
F18 (Shift-F8) -17
F19 (Shift-F9) -18
F20 (Shift-F10) -19
F21 (Ctrl-F1) -20
F22 (Ctrl-F1) -21
F23 (Ctrl-F1) -22
F24 (Ctrl-F1) -23
F25 (Ctrl-F1) -24
F26 (Ctrl-F1) -25
F27 (Ctrl-F1) -26
F28 (Ctrl-F1) -27
F29 (Ctrl-F1) -28
F30 (Ctrl-F10) -29
F31 (Alt-F1) -30
F32 (Alt-F2) -31
F33 (Alt-F3) -32
F34 (Alt-F4) -33
F35 (Alt-F5) -34
F36 (Alt-F6) -35
F37 (Alt-F7) -36
F38 (Alt-F8) -37
F39 (Alt-F9) -38
F40 (Alt-F10) -39



Таблица G-3. Таблица значений, возвращаемых функцией INKEY()
при нажатии функциональных клавиш.

Клавиша Альтернатива Возвращаемое
значение
Стрелкавправо Ctrl-D 4
Стрелкавлево Ctrl-S 19
Стрелкавверх Ctrl-E 5
Стрелкавниз Ctrl-X 24
Ctrl-Стрелкавправо Ctrl-B 2
Ctrl-Стрелкавлево Ctrl-Z 26
Ins Ctrl-V 22
Del Ctrl-G 7
Home Ctrl-A 1

- 270 -
PgUp Ctrl-R 18
PgDn Ctrl-C 3
Ctrl-Home Ctrl-] 29
Ctrl-End Ctrl-W 23
Ctrl-PgUp Ctrl-hyphen 1
Ctrl-PgDn Ctrl-Ctrl 30
End 6
Tab 9


ПРИЛОЖЕНИЕ H

ЗАРЕЗЕРВИРОВАННЫЕ СЛОВА

Следующие слова зарезервированы при использовании Clipperа или
линкера PLINK86. Слова, помеченные звездочкой, не могут
применятся ни в какой сокращенной форме. Для примера,
LIBRARY,LIBRAR,LIBRA,LIBR,LIB, LI,L - все зарезервированные слова.
Хотя большинство имен функций может быть переопределено,
предполагается, что они не используются как имена пользовательских
процедур и функций. Наконец, нельзя использовать символ подчеркивания
(_) внутри имен процедур, форматов, функций или программ.

Таблица H-1. Зарезервированные слова

* BATCH * NOBELL
* BEGINAREA * OUTPUT
CODE PROCFILE
DATA READEXIT
* DEBUG READINSERT
* ENDAREA * SEARCH
ERRORLEVEL * SECTION
INDEXEXT SETPRC
INDEXORD SUMMER87
* FILE SYSTEM
* HEIGHT * UPPERCASE
* LIBRARY * VERBOSE
* LOWERCASE * WIDTH
* MAP * WIRKFILE
NETERR



ПРИЛОЖЕНИЕ I
КОМАНДЫ ЛИНКЕРА PLINK86


#
Маркер комментария, используемый программой PMAKER.

BATCH
Заставляет линкер заканчивать работу с сообщением о фатальной
ошибке если не найдены необходимые .OBJ- и .LIB-файлы. (По умолчанию
высвечивается оператор если не найден файл).

- 271 -

BEGINAREA
(Сокращенно BEGIN). Определяет начало области оверлея. Каждая
область оверлея должна начинаться с оператора BEGINAREA и
заканчиваться оператором ENDAREA.

DEBUG
Предоставляет информацию, помогающую отладке. Высвечивает имена
оверлеев по мере их загрузки при выполнении программы.
ENDAREA
(Сокращено END). Определяет конец области оверлея. Каждая
область оверлея должна начинаться с оператора BEGINAREA и
заканчиваться оператором ENDAREA.

FILE
( Сокращено FI). Определяет .OBJ-файлы при линковке. Расширение
.OBJ определять не нужно. Каждый .OBJ-модуль должен определяться
одной командой FILE; отдельный модули отделяются запятыми.
HEIGHT
Изменяет высоту страницы протокола загрузки памяти на число,
которое стоит после оператора HEIGHT. По умолчанию 65 строк в одной
странице.

LIBRARY
(Сокращено LIB). Определяет библиотечные процедуры, которые для
линковки. Эта команда требует для файла расширения .LIB, если не
оговорено противное.
Линкер PLINK86-Plus будет автоматически просматривать библиотеку
CLIPPER.LIB. Если используются оверлеи, линкер будет также
автоматически просматривать библиотеку OVERLEY.LIB. Не нужно
использовать эту команду, если требуются для линковки только эти две
библиотеки.

LOWERCASE
Переводит все идентификаторы и символы в малые буквы.

MAP
Производит протокол загрузки памяти, который описывает выходной
файл, использование памяти, размер и адреса информации. Команда MAP
полезна для отладки на программ на ассемблере, для управления и
планирования размещения в памяти, тестирования линковки, отладки.
Команда MAP вводится следующим образом:
MAP = <имя файла> [A][,G][,M][,S]
PLINK86-Plus будет присваивать расширения .MAP заданным именам.
Различные протоколы определяются следующим образом:
A - Все сегменты. Распечатывает секции в порядке ввода, а
сегменты в секциях в порядке возрастания алресов памяти.
G - Глобальныые символы. Распечатывает глобальные символы в
алфавитном порядке с адресами каждого.
M - Модули. Распечатывает модули программ в порядке адресов и и
размеров. Каждый сегмент, содержащийся в модуле, и каждый символ,
содержащийся в сегменте, также распечатывается в порядке адресов и
размеров. Этот протокол производит наиболее детальную информацию.
S - Секции. Распечатывает секции программы в алфавитном порядке
с краткой информацией о каждой секции.
Можно заказать один или все режимы из вышеперечисленных. По
умолчанию будет печататься протокол типа A.

- 272 -

NOBELL
Отменяет звуковой сигнал при сообщениях линкера.

OUTPUT
Определяет имя загрузочного файла. По умолчанию имя выходного
файла совпадает с именем первого файла в команде FILE. Расширение
файла задавать не нужно. Оверлеи определяют имена классов сегментов,
которые будут загружаться.

SEARCH
Аналогичен оператору LIB, но заставляет линкер PLINK86
просматривать несколько раз библиотечные файлы, если найдены
неопределенные идентификаторы после прочтения файлов. По умолчанию
предполагается расширение .LIB.

SECTION
Определяет объектные модули, содержащиеся во внутреннем оверлее.

SECTION INTO
Определяет объектные модули, содержащиеся в внешнем оверлее.
UPPERCASE
Переводит все символы в заглавные.

VERBOSE
Высвечивает на экране текущие операторы линкера на последней
строке экрана. Следует заметить, что это значительно замедляет работу
линкера.

WIDTH
Изменяет ширину страницы протокола загрузки памяти на заданное
число символов в строке. По умолчанию используется 80 символов.
WORKFILE
При необходимости переадресует файлы.