forked from KolibriOS/kolibrios
Kernel supports up to three IDE controllers, and all the devices connected to them
git-svn-id: svn://kolibrios.org@4700 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -845,7 +845,7 @@
|
||||
* eax = 18 - номер функции
|
||||
* ebx = 11 - номер подфункции
|
||||
* ecx = тип таблицы:
|
||||
* 1 = короткая версия, 10 байт
|
||||
* 1 = короткая версия, 16 байт
|
||||
* edx = указатель на буфер (в приложении) для таблицы
|
||||
Возвращаемое значение:
|
||||
* функция не возвращает значения
|
||||
@@ -862,6 +862,8 @@
|
||||
Например, для стандартной конфигурации из одного 1.44-дисковода
|
||||
здесь будет 40h, а для случая 1.2Mb на A: и 1.44Mb на B:
|
||||
значение оказывается 24h.
|
||||
|
||||
Первый контроллер IDE:
|
||||
* +1: byte: информация о жёстких дисках и CD-приводах, AABBCCDD,
|
||||
где AA соответствует контроллеру IDE0, ..., DD - IDE3:
|
||||
* 0 = устройство отсутствует
|
||||
@@ -870,15 +872,36 @@
|
||||
Например, в случае HD на IDE0 и CD на IDE2 здесь будет 48h.
|
||||
* +2: 4 db: число найденных разделов на жёстких дисках с
|
||||
соответственно IDE0,...,IDE3.
|
||||
|
||||
Второй контроллер IDE:
|
||||
* +6: byte: информация о жёстких дисках и CD-приводах, AABBCCDD
|
||||
где AA соответствует контроллеру IDE4, ..., DD - IDE7:
|
||||
* 0 = устройство отсутствует
|
||||
* 1 = жёсткий диск
|
||||
* 2 = CD-привод
|
||||
Например, в случае HD на IDE4 и CD на IDE6 здесь будет 48h.
|
||||
* +7: 4 db: число найденных разделов на жёстких дисках с
|
||||
соответственно IDE4,...,IDE7.
|
||||
|
||||
Третий контроллер IDE:
|
||||
* +11: byte: информация о жёстких дисках и CD-приводах, AABBCCDD
|
||||
где AA соответствует контроллеру IDE8, ..., DD - IDE11:
|
||||
* 0 = устройство отсутствует
|
||||
* 1 = жёсткий диск
|
||||
* 2 = CD-привод
|
||||
Например, в случае HD на IDE8 и CD на IDE10 здесь будет 48h.
|
||||
* +12: 4 db: число найденных разделов на жёстких дисках с
|
||||
соответственно IDE8,...,IDE11.
|
||||
|
||||
При отсутствии жёсткого диска на IDEx соответствующий байт
|
||||
нулевой, при наличии показывает число распознанных разделов,
|
||||
которых может и не быть (если носитель не отформатирован или
|
||||
если файловая система не поддерживается). В текущей версии ядра
|
||||
для жёстких дисков поддерживаются только FAT16, FAT32 и NTFS.
|
||||
* +6: 4 db: зарезервировано
|
||||
для жёстких дисков поддерживаются только FAT12/16/32, NTFS,
|
||||
ext2/3/4 и XFS.
|
||||
|
||||
Замечания:
|
||||
* Короткая таблица может быть использована для получения информации
|
||||
* Таблица может быть использована для получения информации
|
||||
об имеющихся устройствах.
|
||||
|
||||
======================================================================
|
||||
@@ -1193,20 +1216,6 @@ dd 1675
|
||||
соответствующую текущей стране иконку.
|
||||
* Приложение @panel переключает раскладки по запросу пользователя.
|
||||
|
||||
======================================================================
|
||||
=========== Функция 21, подфункция 3 - установить базу CD. ===========
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 21 - номер функции
|
||||
* ebx = 3 - номер подфункции
|
||||
* ecx = база CD: 1=IDE0, 2=IDE1, 3=IDE2, 4=IDE3
|
||||
Возвращаемое значение:
|
||||
* eax = 0
|
||||
Замечания:
|
||||
* База CD используется функцией 24.
|
||||
* Получить установленную базу CD можно вызовом
|
||||
подфункции 3 функции 26.
|
||||
|
||||
======================================================================
|
||||
========= Функция 21, подфункция 5 - установить язык системы. ========
|
||||
======================================================================
|
||||
@@ -1254,122 +1263,6 @@ dd 1675
|
||||
* Текущая реализация использует только младший бит ecx.
|
||||
* Получить текущее состояние можно вызовом подфункции 12 функции 26.
|
||||
|
||||
======================================================================
|
||||
============= Функция 21, подфункция 13, подподфункция 1 =============
|
||||
==== Инициализировать + получить информацию о драйвере vmode.mdr. ====
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 21 - номер функции
|
||||
* ebx = 13 - номер подфункции
|
||||
* ecx = 1 - номер функции драйвера
|
||||
* edx = указатель на буфер размера 512 байт
|
||||
Возвращаемое значение:
|
||||
* если драйвер не загружен (никогда не бывает в текущей реализации):
|
||||
* eax = -1
|
||||
* ebx, ecx разрушаются
|
||||
* если драйвер загружен:
|
||||
* eax = 'MDAZ' (в стиле fasm'а, т.е. 'M' - младший байт,
|
||||
'Z' - старший) - сигнатура
|
||||
* ebx = текущая частота развёртки (в Гц)
|
||||
* ecx разрушается
|
||||
* буфер, на который указывает edx, заполнен
|
||||
Формат буфера:
|
||||
* +0: 32*byte: имя драйвера, "Trans VideoDriver" (без кавычек,
|
||||
дополнено пробелами)
|
||||
* +32 = +0x20: dword: версия драйвера (версия x.y кодируется как
|
||||
y*65536+x), для текущей реализации 1 (1.0)
|
||||
* +36 = +0x24: 7*dword: зарезервировано (0 в текущей реализации)
|
||||
* +64 = +0x40: 32*word: список поддерживаемых видеорежимов (каждое
|
||||
слово - номер видеорежима, после собственно списка идут нули)
|
||||
* +128 = +0x80: 32*(5*word): список поддерживаемых частот развёрток
|
||||
для видеорежимов: для каждого видеорежима, указанного в предыдущем
|
||||
поле, указано до 5 поддерживаемых частот
|
||||
(в неиспользуемых позициях записаны нули)
|
||||
Замечания:
|
||||
* Функция инициализирует драйвер (если он ещё не инициализирован)
|
||||
и должна вызываться первой, перед остальными (иначе они будут
|
||||
возвращать -1, ничего не делая).
|
||||
* В текущей реализации поддерживается только одна частота развёртки
|
||||
на видеорежим.
|
||||
|
||||
======================================================================
|
||||
============= Функция 21, подфункция 13, подподфункция 2 =============
|
||||
============= Получить информацию о текущем видеорежиме. =============
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 21 - номер функции
|
||||
* ebx = 13 - номер подфункции
|
||||
* ecx = 2 - номер функции драйвера
|
||||
Возвращаемое значение:
|
||||
* eax = -1 - драйвер не загружен или не инициализирован;
|
||||
ebx,ecx разрушаются
|
||||
* eax = [ширина]*65536 + [высота]
|
||||
* ebx = частота вертикальной развёртки (в Гц)
|
||||
* ecx = номер текущего видеорежима
|
||||
Замечания:
|
||||
* Драйвер предварительно должен быть инициализирован вызовом
|
||||
функции драйвера 1.
|
||||
* Если нужны только размеры экрана, целесообразней использовать
|
||||
функцию 14 с учётом того, что она возвращает размеры на 1 меньше.
|
||||
|
||||
======================================================================
|
||||
= Функция 21, подфункция 13, подподфункция 3 - установить видеорежим.
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 21 - номер функции
|
||||
* ebx = 13 - номер подфункции
|
||||
* ecx = 3 - номер функции драйвера
|
||||
* edx = [частота развёртки]*65536 + [номер видеорежима]
|
||||
Возвращаемое значение:
|
||||
* eax = -1 - драйвер не загружен, не инициализирован или
|
||||
произошла ошибка
|
||||
* eax = 0 - успешно
|
||||
* ebx, ecx разрушаются
|
||||
Замечания:
|
||||
* Драйвер предварительно должен быть инициализирован вызовом
|
||||
функции драйвера 1.
|
||||
* Номер видеорежима и частота должны быть в таблице, возвращаемой
|
||||
функцией драйвера 1.
|
||||
|
||||
======================================================================
|
||||
============= Функция 21, подфункция 13, подподфункция 4 =============
|
||||
================= Вернуться к начальному видеорежиму. ================
|
||||
======================================================================
|
||||
Возвращает экран в видеорежим, установленный при загрузке системы.
|
||||
Параметры:
|
||||
* eax = 21 - номер функции
|
||||
* ebx = 13 - номер подфункции
|
||||
* ecx = 4 - номер функции драйвера
|
||||
Возвращаемое значение:
|
||||
* eax = -1 - драйвер не загружен или не инициализирован
|
||||
* eax = 0 - успешно
|
||||
* ebx, ecx разрушаются
|
||||
Замечания:
|
||||
* Драйвер предварительно должен быть инициализирован вызовом
|
||||
функции драйвера 1.
|
||||
|
||||
======================================================================
|
||||
============= Функция 21, подфункция 13, подподфункция 5 =============
|
||||
======== Увеличить/уменьшить размер видимой области монитора. ========
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 21 - номер функции
|
||||
* ebx = 13 - номер подфункции
|
||||
* ecx = 5 - номер функции драйвера
|
||||
* edx = 0/1 - уменьшить/увеличить размер по горизонтали
|
||||
на одну позицию
|
||||
* edx = 2/3 - в текущей реализации не поддерживается; планируется
|
||||
как уменьшение/увеличение размера по вертикали на одну позицию
|
||||
Возвращаемое значение:
|
||||
* eax = -1 - драйвер не загружен или не инициализирован
|
||||
* eax = 0 - успешно
|
||||
* ebx, ecx разрушаются
|
||||
Замечания:
|
||||
* Драйвер предварительно должен быть инициализирован вызовом
|
||||
функции драйвера 1.
|
||||
* Функция влияет только на физический размер изображения
|
||||
на мониторе; логический размер (число пикселей) не меняется.
|
||||
|
||||
======================================================================
|
||||
============ Функция 22 - установить системную дату/время. ===========
|
||||
======================================================================
|
||||
@@ -1432,59 +1325,6 @@ dd 1675
|
||||
с eax=0, если сложение ebx с текущим значением счётчика времени
|
||||
вызовет 32-битное переполнение.
|
||||
|
||||
======================================================================
|
||||
======= Функция 24, подфункция 1 - начать проигрывать CD-audio. ======
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 24 - номер функции
|
||||
* ebx = 1 - номер подфункции
|
||||
* ecx = 0x00FRSSMM, где
|
||||
* MM = начальная минута
|
||||
* SS = начальная секунда
|
||||
* FR = начальный фрейм
|
||||
Возвращаемое значение:
|
||||
* eax = 0 - успешно
|
||||
* eax = 1 - не определена база CD
|
||||
Замечания:
|
||||
* Предварительно нужно определить базовый порт CD вызовом
|
||||
подфункции 3 функции 21.
|
||||
* В секунде 75 фреймов, в минуте 60 секунд.
|
||||
* Функция асинхронна (возвращает управление, когда началось
|
||||
проигрывание).
|
||||
|
||||
======================================================================
|
||||
===== Функция 24, подфункция 2 - получить информацию о дорожках. =====
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 24 - номер функции
|
||||
* ebx = 2 - номер подфункции
|
||||
* ecx = указатель на буфер для таблицы
|
||||
(максимум 8*64h+4 байт=100 дорожек)
|
||||
Возвращаемое значение:
|
||||
* eax = 0 - успешно
|
||||
* eax = 1 - не определена база CD
|
||||
Замечания:
|
||||
* Формат таблицы с информацией о дорожках такой же, как и для
|
||||
ATAPI-CD команды 43h (READ TOC), обычной таблицы (подкоманда 00h).
|
||||
Адреса возвращаются в формате MSF.
|
||||
* Предварительно нужно определить базовый порт CD вызовом
|
||||
подфункции 3 функции 21.
|
||||
* Функция возвращает информацию только о не более чем 100
|
||||
первых дорожках. В большинстве случаев этого достаточно.
|
||||
|
||||
======================================================================
|
||||
==== Функция 24, подфункция 3 - остановить проигрываемое CD-audio. ===
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 24 - номер функции
|
||||
* ebx = 1 - номер подфункции
|
||||
Возвращаемое значение:
|
||||
* eax = 0 - успешно
|
||||
* eax = 1 - не определена база CD
|
||||
Замечания:
|
||||
* Предварительно нужно определить базовый порт CD вызовом
|
||||
подфункции 3 функции 21.
|
||||
|
||||
======================================================================
|
||||
======= Функция 24, подфункция 4 - извлечь лоток привода диска. ======
|
||||
======================================================================
|
||||
@@ -1587,18 +1427,6 @@ dd 1675
|
||||
(используя описываемую функцию).
|
||||
* Приложение @panel переключает раскладки по запросу пользователя.
|
||||
|
||||
======================================================================
|
||||
============ Функция 26, подфункция 3 - получить базу CD. ============
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 26 - номер функции
|
||||
* ebx = 3 - номер подфункции
|
||||
Возвращаемое значение:
|
||||
* eax = база CD: 1=IDE0, 2=IDE1, 3=IDE2, 4=IDE3
|
||||
Замечания:
|
||||
* База CD используется функцией 24.
|
||||
* Установить базу CD можно вызовом подфункции 3 функции 21.
|
||||
|
||||
======================================================================
|
||||
========== Функция 26, подфункция 5 - получить язык системы. =========
|
||||
======================================================================
|
||||
|
@@ -845,7 +845,7 @@ Parameters:
|
||||
* eax = 18 - function number
|
||||
* ebx = 11 - subfunction number
|
||||
* ecx = type of the table:
|
||||
* 1 = short version, 10 bytes
|
||||
* 1 = short version, 16 bytes
|
||||
* edx = pointer to the buffer (in the application) for the table
|
||||
Returned value:
|
||||
* function does not return value
|
||||
@@ -861,25 +861,49 @@ Format of the table: short version:
|
||||
* 5 = 2.88Mb, 3.5'' (such drives are not used anymore)
|
||||
For example, for the standard configuration from one 1.44-drive
|
||||
here will be 40h, and for the case 1.2Mb on A: and 1.44Mb on B:
|
||||
the value is 24h.
|
||||
the value is 24h.
|
||||
|
||||
First IDE controller:
|
||||
* +1: byte: information about hard disks and CD-drives, AABBCCDD,
|
||||
where AA corresponds to the controller IDE0, ..., DD - IDE3:
|
||||
* 0 = device is absent
|
||||
* 0 = device not found
|
||||
* 1 = hard drive
|
||||
* 2 = CD-drive
|
||||
For example, in the case HD on IDE0 and CD on IDE2
|
||||
this field contains 48h.
|
||||
* +2: 4 db: number of the retrieved partitions on hard disks
|
||||
at accordingly IDE0,...,IDE3.
|
||||
at accordingly IDE0,...,IDE3.
|
||||
|
||||
Second IDE controller:
|
||||
* +6: byte: information about hard disks and CD-drives, AABBCCDD,
|
||||
where AA corresponds to the controller IDE4, ..., DD - IDE7:
|
||||
* 0 = device not found
|
||||
* 1 = hard drive
|
||||
* 2 = CD-drive
|
||||
For example, in the case HD on IDE4 and CD on IDE6
|
||||
this field contains 48h.
|
||||
* +7: 4 db: number of the retrieved partitions on hard disks
|
||||
at accordingly IDE4,...,IDE7.
|
||||
|
||||
Third IDE controller:
|
||||
* +11: byte: information about hard disks and CD-drives, AABBCCDD,
|
||||
where AA corresponds to the controller IDE8, ..., DD - IDE11:
|
||||
* 0 = device not found
|
||||
* 1 = hard drive
|
||||
* 2 = CD-drive
|
||||
For example, in the case HD on IDE8 and CD on IDE10
|
||||
this field contains 48h.
|
||||
* +12: 4 db: number of the retrieved partitions on hard disks
|
||||
at accordingly IDE8,...,IDE11.
|
||||
|
||||
If the hard disk on IDEx is absent, appropriate byte is zero,
|
||||
otherwise it shows number of the recognized partitions, which
|
||||
can be not presented (if the drive is not formatted or if
|
||||
the file system is not supported). Current version of the kernel
|
||||
supports only FAT16, FAT32 and NTFS for hard disks.
|
||||
* +6: 4 db: reserved
|
||||
supports only FAT12/16/32, NTFS, ext2/3/4 and XFS for hard disks.
|
||||
|
||||
Remarks:
|
||||
* The short table can be used for obtaining the information about
|
||||
* The table can be used for obtaining the information about
|
||||
available devices.
|
||||
|
||||
======================================================================
|
||||
@@ -1193,19 +1217,6 @@ Remarks:
|
||||
the corresponding icon.
|
||||
* The application @panel switches layouts on user request.
|
||||
|
||||
======================================================================
|
||||
============== Function 21, subfunction 3 - set CD base. =============
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 21 - function number
|
||||
* ebx = 3 - subfunction number
|
||||
* ecx = CD base: 1=IDE0, 2=IDE1, 3=IDE2, 4=IDE3
|
||||
Returned value:
|
||||
* eax = 0
|
||||
Remarks:
|
||||
* CD base is used by function 24.
|
||||
* To get CD base use subfunction 3 of function 26.
|
||||
|
||||
======================================================================
|
||||
========== Function 21, subfunction 5 - set system language. =========
|
||||
======================================================================
|
||||
@@ -1251,120 +1262,6 @@ Remarks:
|
||||
* The current implementation uses only low bit of ecx.
|
||||
* To get current status use subfunction 12 of function 26.
|
||||
|
||||
======================================================================
|
||||
============ Function 21, subfunction 13, subsubfunction 1 ===========
|
||||
======== Initialize + get information on the driver vmode.mdr. =======
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 21 - function number
|
||||
* ebx = 13 - subfunction number
|
||||
* ecx = 1 - number of the driver function
|
||||
* edx = pointer to 512-bytes buffer
|
||||
Returned value:
|
||||
* if driver is not loaded
|
||||
(never happens in the current implementation):
|
||||
* eax = -1
|
||||
* ebx, ecx destroyed
|
||||
* if driver is loaded:
|
||||
* eax = 'MDAZ' (in fasm style, that is 'M' - low byte, 'Z' - high)
|
||||
- signature
|
||||
* ebx = current frequency of the scanning (in Hz)
|
||||
* ecx destroyed
|
||||
* buffer pointed to by edx is filled
|
||||
Format of the buffer:
|
||||
* +0: 32*byte: driver name, "Trans VideoDriver"
|
||||
(without quotes, supplemented by spaces)
|
||||
* +32 = +0x20: dword: driver version (version x.y is encoded as
|
||||
y*65536+x), for the current implementation is 1 (1.0)
|
||||
* +36 = +0x24: 7*dword: reserved (0 in the current implementation)
|
||||
* +64 = +0x40: 32*word: list of supported videomodes (each word
|
||||
is number of a videomode, after list itself there are zeroes)
|
||||
* +128 = +0x80: 32*(5*word): list of supported frequences of the
|
||||
scannings for videomodes: for each videomode listed in the
|
||||
previous field up to 5 supported frequences are given
|
||||
(unused positions contain zeroes)
|
||||
Remarks:
|
||||
* Function initializes the driver (if it is not initialized yet)
|
||||
and must be called first, before others (otherwise they will do
|
||||
nothing and return -1).
|
||||
* The current implementation supports only one frequency
|
||||
of the scanning on videomode.
|
||||
|
||||
======================================================================
|
||||
============ Function 21, subfunction 13, subsubfunction 2 ===========
|
||||
================ Get information on current videomode. ===============
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 21 - function number
|
||||
* ebx = 13 - subfunction number
|
||||
* ecx = 2 - number of the driver function
|
||||
Returned value:
|
||||
* eax = -1 - driver is not loaded or not initialized;
|
||||
ebx,ecx are destroyed
|
||||
* eax = [width]*65536 + [height]
|
||||
* ebx = frequency of the vertical scanning (in Hz)
|
||||
* ecx = number of current videomode
|
||||
Remarks:
|
||||
* Driver must be initialized by call to
|
||||
driver function 1.
|
||||
* If only screen sizes are required, it is more expedient to use
|
||||
function 14 taking into account that it
|
||||
returns sizes on 1 less.
|
||||
|
||||
======================================================================
|
||||
=== Function 21, subfunction 13, subsubfunction 3 - set videomode. ===
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 21 - function number
|
||||
* ebx = 13 - subfunction number
|
||||
* ecx = 3 - number of the driver function
|
||||
* edx = [scanning frequency]*65536 + [videomode number]
|
||||
Returned value:
|
||||
* eax = -1 - driver is not loaded, not initialized or
|
||||
an error has occured
|
||||
* eax = 0 - success
|
||||
* ebx, ecx destroyed
|
||||
Remarks:
|
||||
* Driver must be initialized by driver function 1.
|
||||
* The videomode number and frequency must be in the table
|
||||
returned by driver function 1.
|
||||
|
||||
======================================================================
|
||||
============ Function 21, subfunction 13, subsubfunction 4 ===========
|
||||
================== Return to the initial videomode. ==================
|
||||
======================================================================
|
||||
Returns the screen to the videomode set at system boot.
|
||||
Parameters:
|
||||
* eax = 21 - function number
|
||||
* ebx = 13 - subfunction number
|
||||
* ecx = 4 - number of the driver function
|
||||
Returned value:
|
||||
* eax = -1 - driver is not loaded or not initialized
|
||||
* eax = 0 - success
|
||||
* ebx, ecx destroyed
|
||||
Remarks:
|
||||
* Driver must be initialized by call to driver function 1.
|
||||
|
||||
======================================================================
|
||||
============ Function 21, subfunction 13, subsubfunction 5 ===========
|
||||
===== Increase/decrease the size of the visible area of monitor. =====
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 21 - function number
|
||||
* ebx = 13 - subfunction number
|
||||
* ecx = 5 - number of the driver function
|
||||
* edx = 0/1 - decrease/increase horizontal size on 1 position
|
||||
* edx = 2/3 - is not supported in the current implementation;
|
||||
is planned as decrease/increase vertical size on 1 position
|
||||
Returned value:
|
||||
* eax = -1 - driver is not loaded or not initialized
|
||||
* eax = 0 - success
|
||||
* ebx, ecx destroyed
|
||||
Remarks:
|
||||
* Driver must be initialized by call to driver function 1.
|
||||
* Function influences only the physical size of the screen image;
|
||||
the logical size (number of pixels) does not change.
|
||||
|
||||
======================================================================
|
||||
================= Function 22 - set system date/time. ================
|
||||
======================================================================
|
||||
@@ -1426,58 +1323,6 @@ Remarks:
|
||||
if the addition of ebx with the current value of time counter
|
||||
makes 32-bit overflow.
|
||||
|
||||
======================================================================
|
||||
======== Function 24, subfunction 1 - begin to play CD-audio. ========
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 24 - function number
|
||||
* ebx = 1 - subfunction number
|
||||
* ecx = 0x00FRSSMM, where
|
||||
* MM = starting minute
|
||||
* SS = starting second
|
||||
* FR = starting frame
|
||||
Returned value:
|
||||
* eax = 0 - success
|
||||
* eax = 1 - CD base is not defined
|
||||
Remarks:
|
||||
* Previously CD base must be defined by the call to
|
||||
subfunction 3 of function 21.
|
||||
* One second includes 75 frames, one minute includes 60 seconds.
|
||||
* The function is asynchronous (returns control, when play begins).
|
||||
|
||||
======================================================================
|
||||
======= Function 24, subfunction 2 - get information on tracks. ======
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 24 - function number
|
||||
* ebx = 2 - subfunction number
|
||||
* ecx = pointer to the buffer for the table
|
||||
(maximum 8*64h+4 bytes=100 tracks)
|
||||
Returned value:
|
||||
* eax = 0 - success
|
||||
* eax = 1 - CD base is not defined
|
||||
Remarks:
|
||||
* The format of the table with tracks information is the same as
|
||||
for ATAPI-CD command 43h (READ TOC), usual table (subcommand 00h).
|
||||
Function returns addresses in MSF.
|
||||
* Previously CD base port must be set by call to
|
||||
subfunction 3 of function 21.
|
||||
* Function returns information only about no more than 100
|
||||
first tracks. In most cases it is enough.
|
||||
|
||||
======================================================================
|
||||
========== Function 24, subfunction 3 - stop play CD-audio. ==========
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 24 - function number
|
||||
* ebx = 1 - subfunction number
|
||||
Returned value:
|
||||
* eax = 0 - success
|
||||
* eax = 1 - CD base is not defined
|
||||
Remarks:
|
||||
* Previously CD base port must be defined by call to
|
||||
subfunction 3 of function 21.
|
||||
|
||||
======================================================================
|
||||
======= Function 24, subfunction 4 - eject tray of disk drive. =======
|
||||
======================================================================
|
||||
@@ -1577,18 +1422,6 @@ Remarks:
|
||||
the corresponding icon (using this function).
|
||||
* The application @panel switches layouts on user request.
|
||||
|
||||
======================================================================
|
||||
============== Function 26, subfunction 3 - get CD base. =============
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 26 - function number
|
||||
* ebx = 3 - subfunction number
|
||||
Returned value:
|
||||
* eax = CD base: 1=IDE0, 2=IDE1, 3=IDE2, 4=IDE3
|
||||
Remarks:
|
||||
* CD base is used by function 24.
|
||||
* To set CD base use subfunction 3 of function 21.
|
||||
|
||||
======================================================================
|
||||
========== Function 26, subfunction 5 - get system language. =========
|
||||
======================================================================
|
||||
|
Reference in New Issue
Block a user