Инструменты пользователя

Инструменты сайта


msx:bdos

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
msx:bdos [2022-04-04 23:51]
ATroubleshooter
msx:bdos [2022-08-05 21:53] (текущий)
GreyWolf
Строка 4: Строка 4:
 ~~TOC 1-3 wide~~ ~~TOC 1-3 wide~~
  
-%%BDOS%% — Basic Disk Operating System (базовая ​дисковая ​операционная ​система)+%%BDOS%% — Basic Disk Operating System (Базовая ​Дисковая ​Операционная ​Система)
  
-''​MSXDOS.SYS'' ​— это интерфейс между программой пользователя и дисковыми функциями ROM. Кроме дисковых функций он включает в себя и некоторые базовые функции ввода/​вывода для работы ​ с другими устройствами,​ в частности,​ с консолью. Часть этих функций выполняется при помощи обращений к [[msx:​bios|MSX BIOS]], а часть выполняется непосредственно программами ​ядром [[msx:​dos|]], которое находится в памяти постоянно. Этими же функциями ​ пользуется и ''​COMMAND.COM''​.+''​MSXDOS.SYS''​ это интерфейс между программой пользователя и дисковыми функциями ROM. Кроме дисковых функций он включает в себя и некоторые базовые функции ввода/​вывода для работы ​ с другими устройствами,​ в частности,​ с консолью. Часть этих функций выполняется при помощи обращений к [[msx:bios|ROM MSX BIOS]], а часть выполняется непосредственно программами ​%%MSX-DOS Kernel%%, которые находятся в памяти постоянно. Этими же функциями ​ пользуется и ''​COMMAND.COM''​.
  
-По большей части, вектор встроенных вызовов ''​MSXDOS.SYS''​ совместим с [[cp_m:|]], что позволяет запускать в [[msx:​dos|]] программы,​ написанные для [[cp_m:|]] без изменений,​ но, кроме этого, ''​MSXDOS.SYS''​ включает в себя и некоторые дополнительные функции,​ которых в [[cp_m:|]] нет. В частности,​ работу с датами и временем.+По большей части, вектор встроенных вызовов ''​MSXDOS.SYS''​ совместим с [[cp_m:|]], что позволяет запускать в [[msx:dos:|]] программы,​ написанные для [[cp_m:|]] без изменений,​ но, кроме этого, ''​MSXDOS.SYS''​ включает в себя и некоторые дополнительные функции,​ которых в [[cp_m:|]] нет. В частности,​ работу с датами и временем.
  
 Вектор обращений к функциям ''​MSXDOS.SYS''​ занимает в оперативной памяти адреса 0x0000–0x0100 и совпадает с [[cp_m:|]], а сами исполняемые программы находятся в верхней области памяти. Вектор обращений к функциям ''​MSXDOS.SYS''​ занимает в оперативной памяти адреса 0x0000–0x0100 и совпадает с [[cp_m:|]], а сами исполняемые программы находятся в верхней области памяти.
  
