Приложение 23
Структура даты в системе iS-DOS
Дата задаётся двумя байтами. Дата находится в описателе любого файла (смещение +30 FDATE см. ПРИЛОЖЕНИЕ 9), на 0-м блоке любого устройства (байт +30 см. ПРИЛОЖЕНИЕ 1) и в самой системе (см. рестарт $g_com (#45), вектор в HL', смещение -3).
Структура даты:
|
Смещение: из описателя/вектора g_com |
|||||||||||||||
|
+31(-2) |
+30(-3) |
||||||||||||||
|
старший байт |
младший байт |
||||||||||||||
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
год-80 |
месяц |
число |
|||||||||||||
;Перенос даты в систему из 0-го блока устройства:
;BUFF - буфер, куда загружен 0-й блок устройства
LD C,$g_com
RST 16
EXX
DEC HL
DEC HL
LD DE,(BUFF+30) ;дата
LD (HL),D ;младший байт
DEC HL
LD (HL),E ;старший байт
;Перенос даты из системы в описатель файла:
LD C,$g_com
RST #10
EXX
DEC HL
DEC HL ;-2
LD D,(HL)
DEC HL ;-3
LD E,(HL) ;DE - дата
LD (OPIS+30),DE ;смещение +30 от начала описателя файла
Приложение 24
Структура драйвера винчестера:
|
Смещение |
Длина |
Имя |
Описание |
|
0 |
2 |
INST |
инсталляция драйвера на устройство в регистре A (A=0..7) |
|
2 |
2 |
READ |
процедура чтения блока с винчестера |
|
4 |
2 |
WRITE |
процедура записи блока на винчестер |
|
6 |
2 |
INIT |
|
|
8 |
1 |
SCCSR |
#84 |
|
9 |
1 |
DRCSR |
#04 |
|
10 |
2 |
OFIM2 |
#0000 |
|
12 |
1 |
TPSYS |
#FC - признак драйвера HDD |
|
13 |
1 |
QRDWR |
#04 - число попыток чтения/записи |
|
14 |
2 |
TMBUF |
=#0000 Буфера нет |
|
16 |
1 |
HEAD |
количество головок винчестера |
|
17 |
1 |
SECTOR |
количество секторов на дорожку у винчестера |
|
18 |
2 |
DEV A |
начальный трек для устройства A |
|
20 |
2 |
DEV B |
начальный трек для устройства B |
|
22 |
2 |
DEV C |
начальный трек для устройства C |
|
24 |
2 |
DEV D |
начальный трек для устройства D |
|
26 |
2 |
DEV E |
начальный трек для устройства E |
|
28 |
2 |
DEV F |
начальный трек для устройства F |
|
30 |
2 |
DEV G |
начальный трек для устройства G |
|
32 |
2 |
DEV H |
начальный трек для устройства H |
|
34 |
2 |
HS |
HEAD·SECTOR·2 |
|
36 |
2 |
TRACK |
количество треков винчестера |
|
38 |
2 |
|
начальный трек текущего устройства |
|
40 |
1 |
SDH |
SDH-регистр винчестера (маска MASTER/SLAVE) #A0 - MASTER |
|
41 |
2 |
STBY |
Время до выполнения команды StandBy в 1/50 секунды1 |
|
43 |
2 |
|
Не задействованы (#0000) |
|
45 |
|
|
Тут начинается процедура работы с режимом Stand by. Первая команда в ней - LD HL,xxxx (код #21, xx, xx). По наличию кода #21 по смещению 45 от начала драйвера программа ide_tune определяет поддержку в драйвере режима Stand by1 |
|
Байты 16-42 устанавливаются программой ide_tune.com (более подробно см. help-файл к программе) Более подробно о назначении байтов 0-14 можно узнать в ПРИЛОЖЕНИИ 4 |
|||
|
1Используется только в драйверах с поддержкой включения режима Standby |
|||