Корвет/Библиотекарь LIB

Материал из Emuverse
Версия от 12:44, 19 марта 2009; Panther (обсуждение | вклад) (где-то на просторах)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Данный материал защищён авторскими правами!

Использование материала заявлено как добросовестное, исключительно для образовательных некоммерческих целей.

		Библиотекарь  LIB.
		------------------

		Содержание

	Аннотация...........................................
1.	Назначение библиотекаря.............................
2.	Обращение к библиотекарю............................
3.	Задание файлов-источников...........................
4.	Ключи библиотекаря..................................
5.	Сообщения, выдаваемые библиотекарем.................
 
    
		Аннотация

     В настоящем руководстве рассматривается программа обслу-
живания библиотек LIB. Описываются назначение и способы созда-
ния библиотеки перемещаемых модулей. 


     1. Назначение библиотекаря

     Программа библиотекарь предназначена для создания и кор-
ректировки библиотеки перемещаемых модулей. С помощью библиоте-
каря пользователь может создавать и свои собственные библиоте-
ки.


     2. Обращение к библиотекарю

     Программа хранится на диске в файле LIB.COM. Для запуска
программы необходимо ввести команду:

		LIB

     По этой команде библиотекарь загружается в память и выво-
дит запрос * . Это означает, что он готов к работе и ожидает
ввода командной строки. Командная строка состоит из имени фай-
ла-приемника (под этим именем на диске будет создана библиоте-
ка), знака равенства и перечня файлов-источников. Командная 
строка указывает библиотекарю, какие модули пользователь желает
включить в свою библиотеку. Все исходные модули должны иметь 
тип REL, результатом работы будет файл с заданным именем и ти-
пом REL. Если имя файла-приемника не задано , то по умолчанию 
создается файл FORLIB.LIB.
     В качестве файла-источника может быть задана уже имеющаяся
библиотека. Тогда по желанию можно включить в файл-приемник всю
библиотеку целиком или выбрать из нее лишь некоторые модули.
     Командная строка может быть задана при вызове LIB.

	Пример.

	LIB MYLIB = ALFA,BETA,GAMMA

     3. Задание файлов-источников

     Файл-источник может быть задан несколькими способами:

     - файл состоит из одного модуля. Тогда просто задается имя
       файла;
     - файл содержит несколько модулей. В этом случае можно за-
       дать только имя файла. Тогда файл будет включен целиком.
       Можно после имени файла в угловых скобках задать через
       запятую имена необходимых модулей. При этом будут вклю-
       чены только необходимые модули.

	Пример.

	BILIB <FIRST,MIDDLE,LAST>

     Если нужно включить группу модулей, то используются две 
точки (..).
     <.."имя модуля"> означает включение всех модулей,стоящих 
до заданного и заданный модуль.
     <"имя модуля"..> означает включение всех модулей, начиная
с заданного.
     <"имя модуля 1".."имя модуля 2"> означает включение группы
стоящих подряд модулей, начиная с "имя модуля 1" и кончая "имя
модуля 2". 
     Можно также задать "имя модуля"+-N, где N не больше 255.
     <"имя"+1> означает модуль, стоящий после заданного.
     <"имя"-1> означает модуль, стоящий до заданнго.

	Пример.

	<SIN+1..COS-1> включить все модули, начиная с модуля,
	идущего после модуля с именем SIN, и кончая модулем, 
	стоящим до модуля COS.


     4. Ключи библиотекаря

     Для управления созданием библиотеки используются ключи:

  /O    для ключа /L установить режим восьмеричного вывода;

  /H   для ключа /L установить режим шестнадцатиричного вывода;

  /U   вывести список символов, оставшихся неопределенными пос-
       ле поиска по всей библиотеке;

  /L   вывести список всех заданных модулей и содержащихся в 
       них определений символических имен;

  /C   заново начать создание библиотеки;

  /E   выход в операционную систему. Созданная библиотека, 
       имевшая тип LIB,переименовывается и получает тип REL.
       Старая библиотека с таким же именем стирается;

  /R   осуществляет то же, что и /E, но без выхода в операци-
       онную систему.

	В Н И М А Н И Е !
	-----------------
	/E легко может разрушить библиотеку FORLIB.REL. Если вы
	не хотите разрушить старую библиотеку, то для выхода из
	"библиотекаря" используйте ^C. При этом на диске оста-
	ется файл "имя".LIB. Его следует стереть, используя ко-
	манду ERA.

	*) Примечание.

	В библиотеку сначала желательно помещать модули, со-
	держащие внешние ссылки, а лишь потом модули, содер-
	жащие эти имена как ENTRY. Это облегчит работу компо-
	новщика, т.к. иначе он не сможет за один проход удов-
	летворить внешние ссылки.


     5. Сообщения, выдаваемые библиотекарем

     Если при задании командной строки для LIB был указан ключ
/L, то библиотекарь выдает на консоль следующие сведения о каж-
дом модуле, входящем в указанный библиотечный файл:

     MODULE "имя модуля" OF "имя файла"
     LENTH OF PROGRAM "число"	- длина области команд
     LENTH DATA AREA "число"	- длина области данных

     ENTRY POINT(S):		- точки входа
     				"список глобальных имен, задан-
				ных в данном модуле как ENTRY,
				и их адреса"

     COMMON BLOCK(S):		- блоки COMMON
				"список имен COMMON"

     EXTERNAL REFERENCE(S):	- ссылки на внешние имена
				"список глобальных имен,которые
				в данном модуле определены как
				EXTRN"

     После сведения о каждом модуле на консоль выводится свод-
ная таблица глобальных имен и модулей, в которых они определены
как ENTRY.

SYMBOL VALUE DEFINED REFERENCED - 
			символ  значение  где определен
			"список глобальных имен"


     В процессе работы LIB может выдавать следующие сообщения 
об ошибках:

     OUT OF MEMORY		памяти недостаточно

     COMMAND ERROR		неверная команда

     FILE READ ERROR		ошибка при чтении файла

     FILE NOT FOUND		файл не найден

     CAN'T ENTER FILE		с файлом работать нельзя

     MODULE NAME/NUMBER NOT FOUND IN FILE
            модуль с заданным именем/номером не найден в файле

     FIRST MODULE IN UNTIL CLAUSE AFTER LAST
	    первый модуль в списке идет после последнего

     LIBRARY WRITE ERROR	ошибка при записи в библиотеку

     UNSATISFIED EXTERNAL REQUEST(S)  
				неудовлетворенный запрос EXTRN