-Адреса ОЗУ между 0x0100 и верхней [[msx:​bios#​work_area|рабочей областью]] ''​MSXDOS.SYS''​ называются "​транзитной областью"​ (TPA transient program area) и предоставляются программам пользователя.+Адреса ОЗУ между 0x0100 и верхней [[msx:​bios#​work_area|рабочей областью]] ''​MSXDOS.SYS''​ называются "​транзитной областью"​ (TPA — transient program area) и предоставляются программам пользователя. Подробнее от TPA написано [[msx:​dos:#​tpa|здесь]].
  
 Вектор переходов в [[msx:​bios#​work_area|рабочую область]],​ находящуюся на 3–й странице оперативной памяти (0x0С00–0xFFFF),​ удобен также и тем, что эта страница остаётся в RAM при межслотовых обращениях к [[msx:​bios|BIOS]],​ [[msx:​bios#​sub-rom|SUB-ROM]] и [[msx:​bios#​disk-rom|DISK-ROM]],​ которые обычно находятся в нулевых страницах памяти других слотов. Вектор переходов в [[msx:​bios#​work_area|рабочую область]],​ находящуюся на 3–й странице оперативной памяти (0x0С00–0xFFFF),​ удобен также и тем, что эта страница остаётся в RAM при межслотовых обращениях к [[msx:​bios|BIOS]],​ [[msx:​bios#​sub-rom|SUB-ROM]] и [[msx:​bios#​disk-rom|DISK-ROM]],​ которые обычно находятся в нулевых страницах памяти других слотов.
Строка 28: Строка 28:
 |Вход|Входные параметры| |Вход|Входные параметры|
 |Выход|Возвращаемые значения| |Выход|Возвращаемые значения|
-|Совместимость|Существует ли совместимость с [[msx::cp_m:|]]|+|Совместимость|Существует ли совместимость с [[cp_m:|]]|
  
 Пример вызова:​ Пример вызова:​
-|Из [[msx:​dos|]]:​ <​code>​+|Из [[msx:dos:|]]: <​code>​
 LD C,#** LD C,#**
 CALL #0005 CALL #0005
Строка 45: Строка 45:
 |<100% 5% 95%>| |<100% 5% 95%>|
 ^00|SYSTEM RESET| ^00|SYSTEM RESET|
-|Если [[msx:​dos|]],​ то переход по адресу 0000; иначе, осуществляется "​тёплый"​ старт [[msx:​disk_basic|]].||+|Если [[msx:dos:|]], то переход по адресу 0000; иначе, осуществляется "​тёплый"​ старт [[msx:​disk_basic|]].||
 |Вход |Нет| |Вход |Нет|
 |Выход|Нет| |Выход|Нет|
Строка 145: Строка 145:
 |Совместимость|Есть| |Совместимость|Есть|
 ^14|SEQUENTAL READ| ^14|SEQUENTAL READ|
-|Функция|Читает запись файла, определяемого Блоком Управления Файлом (File Control Block — FCB), начальный адрес которого содержится в DE. Передаёт прочитанную запись по адресу передачи. Запись ​ определяется ​ полем ​ текущего блока и полем текущей записи. Поля ​ текущего ​ блока ​ и текущей записи увеличиваются на 1 при выходе ​ из  функции. Размер записи всегда равен 128 байтам. \\ Если функция выполнилась,​ то возвращает 0; иначе, — 1. \\ __//​Примечание//​__:​ Эта функция оставлена для совместимости с [[msx:cp_m|]]. Настоятельно рекомендуется использовать другую функцию:​ ''​[[#​RANDOM BLOCK READ]]''​.|+|Функция|Читает запись файла, определяемого Блоком Управления Файлом (File Control Block — FCB), начальный адрес которого содержится в DE. Передаёт прочитанную запись по адресу передачи. Запись ​ определяется ​ полем ​ текущего блока и полем текущей записи. Поля ​ текущего ​ блока ​ и текущей записи увеличиваются на 1 при выходе ​ из  функции. Размер записи всегда равен 128 байтам. \\ Если функция выполнилась,​ то возвращает 0; иначе, — 1. \\ __//​Примечание//​__:​ Эта функция оставлена для совместимости с [[cp_m:|]]. Настоятельно рекомендуется использовать другую функцию:​ ''​[[#​RANDOM BLOCK READ]]''​.|
 |Вход|DE:​ указывает на первый байт FCB| |Вход|DE:​ указывает на первый байт FCB|
 |Выход|A:​ 0, если чтение выполнилось;​ 1, в противном случае| |Выход|A:​ 0, если чтение выполнилось;​ 1, в противном случае|
 |Совместимость|Есть| |Совместимость|Есть|
 ^15|SEQUENTAL WRITE| ^15|SEQUENTAL WRITE|
-|Функция|Посылает запись в файл, определяемый Блоком Управления Файлом (File Control Block — FCB), начальный адрес которого содержится в DE. Запись определяется полем ​ текущего блока и полем ​ текущей ​ записи. ​ Поля ​ текущего блока и текущей записи увеличиваются на 1  при ​ выходе из функции. Размер записи всегда равен 128 байтам. \\                 ​Если функция выполнилась,​ то возвращает 0; иначе, — 1. \\ __//​Примечание//​__: ​     Эта функция оставлена для совместимости с [[msx::cp_m:|]]. Настоятельно рекомендуется использовать другую функцию:​ ''​[[#​RANDOM BLOCK WRITE]]''​.|+|Функция|Посылает запись в файл, определяемый Блоком Управления Файлом (File Control Block — FCB), начальный адрес которого содержится в DE. Запись определяется полем ​ текущего блока и полем ​ текущей ​ записи. ​ Поля ​ текущего блока и текущей записи увеличиваются на 1  при ​ выходе из функции. Размер записи всегда равен 128 байтам. \\                 ​Если функция выполнилась,​ то возвращает 0; иначе, — 1. \\ __//​Примечание//​__: ​     Эта функция оставлена для совместимости с [[cp_m:|]]. Настоятельно рекомендуется использовать другую функцию:​ ''​[[#​RANDOM BLOCK WRITE]]''​.|
 |Вход|DE:​ указывает на первый байт FCB| |Вход|DE:​ указывает на первый байт FCB|
 |Выход|A:​ 0, если запись выполнена;​ 1, в противном случае| |Выход|A:​ 0, если запись выполнена;​ 1, в противном случае|
Строка 165: Строка 165:
 |Совместимость|Есть| |Совместимость|Есть|
 ^18|GET LOGIN VECTOR| ^18|GET LOGIN VECTOR|
-|Функция|Возвращает таблицу битов для включённых устройств (вектор начального состояния системы). \\ В отличии от [[msx::cp_m:|]], все системные устройства включены.|+|Функция|Возвращает таблицу битов для включённых устройств (вектор начального состояния системы). \\ В отличии от [[cp_m:|]], все системные устройства включены.|
 |Вход|Нет| |Вход|Нет|
 |Выход|HL:​ содержит вектор начального состояния системы| |Выход|HL:​ содержит вектор начального состояния системы|
Строка 198: Строка 198:
 |Совместимость|Нет (установка/​чтение кода пользователя)| |Совместимость|Нет (установка/​чтение кода пользователя)|
 ^21|RANDOM READ| ^21|RANDOM READ|
-|Функция|Чтение записи файла, определяемого ​ Блоком ​ Управления Файлом (File Control Block — FCB), начальный адрес которого содержится в DE. Запись переносится ​ по  адресу передачи. Запись определяется полем блока произвольного доступа. Это поле не изменяется при выполнении данной функции. Размер записи всегда 128 байт. \\ Если ​ функция выполнилась,​ то возвращает 0; иначе, — 1. \\ __//​Примечание//​__:​ Эта функция оставлена для совместимости с [[msx::cp_m:|]]. Настоятельно ​ рекомендуется ​ использовать ​ другую ​ функцию:​ ''​[[#​RANDOM BLOCK READ]]''​.|+|Функция|Чтение записи файла, определяемого ​ Блоком ​ Управления Файлом (File Control Block — FCB), начальный адрес которого содержится в DE. Запись переносится ​ по  адресу передачи. Запись определяется полем блока произвольного доступа. Это поле не изменяется при выполнении данной функции. Размер записи всегда 128 байт. \\ Если ​ функция выполнилась,​ то возвращает 0; иначе, — 1. \\ __//​Примечание//​__:​ Эта функция оставлена для совместимости с [[cp_m:|]]. Настоятельно ​ рекомендуется ​ использовать ​ другую ​ функцию:​ ''​[[#​RANDOM BLOCK READ]]''​.|
 |Вход|DE:​ указывает на первый байт FCB| |Вход|DE:​ указывает на первый байт FCB|
 |Выход|A:​ 0, если запись прочиталась;​ 1, в противном случае| |Выход|A:​ 0, если запись прочиталась;​ 1, в противном случае|
 |Совместимость|Есть| |Совместимость|Есть|
 ^22|RANDOM WRITE| ^22|RANDOM WRITE|
-|Функция|Посылает запись в файл, определяемый Блоком Управления Файлом (File Control Block — FCB), начальный адрес которого содержится в DE. Запись переносится,​ начиная ​ с адреса передачи. Запись определяется полем блока ​ произвольного доступа. Это поле не изменяется при ​ выполнении данной функции. Размер записи всегда ​ 128  байт. \\ Если функция выполнилась,​ то возвращает 0; иначе, — 1. \\ __//​Примечание//​__:​ Эта функция оставлена для совместимости с [[msx::cp_m:|]]. Настоятельно ​ рекомендуется ​ использовать ​ другую ​ функцию:​ ''​[[#​RANDOM BLOCK WRITE]]''​.|+|Функция|Посылает запись в файл, определяемый Блоком Управления Файлом (File Control Block — FCB), начальный адрес которого содержится в DE. Запись переносится,​ начиная ​ с адреса передачи. Запись определяется полем блока ​ произвольного доступа. Это поле не изменяется при ​ выполнении данной функции. Размер записи всегда ​ 128  байт. \\ Если функция выполнилась,​ то возвращает 0; иначе, — 1. \\ __//​Примечание//​__:​ Эта функция оставлена для совместимости с [[cp_m:|]]. Настоятельно ​ рекомендуется ​ использовать ​ другую ​ функцию:​ ''​[[#​RANDOM BLOCK WRITE]]''​.|
 |Вход|DE:​ указывает на первый байт FCB| |Вход|DE:​ указывает на первый байт FCB|
 |Выход|A:​ 0, если запись осуществилась;​ 1, в противном случае| |Выход|A:​ 0, если запись осуществилась;​ 1, в противном случае|
Строка 241: Строка 241:
 ===== Системные вызовы только для MSX DOS ===== ===== Системные вызовы только для MSX DOS =====
  
-Системные вызовы только для [[msx:​dos|]]+Системные вызовы только для [[msx:dos:|]]
 |<100% 5% 95%>| |<100% 5% 95%>|
 ^29|NO FUNCTION| ^29|NO FUNCTION|
msx/bdos.1649105502.txt.gz · Последние изменения: 2022-04-04 23:51 — ATroubleshooter