<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://emuverse.ru/w/index.php?action=history&amp;feed=atom&amp;title=%D0%9A%D0%BE%D1%80%D0%B2%D0%B5%D1%82%2F%D0%9A%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%BE%D0%B2%D1%89%D0%B8%D0%BA_L80</id>
	<title>Корвет/Компоновщик L80 - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://emuverse.ru/w/index.php?action=history&amp;feed=atom&amp;title=%D0%9A%D0%BE%D1%80%D0%B2%D0%B5%D1%82%2F%D0%9A%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%BE%D0%B2%D1%89%D0%B8%D0%BA_L80"/>
	<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%9A%D0%BE%D1%80%D0%B2%D0%B5%D1%82/%D0%9A%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%BE%D0%B2%D1%89%D0%B8%D0%BA_L80&amp;action=history"/>
	<updated>2026-05-03T20:32:54Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%9A%D0%BE%D1%80%D0%B2%D0%B5%D1%82/%D0%9A%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%BE%D0%B2%D1%89%D0%B8%D0%BA_L80&amp;diff=1351&amp;oldid=prev</id>
		<title>Panther: где-то на просторах</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%9A%D0%BE%D1%80%D0%B2%D0%B5%D1%82/%D0%9A%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%BE%D0%B2%D1%89%D0%B8%D0%BA_L80&amp;diff=1351&amp;oldid=prev"/>
		<updated>2009-03-19T09:43:37Z</updated>

		<summary type="html">&lt;p&gt;где-то на просторах&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{ДИ}}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         �E    Компоновщик  L80.  �F&lt;br /&gt;
               -----------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Содержание&lt;br /&gt;
&lt;br /&gt;
 Аннотация........................................&lt;br /&gt;
1. Назначение компоновщика..........................&lt;br /&gt;
2. Обращение к компоновщику.........................&lt;br /&gt;
3. Ключи компоновки.................................&lt;br /&gt;
4. Сообщения об ошибках.............................&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Аннотация&lt;br /&gt;
&lt;br /&gt;
     В настоящем руководстве рассматривается программа -&lt;br /&gt;
компоновщик L80. Описывается назначение и условия применения&lt;br /&gt;
программы, позволяющей компоновать перемещаемые модули и созда-&lt;br /&gt;
вать из них программы готовые к выполнению.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
     &lt;br /&gt;
     1. Назначение компоновщика&lt;br /&gt;
&lt;br /&gt;
     Компоновщик создает из перемещаемых модулей программы, &lt;br /&gt;
готовые к выполнению. Перемещаемые модули получаются в резуль-&lt;br /&gt;
тате трансляции программ, написанных на на различных языках&lt;br /&gt;
программирования.&lt;br /&gt;
&lt;br /&gt;
     2. Обращение к компоновщику&lt;br /&gt;
&lt;br /&gt;
     Компоновщик находится на диске в виде файла L80.COM и &lt;br /&gt;
может быть инициализирован одной из следующих команд:&lt;br /&gt;
&lt;br /&gt;
1)     L80&lt;br /&gt;
2)     L80 &amp;quot;командная строка&amp;quot;&lt;br /&gt;
&lt;br /&gt;
     В режиме (1) после загрузки компоновщик выводит на экран&lt;br /&gt;
запрос * и ждет ввода командной строки.&lt;br /&gt;
     В режиме (2) командная строка может состоять из несколь-&lt;br /&gt;
ких подстрок. &lt;br /&gt;
     Командная строка L80 состоит из списка имен файлов, раз-&lt;br /&gt;
деленных запятыми, и ключей компоновки. Все эти файлы должны &lt;br /&gt;
быть загружены компоновщиком.Формат командной строки следующий:&lt;br /&gt;
&lt;br /&gt;
 Файл 1,файл 2,...,файл N &lt;br /&gt;
&lt;br /&gt;
     Тип всех файлов - REL.&lt;br /&gt;
     Перед любым именем файла можно задать имя диска, с кото-&lt;br /&gt;
рого будет загружаться этот файл. По умолчанию файл берется с&lt;br /&gt;
текущего диска.&lt;br /&gt;
     После выполнения каждой командной подстроки компоновщик,&lt;br /&gt;
закончив процесс загрузки, выводит список неопределенных сим-&lt;br /&gt;
волов (неудовлетворенных EXTRN), заканчивающийся *. Кроме того,&lt;br /&gt;
он выводит адрес начала и конца загруженного файла.&lt;br /&gt;
&lt;br /&gt;
 Пример.&lt;br /&gt;
* MAIN&lt;br /&gt;
  DATA   0100  0200 Программа занимает область памяти 100H-200H&lt;br /&gt;
  SUBR1*      (SUBR1 не определено)&lt;br /&gt;
* SUBR1&lt;br /&gt;
  DATA   0100  0300 Программа занимает область памяти 100H-300H&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
     Для удовлетворения внешних ссылок необходимо осуществить &lt;br /&gt;
