\page ▄Приложение IV. ┬Некоторые входные точки системы BDOS, ┬необходимые для работы с диском Форма описания: \/T0/1 ─┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬│ ┴ └Адрес функции─ └Имя функции─ ┴ ┴ ┴ ┴ ┌Функция─ Выполняемая функция ┴ ┴ ┌Вход─ Входные параметры ┴ ┴ ┌Выход─ Возвращаемые значения ┴ ┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐ \/T1/1- └Примечание.─ Пример вызова из: ═) MSX-DOS ║) MSX-Disk BASIC \/T0/1 ─┬┬┬┬┬┬┬┬┬┬┬┬│ ─┬┬┬┬┬┬┬┬┬┬┬┬┬┬│ ┴ LD C,OOh ┴ ┴ LD C,OOh ┴ ┴ CALL 0005h ┴ ┴ CALL F37Dh ┴ ┌┬┬┬┬┬┬┬┬┬┬┬┬┐ ┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐ \/T1/1- где OO - адрес функции. └0E SELECT DISK ┌Функция─ Устанавливает имя дисковода по умолчанию (0 соответствует устройству А:). ┌Вход─ Регистр Е содержит номер драйвера диска. ┌Выход─ O Нет O └0F OPEN FILE ┌Функция─ Открывает файл, определяемый Блоком Управления Файлом ("File Control Block" - FCB), начальный адрес которого со- держится в регистровой паре DE. После выполнения будут установлены: поле размера запи- си, поле текущего блока, поле текущей записи и поле запи- си прямого доступа. Поле размера файла, поля даты и времени создания, поле идентификатора устройства (ID), поле расположения катало- га, поле первого кластера, поле последнего кластера и по- ле последнего доступного кластера копируются из каталога. Если функция выполнилась, то она возвращает 0, иначе она возвращает FFh. ┌Вход─ DE: указывает на первый байт FCB ┌Выход─ A: 0, если файл открылся; FFh, в противном случае. └10 CLOSE FILE ┌Функция─ Закрывает файл, определяемый FCB("File Control Block"), на- чальный адрес которого содержится в регистре DE. Если функция выполнилась, то oна возвращает 0; иначе она возвращает FFh. ┌Вход─ DE: указывает на первый байт FCB ┌Выход─ A: 0, если файл закрылся; FFh, в противном случае └13 DELETE FILE ┌Функция─ Уничтожает файл, определяемый Блоком Управления Файлом FCB ("File Control Block"),начальный адрес которого содер- жится в регистровой паре DE. Если функция выполнилась, то она возвращает 0; иначе она возвращает FFh. ┌Вход─ DE: указывает на первый байт FCB ┌Выход─ A: 0, если файл был удален; FFh, если файл не был удален Примечание. В имени файла возможны специальные символы (* и ?). └16 CREATE FILE ┌Функция─ Открывает файл, определяемый Блоком Управления Файлом FCB ("File Control Block"), начальный адрес которого содержит- ся в регистровой паре DE. Если данный файл уже существует, то он уничтожается. После выполнения этой функции устанав- ливаются: поле размера записи, поле текущей записи, поле текущего блока и поле записи произвольного доступа. Если функция выполнилась, то она возвращает 0 ; иначе она возвращает FFh. ┌Вход─ DE: указывает на первый байт FCB ┌Выход─ A: 0, если файл открылся; FFh, если файл не открылся. └17 RENAME FILE ┌Функция─ Меняет имя файла, определяемого Блоком Управления Файлом FSB ("File Control Block"), начальный адрес которого со- держится в регистровой паре DE, на имя файла,определяемое FCB, начальный адрес которого содержится по адресу(DE+16). Если функция выполнилась, то она возвращает 0 ; иначе она возвращает FFh. ┌Примечание.─ В имени файла возможны специальные символы (* и ?). ┌Вход─ DE: указывает на первый байт FCB "старого" файла (DE+16): указывает на первый байт FCB "нового" файла ┌Выход─ A: 0, если файл переименовался; FFh, если файл не переименовывался. └1А SET DMA ADDRESS ┌Функция─ Устанавливает адрес передачи. ┌Вход─ DE: устанавливаемый (новый) адрес передачи ┌Выход─ O Нет O └26 RANDOM BLOCK WRITE ┌Функция─ Посылает запись (записи) в файл, определяемый Блоком Упра- вления Файлом (File Control Block - FCB), начальный адрес которого содержится в регистровой паре DE. Запись перено- сится, начиная с адреса передачи. Запись определяется по- лем блока произвольного доступа.Поле записи прямого досту- па автоматически увеличивается при успешном исходе опера- ции. Размер записи определяется полем размера записи. Количество записей определяет содержимое регистровой пары HL. Если функция выполнилась, то она возвращает 0; иначе - 1. ┌Вход─ DE: указывает на первый байт FCB HL: указывает количество последовательных записей ┌Выход─ A: 0, если запись осуществилась; 1, в противном случае └27 RANDOM BLOCK READ ┌Функция─ Читает запись (записи) из файла, определяемого Блоком Уп- равления Файлом (File Control Block - FCB), начальный ад- рес которого содержится в регистровой паре DE. Запись пе- реносится, по адресу передачи. Запись определяется полем блока произвольного доступа. Поле записи прямого доступа автоматически увеличивается при успешном исходе операции. Размер записи определяется полем размера записи. Количество записей определяет содержимое регистровой пары HL. Количество прочитанных записей после завершения операции заносится в регистровую пару HL. Если функция выполнилась, то она возвращает 0; иначе она возвращает 1. ┌Вход─ DE: указывает на первый байт FCB HL: указывает количество последовательных записей ┌Выход─ A: 0, если запись осуществилась; 1, в противном случае HL: указывает количество прочитанных записей └2F ABSOLUTE DISK READ ┌Функция─ Чтение Н секторов, начиная с сектора с логическим номером, содержащимся в регистровой паре DE, с драйвера, определя- емого содержимым регистра L. Данные записываются в память, начиная с адреса передачи. ┌Вход─ DЕ: логический номер сектора Н: количество секторов для чтения L: спецификация драйвера ┌Выход─ O Нет O └30 ABSOLUTE DISK WRITE ┌Функция─ Запись Н секторов, начиная с сектора с логическим номером, содержащимся в регистровой паре DE, с драйвера, определяе- мого содержимым регистра L. Данные переписываются из памя- ти, начиная с адреса передачи. ┌Вход─ DЕ: логический номер сектора Н: количество секторов для чтения L: спецификация драйвера ┌Выход─ O Нет O