поиск в библиотеке подпрограмм или в библиотеке, созданной &lt;br /&gt;
пользователем.&lt;br /&gt;
&lt;br /&gt;
     3. Ключи компоновки&lt;br /&gt;
&lt;br /&gt;
     При вводе командной строки можно также задавать различные&lt;br /&gt;
ключи и с их помощью управлять процессом компоновки. Ключи мож-&lt;br /&gt;
но вводить:&lt;br /&gt;
&lt;br /&gt;
     - как отдельные команды;&lt;br /&gt;
     - после имени файла;&lt;br /&gt;
     - в конце командной строки.&lt;br /&gt;
&lt;br /&gt;
   Ключ                   Производимое действие&lt;br /&gt;
   ----                   ---------------------&lt;br /&gt;
&lt;br /&gt;
   /R  Сброс.Перевод L80 в начальное состояние.&lt;br /&gt;
&lt;br /&gt;
   /E  или Завершение компоновки, выход из L80 и возврат в&lt;br /&gt;
   /E:&amp;quot;имя&amp;quot;     операционныю систему. На активном диске в сис-&lt;br /&gt;
  темной библиотеке ищутся имена для удовлетво-&lt;br /&gt;
   рения всех неопределенных ссылок. До выхода в&lt;br /&gt;
  систему L80 печатает три числа: стартовый ад-&lt;br /&gt;
  рес, адрес следующего доступного байта и число&lt;br /&gt;
  использованных страниц (по 256 байт). Если за-&lt;br /&gt;
  дано &amp;quot;имя&amp;quot;, то оно будет использоваться как &lt;br /&gt;
  стартовый адрес. &amp;quot;имя&amp;quot; должно быть определено&lt;br /&gt;
  в одном из модулей. /E используют для загрузки&lt;br /&gt;
  скомпонованной программы в память и выхода в&lt;br /&gt;
  систему.&lt;br /&gt;
&lt;br /&gt;
   /G  или Завершение компоновки и выполнение программы.&lt;br /&gt;
   /G:&amp;quot;имя&amp;quot; L80 осуществляет те же действия, что и при &lt;br /&gt;
  ключе /E, но вместо выхода в систему передает&lt;br /&gt;
  управление загруженной программе. Перед запус-&lt;br /&gt;
  ком программы L80 печатается сообщение:&lt;br /&gt;
&lt;br /&gt;
   BEGIN EXECUTION&lt;br /&gt;
&lt;br /&gt;
   /N  Если задано &amp;quot;имя файла&amp;quot; /N, то программа под&lt;br /&gt;
  заданным именем будет записана на диск. Тип&lt;br /&gt;
  файла будет COM. Этот ключ может быть задан&lt;br /&gt;
  только совместно с ключем /E или /G.&lt;br /&gt;
&lt;br /&gt;
   /P и /D /P и /D позволяют установить счетчики адреса&lt;br /&gt;
  для следующей загружаемой программы. /P и /D&lt;br /&gt;
  не влияют на уже загруженные программы.&lt;br /&gt;
&lt;br /&gt;
  Формат ключей:&lt;br /&gt;
 &lt;br /&gt;
  /P:&amp;lt;адрес&amp;gt; или /D:&amp;lt;адрес&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  где &amp;lt;адрес&amp;gt; - это желаемое значение счетчика &lt;br /&gt;
  адреса в текущей системе счисления (16-ричной &lt;br /&gt;
  по умолчанию; ключ /O устанавливает 8-ричную &lt;br /&gt;
  систему счисления, а /H - 16-ричную). По умол-&lt;br /&gt;
  чанию L80 использует ключ /P:103, оставляя &lt;br /&gt;
  3 байта для JMP на начало программы.&lt;br /&gt;
    *) Примечание.&lt;br /&gt;
  Не следует использовать /P или /D для загрузки&lt;br /&gt;
  программы, начиная с адреса 100, если только &lt;br /&gt;
  программа не начинает работать с этого адреса.&lt;br /&gt;
  Если ключ /D не задан, то область данных для &lt;br /&gt;
  каждого модуля размещается перед областью про-&lt;br /&gt;
  граммы. Если за дан ключ /D, то области DATA и&lt;br /&gt;
                COMMON загружаются с заданного адреса.&lt;br /&gt;
&lt;br /&gt;
  Пример.&lt;br /&gt;
&lt;br /&gt;
  */P:200  Разместить область команд с &lt;br /&gt;
    адреса 200&lt;br /&gt;
  */R  Сброс компоновки&lt;br /&gt;
  */P:200 /D:400 Разместить область команд с &lt;br /&gt;
    200, а область данных с 400 &lt;br /&gt;
    по F00.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   /U  Вывести начало и конец программы и области &lt;br /&gt;
  данных, а также все неопределенные EXTRN сразу&lt;br /&gt;
  после обработки данной командной подстроки. Ин-&lt;br /&gt;
  формация о программе печатается лишь тогда, &lt;br /&gt;
  когда задан ключ /D.&lt;br /&gt;
&lt;br /&gt;
   /M  Вывести начало и конец программы и области дан-&lt;br /&gt;
  ных, все определенные EXTRN и их значения и все&lt;br /&gt;
  неопределенные EXTRN.&lt;br /&gt;
&lt;br /&gt;
   /S  Для удовлетворения неопределенных EXTRN осуще-&lt;br /&gt;
  ствить поиск в файле, заданном непосредственно&lt;br /&gt;
  перед ключом /S.&lt;br /&gt;
&lt;br /&gt;
   /X  Если задано:  имя /N, то /X вызовет создание&lt;br /&gt;
  файла &amp;quot;имя&amp;quot;.HEX&lt;br /&gt;
&lt;br /&gt;
 Примеры:&lt;br /&gt;
&lt;br /&gt;
* EX,EX1,EXAM/N/E Загрузить и скомпоновать модули EX.REL&lt;br /&gt;
   и EX1.REL. Создать из них файл EXAM.COM&lt;br /&gt;
&lt;br /&gt;
* MYLIB/S,MYSUB,MYPOG/N,MYPROG/M/G &lt;br /&gt;
  Вести поиск EXTRN в файле MYLIB.REL. Загрузить&lt;br /&gt;
  и скомпоновать файлы MYSUB.REL и MYPROG.REL.&lt;br /&gt;
  Создать файл MYPROG.COM. Вывести список всех&lt;br /&gt;
  EXTRN. Выполнить программу MYPROG.&lt;br /&gt;
&lt;br /&gt;
     Нормальный выход из компоновщика производится по ключу&lt;br /&gt;
/E или /G.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     4. Сообщения об ошибках&lt;br /&gt;
&lt;br /&gt;
     В процессе работы L80 может выдать следующие сообщения об&lt;br /&gt;
ошибках:&lt;br /&gt;
&lt;br /&gt;
? NO START ADDRESS   Нет стартового адреса.&lt;br /&gt;
       Был использован ключ /G, но основная про-&lt;br /&gt;
       грамма не загружена.&lt;br /&gt;
&lt;br /&gt;
? LOADING ERROR      Ошибка загрузки.&lt;br /&gt;
       Последний заданный для компоновки файл не&lt;br /&gt;
       был создан в правильном для L80 формате.&lt;br /&gt;
&lt;br /&gt;
? OUT OF MEMORY      Не достаточно памяти.&lt;br /&gt;
       Для загрузки программы недостаточно памяти&lt;br /&gt;
&lt;br /&gt;
? COMMAND ERROR      Ошибка в команде.&lt;br /&gt;
       L80 не может опознать команду.&lt;br /&gt;
&lt;br /&gt;
? FILE NOT FOUND     Файл не найден.&lt;br /&gt;
       Среди файлов типа REL не найден заданный &lt;br /&gt;
       файл.&lt;br /&gt;
&lt;br /&gt;
% 2ND COMMON LARGER /XXXXXX/&lt;br /&gt;
       Второй COMMON болше.&lt;br /&gt;
       Начальное задание блока COMMON не задало&lt;br /&gt;
       COMMON максимального размера.&lt;br /&gt;
       Следует изменить порядок компоновки или&lt;br /&gt;
       изменить определение COMMON.&lt;br /&gt;
&lt;br /&gt;
% MULT.DEF.GLOBAL YYYYYY&lt;br /&gt;
      Многократное определение глобального имени.&lt;br /&gt;
      Одно и то же имя определено как ENTRY в не-&lt;br /&gt;
      скольких модулях.&lt;br /&gt;
&lt;br /&gt;
% OVERLAYING PROGRAM AREA, START=XXXX&lt;br /&gt;
      DATA  , PUBLIC=&amp;quot;символич.имя&amp;quot;(XXXX)&lt;br /&gt;
    , EXTERNAL=&amp;quot;символич.имя&amp;quot;(XXXX)&lt;br /&gt;
   Перекрытие программной области.&lt;br /&gt;
   Ключи /P или /D вызовут разрушение уже&lt;br /&gt;
   загруженных данных.&lt;br /&gt;
&lt;br /&gt;
? INTERSECTING PROGRAM AREA&lt;br /&gt;
        DATA    &lt;br /&gt;
         Пересечение областей программы и данных.&lt;br /&gt;
&lt;br /&gt;
? START SYMBUL-&amp;quot;имя&amp;quot;-UNDEFINED&lt;br /&gt;
         Не определено имя начала программы.&lt;br /&gt;
         После ключа /E: или /G: символ, заданный&lt;br /&gt;
         в ключе, отсутствует в программе.&lt;br /&gt;
&lt;br /&gt;
ORIGIN ABOVE LODER MEMORY&amp;lt; MOVE ANYWAY (J OR N)?&lt;br /&gt;
       BELOW        Счетчик адреса за пределами памяти.&lt;br /&gt;
         Загрузить ниже или удалить?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Корвет/Документация]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
</feed>